diff options
Diffstat (limited to 'src/server')
38 files changed, 218 insertions, 212 deletions
| diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 94af759f183..08fc5d69c14 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -365,7 +365,7 @@ bool CriteriaData::Meets(uint32 criteriaId, Player const* source, WorldObject co          case CRITERIA_DATA_TYPE_T_TEAM:              if (!target || target->GetTypeId() != TYPEID_PLAYER)                  return false; -            return target->ToPlayer()->GetTeam() == Team.Team; +            return target->ToPlayer()->GetTeam() == ::Team(Team.Team);          case CRITERIA_DATA_TYPE_S_DRUNK:              return Player::GetDrunkenstateByValue(source->GetDrunkValue()) >= DrunkenState(Drunk.State);          case CRITERIA_DATA_TYPE_HOLIDAY: @@ -378,7 +378,7 @@ bool CriteriaData::Meets(uint32 criteriaId, Player const* source, WorldObject co              if (!bg)                  return false; -            uint32 score = bg->GetTeamScore(bg->GetPlayerTeam(source->GetGUID()) == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE); +            uint32 score = bg->GetTeamScore(bg->GetPlayerTeam(source->GetGUID()) == ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE);              return score >= BattlegroundScore.Min && score <= BattlegroundScore.Max;          }          case CRITERIA_DATA_TYPE_INSTANCE_SCRIPT: diff --git a/src/server/game/Battlegrounds/Arena.cpp b/src/server/game/Battlegrounds/Arena.cpp index 6ec0f0f8c1e..422dd9fbe1b 100644 --- a/src/server/game/Battlegrounds/Arena.cpp +++ b/src/server/game/Battlegrounds/Arena.cpp @@ -114,7 +114,7 @@ void Arena::RemovePlayerAtLeave(ObjectGuid guid, bool transport, bool sendPacket          if (itr != m_Players.end()) // check if the player was a participant of the match, or only entered through gm command (appear)          {              // if the player was a match participant, calculate rating -            uint32 team = itr->second.Team; +            Team team = itr->second.Team;              ArenaTeam* winnerArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(GetOtherTeam(team)));              ArenaTeam* loserArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(team)); @@ -142,7 +142,7 @@ void Arena::CheckWinConditions()          EndBattleground(ALLIANCE);  } -void Arena::EndBattleground(uint32 winner) +void Arena::EndBattleground(Team winner)  {      // arena rating calculation      if (isRated()) @@ -159,17 +159,17 @@ void Arena::EndBattleground(uint32 winner)          // In case of arena draw, follow this logic:          // winnerArenaTeam => ALLIANCE, loserArenaTeam => HORDE -        ArenaTeam* winnerArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(winner == 0 ? uint32(ALLIANCE) : winner)); -        ArenaTeam* loserArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(winner == 0 ? uint32(HORDE) : GetOtherTeam(winner))); +        ArenaTeam* winnerArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(winner == TEAM_OTHER ? ALLIANCE : winner)); +        ArenaTeam* loserArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(winner == TEAM_OTHER ? HORDE : GetOtherTeam(winner)));          if (winnerArenaTeam && loserArenaTeam && winnerArenaTeam != loserArenaTeam)          {              // In case of arena draw, follow this logic:              // winnerMatchmakerRating => ALLIANCE, loserMatchmakerRating => HORDE              loserTeamRating = loserArenaTeam->GetRating(); -            loserMatchmakerRating = GetArenaMatchmakerRating(winner == 0 ? uint32(HORDE) : GetOtherTeam(winner)); +            loserMatchmakerRating = GetArenaMatchmakerRating(winner == TEAM_OTHER ? HORDE : GetOtherTeam(winner));              winnerTeamRating = winnerArenaTeam->GetRating(); -            winnerMatchmakerRating = GetArenaMatchmakerRating(winner == 0 ? uint32(ALLIANCE) : winner); +            winnerMatchmakerRating = GetArenaMatchmakerRating(winner == TEAM_OTHER ? ALLIANCE : winner);              if (winner != 0)              { @@ -217,7 +217,7 @@ void Arena::EndBattleground(uint32 winner)              for (auto const& i : GetPlayers())              { -                uint32 team = i.second.Team; +                Team team = i.second.Team;                  if (i.second.OfflineRemoveTime)                  { diff --git a/src/server/game/Battlegrounds/Arena.h b/src/server/game/Battlegrounds/Arena.h index 8322aecda6f..ccd1563b8e8 100644 --- a/src/server/game/Battlegrounds/Arena.h +++ b/src/server/game/Battlegrounds/Arena.h @@ -70,7 +70,7 @@ class TC_GAME_API Arena : public Battleground      private:          void RemovePlayerAtLeave(ObjectGuid guid, bool transport, bool sendPacket) override;          void CheckWinConditions() override; -        void EndBattleground(uint32 winner) override; +        void EndBattleground(Team winner) override;          ArenaTeamScore _arenaTeamScores[PVP_TEAMS_COUNT];  }; diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 910026e325f..5f3dff221aa 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -184,7 +184,7 @@ void Battleground::Update(uint32 diff)              {                  if (GetElapsedTime() >= 47 * MINUTE*IN_MILLISECONDS)                  { -                    EndBattleground(0); +                    EndBattleground(TEAM_OTHER);                      return;                  }              } @@ -284,9 +284,9 @@ inline void Battleground::_ProcessOfflineQueue()      }  } -uint32 Battleground::GetPrematureWinner() +Team Battleground::GetPrematureWinner()  { -    uint32 winner = 0; +    Team winner = TEAM_OTHER;      if (GetPlayersCountByTeam(ALLIANCE) >= GetMinPlayersPerTeam())          winner = ALLIANCE;      else if (GetPlayersCountByTeam(HORDE) >= GetMinPlayersPerTeam()) @@ -516,15 +516,15 @@ Player* Battleground::_GetPlayer(ObjectGuid guid, bool offlineRemove, char const      return player;  } -Player* Battleground::_GetPlayerForTeam(uint32 teamId, BattlegroundPlayerMap::const_iterator itr, char const* context) const +Player* Battleground::_GetPlayerForTeam(Team team, BattlegroundPlayerMap::const_iterator itr, char const* context) const  {      Player* player = _GetPlayer(itr, context);      if (player)      { -        uint32 team = itr->second.Team; -        if (!team) -            team = player->GetEffectiveTeam(); -        if (team != teamId) +        Team playerTeam = itr->second.Team; +        if (!playerTeam) +            playerTeam = player->GetEffectiveTeam(); +        if (playerTeam != team)              player = nullptr;      }      return player; @@ -554,11 +554,11 @@ void Battleground::SendPacketToAll(WorldPacket const* packet) const              player->SendDirectMessage(packet);  } -void Battleground::SendPacketToTeam(uint32 teamId, WorldPacket const* packet, Player* except /*= nullptr*/) const +void Battleground::SendPacketToTeam(Team team, WorldPacket const* packet, Player* except /*= nullptr*/) const  {      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)      { -        if (Player* player = _GetPlayerForTeam(teamId, itr, "SendPacketToTeam")) +        if (Player* player = _GetPlayerForTeam(team, itr, "SendPacketToTeam"))              if (player != except)                  player->SendDirectMessage(packet);      } @@ -587,33 +587,33 @@ void Battleground::PlaySoundToAll(uint32 soundID)      SendPacketToAll(WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID, 0).Write());  } -void Battleground::PlaySoundToTeam(uint32 soundID, uint32 teamID) +void Battleground::PlaySoundToTeam(uint32 soundID, Team team)  { -    SendPacketToTeam(teamID, WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID, 0).Write()); +    SendPacketToTeam(team, WorldPackets::Misc::PlaySound(ObjectGuid::Empty, soundID, 0).Write());  } -void Battleground::CastSpellOnTeam(uint32 SpellID, uint32 TeamID) +void Battleground::CastSpellOnTeam(uint32 SpellID, Team team)  {      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) -        if (Player* player = _GetPlayerForTeam(TeamID, itr, "CastSpellOnTeam")) +        if (Player* player = _GetPlayerForTeam(team, itr, "CastSpellOnTeam"))              player->CastSpell(player, SpellID, true);  } -void Battleground::RemoveAuraOnTeam(uint32 SpellID, uint32 TeamID) +void Battleground::RemoveAuraOnTeam(uint32 SpellID, Team team)  {      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) -        if (Player* player = _GetPlayerForTeam(TeamID, itr, "RemoveAuraOnTeam")) +        if (Player* player = _GetPlayerForTeam(team, itr, "RemoveAuraOnTeam"))              player->RemoveAura(SpellID);  } -void Battleground::RewardHonorToTeam(uint32 Honor, uint32 TeamID) +void Battleground::RewardHonorToTeam(uint32 Honor, Team team)  {      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) -        if (Player* player = _GetPlayerForTeam(TeamID, itr, "RewardHonorToTeam")) +        if (Player* player = _GetPlayerForTeam(team, itr, "RewardHonorToTeam"))              UpdatePlayerScore(player, SCORE_BONUS_HONOR, Honor);  } -void Battleground::RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID) +void Battleground::RewardReputationToTeam(uint32 faction_id, uint32 Reputation, Team team)  {      FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);      if (!factionEntry) @@ -621,7 +621,7 @@ void Battleground::RewardReputationToTeam(uint32 faction_id, uint32 Reputation,      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)      { -        Player* player = _GetPlayerForTeam(TeamID, itr, "RewardReputationToTeam"); +        Player* player = _GetPlayerForTeam(team, itr, "RewardReputationToTeam");          if (!player)              continue; @@ -640,7 +640,7 @@ void Battleground::UpdateWorldState(int32 worldStateId, int32 value, bool hidden      sWorldStateMgr->SetValue(worldStateId, value, hidden, GetBgMap());  } -void Battleground::EndBattleground(uint32 winner) +void Battleground::EndBattleground(Team winner)  {      RemoveFromBGFreeSlotQueue(); @@ -703,7 +703,7 @@ void Battleground::EndBattleground(uint32 winner)      for (BattlegroundPlayerMap::iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)      { -        uint32 team = itr->second.Team; +        Team team = itr->second.Team;          Player* player = _GetPlayer(itr, "EndBattleground");          if (!player) @@ -825,7 +825,7 @@ void Battleground::BlockMovement(Player* player)  void Battleground::RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool SendPacket)  { -    uint32 team = GetPlayerTeam(guid); +    Team team = GetPlayerTeam(guid);      bool participant = false;      // Remove from lists/maps      BattlegroundPlayerMap::iterator itr = m_Players.find(guid); @@ -932,7 +932,7 @@ void Battleground::RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool Sen          // Do next only if found in battleground          player->SetBattlegroundId(0, BATTLEGROUND_TYPE_NONE, BATTLEGROUND_QUEUE_NONE);  // We're not in BG.          // reset destination bg team -        player->SetBGTeam(0); +        player->SetBGTeam(TEAM_OTHER);          // remove all criterias on bg leave          player->FailCriteria(CriteriaFailEvent::LeaveBattleground, 0); @@ -1001,7 +1001,7 @@ void Battleground::AddPlayer(Player* player, BattlegroundQueueTypeId queueId)      // score struct must be created in inherited class -    uint32 team = player->GetBGTeam(); +    Team team = player->GetBGTeam();      BattlegroundPlayer bp;      bp.OfflineRemoveTime = 0; @@ -1111,7 +1111,7 @@ void Battleground::AddPlayer(Player* player, BattlegroundQueueTypeId queueId)  }  // this method adds player to his team's bg group, or sets his correct group if player is already in bg group -void Battleground::AddOrSetPlayerToCorrectBgGroup(Player* player, uint32 team) +void Battleground::AddOrSetPlayerToCorrectBgGroup(Player* player, Team team)  {      ObjectGuid playerGuid = player->GetGUID();      Group* group = GetBgRaid(team); @@ -1204,11 +1204,11 @@ void Battleground::RemoveFromBGFreeSlotQueue()  // get the number of free slots for team  // returns the number how many players can join battleground to MaxPlayersPerTeam -uint32 Battleground::GetFreeSlotsForTeam(uint32 Team) const +uint32 Battleground::GetFreeSlotsForTeam(Team team) const  {      // if BG is starting and CONFIG_BATTLEGROUND_INVITATION_TYPE == BG_QUEUE_INVITATION_TYPE_NO_BALANCE, invite anyone      if (GetStatus() == STATUS_WAIT_JOIN && sWorld->getIntConfig(CONFIG_BATTLEGROUND_INVITATION_TYPE) == BG_QUEUE_INVITATION_TYPE_NO_BALANCE) -        return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; +        return (GetInvitedCount(team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(team) : 0;      // if BG is already started or CONFIG_BATTLEGROUND_INVITATION_TYPE != BG_QUEUE_INVITATION_TYPE_NO_BALANCE, do not allow to join too much players of one faction      uint32 otherTeamInvitedCount; @@ -1216,7 +1216,7 @@ uint32 Battleground::GetFreeSlotsForTeam(uint32 Team) const      uint32 otherTeamPlayersCount;      uint32 thisTeamPlayersCount; -    if (Team == ALLIANCE) +    if (team == ALLIANCE)      {          thisTeamInvitedCount  = GetInvitedCount(ALLIANCE);          otherTeamInvitedCount = GetInvitedCount(HORDE); @@ -1690,7 +1690,7 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)          if (killer == victim)              return; -        uint32 killerTeam = GetPlayerTeam(killer->GetGUID()); +        Team killerTeam = GetPlayerTeam(killer->GetGUID());          UpdatePlayerScore(killer, SCORE_HONORABLE_KILLS, 1);          UpdatePlayerScore(killer, SCORE_KILLING_BLOWS, 1); @@ -1716,17 +1716,17 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)  // Return the player's team based on battlegroundplayer info  // Used in same faction arena matches mainly -uint32 Battleground::GetPlayerTeam(ObjectGuid guid) const +Team Battleground::GetPlayerTeam(ObjectGuid guid) const  {      BattlegroundPlayerMap::const_iterator itr = m_Players.find(guid);      if (itr != m_Players.end())          return itr->second.Team; -    return 0; +    return TEAM_OTHER;  } -uint32 Battleground::GetOtherTeam(uint32 teamId) const +Team Battleground::GetOtherTeam(Team team) const  { -    return teamId ? ((teamId == ALLIANCE) ? HORDE : ALLIANCE) : 0; +    return team ? ((team == ALLIANCE) ? HORDE : ALLIANCE) : TEAM_OTHER;  }  bool Battleground::IsPlayerInBattleground(ObjectGuid guid) const @@ -1757,12 +1757,12 @@ void Battleground::PlayerAddedToBGCheckIfBGIsRunning(Player* player)      player->SendDirectMessage(pvpMatchStatistics.Write());  } -uint32 Battleground::GetAlivePlayersCountByTeam(uint32 Team) const +uint32 Battleground::GetAlivePlayersCountByTeam(Team team) const  {      int count = 0;      for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)      { -        if (itr->second.Team == Team) +        if (itr->second.Team == team)          {              Player* player = ObjectAccessor::FindPlayer(itr->first);              if (player && player->IsAlive()) @@ -1782,9 +1782,9 @@ int32 Battleground::GetObjectType(ObjectGuid guid)      return -1;  } -void Battleground::SetBgRaid(uint32 TeamID, Group* bg_raid) +void Battleground::SetBgRaid(Team team, Group* bg_raid)  { -    Group*& old_raid = TeamID == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE]; +    Group*& old_raid = team == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE];      if (old_raid)          old_raid->SetBattlegroundGroup(nullptr);      if (bg_raid) @@ -1820,7 +1820,7 @@ void Battleground::RewardXPAtKill(Player* killer, Player* victim)      }  } -uint32 Battleground::GetTeamScore(uint32 teamId) const +uint32 Battleground::GetTeamScore(TeamId teamId) const  {      if (teamId == TEAM_ALLIANCE || teamId == TEAM_HORDE)          return m_TeamScores[teamId]; diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index 92e0d606e6a..e0afa255242 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -170,7 +170,7 @@ enum BattlegroundStatus  struct BattlegroundPlayer  {      time_t OfflineRemoveTime;                              // for tracking and removing offline players from queue after 5 minutes -    uint32 Team;                                           // Player's team +    ::Team Team;                                           // Player's team      bool Mercenary;      BattlegroundQueueTypeId queueTypeId;  }; @@ -318,12 +318,12 @@ class TC_GAME_API Battleground : public ZoneScript          void AddToBGFreeSlotQueue();                        //this queue will be useful when more battlegrounds instances will be available          void RemoveFromBGFreeSlotQueue();                   //this method could delete whole BG instance, if another free is available -        void DecreaseInvitedCount(uint32 team)      { (team == ALLIANCE) ? --m_InvitedAlliance : --m_InvitedHorde; } -        void IncreaseInvitedCount(uint32 team)      { (team == ALLIANCE) ? ++m_InvitedAlliance : ++m_InvitedHorde; } +        void DecreaseInvitedCount(Team team)      { (team == ALLIANCE) ? --m_InvitedAlliance : --m_InvitedHorde; } +        void IncreaseInvitedCount(Team team)      { (team == ALLIANCE) ? ++m_InvitedAlliance : ++m_InvitedHorde; } -        uint32 GetInvitedCount(uint32 team) const   { return (team == ALLIANCE) ? m_InvitedAlliance : m_InvitedHorde; } +        uint32 GetInvitedCount(Team team) const   { return (team == ALLIANCE) ? m_InvitedAlliance : m_InvitedHorde; }          bool HasFreeSlots() const; -        uint32 GetFreeSlotsForTeam(uint32 Team) const; +        uint32 GetFreeSlotsForTeam(Team team) const;          bool isArena() const;          bool isBattleground() const; @@ -355,7 +355,7 @@ class TC_GAME_API Battleground : public ZoneScript          // Packet Transfer          // method that should fill worldpacket with actual world states (not yet implemented for all battlegrounds!) -        void SendPacketToTeam(uint32 teamId, WorldPacket const* packet, Player* except = nullptr) const; +        void SendPacketToTeam(Team team, WorldPacket const* packet, Player* except = nullptr) const;          void SendPacketToAll(WorldPacket const* packet) const;          void SendChatMessage(Creature* source, uint8 textId, WorldObject* target = nullptr); @@ -364,22 +364,22 @@ class TC_GAME_API Battleground : public ZoneScript          template<class Do>          void BroadcastWorker(Do& _do); -        void PlaySoundToTeam(uint32 SoundID, uint32 TeamID); +        void PlaySoundToTeam(uint32 SoundID, Team team);          void PlaySoundToAll(uint32 SoundID); -        void CastSpellOnTeam(uint32 SpellID, uint32 TeamID); -        void RemoveAuraOnTeam(uint32 SpellID, uint32 TeamID); -        void RewardHonorToTeam(uint32 Honor, uint32 TeamID); -        void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID); +        void CastSpellOnTeam(uint32 SpellID, Team team); +        void RemoveAuraOnTeam(uint32 SpellID, Team team); +        void RewardHonorToTeam(uint32 Honor, Team team); +        void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, Team team);          void UpdateWorldState(int32 worldStateId, int32 value, bool hidden = false); -        virtual void EndBattleground(uint32 winner); +        virtual void EndBattleground(Team winner);          void BlockMovement(Player* player);          void SendMessageToAll(uint32 entry, ChatMsg type, Player const* source = nullptr);          void PSendMessageToAll(uint32 entry, ChatMsg type, Player const* source, ...);          // Raid Group -        Group* GetBgRaid(uint32 TeamID) const { return TeamID == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE]; } -        void SetBgRaid(uint32 TeamID, Group* bg_raid); +        Group* GetBgRaid(Team team) const { return team == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE]; } +        void SetBgRaid(Team team, Group* bg_raid);          virtual void BuildPvPLogDataPacket(WorldPackets::Battleground::PVPMatchStatistics& pvpLogData) const; @@ -388,25 +388,25 @@ class TC_GAME_API Battleground : public ZoneScript          virtual bool UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);          void UpdatePvpStat(Player* player, uint32 pvpStatId, uint32 value); -        static TeamId GetTeamIndexByTeamId(uint32 Team) { return Team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; } -        uint32 GetPlayersCountByTeam(uint32 Team) const { return m_PlayersCount[GetTeamIndexByTeamId(Team)]; } -        uint32 GetAlivePlayersCountByTeam(uint32 Team) const;   // used in arenas to correctly handle death in spirit of redemption / last stand etc. (killer = killed) cases -        void UpdatePlayersCountByTeam(uint32 Team, bool remove) +        static TeamId GetTeamIndexByTeamId(Team team) { return team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; } +        uint32 GetPlayersCountByTeam(Team team) const { return m_PlayersCount[GetTeamIndexByTeamId(team)]; } +        uint32 GetAlivePlayersCountByTeam(Team team) const;   // used in arenas to correctly handle death in spirit of redemption / last stand etc. (killer = killed) cases +        void UpdatePlayersCountByTeam(Team team, bool remove)          {              if (remove) -                --m_PlayersCount[GetTeamIndexByTeamId(Team)]; +                --m_PlayersCount[GetTeamIndexByTeamId(team)];              else -                ++m_PlayersCount[GetTeamIndexByTeamId(Team)]; +                ++m_PlayersCount[GetTeamIndexByTeamId(team)];          }          virtual void CheckWinConditions() { }          // used for rated arena battles -        void SetArenaTeamIdForTeam(uint32 Team, uint32 ArenaTeamId) { m_ArenaTeamIds[GetTeamIndexByTeamId(Team)] = ArenaTeamId; } -        uint32 GetArenaTeamIdForTeam(uint32 Team) const             { return m_ArenaTeamIds[GetTeamIndexByTeamId(Team)]; } -        uint32 GetArenaTeamIdByIndex(uint32 index) const { return m_ArenaTeamIds[index]; } -        void SetArenaMatchmakerRating(uint32 Team, uint32 MMR){ m_ArenaTeamMMR[GetTeamIndexByTeamId(Team)] = MMR; } -        uint32 GetArenaMatchmakerRating(uint32 Team) const          { return m_ArenaTeamMMR[GetTeamIndexByTeamId(Team)]; } +        void SetArenaTeamIdForTeam(Team team, uint32 ArenaTeamId) { m_ArenaTeamIds[GetTeamIndexByTeamId(team)] = ArenaTeamId; } +        uint32 GetArenaTeamIdForTeam(Team team) const             { return m_ArenaTeamIds[GetTeamIndexByTeamId(team)]; } +        uint32 GetArenaTeamIdByIndex(TeamId teamId) const { return m_ArenaTeamIds[teamId]; } +        void SetArenaMatchmakerRating(Team team, uint32 MMR){ m_ArenaTeamMMR[GetTeamIndexByTeamId(team)] = MMR; } +        uint32 GetArenaMatchmakerRating(Team team) const          { return m_ArenaTeamMMR[GetTeamIndexByTeamId(team)]; }          // Triggers handle          // must be implemented in BG subclass @@ -436,7 +436,7 @@ class TC_GAME_API Battleground : public ZoneScript          virtual void AddPlayer(Player* player, BattlegroundQueueTypeId queueId);                // must be implemented in BG subclass -        void AddOrSetPlayerToCorrectBgGroup(Player* player, uint32 team); +        void AddOrSetPlayerToCorrectBgGroup(Player* player, Team team);          virtual void RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool SendPacket);                                                              // can be extended in in BG subclass @@ -462,8 +462,8 @@ class TC_GAME_API Battleground : public ZoneScript          virtual bool HandlePlayerUnderMap(Player* /*player*/) { return false; }          // since arenas can be AvA or Hvh, we have to get the "temporary" team of a player -        uint32 GetPlayerTeam(ObjectGuid guid) const; -        uint32 GetOtherTeam(uint32 teamId) const; +        Team GetPlayerTeam(ObjectGuid guid) const; +        Team GetOtherTeam(Team team) const;          bool IsPlayerInBattleground(ObjectGuid guid) const;          bool IsPlayerMercenaryInBattleground(ObjectGuid guid) const; @@ -478,9 +478,9 @@ class TC_GAME_API Battleground : public ZoneScript          virtual void HandleQuestComplete(uint32 /*questid*/, Player* /*player*/) { }          virtual bool CanActivateGO(int32 /*entry*/, uint32 /*team*/) const { return true; }          virtual bool IsSpellAllowed(uint32 /*spellId*/, Player const* /*player*/) const { return true; } -        uint32 GetTeamScore(uint32 TeamID) const; +        uint32 GetTeamScore(TeamId teamId) const; -        virtual uint32 GetPrematureWinner(); +        virtual Team GetPrematureWinner();          // because BattleGrounds with different types and same level range has different m_BracketId          uint8 GetUniqueBracketId() const; @@ -505,7 +505,7 @@ class TC_GAME_API Battleground : public ZoneScript          Player* _GetPlayer(ObjectGuid guid, bool offlineRemove, char const* context) const;          Player* _GetPlayer(BattlegroundPlayerMap::iterator itr, char const* context) { return _GetPlayer(itr->first, itr->second.OfflineRemoveTime != 0, context); }          Player* _GetPlayer(BattlegroundPlayerMap::const_iterator itr, char const* context) const { return _GetPlayer(itr->first, itr->second.OfflineRemoveTime != 0, context); } -        Player* _GetPlayerForTeam(uint32 teamId, BattlegroundPlayerMap::const_iterator itr, char const* context) const; +        Player* _GetPlayerForTeam(Team team, BattlegroundPlayerMap::const_iterator itr, char const* context) const;          /* Pre- and post-update hooks */ diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index c2c106c43b6..b07012c59db 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -484,7 +484,7 @@ void BattlegroundMgr::SendToBattleground(Player* player, uint32 instanceId, Batt      if (Battleground* bg = GetBattleground(instanceId, bgTypeId))      {          uint32 mapid = bg->GetMapId(); -        uint32 team = player->GetBGTeam(); +        Team team = player->GetBGTeam();          WorldSafeLocsEntry const* pos = bg->GetTeamStartPosition(Battleground::GetTeamIndexByTeamId(team));          TC_LOG_DEBUG("bg.battleground", "BattlegroundMgr::SendToBattleground: Sending {} to map {}, {} (bgType {})", player->GetName(), mapid, pos->Loc.ToString(), bgTypeId); diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp index 9df8417d249..2764fcd5c3c 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp +++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp @@ -425,7 +425,7 @@ uint32 BattlegroundQueue::GetPlayersInQueue(TeamId id)      return m_SelectionPools[id].GetPlayerCount();  } -bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, uint32 side) +bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side)  {      // set side if needed      if (side) @@ -701,9 +701,9 @@ bool BattlegroundQueue::CheckSkirmishForSameFaction(BattlegroundBracketId bracke  {      if (m_SelectionPools[TEAM_ALLIANCE].GetPlayerCount() < minPlayersPerTeam && m_SelectionPools[TEAM_HORDE].GetPlayerCount() < minPlayersPerTeam)          return false; -    uint32 teamIndex = TEAM_ALLIANCE; -    uint32 otherTeam = TEAM_HORDE; -    uint32 otherTeamId = HORDE; +    TeamId teamIndex = TEAM_ALLIANCE; +    TeamId otherTeam = TEAM_HORDE; +    Team otherTeamId = HORDE;      if (m_SelectionPools[TEAM_HORDE].GetPlayerCount() == minPlayersPerTeam)      {          teamIndex = TEAM_HORDE; @@ -715,16 +715,16 @@ bool BattlegroundQueue::CheckSkirmishForSameFaction(BattlegroundBracketId bracke      //store last ginfo pointer      GroupQueueInfo* ginfo = m_SelectionPools[teamIndex].SelectedGroups.back();      //set itr_team to group that was added to selection pool latest -    GroupsQueueType::iterator itr_team = m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].begin(); -    for (; itr_team != m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].end(); ++itr_team) +    GroupsQueueType::iterator itr_team = m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].begin(); +    for (; itr_team != m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].end(); ++itr_team)          if (ginfo == *itr_team)              break; -    if (itr_team == m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].end()) +    if (itr_team == m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].end())          return false;      GroupsQueueType::iterator itr_team2 = itr_team;      ++itr_team2;      //invite players to other selection pool -    for (; itr_team2 != m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].end(); ++itr_team2) +    for (; itr_team2 != m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].end(); ++itr_team2)      {          //if selection pool is full then break;          if (!(*itr_team2)->IsInvitedToBGInstanceGUID && !m_SelectionPools[otherTeam].AddGroup(*itr_team2, minPlayersPerTeam)) @@ -739,15 +739,15 @@ bool BattlegroundQueue::CheckSkirmishForSameFaction(BattlegroundBracketId bracke          //set correct team          (*itr)->Team = otherTeamId;          //add team to other queue -        m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + otherTeam].push_front(*itr); +        m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(otherTeam)].push_front(*itr);          //remove team from old queue          GroupsQueueType::iterator itr2 = itr_team;          ++itr2; -        for (; itr2 != m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].end(); ++itr2) +        for (; itr2 != m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].end(); ++itr2)          {              if (*itr2 == *itr)              { -                m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + teamIndex].erase(itr2); +                m_QueuedGroups[bracket_id][uint8(BG_QUEUE_NORMAL_ALLIANCE) + uint8(teamIndex)].erase(itr2);                  break;              }          } diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.h b/src/server/game/Battlegrounds/BattlegroundQueue.h index 02eb1da9f60..300d934ddee 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.h +++ b/src/server/game/Battlegrounds/BattlegroundQueue.h @@ -38,7 +38,7 @@ struct PlayerQueueInfo                                      // stores informatio  struct GroupQueueInfo                                       // stores information about the group in queue (also used when joined as solo!)  {      std::map<ObjectGuid, PlayerQueueInfo*> Players;         // player queue info map -    uint32  Team;                                           // Player team (ALLIANCE/HORDE) +    ::Team  Team;                                           // Player team (ALLIANCE/HORDE)      uint32  ArenaTeamId;                                    // team id if rated match      uint32  JoinTime;                                       // time when group was added      uint32  RemoveInviteTime;                               // time when we will remove invite for players in group @@ -127,7 +127,7 @@ class TC_GAME_API BattlegroundQueue          BattlegroundQueueTypeId m_queueId; -        bool InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, uint32 side); +        bool InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side);          uint32 m_WaitTimes[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS][COUNT_OF_PLAYERS_TO_AVERAGE_WAIT_TIME];          uint32 m_WaitTimeLastPlayer[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS];          uint32 m_SumOfWaitTimes[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS]; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp index b6a38c7f52c..24fd8729738 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp @@ -193,7 +193,7 @@ void BattlegroundAB::_CalculateTeamNodes(uint8& alliance, uint8& horde)      }  } -uint32 BattlegroundAB::GetPrematureWinner() +Team BattlegroundAB::GetPrematureWinner()  {      // How many bases each team owns      uint8 ally = 0, horde = 0; @@ -481,7 +481,7 @@ void BattlegroundAB::Reset()      _capturePoints.clear();  } -void BattlegroundAB::EndBattleground(uint32 winner) +void BattlegroundAB::EndBattleground(Team winner)  {      // Win reward      if (winner == ALLIANCE) diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h index b66fb49cfe0..c5e3928bff3 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h @@ -225,11 +225,11 @@ class BattlegroundAB : public Battleground          void HandleAreaTrigger(Player* source, uint32 trigger, bool entered) override;          bool SetupBattleground() override;          void Reset() override; -        void EndBattleground(uint32 winner) override; +        void EndBattleground(Team winner) override;          WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override;          WorldSafeLocsEntry const* GetExploitTeleportLocation(Team team) override; -        uint32 GetPrematureWinner() override; +        Team GetPrematureWinner() override;          void ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject* invoker = nullptr) override; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index 321793f936c..4ad5f8685bf 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -47,7 +47,7 @@ BattlegroundAV::BattlegroundAV(BattlegroundTemplate const* battlegroundTemplate)          m_IsInformedNearVictory[i] = false;          m_CaptainAlive[i] = true;          m_CaptainBuffTimer[i] = 0; -        m_Mine_Owner[i] = 0; +        m_Mine_Owner[i] = TEAM_OTHER;          m_Mine_PrevOwner[i] = 0;          m_Mine_Reclaim_Timer[i] = 0;      } @@ -55,7 +55,7 @@ BattlegroundAV::BattlegroundAV(BattlegroundTemplate const* battlegroundTemplate)      m_Mine_Timer = 0;      for (BG_AV_Nodes i = BG_AV_NODES_FIRSTAID_STATION; i < BG_AV_NODES_MAX; ++i) -        InitNode(i, 0, false); +        InitNode(i, TEAM_OTHER, false);      StartMessageIds[BG_STARTING_EVENT_SECOND] = BG_AV_TEXT_START_ONE_MINUTE;      StartMessageIds[BG_STARTING_EVENT_THIRD]  = BG_AV_TEXT_START_HALF_MINUTE; @@ -158,7 +158,7 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)  {      if (GetStatus() != STATUS_IN_PROGRESS)          return;//maybe we should log this, cause this must be a cheater or a big bug -    uint32 team = GetPlayerTeam(player->GetGUID()); +    Team team = GetPlayerTeam(player->GetGUID());      uint8 teamIndex = GetTeamIndexByTeamId(team);      /// @todo add reputation, events (including quest not available anymore, next quest available, go/npc de/spawning)and maybe honor      TC_LOG_DEBUG("bg.battleground", "BG_AV Quest {} completed", questid); @@ -260,7 +260,7 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)      }  } -void BattlegroundAV::UpdateScore(uint16 team, int16 points) +void BattlegroundAV::UpdateScore(Team team, int16 points)  { //note: to remove reinforcementpoints points must be negative, for adding reinforcements points must be positive      ASSERT(team == ALLIANCE || team == HORDE);      uint8 teamindex = GetTeamIndexByTeamId(team); //0=ally 1=horde @@ -402,7 +402,7 @@ void BattlegroundAV::PostUpdateImpl(uint32 diff)                  if (m_Mine_Reclaim_Timer[mine] > diff)                      m_Mine_Reclaim_Timer[mine] -= diff;                  else{ //we don't need to set this timer to 0 cause this codepart wont get called when this thing is 0 -                    ChangeMineOwner(mine, AV_NEUTRAL_TEAM); +                    ChangeMineOwner(mine, TEAM_OTHER);                  }              }          } @@ -435,7 +435,7 @@ void BattlegroundAV::StartingEventOpenDoors()      for (uint16 i= BG_AV_OBJECT_MINE_SUPPLY_S_MIN; i <= BG_AV_OBJECT_MINE_SUPPLY_S_MAX; i++)          SpawnBGObject(i, RESPAWN_IMMEDIATELY);      for (uint8 mine = AV_NORTH_MINE; mine <= AV_SOUTH_MINE; mine++) //mine population -        ChangeMineOwner(mine, AV_NEUTRAL_TEAM, true); +        ChangeMineOwner(mine, TEAM_OTHER, true);      UpdateWorldState(AV_WS_SHOW_HORDE_REINFORCEMENTS, 1);      UpdateWorldState(AV_WS_SHOW_ALLIANCE_REINFORCEMENTS, 1); @@ -447,7 +447,7 @@ void BattlegroundAV::StartingEventOpenDoors()      TriggerGameEvent(BG_AV_EVENT_START_BATTLE);  } -void BattlegroundAV::EndBattleground(uint32 winner) +void BattlegroundAV::EndBattleground(Team winner)  {      //calculate bonuskills for both teams:      //first towers: @@ -536,7 +536,7 @@ void BattlegroundAV::EventPlayerDestroyedPoint(BG_AV_Nodes node)      DestroyNode(node);      UpdateNodeWorldState(node); -    uint32 owner = m_Nodes[node].Owner; +    Team owner = m_Nodes[node].Owner;      if (IsTower(node))      {          uint8 tmp = node-BG_AV_NODES_DUNBALDAR_SOUTH; @@ -580,14 +580,14 @@ void BattlegroundAV::EventPlayerDestroyedPoint(BG_AV_Nodes node)              herold->AI()->Talk(owner == ALLIANCE ? nodeInfo->TextIds.AllianceCapture : nodeInfo->TextIds.HordeCapture);  } -void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial) +void BattlegroundAV::ChangeMineOwner(uint8 mine, Team team, bool initial)  {      // mine=0 northmine mine=1 southmin      // changing the owner results in setting respawntim to infinite for current creatures,      // spawning new mine owners creatures and changing the chest-objects so that the current owning team can use them      ASSERT(mine == AV_NORTH_MINE || mine == AV_SOUTH_MINE);      if (team != ALLIANCE && team != HORDE) -        team = AV_NEUTRAL_TEAM; +        team = TEAM_OTHER;      if (m_Mine_Owner[mine] == team && !initial)          return; @@ -672,15 +672,15 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial)  bool BattlegroundAV::CanActivateGO(int32 GOId, uint32 team) const  {      if (GOId == BG_AV_OBJECTID_MINE_N) -         return (m_Mine_Owner[AV_NORTH_MINE] == team); +         return (m_Mine_Owner[AV_NORTH_MINE] == Team(team));      if (GOId == BG_AV_OBJECTID_MINE_S) -         return (m_Mine_Owner[AV_SOUTH_MINE] == team); +         return (m_Mine_Owner[AV_SOUTH_MINE] == Team(team));      return true; //cause it's no mine'object it is ok if this is true  }  void BattlegroundAV::PopulateNode(BG_AV_Nodes node)  { -    uint32 owner = m_Nodes[node].Owner; +    Team owner = m_Nodes[node].Owner;      ASSERT(owner);      uint32 c_place = AV_CPLACE_DEFENSE_STORM_AID + (4 * node); @@ -800,7 +800,7 @@ uint32 BattlegroundAV::GetObjectThroughNode(BG_AV_Nodes node)                  return node+29;          }      } -    else if (m_Nodes[node].Owner == AV_NEUTRAL_TEAM) +    else if (m_Nodes[node].Owner == TEAM_OTHER)          return BG_AV_OBJECT_FLAG_N_SNOWFALL_GRAVE;      TC_LOG_ERROR("bg.battleground", "BattlegroundAV: Error! GetPlaceNode couldn't resolve node {}", node);      ABORT(); @@ -842,8 +842,8 @@ void BattlegroundAV::EventPlayerDefendsPoint(Player* player, uint32 object)      ASSERT(GetStatus() == STATUS_IN_PROGRESS);      BG_AV_Nodes node = GetNodeThroughObject(object); -    uint32 owner = m_Nodes[node].Owner; //maybe should name it prevowner -    uint32 team = GetPlayerTeam(player->GetGUID()); +    Team owner = m_Nodes[node].Owner; //maybe should name it prevowner +    Team team = GetPlayerTeam(player->GetGUID());      if (owner == team || m_Nodes[node].State != POINT_ASSAULTED)          return; @@ -908,8 +908,8 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)      ASSERT(GetStatus() == STATUS_IN_PROGRESS);      BG_AV_Nodes node = GetNodeThroughObject(object); -    uint32 owner = m_Nodes[node].Owner; //maybe name it prevowner -    uint32 team  = GetPlayerTeam(player->GetGUID()); +    Team owner = m_Nodes[node].Owner; //maybe name it prevowner +    Team team  = GetPlayerTeam(player->GetGUID());      TC_LOG_DEBUG("bg.battleground", "bg_av: player assaults point object {} node {}", object, node);      if (owner == team || team == m_Nodes[node].TotalOwner)          return; //surely a gm used this object @@ -918,7 +918,7 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)      {          if (object == BG_AV_OBJECT_FLAG_N_SNOWFALL_GRAVE) //initial capping          { -            if (!(owner == AV_NEUTRAL_TEAM && m_Nodes[node].TotalOwner == AV_NEUTRAL_TEAM)) +            if (!(owner == TEAM_OTHER && m_Nodes[node].TotalOwner == AV_NEUTRAL_TEAM))                  return;              if (team == ALLIANCE) @@ -959,7 +959,7 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)      //if snowfall gots capped it can be handled like all other graveyards      if (m_Nodes[node].TotalOwner != AV_NEUTRAL_TEAM)      { -        ASSERT(m_Nodes[node].Owner != AV_NEUTRAL_TEAM); +        ASSERT(m_Nodes[node].Owner != TEAM_OTHER);          if (team == ALLIANCE)              SpawnBGObject(object-22, RESPAWN_IMMEDIATELY);          else @@ -1008,7 +1008,7 @@ void BattlegroundAV::UpdateNodeWorldState(BG_AV_Nodes node)      }      if (node == BG_AV_NODES_SNOWFALL_GRAVE) -        UpdateWorldState(AV_WS_SNOWFALL_GRAVEYARD_UNCONTROLLED, m_Nodes[node].Owner == AV_NEUTRAL_TEAM); +        UpdateWorldState(AV_WS_SNOWFALL_GRAVEYARD_UNCONTROLLED, m_Nodes[node].Owner == TEAM_OTHER);  }  void BattlegroundAV::SendMineWorldStates(uint32 mine) @@ -1045,7 +1045,7 @@ WorldSafeLocsEntry const* BattlegroundAV::GetClosestGraveyard(Player* player)      float x, y;      player->GetPosition(x, y); -    uint32 team = GetPlayerTeam(player->GetGUID()); +    Team team = GetPlayerTeam(player->GetGUID());      WorldSafeLocsEntry const* pGraveyard = sObjectMgr->GetWorldSafeLoc(BG_AV_GraveyardIds[GetTeamIndexByTeamId(team) + 7]);      float minDist = (pGraveyard->Loc.GetPositionX() - x) * (pGraveyard->Loc.GetPositionX() - x) + (pGraveyard->Loc.GetPositionY() - y) * (pGraveyard->Loc.GetPositionY() - y); @@ -1345,7 +1345,7 @@ bool BattlegroundAV::SetupBattleground()      return true;  } -void BattlegroundAV::AssaultNode(BG_AV_Nodes node, uint16 team) +void BattlegroundAV::AssaultNode(BG_AV_Nodes node, Team team)  {      if (m_Nodes[node].TotalOwner == team)      { @@ -1386,7 +1386,7 @@ void BattlegroundAV::DestroyNode(BG_AV_Nodes node)      m_Nodes[node].Timer      = 0;  } -void BattlegroundAV::InitNode(BG_AV_Nodes node, uint16 team, bool tower) +void BattlegroundAV::InitNode(BG_AV_Nodes node, Team team, bool tower)  {      m_Nodes[node].TotalOwner = team;      m_Nodes[node].Owner      = team; @@ -1398,7 +1398,7 @@ void BattlegroundAV::InitNode(BG_AV_Nodes node, uint16 team, bool tower)      m_Nodes[node].Tower      = tower;  } -void BattlegroundAV::DefendNode(BG_AV_Nodes node, uint16 team) +void BattlegroundAV::DefendNode(BG_AV_Nodes node, Team team)  {      ASSERT(m_Nodes[node].TotalOwner == team);      ASSERT(m_Nodes[node].Owner != team); @@ -1422,7 +1422,7 @@ void BattlegroundAV::Reset()          m_IsInformedNearVictory[i]=false;          m_CaptainAlive[i] = true;          m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times -        m_Mine_Owner[i] = AV_NEUTRAL_TEAM; +        m_Mine_Owner[i] = TEAM_OTHER;          m_Mine_PrevOwner[i] = m_Mine_Owner[i];      } @@ -1434,7 +1434,7 @@ void BattlegroundAV::Reset()          InitNode(i, HORDE, false);      for (BG_AV_Nodes i = BG_AV_NODES_ICEBLOOD_TOWER; i <= BG_AV_NODES_FROSTWOLF_WTOWER; ++i) //horde towers          InitNode(i, HORDE, true); -    InitNode(BG_AV_NODES_SNOWFALL_GRAVE, AV_NEUTRAL_TEAM, false); //give snowfall neutral owner +    InitNode(BG_AV_NODES_SNOWFALL_GRAVE, TEAM_OTHER, false); //give snowfall neutral owner      m_Mine_Timer = AV_MINE_TICK_TIMER;      for (uint16 i = 0; i < AV_CPLACE_MAX + AsUnderlyingType(AV_STATICCPLACE_MAX); i++) @@ -1442,7 +1442,7 @@ void BattlegroundAV::Reset()              DelCreature(i);  } -uint32 BattlegroundAV::GetPrematureWinner() +Team BattlegroundAV::GetPrematureWinner()  {      uint32 allianceScore = m_Team_Scores[GetTeamIndexByTeamId(ALLIANCE)];      uint32 hordeScore = m_Team_Scores[GetTeamIndexByTeamId(HORDE)]; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h index d7fdc1d36a6..d55d86be096 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h @@ -1571,7 +1571,7 @@ struct BG_AV_NodeInfo      BG_AV_States PrevState;      uint32       Timer;      uint16       TotalOwner; -    uint16       Owner; +    Team         Owner;      uint16       PrevOwner;      bool         Tower;  }; @@ -1594,7 +1594,7 @@ class BattlegroundAV : public Battleground          void Reset() override;          /*general stuff*/ -        void UpdateScore(uint16 team, int16 points); +        void UpdateScore(Team team, int16 points);          /*handlestuff*/ //these are functions which get called from extern          void EventPlayerClickedOnFlag(Player* source, GameObject* target_obj) override; @@ -1603,12 +1603,12 @@ class BattlegroundAV : public Battleground          void HandleQuestComplete(uint32 questid, Player* player) override;          bool CanActivateGO(int32 GOId, uint32 team) const override; -        void EndBattleground(uint32 winner) override; +        void EndBattleground(Team winner) override;          WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override;          WorldSafeLocsEntry const* GetExploitTeleportLocation(Team team) override; -        uint32 GetPrematureWinner() override; +        Team GetPrematureWinner() override;      private:          void PostUpdateImpl(uint32 diff) override; @@ -1618,10 +1618,10 @@ class BattlegroundAV : public Battleground          void EventPlayerDefendsPoint(Player* player, uint32 object);          void EventPlayerDestroyedPoint(BG_AV_Nodes node); -        void AssaultNode(BG_AV_Nodes node, uint16 team); +        void AssaultNode(BG_AV_Nodes node, Team team);          void DestroyNode(BG_AV_Nodes node); -        void InitNode(BG_AV_Nodes node, uint16 team, bool tower); -        void DefendNode(BG_AV_Nodes node, uint16 team); +        void InitNode(BG_AV_Nodes node, Team team, bool tower); +        void DefendNode(BG_AV_Nodes node, Team team);          void PopulateNode(BG_AV_Nodes node);          void DePopulateNode(BG_AV_Nodes node); @@ -1639,7 +1639,7 @@ class BattlegroundAV : public Battleground          bool IsTower(BG_AV_Nodes node) { return m_Nodes[node].Tower; }          /*mine*/ -        void ChangeMineOwner(uint8 mine, uint32 team, bool initial = false); +        void ChangeMineOwner(uint8 mine, Team team, bool initial = false);          /*worldstates*/          void SendMineWorldStates(uint32 mine); @@ -1654,7 +1654,7 @@ class BattlegroundAV : public Battleground          BG_AV_NodeInfo m_Nodes[BG_AV_NODES_MAX]; -        uint32 m_Mine_Owner[2]; +        Team m_Mine_Owner[2];          uint32 m_Mine_PrevOwner[2]; //only for worldstates needed          int32 m_Mine_Timer; //ticks for both teams          uint32 m_Mine_Reclaim_Timer[2]; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp index dfbdc5e5f48..c2b169a6859 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp @@ -101,14 +101,14 @@ void BattlegroundEY::StartingEventOpenDoors()      TriggerGameEvent(BG_EY_EVENT_START_BATTLE);  } -void BattlegroundEY::AddPoints(uint32 Team, uint32 Points) +void BattlegroundEY::AddPoints(Team team, uint32 Points)  { -    TeamId team_index = GetTeamIndexByTeamId(Team); +    TeamId team_index = GetTeamIndexByTeamId(team);      m_TeamScores[team_index] += Points;      m_HonorScoreTics[team_index] += Points;      if (m_HonorScoreTics[team_index] >= m_HonorTics)      { -        RewardHonorToTeam(GetBonusHonorFromKill(1), Team); +        RewardHonorToTeam(GetBonusHonorFromKill(1), team);          m_HonorScoreTics[team_index] -= m_HonorTics;      }      UpdateTeamScore(team_index); @@ -186,7 +186,7 @@ void BattlegroundEY::RemoveAssaultDebuffFromPlayer(Player* player)      player->RemoveAurasDueToSpell(BG_EY_BRUTAL_ASSAULT_SPELL);  } -void BattlegroundEY::UpdateTeamScore(uint32 Team) +void BattlegroundEY::UpdateTeamScore(TeamId Team)  {      uint32 score = GetTeamScore(Team); @@ -205,7 +205,7 @@ void BattlegroundEY::UpdateTeamScore(uint32 Team)          UpdateWorldState(EY_HORDE_RESOURCES, score);  } -void BattlegroundEY::EndBattleground(uint32 winner) +void BattlegroundEY::EndBattleground(Team winner)  {      // Win reward      if (winner == ALLIANCE) @@ -455,7 +455,7 @@ WorldSafeLocsEntry const* BattlegroundEY::GetExploitTeleportLocation(Team team)      return sObjectMgr->GetWorldSafeLoc(team == ALLIANCE ? EY_EXPLOIT_TELEPORT_LOCATION_ALLIANCE : EY_EXPLOIT_TELEPORT_LOCATION_HORDE);  } -uint32 BattlegroundEY::GetPrematureWinner() +Team BattlegroundEY::GetPrematureWinner()  {      if (GetTeamScore(TEAM_ALLIANCE) > GetTeamScore(TEAM_HORDE))          return ALLIANCE; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h index 99710ab01b8..cd4e69a6885 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h @@ -269,10 +269,10 @@ class BattlegroundEY : public Battleground          WorldSafeLocsEntry const* GetExploitTeleportLocation(Team team) override;          bool SetupBattleground() override;          void Reset() override; -        void UpdateTeamScore(uint32 Team); -        void EndBattleground(uint32 winner) override; +        void UpdateTeamScore(TeamId Team); +        void EndBattleground(Team winner) override; -        uint32 GetPrematureWinner() override; +        Team GetPrematureWinner() override;          void ProcessEvent(WorldObject* target, uint32 eventId, WorldObject* invoker) override;          void PostUpdateImpl(uint32 diff) override; @@ -289,10 +289,10 @@ class BattlegroundEY : public Battleground      private:          /* Scorekeeping */ -        void AddPoints(uint32 Team, uint32 Points); +        void AddPoints(Team team, uint32 Points); -        void RemovePoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; } -        void SetTeamPoint(uint32 TeamID, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] = Points; } +        void RemovePoint(Team team, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(team)] -= Points; } +        void SetTeamPoint(Team team, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(team)] = Points; }          uint8 GetControlledBaseCount(TeamId teamId) const; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp index 1a9d53b9ac6..0f6c9a9d622 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp @@ -473,7 +473,7 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target              if (!AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY))              {                  TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a banner (type: {}, entry: {}). Isle of Conquest BG cancelled.", nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry); -                EndBattleground(0); +                EndBattleground(TEAM_OTHER);              }              GetBGObject(nodePoint[i].gameobject_type)->SetFaction(nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp index ac6e07a4b92..51d96a39363 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp @@ -422,7 +422,7 @@ void BattlegroundSA::PostUpdateImpl(uint32 diff)                  RoundScores[1].time = BG_SA_ROUNDLENGTH;                  RoundScores[1].winner = (Attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE;                  if (RoundScores[0].time == RoundScores[1].time) -                    EndBattleground(0); +                    EndBattleground(TEAM_OTHER);                  else if (RoundScores[0].time < RoundScores[1].time)                      EndBattleground(RoundScores[0].winner == TEAM_ALLIANCE ? ALLIANCE : HORDE);                  else @@ -904,7 +904,7 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)                  }                  if (RoundScores[0].time == RoundScores[1].time) -                    EndBattleground(0); +                    EndBattleground(TEAM_OTHER);                  else if (RoundScores[0].time < RoundScores[1].time)                      EndBattleground(RoundScores[0].winner == TEAM_ALLIANCE ? ALLIANCE : HORDE);                  else @@ -920,7 +920,7 @@ void BattlegroundSA::ToggleTimer()      UpdateWorldState(BG_SA_ENABLE_TIMER, TimerEnabled);  } -void BattlegroundSA::EndBattleground(uint32 winner) +void BattlegroundSA::EndBattleground(Team winner)  {      // honor reward for winning      if (winner == ALLIANCE) diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h index 15ea441c0ff..4e8c48b301c 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h @@ -562,7 +562,7 @@ class BattlegroundSA : public Battleground          }          /// Called on battleground ending -        void EndBattleground(uint32 winner) override; +        void EndBattleground(Team winner) override;          /// Called when a player leave battleground          void RemovePlayer(Player* player, ObjectGuid guid, uint32 team) override; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp index dbfca6d7729..c7d2e026c51 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp @@ -62,7 +62,7 @@ BattlegroundWS::BattlegroundWS(BattlegroundTemplate const* battlegroundTemplate)      _bothFlagsKept = false; -    _lastFlagCaptureTeam = 0; +    _lastFlagCaptureTeam = TEAM_OTHER;      m_ReputationCapture = 0;      m_HonorWinKills = 0;      m_HonorEndKills = 0; @@ -85,7 +85,7 @@ void BattlegroundWS::PostUpdateImpl(uint32 diff)              if (GetTeamScore(TEAM_ALLIANCE) == 0)              {                  if (GetTeamScore(TEAM_HORDE) == 0) // No one scored - result is tie -                    EndBattleground(0); +                    EndBattleground(TEAM_OTHER);                  else // Horde has more points and thus wins                      EndBattleground(HORDE);              } @@ -244,7 +244,7 @@ void BattlegroundWS::UpdateFlagState(uint32 team, FlagState value)      }  } -void BattlegroundWS::UpdateTeamScore(uint32 team) +void BattlegroundWS::UpdateTeamScore(TeamId team)  {      if (team == TEAM_ALLIANCE)          UpdateWorldState(BG_WS_FLAG_CAPTURES_ALLIANCE, GetTeamScore(team)); @@ -277,7 +277,7 @@ void BattlegroundWS::Reset()          m_HonorWinKills = 1;          m_HonorEndKills = 2;      } -    _lastFlagCaptureTeam             = 0; +    _lastFlagCaptureTeam             = TEAM_OTHER;      _bothFlagsKept                   = false;      _doors.clear(); @@ -287,7 +287,7 @@ void BattlegroundWS::Reset()      _capturePointAreaTriggers = { };  } -void BattlegroundWS::EndBattleground(uint32 winner) +void BattlegroundWS::EndBattleground(Team winner)  {      // Win reward      if (winner == ALLIANCE) @@ -322,7 +322,7 @@ WorldSafeLocsEntry const* BattlegroundWS::GetExploitTeleportLocation(Team team)      return sObjectMgr->GetWorldSafeLoc(team == ALLIANCE ? WS_EXPLOIT_TELEPORT_LOCATION_ALLIANCE : WS_EXPLOIT_TELEPORT_LOCATION_HORDE);  } -uint32 BattlegroundWS::GetPrematureWinner() +Team BattlegroundWS::GetPrematureWinner()  {      if (GetTeamScore(TEAM_ALLIANCE) > GetTeamScore(TEAM_HORDE))          return ALLIANCE; @@ -375,7 +375,7 @@ void BattlegroundWS::OnAreaTriggerCreate(AreaTrigger* areaTrigger)  void BattlegroundWS::OnFlagStateChange(GameObject* flagInBase, FlagState /*oldValue*/, FlagState newValue, Player* player)  { -    uint32 team = flagInBase->GetEntry() == BG_WS_OBJECT_HORDE_FLAG_IN_BASE ? HORDE : ALLIANCE; +    Team team = flagInBase->GetEntry() == BG_WS_OBJECT_HORDE_FLAG_IN_BASE ? HORDE : ALLIANCE;      TeamId otherTeamId = GetTeamIndexByTeamId(GetOtherTeam(team));      UpdateFlagState(team, newValue); @@ -467,7 +467,7 @@ bool BattlegroundWS::CanCaptureFlag(AreaTrigger* areaTrigger, Player* player)      if (GetStatus() != STATUS_IN_PROGRESS)          return false; -    uint32 team = GetPlayerTeam(player->GetGUID()); +    Team team = GetPlayerTeam(player->GetGUID());      TeamId teamId = GetTeamIndexByTeamId(team);      TeamId otherTeamId = GetTeamIndexByTeamId(GetOtherTeam(team)); @@ -484,9 +484,9 @@ bool BattlegroundWS::CanCaptureFlag(AreaTrigger* areaTrigger, Player* player)  void BattlegroundWS::OnCaptureFlag(AreaTrigger* /*areaTrigger*/, Player* player)  { -    uint32 winner = 0; +    Team winner = TEAM_OTHER; -    uint32 team = GetPlayerTeam(player->GetGUID()); +    Team team = GetPlayerTeam(player->GetGUID());      TeamId teamId = GetTeamIndexByTeamId(team);      TeamId otherTeamId = GetTeamIndexByTeamId(GetOtherTeam(team)); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h index 677867680b2..16f9b031472 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h @@ -152,20 +152,20 @@ class BattlegroundWS : public Battleground          void HandleKillPlayer(Player* player, Player* killer) override;          bool SetupBattleground() override;          void Reset() override; -        void EndBattleground(uint32 winner) override; +        void EndBattleground(Team winner) override;          WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override;          WorldSafeLocsEntry const* GetExploitTeleportLocation(Team team) override;          void UpdateFlagState(uint32 team, FlagState value); -        void SetLastFlagCapture(uint32 team)                { _lastFlagCaptureTeam = team; } -        void UpdateTeamScore(uint32 team); +        void SetLastFlagCapture(Team team)                { _lastFlagCaptureTeam = team; } +        void UpdateTeamScore(TeamId team);          /* Scorekeeping */ -        void AddPoint(uint32 TeamID, uint32 Points = 1)     { m_TeamScores[GetTeamIndexByTeamId(TeamID)] += Points; } -        void SetTeamPoint(uint32 TeamID, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] = Points; } -        void RemovePoint(uint32 TeamID, uint32 Points = 1)  { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; } +        void AddPoint(Team team, uint32 Points = 1)     { m_TeamScores[GetTeamIndexByTeamId(team)] += Points; } +        void SetTeamPoint(Team team, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(team)] = Points; } +        void RemovePoint(Team team, uint32 Points = 1)  { m_TeamScores[GetTeamIndexByTeamId(team)] -= Points; } -        uint32 GetPrematureWinner() override; +        Team GetPrematureWinner() override;          void OnGameObjectCreate(GameObject* gameObject) override;          void OnAreaTriggerCreate(AreaTrigger* areaTrigger) override; @@ -184,7 +184,7 @@ class BattlegroundWS : public Battleground          void RemoveAssaultDebuffFromPlayer(Player* player);      private: -        uint32 _lastFlagCaptureTeam;                       // Winner is based on this if score is equal +        Team _lastFlagCaptureTeam;                       // Winner is based on this if score is equal          uint32 m_ReputationCapture;          uint32 m_HonorWinKills; diff --git a/src/server/game/Cache/CharacterCache.cpp b/src/server/game/Cache/CharacterCache.cpp index 2e2d5677236..20b0e1ffd9d 100644 --- a/src/server/game/Cache/CharacterCache.cpp +++ b/src/server/game/Cache/CharacterCache.cpp @@ -243,11 +243,11 @@ bool CharacterCache::GetCharacterNameByGuid(ObjectGuid guid, std::string& name)      return true;  } -uint32 CharacterCache::GetCharacterTeamByGuid(ObjectGuid guid) const +Team CharacterCache::GetCharacterTeamByGuid(ObjectGuid guid) const  {      auto itr = _characterCacheStore.find(guid);      if (itr == _characterCacheStore.end()) -        return 0; +        return TEAM_OTHER;      return Player::TeamForRace(itr->second.Race);  } diff --git a/src/server/game/Cache/CharacterCache.h b/src/server/game/Cache/CharacterCache.h index 74feef11e35..186ffa1474c 100644 --- a/src/server/game/Cache/CharacterCache.h +++ b/src/server/game/Cache/CharacterCache.h @@ -21,6 +21,7 @@  #include "Define.h"  #include "ObjectGuid.h"  #include "Optional.h" +#include "SharedDefines.h"  #include <string>  struct CharacterCacheEntry @@ -62,7 +63,7 @@ class TC_GAME_API CharacterCache          ObjectGuid GetCharacterGuidByName(std::string const& name) const;          bool GetCharacterNameByGuid(ObjectGuid guid, std::string& name) const; -        uint32 GetCharacterTeamByGuid(ObjectGuid guid) const; +        Team GetCharacterTeamByGuid(ObjectGuid guid) const;          uint32 GetCharacterAccountIdByGuid(ObjectGuid guid) const;          uint32 GetCharacterAccountIdByName(std::string const& name) const;          uint8 GetCharacterLevelByGuid(ObjectGuid guid) const; diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 66f52357f19..f18af4a220b 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -323,7 +323,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) const          case CONDITION_TEAM:          {              if (Player const* player = object->ToPlayer()) -                condMeets = player->GetTeam() == ConditionValue1; +                condMeets = player->GetTeam() == Team(ConditionValue1);              break;          }          case CONDITION_CLASS: diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 1540758c39d..7ab0b6bd04b 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -185,7 +185,7 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)      m_zoneUpdateTimer = 0;      m_areaUpdateId = 0; -    m_team = 0; +    m_team = TEAM_OTHER;      m_nextSave = sWorld->getIntConfig(CONFIG_INTERVAL_SAVE);      m_customizationsChanged = false; @@ -6491,7 +6491,7 @@ void Player::CheckAreaExploreAndOutdoor()      }  } -uint32 Player::TeamForRace(uint8 race) +Team Player::TeamForRace(uint8 race)  {      if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race))      { @@ -17400,7 +17400,7 @@ void Player::_LoadBGData(PreparedQueryResult result)      // SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell, queueTypeId FROM character_battleground_data WHERE guid = ?      m_bgData.bgInstanceID = fields[0].GetUInt32(); -    m_bgData.bgTeam       = fields[1].GetUInt16(); +    m_bgData.bgTeam       = Team(fields[1].GetUInt16());      m_bgData.joinPos      = WorldLocation(fields[6].GetUInt16(),    // Map                                            fields[2].GetFloat(),     // X                                            fields[3].GetFloat(),     // Y @@ -23457,13 +23457,13 @@ void Player::SetBattlegroundEntryPoint()          m_bgData.joinPos.WorldRelocate(m_homebind);  } -void Player::SetBGTeam(uint32 team) +void Player::SetBGTeam(Team team)  {      m_bgData.bgTeam = team;      SetArenaFaction(uint8(team == ALLIANCE ? 1 : 0));  } -uint32 Player::GetBGTeam() const +Team Player::GetBGTeam() const  {      return m_bgData.bgTeam ? m_bgData.bgTeam : GetTeam();  } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 445758350ab..7c5a4d33d6c 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -993,7 +993,7 @@ class Player;  struct BGData  {      BGData() : bgInstanceID(0), bgTypeID(BATTLEGROUND_TYPE_NONE), bgAfkReportedCount(0), bgAfkReportedTimer(0), -        bgTeam(0), mountSpell(0), queueId(BATTLEGROUND_QUEUE_NONE) { ClearTaxiPath(); } +        bgTeam(TEAM_OTHER), mountSpell(0), queueId(BATTLEGROUND_QUEUE_NONE) { ClearTaxiPath(); }      uint32 bgInstanceID;                    ///< This variable is set to bg->m_InstanceID,                                              ///  when player is teleported to BG - (it is battleground's GUID) @@ -1003,7 +1003,7 @@ struct BGData      uint8              bgAfkReportedCount;      time_t             bgAfkReportedTimer; -    uint32 bgTeam;                          ///< What side the player will be added to +    Team bgTeam;                          ///< What side the player will be added to      uint32 mountSpell;      uint32 taxiPath[2]; @@ -2224,10 +2224,10 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>          void AddExploredZones(uint32 pos, uint64 mask) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::ExploredZones, pos), mask); }          void RemoveExploredZones(uint32 pos, uint64 mask) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::ExploredZones, pos), mask); } -        static uint32 TeamForRace(uint8 race); +        static Team TeamForRace(uint8 race);          static TeamId TeamIdForRace(uint8 race);          static uint8 GetFactionGroupForRace(uint8 race); -        uint32 GetTeam() const { return m_team; } +        Team GetTeam() const { return m_team; }          TeamId GetTeamId() const { return m_team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; }          void SetFactionForRace(uint8 race); @@ -2411,8 +2411,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>          WorldLocation const& GetBattlegroundEntryPoint() const { return m_bgData.joinPos; }          void SetBattlegroundEntryPoint(); -        void SetBGTeam(uint32 team); -        uint32 GetBGTeam() const; +        void SetBGTeam(Team team); +        Team GetBGTeam() const;          void LeaveBattleground(bool teleportToEntryPoint = true);          bool CanJoinToBattleground(BattlegroundTemplate const* bg) const; @@ -2993,7 +2993,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>          void outDebugValues() const; -        uint32 m_team; +        Team m_team;          uint32 m_nextSave;          bool m_customizationsChanged;          std::array<ChatFloodThrottle, ChatFloodThrottle::MAX> m_chatFloodData; diff --git a/src/server/game/Entities/Player/PlayerTaxi.cpp b/src/server/game/Entities/Player/PlayerTaxi.cpp index e269fd3f7df..e8cbe9d620d 100644 --- a/src/server/game/Entities/Player/PlayerTaxi.cpp +++ b/src/server/game/Entities/Player/PlayerTaxi.cpp @@ -88,6 +88,8 @@ void PlayerTaxi::InitTaxiNodesForLevel(uint32 race, uint32 chrClass, uint8 level      {          case ALLIANCE: SetTaximaskNode(100); break;          case HORDE:    SetTaximaskNode(99);  break; +        default: +            break;      }      // level dependent taxi hubs diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 38180e3abd6..1e1a1f28e66 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1202,7 +1202,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(BattlegroundTemplate          return ERR_BATTLEGROUND_JOIN_FAILED;      uint32 arenaTeamId = reference->GetArenaTeamId(arenaSlot); -    uint32 team = reference->GetTeam(); +    Team team = reference->GetTeam();      bool isMercenary = reference->HasAura(SPELL_MERCENARY_CONTRACT_HORDE) || reference->HasAura(SPELL_MERCENARY_CONTRACT_ALLIANCE);      // check every member of the group to be able to join diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp index 01034c2f564..c4c1a03b992 100644 --- a/src/server/game/Handlers/CalendarHandler.cpp +++ b/src/server/game/Handlers/CalendarHandler.cpp @@ -318,7 +318,7 @@ void WorldSession::HandleCalendarInvite(WorldPackets::Calendar::CalendarInvite&      if (!normalizePlayerName(calendarEventInvite.Name))          return; -    auto createInvite = [this, playerGuid, inviteeName, eventId, isSignUp](ObjectGuid const& inviteeGuid, uint32 inviteeTeam, ObjectGuid::LowType inviteeGuildId, bool inviteeIsIngoring) +    auto createInvite = [this, playerGuid, inviteeName, eventId, isSignUp](ObjectGuid const& inviteeGuid, Team inviteeTeam, ObjectGuid::LowType inviteeGuildId, bool inviteeIsIngoring)      {          if (!_player || _player->GetGUID() != playerGuid)              return; diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index 72320134a8c..2ef2019de31 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -138,7 +138,7 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail)          return;      } -    auto mailCountCheckContinuation = [this, player = _player, receiverGuid, mailInfo = std::move(sendMail.Info), reqmoney, cost](uint32 receiverTeam, uint64 mailsCount, uint8 receiverLevel, uint32 receiverAccountId, uint32 receiverBnetAccountId) mutable +    auto mailCountCheckContinuation = [this, player = _player, receiverGuid, mailInfo = std::move(sendMail.Info), reqmoney, cost](Team receiverTeam, uint64 mailsCount, uint8 receiverLevel, uint32 receiverAccountId, uint32 receiverBnetAccountId) mutable      {          if (_player != player)              return; diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp index d7e9ca22edd..c87124134f7 100644 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -141,7 +141,7 @@ void WorldSession::HandleMoveWorldportAck()              // We're not in BG              player->SetBattlegroundId(0, BATTLEGROUND_TYPE_NONE, BATTLEGROUND_QUEUE_NONE);              // reset destination bg team -            player->SetBGTeam(0); +            player->SetBGTeam(TEAM_OTHER);          }          // join to bg case          else if (Battleground* bg = player->GetBattleground()) diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 7fdb816ffbc..71da70e292c 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2877,7 +2877,7 @@ void World::ForceGameEventUpdate()  }  /// Send a packet to all players (except self if mentioned) -void World::SendGlobalMessage(WorldPacket const* packet, WorldSession* self, uint32 team) +void World::SendGlobalMessage(WorldPacket const* packet, WorldSession* self, Optional<Team> team)  {      SessionMap::const_iterator itr;      for (itr = m_sessions.begin(); itr != m_sessions.end(); ++itr) @@ -2886,7 +2886,7 @@ void World::SendGlobalMessage(WorldPacket const* packet, WorldSession* self, uin              itr->second->GetPlayer() &&              itr->second->GetPlayer()->IsInWorld() &&              itr->second != self && -            (team == 0 || itr->second->GetPlayer()->GetTeam() == team)) +            (!team || itr->second->GetPlayer()->GetTeam() == team))          {              itr->second->SendPacket(packet);          } @@ -2894,7 +2894,7 @@ void World::SendGlobalMessage(WorldPacket const* packet, WorldSession* self, uin  }  /// Send a packet to all GMs (except self if mentioned) -void World::SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self, uint32 team) +void World::SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self, Optional<Team> team)  {      for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)      { @@ -3039,7 +3039,7 @@ void World::SendGlobalText(char const* text, WorldSession* self)  }  /// Send a packet to all players (or players selected team) in the zone (except self if mentioned) -bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self, uint32 team) +bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self, Optional<Team> team)  {      bool foundPlayerToSend = false;      SessionMap::const_iterator itr; @@ -3051,7 +3051,7 @@ bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession              itr->second->GetPlayer()->IsInWorld() &&              itr->second->GetPlayer()->GetZoneId() == zone &&              itr->second != self && -            (team == 0 || itr->second->GetPlayer()->GetTeam() == team)) +            (!team || itr->second->GetPlayer()->GetTeam() == team))          {              itr->second->SendPacket(packet);              foundPlayerToSend = true; @@ -3062,7 +3062,7 @@ bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession  }  /// Send a System Message to all players in the zone (except self if mentioned) -void World::SendZoneText(uint32 zone, char const* text, WorldSession* self, uint32 team) +void World::SendZoneText(uint32 zone, char const* text, WorldSession* self, Optional<Team> team)  {      WorldPackets::Chat::Chat packet;      packet.Initialize(CHAT_MSG_SYSTEM, LANG_UNIVERSAL, nullptr, nullptr, text); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 14fcb7e8966..ce513f6570b 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -27,6 +27,7 @@  #include "DatabaseEnvFwd.h"  #include "LockedQueue.h"  #include "ObjectGuid.h" +#include "Optional.h"  #include "SharedDefines.h"  #include "Timer.h" @@ -653,10 +654,10 @@ class TC_GAME_API World          void SendGlobalText(char const* text, WorldSession* self);          void SendGMText(uint32 string_id, ...);          void SendServerMessage(ServerMessageType messageID, std::string_view stringParam = {}, Player const* player = nullptr); -        void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); -        void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); -        bool SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self = nullptr, uint32 team = 0); -        void SendZoneText(uint32 zone, const char *text, WorldSession* self = nullptr, uint32 team = 0); +        void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, Optional<Team> team = { }); +        void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, Optional<Team> team = { }); +        bool SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self = nullptr, Optional<Team> team = { }); +        void SendZoneText(uint32 zone, const char *text, WorldSession* self = nullptr, Optional<Team> team = { });          /// Are we in the middle of a shutdown?          bool IsShuttingDown() const { return m_ShutdownTimer > 0; } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp index 311ea43f84d..65f145154b9 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp @@ -246,7 +246,7 @@ void HPControlZoneHandler::HandleProgressEventHorde(GameObject* controlZone)      if (GuidUnorderedSet const* guidSet = controlZone->GetInsidePlayers())          for (ObjectGuid const& guid : *guidSet)              if (Player* player = ObjectAccessor::GetPlayer(*controlZone, guid)) -                if (player->GetTeam() == TEAM_HORDE) +                if (player->GetTeam() == HORDE)                      player->KilledMonsterCredit(_killCredit);  } @@ -268,7 +268,7 @@ void HPControlZoneHandler::HandleProgressEventAlliance(GameObject* controlZone)      if (GuidUnorderedSet const* guidSet = controlZone->GetInsidePlayers())          for (ObjectGuid const& guid : *guidSet)              if (Player* player = ObjectAccessor::GetPlayer(*controlZone, guid)) -                if (player->GetTeam() == TEAM_ALLIANCE) +                if (player->GetTeam() == ALLIANCE)                      player->KilledMonsterCredit(_killCredit);  } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp index 4453d9435cf..225c039a931 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp @@ -164,12 +164,12 @@ uint32 OPvPCapturePointNA::GetAliveGuardsCount() const      return std::count_if(guards.begin(), guards.end(), [](WorldObject* guard) { return guard->IsUnit() && guard->ToUnit()->IsAlive(); });  } -uint32 OPvPCapturePointNA::GetControllingFaction() const +Team OPvPCapturePointNA::GetControllingFaction() const  {      return m_ControllingFaction;  } -void OPvPCapturePointNA::FactionTakeOver(uint32 team) +void OPvPCapturePointNA::FactionTakeOver(Team team)  {      m_ControllingFaction = team;      m_GuardsAlive = NA_GUARDS_MAX; @@ -207,7 +207,7 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team)      UpdateWyvernRoostWorldState(NA_ROOST_E);  } -OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) : OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(0), m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0), +OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) : OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(TEAM_OTHER), m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0),      m_WyvernStateWest(0), m_RespawnTimer(NA_RESPAWN_TIME), m_GuardCheckTimer(NA_GUARD_CHECK_TIME)  { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h index 60c3e1f1c16..9be2cb3fdba 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h @@ -158,15 +158,15 @@ class OPvPCapturePointNA : public OPvPCapturePoint          int32 HandleOpenGo(Player* player, GameObject* go) override;          uint32 GetAliveGuardsCount() const; -        uint32 GetControllingFaction() const; -        void FactionTakeOver(uint32 team); // called when a faction takes control +        Team GetControllingFaction() const; +        void FactionTakeOver(Team team); // called when a faction takes control          void UpdateWyvernRoostWorldState(uint32 roost);          void SetControlZoneGUID(ObjectGuid guid) { _controlZoneGUID = guid; }      private:          bool m_capturable;          uint32 m_GuardsAlive; -        uint32 m_ControllingFaction; +        Team m_ControllingFaction;          uint32 m_WyvernStateNorth;          uint32 m_WyvernStateSouth;          uint32 m_WyvernStateEast; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp index d652f9f8689..eec207ecba8 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp @@ -40,7 +40,7 @@ uint32 const OutdoorPvPSIBuffZones[OutdoorPvPSIBuffZonesNum] = { 1377, 3428, 342  OutdoorPvPSI::OutdoorPvPSI(Map* map) : OutdoorPvP(map)  {      m_TypeId = OUTDOOR_PVP_SI; -    m_LastController = 0; +    m_LastController = TEAM_OTHER;  }  void OutdoorPvPSI::SendRemoveWorldStates(Player* player) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h index 1c3630e42f5..30c94b19afb 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h @@ -50,7 +50,7 @@ class OutdoorPvPSI : public OutdoorPvP          bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go) override;      private: -        uint32 m_LastController; +        Team m_LastController;  };  #endif diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index dcc918ebc31..1da65a99b63 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -276,7 +276,7 @@ void TFControlZoneHandler::HandleProgressEventHorde(GameObject* controlZone)      if (GuidUnorderedSet const* guidSet = controlZone->GetInsidePlayers())          for (ObjectGuid const& guid : *guidSet)              if (Player* player = ObjectAccessor::GetPlayer(*controlZone, guid)) -                if (player->GetTeam() == TEAM_HORDE) +                if (player->GetTeam() == HORDE)                      player->AreaExploredOrEventHappens(TF_HORDE_QUEST);      OutdoorPvPControlZoneHandler::HandleProgressEventHorde(controlZone); @@ -294,7 +294,7 @@ void TFControlZoneHandler::HandleProgressEventAlliance(GameObject* controlZone)      if (GuidUnorderedSet const* guidSet = controlZone->GetInsidePlayers())          for (ObjectGuid const& guid : *guidSet)              if (Player* player = ObjectAccessor::GetPlayer(*controlZone, guid)) -                if (player->GetTeam() == TEAM_ALLIANCE) +                if (player->GetTeam() == ALLIANCE)                      player->AreaExploredOrEventHappens(TF_ALLY_QUEST);      OutdoorPvPControlZoneHandler::HandleProgressEventAlliance(controlZone); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index a3ed5250767..7430a50d374 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -149,6 +149,8 @@ class spell_q6124_6129_apply_salve : public SpellScript                          if (creatureTarget->GetEntry() == NPC_SICKLY_DEER)                              newEntry = NPC_CURED_DEER;                          break; +                    default: +                        break;                  }                  if (newEntry)                  { | 
