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

fix for insert@/modify@ in JsonUtils::merge; minor typo fixes

This commit is contained in:
Michał Zaremba
2025-08-22 15:51:11 +02:00
parent 6206633e4c
commit be736eb1b2
3 changed files with 5 additions and 5 deletions

View File

@@ -331,7 +331,7 @@ void CTownHandler::loadBuilding(CTown * town, const std::string & stringID, cons
//MODS COMPATIBILITY FOR pre-1.6 //MODS COMPATIBILITY FOR pre-1.6
if(ret->produce.empty() && ret->bid == BuildingID::RESOURCE_SILO) if(ret->produce.empty() && ret->bid == BuildingID::RESOURCE_SILO)
{ {
logGlobal->warn("Resource silo in town '%s' does not produces any resources!", ret->town->faction->getJsonKey()); logGlobal->warn("Resource silo in town '%s' does not produce any resources!", ret->town->faction->getJsonKey());
switch (ret->town->primaryRes.toEnum()) switch (ret->town->primaryRes.toEnum())
{ {
case EGameResID::GOLD: case EGameResID::GOLD:

View File

@@ -34,7 +34,7 @@ static std::optional<int> getIndexSafe(const JsonNode & node, const std::string
} }
catch(const std::out_of_range & ) catch(const std::out_of_range & )
{ {
logMod->warn("Failed to replace index when replacing individual items in array. Value '%s' does not exists in targeted array of %d items", keyName, node.Vector().size()); logMod->warn("Failed to replace index when replacing individual items in array. Value '%s' does not exist in targeted array of %d items", keyName, node.Vector().size());
return std::nullopt; return std::nullopt;
} }
}; };
@@ -253,14 +253,14 @@ void JsonUtils::merge(JsonNode & dest, JsonNode & source, bool ignoreOverride, b
else if (boost::algorithm::starts_with(node.first, "insert@")) else if (boost::algorithm::starts_with(node.first, "insert@"))
{ {
constexpr int numberPosition = std::char_traits<char>::length("insert@"); constexpr int numberPosition = std::char_traits<char>::length("insert@");
auto index = getIndexSafe(node.second, node.first.substr(numberPosition)); auto index = getIndexSafe(dest, node.first.substr(numberPosition));
if (index) if (index)
dest.Vector().insert(dest.Vector().begin() + index.value(), std::move(node.second)); dest.Vector().insert(dest.Vector().begin() + index.value(), std::move(node.second));
} }
else if (boost::algorithm::starts_with(node.first, "modify@")) else if (boost::algorithm::starts_with(node.first, "modify@"))
{ {
constexpr int numberPosition = std::char_traits<char>::length("modify@"); constexpr int numberPosition = std::char_traits<char>::length("modify@");
auto index = getIndexSafe(node.second, node.first.substr(numberPosition)); auto index = getIndexSafe(dest, node.first.substr(numberPosition));
if (index) if (index)
merge(dest.Vector().at(index.value()), node.second, ignoreOverride); merge(dest.Vector().at(index.value()), node.second, ignoreOverride);
} }

View File

@@ -154,7 +154,7 @@ bool ContentTypeHandler::loadMod(const std::string & modName, bool validate)
{ {
// normal new object // normal new object
logMod->trace("no index in loadMod(%s)", name); logMod->trace("no index in loadMod(%s)", name);
performValidate(data,name); performValidate(data, name);
handler->loadObject(modName, name, data); handler->loadObject(modName, name, data);
} }
} }