1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-19 21:10:12 +02:00

cleanup of CBonusSystemNode::removeBonusesRecursive

This commit is contained in:
Henning Koehler 2018-03-06 00:03:14 +13:00 committed by ArseniyShestakov
parent 6263c4c3eb
commit e455d97fc7
2 changed files with 7 additions and 11 deletions

View File

@ -791,14 +791,10 @@ void CBonusSystemNode::detachFrom(CBonusSystemNode *parent)
CBonusSystemNode::treeHasChanged();
}
void CBonusSystemNode::removeBonusesRecursive(const CSelector &s)
void CBonusSystemNode::removeBonusesRecursive(const CSelector & s)
{
BonusList bl;
exportedBonuses.getBonuses(bl, s, Selector::all);
for(auto b : bl)
removeBonus(b);
for(CBonusSystemNode *child : children)
removeBonuses(s);
for(CBonusSystemNode * child : children)
child->removeBonusesRecursive(s);
}
@ -850,10 +846,10 @@ void CBonusSystemNode::removeBonus(const std::shared_ptr<Bonus>& b)
CBonusSystemNode::treeHasChanged();
}
void CBonusSystemNode::removeBonuses(const CSelector &selector)
void CBonusSystemNode::removeBonuses(const CSelector & selector)
{
BonusList toRemove;
exportedBonuses.getBonuses(toRemove, selector);
exportedBonuses.getBonuses(toRemove, selector, Selector::all);
for(auto bonus : toRemove)
removeBonus(bonus);
}

View File

@ -709,8 +709,8 @@ public:
void propagateBonus(std::shared_ptr<Bonus> b);
void unpropagateBonus(std::shared_ptr<Bonus> b);
void removeBonus(const std::shared_ptr<Bonus>& b);
void removeBonuses(const CSelector &selector);
void removeBonusesRecursive(const CSelector &s);
void removeBonuses(const CSelector & selector);
void removeBonusesRecursive(const CSelector & s);
void newRedDescendant(CBonusSystemNode *descendant); //propagation needed
void removedRedDescendant(CBonusSystemNode *descendant); //de-propagation needed