diff --git a/src/ui/GameWorldView.cpp b/src/ui/GameWorldView.cpp index d793148..5de92ff 100644 --- a/src/ui/GameWorldView.cpp +++ b/src/ui/GameWorldView.cpp @@ -669,15 +669,6 @@ void GameWorldView::clampScroll() // Placement helpers // --------------------------------------------------------------------------- -const BuildingDef* GameWorldView::findBuildingDef(BuildingType type) const -{ - for (const BuildingDef& def : m_config->buildings.buildings) - { - if (def.type == type) { return &def; } - } - return nullptr; -} - bool GameWorldView::isValidPlacement(BuildingType type, QPoint anchor, Rotation rot) const { @@ -689,7 +680,7 @@ bool GameWorldView::isValidPlacement(BuildingType type, QPoint anchor, return false; } - const BuildingDef* def = findBuildingDef(type); + const BuildingDef* def = m_config->buildings.findBuildingDef(type); if (!def) { return false; } const ParsedSurfaceMask parsed = parseSurfaceMask(def->surfaceMask, rot); @@ -892,7 +883,7 @@ void GameWorldView::placeBlueprintAtTile(QPoint center) { continue; } - const BuildingDef* def = findBuildingDef(bb.type); + const BuildingDef* def = m_config->buildings.findBuildingDef(bb.type); if (def) { totalCost += def->cost; } } if (m_sim->getBuildingBlocksStock() < totalCost) { return; } @@ -1133,7 +1124,7 @@ std::vector GameWorldView::resolveBeltDragPath( std::vector resolved; resolved.reserve(m_beltDragPath.size()); - const BuildingDef* def = findBuildingDef(BuildingType::Belt); + const BuildingDef* def = m_config->buildings.findBuildingDef(BuildingType::Belt); const int beltCost = (def != nullptr) ? def->cost : 0; const int stock = m_sim->getBuildingBlocksStock(); int spent = 0; @@ -1405,7 +1396,7 @@ void GameWorldView::drawBuildings(QPainter& painter) painter.setBrush(Qt::NoBrush); painter.drawRect(bboxRect); - const BuildingDef* siteDef = findBuildingDef(s.type); + const BuildingDef* siteDef = m_config->buildings.findBuildingDef(s.type); if (siteDef) { // Glyph + progress percentage @@ -2177,7 +2168,7 @@ void GameWorldView::drawBuildingGhost(QPainter& painter, BuildingType type, QPoint anchorTile, Rotation rotation, bool valid, bool showPortTargetGlyphs) { - const BuildingDef* def = findBuildingDef(type); + const BuildingDef* def = m_config->buildings.findBuildingDef(type); if (!def) { return; } const std::map::const_iterator it = @@ -2960,7 +2951,7 @@ void GameWorldView::rotateGhost(bool clockwise) { for (BlueprintBuilding& bb : m_blueprintMode->buildings) { - const BuildingDef* def = findBuildingDef(bb.type); + const BuildingDef* def = m_config->buildings.findBuildingDef(bb.type); if (!def) { continue; } const ParsedSurfaceMask mask = parseSurfaceMask(def->surfaceMask, bb.rotation); int minX = INT_MAX, minY = INT_MAX; @@ -3259,7 +3250,7 @@ void GameWorldView::enqueuePlaceBuilding(BuildingType type, QPoint anchor, Rotat bool GameWorldView::canAfford(BuildingType type) const { - const BuildingDef* def = findBuildingDef(type); + const BuildingDef* def = m_config->buildings.findBuildingDef(type); if (!def) { return false; } return m_sim->getBuildingBlocksStock() >= def->cost; } diff --git a/src/ui/GameWorldView.h b/src/ui/GameWorldView.h index 805b681..63c5f51 100644 --- a/src/ui/GameWorldView.h +++ b/src/ui/GameWorldView.h @@ -182,7 +182,6 @@ private: void clampScroll(); bool isValidPlacement(BuildingType type, QPoint anchor, Rotation rot) const; - const BuildingDef* findBuildingDef(BuildingType type) const; std::optional buildingAtTile(QPoint tile) const; std::optional siteAtTile(QPoint tile) const; // Ids of all buildings and construction sites whose footprint intersects