From 65a1fbfd3553b7c7b8d8729513f919e752a449a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francesco=20Borz=C3=AC?= Date: Wed, 9 Feb 2022 10:20:55 +0100 Subject: [PATCH] fix(Core/BG): store correct faction id (#10576) --- src/server/game/Battlegrounds/Battleground.cpp | 2 +- src/server/game/Battlegrounds/BattlegroundMgr.cpp | 2 +- src/server/shared/SharedDefines.h | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index ed3a7f0c7..74fc9c22f 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -782,7 +782,7 @@ void Battleground::EndBattleground(TeamId winnerTeamId) stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_BATTLEGROUND); stmt->SetData(0, battlegroundId); - stmt->SetData(1, GetWinner()); + stmt->SetData(1, GetPvPTeamId(GetWinner())); stmt->SetData(2, GetUniqueBracketId()); stmt->SetData(3, GetBgTypeID(true)); CharacterDatabase.Execute(stmt); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 44ff0a5e6..72b3ab612 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -241,7 +241,7 @@ void BattlegroundMgr::BuildPvpLogDataPacket(WorldPacket* data, Battleground* bg) else { *data << uint8(1); // bg ended - *data << uint8(bg->GetWinner() == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE); // who win + *data << uint8(GetPvPTeamId(bg->GetWinner())); // who win } size_t wpos = data->wpos(); diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index 6cb96fc6b..20c327189 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -3400,6 +3400,18 @@ enum ResponseCodes CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x67 }; +enum PvPTeamId +{ + PVP_TEAM_HORDE = 0, // Battleground: Horde, Arena: Green + PVP_TEAM_ALLIANCE = 1, // Battleground: Alliance, Arena: Gold + PVP_TEAM_NEUTRAL = 2 // Battleground: Neutral, Arena: None +}; + +inline PvPTeamId GetPvPTeamId(TeamId teamId) +{ + return teamId == TEAM_ALLIANCE ? PVP_TEAM_ALLIANCE : PVP_TEAM_HORDE; +} + // indexes of BattlemasterList.dbc enum BattlegroundTypeId {