DDraceNetwork Documentation
Loading...
Searching...
No Matches
player.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_SERVER_PLAYER_H
4#define GAME_SERVER_PLAYER_H
5
6#include <base/vmath.h>
8#include <game/alloc.h>
9#include <game/server/save.h>
10
11#include "teeinfo.h"
12
13#include <memory>
14#include <optional>
15
16class CCharacter;
17class CGameContext;
18class IServer;
21
22// player object
24{
26
27public:
28 CPlayer(CGameContext *pGameServer, uint32_t UniqueClientId, int ClientId, int Team);
29 ~CPlayer();
30
31 void Reset();
32
33 void TryRespawn();
34 void Respawn(bool WeakHook = false); // with WeakHook == true the character will be spawned after all calls of Tick from other Players
35 CCharacter *ForceSpawn(vec2 Pos); // required for loading savegames
36 void SetTeam(int Team, bool DoChatMsg = true);
37 int GetTeam() const { return m_Team; }
38 int GetCid() const { return m_ClientId; }
40 int GetClientVersion() const;
41 bool SetTimerType(int TimerType);
42
43 void Tick();
44 void PostTick();
45
46 // will be called after all Tick and PostTick calls from other players
47 void PostPostTick();
48 void Snap(int SnappingClient);
49 void FakeSnap();
50
54 void OnDisconnect();
55
56 void KillCharacter(int Weapon = WEAPON_GAME, bool SendKillMsg = true);
58 const CCharacter *GetCharacter() const;
59
60 void SpectatePlayerName(const char *pName);
61
62 //---------------------------------------------------------
63 // this is used for snapping so we know how we can clip the view for the player
67
68 // states if the client is chatting, accessing a menu etc.
70
71 // used for snapping to just update latency if the scoreboard is active
73
74 int m_SentSnaps = 0;
75
76 int SpectatorId() const { return m_SpectatorId; }
77 void SetSpectatorId(int Id);
78
80
81 //
82 int m_Vote;
84 //
98
100
102
105 std::optional<int> m_Score;
109
110 // network latency calculations
111 struct
112 {
116 int m_Avg;
117 int m_Min;
118 int m_Max;
120
121private:
126
128 IServer *Server() const;
129
130 //
135
136 // used for spectator mode
138
142 bool m_Afk;
143
148
149public:
150 enum
151 {
155 };
156
157 enum
158 {
165 };
166
167 bool m_DND;
171
172 void ProcessPause();
173 int Pause(int State, bool Force);
174 int ForcePause(int Time);
175 int IsPaused() const;
176 bool CanSpec() const;
177
178 bool IsPlaying() const;
186
187 // camera info is used sparingly for converting aim target to absolute world coordinates
189 {
190 friend class CPlayer;
192 float m_Zoom;
195
196 public:
197 vec2 ConvertTargetToWorld(vec2 Position, vec2 Target) const;
198 void Write(const CNetMsg_Cl_CameraInfo *pMsg);
199 void Reset();
201
203
205
206 void UpdatePlaytime();
207 void AfkTimer();
208 void SetAfk(bool Afk);
209 void SetInitialAfk(bool Afk);
210 bool IsAfk() const { return m_Afk; }
211
216
219
222
223 int GetDefaultEmote() const;
224 void OverrideDefaultEmote(int Emote, int Tick);
225 bool CanOverrideDefaultEmote() const;
226
230 std::shared_ptr<CScorePlayerResult> m_ScoreQueryResult;
231 std::shared_ptr<CScorePlayerResult> m_ScoreFinishResult;
235 int m_SwapTargetsClientId; //Client ID of the swap target for the given player
237
239
241 std::optional<CSaveTee> m_LastDeath;
242};
243
244#endif
#define MACRO_ALLOC_POOL_ID()
Definition alloc.h:36
Definition character.h:24
Definition gamecontext.h:106
Definition player.h:189
float m_Zoom
Definition player.h:192
int m_Deadzone
Definition player.h:193
bool m_HasCameraInfo
Definition player.h:191
void Reset()
Definition player.cpp:1040
vec2 ConvertTargetToWorld(vec2 Position, vec2 Target) const
Definition player.cpp:1018
int m_FollowFactor
Definition player.h:194
Definition player.h:24
int m_TimerType
Definition player.h:221
int64_t m_LastSqlQuery
Definition player.h:228
int m_ShowOthers
Definition player.h:181
bool m_SpecTeam
Definition player.h:184
void OverrideDefaultEmote(int Emote, int Tick)
Definition player.cpp:800
int GetClientVersion() const
Definition player.cpp:615
void SpectatePlayerName(const char *pName)
Definition player.cpp:911
int m_AccumMin
Definition player.h:114
void SetTeam(int Team, bool DoChatMsg=true)
Definition player.cpp:663
bool m_IsReady
Definition player.h:79
class CPlayer::CCameraInfo m_CameraInfo
bool m_Moderating
Definition player.h:204
bool m_LastBroadcastImportance
Definition player.h:215
int m_Paused
Definition player.h:139
int m_Team
Definition player.h:134
void SetInitialAfk(bool Afk)
Definition player.cpp:775
void KillCharacter(int Weapon=WEAPON_GAME, bool SendKillMsg=true)
Definition player.cpp:634
vec2 m_ShowDistance
Definition player.h:183
const uint32_t m_UniqueClientId
Definition player.h:122
bool m_BirthdayAnnounced
Definition player.h:236
CGameContext * GameServer() const
Definition player.h:127
IServer * Server() const
Definition player.cpp:20
int m_LastKill
Definition player.h:93
bool m_Spawning
Definition player.h:131
int m_SpectatorId
Definition player.h:137
int GetTeam() const
Definition player.h:37
std::shared_ptr< CScorePlayerResult > m_ScoreQueryResult
Definition player.h:230
int m_DieTick
Definition player.h:103
int64_t m_EligibleForFinishCheck
Definition player.h:233
void FakeSnap()
Definition player.cpp:507
void ProcessScoreResult(CScorePlayerResult &Result)
Definition player.cpp:931
int m_VotePos
Definition player.h:83
int GetDefaultEmote() const
Definition player.cpp:792
bool IsAfk() const
Definition player.h:210
CCharacter * m_pCharacter
Definition player.h:123
void PostTick()
Definition player.cpp:280
int m_aCurLatency[MAX_CLIENTS]
Definition player.h:72
int m_TeamChangeTick
Definition player.h:108
void SetSpectatorId(int Id)
Definition player.cpp:926
void OnPredictedInput(const CNetObj_PlayerInput *pNewInput)
Definition player.cpp:556
int m_Avg
Definition player.h:116
CGameContext * m_pGameServer
Definition player.h:125
CTeeInfo m_TeeInfos
Definition player.h:101
int64_t m_ForcePauseTime
Definition player.h:140
int m_DefEmote
Definition player.h:144
int m_AccumMax
Definition player.h:115
int m_OverrideEmoteReset
Definition player.h:146
int m_LastChangeInfo
Definition player.h:90
int m_LastActionTick
Definition player.h:107
int m_LastInvited
Definition player.h:97
int m_LastWhisperTo
Definition player.h:96
int m_LastVoteTry
Definition player.h:86
CSaveTee m_LastTeleTee
Definition player.h:240
int m_ChatScore
Definition player.h:202
void AfkTimer()
Definition player.cpp:761
int m_PreviousDieTick
Definition player.h:104
void Snap(int SnappingClient)
Definition player.cpp:309
int m_LastSetSpectatorMode
Definition player.h:89
int m_aLastCommands[4]
Definition player.h:94
vec2 m_ViewPos
Definition player.h:64
int64_t m_LastPlaytime
Definition player.h:212
void OnDisconnect()
Definition player.cpp:549
int m_Vote
Definition player.h:82
std::shared_ptr< CScorePlayerResult > m_ScoreFinishResult
Definition player.h:231
bool m_Afk
Definition player.h:142
int m_RescueMode
Definition player.h:238
int m_Max
Definition player.h:118
bool m_EyeEmoteEnabled
Definition player.h:220
void ProcessPause()
Definition player.cpp:817
int m_LastVoteCall
Definition player.h:85
int64_t m_LastDDRaceTeamChange
Definition player.h:180
int m_ClientId
Definition player.h:133
bool m_ShowAll
Definition player.h:182
int IsPaused() const
Definition player.cpp:901
int m_SendVoteIndex
Definition player.h:99
int ForcePause(int Time)
Definition player.cpp:887
int m_OverrideEmote
Definition player.h:145
void UpdatePlaytime()
Definition player.cpp:756
int m_NumInputs
Definition player.h:124
std::optional< int > m_Score
Definition player.h:105
char m_aTimeoutCode[64]
Definition player.h:170
void TryRespawn()
Definition player.cpp:738
int GetCid() const
Definition player.h:38
bool m_NotEligibleForFinish
Definition player.h:232
int m_SwapTargetsClientId
Definition player.h:235
int m_LastSetTeam
Definition player.h:88
int64_t m_Last_KickVote
Definition player.h:179
void OnPredictedEarlyInput(const CNetObj_PlayerInput *pNewInput)
Definition player.cpp:600
int64_t m_LastBroadcast
Definition player.h:214
int m_LastCommandPos
Definition player.h:95
CNetObj_PlayerInput * m_pLastTarget
Definition player.h:217
int m_Min
Definition player.h:117
bool m_LastTargetInit
Definition player.h:218
void SetAfk(bool Afk)
Definition player.cpp:766
uint32_t GetUniqueCid() const
Definition player.h:39
int m_TuneZoneOld
Definition player.h:66
int m_PlayerFlags
Definition player.h:69
int Pause(int State, bool Force)
Definition player.cpp:833
CCharacter * ForceSpawn(vec2 Pos)
Definition player.cpp:654
void PostPostTick()
Definition player.cpp:300
@ PAUSE_NONE
Definition player.h:152
@ PAUSE_SPEC
Definition player.h:154
@ PAUSE_PAUSED
Definition player.h:153
void Reset()
Definition player.cpp:41
int m_TuneZone
Definition player.h:65
int m_Accum
Definition player.h:113
bool m_FirstPacket
Definition player.h:227
int64_t m_LastPause
Definition player.h:141
int m_LastEmote
Definition player.h:91
std::optional< CSaveTee > m_LastDeath
Definition player.h:241
@ TIMERTYPE_GAMETIMER
Definition player.h:160
@ TIMERTYPE_DEFAULT
Definition player.h:159
@ TIMERTYPE_BROADCAST
Definition player.h:161
@ TIMERTYPE_SIXUP
Definition player.h:163
@ TIMERTYPE_NONE
Definition player.h:164
@ TIMERTYPE_GAMETIMER_AND_BROADCAST
Definition player.h:162
CCharacter * GetCharacter()
Definition player.cpp:620
~CPlayer()
Definition player.cpp:33
void OnDirectInput(const CNetObj_PlayerInput *pNewInput)
Definition player.cpp:574
bool m_DND
Definition player.h:167
bool CanSpec() const
Definition player.cpp:812
bool m_WeakHookSpawn
Definition player.h:132
bool SetTimerType(int TimerType)
Definition player.cpp:692
int SpectatorId() const
Definition player.h:76
int64_t m_LastEyeEmote
Definition player.h:213
bool m_VotedForPractice
Definition player.h:234
struct CPlayer::@258 m_Latency
bool CanOverrideDefaultEmote() const
Definition player.cpp:807
int m_LastEmoteGlobal
Definition player.h:92
void Tick()
Definition player.cpp:163
int m_SentSnaps
Definition player.h:74
bool IsPlaying() const
Definition player.cpp:906
int m_JoinTick
Definition player.h:106
bool m_Halloween
Definition player.h:147
bool m_Whispers
Definition player.h:168
int m_LastChat
Definition player.h:87
void Respawn(bool WeakHook=false)
Definition player.cpp:645
bool m_NinjaJetpack
Definition player.h:185
int64_t m_FirstVoteTick
Definition player.h:169
Definition save.h:38
Definition teeinfo.h:9
Definition server.h:31
Definition vmath.h:15
Write
Definition connection_pool.h:35
@ MAX_CLIENTS
Definition protocol.h:88
@ WEAPON_GAME
Definition protocol.h:1495
Definition protocol.h:1212
Definition protocol.h:402
Definition scoreworker.h:27