23 #include "playerslist.h"
28 QList<Player> players;
49 PlayersList::~PlayersList()
57 for (
Player player : players())
70 for (
Player player : players())
72 if (player.isBot() && player.teamNum() == Player::TEAM_NONE)
79 void PlayersList::clear()
84 int PlayersList::numBots()
const
87 for (
Player player : players())
98 int PlayersList::numBotsOnTeam(
int team)
const
101 for (
Player player : players())
103 if (player.isBot() && player.teamNum() == team)
112 int PlayersList::numBotsWithoutTeam()
const
115 for (
Player player : players())
117 if (player.isBot() && player.teamNum() == Player::TEAM_NONE)
131 int PlayersList::numClientsWithoutBots()
const
133 return size() - numBots();
136 int PlayersList::numHumansInGame()
const
138 int humansInGame = 0;
140 for (
Player player : players())
142 if (!player.isBot() && !player.isSpectating())
151 int PlayersList::numHumansOnTeam(
int team)
const
154 for (
Player player : players())
157 && !player.isSpectating()
158 && player.teamNum() == team)
167 int PlayersList::numHumansWithoutTeam()
const
170 for (
Player player : players())
173 && !player.isSpectating()
174 && player.teamNum() == Player::TEAM_NONE)
183 int PlayersList::numPlayersOnTeam(
int team)
const
186 for (
Player player : players())
188 if (player.teamNum() == team)
197 int PlayersList::numSpectators()
const
201 for (
Player player : players())
203 if (player.isSpectating())
214 d->players << player;
218 Player &PlayersList::operator[](
int index)
220 return d->players[index];
223 const Player &PlayersList::operator[](
int index)
const
225 return d->players[index];
228 const QList<Player> &PlayersList::players()
const
235 playersListMap.clear();
237 for (
const Player &player : players())
239 if (!player.isSpectating() && !player.isTeamlessBot())
241 int teamIndex = player.teamNum();
242 if (playersListMap.contains(teamIndex))
244 playersListMap[teamIndex] << player;
250 playersListMap.insert(teamIndex, newList);
256 int PlayersList::size()
const
258 return d->players.size();
261 void PlayersList::spectators(
PlayersList &spectatorsList)
const
263 spectatorsList.clear();
265 for (
Player player : players())
267 if (player.isSpectating())
269 spectatorsList << player;