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

Fixes issue of bonuses not correctly removed

This commit is contained in:
Tomasz Zieliński
2024-04-26 19:22:20 +02:00
parent 23fd47ae63
commit 04691c851f
3 changed files with 21 additions and 3 deletions

View File

@@ -414,8 +414,20 @@ void CBonusSystemNode::unpropagateBonus(const std::shared_ptr<Bonus> & b)
{
if(b->propagator->shouldBeAttached(this))
{
bonuses -= b;
logBonus->trace("#$# %s #is no longer propagated to# %s", b->Description(), nodeName());
if (bonuses -= b)
logBonus->trace("#$# %s #is no longer propagated to# %s", b->Description(), nodeName());
else
logBonus->error("Error on unpropagateBonus. #$# %s is not propagated to %s", b->Description(), nodeName());
bonuses.remove_if([this, b](const auto & bonus)
{
if (bonus->propagationUpdater && bonus->propagationUpdater == b->propagationUpdater)
{
treeHasChanged();
return true;
}
return false;
});
}
TNodes lchildren;