12#ifndef TT_INCLUDE_CPLAYER_H
13#define TT_INCLUDE_CPLAYER_H
14#include "PlayerDataClass.h"
15#include "NetworkObjectClass.h"
16#include "engine_string.h"
19enum GAMESPY_AUTH_STATE_ENUM
21 GAMESPY_AUTH_STATE_INITIAL,
22 GAMESPY_AUTH_STATE_CHALLENGED,
23 GAMESPY_AUTH_STATE_VALIDATING,
24 GAMESPY_AUTH_STATE_ACCEPTED,
25 GAMESPY_AUTH_STATE_REJECTING,
26 GAMESPY_AUTH_STATE_REJECTED,
30class cPlayer :
public PlayerDataClass,
public NetworkObjectClass {
34 bool Load(ChunkLoadClass& chunkLoader);
35 bool Save(ChunkSaveClass& chunkSaver);
37 void Set_Score(
float score);
38 void Increment_Score(
float score);
39 void Set_Money(
float money);
40 void Increment_Money(
float money);
41 unsigned int Get_Network_Class_ID()
const;
42 void Import_Creation(BitStreamClass &BitStream);
43 void Import_Rare(BitStreamClass &BitStream);
44 void Import_Occasional(BitStreamClass &BitStream);
45 void Export_Creation(BitStreamClass &BitStream);
46 void Export_Rare(BitStreamClass &BitStream);
47 void Export_Occasional(BitStreamClass &BitStream);
49 void SCRIPTS_API Set_Player_Type(
int type);
50 void Set_Ladder_Points(
int amount);
51 void Set_Rung(
int amount);
52 void Set_Is_Active(
bool active);
53 void SCRIPTS_API Set_Name(
const WideStringClass& name);
54 void SCRIPTS_API Set_Id(uint32
id);
55 void Set_Wol_ClanID(uint32 wolClanId);
56 void Set_Wol_Rank(sint32 wolRank);
57 void Set_Is_In_Game(
bool);
58 void Set_Is_Waiting_For_Intermission(
bool);
59 void Set_Last_Update_Time_Ms(uint32 lastUpdate);
60 void Set_Ip_Address(
unsigned long ip);
61 int Get_Ip_Address()
const {
return IpAddress;}
62 void Reset_Join_Time();
63 void Increment_Total_Time();
65 Vector3 Get_Color()
const;
66 bool Get_Invulnerable()
const {
return Invulnerable;}
67 bool Is_Team_Player();
69 void Get_Player_String(
int id,WideStringClass &str,
bool b);
70 void Increment_Kills();
71 void Increment_Deaths();
72 SCRIPTS_API
void Set_Kills(
int kills);
73 SCRIPTS_API
void Set_Deaths(
int deaths);
76 WideStringClass PlayerName;
78 safe_int LadderPoints;
85 int DamageScaleFactor;
89 unsigned long IpAddress;
91 unsigned long LastUpdateTimeMs;
94 bool IsWaitingForIntermission;
95 GAMESPY_AUTH_STATE_ENUM GameSpyAuthState;
96 unsigned long GameSpyAuthStateEntryTimeMs;
97 StringClass GameSpyChallengeString;
98 StringClass GameSpyHashId;
100 unsigned long GameSpyKickStateEntryTimeMs;
103 unsigned long WolClanId;
105 int Get_Join_Time()
const {
return JoinTime;}
106 int Get_Total_Time()
const {
return TotalTime;}
107 void Set_Fps(
int _fps) { Fps = _fps; }
108 bool Get_Is_Active()
const {
return IsActive; }
109 bool Is_Human()
const {
return PlayerId >= 0; }
110 bool Get_Is_In_Game()
const {
return IsInGame; }
111 int Get_Id()
const {
return PlayerId; }
112 bool Get_Is_Waiting_For_Intermission()
const {
return IsWaitingForIntermission; }
113 void Mark_As_Modified() { Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,
true); }
114 bool Is_Active() {
return IsActive;}
115 const WideStringClass &Get_Name()
const {
return PlayerName;}
116 int Get_Player_Type()
const {
return PlayerType;}
117 int Get_Rung()
const {
return Rung;}
118 int Get_Ladder_Points()
const {
return LadderPoints;}
119 int Get_Kills()
const {
return Kills;}
120 int Get_Deaths()
const {
return Deaths;}
121 bool Is_Alive_And_Kicking()
const {
return PlayerId >= 0 && IsInGame && IsActive; }
122 int Get_Damage_Scale_Factor()
const {
return DamageScaleFactor;}
123 int Get_WOL_ClanID()
const {
return WolClanId;}
124 short Get_WOL_Points()
const {
return WolPoints;}
125 int Get_Num_WOL_Games() {
return NumWolGames;}
126 int Get_Fast_Sort_Key() {
return FastSortKey;}
127 void Set_Fast_Sort_Key(
int key) {FastSortKey = key;}
128 float Get_Kill_To_Death_Ratio()
const
132 return (
float)Kills / (float)Deaths;
137 void Set_GameSpy_Hash_Id(
const StringClass& _GameSpyHashId) { GameSpyHashId = _GameSpyHashId; }
138 void Set_GameSpy_Challenge_String(
const StringClass& _GameSpyChallengeString) { GameSpyChallengeString = _GameSpyChallengeString; }
139 GAMESPY_AUTH_STATE_ENUM Get_GameSpy_Auth_State()
const {
return GameSpyAuthState; }
140 void Set_GameSpy_Auth_State(GAMESPY_AUTH_STATE_ENUM _GameSpyAuthState);
144 WideStringClass customTag;
146 WideStringClass getNameLabel()
const;
147 bool isFriendly(
const DamageableGameObj&
object)
const;
148 bool isHostile(
const DamageableGameObj&
object)
const;
151 SimpleDynVecClass<unsigned long> FloodCounter;
154 virtual void Increment_Flood_Counter();
155 virtual void Decrement_Flood_Counter();
156 virtual bool Is_Flooding();