aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <none@none>2010-08-30 18:33:02 +0200
committerQAston <none@none>2010-08-30 18:33:02 +0200
commitee8d61eaa49b2d3d9eb76ffeefe9fef6cd057181 (patch)
tree9e824fe0e1b6165f475a4179f76a2add0c67d207 /src
parent8d0f2f8a310ee16c838c7c1aec57967fdfd2aaa9 (diff)
*Missing function from commit r90b0ebdba9 :(.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 16c7b739260..161addda839 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -4497,6 +4497,27 @@ void Unit::RemoveAllAurasOnDeath()
}
}
+void Unit::RemoveAllAurasRequiringDeadTarget()
+{
+ for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();)
+ {
+ Aura const * aura = iter->second->GetBase();
+ if (!aura->IsPassive() && IsRequiringDeadTargetSpell(aura->GetSpellProto()))
+ _UnapplyAura(iter, AURA_REMOVE_BY_DEFAULT);
+ else
+ ++iter;
+ }
+
+ for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();)
+ {
+ Aura * aura = iter->second;
+ if (!aura->IsPassive() && IsRequiringDeadTargetSpell(aura->GetSpellProto()))
+ RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT);
+ else
+ ++iter;
+ }
+}
+
void Unit::DelayOwnedAuras(uint32 spellId, uint64 caster, int32 delaytime)
{
for (AuraMap::iterator iter = m_ownedAuras.lower_bound(spellId); iter != m_ownedAuras.upper_bound(spellId);++iter)