Core/ObjectMgr: Refactor arena team related functions into dedicated class

This commit is contained in:
leak
2011-05-03 15:01:37 +02:00
parent ebcff354a2
commit ce01a37c2c
17 changed files with 289 additions and 209 deletions
+6 -5
View File
@@ -21,6 +21,7 @@
#include "ArenaTeam.h"
#include "World.h"
#include "Group.h"
#include "ArenaTeamMgr.h"
ArenaTeam::ArenaTeam()
{
@@ -52,12 +53,12 @@ bool ArenaTeam::Create(uint32 captainGuid, uint8 type, std::string teamName, uin
return false;
// Check if arena team name is already taken
if (sObjectMgr->GetArenaTeamByName(TeamName))
if (sArenaTeamMgr->GetArenaTeamByName(TeamName))
return false;
// Generate new arena team id
TeamId = sObjectMgr->GenerateArenaTeamId();
TeamId = sArenaTeamMgr->GenerateArenaTeamId();
// Assign member variables
CaptainGuid = captainGuid;
@@ -360,7 +361,7 @@ void ArenaTeam::Disband(WorldSession* session)
CharacterDatabase.CommitTransaction(trans);
// Remove arena team from ObjectMgr
sObjectMgr->RemoveArenaTeam(TeamId);
sArenaTeamMgr->RemoveArenaTeam(TeamId);
}
void ArenaTeam::Roster(WorldSession* session)
@@ -662,8 +663,8 @@ void ArenaTeam::FinishGame(int32 mod)
// Update team's rank, start with rank 1 and increase until no team with more rating was found
Stats.Rank = 1;
ObjectMgr::ArenaTeamMap::const_iterator i = sObjectMgr->GetArenaTeamMapBegin();
for (; i != sObjectMgr->GetArenaTeamMapEnd(); ++i)
ArenaTeamMgr::ArenaTeamContainer::const_iterator i = sArenaTeamMgr->GetArenaTeamMapBegin();
for (; i != sArenaTeamMgr->GetArenaTeamMapEnd(); ++i)
{
if (i->second->GetType() == Type && i->second->GetStats().Rating > Stats.Rating)
++Stats.Rank;