aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeleqraph <nyrdeveloper@gmail.com>2023-05-06 17:39:37 +0200
committerGitHub <noreply@github.com>2023-05-06 17:39:37 +0200
commit7c0ab49673626a74a3a9d6caee92099c6e265bf1 (patch)
tree15456635e6fbadd80b2a429a2e989bfa0fb89b1b
parent920b9a99bdd2d7eb9b7a787c4872a38b862f75c8 (diff)
Core/Auras: Implement SpellAuraInterruptFlags2::LeaveArenaOrBattleground (#28943)
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp2
-rw-r--r--src/server/game/Spells/SpellDefines.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 0bca373d715..a8a94b88733 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -908,6 +908,8 @@ void Battleground::RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool Sen
player->RemoveAura(SPELL_MERCENARY_SHAPESHIFT);
player->RemovePlayerFlagEx(PLAYER_FLAGS_EX_MERCENARY_MODE);
+ player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::LeaveArenaOrBattleground);
+
if (!player->IsAlive()) // resurrect on exit
{
player->ResurrectPlayer(1.0f);
diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h
index e7bbd409437..3c89e1359d3 100644
--- a/src/server/game/Spells/SpellDefines.h
+++ b/src/server/game/Spells/SpellDefines.h
@@ -129,7 +129,7 @@ enum class SpellAuraInterruptFlags2 : uint32
Disconnect = 0x00000400, // NYI
EnteringInstance = 0x00000800, // NYI
DuelEnd = 0x00001000, // NYI
- LeaveArenaOrBattleground = 0x00002000, // NYI
+ LeaveArenaOrBattleground = 0x00002000, // Implemented in Battleground::RemovePlayerAtLeave
ChangeTalent = 0x00004000,
ChangeGlyph = 0x00008000,
SeamlessTransfer = 0x00010000, // NYI