aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGacko <gacko28@gmx.de>2014-03-30 15:05:04 +0200
committerGacko <gacko28@gmx.de>2014-03-30 15:05:04 +0200
commit7630b3c6273541f057a168e4abf724903f63f79d (patch)
treec92ed8045ebaa63e548d50aac9913e228517439c /src
parent338a0047c5744a6a3daf803bea6c29cb7df503ce (diff)
SmartAI: Use same method for removing auras in EnterEvadeMode as in CreatureAI
Also fixes warnings about duplicate auras. Self-casted auras were not removed on entering evade mode in SAI as they are in CreatureAI.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp16
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h2
2 files changed, 1 insertions, 17 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index a203aeb6b97..23dea877776 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -412,26 +412,12 @@ void SmartAI::MovementInform(uint32 MovementType, uint32 Data)
MovepointReached(Data);
}
-void SmartAI::RemoveAuras()
-{
- /// @fixme: duplicated logic in CreatureAI::_EnterEvadeMode (could use RemoveAllAurasExceptType)
- Unit::AuraApplicationMap& appliedAuras = me->GetAppliedAuras();
- for (Unit::AuraApplicationMap::iterator iter = appliedAuras.begin(); iter != appliedAuras.end();)
- {
- Aura const* aura = iter->second->GetBase();
- if (!aura->IsPassive() && !aura->HasEffectType(SPELL_AURA_CONTROL_VEHICLE) && !aura->HasEffectType(SPELL_AURA_CLONE_CASTER) && aura->GetCasterGUID() != me->GetGUID())
- me->RemoveAura(iter);
- else
- ++iter;
- }
-}
-
void SmartAI::EnterEvadeMode()
{
if (!me->IsAlive() || me->IsInEvadeMode())
return;
- RemoveAuras();
+ me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_CLONE_CASTER);
me->AddUnitState(UNIT_STATE_EVADE);
me->DeleteThreatList();
diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h
index dcf64b657f8..4d66b976746 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.h
+++ b/src/server/game/AI/SmartScripts/SmartAI.h
@@ -193,8 +193,6 @@ class SmartAI : public CreatureAI
}
void StartDespawn() { mDespawnState = 2; }
- void RemoveAuras();
-
void OnSpellClick(Unit* clicker, bool& result);
private: