diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2020-09-06 23:36:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-06 23:36:23 +0200 |
| commit | b63d655e20a0facf14fc77798c52ea67d8551fa7 (patch) | |
| tree | 296a3fa0db1abecf9646785b8ee128eab65263fd /src/server/game/Battlegrounds/ArenaTeamMgr.cpp | |
| parent | 67b112f8a4862a521daf96b2f738db81a649e79d (diff) | |
[3.3.5] Scripts/Commands: .arena command conversion (PR #25407)
Diffstat (limited to 'src/server/game/Battlegrounds/ArenaTeamMgr.cpp')
| -rw-r--r-- | src/server/game/Battlegrounds/ArenaTeamMgr.cpp | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp index 5e7fa725e70..2aa08c47956 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp @@ -47,36 +47,30 @@ ArenaTeam* ArenaTeamMgr::GetArenaTeamById(uint32 arenaTeamId) const ArenaTeamContainer::const_iterator itr = ArenaTeamStore.find(arenaTeamId); if (itr != ArenaTeamStore.end()) return itr->second; - return nullptr; } -ArenaTeam* ArenaTeamMgr::GetArenaTeamByName(const std::string& arenaTeamName) const +ArenaTeam* ArenaTeamMgr::GetArenaTeamByName(std::string_view arenaTeamName) const { - std::string search = arenaTeamName; - std::transform(search.begin(), search.end(), search.begin(), ::toupper); - for (ArenaTeamContainer::const_iterator itr = ArenaTeamStore.begin(); itr != ArenaTeamStore.end(); ++itr) - { - std::string teamName = itr->second->GetName(); - std::transform(teamName.begin(), teamName.end(), teamName.begin(), ::toupper); - if (search == teamName) - return itr->second; - } + for (auto [teamId, team] : ArenaTeamStore) + if (StringEqualI(arenaTeamName, team->GetName())) + return team; return nullptr; } ArenaTeam* ArenaTeamMgr::GetArenaTeamByCaptain(ObjectGuid guid) const { - for (ArenaTeamContainer::const_iterator itr = ArenaTeamStore.begin(); itr != ArenaTeamStore.end(); ++itr) - if (itr->second->GetCaptain() == guid) - return itr->second; - + for (auto [teamId, team] : ArenaTeamStore) + if (team->GetCaptain() == guid) + return team; return nullptr; } void ArenaTeamMgr::AddArenaTeam(ArenaTeam* arenaTeam) { - ArenaTeamStore[arenaTeam->GetId()] = arenaTeam; + ArenaTeam*& team = ArenaTeamStore[arenaTeam->GetId()]; + ASSERT((team == nullptr) || (team == arenaTeam), "Duplicate arena team with ID %u", arenaTeam->GetId()); + team = arenaTeam; } void ArenaTeamMgr::RemoveArenaTeam(uint32 arenaTeamId) @@ -152,9 +146,8 @@ void ArenaTeamMgr::DistributeArenaPoints() std::map<uint32, uint32> PlayerPoints; // At first update all points for all team members - for (ArenaTeamContainer::iterator teamItr = GetArenaTeamMapBegin(); teamItr != GetArenaTeamMapEnd(); ++teamItr) - if (ArenaTeam* at = teamItr->second) - at->UpdateArenaPointsHelper(PlayerPoints); + for (auto [teamId, team] : ArenaTeamStore) + team->UpdateArenaPointsHelper(PlayerPoints); CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); @@ -182,15 +175,12 @@ void ArenaTeamMgr::DistributeArenaPoints() sWorld->SendWorldText(LANG_DIST_ARENA_POINTS_ONLINE_END); sWorld->SendWorldText(LANG_DIST_ARENA_POINTS_TEAM_START); - for (ArenaTeamContainer::iterator titr = GetArenaTeamMapBegin(); titr != GetArenaTeamMapEnd(); ++titr) + for (auto [teamId, team] : ArenaTeamStore) { - if (ArenaTeam* at = titr->second) - { - if (at->FinishWeek()) - at->SaveToDB(); + if (team->FinishWeek()) + team->SaveToDB(); - at->NotifyStatsChanged(); - } + team->NotifyStatsChanged(); } sWorld->SendWorldText(LANG_DIST_ARENA_POINTS_TEAM_END); |
