playerslist.h
1 //------------------------------------------------------------------------------
2 // playerslist.h
3 //------------------------------------------------------------------------------
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301 USA
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2010 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 #ifndef __PLAYERS_LIST_H_
24 #define __PLAYERS_LIST_H_
25 
26 #include "dptr.h"
27 #include "global.h"
28 #include "player.h"
29 #include <QList>
30 #include <QMap>
31 
32 class PlayersList;
33 
38 typedef QMap<int, PlayersList> PlayersByTeams;
39 
43 class MAIN_EXPORT PlayersList
44 {
45  public:
46  PlayersList();
47  PlayersList(const PlayersList& other);
48  PlayersList& operator=(const PlayersList& other);
49  virtual ~PlayersList();
53  void bots(PlayersList& botsList) const;
54 
58  void botsWithoutTeam(PlayersList& botsList) const;
59  void clear();
60  int count() const
61  {
62  return size();
63  }
64 
65  int numBots() const;
66  int numBotsOnTeam(int team) const;
67  int numBotsWithoutTeam() const;
68 
72  int numClients() const;
73  int numClientsWithoutBots() const;
74 
75  int numHumansInGame() const;
76  int numHumansOnTeam(int team) const;
77  int numHumansWithoutTeam() const;
78  int numPlayersOnTeam(int team) const;
79  int numSpectators() const;
80 
81  PlayersList &operator<<(const Player &player);
82  Player &operator[](int index);
83  const Player &operator[](int index) const;
84  const QList<Player> &players() const;
85 
95  void inGamePlayersByTeams(PlayersByTeams& playersListMap) const;
96 
97  int size() const;
98  void spectators(PlayersList& spectatorsList) const;
99  private:
101 };
102 
103 #endif
Data structure that holds information about players in a server.
Definition: player.h:37