|
@@ -112,7 +112,7 @@ const CBuilding * CBuildingRect::getBuilding()
|
|
|
return nullptr;
|
|
|
|
|
|
if (str->hiddenUpgrade) // hidden upgrades, e.g. hordes - return base (dwelling for hordes)
|
|
|
- return town->getTown()->buildings.at(str->building->getBase());
|
|
|
+ return town->getTown()->buildings.at(str->building->getBase()).get();
|
|
|
|
|
|
return str->building;
|
|
|
}
|
|
@@ -161,7 +161,7 @@ void CBuildingRect::showPopupWindow(const Point & cursorPosition)
|
|
|
return;
|
|
|
|
|
|
BuildingID bid = getBuilding()->bid;
|
|
|
- const CBuilding *bld = town->getTown()->buildings.at(bid);
|
|
|
+ const CBuilding *bld = town->getTown()->buildings.at(bid).get();
|
|
|
if (!bid.isDwelling())
|
|
|
{
|
|
|
CRClickPopup::createAndPush(CInfoWindow::genText(bld->getNameTranslated(), bld->getDescriptionTranslated()),
|
|
@@ -685,22 +685,22 @@ void CCastleBuildings::recreate()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- for(const CStructure * structure : town->getTown()->clientInfo.structures)
|
|
|
+ for(const auto & structure : town->getTown()->clientInfo.structures)
|
|
|
{
|
|
|
if(!structure->building)
|
|
|
{
|
|
|
- buildings.push_back(std::make_shared<CBuildingRect>(this, town, structure));
|
|
|
+ buildings.push_back(std::make_shared<CBuildingRect>(this, town, structure.get()));
|
|
|
continue;
|
|
|
}
|
|
|
if(vstd::contains(buildingsCopy, structure->building->bid))
|
|
|
{
|
|
|
- groups[structure->building->getBase()].push_back(structure);
|
|
|
+ groups[structure->building->getBase()].push_back(structure.get());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for(auto & entry : groups)
|
|
|
{
|
|
|
- const CBuilding * build = town->getTown()->buildings.at(entry.first);
|
|
|
+ const CBuilding * build = town->getTown()->buildings.at(entry.first).get();
|
|
|
|
|
|
const CStructure * toAdd = *boost::max_element(entry.second, [=](const CStructure * a, const CStructure * b)
|
|
|
{
|
|
@@ -819,7 +819,7 @@ void CCastleBuildings::buildingClicked(BuildingID building)
|
|
|
|
|
|
for(BuildingID buildingToEnter = building;;)
|
|
|
{
|
|
|
- const CBuilding *b = town->getTown()->buildings.find(buildingToEnter)->second;
|
|
|
+ const auto &b = town->getTown()->buildings.find(buildingToEnter)->second;
|
|
|
|
|
|
buildingsToTest.push_back(buildingToEnter);
|
|
|
if (!b->upgrade.hasValue())
|
|
@@ -840,7 +840,7 @@ void CCastleBuildings::buildingClicked(BuildingID building)
|
|
|
bool CCastleBuildings::buildingTryActivateCustomUI(BuildingID buildingToTest, BuildingID buildingTarget)
|
|
|
{
|
|
|
logGlobal->trace("You've clicked on %d", (int)buildingToTest.toEnum());
|
|
|
- const CBuilding *b = town->getTown()->buildings.at(buildingToTest);
|
|
|
+ const auto & b = town->getTown()->buildings.at(buildingToTest);
|
|
|
|
|
|
if (town->getWarMachineInBuilding(buildingToTest).hasValue())
|
|
|
{
|
|
@@ -1382,7 +1382,7 @@ CTownInfo::CTownInfo(int posX, int posY, const CGTownInstance * Town, bool townH
|
|
|
return;//FIXME: suspicious statement, fix or comment
|
|
|
picture = std::make_shared<CAnimImage>(AnimationPath::builtin("ITMCL.DEF"), town->fortLevel()-1);
|
|
|
}
|
|
|
- building = town->getTown()->buildings.at(BuildingID(buildID));
|
|
|
+ building = town->getTown()->buildings.at(BuildingID(buildID)).get();
|
|
|
pos = picture->pos;
|
|
|
}
|
|
|
|
|
@@ -1737,7 +1737,7 @@ CHallInterface::CHallInterface(const CGTownInstance * Town):
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- const CBuilding * current = town->getTown()->buildings.at(buildingID);
|
|
|
+ const CBuilding * current = town->getTown()->buildings.at(buildingID).get();
|
|
|
if(town->hasBuilt(buildingID))
|
|
|
{
|
|
|
building = current;
|
|
@@ -1922,7 +1922,7 @@ CFortScreen::CFortScreen(const CGTownInstance * town):
|
|
|
fortSize--;
|
|
|
fortSize = std::min(fortSize, static_cast<ui32>(GameConstants::CREATURES_PER_TOWN)); // for 8 creatures + portal of summoning
|
|
|
|
|
|
- const CBuilding * fortBuilding = town->getTown()->buildings.at(BuildingID(town->fortLevel()+6));
|
|
|
+ const auto & fortBuilding = town->getTown()->buildings.at(BuildingID(town->fortLevel()+6));
|
|
|
title = std::make_shared<CLabel>(400, 12, FONT_BIG, ETextAlignment::CENTER, Colors::WHITE, fortBuilding->getNameTranslated());
|
|
|
|
|
|
std::string text = boost::str(boost::format(LIBRARY->generaltexth->fcommands[6]) % fortBuilding->getNameTranslated());
|
|
@@ -2067,11 +2067,11 @@ const CBuilding * CFortScreen::RecruitArea::getMyBuilding()
|
|
|
if (!town->getTown()->buildings.count(myID))
|
|
|
return nullptr;
|
|
|
|
|
|
- const CBuilding * build = town->getTown()->buildings.at(myID);
|
|
|
+ const CBuilding * build = town->getTown()->buildings.at(myID).get();
|
|
|
while (town->getTown()->buildings.count(myID))
|
|
|
{
|
|
|
if (town->hasBuilt(myID))
|
|
|
- build = town->getTown()->buildings.at(myID);
|
|
|
+ build = town->getTown()->buildings.at(myID).get();
|
|
|
BuildingID::advanceDwelling(myID);
|
|
|
}
|
|
|
|