1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Bonus system: use updateBonuses in battleTurnPasseed

This commit is contained in:
ArseniyShestakov
2015-11-09 15:48:07 +03:00
parent ee1c5e452f
commit 7f0b0bd1b5

View File

@@ -769,12 +769,9 @@ void CBonusSystemNode::updateBonuses(const CSelector &s)
exportedBonuses.getBonuses(bl, s); exportedBonuses.getBonuses(bl, s);
for(Bonus *b : bl) for(Bonus *b : bl)
{ {
if(b->duration & Bonus::N_DAYS) b->turnsRemain--;
{ if(b->turnsRemain <= 0)
b->turnsRemain--; removeBonus(b);
if(b->turnsRemain <= 0)
removeBonus(b);
}
} }
for(CBonusSystemNode *child : children) for(CBonusSystemNode *child : children)
@@ -968,18 +965,7 @@ void CBonusSystemNode::getRedDescendants(TNodes &out)
void CBonusSystemNode::battleTurnPassed() void CBonusSystemNode::battleTurnPassed()
{ {
BonusList bonusesCpy = exportedBonuses; //copy, because removing bonuses invalidates iters updateBonuses(Bonus::NTurns);
for (auto & elem : bonusesCpy)
{
Bonus *b = elem;
if(b->duration & Bonus::N_TURNS)
{
b->turnsRemain--;
if(b->turnsRemain <= 0)
removeBonus(b);
}
}
} }
void CBonusSystemNode::exportBonus(Bonus * b) void CBonusSystemNode::exportBonus(Bonus * b)