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

Bonus: complex duration as bitset

Fixes #2125
This commit is contained in:
Konstantin P
2023-05-05 12:56:53 +03:00
parent e9a90a8cbf
commit 8764765dcf
9 changed files with 105 additions and 38 deletions

View File

@@ -975,7 +975,15 @@ bool JsonUtils::parseBonus(const JsonNode &ability, Bonus *b)
switch (value->getType())
{
case JsonNode::JsonType::DATA_STRING:
b->duration = static_cast<BonusDuration>(parseByMap(bonusDurationMap, value, "duration type "));
b->duration = parseByMap(bonusDurationMap, value, "duration type ");
break;
case JsonNode::JsonType::DATA_VECTOR:
{
BonusDuration::Type dur = 0;
for (const JsonNode & d : value->Vector())
dur |= parseByMapN(bonusDurationMap, &d, "duration type ");
b->duration = dur;
}
break;
default:
logMod->error("Error! Wrong bonus duration format.");