1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Merge branch 'rmg-refactor-enums' into rmg-no-monster-zone

This commit is contained in:
Warzyw647
2023-05-20 17:28:25 +02:00
8 changed files with 33 additions and 44 deletions

View File

@@ -140,7 +140,7 @@ ZoneOptions::ZoneOptions():
owner(std::nullopt),
matchTerrainToTown(true),
townsAreSameType(false),
zoneMonsterStrength(EMonsterStrength::ZONE_NORMAL),
monsterStrength(EZoneMonsterStrength::NORMAL),
minesLikeZone(NO_ZONE),
terrainTypeLikeZone(NO_ZONE),
treasureLikeZone(NO_ZONE)
@@ -378,7 +378,7 @@ void ZoneOptions::serializeJson(JsonSerializeFormat & handler)
{
//TODO: add support for std::map to serializeEnum
static const std::vector<std::string> STRENGTH =
static const std::vector<std::string> zoneMonsterStrengths =
{
"none",
"weak",
@@ -386,18 +386,7 @@ void ZoneOptions::serializeJson(JsonSerializeFormat & handler)
"strong"
};
si32 rawStrength = 0;
if(handler.saving)
{
rawStrength = static_cast<decltype(rawStrength)>(zoneMonsterStrength);
rawStrength++;
}
handler.serializeEnum("monsters", rawStrength, EMonsterStrength::ZONE_NORMAL + 1, STRENGTH);
if(!handler.saving)
{
rawStrength--;
zoneMonsterStrength = static_cast<decltype(zoneMonsterStrength)>(rawStrength);
}
handler.serializeEnum("monsters", monsterStrength, EZoneMonsterStrength::NORMAL, zoneMonsterStrengths); // default is normal monsters
}
if(treasureLikeZone == NO_ZONE)