mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-17 00:07:41 +02:00
Fixed copying zone settings.
This commit is contained in:
@ -16,19 +16,19 @@
|
|||||||
{
|
{
|
||||||
"type" : "playerStart", "size" : 1, "owner" : 2,
|
"type" : "playerStart", "size" : 1, "owner" : 2,
|
||||||
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
||||||
"treaureLikeZone" : 1
|
"treasureLikeZone" : 1
|
||||||
},
|
},
|
||||||
"3" :
|
"3" :
|
||||||
{
|
{
|
||||||
"type" : "playerStart", "size" : 1, "owner" : 3,
|
"type" : "playerStart", "size" : 1, "owner" : 3,
|
||||||
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
||||||
"treaureLikeZone" : 1
|
"treasureLikeZone" : 1
|
||||||
},
|
},
|
||||||
"4" :
|
"4" :
|
||||||
{
|
{
|
||||||
"type" : "playerStart", "size" : 1, "owner" : 4,
|
"type" : "playerStart", "size" : 1, "owner" : 4,
|
||||||
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
"playerTowns" : { "castles" : 1 }, "neutralTowns" : { "towns" : 1 }, "townsAreSameType" : true,
|
||||||
"treaureLikeZone" : 1
|
"treasureLikeZone" : 1
|
||||||
},
|
},
|
||||||
"5" :
|
"5" :
|
||||||
{
|
{
|
||||||
@ -60,7 +60,7 @@
|
|||||||
{
|
{
|
||||||
"type" : "playerStart", "size" : 1, "owner" : 2,
|
"type" : "playerStart", "size" : 1, "owner" : 2,
|
||||||
"playerTowns" : { "castles" : 1 },
|
"playerTowns" : { "castles" : 1 },
|
||||||
"treaureLikeZone" : 1
|
"treasureLikeZone" : 1
|
||||||
},
|
},
|
||||||
"3" :
|
"3" :
|
||||||
{
|
{
|
||||||
@ -70,7 +70,7 @@
|
|||||||
"4" :
|
"4" :
|
||||||
{
|
{
|
||||||
"type" : "treasure", "size" : 2, "neutralTowns" : { "towns" : 1 }, "townTypeLikeZone" : "2",
|
"type" : "treasure", "size" : 2, "neutralTowns" : { "towns" : 1 }, "townTypeLikeZone" : "2",
|
||||||
"treaureLikeZone" : 3
|
"treasureLikeZone" : 3
|
||||||
},
|
},
|
||||||
"5" :
|
"5" :
|
||||||
{
|
{
|
||||||
@ -113,14 +113,14 @@
|
|||||||
"treaureLikeZone" : 1
|
"treaureLikeZone" : 1
|
||||||
},
|
},
|
||||||
"4" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "1", "treasure" : {"min" : 3000, "max": 10000} },
|
"4" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "1", "treasure" : {"min" : 3000, "max": 10000} },
|
||||||
"5" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "1", "treaureLikeZone" : 4},
|
"5" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "1", "treasureLikeZone" : 4},
|
||||||
"6" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "2", "treaureLikeZone" : 4 },
|
"6" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "2", "treasureLikeZone" : 4 },
|
||||||
"7" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "2", "treaureLikeZone" : 4 },
|
"7" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "2", "treasureLikeZone" : 4 },
|
||||||
"8" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "3", "treaureLikeZone" : 4 },
|
"8" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "3", "treasureLikeZone" : 4 },
|
||||||
"9" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "3", "treaureLikeZone" : 4 },
|
"9" : { "type" : "treasure", "size" : 1, "terrainTypeLikeZone" : "3", "treasureLikeZone" : 4 },
|
||||||
"10" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treasure" : {"min" : 10000, "max": 25000} },
|
"10" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treasure" : {"min" : 10000, "max": 25000} },
|
||||||
"11" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treaureLikeZone" : 10 },
|
"11" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treasureLikeZone" : 10 },
|
||||||
"12" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treaureLikeZone" : 10 }
|
"12" : { "type" : "treasure", "size" : 1, "neutralTowns" : { "towns" : 1 }, "treasureLikeZone" : 10 }
|
||||||
},
|
},
|
||||||
"connections" :
|
"connections" :
|
||||||
[
|
[
|
||||||
|
@ -63,9 +63,6 @@ void CJsonRmgTemplateLoader::loadTemplates()
|
|||||||
zone->setMatchTerrainToTown(zoneNode["matchTerrainToTown"].Bool());
|
zone->setMatchTerrainToTown(zoneNode["matchTerrainToTown"].Bool());
|
||||||
zone->setTerrainTypes(parseTerrainTypes(zoneNode["terrainTypes"].Vector(), zone->getDefaultTerrainTypes()));
|
zone->setTerrainTypes(parseTerrainTypes(zoneNode["terrainTypes"].Vector(), zone->getDefaultTerrainTypes()));
|
||||||
zone->setTownsAreSameType((zoneNode["townsAreSameType"].Bool()));
|
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
|
//treasures
|
||||||
if (!zoneNode["treasure"].isNull())
|
if (!zoneNode["treasure"].isNull())
|
||||||
@ -80,17 +77,31 @@ void CJsonRmgTemplateLoader::loadTemplates()
|
|||||||
zone->addTreasureInfo(ti);
|
zone->addTreasureInfo(ti);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
zones[zone->getId()] = zone;
|
||||||
|
}
|
||||||
|
|
||||||
|
//copy settings from already parsed zones
|
||||||
|
for (const auto & zonePair : templateNode["zones"].Struct())
|
||||||
|
{
|
||||||
|
auto zoneId = boost::lexical_cast<TRmgTemplateZoneId>(zonePair.first);
|
||||||
|
auto zone = zones[zoneId];
|
||||||
|
|
||||||
|
const auto & zoneNode = zonePair.second;
|
||||||
|
|
||||||
|
//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()));
|
||||||
|
|
||||||
if (!zoneNode["treasureLikeZone"].isNull())
|
if (!zoneNode["treasureLikeZone"].isNull())
|
||||||
{
|
{
|
||||||
//TODO: check if the zone with that index exists
|
|
||||||
for (auto treasureInfo : zones[zoneNode["treasureLikeZone"].Float()]->getTreasureInfo())
|
for (auto treasureInfo : zones[zoneNode["treasureLikeZone"].Float()]->getTreasureInfo())
|
||||||
{
|
{
|
||||||
zone->addTreasureInfo(treasureInfo);
|
zone->addTreasureInfo(treasureInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zones[zone->getId()] = zone;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tpl->setZones(zones);
|
tpl->setZones(zones);
|
||||||
|
|
||||||
// Parse connections
|
// Parse connections
|
||||||
|
Reference in New Issue
Block a user