Orxonox  0.0.5 Codename: Arcturus
PlayerInfo.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Fabian 'x3n' Landau
24  * Co-authors:
25  * ...
26  *
27  */
28 
29 #ifndef _PlayerInfo_H__
30 #define _PlayerInfo_H__
31 
32 #include "OrxonoxPrereqs.h"
33 
34 #include "Info.h"
36 
37 namespace orxonox // tolua_export
38 { // tolua_export
39  class _OrxonoxExport PlayerInfo // tolua_export
40  : public Info
41  { // tolua_export
42  public:
43  PlayerInfo(Context* context);
44  virtual ~PlayerInfo();
45 
46  virtual void changedName() override;
47  virtual void switchGametype(Gametype* gametype);
48 
49  virtual void changedController() {}
50  virtual void changedControllableEntity() {}
51 
52  inline bool isHumanPlayer() const
53  { return this->bHumanPlayer_; }
54  inline bool isLocalPlayer() const
55  { return this->bLocalPlayer_; }
56  inline unsigned int getClientID() const
57  { return this->clientID_; }
58 
59  virtual bool isInitialized() const = 0;
60  virtual float getPing() const = 0;
61  virtual float getPacketLossRatio() const = 0;
62 
63  inline void setReadyToSpawn(bool bReady)
64  { this->bReadyToSpawn_ = bReady; }
65  inline bool isReadyToSpawn() const
66  { return this->bReadyToSpawn_; }
67 
68  void startControl(ControllableEntity* entity);
69  void stopControl();
70  void pauseControl();
71  void startTemporaryControl(ControllableEntity* entity);
72  void stopTemporaryControl();
73 
75  { return this->controllableEntity_; }
76 
77  inline Controller* getController() const
78  { return this->controller_; }
79 
80  inline const GametypeInfo* getGametypeInfo() const
81  { return this->gtinfo_; }
82 
83  protected:
84  void createController();
85 
90  unsigned int clientID_;
91 
92  private:
93  void registerVariables();
94  void networkcallback_changedcontrollableentityID();
95  void networkcallback_changedgtinfoID();
96  void updateGametypeInfo(Gametype* gametype);
97 
101  std::vector<WeakPtr<ControllableEntity>> previousControllableEntity_;
102  unsigned int controllableEntityID_;
103 
105  unsigned int gtinfoID_;
106  }; // tolua_export
107 } // tolua_export
108 
109 #endif /* _PlayerInfo_H__ */
ControllableEntity * getControllableEntity() const
Definition: PlayerInfo.h:74
Definition of SubclassIdentifier.
unsigned int controllableEntityID_
Definition: PlayerInfo.h:102
Controller * getController() const
Definition: PlayerInfo.h:77
bool isReadyToSpawn() const
Definition: PlayerInfo.h:65
unsigned int getClientID() const
Definition: PlayerInfo.h:56
ControllableEntity * controllableEntity_
Definition: PlayerInfo.h:100
std::vector< WeakPtr< ControllableEntity > > previousControllableEntity_
List of the previous ControllableEntities if repeatedly startTemporary control was called...
Definition: PlayerInfo.h:101
bool bReadyToSpawn_
Definition: PlayerInfo.h:98
SubclassIdentifier< Controller > defaultController_
Definition: PlayerInfo.h:89
unsigned int clientID_
Definition: PlayerInfo.h:90
virtual void changedController()
Definition: PlayerInfo.h:49
bool bSetUnreadyAfterSpawn_
Definition: PlayerInfo.h:88
Definition: Info.h:39
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
unsigned int gtinfoID_
Definition: PlayerInfo.h:105
bool bLocalPlayer_
Definition: PlayerInfo.h:87
virtual void changedControllableEntity()
Definition: PlayerInfo.h:50
Definition: Gametype.h:63
Shared library macros, enums, constants and forward declarations for the orxonox library ...
void setReadyToSpawn(bool bReady)
Definition: PlayerInfo.h:63
Definition: Context.h:45
#define _OrxonoxExport
Definition: OrxonoxPrereqs.h:60
bool isHumanPlayer() const
Definition: PlayerInfo.h:52
Definition: Controller.h:38
const GametypeInfo * getGametypeInfo() const
Definition: PlayerInfo.h:80
Controller * controller_
Definition: PlayerInfo.h:99
The GametypeInfo class keeps track of the state of the game and provides facilities to inform the pla...
Definition: GametypeInfo.h:55
Definition: PlayerInfo.h:39
bool isLocalPlayer() const
Definition: PlayerInfo.h:54
The SubclassIdentifier acts almost like an Identifier, but has some prerequisites.
Definition: SubclassIdentifier.h:90
const GametypeInfo * gtinfo_
Definition: PlayerInfo.h:104
The ControllableEntity is derived from the orxonox::MobileEntity.
Definition: ControllableEntity.h:48
bool bHumanPlayer_
Definition: PlayerInfo.h:86