diff options
Diffstat (limited to 'src')
-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); + } } } |