diff options
Diffstat (limited to 'src/server/game/Battlegrounds/ArenaTeam.cpp')
-rw-r--r-- | src/server/game/Battlegrounds/ArenaTeam.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 6dd833410f2..6a17012412e 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -25,6 +25,7 @@ #include "ArenaTeamMgr.h" #include "WorldSession.h" #include "Opcodes.h" +#include "CharacterCache.h" ArenaTeam::ArenaTeam() : TeamId(0), Type(0), TeamName(), CaptainGuid(), BackgroundColor(0), EmblemStyle(0), EmblemColor(0), @@ -95,7 +96,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) if (GetMembersSize() >= GetType() * 2) return false; - // Get player name and class either from db or ObjectMgr + // Get player name and class either from db or character cache Player* player = ObjectAccessor::FindPlayer(playerGuid); if (player) { @@ -104,7 +105,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) } else { - CharacterInfo const* cInfo = sWorld->GetCharacterInfo(playerGuid); + CharacterCacheEntry const* cInfo = sCharacterCache->GetCharacterCacheByGuid(playerGuid); if (!cInfo) return false; @@ -113,7 +114,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) } // Check if player is already in a similar arena team - if ((player && player->GetArenaTeamId(GetSlot())) || Player::GetArenaTeamIdFromCharacterInfo(playerGuid, GetType()) != 0) + if ((player && player->GetArenaTeamId(GetSlot())) || sCharacterCache->GetCharacterArenaTeamIdByGuid(playerGuid, GetType()) != 0) { TC_LOG_DEBUG("bg.arena", "Arena: %s %s already has an arena team of type %u", playerGuid.ToString().c_str(), playerName.c_str(), GetType()); return false; @@ -156,7 +157,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) newMember.MatchMakerRating = matchMakerRating; Members.push_back(newMember); - sWorld->UpdateCharacterArenaTeamId(playerGuid, GetSlot(), GetId()); + sCharacterCache->UpdateCharacterArenaTeamId(playerGuid, GetSlot(), GetId()); // Save player's arena team membership to db stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_TEAM_MEMBER); @@ -252,7 +253,7 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result) // Put the player in the team Members.push_back(newMember); - sWorld->UpdateCharacterArenaTeamId(newMember.Guid, GetSlot(), GetId()); + sCharacterCache->UpdateCharacterArenaTeamId(newMember.Guid, GetSlot(), GetId()); } while (result->NextRow()); @@ -316,7 +317,7 @@ void ArenaTeam::DelMember(ObjectGuid guid, bool cleanDb) if (itr->Guid == guid) { Members.erase(itr); - sWorld->UpdateCharacterArenaTeamId(guid, GetSlot(), 0); + sCharacterCache->UpdateCharacterArenaTeamId(guid, GetSlot(), 0); break; } } @@ -369,7 +370,7 @@ void ArenaTeam::Disband(WorldSession* session) CharacterDatabase.CommitTransaction(trans); - // Remove arena team from ObjectMgr + // Remove arena team from ArenaTeamMgr sArenaTeamMgr->RemoveArenaTeam(TeamId); } @@ -392,7 +393,7 @@ void ArenaTeam::Disband() CharacterDatabase.CommitTransaction(trans); - // Remove arena team from ObjectMgr + // Remove arena team from ArenaTeamMgr sArenaTeamMgr->RemoveArenaTeam(TeamId); } |