1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Fix possible crashes on attempt to parse bonus

This commit is contained in:
Ivan Savenko
2025-06-15 23:54:43 +03:00
parent f9b4a36a5f
commit 464865f20d
2 changed files with 14 additions and 12 deletions

View File

@@ -903,19 +903,15 @@ void CCreatureHandler::loadCreatureJson(CCreature * creature, const JsonNode & c
{
creature->animDefName = AnimationPath::fromJson(config["graphics"]["animation"]);
//FIXME: MOD COMPATIBILITY
if (config["abilities"].getType() == JsonNode::JsonType::DATA_STRUCT)
for(const auto & ability : config["abilities"].Struct())
{
for(const auto & ability : config["abilities"].Struct())
if (!ability.second.isNull())
{
if (!ability.second.isNull())
{
auto b = JsonUtils::parseBonus(ability.second, creature->getBonusTextID(ability.first));
b->source = BonusSource::CREATURE_ABILITY;
b->sid = BonusSourceID(creature->getId());
b->duration = BonusDuration::PERMANENT;
creature->addNewBonus(b);
}
auto b = JsonUtils::parseBonus(ability.second, creature->getBonusTextID(ability.first));
b->source = BonusSource::CREATURE_ABILITY;
b->sid = BonusSourceID(creature->getId());
b->duration = BonusDuration::PERMANENT;
creature->addNewBonus(b);
}
}