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:
parent
6263c4c3eb
commit
e455d97fc7
@ -791,14 +791,10 @@ void CBonusSystemNode::detachFrom(CBonusSystemNode *parent)
|
|||||||
CBonusSystemNode::treeHasChanged();
|
CBonusSystemNode::treeHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBonusSystemNode::removeBonusesRecursive(const CSelector &s)
|
void CBonusSystemNode::removeBonusesRecursive(const CSelector & s)
|
||||||
{
|
{
|
||||||
BonusList bl;
|
removeBonuses(s);
|
||||||
exportedBonuses.getBonuses(bl, s, Selector::all);
|
for(CBonusSystemNode * child : children)
|
||||||
for(auto b : bl)
|
|
||||||
removeBonus(b);
|
|
||||||
|
|
||||||
for(CBonusSystemNode *child : children)
|
|
||||||
child->removeBonusesRecursive(s);
|
child->removeBonusesRecursive(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,10 +846,10 @@ void CBonusSystemNode::removeBonus(const std::shared_ptr<Bonus>& b)
|
|||||||
CBonusSystemNode::treeHasChanged();
|
CBonusSystemNode::treeHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBonusSystemNode::removeBonuses(const CSelector &selector)
|
void CBonusSystemNode::removeBonuses(const CSelector & selector)
|
||||||
{
|
{
|
||||||
BonusList toRemove;
|
BonusList toRemove;
|
||||||
exportedBonuses.getBonuses(toRemove, selector);
|
exportedBonuses.getBonuses(toRemove, selector, Selector::all);
|
||||||
for(auto bonus : toRemove)
|
for(auto bonus : toRemove)
|
||||||
removeBonus(bonus);
|
removeBonus(bonus);
|
||||||
}
|
}
|
||||||
|
@ -709,8 +709,8 @@ public:
|
|||||||
void propagateBonus(std::shared_ptr<Bonus> b);
|
void propagateBonus(std::shared_ptr<Bonus> b);
|
||||||
void unpropagateBonus(std::shared_ptr<Bonus> b);
|
void unpropagateBonus(std::shared_ptr<Bonus> b);
|
||||||
void removeBonus(const std::shared_ptr<Bonus>& b);
|
void removeBonus(const std::shared_ptr<Bonus>& b);
|
||||||
void removeBonuses(const CSelector &selector);
|
void removeBonuses(const CSelector & selector);
|
||||||
void removeBonusesRecursive(const CSelector &s);
|
void removeBonusesRecursive(const CSelector & s);
|
||||||
void newRedDescendant(CBonusSystemNode *descendant); //propagation needed
|
void newRedDescendant(CBonusSystemNode *descendant); //propagation needed
|
||||||
void removedRedDescendant(CBonusSystemNode *descendant); //de-propagation needed
|
void removedRedDescendant(CBonusSystemNode *descendant); //de-propagation needed
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user