1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-10 22:31:40 +02:00

Merge pull request #5467 from IvanSavenko/brotherhood_fix

[1.6.7] Fix Brotherhood displaying Thieves Guild UI on click instead of Tavern
This commit is contained in:
Ivan Savenko
2025-02-25 16:50:18 +02:00
committed by GitHub

View File

@@ -814,22 +814,26 @@ const CGHeroInstance * CCastleBuildings::getHero()
void CCastleBuildings::buildingClicked(BuildingID building) void CCastleBuildings::buildingClicked(BuildingID building)
{ {
BuildingID buildingToEnter = building; std::vector<BuildingID> buildingsToTest;
for(;;)
for(BuildingID buildingToEnter = building;;)
{ {
const CBuilding *b = town->getTown()->buildings.find(buildingToEnter)->second; const CBuilding *b = town->getTown()->buildings.find(buildingToEnter)->second;
if (buildingTryActivateCustomUI(buildingToEnter, building)) buildingsToTest.push_back(buildingToEnter);
return;
if (!b->upgrade.hasValue()) if (!b->upgrade.hasValue())
{ break;
enterBuilding(building);
return;
}
buildingToEnter = b->upgrade; buildingToEnter = b->upgrade;
} }
for(BuildingID buildingToEnter : boost::adaptors::reverse(buildingsToTest))
{
if (buildingTryActivateCustomUI(buildingToEnter, building))
return;
}
enterBuilding(building);
} }
bool CCastleBuildings::buildingTryActivateCustomUI(BuildingID buildingToTest, BuildingID buildingTarget) bool CCastleBuildings::buildingTryActivateCustomUI(BuildingID buildingToTest, BuildingID buildingTarget)