Beispiel #1
0
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);
	}
}
Beispiel #2
0
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);
	}
}
Beispiel #3
0
void BonusList::getAllBonuses(BonusList &out) const
{
	for(Bonus *b : bonuses)
		out.push_back(b);
}
Beispiel #4
0
void BonusList::getAllBonuses(BonusList &out) const
{
	BOOST_FOREACH(Bonus *b, bonuses)
		out.push_back(b);
}