Core/Auras: make AuraEffect::GetTargetList and AuraEffect::GetApplica…

…tionList accept any container
This commit is contained in:
Aokromes committed 2017-03-16 02:14:05 +01:00
1 parent f3d4d21bf7
commit d66cd16ddb
2 files changed
+25 -10

No files matched your search

@@ -450,24 +450,26 @@ AuraEffect::~AuraEffect()
delete m_spellmod;
}
void AuraEffect::GetTargetList(std::list<Unit*> & targetList) const
template <typename Container>
void AuraEffect::GetTargetList(Container& targetContainer) const
{
Aura::ApplicationMap const & targetMap = GetBase()->GetApplicationMap();
Aura::ApplicationMap const& targetMap = GetBase()->GetApplicationMap();
// remove all targets which were not added to new list - they no longer deserve area aura
for (Aura::ApplicationMap::const_iterator appIter = targetMap.begin(); appIter != targetMap.end(); ++appIter)
for (auto appIter = targetMap.begin(); appIter != targetMap.end(); ++appIter)
{
if (appIter->second->HasEffect(GetEffIndex()))
targetList.push_back(appIter->second->GetTarget());
targetContainer.push_back(appIter->second->GetTarget());
}
}
void AuraEffect::GetApplicationList(std::list<AuraApplication*> & applicationList) const
template <typename Container>
void AuraEffect::GetApplicationList(Container& applicationContainer) const
{
Aura::ApplicationMap const & targetMap = GetBase()->GetApplicationMap();
for (Aura::ApplicationMap::const_iterator appIter = targetMap.begin(); appIter != targetMap.end(); ++appIter)
Aura::ApplicationMap const& targetMap = GetBase()->GetApplicationMap();
for (auto appIter = targetMap.begin(); appIter != targetMap.end(); ++appIter)
{
if (appIter->second->HasEffect(GetEffIndex()))
applicationList.push_back(appIter->second);
applicationContainer.push_back(appIter->second);
}
}
@@ -6168,3 +6170,11 @@ void AuraEffect::HandleModSpellCategoryCooldown(AuraApplication const* aurApp, u
if (Player* player = aurApp->GetTarget()->ToPlayer())
player->SendSpellCategoryCooldowns();
}
template TC_GAME_API void AuraEffect::GetTargetList(std::list<Unit*>&) const;
template TC_GAME_API void AuraEffect::GetTargetList(std::deque<Unit*>&) const;
template TC_GAME_API void AuraEffect::GetTargetList(std::vector<Unit*>&) const;
template TC_GAME_API void AuraEffect::GetApplicationList(std::list<AuraApplication*>&) const;
template TC_GAME_API void AuraEffect::GetApplicationList(std::deque<AuraApplication*>&) const;
template TC_GAME_API void AuraEffect::GetApplicationList(std::vector<AuraApplication*>&) const;
@@ -39,8 +39,13 @@ class TC_GAME_API AuraEffect
Unit* GetCaster() const { return GetBase()->GetCaster(); }
ObjectGuid GetCasterGUID() const { return GetBase()->GetCasterGUID(); }
Aura* GetBase() const { return m_base; }
void GetTargetList(std::list<Unit*> & targetList) const;
void GetApplicationList(std::list<AuraApplication*> & applicationList) const;
template <typename Container>
void GetTargetList(Container& targetContainer) const;
template <typename Container>
void GetApplicationList(Container& applicationContainer) const;
SpellModifier* GetSpellModifier() const { return m_spellmod; }
SpellInfo const* GetSpellInfo() const { return m_spellInfo; }