DDraceNetwork Documentation
Loading...
Searching...
No Matches
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 "graphics.h"
6#include "kernel.h"
7#include "message.h"
8
9#include <base/hash.h>
10
11#include <engine/client/enums.h>
12#include <engine/friends.h>
14
15#include <generated/protocol.h>
16#include <generated/protocol7.h>
17
18#include <functional>
19#include <optional>
20
21#define CONNECTLINK_DOUBLE_SLASH "ddnet://"
22#define CONNECTLINK_NO_SLASH "ddnet:"
23
24struct SWarning;
25
26enum
27{
33};
34
35typedef bool (*CLIENTFUNC_FILTER)(const void *pData, int DataSize, void *pUser);
36struct CChecksumData;
37
38class IClient : public IInterface
39{
41public:
42 /* Constants: Client States
43 STATE_OFFLINE - The client is offline.
44 STATE_CONNECTING - The client is trying to connect to a server.
45 STATE_LOADING - The client has connected to a server and is loading resources.
46 STATE_ONLINE - The client is connected to a server and running the game.
47 STATE_DEMOPLAYBACK - The client is playing a demo
48 STATE_QUITTING - The client is quitting.
49 */
50
61
74
80 typedef std::function<void(ELoadingCallbackDetail Detail)> TLoadingCallback;
82
83protected:
84 // quick access to state of the client
88
89 // quick access to time variables
92 float m_aGameIntraTick[NUM_DUMMIES] = {0.0f, 0.0f};
93 float m_aGameTickTime[NUM_DUMMIES] = {0.0f, 0.0f};
95
96 int m_aPredTick[NUM_DUMMIES] = {0, 0};
97 float m_aPredIntraTick[NUM_DUMMIES] = {0.0f, 0.0f};
98
99 float m_LocalTime = 0.0f;
100 float m_GlobalTime = 0.0f;
101 float m_RenderFrameTime = 0.0001f;
102 float m_FrameTimeAverage = 0.0001f;
103
105
106 char m_aNews[3000] = "";
107 int m_Points = -1;
108 int64_t m_ReconnectTime = 0;
109
110public:
112 {
113 public:
115 int m_Id;
116 const void *m_pData;
118 };
119
120 enum
121 {
126 };
127
128 enum
129 {
134 // Different global IP address has been detected for UDP and
135 // TCP connections.
137 };
138
139 //
140 EClientState State() const { return m_State; }
142 int64_t StateStartTime() const { return m_StateStartTime; }
144
145 void SetLoadingCallback(TLoadingCallback &&Func) { m_LoadingCallback = std::move(Func); }
146
147 // Game time.
148 //
149 // There are 50 ticks per second, by default we only send snapshot on
150 // every second tick.
151
152 // Tick of the second to most recently received snapshot (usually 2
153 // less than `GameTick`).
154 int PrevGameTick(int Conn) const { return m_aPrevGameTick[Conn]; }
155 // Tick of most recently received snapshot.
156 int GameTick(int Conn) const { return m_aCurGameTick[Conn]; }
157 // The tick we should predict to. Comes from a magic black box called
158 // "smooth time".
159 int PredGameTick(int Conn) const { return m_aPredTick[Conn]; }
160 // Linear interpolation parameter between `PrevGameTick` (0) and
161 // `GameTick` (1). Can be outside the interval [0, 1].
162 float IntraGameTick(int Conn) const { return m_aGameIntraTick[Conn]; }
163 // Linear interpolation parameter between `PredGameTick - 1` (0) and
164 // `PredGameTick` (1). Can be outside the interval [0, 1].
165 float PredIntraGameTick(int Conn) const { return m_aPredIntraTick[Conn]; }
166 // (Fractional) ticks since `PrevGameTick`.
167 float IntraGameTickSincePrev(int Conn) const { return m_aGameIntraTickSincePrev[Conn]; }
168 // Time in seconds since the second to most recently received snapshot.
169 float GameTickTime(int Conn) const { return m_aGameTickTime[Conn]; }
170 // 50
171 int GameTickSpeed() const { return SERVER_TICK_SPEED; }
172
173 // Other time.
174
175 // Time in seconds since a map was joined, or `GlobalTime` if that
176 // hasn't happened yet.
177 float LocalTime() const { return m_LocalTime; }
178 // Time in seconds since the client was opened.
179 float GlobalTime() const { return m_GlobalTime; }
180
181 // Render statistics.
182
183 // Duration in seconds of the previous render cycle.
184 float RenderFrameTime() const { return m_RenderFrameTime; }
185 // Exponentially weighted average of frame times.
186 float FrameTimeAverage() const { return m_FrameTimeAverage; }
187
188 // actions
189 virtual void Connect(const char *pAddress, const char *pPassword = nullptr) = 0;
190 virtual void Disconnect() = 0;
191
192 // dummy
193 virtual void DummyDisconnect(const char *pReason) = 0;
194 virtual void DummyConnect() = 0;
195 virtual bool DummyConnected() const = 0;
196 virtual bool DummyConnecting() const = 0;
197 virtual bool DummyConnectingDelayed() const = 0;
198 virtual bool DummyAllowed() const = 0;
199
200 virtual void Restart() = 0;
201 virtual void Quit() = 0;
202 virtual const char *DemoPlayer_Play(const char *pFilename, int StorageType) = 0;
203#if defined(CONF_VIDEORECORDER)
204 virtual const char *DemoPlayer_Render(const char *pFilename, int StorageType, const char *pVideoName, int SpeedIndex, bool StartPaused = false) = 0;
205#endif
206 virtual void DemoRecorder_Start(const char *pFilename, bool WithTimestamp, int Recorder) = 0;
209 virtual class IDemoRecorder *DemoRecorder(int Recorder) = 0;
210 virtual void AutoScreenshot_Start() = 0;
211 virtual void AutoStatScreenshot_Start() = 0;
212 virtual void AutoCSV_Start() = 0;
213 virtual void ServerBrowserUpdate() = 0;
214
215 // gfx
216 virtual void Notify(const char *pTitle, const char *pMessage) = 0;
217 virtual void OnWindowResize() = 0;
218
219 virtual void UpdateAndSwap() = 0;
220
221 // networking
222 virtual void EnterGame(int Conn) = 0;
223
224 //
225 virtual const NETADDR &ServerAddress() const = 0;
226 virtual int ConnectNetTypes() const = 0;
227 virtual const char *ConnectAddressString() const = 0;
228 virtual const char *MapDownloadName() const = 0;
229 virtual int MapDownloadAmount() const = 0;
230 virtual int MapDownloadTotalsize() const = 0;
231
232 // input
233 virtual int *GetInput(int Tick, int IsDummy = 0) const = 0;
234
235 // remote console
236 virtual void RconAuth(const char *pUsername, const char *pPassword, bool Dummy) = 0;
237 virtual bool RconAuthed() const = 0;
238 virtual bool UseTempRconCommands() const = 0;
239 virtual void Rcon(const char *pLine) = 0;
240 virtual bool ReceivingRconCommands() const = 0;
241 virtual float GotRconCommandsPercentage() const = 0;
242 virtual bool ReceivingMaplist() const = 0;
243 virtual float GotMaplistPercentage() const = 0;
244 virtual const std::vector<std::string> &MaplistEntries() const = 0;
245
246 // server info
247 virtual void GetServerInfo(class CServerInfo *pServerInfo) const = 0;
248 virtual bool ServerCapAnyPlayerFlag() const = 0;
249
250 virtual int GetPredictionTime() = 0;
251 virtual int GetPredictionTick() = 0;
252
253 // snapshot interface
254
255 enum
256 {
260 };
261
262 // TODO: Refactor: should redo this a bit i think, too many virtual calls
263 virtual int SnapNumItems(int SnapId) const = 0;
264 virtual const void *SnapFindItem(int SnapId, int Type, int Id) const = 0;
265 virtual CSnapItem SnapGetItem(int SnapId, int Index) const = 0;
266
267 virtual void SnapSetStaticsize(int ItemType, int Size) = 0;
268 virtual void SnapSetStaticsize7(int ItemType, int Size) = 0;
269
270 virtual int SendMsg(int Conn, CMsgPacker *pMsg, int Flags) = 0;
271 virtual int SendMsgActive(CMsgPacker *pMsg, int Flags) = 0;
272
273 template<class T>
274 int SendPackMsgActive(T *pMsg, int Flags, bool NoTranslate = false)
275 {
276 CMsgPacker Packer(T::ms_MsgId, false, NoTranslate);
277 if(pMsg->Pack(&Packer))
278 return -1;
279 return SendMsgActive(&Packer, Flags);
280 }
281
282 template<class T>
283 int SendPackMsg(int Conn, T *pMsg, int Flags, bool NoTranslate = false)
284 {
285 CMsgPacker Packer(T::ms_MsgId, false, NoTranslate);
286 if(pMsg->Pack(&Packer))
287 return -1;
288 return SendMsg(Conn, &Packer, Flags);
289 }
290
291 //
292 virtual const char *PlayerName() const = 0;
293 virtual const char *DummyName() = 0;
294 virtual const char *ErrorString() const = 0;
295 virtual const char *LatestVersion() const = 0;
296 virtual bool ConnectionProblems() const = 0;
297
298 virtual IGraphics::CTextureHandle GetDebugFont() const = 0; // TODO: remove this function
299
300 // DDRace
301
302 virtual const char *GetCurrentMap() const = 0;
303 virtual const char *GetCurrentMapPath() const = 0;
305 virtual unsigned GetCurrentMapCrc() const = 0;
306
307 const char *News() const { return m_aNews; }
308 int Points() const { return m_Points; }
309 int64_t ReconnectTime() const { return m_ReconnectTime; }
311
312 virtual bool IsSixup() const = 0;
313
314 virtual void RaceRecord_Start(const char *pFilename) = 0;
315 virtual void RaceRecord_Stop() = 0;
316 virtual bool RaceRecord_IsRecording() = 0;
317
318 virtual void DemoSliceBegin() = 0;
319 virtual void DemoSliceEnd() = 0;
320 virtual void DemoSlice(const char *pDstPath, CLIENTFUNC_FILTER pfnFilter, void *pUser) = 0;
321
322 enum class EInfoState
323 {
327 };
328 virtual EInfoState InfoState() const = 0;
329 virtual void RequestDDNetInfo() = 0;
330 virtual bool EditorHasUnsavedData() const = 0;
331
332 virtual void GenerateTimeoutSeed() = 0;
333
334 virtual IFriends *Foes() = 0;
335
336 virtual void GetSmoothTick(int *pSmoothTick, float *pSmoothIntraTick, float MixAmount) = 0;
337
338 virtual void AddWarning(const SWarning &Warning) = 0;
339 virtual std::optional<SWarning> CurrentWarning() = 0;
340
342 virtual int UdpConnectivity(int NetType) = 0;
343
353 virtual bool ViewLink(const char *pLink) = 0;
363 virtual bool ViewFile(const char *pFilename) = 0;
364
365#if defined(CONF_FAMILY_WINDOWS)
366 virtual void ShellRegister() = 0;
367 virtual void ShellUnregister() = 0;
368#endif
369
370 virtual std::optional<int> ShowMessageBox(const IGraphics::CMessageBox &MessageBox) = 0;
371 virtual void GetGpuInfoString(char (&aGpuInfo)[512]) = 0;
372};
373
375{
376 MACRO_INTERFACE("gameclient")
377protected:
378public:
379 virtual void OnConsoleInit() = 0;
380
381 virtual void OnRconType(bool UsernameReq) = 0;
382 virtual void OnRconLine(const char *pLine) = 0;
383 virtual void OnInit() = 0;
384 virtual void InvalidateSnapshot() = 0;
385 virtual void OnNewSnapshot() = 0;
386 virtual void OnEnterGame() = 0;
387 virtual void OnShutdown() = 0;
388 virtual void OnRender() = 0;
389 virtual void OnUpdate() = 0;
390 virtual void OnStateChange(int NewState, int OldState) = 0;
391 virtual void OnConnected() = 0;
392 virtual void OnMessage(int MsgId, CUnpacker *pUnpacker, int Conn, bool Dummy) = 0;
393 virtual void OnPredict() = 0;
394 virtual void OnActivateEditor() = 0;
395 virtual void OnWindowResize() = 0;
396
397 virtual int OnSnapInput(int *pData, bool Dummy, bool Force) = 0;
398 virtual void OnDummySwap() = 0;
399 virtual void SendDummyInfo(bool Start) = 0;
400
401 virtual const char *GetItemName(int Type) const = 0;
402 virtual const char *Version() const = 0;
403 virtual const char *NetVersion() const = 0;
404 virtual const char *NetVersion7() const = 0;
405 virtual int DDNetVersion() const = 0;
406 virtual const char *DDNetVersionStr() const = 0;
407
408 virtual void OnDummyDisconnect() = 0;
409 virtual void DummyResetInput() = 0;
410 virtual void Echo(const char *pString) = 0;
411
412 virtual bool CanDisplayWarning() const = 0;
413 virtual void RenderShutdownMessage() = 0;
414
417
418 virtual int ClientVersion7() const = 0;
419
420 virtual void ApplySkin7InfoFromSnapObj(const protocol7::CNetObj_De_ClientInfo *pObj, int ClientId) = 0;
421 virtual int OnDemoRecSnap7(class CSnapshot *pFrom, class CSnapshot *pTo, int Conn) = 0;
422 virtual int TranslateSnap(class CSnapshot *pSnapDstSix, class CSnapshot *pSnapSrcSeven, int Conn, bool Dummy) = 0;
423 virtual void ProcessDemoSnapshot(class CSnapshot *pSnap) = 0;
424
425 virtual void InitializeLanguage() = 0;
426
428};
429
431#endif
Definition message.h:10
Definition protocol.h:1616
Definition serverbrowser.h:26
Definition snapshot.h:31
Definition translation_context.h:10
Definition packer.h:54
Definition client.h:112
int m_Id
Definition client.h:115
int m_DataSize
Definition client.h:117
const void * m_pData
Definition client.h:116
int m_Type
Definition client.h:114
Definition client.h:39
virtual bool ConnectionProblems() const =0
ELoadingStateDetail LoadingStateDetail() const
Definition client.h:141
int64_t m_ReconnectTime
Definition client.h:108
float LocalTime() const
Definition client.h:177
virtual void DemoRecorder_HandleAutoStart()=0
virtual void OnWindowResize()=0
virtual void RequestDDNetInfo()=0
virtual bool ViewLink(const char *pLink)=0
virtual void AddWarning(const SWarning &Warning)=0
float m_aGameIntraTick[NUM_DUMMIES]
Definition client.h:92
virtual std::optional< int > ShowMessageBox(const IGraphics::CMessageBox &MessageBox)=0
ELoadingCallbackDetail
Definition client.h:76
@ LOADING_CALLBACK_DETAIL_DEMO
Definition client.h:78
@ LOADING_CALLBACK_DETAIL_MAP
Definition client.h:77
virtual void ServerBrowserUpdate()=0
virtual bool UseTempRconCommands() const =0
EClientState m_State
Definition client.h:85
float GameTickTime(int Conn) const
Definition client.h:169
virtual bool RconAuthed() const =0
int PredGameTick(int Conn) const
Definition client.h:159
int m_Points
Definition client.h:107
virtual const std::vector< std::string > & MaplistEntries() const =0
CTranslationContext m_TranslationContext
Definition client.h:81
void SetLoadingCallback(TLoadingCallback &&Func)
Definition client.h:145
virtual void DemoRecorder_Start(const char *pFilename, bool WithTimestamp, int Recorder)=0
virtual const char * PlayerName() const =0
int m_aPrevGameTick[NUM_DUMMIES]
Definition client.h:90
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:104
virtual unsigned GetCurrentMapCrc() const =0
virtual void AutoScreenshot_Start()=0
virtual bool ReceivingMaplist() const =0
virtual float GotMaplistPercentage() const =0
virtual bool DummyConnectingDelayed() const =0
float IntraGameTickSincePrev(int Conn) const
Definition client.h:167
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:309
virtual int * GetInput(int Tick, int IsDummy=0) const =0
float RenderFrameTime() const
Definition client.h:184
int PrevGameTick(int Conn) const
Definition client.h:154
EClientState
Definition client.h:52
@ STATE_RESTARTING
Definition client.h:59
@ STATE_DEMOPLAYBACK
Definition client.h:57
@ STATE_OFFLINE
Definition client.h:53
@ STATE_LOADING
Definition client.h:55
@ STATE_ONLINE
Definition client.h:56
@ STATE_QUITTING
Definition client.h:58
@ STATE_CONNECTING
Definition client.h:54
virtual void Disconnect()=0
virtual bool DummyConnected() const =0
virtual IFriends * Foes()=0
virtual bool RaceRecord_IsRecording()=0
int GameTickSpeed() const
Definition client.h:171
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 bool DummyAllowed() const =0
virtual bool IsSixup() const =0
int SendPackMsg(int Conn, T *pMsg, int Flags, bool NoTranslate=false)
Definition client.h:283
int m_aPredTick[NUM_DUMMIES]
Definition client.h:96
float m_aPredIntraTick[NUM_DUMMIES]
Definition client.h:97
float m_aGameTickTime[NUM_DUMMIES]
Definition client.h:93
virtual void GenerateTimeoutSeed()=0
float FrameTimeAverage() const
Definition client.h:186
EInfoState
Definition client.h:323
@ ERROR
Definition client.h:326
@ SUCCESS
Definition client.h:325
@ LOADING
Definition client.h:324
EClientState State() const
Definition client.h:140
virtual bool ServerCapAnyPlayerFlag() const =0
virtual int UdpConnectivity(int NetType)=0
virtual void DemoSliceEnd()=0
virtual void Quit()=0
float m_aGameIntraTickSincePrev[NUM_DUMMIES]
Definition client.h:94
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:100
virtual void DemoRecorder_UpdateReplayRecorder()=0
virtual void GetGpuInfoString(char(&aGpuInfo)[512])=0
virtual void DemoSlice(const char *pDstPath, CLIENTFUNC_FILTER pfnFilter, void *pUser)=0
float m_FrameTimeAverage
Definition client.h:102
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:80
virtual const char * LatestVersion() const =0
virtual const char * ConnectAddressString() const =0
virtual void DemoSliceBegin()=0
virtual int GetPredictionTick()=0
virtual const char * DemoPlayer_Play(const char *pFilename, int StorageType)=0
int Points() const
Definition client.h:308
virtual void DummyConnect()=0
void SetReconnectTime(int64_t ReconnectTime)
Definition client.h:310
int m_aCurGameTick[NUM_DUMMIES]
Definition client.h:91
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:274
virtual int ConnectNetTypes() const =0
char m_aNews[3000]
Definition client.h:106
virtual const char * ErrorString() const =0
int64_t StateStartTime() const
Definition client.h:142
virtual int MapDownloadTotalsize() const =0
float IntraGameTick(int Conn) const
Definition client.h:162
virtual const char * MapDownloadName() const =0
@ CONN_DUMMY
Definition client.h:123
@ CONN_CONTACT
Definition client.h:124
@ NUM_CONNS
Definition client.h:125
@ CONN_MAIN
Definition client.h:122
@ CONNECTIVITY_CHECKING
Definition client.h:131
@ CONNECTIVITY_REACHABLE
Definition client.h:133
@ CONNECTIVITY_UNREACHABLE
Definition client.h:132
@ CONNECTIVITY_UNKNOWN
Definition client.h:130
@ CONNECTIVITY_DIFFERING_UDP_TCP_IP_ADDRESSES
Definition client.h:136
ELoadingStateDetail
Definition client.h:67
@ LOADING_STATE_DETAIL_LOADING_DEMO
Definition client.h:70
@ LOADING_STATE_DETAIL_GETTING_READY
Definition client.h:72
@ LOADING_STATE_DETAIL_INITIAL
Definition client.h:68
@ LOADING_STATE_DETAIL_LOADING_MAP
Definition client.h:69
@ LOADING_STATE_DETAIL_SENDING_READY
Definition client.h:71
int64_t m_StateStartTime
Definition client.h:87
virtual void AutoStatScreenshot_Start()=0
virtual int SendMsg(int Conn, CMsgPacker *pMsg, int Flags)=0
ELoadingStateDetail m_LoadingStateDetail
Definition client.h:86
virtual const char * GetCurrentMap() const =0
virtual int SnapNumItems(int SnapId) const =0
int GameTick(int Conn) const
Definition client.h:156
virtual void RaceRecord_Stop()=0
virtual int MapDownloadAmount() const =0
const char * News() const
Definition client.h:307
float GlobalTime() const
Definition client.h:179
virtual CSnapItem SnapGetItem(int SnapId, int Index) const =0
float m_RenderFrameTime
Definition client.h:101
@ SNAP_PREV
Definition client.h:258
@ SNAP_CURRENT
Definition client.h:257
@ NUM_SNAPSHOT_TYPES
Definition client.h:259
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:165
void SetLoadingStateDetail(ELoadingStateDetail LoadingStateDetail)
Definition client.h:143
float m_LocalTime
Definition client.h:99
virtual EInfoState InfoState() const =0
Definition demo.h:107
Definition friends.h:19
Definition client.h:375
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 ForceUpdateConsoleRemoteCompletionSuggestions()=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 void ProcessDemoSnapshot(class CSnapshot *pSnap)=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:572
Definition graphics.h:206
IInterface()
Definition kernel.h:19
IGameClient * CreateGameClient()
Definition gameclient.cpp:3282
@ RECORDER_REPLAYS
Definition client.h:31
@ RECORDER_MAX
Definition client.h:32
@ RECORDER_RACE
Definition client.h:30
@ RECORDER_AUTO
Definition client.h:29
@ RECORDER_MANUAL
Definition client.h:28
bool(* CLIENTFUNC_FILTER)(const void *pData, int DataSize, void *pUser)
Definition client.h:35
@ NUM_DUMMIES
Definition enums.h:8
@ SERVER_TICK_SPEED
Definition protocol.h:81
#define MACRO_INTERFACE(Name)
Definition kernel.h:25
Definition protocol7.h:9
Definition checksum.h:7
Definition types.h:72
Definition hash.h:15
Definition warning.h:5