1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Reading treasure values from config.

This commit is contained in:
DjWarmonger
2014-06-04 15:16:23 +02:00
parent 62e9f13b08
commit fdb81f4d5c
4 changed files with 92 additions and 24 deletions

View File

@@ -63,9 +63,32 @@ void CJsonRmgTemplateLoader::loadTemplates()
zone->setMatchTerrainToTown(zoneNode["matchTerrainToTown"].Bool());
zone->setTerrainTypes(parseTerrainTypes(zoneNode["terrainTypes"].Vector(), zone->getDefaultTerrainTypes()));
zone->setTownsAreSameType((zoneNode["townsAreSameType"].Bool()));
//TODO: do these lines even do anything?
if(!zoneNode["terrainTypeLikeZone"].isNull()) zone->setTerrainTypeLikeZone(boost::lexical_cast<int>(zoneNode["terrainTypeLikeZone"].String()));
if(!zoneNode["townTypeLikeZone"].isNull()) zone->setTownTypeLikeZone(boost::lexical_cast<int>(zoneNode["townTypeLikeZone"].String()));
//treasures
if (!zoneNode["treasure"].isNull())
{
//TODO: parse vector of different treasure settings
auto treasureInfo = zoneNode["treasure"].Struct();
{
CTreasureInfo ti;
ti.min = treasureInfo["min"].Float();
ti.max = treasureInfo["max"].Float();
ti.density = 1; //TODO: use me
zone->addTreasureInfo(ti);
}
}
if (!zoneNode["treasureLikeZone"].isNull())
{
//TODO: check if the zone with that index exists
for (auto treasureInfo : zones[zoneNode["treasureLikeZone"].Float()]->getTreasureInfo())
{
zone->addTreasureInfo(treasureInfo);
}
}
zones[zone->getId()] = zone;
}
tpl->setZones(zones);