From ed241a2fd6c8fd419d350210aa61eb1ad05b27bb Mon Sep 17 00:00:00 2001 From: Treeston Date: Sun, 9 Jul 2017 13:58:59 +0200 Subject: Prevent an issue that stopped Aura AfterEffect handlers being called on default handler prevention. (#20001) Fixes #19996. --- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index a69ebe9212e..2d57d1472b4 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -665,13 +665,15 @@ void AuraEffect::HandleEffect(AuraApplication * aurApp, uint8 mode, bool apply) else prevented = GetBase()->CallScriptEffectRemoveHandlers(this, aurApp, (AuraEffectHandleModes)mode); - // check if script events have removed the aura or if default effect prevention was requested - if ((apply && aurApp->GetRemoveMode()) || prevented) + // check if script events have removed the aura already + if (apply && aurApp->GetRemoveMode()) return; - (*this.*AuraEffectHandler[GetAuraType()])(aurApp, mode, apply); + // call default effect handler if it wasn't prevented + if (!prevented) + (*this.*AuraEffectHandler[GetAuraType()])(aurApp, mode, apply); - // check if script events have removed the aura or if default effect prevention was requested + // check if the default handler reemoved the aura if (apply && aurApp->GetRemoveMode()) return; -- cgit v1.2.3