diff options
author | QAston <none@none> | 2009-07-31 13:21:32 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-07-31 13:21:32 +0200 |
commit | b212461f95aad264b608abfb88e66e0cf4ce511f (patch) | |
tree | f97ca6171659153c6f045e71b33332e3ef1d178f /src/game/SpellAuras.cpp | |
parent | 1f53433c6c4de01709410581ba644be7e6aaf6fe (diff) | |
parent | 40f7c7243cae08cda7b129ac13d4768414753b4e (diff) |
*Merge after backout.
--HG--
branch : trunk
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r-- | src/game/SpellAuras.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 6ac842128b7..eef918ae5e8 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3235,13 +3235,37 @@ void AuraEffect::HandleAuraModShapeshift(bool apply, bool Real, bool changeAmoun case FORM_FLIGHT_EPIC: case FORM_FLIGHT: case FORM_MOONKIN: + { // remove movement affects m_target->RemoveMovementImpairingAuras(); +/* + m_target->RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT); + Unit::AuraList const& slowingAuras = m_target->GetAurasByType(SPELL_AURA_MOD_DECREASE_SPEED); + for (Unit::AuraList::const_iterator iter = slowingAuras.begin(); iter != slowingAuras.end();) + { + SpellEntry const* aurSpellInfo = (*iter)->GetSpellProto(); + + // If spell that caused this aura has Croud Control or Daze effect + if((GetAllSpellMechanicMask(aurSpellInfo) & MECHANIC_NOT_REMOVED_BY_SHAPESHIFT) || + // some Daze spells have these parameters instead of MECHANIC_DAZE + (aurSpellInfo->SpellIconID == 15 && aurSpellInfo->Dispel == 0)) + { + ++iter; + continue; + } + + // All OK, remove aura now + m_target->RemoveAurasDueToSpellByCancel(aurSpellInfo->Id); + iter = slowingAuras.begin(); + } +*/ // and polymorphic affects if(m_target->IsPolymorphed()) m_target->RemoveAurasDueToSpell(m_target->getTransForm()); + break; + } default: break; } |