aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2015-10-13 21:18:30 +0200
committerCarbenium <carbenium@outlook.com>2015-11-06 23:51:10 +0100
commited20680f92f5288f3a158e02b576d9e280120444 (patch)
treea61175a2009124873532c5de03a093994c158de7 /src
parent441be76050d8463c8567c47fff88c10c88cc05be (diff)
Merge pull request #15711 from ShinDarth/bg-leave
Core/BG: Improved Battleground.InvitationType = 2 (cherry picked from commit 5a71eb73848b39af19b266f0a063798c7c85b7e2)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlegrounds/BattlegroundQueue.cpp26
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);
+ }
}
}