aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/BattleGroundHandler.cpp
diff options
context:
space:
mode:
authorCarbenium <carbenium@outlook.com>2016-01-20 22:51:06 +0100
committerCarbenium <carbenium@outlook.com>2016-01-20 23:01:12 +0100
commit575d5f5ff803790bc097d16a3f1e86f3eda5318e (patch)
treeee280a60027eb9bdd17e3d58f738dbdeefa0ddaa /src/server/game/Handlers/BattleGroundHandler.cpp
parent38116dd905d0f7f128dc539be2b2c69d972fcda2 (diff)
Core/PacketIO: CMSG_BATTLEMASTER_JOIN_ARENA
Diffstat (limited to 'src/server/game/Handlers/BattleGroundHandler.cpp')
-rw-r--r--src/server/game/Handlers/BattleGroundHandler.cpp35
1 files changed, 13 insertions, 22 deletions
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index ef1772d50b4..c37928d32ad 100644
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -487,22 +487,15 @@ void WorldSession::HandleRequestBattlefieldStatusOpcode(WorldPackets::Battlegrou
}
}
-void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
+void WorldSession::HandleBattlemasterJoinArena(WorldPackets::Battleground::BattlemasterJoinArena& packet)
{
- uint8 arenaslot; // 2v2, 3v3 or 5v5
-
- recvData >> arenaslot;
-
// ignore if we already in BG or BG queue
if (_player->InBattleground())
return;
- uint32 arenaRating = 0;
- uint32 matchmakerRating = 0;
-
- uint8 arenatype = ArenaTeam::GetTypeBySlot(arenaslot);
+ uint8 arenatype = ArenaTeam::GetTypeBySlot(packet.TeamSizeIndex);
- //check existance
+ //check existence
Battleground* bg = sBattlegroundMgr->GetBattlegroundTemplate(BATTLEGROUND_AA);
if (!bg)
{
@@ -510,7 +503,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
return;
}
- if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, BATTLEGROUND_AA, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, BATTLEGROUND_AA, nullptr))
{
ChatHandler(this).PSendSysMessage(LANG_ARENA_DISABLED);
return;
@@ -522,8 +515,6 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
if (!bracketEntry)
return;
- GroupJoinBattlegroundResult err = ERR_BATTLEGROUND_NONE;
-
Group* grp = _player->GetGroup();
// no group found, error
if (!grp)
@@ -531,7 +522,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
if (grp->GetLeaderGUID() != _player->GetGUID())
return;
- uint32 ateamId = _player->GetArenaTeamId(arenaslot);
+ uint32 ateamId = _player->GetArenaTeamId(packet.TeamSizeIndex);
// check real arenateam existence only here (if it was moved to group->CanJoin .. () then we would ahve to get it twice)
ArenaTeam* at = sArenaTeamMgr->GetArenaTeamById(ateamId);
if (!at)
@@ -540,30 +531,30 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket& recvData)
return;
}
- // get the team rating for queueing
- arenaRating = at->GetRating();
- matchmakerRating = at->GetAverageMMR(grp);
+ // get the team rating for queuing
+ uint32 arenaRating = at->GetRating();
+ uint32 matchmakerRating = at->GetAverageMMR(grp);
// the arenateam id must match for everyone in the group
if (arenaRating <= 0)
arenaRating = 1;
- BattlegroundQueue &bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
+ BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
uint32 avgTime = 0;
- GroupQueueInfo* ginfo = NULL;
+ GroupQueueInfo* ginfo = nullptr;
ObjectGuid errorGuid;
- err = grp->CanJoinBattlegroundQueue(bg, bgQueueTypeId, arenatype, arenatype, true, arenaslot, errorGuid);
+ GroupJoinBattlegroundResult err = grp->CanJoinBattlegroundQueue(bg, bgQueueTypeId, arenatype, arenatype, true, packet.TeamSizeIndex, errorGuid);
if (!err)
{
- TC_LOG_DEBUG("bg.battleground", "Battleground: arena team id %u, leader %s queued with matchmaker rating %u for type %u", _player->GetArenaTeamId(arenaslot), _player->GetName().c_str(), matchmakerRating, arenatype);
+ TC_LOG_DEBUG("bg.battleground", "Battleground: arena team id %u, leader %s queued with matchmaker rating %u for type %u", _player->GetArenaTeamId(packet.TeamSizeIndex), _player->GetName().c_str(), matchmakerRating, arenatype);
ginfo = bgQueue.AddGroup(_player, grp, bgTypeId, bracketEntry, arenatype, true, false, arenaRating, matchmakerRating, ateamId);
avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
}
- for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
+ for (GroupReference* itr = grp->GetFirstMember(); itr != nullptr; itr = itr->next())
{
Player* member = itr->GetSource();
if (!member)