From 406f2bcd026741a44958692e400473ab35f4cea0 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 31 Aug 2022 11:40:32 +0200 Subject: [PATCH] =?UTF-8?q?fix(Core/Battlegrounds):=20Fixed=20setting=20pr?= =?UTF-8?q?oper=20winner=20team=20at=20the=20end=20=E2=80=A6=20(#12868)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Core/Battlegrounds): Fixed setting proper winner team at the end of battleground. Fixes #11717 Fixes #12688 --- src/server/game/Battlegrounds/Battleground.h | 1 + src/server/game/Spells/SpellEffects.cpp | 1 + src/server/shared/SharedDefines.h | 24 ++++++++++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index 7e2331f2f..a6a10145c 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -99,6 +99,7 @@ enum BattlegroundMarks { SPELL_WS_MARK_LOSER = 24950, SPELL_WS_MARK_WINNER = 24951, + SPELL_WS_MARK_TIE = 66126, SPELL_AB_MARK_LOSER = 24952, SPELL_AB_MARK_WINNER = 24953, SPELL_AV_MARK_LOSER = 24954, diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index bf087abac..26b2cb27b 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1668,6 +1668,7 @@ void Spell::DoCreateItem(uint8 /*effIndex*/, uint32 itemId) case SPELL_AV_MARK_LOSER: case SPELL_WS_MARK_WINNER: case SPELL_WS_MARK_LOSER: + case SPELL_WS_MARK_TIE: case SPELL_AB_MARK_WINNER: case SPELL_AB_MARK_LOSER: SelfCast = true; diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index 37c91c9e4..584e0c3f8 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -3418,12 +3418,32 @@ uint8 constexpr PVP_TEAMS_COUNT = 2; inline PvPTeamId GetPvPTeamId(TeamId teamId) { - return teamId == TEAM_ALLIANCE ? PVP_TEAM_ALLIANCE : PVP_TEAM_HORDE; + if (teamId == TEAM_ALLIANCE) + { + return PVP_TEAM_ALLIANCE; + } + + if (teamId == TEAM_HORDE) + { + return PVP_TEAM_HORDE; + } + + return PVP_TEAM_NEUTRAL; } inline TeamId GetTeamId(PvPTeamId teamId) { - return teamId == PVP_TEAM_ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; + if (teamId == PVP_TEAM_ALLIANCE) + { + return TEAM_ALLIANCE; + } + + if (teamId == PVP_TEAM_HORDE) + { + return TEAM_HORDE; + } + + return TEAM_NEUTRAL; } // indexes of BattlemasterList.dbc