diff options
Diffstat (limited to 'src/game/ArenaTeamHandler.cpp')
-rw-r--r-- | src/game/ArenaTeamHandler.cpp | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index c7ecf5b1d80..edcfeed0f99 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -57,12 +57,11 @@ void WorldSession::HandleArenaTeamQueryOpcode(WorldPacket & recv_data) uint32 ArenaTeamId; recv_data >> ArenaTeamId; - ArenaTeam *arenateam = objmgr.GetArenaTeamById(ArenaTeamId); - if(!arenateam) // arena team not found - return; - - arenateam->Query(this); - arenateam->Stats(this); + if(ArenaTeam *arenateam = objmgr.GetArenaTeamById(ArenaTeamId)) + { + arenateam->Query(this); + arenateam->Stats(this); + } } void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket & recv_data) @@ -72,11 +71,8 @@ void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket & recv_data) uint32 ArenaTeamId; // arena team id recv_data >> ArenaTeamId; - ArenaTeam *arenateam = objmgr.GetArenaTeamById(ArenaTeamId); - if(!arenateam) - return; - - arenateam->Roster(this); + if(ArenaTeam *arenateam = objmgr.GetArenaTeamById(ArenaTeamId)) + arenateam->Roster(this); } void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data) @@ -206,12 +202,14 @@ void WorldSession::HandleArenaTeamLeaveOpcode(WorldPacket & recv_data) ArenaTeam *at = objmgr.GetArenaTeamById(ArenaTeamId); if(!at) return; + if(_player->GetGUID() == at->GetCaptain() && at->GetMembersSize() > 1) { // check for correctness SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, "", "", ERR_ARENA_TEAM_LEADER_LEAVE_S); return; } + // arena team has only one member (=captain) if(_player->GetGUID() == at->GetCaptain()) { @@ -238,18 +236,17 @@ void WorldSession::HandleArenaTeamDisbandOpcode(WorldPacket & recv_data) uint32 ArenaTeamId; // arena team id recv_data >> ArenaTeamId; - ArenaTeam *at = objmgr.GetArenaTeamById(ArenaTeamId); - if(!at) - return; - - if(at->GetCaptain() != _player->GetGUID()) - return; + if(ArenaTeam *at = objmgr.GetArenaTeamById(ArenaTeamId)) + { + if(at->GetCaptain() != _player->GetGUID()) + return; - if (at->IsFighting()) - return; + if(at->IsFighting()) + return; - at->Disband(this); - delete at; + at->Disband(this); + delete at; + } } void WorldSession::HandleArenaTeamRemoveOpcode(WorldPacket & recv_data) @@ -422,4 +419,3 @@ ERR_ARENA_TEAM_TOO_MANY_MEMBERS_S "%s is full" ERR_ARENA_TEAM_LEVEL_TOO_LOW_I "You must be level %d to form an arena team" */ - |