1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-03 00:46:55 +02:00

Do not add non-existing buildings to H3 towns

Such as Mages Guild 4-5 to Fortress, or all 4 special buildings to towns
without them
This commit is contained in:
Ivan Savenko
2025-01-02 13:46:49 +00:00
parent dfa8a956cc
commit bc624ab654

View File

@ -388,8 +388,6 @@ void CTownHandler::loadBuilding(CTown * town, const std::string & stringID, cons
} }
void CTownHandler::loadBuildings(CTown * town, const JsonNode & source) void CTownHandler::loadBuildings(CTown * town, const JsonNode & source)
{
if(source.isStruct())
{ {
for(const auto & node : source.Struct()) for(const auto & node : source.Struct())
{ {
@ -397,7 +395,6 @@ void CTownHandler::loadBuildings(CTown * town, const JsonNode & source)
loadBuilding(town, node.first, node.second); loadBuilding(town, node.first, node.second);
} }
} }
}
void CTownHandler::loadStructure(CTown &town, const std::string & stringID, const JsonNode & source) const void CTownHandler::loadStructure(CTown &town, const std::string & stringID, const JsonNode & source) const
{ {
@ -874,6 +871,9 @@ void CTownHandler::beforeValidate(JsonNode & object)
for (auto & building : object["town"]["buildings"].Struct()) for (auto & building : object["town"]["buildings"].Struct())
{ {
if (building.second.isNull())
continue;
inheritBuilding(building.first, building.second); inheritBuilding(building.first, building.second);
if (building.second.Struct().count("type")) if (building.second.Struct().count("type"))
inheritBuilding(building.second["type"].String(), building.second); inheritBuilding(building.second["type"].String(), building.second);