1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

invalidate bonus cashe on effect actualization

This commit is contained in:
AlexVinS 2015-04-13 08:51:23 +03:00
parent a437373a15
commit 3a50afe1a3

View File

@ -1342,21 +1342,6 @@ DLL_LINKAGE void BattleSpellCast::applyGs( CGameState *gs )
spell->applyBattle(gs->curB, this);
}
void actualizeEffect(CStack * s, const std::vector<Bonus> & ef)
{
//actualizing features vector
for(const Bonus &fromEffect : ef)
{
for(Bonus *stackBonus : s->getBonusList()) //TODO: optimize
{
if(stackBonus->source == Bonus::SPELL_EFFECT && stackBonus->type == fromEffect.type && stackBonus->subtype == fromEffect.subtype)
{
stackBonus->turnsRemain = std::max(stackBonus->turnsRemain, fromEffect.turnsRemain);
}
}
}
}
void actualizeEffect(CStack * s, const Bonus & ef)
{
for(Bonus *stackBonus : s->getBonusList()) //TODO: optimize
@ -1366,6 +1351,17 @@ void actualizeEffect(CStack * s, const Bonus & ef)
stackBonus->turnsRemain = std::max(stackBonus->turnsRemain, ef.turnsRemain);
}
}
CBonusSystemNode::treeHasChanged();
}
void actualizeEffect(CStack * s, const std::vector<Bonus> & ef)
{
//actualizing features vector
for(const Bonus &fromEffect : ef)
{
actualizeEffect(s, fromEffect);
}
}
DLL_LINKAGE void SetStackEffect::applyGs( CGameState *gs )