diff options
Diffstat (limited to 'src/game/BattleGroundHandler.cpp')
| -rw-r--r-- | src/game/BattleGroundHandler.cpp | 26 | 
1 files changed, 16 insertions, 10 deletions
diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp index fc99fe3f1fe..e7948c9b2e8 100644 --- a/src/game/BattleGroundHandler.cpp +++ b/src/game/BattleGroundHandler.cpp @@ -1,7 +1,7 @@  /* - * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>   * - * Copyright (C) 2008 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>   *   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -96,7 +96,7 @@ void WorldSession::HandleBattleGroundJoinOpcode( WorldPacket & recv_data )      sLog.outDebug( "WORLD: Recvd CMSG_BATTLEMASTER_JOIN Message from: " I64FMT, guid);      // can do this, since it's battleground, not arena -    uint32 bgQueueTypeId = sBattleGroundMgr.BGQueueTypeId(bgTypeId, 0); +    uint32 bgQueueTypeId = BattleGroundMgr::BGQueueTypeId(bgTypeId, 0);      // ignore if player is already in BG      if(_player->InBattleGround()) @@ -180,6 +180,8 @@ void WorldSession::HandleBattleGroundJoinOpcode( WorldPacket & recv_data )          }          sLog.outDebug("Battleground: group end");          sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel()); +        if(!ginfo->IsInvitedToBGInstanceGUID) +            sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].AnnounceWorld(ginfo, _player->GetGUID(), true);      }      else      { @@ -196,6 +198,8 @@ void WorldSession::HandleBattleGroundJoinOpcode( WorldPacket & recv_data )          GroupQueueInfo * ginfo = sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].AddGroup(_player, bgTypeId, 0, false, 0);          sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].AddPlayer(_player, ginfo);          sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel()); +        if(!ginfo->IsInvitedToBGInstanceGUID) +            sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].AnnounceWorld(ginfo, _player->GetGUID(), true);          sLog.outDebug("Battleground: player joined queue for bg queue type %u bg type %u: GUID %u, NAME %s",bgQueueTypeId,bgTypeId,_player->GetGUIDLow(), _player->GetName());      }  } @@ -366,7 +370,7 @@ void WorldSession::HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data )      uint32 bgQueueTypeId = 0;      // get the bg what we were invited to      BattleGroundQueue::QueuedPlayersMap::iterator itrPlayerStatus; -    bgQueueTypeId = sBattleGroundMgr.BGQueueTypeId(bgTypeId,type); +    bgQueueTypeId = BattleGroundMgr::BGQueueTypeId(bgTypeId,type);      itrPlayerStatus = sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].m_QueuedPlayers[_player->GetBattleGroundQueueIdFromLevel()].find(_player->GetGUID());      if(itrPlayerStatus == sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].m_QueuedPlayers[_player->GetBattleGroundQueueIdFromLevel()].end()) @@ -527,7 +531,7 @@ void WorldSession::HandleBattlefieldStatusOpcode( WorldPacket & /*recv_data*/ )          BattleGround *bg = _player->GetBattleGround();          if(bg)          { -            uint32 bgQueueTypeId = sBattleGroundMgr.BGQueueTypeId(bg->GetTypeID(), bg->GetArenaType()); +            uint32 bgQueueTypeId = BattleGroundMgr::BGQueueTypeId(bg->GetTypeID(), bg->GetArenaType());              uint32 queueSlot = _player->GetBattleGroundQueueIndex(bgQueueTypeId);              if((bg->GetStatus() <= STATUS_IN_PROGRESS))              { @@ -537,7 +541,7 @@ void WorldSession::HandleBattlefieldStatusOpcode( WorldPacket & /*recv_data*/ )              for (uint32 i = 0; i < PLAYER_MAX_BATTLEGROUND_QUEUES; i++)              {                  uint32 queue_id = _player->GetBattleGroundQueueId(i);       // battlegroundqueueid stores the type id, not the instance id, so this is definitely wrong -                uint8 arenatype = sBattleGroundMgr.BGArenaType(queue_id); +                uint8 arenatype = BattleGroundMgr::BGArenaType(queue_id);                  uint8 isRated = 0;                  if (i == queueSlot || !queue_id)                            // we need to get the instance ids                      continue; @@ -549,7 +553,7 @@ void WorldSession::HandleBattlefieldStatusOpcode( WorldPacket & /*recv_data*/ )                      arenatype = itrPlayerStatus->second.GroupInfo->ArenaType;                      isRated = itrPlayerStatus->second.GroupInfo->IsRated;                  } -                BattleGround *bg2 = sBattleGroundMgr.GetBattleGroundTemplate(sBattleGroundMgr.BGTemplateId(queue_id)); //  try this +                BattleGround *bg2 = sBattleGroundMgr.GetBattleGroundTemplate(BattleGroundMgr::BGTemplateId(queue_id)); //  try this                  if(bg2)                  {                      //in this call is small bug, this call should be filled by player's waiting time in queue @@ -568,8 +572,8 @@ void WorldSession::HandleBattlefieldStatusOpcode( WorldPacket & /*recv_data*/ )              uint32 queue_id = _player->GetBattleGroundQueueId(i);              if(!queue_id)                  continue; -            uint32 bgTypeId = sBattleGroundMgr.BGTemplateId(queue_id); -            uint8 arenatype = sBattleGroundMgr.BGArenaType(queue_id); +            uint32 bgTypeId = BattleGroundMgr::BGTemplateId(queue_id); +            uint8 arenatype = BattleGroundMgr::BGArenaType(queue_id);              uint8 isRated = 0;              BattleGround *bg = sBattleGroundMgr.GetBattleGroundTemplate(bgTypeId);              BattleGroundQueue::QueuedPlayersMap::iterator itrPlayerStatus = sBattleGroundMgr.m_BattleGroundQueues[queue_id].m_QueuedPlayers[_player->GetBattleGroundQueueIdFromLevel()].find(_player->GetGUID()); @@ -697,7 +701,7 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )      }      uint8 bgTypeId = bg->GetTypeID(); -    uint32 bgQueueTypeId = sBattleGroundMgr.BGQueueTypeId(bgTypeId, arenatype); +    uint32 bgQueueTypeId = BattleGroundMgr::BGQueueTypeId(bgTypeId, arenatype);      // check queueing conditions      if(!asGroup) @@ -784,6 +788,8 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )          }          sLog.outDebug("Battleground: arena join as group end");          sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel(), arenatype, isRated, arenaRating); +        if(isRated) +            sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].AnnounceWorld(ginfo, _player->GetGUID(), true);      }      else      {  | 
