diff options
author | QAston <none@none> | 2010-08-30 18:33:02 +0200 |
---|---|---|
committer | QAston <none@none> | 2010-08-30 18:33:02 +0200 |
commit | ee8d61eaa49b2d3d9eb76ffeefe9fef6cd057181 (patch) | |
tree | 9e824fe0e1b6165f475a4179f76a2add0c67d207 | |
parent | 8d0f2f8a310ee16c838c7c1aec57967fdfd2aaa9 (diff) |
*Missing function from commit r90b0ebdba9 :(.
--HG--
branch : trunk
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 21 |
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) |