1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

Fix: RMG issues: 1) hota 2) assertions

This commit is contained in:
Dmitry Orlov
2020-10-25 01:03:32 +03:00
parent c0a5d1ccf0
commit 3cb0dfb143
2 changed files with 26 additions and 9 deletions

View File

@ -196,11 +196,27 @@ void CObjectClassesHandler::loadObjectEntry(const std::string & identifier, cons
//some mods redefine content handlers in the decoration.json in such way:
//"core:sign" : { "types" : { "forgeSign" : { ...
if (!obj->subObjects.count(id)) // DO NOT override
static const std::vector<std::string> knownProblemObjects
{
"hota.hota decorations:hotaPandoraBox"
, "hota.hota decorations:hotaSubterreanGate"
};
bool overrideForce = !obj->subObjects.count(id) ||
std::any_of(knownProblemObjects.begin(), knownProblemObjects.end(), [obj, id](const std::string & str)
{
return str.compare(obj->subObjects[id]->subTypeName) == 0;
});
if (overrideForce) // DO NOT override mod handlers by default
{
obj->subObjects[id] = handler;
obj->subIds[convertedId] = id;
}
else
{
logGlobal->warn("Don't override handler %s in object %s(%d)::%s(%d) subTypeName : %s"
, obj->handlerName, obj->identifier, obj->id, convertedId, id, obj->subObjects[id]->subTypeName);
}
}
CObjectClassesHandler::ObjectContainter * CObjectClassesHandler::loadFromJson(const JsonNode & json, const std::string & name)