diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/BattleGroundMgr.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
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<GroupQueueInfo* >::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) |