Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/lib/network/player_stats.h @ 9504

Last change on this file since 9504 was 9504, checked in by patrick, 18 years ago
  • removing entities from the network works now also on proxies.
  • player team change is handled differently now: handler function
  • there was a chronological error in the change team function call stack
File size: 2.8 KB
RevLine 
[7974]1/*!
2 * @file player_stats.h
3 * @brief Definition of PlayerStats
4 */
5
6#ifndef _PLAYER_STATS_H
7#define _PLAYER_STATS_H
8
9#include "synchronizeable.h"
10#include "playable.h"
[8623]11#include "message_manager.h"
[7974]12
13#include <string>
14#include <list>
15
[8067]16enum
17{
18  TEAM_NOTEAM = -3,
19  TEAM_RANDOM = -2,
20  TEAM_SPECTATOR = -1
21};
22
[9110]23struct PlayerScore
24{
25  std::string name;
26  int score;
27};
28typedef std::list<PlayerScore> TeamScoreList;
29typedef std::map<int,TeamScoreList> ScoreList;
30
[7974]31//! A class for storing player information
[9504]32class PlayerStats : public Synchronizeable
[7974]33{
34
35  public:
36    PlayerStats( const TiXmlElement* root = NULL );
37    PlayerStats( int userId );
38    virtual ~PlayerStats();
[9504]39
[7974]40    virtual void varChangeHandler( std::list<int> & id );
[9504]41
[8014]42    static PlayerStats * getStats( int userId );
[9504]43
[7974]44    inline int getUserId(){ return userId; }
[9504]45
[7984]46    inline int getTeamId(){ return teamId; }
47    inline void setTeamId( int teamId ){ this->teamId = teamId; }
[9504]48
49    void setPreferedTeamIdHandler( int newTeamId);
[8067]50    inline int getPreferedTeamId(){ return preferedTeamId; }
[9504]51    inline void setPreferedTeamId( int preferedTeamId ) { this->preferedTeamId = preferedTeamId; }
52
[7974]53    inline int getScore(){ return score; }
54    inline void setScore( int score ){ this->score = score; }
[9504]55
[7974]56    inline int getPlayableClassId(){ return playableClassId; }
57    void setPlayableClassId( int classId ){ this->playableClassId = classId; };
[9504]58
[7974]59    inline int getPlayableUniqueId(){ return playableUniqueId; }
60    void setPlayableUniqueId( int uniqueId );
[9504]61
[7979]62    inline std::string getModelFileName(){ return modelFileName; }
63    inline void setModelFileName( std::string filename ){ modelFileName = filename; }
[9504]64
[7974]65    Playable * getPlayable();
[9504]66
[8623]67    inline std::string getNickName(){ return this->nickName; }
68    void setNickName( std::string nick );
69    static bool changeNickHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId );
70    void shellNick( const std::string&  newNick );
[9504]71
[8623]72    static void deleteAllPlayerStats();
[9504]73
[9110]74    static ScoreList getScoreList();
[7974]75
76  private:
77    int userId;                //!< userId
[7984]78    int teamId;                //!< teamId
[8067]79    int preferedTeamId;        //!< preferedTeamId
[7974]80
[8623]81    std::string nickName;      //!< players nickname
82    std::string oldNickName;   //!< nickname player had before
83
[7974]84    int score;                 //!< users score points
85    int playableClassId;       //!< players playable class id
86    int playableUniqueId;      //!< playable's uniqueId
87    std::string modelFileName; //!< model filename
88
89    Playable * playable;       //!< pointer to players playable
90
91    // handles for SynchronizeableVars
92    int userId_handle;
[8067]93    int teamId_handle;
94    int preferedTeamId_handle;
[7974]95    int score_handle;
96    int playableClassId_handle;
97    int playableUniqueId_handle;
98    int modelFileName_handle;
[8623]99    int nickName_handler;
[9504]100
[7974]101    void init();
102};
103
104#endif /* _PLAYER_STATS_H */
Note: See TracBrowser for help on using the repository browser.