Misc/Util: Add a template function for returning a random element from any container

This commit is contained in:
Shocker
2011-09-15 21:28:40 +03:00
parent 8504a0107e
commit 7afb179185
23 changed files with 44 additions and 96 deletions
@@ -1400,10 +1400,7 @@ void GameObject::Use(Unit* user)
{
for (int i = 0; i < info->summoningRitual.casterTargetSpellTargets; i++)
{
std::set<uint32>::const_iterator itr = m_unique_users.begin();
std::advance(itr, rand() % m_unique_users.size());
if (Unit* target = Unit::GetUnit(*this, uint64(*itr)))
if (Unit* target = Unit::GetUnit(*this, (uint64)SelectRandomContainerElement(m_unique_users)))
spellCaster->CastSpell(target, info->summoningRitual.casterTargetSpell, true);
}
}
+1 -3
View File
@@ -14938,9 +14938,7 @@ Unit* Unit::SelectNearbyTarget(float dist) const
return NULL;
// select random
std::list<Unit*>::const_iterator tcIter = targets.begin();
std::advance(tcIter, urand(0, targets.size()-1));
return *tcIter;
return SelectRandomContainerElement(targets);
}
void Unit::ApplyAttackTimePercentMod(WeaponAttackType att, float val, bool apply)