aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/BattleGroundMgr.cpp22
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)