From e455d97fc787777b3e7a21d7d81345d34a42457b Mon Sep 17 00:00:00 2001 From: Henning Koehler <henning.koehler.nz@gmail.com> Date: Tue, 6 Mar 2018 00:03:14 +1300 Subject: [PATCH] cleanup of CBonusSystemNode::removeBonusesRecursive --- lib/HeroBonus.cpp | 14 +++++--------- lib/HeroBonus.h | 4 ++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/HeroBonus.cpp b/lib/HeroBonus.cpp index 6fc322ceb..0d356c1ed 100644 --- a/lib/HeroBonus.cpp +++ b/lib/HeroBonus.cpp @@ -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); } diff --git a/lib/HeroBonus.h b/lib/HeroBonus.h index 5659470d9..7455c05fc 100644 --- a/lib/HeroBonus.h +++ b/lib/HeroBonus.h @@ -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