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

Fix possible crash on loading save with invalid buildings, e.g. Mage

Guild 4 in towns without one
This commit is contained in:
Ivan Savenko
2025-01-03 15:41:26 +00:00
parent da8cca2ea5
commit 4ccd860b2f

View File

@@ -1247,6 +1247,14 @@ void CGTownInstance::postDeserialize()
setNodeType(CBonusSystemNode::TOWN);
for(auto & building : rewardableBuildings)
building.second->town = this;
if (getFactionID().hasValue())
{
vstd::erase_if(builtBuildings, [this](const BuildingID & buildID)
{
return getTown()->buildings.count(buildID) == 0;
});
}
}
std::map<BuildingID, TownRewardableBuildingInstance*> CGTownInstance::convertOldBuildings(std::vector<TownRewardableBuildingInstance*> oldVector)