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

Reworked JsonNode constructors to more logical form

This commit is contained in:
Ivan Savenko
2024-02-13 13:18:10 +02:00
parent 54796c7c56
commit 08a27663f9
25 changed files with 125 additions and 161 deletions

View File

@@ -545,13 +545,10 @@ void CMapFormatJson::writeTeams(JsonSerializer & handler)
for(const std::set<PlayerColor> & teamData : teamsData)
{
JsonNode team(JsonNode::JsonType::DATA_VECTOR);
JsonNode team;
for(const PlayerColor & player : teamData)
{
JsonNode member(JsonNode::JsonType::DATA_STRING);
member.String() = GameConstants::PLAYER_COLOR_NAMES[player.getNum()];
team.Vector().push_back(std::move(member));
}
team.Vector().emplace_back(GameConstants::PLAYER_COLOR_NAMES[player.getNum()]);
dest.Vector().push_back(std::move(team));
}
handler.serializeRaw("teams", dest, std::nullopt);
@@ -586,7 +583,7 @@ void CMapFormatJson::readTriggeredEvent(TriggeredEvent & event, const JsonNode &
void CMapFormatJson::writeTriggeredEvents(JsonSerializer & handler)
{
JsonNode triggeredEvents(JsonNode::JsonType::DATA_STRUCT);
JsonNode triggeredEvents;
for(const auto & event : mapHeader->triggeredEvents)
writeTriggeredEvent(event, triggeredEvents[event.identifier]);
@@ -657,7 +654,7 @@ void CMapFormatJson::writeDisposedHeroes(JsonSerializeFormat & handler)
auto definition = definitions->enterStruct(type);
JsonNode players(JsonNode::JsonType::DATA_VECTOR);
JsonNode players;
definition->serializeIdArray("availableFor", hero.players);
}
}
@@ -812,7 +809,7 @@ JsonNode CMapLoaderJson::getFromArchive(const std::string & archiveFilename)
auto data = loader.load(resource)->readAll();
JsonNode res(reinterpret_cast<char*>(data.first.get()), data.second);
JsonNode res(reinterpret_cast<const std::byte*>(data.first.get()), data.second);
return res;
}
@@ -1329,7 +1326,7 @@ void CMapSaverJson::writeTerrain()
void CMapSaverJson::writeObjects()
{
logGlobal->trace("Saving objects");
JsonNode data(JsonNode::JsonType::DATA_STRUCT);
JsonNode data;
JsonSerializer handler(mapObjectResolver.get(), data);
@@ -1343,7 +1340,7 @@ void CMapSaverJson::writeObjects()
if(map->grailPos.valid())
{
JsonNode grail(JsonNode::JsonType::DATA_STRUCT);
JsonNode grail;
grail["type"].String() = "grail";
grail["x"].Float() = map->grailPos.x;