diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellAuras.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index de7ecaa8962..fc66b5af7b8 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3259,10 +3259,12 @@ void AuraEffect::HandleAuraModShapeshift(bool apply, bool Real, bool changeAmoun { SpellEntry const* aurSpellInfo = (*iter)->GetSpellProto(); + uint32 aurMechMask = GetAllSpellMechanicMask(aurSpellInfo); + // 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)) + if((aurMechMask & MECHANIC_NOT_REMOVED_BY_SHAPESHIFT) || + // some Daze spells have these parameters instead of MECHANIC_DAZE (skip snare spells) + aurSpellInfo->SpellIconID == 15 && aurSpellInfo->Dispel == 0 && (aurMechMask & (1 << MECHANIC_SNARE))==0) { ++iter; continue; |