Core/Battlegrounds: Clean up some Team/TeamId parameters to use enums instead of raw integer types
Port From (https://github.com/TrinityCore/TrinityCore/commit/1ef0c045202a6af33fb991f2ff765fa183ce976f)
This commit is contained in:
@@ -153,16 +153,16 @@ namespace Game.BattleGrounds
|
||||
void PlayerInvitedToBGUpdateAverageWaitTime(GroupQueueInfo ginfo, BattlegroundBracketId bracket_id)
|
||||
{
|
||||
uint timeInQueue = Time.GetMSTimeDiff(ginfo.JoinTime, GameTime.GetGameTimeMS());
|
||||
uint team_index = TeamId.Alliance; //default set to TeamIndex.Alliance - or non rated arenas!
|
||||
uint team_index = BatttleGroundTeamId.Alliance; //default set to TeamIndex.Alliance - or non rated arenas!
|
||||
if (m_queueId.TeamSize == 0)
|
||||
{
|
||||
if (ginfo.Team == Team.Horde)
|
||||
team_index = TeamId.Horde;
|
||||
team_index = BatttleGroundTeamId.Horde;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_queueId.Rated)
|
||||
team_index = TeamId.Horde; //for rated arenas use TeamIndex.Horde
|
||||
team_index = BatttleGroundTeamId.Horde; //for rated arenas use TeamIndex.Horde
|
||||
}
|
||||
|
||||
//store pointer to arrayindex of player that was added first
|
||||
@@ -180,16 +180,16 @@ namespace Game.BattleGrounds
|
||||
|
||||
public uint GetAverageQueueWaitTime(GroupQueueInfo ginfo, BattlegroundBracketId bracket_id)
|
||||
{
|
||||
uint team_index = TeamId.Alliance; //default set to TeamIndex.Alliance - or non rated arenas!
|
||||
uint team_index = BatttleGroundTeamId.Alliance; //default set to TeamIndex.Alliance - or non rated arenas!
|
||||
if (m_queueId.TeamSize == 0)
|
||||
{
|
||||
if (ginfo.Team == Team.Horde)
|
||||
team_index = TeamId.Horde;
|
||||
team_index = BatttleGroundTeamId.Horde;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_queueId.Rated)
|
||||
team_index = TeamId.Horde; //for rated arenas use TeamIndex.Horde
|
||||
team_index = BatttleGroundTeamId.Horde; //for rated arenas use TeamIndex.Horde
|
||||
}
|
||||
//check if there is enought values(we always add values > 0)
|
||||
if (m_WaitTimes[team_index][(int)bracket_id][SharedConst.CountOfPlayersToAverageWaitTime - 1] != 0)
|
||||
@@ -453,7 +453,7 @@ namespace Game.BattleGrounds
|
||||
{
|
||||
int listIndex = 0;
|
||||
var info = m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalAlliance].FirstOrDefault();
|
||||
for (; alyIndex < aliCount && m_SelectionPools[TeamId.Alliance].AddGroup(info, aliFree); alyIndex++)
|
||||
for (; alyIndex < aliCount && m_SelectionPools[BatttleGroundTeamId.Alliance].AddGroup(info, aliFree); alyIndex++)
|
||||
info = m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalAlliance][listIndex++];
|
||||
}
|
||||
|
||||
@@ -462,7 +462,7 @@ namespace Game.BattleGrounds
|
||||
{
|
||||
int listIndex = 0;
|
||||
var info = m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalHorde].FirstOrDefault();
|
||||
for (; hordeIndex < hordeCount && m_SelectionPools[TeamId.Horde].AddGroup(info, hordeFree); hordeIndex++)
|
||||
for (; hordeIndex < hordeCount && m_SelectionPools[BatttleGroundTeamId.Horde].AddGroup(info, hordeFree); hordeIndex++)
|
||||
info = m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalHorde][listIndex++];
|
||||
}
|
||||
|
||||
@@ -478,45 +478,45 @@ namespace Game.BattleGrounds
|
||||
*/
|
||||
|
||||
// At first we need to compare free space in bg and our selection pool
|
||||
int diffAli = (int)(aliFree - m_SelectionPools[TeamId.Alliance].GetPlayerCount());
|
||||
int diffHorde = (int)(hordeFree - m_SelectionPools[TeamId.Horde].GetPlayerCount());
|
||||
while (Math.Abs(diffAli - diffHorde) > 1 && (m_SelectionPools[TeamId.Horde].GetPlayerCount() > 0 || m_SelectionPools[TeamId.Alliance].GetPlayerCount() > 0))
|
||||
int diffAli = (int)(aliFree - m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount());
|
||||
int diffHorde = (int)(hordeFree - m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount());
|
||||
while (Math.Abs(diffAli - diffHorde) > 1 && (m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() > 0 || m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() > 0))
|
||||
{
|
||||
//each cycle execution we need to kick at least 1 group
|
||||
if (diffAli < diffHorde)
|
||||
{
|
||||
//kick alliance group, add to pool new group if needed
|
||||
if (m_SelectionPools[TeamId.Alliance].KickGroup((uint)(diffHorde - diffAli)))
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Alliance].KickGroup((uint)(diffHorde - diffAli)))
|
||||
{
|
||||
for (; alyIndex < aliCount && m_SelectionPools[TeamId.Alliance].AddGroup(m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalAlliance][alyIndex], (uint)((aliFree >= diffHorde) ? aliFree - diffHorde : 0)); alyIndex++)
|
||||
for (; alyIndex < aliCount && m_SelectionPools[BatttleGroundTeamId.Alliance].AddGroup(m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalAlliance][alyIndex], (uint)((aliFree >= diffHorde) ? aliFree - diffHorde : 0)); alyIndex++)
|
||||
++alyIndex;
|
||||
}
|
||||
//if ali selection is already empty, then kick horde group, but if there are less horde than ali in bg - break;
|
||||
if (m_SelectionPools[TeamId.Alliance].GetPlayerCount() == 0)
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() == 0)
|
||||
{
|
||||
if (aliFree <= diffHorde + 1)
|
||||
break;
|
||||
m_SelectionPools[TeamId.Horde].KickGroup((uint)(diffHorde - diffAli));
|
||||
m_SelectionPools[BatttleGroundTeamId.Horde].KickGroup((uint)(diffHorde - diffAli));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//kick horde group, add to pool new group if needed
|
||||
if (m_SelectionPools[TeamId.Horde].KickGroup((uint)(diffAli - diffHorde)))
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Horde].KickGroup((uint)(diffAli - diffHorde)))
|
||||
{
|
||||
for (; hordeIndex < hordeCount && m_SelectionPools[TeamId.Horde].AddGroup(m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalHorde][hordeIndex], (uint)((hordeFree >= diffAli) ? hordeFree - diffAli : 0)); hordeIndex++)
|
||||
for (; hordeIndex < hordeCount && m_SelectionPools[BatttleGroundTeamId.Horde].AddGroup(m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalHorde][hordeIndex], (uint)((hordeFree >= diffAli) ? hordeFree - diffAli : 0)); hordeIndex++)
|
||||
++hordeIndex;
|
||||
}
|
||||
if (m_SelectionPools[TeamId.Horde].GetPlayerCount() == 0)
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() == 0)
|
||||
{
|
||||
if (hordeFree <= diffAli + 1)
|
||||
break;
|
||||
m_SelectionPools[TeamId.Alliance].KickGroup((uint)(diffAli - diffHorde));
|
||||
m_SelectionPools[BatttleGroundTeamId.Alliance].KickGroup((uint)(diffAli - diffHorde));
|
||||
}
|
||||
}
|
||||
//count diffs after small update
|
||||
diffAli = (int)(aliFree - m_SelectionPools[TeamId.Alliance].GetPlayerCount());
|
||||
diffHorde = (int)(hordeFree - m_SelectionPools[TeamId.Horde].GetPlayerCount());
|
||||
diffAli = (int)(aliFree - m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount());
|
||||
diffHorde = (int)(hordeFree - m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,10 +547,10 @@ namespace Game.BattleGrounds
|
||||
|
||||
if (ali_group != null && horde_group != null)
|
||||
{
|
||||
m_SelectionPools[TeamId.Alliance].AddGroup(ali_group, MaxPlayersPerTeam);
|
||||
m_SelectionPools[TeamId.Horde].AddGroup(horde_group, MaxPlayersPerTeam);
|
||||
m_SelectionPools[BatttleGroundTeamId.Alliance].AddGroup(ali_group, MaxPlayersPerTeam);
|
||||
m_SelectionPools[BatttleGroundTeamId.Horde].AddGroup(horde_group, MaxPlayersPerTeam);
|
||||
//add groups/players from normal queue to size of bigger group
|
||||
uint maxPlayers = Math.Min(m_SelectionPools[TeamId.Alliance].GetPlayerCount(), m_SelectionPools[TeamId.Horde].GetPlayerCount());
|
||||
uint maxPlayers = Math.Min(m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount(), m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount());
|
||||
for (uint i = 0; i < SharedConst.PvpTeamsCount; i++)
|
||||
{
|
||||
foreach (var groupQueueInfo in m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueueNormalAlliance + i])
|
||||
@@ -605,12 +605,12 @@ namespace Game.BattleGrounds
|
||||
}
|
||||
}
|
||||
//try to invite same number of players - this cycle may cause longer wait time even if there are enough players in queue, but we want ballanced bg
|
||||
uint j = TeamId.Alliance;
|
||||
if (m_SelectionPools[TeamId.Horde].GetPlayerCount() < m_SelectionPools[TeamId.Alliance].GetPlayerCount())
|
||||
j = TeamId.Horde;
|
||||
uint j = BatttleGroundTeamId.Alliance;
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() < m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount())
|
||||
j = BatttleGroundTeamId.Horde;
|
||||
|
||||
if (WorldConfig.GetIntValue(WorldCfg.BattlegroundInvitationType) != (int)BattlegroundQueueInvitationType.NoBalance
|
||||
&& m_SelectionPools[TeamId.Horde].GetPlayerCount() >= minPlayers && m_SelectionPools[TeamId.Alliance].GetPlayerCount() >= minPlayers)
|
||||
&& m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() >= minPlayers && m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() >= minPlayers)
|
||||
{
|
||||
//we will try to invite more groups to team with less players indexed by j
|
||||
++(teamIndex[j]); //this will not cause a crash, because for cycle above reached break;
|
||||
@@ -622,29 +622,29 @@ namespace Game.BattleGrounds
|
||||
break;
|
||||
}
|
||||
// do not allow to start bg with more than 2 players more on 1 faction
|
||||
if (Math.Abs((m_SelectionPools[TeamId.Horde].GetPlayerCount() - m_SelectionPools[TeamId.Alliance].GetPlayerCount())) > 2)
|
||||
if (Math.Abs((m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() - m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount())) > 2)
|
||||
return false;
|
||||
}
|
||||
//allow 1v0 if debug bg
|
||||
if (Global.BattlegroundMgr.IsTesting() && (m_SelectionPools[TeamId.Alliance].GetPlayerCount() != 0 || m_SelectionPools[TeamId.Horde].GetPlayerCount() != 0))
|
||||
if (Global.BattlegroundMgr.IsTesting() && (m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() != 0 || m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() != 0))
|
||||
return true;
|
||||
//return true if there are enough players in selection pools - enable to work .debug bg command correctly
|
||||
return m_SelectionPools[TeamId.Alliance].GetPlayerCount() >= minPlayers && m_SelectionPools[TeamId.Horde].GetPlayerCount() >= minPlayers;
|
||||
return m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() >= minPlayers && m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() >= minPlayers;
|
||||
}
|
||||
|
||||
// this method will check if we can invite players to same faction skirmish match
|
||||
bool CheckSkirmishForSameFaction(BattlegroundBracketId bracket_id, uint minPlayersPerTeam)
|
||||
{
|
||||
if (m_SelectionPools[TeamId.Alliance].GetPlayerCount() < minPlayersPerTeam && m_SelectionPools[TeamId.Horde].GetPlayerCount() < minPlayersPerTeam)
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Alliance].GetPlayerCount() < minPlayersPerTeam && m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() < minPlayersPerTeam)
|
||||
return false;
|
||||
|
||||
uint teamIndex = TeamId.Alliance;
|
||||
uint otherTeam = TeamId.Horde;
|
||||
uint teamIndex = BatttleGroundTeamId.Alliance;
|
||||
uint otherTeam = BatttleGroundTeamId.Horde;
|
||||
Team otherTeamId = Team.Horde;
|
||||
if (m_SelectionPools[TeamId.Horde].GetPlayerCount() == minPlayersPerTeam)
|
||||
if (m_SelectionPools[BatttleGroundTeamId.Horde].GetPlayerCount() == minPlayersPerTeam)
|
||||
{
|
||||
teamIndex = TeamId.Horde;
|
||||
otherTeam = TeamId.Alliance;
|
||||
teamIndex = BatttleGroundTeamId.Horde;
|
||||
otherTeam = BatttleGroundTeamId.Alliance;
|
||||
otherTeamId = Team.Alliance;
|
||||
}
|
||||
//clear other team's selection
|
||||
@@ -744,17 +744,17 @@ namespace Game.BattleGrounds
|
||||
bg.GetStatus() > BattlegroundStatus.WaitQueue && bg.GetStatus() < BattlegroundStatus.WaitLeave)
|
||||
{
|
||||
// clear selection pools
|
||||
m_SelectionPools[TeamId.Alliance].Init();
|
||||
m_SelectionPools[TeamId.Horde].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Alliance].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Horde].Init();
|
||||
|
||||
// call a function that does the job for us
|
||||
FillPlayersToBG(bg, bracket_id);
|
||||
|
||||
// now everything is set, invite players
|
||||
foreach (var queueInfo in m_SelectionPools[TeamId.Alliance].SelectedGroups)
|
||||
foreach (var queueInfo in m_SelectionPools[BatttleGroundTeamId.Alliance].SelectedGroups)
|
||||
InviteGroupToBG(queueInfo, bg, queueInfo.Team);
|
||||
|
||||
foreach (var queueInfo in m_SelectionPools[TeamId.Horde].SelectedGroups)
|
||||
foreach (var queueInfo in m_SelectionPools[BatttleGroundTeamId.Horde].SelectedGroups)
|
||||
InviteGroupToBG(queueInfo, bg, queueInfo.Team);
|
||||
|
||||
if (!bg.HasFreeSlots())
|
||||
@@ -777,8 +777,8 @@ namespace Game.BattleGrounds
|
||||
else if (Global.BattlegroundMgr.IsTesting())
|
||||
MinPlayersPerTeam = 1;
|
||||
|
||||
m_SelectionPools[TeamId.Alliance].Init();
|
||||
m_SelectionPools[TeamId.Horde].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Alliance].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Horde].Init();
|
||||
|
||||
if (!bg_template.IsArena())
|
||||
{
|
||||
@@ -793,13 +793,13 @@ namespace Game.BattleGrounds
|
||||
}
|
||||
// invite those selection pools
|
||||
for (uint i = 0; i < SharedConst.PvpTeamsCount; i++)
|
||||
foreach (var queueInfo in m_SelectionPools[TeamId.Alliance + i].SelectedGroups)
|
||||
foreach (var queueInfo in m_SelectionPools[BatttleGroundTeamId.Alliance + i].SelectedGroups)
|
||||
InviteGroupToBG(queueInfo, bg2, queueInfo.Team);
|
||||
|
||||
bg2.StartBattleground();
|
||||
//clear structures
|
||||
m_SelectionPools[TeamId.Alliance].Init();
|
||||
m_SelectionPools[TeamId.Horde].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Alliance].Init();
|
||||
m_SelectionPools[BatttleGroundTeamId.Horde].Init();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ namespace Game.BattleGrounds
|
||||
// invite those selection pools
|
||||
for (uint i = 0; i < SharedConst.PvpTeamsCount; i++)
|
||||
{
|
||||
foreach (var queueInfo in m_SelectionPools[TeamId.Alliance + i].SelectedGroups)
|
||||
foreach (var queueInfo in m_SelectionPools[BatttleGroundTeamId.Alliance + i].SelectedGroups)
|
||||
InviteGroupToBG(queueInfo, bg2, queueInfo.Team);
|
||||
}
|
||||
// start bg
|
||||
@@ -908,8 +908,8 @@ namespace Game.BattleGrounds
|
||||
//if we have 2 teams, then start new arena and invite players!
|
||||
if (found == 2)
|
||||
{
|
||||
GroupQueueInfo aTeam = queueArray[TeamId.Alliance];
|
||||
GroupQueueInfo hTeam = queueArray[TeamId.Horde];
|
||||
GroupQueueInfo aTeam = queueArray[BatttleGroundTeamId.Alliance];
|
||||
GroupQueueInfo hTeam = queueArray[BatttleGroundTeamId.Horde];
|
||||
Battleground arena = Global.BattlegroundMgr.CreateNewBattleground(m_queueId, bracket_id);
|
||||
if (arena == null)
|
||||
{
|
||||
@@ -928,12 +928,12 @@ namespace Game.BattleGrounds
|
||||
if (aTeam.Team != Team.Alliance)
|
||||
{
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeAlliance].Insert(0, aTeam);
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeHorde].Remove(queueArray[TeamId.Alliance]);
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeHorde].Remove(queueArray[BatttleGroundTeamId.Alliance]);
|
||||
}
|
||||
if (hTeam.Team != Team.Horde)
|
||||
{
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeHorde].Insert(0, hTeam);
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeAlliance].Remove(queueArray[TeamId.Horde]);
|
||||
m_QueuedGroups[(int)bracket_id][BattlegroundConst.BgQueuePremadeAlliance].Remove(queueArray[BatttleGroundTeamId.Horde]);
|
||||
}
|
||||
|
||||
arena.SetArenaMatchmakerRating(Team.Alliance, aTeam.ArenaMatchmakerRating);
|
||||
|
||||
Reference in New Issue
Block a user