DDraceNetwork Docs
client.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 ENGINE_CLIENT_H
4#define ENGINE_CLIENT_H
5#include "kernel.h"
6
7#include "graphics.h"
8#include "message.h"
9#include <base/hash.h>
10
11#include <engine/client/enums.h>
12#include <engine/friends.h>
14
17
18#include <functional>
19#include <optional>
20
21struct SWarning;
22
23enum
24{
30};
31
32typedef bool (*CLIENTFUNC_FILTER)(const void *pData, int DataSize, void *pUser);
33struct CChecksumData;
34
35class IClient : public IInterface
36{
38public:
39 /* Constants: Client States
40 STATE_OFFLINE - The client is offline.
41 STATE_CONNECTING - The client is trying to connect to a server.
42 STATE_LOADING - The client has connected to a server and is loading resources.
43 STATE_ONLINE - The client is connected to a server and running the game.
44 STATE_DEMOPLAYBACK - The client is playing a demo
45 STATE_QUITTING - The client is quitting.
46 */
47
49 {
57 };
58
64 {
70 };
71
73 {
76 };
77 typedef std::function<void(ELoadingCallbackDetail Detail)> TLoadingCallback;
79
80protected:
81 // quick access to state of the client
85
86 // quick access to time variables
89 float m_aGameIntraTick[NUM_DUMMIES] = {0.0f, 0.0f};
90 float m_aGameTickTime[NUM_DUMMIES] = {0.0f, 0.0f};
92
93 int m_aPredTick[NUM_DUMMIES] = {0, 0};
94 float m_aPredIntraTick[NUM_DUMMIES] = {0.0f, 0.0f};
95
96 float m_LocalTime = 0.0f;
97 float m_GlobalTime = 0.0f;
98 float m_RenderFrameTime = 0.0001f;
99 float m_FrameTimeAvg = 0.0001f;
100
102
103 char m_aNews[3000] = "";
104 int m_Points = -1;
105 int64_t m_ReconnectTime = 0;
106
107public:
109 {
110 public:
112 int m_Id;
113 const void *m_pData;
115 };
116
117 enum
118 {
123 };
124
125 enum
126 {
131 // Different global IP address has been detected for UDP and
132 // TCP connections.
134 };
135
136 //
137 inline EClientState State() const { return m_State; }
139 inline int64_t StateStartTime() const { return m_StateStartTime; }
141
142 void SetLoadingCallback(TLoadingCallback &&Func) { m_LoadingCallback = std::move(Func); }
143
144 // tick time access
145 inline int PrevGameTick(int Conn) const { return m_aPrevGameTick[Conn]; }
146 inline int GameTick(int Conn) const { return m_aCurGameTick[Conn]; }
147 inline int PredGameTick(int Conn) const { return m_aPredTick[Conn]; }
148 inline float IntraGameTick(int Conn) const { return m_aGameIntraTick[Conn]; }
149 inline float PredIntraGameTick(int Conn) const { return m_aPredIntraTick[Conn]; }
150 inline float IntraGameTickSincePrev(int Conn) const { return m_aGameIntraTickSincePrev[Conn]; }
151 inline float GameTickTime(int Conn) const { return m_aGameTickTime[Conn]; }
152 inline int GameTickSpeed() const { return SERVER_TICK_SPEED; }
153
154 // other time access
155 inline float RenderFrameTime() const { return m_RenderFrameTime; }
156 inline float LocalTime() const { return m_LocalTime; }
157 inline float GlobalTime() const { return m_GlobalTime; }
158 inline float FrameTimeAvg() const { return m_FrameTimeAvg; }
159
160 // actions
161 virtual void Connect(const char *pAddress, const char *pPassword = nullptr) = 0;
162 virtual void Disconnect() = 0;
163
164 // dummy
165 virtual void DummyDisconnect(const char *pReason) = 0;
166 virtual void DummyConnect() = 0;
167 virtual bool DummyConnected() const = 0;
168 virtual bool DummyConnecting() const = 0;
169 virtual bool DummyConnectingDelayed() const = 0;
170 virtual bool DummyAllowed() const = 0;
171
172 virtual void Restart() = 0;
173 virtual void Quit() = 0;
174 virtual const char *DemoPlayer_Play(const char *pFilename, int StorageType) = 0;
175#if defined(CONF_VIDEORECORDER)
176 virtual const char *DemoPlayer_Render(const char *pFilename, int StorageType, const char *pVideoName, int SpeedIndex, bool StartPaused = false) = 0;
177#endif
178 virtual void DemoRecorder_Start(const char *pFilename, bool WithTimestamp, int Recorder, bool Verbose = false) = 0;
181 virtual class IDemoRecorder *DemoRecorder(int Recorder) = 0;
182 virtual void AutoScreenshot_Start() = 0;
183 virtual void AutoStatScreenshot_Start() = 0;
184 virtual void AutoCSV_Start() = 0;
185 virtual void ServerBrowserUpdate() = 0;
186
187 // gfx
188 virtual void SwitchWindowScreen(int Index) = 0;
189 virtual void SetWindowParams(int FullscreenMode, bool IsBorderless) = 0;
190 virtual void ToggleWindowVSync() = 0;
191 virtual void Notify(const char *pTitle, const char *pMessage) = 0;
192 virtual void OnWindowResize() = 0;
193
194 virtual void UpdateAndSwap() = 0;
195
196 // networking
197 virtual void EnterGame(int Conn) = 0;
198
199 //
200 virtual const NETADDR &ServerAddress() const = 0;
201 virtual int ConnectNetTypes() const = 0;
202 virtual const char *ConnectAddressString() const = 0;
203 virtual const char *MapDownloadName() const = 0;
204 virtual int MapDownloadAmount() const = 0;
205 virtual int MapDownloadTotalsize() const = 0;
206
207 // input
208 virtual int *GetInput(int Tick, int IsDummy = 0) const = 0;
209
210 // remote console
211 virtual void RconAuth(const char *pUsername, const char *pPassword, bool Dummy) = 0;
212 virtual bool RconAuthed() const = 0;
213 virtual bool UseTempRconCommands() const = 0;
214 virtual void Rcon(const char *pLine) = 0;
215 virtual bool ReceivingRconCommands() const = 0;
216 virtual float GotRconCommandsPercentage() const = 0;
217
218 // server info
219 virtual void GetServerInfo(class CServerInfo *pServerInfo) const = 0;
220 virtual bool ServerCapAnyPlayerFlag() const = 0;
221
222 virtual int GetPredictionTime() = 0;
223
224 // snapshot interface
225
226 enum
227 {
231 };
232
233 // TODO: Refactor: should redo this a bit i think, too many virtual calls
234 virtual int SnapNumItems(int SnapId) const = 0;
235 virtual const void *SnapFindItem(int SnapId, int Type, int Id) const = 0;
236 virtual CSnapItem SnapGetItem(int SnapId, int Index) const = 0;
237
238 virtual void SnapSetStaticsize(int ItemType, int Size) = 0;
239 virtual void SnapSetStaticsize7(int ItemType, int Size) = 0;
240
241 virtual int SendMsg(int Conn, CMsgPacker *pMsg, int Flags) = 0;
242 virtual int SendMsgActive(CMsgPacker *pMsg, int Flags) = 0;
243
244 template<class T>
245 int SendPackMsgActive(T *pMsg, int Flags, bool NoTranslate = false)
246 {
247 CMsgPacker Packer(T::ms_MsgId, false, NoTranslate);
248 if(pMsg->Pack(&Packer))
249 return -1;
250 return SendMsgActive(&Packer, Flags);
251 }
252
253 template<class T>
254 int SendPackMsg(int Conn, T *pMsg, int Flags, bool NoTranslate = false)
255 {
256 CMsgPacker Packer(T::ms_MsgId, false, NoTranslate);
257 if(pMsg->Pack(&Packer))
258 return -1;
259 return SendMsg(Conn, &Packer, Flags);
260 }
261
262 //
263 virtual const char *PlayerName() const = 0;
264 virtual const char *DummyName() = 0;
265 virtual const char *ErrorString() const = 0;
266 virtual const char *LatestVersion() const = 0;
267 virtual bool ConnectionProblems() const = 0;
268
269 virtual IGraphics::CTextureHandle GetDebugFont() const = 0; // TODO: remove this function
270
271 //DDRace
272
273 virtual const char *GetCurrentMap() const = 0;
274 virtual const char *GetCurrentMapPath() const = 0;
276 virtual unsigned GetCurrentMapCrc() const = 0;
277
278 const char *News() const { return m_aNews; }
279 int Points() const { return m_Points; }
280 int64_t ReconnectTime() const { return m_ReconnectTime; }
282
283 virtual bool IsSixup() const = 0;
284
285 virtual void RaceRecord_Start(const char *pFilename) = 0;
286 virtual void RaceRecord_Stop() = 0;
287 virtual bool RaceRecord_IsRecording() = 0;
288
289 virtual void DemoSliceBegin() = 0;
290 virtual void DemoSliceEnd() = 0;
291 virtual void DemoSlice(const char *pDstPath, CLIENTFUNC_FILTER pfnFilter, void *pUser) = 0;
292
293 virtual void RequestDDNetInfo() = 0;
294 virtual bool EditorHasUnsavedData() const = 0;
295
296 virtual void GenerateTimeoutSeed() = 0;
297
298 virtual IFriends *Foes() = 0;
299
300 virtual void GetSmoothTick(int *pSmoothTick, float *pSmoothIntraTick, float MixAmount) = 0;
301
302 virtual void AddWarning(const SWarning &Warning) = 0;
303 virtual std::optional<SWarning> CurrentWarning() = 0;
304
306 virtual int UdpConnectivity(int NetType) = 0;
307
317 virtual bool ViewLink(const char *pLink) = 0;
327 virtual bool ViewFile(const char *pFilename) = 0;
328
329#if defined(CONF_FAMILY_WINDOWS)
330 virtual void ShellRegister() = 0;
331 virtual void ShellUnregister() = 0;
332#endif
333
335 {
339 };
340 virtual void ShowMessageBox(const char *pTitle, const char *pMessage, EMessageBoxType Type = MESSAGE_BOX_TYPE_ERROR) = 0;
341 virtual void GetGpuInfoString(char (&aGpuInfo)[256]) = 0;
342};
343
345{
346 MACRO_INTERFACE("gameclient")
347protected:
348public:
349 virtual void OnConsoleInit() = 0;
350
351 virtual void OnRconType(bool UsernameReq) = 0;
352 virtual void OnRconLine(const char *pLine) = 0;
353 virtual void OnInit() = 0;
354 virtual void InvalidateSnapshot() = 0;
355 virtual void OnNewSnapshot() = 0;
356 virtual void OnEnterGame() = 0;
357 virtual void OnShutdown() = 0;
358 virtual void OnRender() = 0;
359 virtual void OnUpdate() = 0;
360 virtual void OnStateChange(int NewState, int OldState) = 0;
361 virtual void OnConnected() = 0;
362 virtual void OnMessage(int MsgId, CUnpacker *pUnpacker, int Conn, bool Dummy) = 0;
363 virtual void OnPredict() = 0;
364 virtual void OnActivateEditor() = 0;
365 virtual void OnWindowResize() = 0;
366
367 virtual int OnSnapInput(int *pData, bool Dummy, bool Force) = 0;
368 virtual void OnDummySwap() = 0;
369 virtual void SendDummyInfo(bool Start) = 0;
370
371 virtual const char *GetItemName(int Type) const = 0;
372 virtual const char *Version() const = 0;
373 virtual const char *NetVersion() const = 0;
374 virtual const char *NetVersion7() const = 0;
375 virtual int DDNetVersion() const = 0;
376 virtual const char *DDNetVersionStr() const = 0;
377
378 virtual void OnDummyDisconnect() = 0;
379 virtual void DummyResetInput() = 0;
380 virtual void Echo(const char *pString) = 0;
381
382 virtual bool CanDisplayWarning() const = 0;
383 virtual void RenderShutdownMessage() = 0;
384
387
388 virtual int ClientVersion7() const = 0;
389
390 virtual void ApplySkin7InfoFromSnapObj(const protocol7::CNetObj_De_ClientInfo *pObj, int ClientId) = 0;
391 virtual int OnDemoRecSnap7(class CSnapshot *pFrom, class CSnapshot *pTo, int Conn) = 0;
392 virtual int TranslateSnap(class CSnapshot *pSnapDstSix, class CSnapshot *pSnapSrcSeven, int Conn, bool Dummy) = 0;
393
394 virtual void InitializeLanguage() = 0;
395};
396
398
400#endif
Definition: message.h:10
Definition: protocol.h:1261
Definition: serverbrowser.h:23
Definition: snapshot.h:31
Definition: translation_context.h:10
Definition: packer.h:54
Definition: client.h:109
int m_Id
Definition: client.h:112
int m_DataSize
Definition: client.h:114
const void * m_pData
Definition: client.h:113
int m_Type
Definition: client.h:111
Definition: client.h:36
virtual bool ConnectionProblems() const =0
ELoadingStateDetail LoadingStateDetail() const
Definition: client.h:138
int64_t m_ReconnectTime
Definition: client.h:105
float LocalTime() const
Definition: client.h:156
virtual void DemoRecorder_HandleAutoStart()=0
virtual void OnWindowResize()=0
virtual void RequestDDNetInfo()=0
EMessageBoxType
Definition: client.h:335
@ MESSAGE_BOX_TYPE_INFO
Definition: client.h:338
@ MESSAGE_BOX_TYPE_ERROR
Definition: client.h:336
@ MESSAGE_BOX_TYPE_WARNING
Definition: client.h:337
virtual bool ViewLink(const char *pLink)=0
virtual void AddWarning(const SWarning &Warning)=0
float m_aGameIntraTick[NUM_DUMMIES]
Definition: client.h:89
ELoadingCallbackDetail
Definition: client.h:73
@ LOADING_CALLBACK_DETAIL_DEMO
Definition: client.h:75
@ LOADING_CALLBACK_DETAIL_MAP
Definition: client.h:74
virtual void ServerBrowserUpdate()=0
virtual bool UseTempRconCommands() const =0
EClientState m_State
Definition: client.h:82
float GameTickTime(int Conn) const
Definition: client.h:151
virtual bool RconAuthed() const =0
int PredGameTick(int Conn) const
Definition: client.h:147
int m_Points
Definition: client.h:104
CTranslationContext m_TranslationContext
Definition: client.h:78
void SetLoadingCallback(TLoadingCallback &&Func)
Definition: client.h:142
virtual const char * PlayerName() const =0
int m_aPrevGameTick[NUM_DUMMIES]
Definition: client.h:87
virtual void SnapSetStaticsize(int ItemType, int Size)=0
virtual const void * SnapFindItem(int SnapId, int Type, int Id) const =0
virtual void SnapSetStaticsize7(int ItemType, int Size)=0
TLoadingCallback m_LoadingCallback
Definition: client.h:101
virtual unsigned GetCurrentMapCrc() const =0
virtual void AutoScreenshot_Start()=0
virtual bool DummyConnectingDelayed() const =0
float IntraGameTickSincePrev(int Conn) const
Definition: client.h:150
virtual bool EditorHasUnsavedData() const =0
virtual int SendMsgActive(CMsgPacker *pMsg, int Flags)=0
virtual void GetServerInfo(class CServerInfo *pServerInfo) const =0
virtual bool ReceivingRconCommands() const =0
virtual CChecksumData * ChecksumData()=0
virtual void Restart()=0
virtual class IDemoRecorder * DemoRecorder(int Recorder)=0
int64_t ReconnectTime() const
Definition: client.h:280
virtual int * GetInput(int Tick, int IsDummy=0) const =0
float RenderFrameTime() const
Definition: client.h:155
float FrameTimeAvg() const
Definition: client.h:158
int PrevGameTick(int Conn) const
Definition: client.h:145
@ SNAP_PREV
Definition: client.h:229
@ SNAP_CURRENT
Definition: client.h:228
@ NUM_SNAPSHOT_TYPES
Definition: client.h:230
EClientState
Definition: client.h:49
@ STATE_RESTARTING
Definition: client.h:56
@ STATE_DEMOPLAYBACK
Definition: client.h:54
@ STATE_OFFLINE
Definition: client.h:50
@ STATE_LOADING
Definition: client.h:52
@ STATE_ONLINE
Definition: client.h:53
@ STATE_QUITTING
Definition: client.h:55
@ STATE_CONNECTING
Definition: client.h:51
virtual void GetGpuInfoString(char(&aGpuInfo)[256])=0
virtual void Disconnect()=0
virtual bool DummyConnected() const =0
virtual IFriends * Foes()=0
virtual bool RaceRecord_IsRecording()=0
int GameTickSpeed() const
Definition: client.h:152
virtual const char * DemoPlayer_Render(const char *pFilename, int StorageType, const char *pVideoName, int SpeedIndex, bool StartPaused=false)=0
virtual void EnterGame(int Conn)=0
virtual void RconAuth(const char *pUsername, const char *pPassword, bool Dummy)=0
virtual void Notify(const char *pTitle, const char *pMessage)=0
virtual void DemoRecorder_Start(const char *pFilename, bool WithTimestamp, int Recorder, bool Verbose=false)=0
virtual void ShowMessageBox(const char *pTitle, const char *pMessage, EMessageBoxType Type=MESSAGE_BOX_TYPE_ERROR)=0
virtual bool DummyAllowed() const =0
virtual bool IsSixup() const =0
int SendPackMsg(int Conn, T *pMsg, int Flags, bool NoTranslate=false)
Definition: client.h:254
int m_aPredTick[NUM_DUMMIES]
Definition: client.h:93
virtual void ToggleWindowVSync()=0
float m_aPredIntraTick[NUM_DUMMIES]
Definition: client.h:94
float m_aGameTickTime[NUM_DUMMIES]
Definition: client.h:90
virtual void GenerateTimeoutSeed()=0
EClientState State() const
Definition: client.h:137
virtual bool ServerCapAnyPlayerFlag() const =0
virtual void SetWindowParams(int FullscreenMode, bool IsBorderless)=0
virtual int UdpConnectivity(int NetType)=0
virtual void DemoSliceEnd()=0
virtual void Quit()=0
float m_aGameIntraTickSincePrev[NUM_DUMMIES]
Definition: client.h:91
virtual bool DummyConnecting() const =0
virtual void UpdateAndSwap()=0
virtual void Rcon(const char *pLine)=0
virtual void RaceRecord_Start(const char *pFilename)=0
virtual std::optional< SWarning > CurrentWarning()=0
virtual bool ViewFile(const char *pFilename)=0
virtual const char * DummyName()=0
float m_GlobalTime
Definition: client.h:97
virtual void DemoRecorder_UpdateReplayRecorder()=0
virtual void DemoSlice(const char *pDstPath, CLIENTFUNC_FILTER pfnFilter, void *pUser)=0
virtual const NETADDR & ServerAddress() const =0
virtual void Connect(const char *pAddress, const char *pPassword=nullptr)=0
std::function< void(ELoadingCallbackDetail Detail)> TLoadingCallback
Definition: client.h:77
virtual const char * LatestVersion() const =0
virtual const char * ConnectAddressString() const =0
virtual void DemoSliceBegin()=0
virtual const char * DemoPlayer_Play(const char *pFilename, int StorageType)=0
int Points() const
Definition: client.h:279
float m_FrameTimeAvg
Definition: client.h:99
virtual void DummyConnect()=0
void SetReconnectTime(int64_t ReconnectTime)
Definition: client.h:281
int m_aCurGameTick[NUM_DUMMIES]
Definition: client.h:88
virtual float GotRconCommandsPercentage() const =0
virtual int GetPredictionTime()=0
virtual const char * GetCurrentMapPath() const =0
int SendPackMsgActive(T *pMsg, int Flags, bool NoTranslate=false)
Definition: client.h:245
virtual int ConnectNetTypes() const =0
char m_aNews[3000]
Definition: client.h:103
virtual const char * ErrorString() const =0
int64_t StateStartTime() const
Definition: client.h:139
virtual int MapDownloadTotalsize() const =0
float IntraGameTick(int Conn) const
Definition: client.h:148
virtual const char * MapDownloadName() const =0
ELoadingStateDetail
Definition: client.h:64
@ LOADING_STATE_DETAIL_LOADING_DEMO
Definition: client.h:67
@ LOADING_STATE_DETAIL_GETTING_READY
Definition: client.h:69
@ LOADING_STATE_DETAIL_INITIAL
Definition: client.h:65
@ LOADING_STATE_DETAIL_LOADING_MAP
Definition: client.h:66
@ LOADING_STATE_DETAIL_SENDING_READY
Definition: client.h:68
virtual void SwitchWindowScreen(int Index)=0
int64_t m_StateStartTime
Definition: client.h:84
virtual void AutoStatScreenshot_Start()=0
virtual int SendMsg(int Conn, CMsgPacker *pMsg, int Flags)=0
@ CONN_DUMMY
Definition: client.h:120
@ CONN_CONTACT
Definition: client.h:121
@ NUM_CONNS
Definition: client.h:122
@ CONN_MAIN
Definition: client.h:119
ELoadingStateDetail m_LoadingStateDetail
Definition: client.h:83
virtual const char * GetCurrentMap() const =0
virtual int SnapNumItems(int SnapId) const =0
int GameTick(int Conn) const
Definition: client.h:146
virtual void RaceRecord_Stop()=0
@ CONNECTIVITY_CHECKING
Definition: client.h:128
@ CONNECTIVITY_REACHABLE
Definition: client.h:130
@ CONNECTIVITY_UNREACHABLE
Definition: client.h:129
@ CONNECTIVITY_UNKNOWN
Definition: client.h:127
@ CONNECTIVITY_DIFFERING_UDP_TCP_IP_ADDRESSES
Definition: client.h:133
virtual int MapDownloadAmount() const =0
const char * News() const
Definition: client.h:278
float GlobalTime() const
Definition: client.h:157
virtual CSnapItem SnapGetItem(int SnapId, int Index) const =0
float m_RenderFrameTime
Definition: client.h:98
virtual IGraphics::CTextureHandle GetDebugFont() const =0
virtual void AutoCSV_Start()=0
virtual void DummyDisconnect(const char *pReason)=0
virtual SHA256_DIGEST GetCurrentMapSha256() const =0
virtual void GetSmoothTick(int *pSmoothTick, float *pSmoothIntraTick, float MixAmount)=0
float PredIntraGameTick(int Conn) const
Definition: client.h:149
void SetLoadingStateDetail(ELoadingStateDetail LoadingStateDetail)
Definition: client.h:140
float m_LocalTime
Definition: client.h:96
Definition: demo.h:102
Definition: friends.h:19
Definition: client.h:345
virtual CNetObjHandler * GetNetObjHandler()=0
virtual const char * GetItemName(int Type) const =0
virtual void OnDummySwap()=0
virtual void RenderShutdownMessage()=0
virtual void OnPredict()=0
virtual void OnUpdate()=0
virtual void OnRconLine(const char *pLine)=0
virtual const char * NetVersion7() const =0
virtual void OnRender()=0
virtual void OnInit()=0
virtual void OnMessage(int MsgId, CUnpacker *pUnpacker, int Conn, bool Dummy)=0
virtual void OnDummyDisconnect()=0
virtual protocol7::CNetObjHandler * GetNetObjHandler7()=0
virtual int OnDemoRecSnap7(class CSnapshot *pFrom, class CSnapshot *pTo, int Conn)=0
virtual void OnActivateEditor()=0
virtual void OnConsoleInit()=0
virtual void OnShutdown()=0
virtual void DummyResetInput()=0
virtual int OnSnapInput(int *pData, bool Dummy, bool Force)=0
virtual void ApplySkin7InfoFromSnapObj(const protocol7::CNetObj_De_ClientInfo *pObj, int ClientId)=0
virtual const char * NetVersion() const =0
virtual const char * DDNetVersionStr() const =0
virtual void Echo(const char *pString)=0
virtual void OnConnected()=0
virtual int DDNetVersion() const =0
virtual void SendDummyInfo(bool Start)=0
virtual void OnRconType(bool UsernameReq)=0
virtual void OnEnterGame()=0
virtual int TranslateSnap(class CSnapshot *pSnapDstSix, class CSnapshot *pSnapSrcSeven, int Conn, bool Dummy)=0
virtual const char * Version() const =0
virtual int ClientVersion7() const =0
virtual bool CanDisplayWarning() const =0
virtual void InitializeLanguage()=0
virtual void OnStateChange(int NewState, int OldState)=0
virtual void OnWindowResize()=0
virtual void OnNewSnapshot()=0
virtual void InvalidateSnapshot()=0
Definition: graphics.h:201
Definition: kernel.h:10
IGameClient * CreateGameClient()
Definition: gameclient.cpp:2882
@ RECORDER_REPLAYS
Definition: client.h:28
@ RECORDER_MAX
Definition: client.h:29
@ RECORDER_RACE
Definition: client.h:27
@ RECORDER_AUTO
Definition: client.h:26
@ RECORDER_MANUAL
Definition: client.h:25
bool(* CLIENTFUNC_FILTER)(const void *pData, int DataSize, void *pUser)
Definition: client.h:32
void SnapshotRemoveExtraProjectileInfo(class CSnapshot *pSnap)
Definition: projectile_data.cpp:107
@ NUM_DUMMIES
Definition: enums.h:8
@ SERVER_TICK_SPEED
Definition: protocol.h:80
#define MACRO_INTERFACE(Name)
Definition: kernel.h:25
Definition: protocol7.h:8
Definition: checksum.h:7
Definition: types.h:67
Definition: hash.h:15
Definition: warning.h:5