From c693e97a2193d46afab8ff5d4110654a5953ec75 Mon Sep 17 00:00:00 2001 From: biglad Date: Fri, 10 Apr 2009 10:33:54 +0100 Subject: * Fix BG start teams, make them even, send only corrent amount of invites. thanks Machiavelli for help --HG-- branch : trunk --- src/game/BattleGroundMgr.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp index 259ee1fed13..aecb706f73d 100644 --- a/src/game/BattleGroundMgr.cpp +++ b/src/game/BattleGroundMgr.cpp @@ -653,16 +653,34 @@ void BattleGroundQueue::Update(uint32 bgTypeId, uint32 queue_id, uint8 arenatype std::list::iterator itr; + //Send corrent ammount of invites to both faction at start of BG, not all in current queue, makes starting teams even + unsigned int QUEUED_HORDE = m_SelectionPools[NORMAL_HORDE].SelectedGroups.size(); + unsigned int QUEUED_ALLIANCE= m_SelectionPools[NORMAL_ALLIANCE].SelectedGroups.size(); + unsigned int maxbginvites = 0; + + if(QUEUED_ALLIANCE <= QUEUED_HORDE) + maxbginvites = QUEUED_ALLIANCE; + else + maxbginvites = QUEUED_HORDE; + // invite groups from horde selection pool + int invitecounter = 0; for(itr = m_SelectionPools[NORMAL_HORDE].SelectedGroups.begin(); itr != m_SelectionPools[NORMAL_HORDE].SelectedGroups.end(); ++itr) { + if (invitecounter >= maxbginvites) + return; InviteGroupToBG((*itr),bg2,HORDE); + ++invitecounter; } - // invite groups from ally selection pools + // invite groups from ally selection pool + invitecounter = 0; for(itr = m_SelectionPools[NORMAL_ALLIANCE].SelectedGroups.begin(); itr != m_SelectionPools[NORMAL_ALLIANCE].SelectedGroups.end(); ++itr) - { + { + if (invitecounter >= maxbginvites) + return; InviteGroupToBG((*itr),bg2,ALLIANCE); + ++invitecounter; } if (isRated) -- cgit v1.2.3