diff --git a/lib/mapObjects/CGTownInstance.cpp b/lib/mapObjects/CGTownInstance.cpp index a86df42d7..bde370ff7 100644 --- a/lib/mapObjects/CGTownInstance.cpp +++ b/lib/mapObjects/CGTownInstance.cpp @@ -34,13 +34,11 @@ void CGDwelling::initObj() if (getOwner() != PlayerColor::NEUTRAL) cb->gameState()->players[getOwner()].dwellings.push_back (this); - } - //putStack(SlotID(0), new CStackInstance(CreatureID::GOLD_GOLEM, 9)); - //putStack(SlotID(1), new CStackInstance(CreatureID::DIAMOND_GOLEM, 6)); - //putStack(SlotID(0), new CStackInstance(CreatureID::EARTH_ELEMENTAL, 12)); + assert(!creatures.empty()); + assert(!creatures[0].second.empty()); break; - + } case Obj::REFUGEE_CAMP: //is handled within newturn func break; diff --git a/lib/mapObjects/CommonConstructors.cpp b/lib/mapObjects/CommonConstructors.cpp index b0064f573..14eb1a11f 100644 --- a/lib/mapObjects/CommonConstructors.cpp +++ b/lib/mapObjects/CommonConstructors.cpp @@ -158,7 +158,9 @@ void CDwellingInstanceConstructor::initTypeData(const JsonNode & input) availableCreatures[i][j] = VLC->creh->creatures[index]; }); } + assert(!availableCreatures[i].empty()); } + guards = input["guards"]; } @@ -185,10 +187,11 @@ void CDwellingInstanceConstructor::configureObject(CGObjectInstance * object, CR CGDwelling * dwelling = dynamic_cast(object); dwelling->creatures.clear(); - dwelling->creatures.resize(availableCreatures.size()); + dwelling->creatures.reserve(availableCreatures.size()); for (auto & entry : availableCreatures) { + dwelling->creatures.resize(dwelling->creatures.size() + 1); for (const CCreature * cre : entry) dwelling->creatures.back().second.push_back(cre->idNumber); }