23 #include "playerslist.h"
28 QList<Player> players;
49 PlayersList::~PlayersList()
57 foreach(
Player player, players())
70 foreach(
Player player, players())
72 if (player.isBot() && player.teamNum() == Player::TEAM_NONE)
79 void PlayersList::clear()
84 int PlayersList::numBots()
const
87 foreach(
Player player, players())
98 int PlayersList::numBotsOnTeam(
int team)
const
101 foreach(
Player player, players())
103 if (player.isBot() && player.teamNum() == team)
112 int PlayersList::numBotsWithoutTeam()
const
115 foreach(
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 foreach(
Player player, players())
142 if (!player.isBot() && !player.isSpectating())
151 int PlayersList::numHumansOnTeam(
int team)
const
154 foreach(
Player player, players())
157 && !player.isSpectating()
158 && player.teamNum() == team)
167 int PlayersList::numHumansWithoutTeam()
const
170 foreach(
Player player, players())
173 && !player.isSpectating()
174 && player.teamNum() == Player::TEAM_NONE)
183 int PlayersList::numPlayersOnTeam(
int team)
const
186 foreach(
Player player, players())
188 if (player.teamNum() == team)
197 int PlayersList::numSpectators()
const
201 foreach(
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 foreach(
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 foreach(
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.