mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 23:50:44 +01:00
Core/Auras: make AuraEffect::GetTargetList and AuraEffect::GetApplicationList accept any container
This commit is contained in:
@@ -395,24 +395,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6248,3 +6250,11 @@ void AuraEffect::HandleRaidProcFromChargeWithValueAuraProc(AuraApplication* aurA
|
||||
TC_LOG_DEBUG("spells", "AuraEffect::HandleRaidProcFromChargeWithValueAuraProc: Triggering spell %u from aura %u proc", triggerSpellId, GetId());
|
||||
target->CastCustomSpell(target, triggerSpellId, &value, NULL, NULL, true, NULL, this, GetCasterGUID());
|
||||
}
|
||||
|
||||
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,12 @@ 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;
|
||||
|
||||
SpellInfo const* GetSpellInfo() const { return m_spellInfo; }
|
||||
uint32 GetId() const { return m_spellInfo->Id; }
|
||||
|
||||
Reference in New Issue
Block a user