diff options
author | Naios <naios-dev@live.de> | 2015-10-13 21:18:30 +0200 |
---|---|---|
committer | Carbenium <carbenium@outlook.com> | 2015-11-06 23:51:10 +0100 |
commit | ed20680f92f5288f3a158e02b576d9e280120444 (patch) | |
tree | a61175a2009124873532c5de03a093994c158de7 /src/server/game/Battlegrounds/BattlegroundQueue.cpp | |
parent | 441be76050d8463c8567c47fff88c10c88cc05be (diff) |
Merge pull request #15711 from ShinDarth/bg-leave
Core/BG: Improved Battleground.InvitationType = 2
(cherry picked from commit 5a71eb73848b39af19b266f0a063798c7c85b7e2)
Diffstat (limited to 'src/server/game/Battlegrounds/BattlegroundQueue.cpp')
-rw-r--r-- | src/server/game/Battlegrounds/BattlegroundQueue.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp index e02dde97658..ab38b89baac 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp +++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp @@ -503,19 +503,25 @@ void BattlegroundQueue::FillPlayersToBG(Battleground* bg, BattlegroundBracketId // try to get even teams if (sWorld->getIntConfig(CONFIG_BATTLEGROUND_INVITATION_TYPE) == BG_QUEUE_INVITATION_TYPE_EVEN) { - int32 hordeExtra = hordeCount - aliCount; - int32 aliExtra = aliCount - hordeCount; + // check if the teams are even + if (hordeFree == 1 && aliFree == 1) + { + // if we are here, the teams have the same amount of players + // then we have to allow to join the same amount of players + int32 hordeExtra = hordeCount - aliCount; + int32 aliExtra = aliCount - hordeCount; - hordeExtra = std::max(hordeExtra, 0); - aliExtra = std::max(aliExtra, 0); + hordeExtra = std::max(hordeExtra, 0); + aliExtra = std::max(aliExtra, 0); - if (aliCount != hordeCount) - { - aliFree -= aliExtra; - hordeFree -= hordeExtra; + if (aliCount != hordeCount) + { + aliFree -= aliExtra; + hordeFree -= hordeExtra; - aliFree = std::max(aliFree, 0); - hordeFree = std::max(hordeFree, 0); + aliFree = std::max(aliFree, 0); + hordeFree = std::max(hordeFree, 0); + } } } |