void BonusList::getBonuses(BonusList & out, const CSelector &selector, const CSelector &limit) const { for (auto & elem : bonuses) { Bonus *b = elem; //add matching bonuses that matches limit predicate or have NO_LIMIT if no given predicate if(selector(b) && ((!limit && b->effectRange == Bonus::NO_LIMIT) || ((bool)limit && limit(b)))) out.push_back(b); } }
void BonusList::getBonuses(BonusList & out, const CSelector &selector, const CSelector &limit) const { for (ui32 i = 0; i < bonuses.size(); i++) { Bonus *b = bonuses[i]; //add matching bonuses that matches limit predicate or have NO_LIMIT if no given predicate if(selector(b) && ((!limit && b->effectRange == Bonus::NO_LIMIT) || (limit && limit(b)))) out.push_back(b); } }
void BonusList::getAllBonuses(BonusList &out) const { for(Bonus *b : bonuses) out.push_back(b); }
void BonusList::getAllBonuses(BonusList &out) const { BOOST_FOREACH(Bonus *b, bonuses) out.push_back(b); }