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;
void inGamePlayersByTeams(PlayersByTeams &playersListMap) const
Divides players and bots to lists ordered by teams.
void bots(PlayersList &botsList) const
Lists all bots regardless if they are on a team or not.
Data structure that holds information about players in a server.
void botsWithoutTeam(PlayersList &botsList) const
Lists only those bots that are not on a team.
int numClients() const
Overall number of people and bots on the server.