DDNet documentation
Loading...
Searching...
No Matches
gamecontext.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_GAMECONTEXT_H
4#define GAME_SERVER_GAMECONTEXT_H
5
6#include "eventhandler.h"
7#include "gameworld.h"
8#include "playermapping.h"
9#include "teehistorian.h"
10
11#include <base/types.h>
12
13#include <engine/console.h>
14#include <engine/server.h>
15
16#include <generated/protocol.h>
17
18#include <game/collision.h>
19#include <game/layers.h>
20#include <game/mapbugs.h>
21#include <game/voting.h>
22
23#include <map>
24#include <memory>
25#include <optional>
26#include <string>
27
28/*
29 Tick
30 Game Context (CGameContext::tick)
31 Game World (GAMEWORLD::tick)
32 Reset world if requested (GAMEWORLD::reset)
33 All entities in the world (ENTITY::tick)
34 All entities in the world (ENTITY::tick_deferred)
35 Remove entities marked for deletion (GAMEWORLD::remove_entities)
36 Game Controller (GAMECONTROLLER::tick)
37 All players (CPlayer::tick)
38
39
40 Snap
41 Game Context (CGameContext::snap)
42 Game World (GAMEWORLD::snap)
43 All entities in the world (ENTITY::snap)
44 Game Controller (GAMECONTROLLER::snap)
45 Events handler (EVENT_HANDLER::snap)
46 All players (CPlayer::snap)
47
48*/
49
50class CCharacter;
51class IConfigManager;
52class CConfig;
53class CHeap;
54class CPlayer;
55class CScore;
56class CUnpacker;
57class CRconRole;
58class IAntibot;
59class IGameController;
60class IMap;
61class IEngine;
62class IStorage;
66
68{
69 CSnapContext(int Version, bool Sixup, int ClientId) :
71 {
72 }
73
74 int GetClientVersion() const { return m_ClientVersion; }
75 bool IsSixup() const { return m_Sixup; }
76 int ClientId() const { return m_ClientId; }
77
78private:
80 bool m_Sixup;
82};
83
84class CMute
85{
86public:
87 int64_t m_Expire;
88 bool m_Initialized = false;
90 char m_aReason[128];
93
94 int SecondsLeft() const;
95};
96
97class CMutes
98{
99public:
100 CMutes(const char *pSystemName);
101
102 bool Mute(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pClientName, bool InitialDelay);
103 void UnmuteIndex(int Index);
104 void UnmuteAddr(const NETADDR *pAddr);
105 void UnmuteExpired();
106 std::optional<CMute> IsMuted(const NETADDR *pAddr, bool RespectInitialDelay) const;
107 void Print(int Page) const;
108
109private:
110 const char *m_pSystemName;
111 std::map<NETADDR, CMute> m_Mutes;
112};
113
115{
123 std::unique_ptr<IMap> m_pMap;
126 protocol7::CNetObjHandler m_NetObjHandler7;
127 CNetObjHandler m_NetObjHandler;
129 std::vector<std::string> m_vCensorlist;
130
137
139
140 static std::optional<std::vector<int>> ClientsForVictim(int ClientId, const char *pVictim, void *pUser);
141 static void CommandCallback(int ClientId, int FlagMask, const char *pCmd, IConsole::IResult *pResult, void *pUser);
142 static void TeeHistorianWrite(const void *pData, int DataSize, void *pUser);
143
144 static void ConTuneParam(IConsole::IResult *pResult, void *pUserData);
145 static void ConToggleTuneParam(IConsole::IResult *pResult, void *pUserData);
146 static void ConTuneReset(IConsole::IResult *pResult, void *pUserData);
147 static void ConTunes(IConsole::IResult *pResult, void *pUserData);
148 static void ConTuneZone(IConsole::IResult *pResult, void *pUserData);
149 static void ConTuneDumpZone(IConsole::IResult *pResult, void *pUserData);
150 static void ConTuneResetZone(IConsole::IResult *pResult, void *pUserData);
151 static void ConTuneSetZoneMsgEnter(IConsole::IResult *pResult, void *pUserData);
152 static void ConTuneSetZoneMsgLeave(IConsole::IResult *pResult, void *pUserData);
153 static void ConMapbug(IConsole::IResult *pResult, void *pUserData);
154 static void ConSwitchOpen(IConsole::IResult *pResult, void *pUserData);
155 static void ConPause(IConsole::IResult *pResult, void *pUserData);
156 static void ConChangeMap(IConsole::IResult *pResult, void *pUserData);
157 static void ConRandomMap(IConsole::IResult *pResult, void *pUserData);
158 static void ConRandomUnfinishedMap(IConsole::IResult *pResult, void *pUserData);
159 static void ConRestart(IConsole::IResult *pResult, void *pUserData);
160 static void ConServerAlert(IConsole::IResult *pResult, void *pUserData);
161 static void ConModAlert(IConsole::IResult *pResult, void *pUserData);
162 static void ConBroadcast(IConsole::IResult *pResult, void *pUserData);
163 static void ConSay(IConsole::IResult *pResult, void *pUserData);
164 static void ConSetTeam(IConsole::IResult *pResult, void *pUserData);
165 static void ConHotReload(IConsole::IResult *pResult, void *pUserData);
166 static void ConAddVote(IConsole::IResult *pResult, void *pUserData);
167 static void ConRemoveVote(IConsole::IResult *pResult, void *pUserData);
168 static void ConForceVote(IConsole::IResult *pResult, void *pUserData);
169 static void ConClearVotes(IConsole::IResult *pResult, void *pUserData);
170 static void ConAddMapVotes(IConsole::IResult *pResult, void *pUserData);
171 static void ConVote(IConsole::IResult *pResult, void *pUserData);
172 static void ConVotes(IConsole::IResult *pResult, void *pUserData);
173 static void ConVoteNo(IConsole::IResult *pResult, void *pUserData);
174 static void ConDrySave(IConsole::IResult *pResult, void *pUserData);
175 static void ConDumpAntibot(IConsole::IResult *pResult, void *pUserData);
176 static void ConAntibot(IConsole::IResult *pResult, void *pUserData);
177 static void ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
178 static void ConchainSettingUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
179 static void ConchainPracticeByDefaultUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
180 static void ConchainTeleOthersAuthLevel(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
181 static void ConDumpLog(IConsole::IResult *pResult, void *pUserData);
182
183 void AddVote(const char *pDescription, const char *pCommand);
184 static int MapScan(const char *pName, int IsDir, int DirType, void *pUserData);
185
187 {
188 public:
190 };
191
193 {
194 public:
198 };
199
200public:
201 IServer *Server() const { return m_pServer; }
203 CConfig *Config() { return m_pConfig; }
205 IEngine *Engine() { return m_pEngine; }
207 IMap *Map() override { return m_pMap.get(); }
208 const IMap *Map() const override { return m_pMap.get(); }
215 CNetObjHandler *GetNetObjHandler() override { return &m_NetObjHandler; }
216 protocol7::CNetObjHandler *GetNetObjHandler7() override { return &m_NetObjHandler7; }
217
218 CGameContext(bool Resetting = false);
219 ~CGameContext() override;
220
221 void Clear();
222
225 // keep last input to always apply when none is sent
226 CNetObj_PlayerInput m_aLastPlayerInput[MAX_CLIENTS];
231
232 // returns last input if available otherwise nulled PlayerInput object
233 // ClientId has to be valid
234 CNetObj_PlayerInput GetLastPlayerInput(int ClientId) const;
235
239
240 // helper functions
241 CCharacter *GetPlayerChar(int ClientId);
242 const CCharacter *GetPlayerChar(int ClientId) const;
243 const CPlayer *FindPlayerByName(const char *pName) const;
244 // Returns `nullptr` if no player is found.
245 CPlayer *FindPlayerByName(const char *pName);
246 std::optional<int> FindClientIdByName(const char *pName) const;
247 bool EmulateBug(int Bug) const;
248 std::vector<SSwitchers> &Switchers() { return m_World.m_Core.m_vSwitchers; }
249
250 // voting
251 void StartVote(const char *pDesc, const char *pCommand, const char *pReason, const char *pSixupDesc);
252 void EndVote();
253 void SendVoteSet(int ClientId);
254 void SendVoteStatus(int ClientId, int Total, int Yes, int No);
255 void AbortVoteKickOnDisconnect(int ClientId);
256
268 char m_aaZoneEnterMsg[TuneZone::NUM][256]; // 0 is used for switching from or to area without tunings
270
271 void CreateAllEntities(bool Initial);
272 CPlayer *CreatePlayer(int ClientId, int StartTeam, bool Afk, int LastWhisperTo);
273
275 void DeleteTempfile();
276
277 enum
278 {
286 };
290
291 // helper functions
292 void CreateDamageInd(vec2 Pos, float AngleMod, int Amount, CClientMask Mask = CClientMask().set());
293 void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, CClientMask Mask = CClientMask().set());
294 void CreateHammerHit(vec2 Pos, CClientMask Mask = CClientMask().set());
295 void CreatePlayerSpawn(vec2 Pos, CClientMask Mask = CClientMask().set());
296 void CreateDeath(vec2 Pos, int ClientId, CClientMask Mask = CClientMask().set());
297 void CreateBirthdayEffect(vec2 Pos, CClientMask Mask = CClientMask().set());
298 void CreateFinishEffect(vec2 Pos, CClientMask Mask = CClientMask().set());
299 void CreateSound(vec2 Pos, int Sound, CClientMask Mask = CClientMask().set());
300 void CreateSoundGlobal(int Sound, int Target = -1) const;
301
302 void SnapSwitchers(int SnappingClient);
303 void SnapLaserObject(const CSnapContext &Context, int SnapId, const vec2 &To, const vec2 &From, int StartTick, int Owner = -1, int LaserType = -1, int Subtype = -1, int SwitchNumber = -1) const;
304 void SnapPickup(const CSnapContext &Context, int SnapId, const vec2 &Pos, int Type, int SubType, int SwitchNumber, int Flags) const;
305
306 enum
307 {
308 FLAG_SIX = 1 << 0,
309 FLAG_SIXUP = 1 << 1,
310 };
311
312 // network
313 void CallVote(int ClientId, const char *pDesc, const char *pCmd, const char *pReason, const char *pChatmsg, const char *pSixupDesc = nullptr);
314 void SendChatTarget(int To, const char *pText, int VersionFlags = FLAG_SIX | FLAG_SIXUP) const;
315 void SendChatTeam(int Team, const char *pText) const;
316 void SendChat(int ClientId, int Team, const char *pText, int SpamProtectionClientId = -1, int VersionFlags = FLAG_SIX | FLAG_SIXUP);
317 void SendStartWarning(int ClientId, const char *pMessage);
318 void SendEmoticon(int ClientId, int Emoticon, int TargetClientId) const;
319 void SendWeaponPickup(int ClientId, int Weapon) const;
320 void SendMotd(int ClientId) const;
321 void SendSettings(int ClientId) const;
322 void SendServerAlert(const char *pMessage);
323 void SendModeratorAlert(int ToClientId, const char *pMessage);
324 void SendBroadcast(const char *pText, int ClientId, bool IsImportant = true);
325
336 void SendRename7(int ClientId);
337 void SendSkinChange7(int ClientId);
338
339 void List(int ClientId, const char *pFilter);
340
341 void SendTuningParams(int ClientId, int Zone = 0);
342
343 void ProgressVoteOptions(int ClientId);
344
345 //
346 void LoadMapSettings();
347
348 // engine events
349 void OnInit(const void *pPersistentData) override;
350 void OnConsoleInit() override;
353 [[nodiscard]] bool OnMapChange(char *pNewMapName, int MapNameSize) override;
354 void OnShutdown(void *pPersistentData) override;
355
356 void OnTick() override;
357 void OnSnap(int ClientId, bool GlobalSnap, bool RecordingDemo) override;
358 void OnPostGlobalSnap() override;
359
360 void *PreProcessMsg(int *pMsgId, CUnpacker *pUnpacker, int ClientId);
361 void CensorMessage(char *pCensoredMessage, const char *pMessage, int Size);
362 void OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) override;
363 void OnSayNetMessage(const CNetMsg_Cl_Say *pMsg, int ClientId, const CUnpacker *pUnpacker);
364 void OnCallVoteNetMessage(const CNetMsg_Cl_CallVote *pMsg, int ClientId);
365 void OnVoteNetMessage(const CNetMsg_Cl_Vote *pMsg, int ClientId);
366 void OnSetTeamNetMessage(const CNetMsg_Cl_SetTeam *pMsg, int ClientId);
367 void OnIsDDNetLegacyNetMessage(const CNetMsg_Cl_IsDDNetLegacy *pMsg, int ClientId, CUnpacker *pUnpacker);
368 void OnShowOthersLegacyNetMessage(const CNetMsg_Cl_ShowOthersLegacy *pMsg, int ClientId);
369 void OnShowOthersNetMessage(const CNetMsg_Cl_ShowOthers *pMsg, int ClientId);
370 void OnShowDistanceNetMessage(const CNetMsg_Cl_ShowDistance *pMsg, int ClientId);
371 void OnCameraInfoNetMessage(const CNetMsg_Cl_CameraInfo *pMsg, int ClientId);
372 void OnPracticeTeleportNetMessage(const CNetMsg_Cl_PracticeTeleport *pMsg, int ClientId);
373 void OnSetSpectatorModeNetMessage(const CNetMsg_Cl_SetSpectatorMode *pMsg, int ClientId);
374 void OnChangeInfoNetMessage(const CNetMsg_Cl_ChangeInfo *pMsg, int ClientId);
375 void OnEmoticonNetMessage(const CNetMsg_Cl_Emoticon *pMsg, int ClientId);
376 void OnKillNetMessage(const CNetMsg_Cl_Kill *pMsg, int ClientId);
377 void OnEnableSpectatorCountNetMessage(const CNetMsg_Cl_EnableSpectatorCount *pMsg, int ClientId);
378 void OnStartInfoNetMessage(const CNetMsg_Cl_StartInfo *pMsg, int ClientId);
379
380 bool OnClientDataPersist(int ClientId, void *pData) override;
381 void OnClientConnected(int ClientId, void *pData) override;
382 void OnClientEnter(int ClientId) override;
383 void OnClientDrop(int ClientId, const char *pReason) override;
384 void OnClientInfoChange(int ClientId) override;
385 void OnClientPrepareInput(int ClientId, void *pInput) override;
386 void OnClientDirectInput(int ClientId, const void *pInput) override;
387 void OnClientPredictedInput(int ClientId, const void *pInput) override;
388 void OnClientPredictedEarlyInput(int ClientId, const void *pInput) override;
389
390 void PreInputClients(int ClientId, bool *pClients) override;
391
392 void TeehistorianRecordAntibot(const void *pData, int DataSize) override;
393 void TeehistorianRecordPlayerJoin(int ClientId, bool Sixup) override;
394 void TeehistorianRecordPlayerDrop(int ClientId, const char *pReason) override;
395 void TeehistorianRecordPlayerRejoin(int ClientId) override;
396 void TeehistorianRecordPlayerName(int ClientId, const char *pName) override;
397 void TeehistorianRecordPlayerFinish(int ClientId, int TimeTicks) override;
398 void TeehistorianRecordTeamFinish(int TeamId, int TimeTicks) override;
399 void TeehistorianRecordAuthLogin(int ClientId, const char *pRoleName, const char *pAuthName) override;
400
401 bool IsClientReady(int ClientId) const override;
402 bool IsClientPlayer(int ClientId) const override;
403 // Whether the client is allowed to have high bandwidth.
404 bool IsClientHighBandwidth(int ClientId) const override;
405 int PersistentDataSize() const override { return sizeof(CPersistentData); }
406 int PersistentClientDataSize() const override { return sizeof(CPersistentClientData); }
407
408 CUuid GameUuid() const override;
409 const char *GameType() const override;
411 const char *Version() const override;
412 const char *NetVersion() const override;
413
414 // DDRace
415 void OnPreTickTeehistorian() override;
416 bool OnClientDDNetVersionKnown(int ClientId);
417 void FillAntibot(CAntibotRoundData *pData) override;
418 bool ProcessSpamProtection(int ClientId, bool RespectChatInitialDelay = true);
419 int GetDDRaceTeam(int ClientId) const;
420 // Describes the time when the first player joined the server.
423 int GetClientVersion(int ClientId) const;
425 bool PlayerExists(int ClientId) const override { return m_apPlayers[ClientId]; }
426 // Returns true if someone is actively moderating.
427 bool PlayerModerating() const;
428 void ForceVote(bool Success);
429
430 // Checks if player can vote and notify them about the reason
431 bool RateLimitPlayerVote(int ClientId);
432 bool RateLimitPlayerMapVote(int ClientId) const;
433
434 void OnUpdatePlayerServerInfo(CJsonWriter *pJsonWriter, int ClientId) override;
435 void ReadCensorList();
436
437 bool PracticeByDefault() const;
438
439 std::shared_ptr<CScoreRandomMapResult> m_SqlRandomMapResult;
440
441 // cached map info from database
442 std::shared_ptr<CScorePlayerResult> m_pLoadMapInfoResult;
444
445private:
446 // starting 1 to make 0 the special value "no client id"
450
451 // DDRace Console Commands
452
453 static void ConKillPlayer(IConsole::IResult *pResult, void *pUserData);
454
455 static void ConNinja(IConsole::IResult *pResult, void *pUserData);
456 static void ConUnNinja(IConsole::IResult *pResult, void *pUserData);
457 static void ConEndlessHook(IConsole::IResult *pResult, void *pUserData);
458 static void ConUnEndlessHook(IConsole::IResult *pResult, void *pUserData);
459 static void ConSolo(IConsole::IResult *pResult, void *pUserData);
460 static void ConUnSolo(IConsole::IResult *pResult, void *pUserData);
461 static void ConFreeze(IConsole::IResult *pResult, void *pUserData);
462 static void ConUnfreeze(IConsole::IResult *pResult, void *pUserData);
463 static void ConDeep(IConsole::IResult *pResult, void *pUserData);
464 static void ConUnDeep(IConsole::IResult *pResult, void *pUserData);
465 static void ConLiveFreeze(IConsole::IResult *pResult, void *pUserData);
466 static void ConUnLiveFreeze(IConsole::IResult *pResult, void *pUserData);
467 static void ConUnSuper(IConsole::IResult *pResult, void *pUserData);
468 static void ConSuper(IConsole::IResult *pResult, void *pUserData);
469 static void ConToggleInvincible(IConsole::IResult *pResult, void *pUserData);
470 static void ConShotgun(IConsole::IResult *pResult, void *pUserData);
471 static void ConGrenade(IConsole::IResult *pResult, void *pUserData);
472 static void ConLaser(IConsole::IResult *pResult, void *pUserData);
473 static void ConJetpack(IConsole::IResult *pResult, void *pUserData);
474 static void ConEndlessJump(IConsole::IResult *pResult, void *pUserData);
475 static void ConSetJumps(IConsole::IResult *pResult, void *pUserData);
476 static void ConWeapons(IConsole::IResult *pResult, void *pUserData);
477 static void ConUnShotgun(IConsole::IResult *pResult, void *pUserData);
478 static void ConUnGrenade(IConsole::IResult *pResult, void *pUserData);
479 static void ConUnLaser(IConsole::IResult *pResult, void *pUserData);
480 static void ConUnJetpack(IConsole::IResult *pResult, void *pUserData);
481 static void ConUnEndlessJump(IConsole::IResult *pResult, void *pUserData);
482 static void ConSetSwitch(IConsole::IResult *pResult, void *pUserData);
483 static void ConUnWeapons(IConsole::IResult *pResult, void *pUserData);
484 static void ConAddWeapon(IConsole::IResult *pResult, void *pUserData);
485 static void ConRemoveWeapon(IConsole::IResult *pResult, void *pUserData);
486 void ModifyWeapons(IConsole::IResult *pResult, void *pUserData, int Weapon, bool Remove);
487 void MoveCharacter(int ClientId, int X, int Y, bool Raw = false);
488 static void ConGoLeft(IConsole::IResult *pResult, void *pUserData);
489 static void ConGoRight(IConsole::IResult *pResult, void *pUserData);
490 static void ConGoUp(IConsole::IResult *pResult, void *pUserData);
491 static void ConGoDown(IConsole::IResult *pResult, void *pUserData);
492 static void ConMove(IConsole::IResult *pResult, void *pUserData);
493 static void ConMoveRaw(IConsole::IResult *pResult, void *pUserData);
494
495 static void ConToTeleporter(IConsole::IResult *pResult, void *pUserData);
496 static void ConToCheckTeleporter(IConsole::IResult *pResult, void *pUserData);
497 void Teleport(CCharacter *pChr, vec2 Pos);
498 void PracticeTeleport(CCharacter *pChr, vec2 Pos);
499 static void ConTeleport(IConsole::IResult *pResult, void *pUserData);
500
501 static void ConInfo(IConsole::IResult *pResult, void *pUserData);
502 static void ConHelp(IConsole::IResult *pResult, void *pUserData);
503 static void ConSettings(IConsole::IResult *pResult, void *pUserData);
504 static void ConRules(IConsole::IResult *pResult, void *pUserData);
505 static void ConKill(IConsole::IResult *pResult, void *pUserData);
506 static void ConTogglePause(IConsole::IResult *pResult, void *pUserData);
507 static void ConTogglePauseVoted(IConsole::IResult *pResult, void *pUserData);
508 static void ConToggleSpec(IConsole::IResult *pResult, void *pUserData);
509 static void ConToggleSpecVoted(IConsole::IResult *pResult, void *pUserData);
510 static void ConForcePause(IConsole::IResult *pResult, void *pUserData);
511 static void ConTeamTop5(IConsole::IResult *pResult, void *pUserData);
512 static void ConTop(IConsole::IResult *pResult, void *pUserData);
513 static void ConTimes(IConsole::IResult *pResult, void *pUserData);
514 static void ConPoints(IConsole::IResult *pResult, void *pUserData);
515 static void ConTopPoints(IConsole::IResult *pResult, void *pUserData);
516 static void ConTimeCP(IConsole::IResult *pResult, void *pUserData);
517
518 static void ConDND(IConsole::IResult *pResult, void *pUserData);
519 static void ConWhispers(IConsole::IResult *pResult, void *pUserData);
520 static void ConMapInfo(IConsole::IResult *pResult, void *pUserData);
521 static void ConTimeout(IConsole::IResult *pResult, void *pUserData);
522 static void ConPractice(IConsole::IResult *pResult, void *pUserData);
523 static void ConUnPractice(IConsole::IResult *pResult, void *pUserData);
524 static void ConPracticeCmdList(IConsole::IResult *pResult, void *pUserData);
525 static void ConSwap(IConsole::IResult *pResult, void *pUserData);
526 static void ConCancelSwap(IConsole::IResult *pResult, void *pUserData);
527 static void ConSave(IConsole::IResult *pResult, void *pUserData);
528 static void ConLoad(IConsole::IResult *pResult, void *pUserData);
529 static void ConMap(IConsole::IResult *pResult, void *pUserData);
530 static void ConTeamRank(IConsole::IResult *pResult, void *pUserData);
531 static void ConRank(IConsole::IResult *pResult, void *pUserData);
532 static void ConTeam(IConsole::IResult *pResult, void *pUserData);
533 static void ConLock(IConsole::IResult *pResult, void *pUserData);
534 static void ConUnlock(IConsole::IResult *pResult, void *pUserData);
535 static void ConInvite(IConsole::IResult *pResult, void *pUserData);
536 static void ConJoin(IConsole::IResult *pResult, void *pUserData);
537 static void ConTeam0Mode(IConsole::IResult *pResult, void *pUserData);
538 static void ConWhisper(IConsole::IResult *pResult, void *pUserData);
539 static void ConConverse(IConsole::IResult *pResult, void *pUserData);
540 static void ConSetEyeEmote(IConsole::IResult *pResult, void *pUserData);
541 static void ConEyeEmote(IConsole::IResult *pResult, void *pUserData);
542 static void ConShowOthers(IConsole::IResult *pResult, void *pUserData);
543 static void ConShowAll(IConsole::IResult *pResult, void *pUserData);
544 static void ConSpecTeam(IConsole::IResult *pResult, void *pUserData);
545 static void ConNinjaJetpack(IConsole::IResult *pResult, void *pUserData);
546 static void ConSayTime(IConsole::IResult *pResult, void *pUserData);
547 static void ConSayTimeAll(IConsole::IResult *pResult, void *pUserData);
548 static void ConTime(IConsole::IResult *pResult, void *pUserData);
549 static void ConSetTimerType(IConsole::IResult *pResult, void *pUserData);
550 static void ConRescue(IConsole::IResult *pResult, void *pUserData);
551 static void ConRescueMode(IConsole::IResult *pResult, void *pUserData);
552 static void ConBack(IConsole::IResult *pResult, void *pUserData);
553 static void ConTeleTo(IConsole::IResult *pResult, void *pUserData);
554 static void ConTeleXY(IConsole::IResult *pResult, void *pUserData);
555 static void ConTeleCursor(IConsole::IResult *pResult, void *pUserData);
556 static void ConLastTele(IConsole::IResult *pResult, void *pUserData);
557
558 // Chat commands for practice mode
559 static void ConPracticeToTeleporter(IConsole::IResult *pResult, void *pUserData);
560 static void ConPracticeToCheckTeleporter(IConsole::IResult *pResult, void *pUserData);
561 static void ConPracticeUnSolo(IConsole::IResult *pResult, void *pUserData);
562 static void ConPracticeSolo(IConsole::IResult *pResult, void *pUserData);
563 static void ConPracticeUnDeep(IConsole::IResult *pResult, void *pUserData);
564 static void ConPracticeDeep(IConsole::IResult *pResult, void *pUserData);
565 static void ConPracticeUnLiveFreeze(IConsole::IResult *pResult, void *pUserData);
566 static void ConPracticeLiveFreeze(IConsole::IResult *pResult, void *pUserData);
567 static void ConPracticeShotgun(IConsole::IResult *pResult, void *pUserData);
568 static void ConPracticeGrenade(IConsole::IResult *pResult, void *pUserData);
569 static void ConPracticeLaser(IConsole::IResult *pResult, void *pUserData);
570 static void ConPracticeJetpack(IConsole::IResult *pResult, void *pUserData);
571 static void ConPracticeEndlessJump(IConsole::IResult *pResult, void *pUserData);
572 static void ConPracticeSetJumps(IConsole::IResult *pResult, void *pUserData);
573 static void ConPracticeWeapons(IConsole::IResult *pResult, void *pUserData);
574 static void ConPracticeUnShotgun(IConsole::IResult *pResult, void *pUserData);
575 static void ConPracticeUnGrenade(IConsole::IResult *pResult, void *pUserData);
576 static void ConPracticeUnLaser(IConsole::IResult *pResult, void *pUserData);
577 static void ConPracticeUnJetpack(IConsole::IResult *pResult, void *pUserData);
578 static void ConPracticeUnEndlessJump(IConsole::IResult *pResult, void *pUserData);
579 static void ConPracticeUnWeapons(IConsole::IResult *pResult, void *pUserData);
580 static void ConPracticeNinja(IConsole::IResult *pResult, void *pUserData);
581 static void ConPracticeUnNinja(IConsole::IResult *pResult, void *pUserData);
582 static void ConPracticeEndlessHook(IConsole::IResult *pResult, void *pUserData);
583 static void ConPracticeUnEndlessHook(IConsole::IResult *pResult, void *pUserData);
584 static void ConPracticeSetSwitch(IConsole::IResult *pResult, void *pUserData);
585 static void ConPracticeToggleInvincible(IConsole::IResult *pResult, void *pUserData);
586 static void ConPracticeToggleCollision(IConsole::IResult *pResult, void *pUserData);
587 static void ConPracticeToggleHookCollision(IConsole::IResult *pResult, void *pUserData);
588 static void ConPracticeToggleHitOthers(IConsole::IResult *pResult, void *pUserData);
589
590 static void ConPracticeAddWeapon(IConsole::IResult *pResult, void *pUserData);
591 static void ConPracticeRemoveWeapon(IConsole::IResult *pResult, void *pUserData);
592
593 static void ConProtectedKill(IConsole::IResult *pResult, void *pUserData);
594 static void ConModerate(IConsole::IResult *pResult, void *pUserData);
595
596 static void ConList(IConsole::IResult *pResult, void *pUserData);
597 static void ConSetDDRTeam(IConsole::IResult *pResult, void *pUserData);
598 static void ConUninvite(IConsole::IResult *pResult, void *pUserData);
599
600 static void ConReloadCensorlist(IConsole::IResult *pResult, void *pUserData);
601
603
606 void MuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName);
607 void VoteMuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName);
608
609 static void ConMute(IConsole::IResult *pResult, void *pUserData);
610 static void ConMuteId(IConsole::IResult *pResult, void *pUserData);
611 static void ConMuteIp(IConsole::IResult *pResult, void *pUserData);
612 static void ConUnmute(IConsole::IResult *pResult, void *pUserData);
613 static void ConUnmuteId(IConsole::IResult *pResult, void *pUserData);
614 static void ConUnmuteIp(IConsole::IResult *pResult, void *pUserData);
615 static void ConMutes(IConsole::IResult *pResult, void *pUserData);
616
617 static void ConVoteMute(IConsole::IResult *pResult, void *pUserData);
618 static void ConVoteMuteId(IConsole::IResult *pResult, void *pUserData);
619 static void ConVoteMuteIp(IConsole::IResult *pResult, void *pUserData);
620 static void ConVoteUnmute(IConsole::IResult *pResult, void *pUserData);
621 static void ConVoteUnmuteId(IConsole::IResult *pResult, void *pUserData);
622 static void ConVoteUnmuteIp(IConsole::IResult *pResult, void *pUserData);
623 static void ConVoteMutes(IConsole::IResult *pResult, void *pUserData);
624
625 void Whisper(int ClientId, char *pStr);
626 int WhisperRecordFlag(int ClientId) const;
627 void WhisperId(int ClientId, int VictimId, const char *pMessage);
628 void Converse(int ClientId, char *pStr);
629 bool IsVersionBanned(int Version);
630 void UnlockTeam(int ClientId, int Team) const;
631 void AttemptJoinTeam(int ClientId, int Team);
632
633 enum
634 {
636 MAX_LOGS = 512,
637 };
649
650 void LogEvent(const char *Description, int ClientId);
651
652public:
653 CLayers *Layers() { return &m_Layers; }
654 CScore *Score() { return m_pScore; }
655
656 enum
657 {
662 };
664
665 bool IsOptionVote() const { return m_VoteType == VOTE_TYPE_OPTION; }
666 bool IsKickVote() const { return m_VoteType == VOTE_TYPE_KICK; }
667 bool IsSpecVote() const { return m_VoteType == VOTE_TYPE_SPECTATE; }
668
669 bool IsRunningVote(int ClientId) const;
670 bool IsRunningKickOrSpecVote(int ClientId) const;
671
672 void SendRecord(int ClientId);
673 void SendFinish(int ClientId, float Time, std::optional<float> PreviousBestTime);
674 void SendSaveCode(int Team, int TeamSize, int State, const char *pError, const char *pSaveRequester, const char *pServerName, const char *pGeneratedCode, const char *pCode);
675 // `pRole` being `nullptr` signifies logout.
676 void OnSetAuthed(int ClientId, CRconRole *pRole) override;
677 void ReinitPlayerMap(int ClientId, bool Timeout) override;
678 void OnClientRejoin(int ClientId) override;
679
680 void SendStartMessages(int ClientId);
681
682 void ResetTuning();
683};
684
685static inline bool CheckClientId(int ClientId)
686{
687 return ClientId >= 0 && ClientId < MAX_CLIENTS;
688}
689
690#endif
Definition character.h:24
Definition collision.h:35
Definition config.h:30
Definition eventhandler.h:11
Definition gamecontext.h:193
int m_LastWhisperTo
Definition gamecontext.h:197
bool m_IsSpectator
Definition gamecontext.h:195
bool m_IsAfk
Definition gamecontext.h:196
Definition gamecontext.h:187
CUuid m_PrevGameUuid
Definition gamecontext.h:189
Definition gamecontext.h:115
static void ConAntibot(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:683
void MuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName)
Definition mutes.cpp:202
static void ConUnNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:121
static void ConLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:281
void CreatePlayerSpawn(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:431
static void ConTuneZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3153
void CreateFinishEffect(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:462
static void ConDumpLog(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:689
CGameContext(bool Resetting=false)
Definition gamecontext.cpp:83
CCharacter * GetPlayerChar(int ClientId)
Definition gamecontext.cpp:243
static void ConGoRight(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:33
static void ConRules(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:184
static void ConMutes(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:311
void OnClientDrop(int ClientId, const char *pReason) override
Definition gamecontext.cpp:1863
static void ConMap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:479
void OnStartInfoNetMessage(const CNetMsg_Cl_StartInfo *pMsg, int ClientId)
Definition gamecontext.cpp:3021
void OnClientRejoin(int ClientId) override
Definition gamecontext.cpp:5465
static void ConPracticeGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2081
static void ConSetJumps(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:303
CTeeHistorian m_TeeHistorian
Definition gamecontext.h:132
void OnTick() override
Definition gamecontext.cpp:1201
void OnCameraInfoNetMessage(const CNetMsg_Cl_CameraInfo *pMsg, int ClientId)
Definition gamecontext.cpp:2783
static void ConVoteUnmuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:361
void OnSetAuthed(int ClientId, CRconRole *pRole) override
Definition gamecontext.cpp:4714
CHeap * m_pVoteOptionHeap
Definition gamecontext.h:287
static void ConTogglePause(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:321
void TeehistorianRecordPlayerJoin(int ClientId, bool Sixup) override
Definition gamecontext.cpp:1920
void LogEvent(const char *Description, int ClientId)
Definition ddracecommands.cpp:722
void ForceVote(bool Success)
Definition gamecontext.cpp:5217
static void ConTimeCP(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2325
void SendChatTarget(int To, const char *pText, int VersionFlags=FLAG_SIX|FLAG_SIXUP) const
Definition gamecontext.cpp:664
static void ConTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1237
static void ConPracticeUnGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2130
static void ConEyeEmote(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1339
IConsole * m_pConsole
Definition gamecontext.h:119
static void ConForcePause(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:550
void AttemptJoinTeam(int ClientId, int Team)
Definition ddracechat.cpp:1032
void Teleport(CCharacter *pChr, vec2 Pos)
Definition ddracecommands.cpp:424
static void ConUnmuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:283
void SnapLaserObject(const CSnapContext &Context, int SnapId, const vec2 &To, const vec2 &From, int StartTick, int Owner=-1, int LaserType=-1, int Subtype=-1, int SwitchNumber=-1) const
Definition gamecontext.cpp:561
static void ConGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:275
int64_t m_VoteCloseTime
Definition gamecontext.h:259
static void ConToggleInvincible(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:176
void DeleteTempfile()
Definition gamecontext.cpp:4430
static void ConMove(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:63
bool PracticeByDefault() const
Definition gamecontext.cpp:5396
static void ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3801
@ MAX_LOG_SECONDS
Definition gamecontext.h:635
@ MAX_LOGS
Definition gamecontext.h:636
static void ConPause(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3277
void OnClientInfoChange(int ClientId) override
Definition gamecontext.cpp:1857
void OnPracticeTeleportNetMessage(const CNetMsg_Cl_PracticeTeleport *pMsg, int ClientId)
Definition gamecontext.cpp:2789
static void ConGoLeft(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:23
static void ConNinjaJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1394
static void ConVoteUnmuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:375
static void ConSetEyeEmote(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1311
IAntibot * Antibot()
Definition gamecontext.h:212
IStorage * m_pStorage
Definition gamecontext.h:121
void PreInputClients(int ClientId, bool *pClients) override
Definition gamecontext.cpp:1530
void SendMotd(int ClientId) const
Definition gamecontext.cpp:810
void OnClientPredictedInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1586
CScore * m_pScore
Definition gamecontext.h:449
static void ConWhispers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:465
static void ConUnEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:343
CPlayer * CreatePlayer(int ClientId, int StartTeam, bool Afk, int LastWhisperTo)
Definition gamecontext.cpp:4419
bool IsRunningVote(int ClientId) const
Definition gamecontext.cpp:4743
void OnSayNetMessage(const CNetMsg_Cl_Say *pMsg, int ClientId, const CUnpacker *pUnpacker)
Definition gamecontext.cpp:2272
std::shared_ptr< CScorePlayerResult > m_pLoadMapInfoResult
Definition gamecontext.h:442
static void ConPracticeWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2116
void OnIsDDNetLegacyNetMessage(const CNetMsg_Cl_IsDDNetLegacy *pMsg, int ClientId, CUnpacker *pUnpacker)
Definition gamecontext.cpp:2738
void SendTuningParams(int ClientId, int Zone=0)
Definition gamecontext.cpp:1108
static void ConPracticeToTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1937
void OnSnap(int ClientId, bool GlobalSnap, bool RecordingDemo) override
Definition gamecontext.cpp:4640
static void ConDumpAntibot(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:677
bool IsVersionBanned(int Version)
Definition gamecontext.cpp:5146
CVoteOptionServer * m_pVoteOptionLast
Definition gamecontext.h:289
bool IsKickVote() const
Definition gamecontext.h:666
int64_t m_LastMapVote
Definition gamecontext.h:422
CNetObj_PlayerInput m_aLastPlayerInput[MAX_CLIENTS]
Definition gamecontext.h:226
static void ConPracticeEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2102
static void ConPracticeJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2095
static void ConPracticeLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2064
void ModifyWeapons(IConsole::IResult *pResult, void *pUserData, int Weapon, bool Remove)
Definition ddracecommands.cpp:395
CLayers m_Layers
Definition gamecontext.h:124
static void ConUnmuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:297
void CreateDamageInd(vec2 Pos, float AngleMod, int Amount, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:345
CGameWorld m_World
Definition gamecontext.h:237
static void ConUninvite(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:618
void OnSetTeamNetMessage(const CNetMsg_Cl_SetTeam *pMsg, int ClientId)
Definition gamecontext.cpp:2689
char m_aVoteCommand[VOTE_CMD_LENGTH]
Definition gamecontext.h:264
static void ConPracticeUnEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2186
bool m_aPlayerHasInput[MAX_CLIENTS]
Definition gamecontext.h:227
static void ConPracticeSetJumps(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2109
static void ConDrySave(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:637
void RegisterDDRaceCommands()
Definition gamecontext.cpp:3935
void OnClientPredictedEarlyInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1605
CNetObjHandler * GetNetObjHandler() override
Definition gamecontext.h:215
CCollision * Collision()
Definition gamecontext.h:209
static void ConToggleSpecVoted(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:316
static void ConMuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:245
static void ConUnWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:377
void SendWeaponPickup(int ClientId, int Weapon) const
Definition gamecontext.cpp:803
static void ConUnJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:335
bool OnMapChange(char *pNewMapName, int MapNameSize) override
Definition gamecontext.cpp:4439
CEventHandler m_Events
Definition gamecontext.h:223
void OnInit(const void *pPersistentData) override
Definition gamecontext.cpp:4118
static void ConDND(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:451
void ResetTuning()
Definition gamecontext.cpp:4964
CTuningParams m_aTuningList[TuneZone::NUM]
Definition gamecontext.h:128
static void ConLoad(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:901
void ReadCensorList()
Definition gamecontext.cpp:5374
void CensorMessage(char *pCensoredMessage, const char *pMessage, int Size)
Definition gamecontext.cpp:2174
static void ConVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3770
bool OnClientDDNetVersionKnown(int ClientId)
Definition gamecontext.cpp:1976
static void ConGoDown(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:43
void TeehistorianRecordPlayerRejoin(int ClientId) override
Definition gamecontext.cpp:1936
static void ConJoin(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1280
static void ConPracticeSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2005
static void ConUnfreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:216
CClientMask ClientsMaskExcludeClientVersionAndHigher(int Version) const
Definition gamecontext.cpp:5200
void CreateDeath(vec2 Pos, int ClientId, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:441
void OnKillNetMessage(const CNetMsg_Cl_Kill *pMsg, int ClientId)
Definition gamecontext.cpp:2979
const IMap * Map() const override
Definition gamecontext.h:208
void OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) override
Definition gamecontext.cpp:2198
IServer * m_pServer
Definition gamecontext.h:116
static void ConPracticeDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2044
@ VOTE_ENFORCE_NO
Definition gamecontext.h:280
@ VOTE_ENFORCE_NO_ADMIN
Definition gamecontext.h:282
@ VOTE_ENFORCE_YES_ADMIN
Definition gamecontext.h:283
@ VOTE_ENFORCE_UNKNOWN
Definition gamecontext.h:279
@ VOTE_ENFORCE_CANCEL
Definition gamecontext.h:285
@ VOTE_ENFORCE_ABORT
Definition gamecontext.h:284
@ VOTE_ENFORCE_YES
Definition gamecontext.h:281
CLog m_aLogs[MAX_LOGS]
Definition gamecontext.h:647
static void ConPracticeLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2088
static void ConPracticeToCheckTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1957
CUuid GameUuid() const override
Definition gamecontext.cpp:4702
void SendSkinChange7(int ClientId)
Definition gamecontext.cpp:953
static void ConConverse(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1301
static void ConMapInfo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:507
static void ConToTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:448
static void ConWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:311
static void ConHotReload(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3419
static void ConClearVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3653
void SendRecord(int ClientId)
Definition gamecontext.cpp:4753
static void ConUnGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:323
static void ConPracticeUnSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1977
char m_aaZoneEnterMsg[TuneZone::NUM][256]
Definition gamecontext.h:268
char m_aVersionString[32]
Definition gamecontext.h:410
static void ConUnLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:329
void OnPreTickTeehistorian() override
Definition gamecontext.cpp:1183
static void ConTeam0Mode(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1164
static void ConPracticeRemoveWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2262
void MoveCharacter(int ClientId, int X, int Y, bool Raw=false)
Definition ddracecommands.cpp:81
bool IsSpecVote() const
Definition gamecontext.h:667
static void ConTunes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3142
static void ConWhisper(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1306
@ VOTE_TYPE_SPECTATE
Definition gamecontext.h:661
@ VOTE_TYPE_KICK
Definition gamecontext.h:660
@ VOTE_TYPE_UNKNOWN
Definition gamecontext.h:658
@ VOTE_TYPE_OPTION
Definition gamecontext.h:659
bool m_Resetting
Definition gamecontext.h:138
static void ConCancelSwap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:844
void SendChat(int ClientId, int Team, const char *pText, int SpamProtectionClientId=-1, int VersionFlags=FLAG_SIX|FLAG_SIXUP)
Definition gamecontext.cpp:702
static void ConUnDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:236
static void ConPracticeUnNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2172
static void ConPracticeToggleCollision(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2207
static void ConSetTimerType(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1560
void OnConsoleInit() override
Definition gamecontext.cpp:3881
void OnClientPrepareInput(int ClientId, void *pInput) override
Definition gamecontext.cpp:1564
static void ConReloadCensorlist(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:671
void * PreProcessMsg(int *pMsgId, CUnpacker *pUnpacker, int ClientId)
Definition gamecontext.cpp:2028
static void ConRank(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:937
void ProgressVoteOptions(int ClientId)
Definition gamecontext.cpp:1638
static void ConModAlert(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3358
static void ConRemoveWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:389
static void ConBroadcast(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3376
static void ConPracticeNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2165
int GetDDRaceTeam(int ClientId) const
Definition gamecontext.cpp:4959
void VoteMuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName)
Definition mutes.cpp:221
void OnCallVoteNetMessage(const CNetMsg_Cl_CallVote *pMsg, int ClientId)
Definition gamecontext.cpp:2375
void TeehistorianRecordPlayerDrop(int ClientId, const char *pReason) override
Definition gamecontext.cpp:1928
static void ConRandomUnfinishedMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3306
void AddVote(const char *pDescription, const char *pCommand)
Definition gamecontext.cpp:3457
CUuid m_GameUuid
Definition gamecontext.h:134
static void ConVoteMuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:338
void OnEnableSpectatorCountNetMessage(const CNetMsg_Cl_EnableSpectatorCount *pMsg, int ClientId)
Definition gamecontext.cpp:3012
static void ConAddVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3448
void SnapPickup(const CSnapContext &Context, int SnapId, const vec2 &Pos, int Type, int SubType, int SwitchNumber, int Flags) const
Definition gamecontext.cpp:592
static void ConTuneSetZoneMsgLeave(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3226
static void ConPracticeEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2179
void OnShowOthersLegacyNetMessage(const CNetMsg_Cl_ShowOthersLegacy *pMsg, int ClientId)
Definition gamecontext.cpp:2759
void TeehistorianRecordTeamFinish(int TeamId, int TimeTicks) override
Definition gamecontext.cpp:1960
static void ConPracticeShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2074
static void ConVoteMute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:318
static void ConTimes(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:394
void SnapSwitchers(int SnappingClient)
Definition gamecontext.cpp:505
static void ConPracticeUnDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2033
static void ConchainPracticeByDefaultUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3821
static void ConSetTeam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3393
bool RateLimitPlayerVote(int ClientId)
Definition gamecontext.cpp:5233
static void ConPracticeToggleHitOthers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2227
void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:373
void SendStartWarning(int ClientId, const char *pMessage)
Definition gamecontext.cpp:785
CNetObj_PlayerInput GetLastPlayerInput(int ClientId) const
Definition gamecontext.cpp:237
IEngine * Engine()
Definition gamecontext.h:205
uint32_t m_NextUniqueClientId
Definition gamecontext.h:447
ASYNCIO * m_pTeeHistorianFile
Definition gamecontext.h:133
CPlayer * m_apPlayers[MAX_CLIENTS]
Definition gamecontext.h:224
protocol7::CNetObjHandler * GetNetObjHandler7() override
Definition gamecontext.h:216
static void ConSpecTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1457
static void ConLock(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:955
void SendModeratorAlert(int ToClientId, const char *pMessage)
Definition gamecontext.cpp:861
static void ConSwap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:734
static void ConTuneParam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3064
int PersistentDataSize() const override
Definition gamecontext.h:405
void CreateSoundGlobal(int Sound, int Target=-1) const
Definition gamecontext.cpp:487
const char * Version() const override
Definition gamecontext.cpp:4709
static void ConInfo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:19
static void ConServerAlert(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3347
static void ConchainSettingUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3811
static void ConUnlock(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1000
IConfigManager * m_pConfigManager
Definition gamecontext.h:117
static void ConPracticeCmdList(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:712
int m_VoteEnforce
Definition gamecontext.h:267
static void ConVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3760
CScore * Score()
Definition gamecontext.h:654
IServer * Server() const
Definition gamecontext.h:201
void TeehistorianRecordPlayerFinish(int ClientId, int TimeTicks) override
Definition gamecontext.cpp:1952
static void ConGoUp(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:53
void StartVote(const char *pDesc, const char *pCommand, const char *pReason, const char *pSixupDesc)
Definition gamecontext.cpp:971
void CreateAllEntities(bool Initial)
Definition gamecontext.cpp:4325
void LoadMapSettings()
Definition gamecontext.cpp:4604
static void ConSetDDRTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:588
void SendVoteSet(int ClientId)
Definition gamecontext.cpp:1000
static void ConTuneResetZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3189
static std::optional< std::vector< int > > ClientsForVictim(int ClientId, const char *pVictim, void *pUser)
Definition gamecontext.cpp:198
void RegisterChatCommands()
Definition gamecontext.cpp:4012
void OnPostGlobalSnap() override
Definition gamecontext.cpp:4675
void Clear()
Definition gamecontext.cpp:166
const char * GameType() const override
Definition gamecontext.cpp:4703
static void ConVoteMutes(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:389
static void ConPracticeToggleHookCollision(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2217
int m_aTeamMapping[MAX_CLIENTS]
Definition gamecontext.h:230
bool ProcessSpamProtection(int ClientId, bool RespectChatInitialDelay=true)
Definition gamecontext.cpp:4919
CConfig * Config()
Definition gamecontext.h:203
CTuningParams * TuningList()
Definition gamecontext.h:211
static void ConPoints(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2289
CConfig * m_pConfig
Definition gamecontext.h:118
static void ConPracticeToggleInvincible(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2200
static void ConTeamTop5(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:331
static void ConNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:115
void OnUpdatePlayerServerInfo(CJsonWriter *pJsonWriter, int ClientId) override
Definition gamecontext.cpp:5315
static void ConPracticeSetSwitch(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2193
void SendFinish(int ClientId, float Time, std::optional< float > PreviousBestTime)
Definition gamecontext.cpp:4769
CCollision m_Collision
Definition gamecontext.h:125
CMapBugs m_MapBugs
Definition gamecontext.h:135
static void ConJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:287
CCharacter * GetPracticeCharacter(IConsole::IResult *pResult)
Definition ddracechat.cpp:1916
void ReinitPlayerMap(int ClientId, bool Timeout) override
Definition gamecontext.cpp:5483
bool IsOptionVote() const
Definition gamecontext.h:665
bool m_VoteUpdate
Definition gamecontext.h:260
static void ConTogglePauseVoted(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:326
void WhisperId(int ClientId, int VictimId, const char *pMessage)
Definition gamecontext.cpp:5081
void OnShowDistanceNetMessage(const CNetMsg_Cl_ShowDistance *pMsg, int ClientId)
Definition gamecontext.cpp:2777
static void ConBack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1704
int PersistentClientDataSize() const override
Definition gamecontext.h:406
static void ConMuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:260
static void ConPracticeUnLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2137
IConfigManager * ConfigManager() const
Definition gamecontext.h:202
char m_aSixupVoteDescription[VOTE_DESC_LENGTH]
Definition gamecontext.h:263
IAntibot * m_pAntibot
Definition gamecontext.h:122
static void ConAddWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:383
static void ConRestart(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3320
static void ConTuneSetZoneMsgEnter(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3213
void CreateSound(vec2 Pos, int Sound, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:472
void Converse(int ClientId, char *pStr)
Definition gamecontext.cpp:5129
static void ConSayTimeAll(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1513
char m_aVoteDescription[VOTE_DESC_LENGTH]
Definition gamecontext.h:262
const char * NetVersion() const override
Definition gamecontext.cpp:4710
static void ConToCheckTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:464
std::vector< std::string > m_vCensorlist
Definition gamecontext.h:129
void SendVoteStatus(int ClientId, int Total, int Yes, int No)
Definition gamecontext.cpp:1074
static void ConMute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:240
CTuningParams * GlobalTuning()
Definition gamecontext.h:210
std::unique_ptr< IMap > m_pMap
Definition gamecontext.h:123
static void ConShowOthers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1409
IMap * Map() override
Definition gamecontext.h:207
bool PlayerExists(int ClientId) const override
Definition gamecontext.h:425
void OnShowOthersNetMessage(const CNetMsg_Cl_ShowOthers *pMsg, int ClientId)
Definition gamecontext.cpp:2768
static void ConModerate(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:565
static void ConShowAll(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1429
void AbortVoteKickOnDisconnect(int ClientId)
Definition gamecontext.cpp:1101
static void ConTeleXY(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1772
int64_t m_NonEmptySince
Definition gamecontext.h:421
static void ConSayTime(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1473
void OnClientConnected(int ClientId, void *pData) override
Definition gamecontext.cpp:1808
void OnClientDirectInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1572
static void ConForceVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3575
static void ConEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:127
void SendServerAlert(const char *pMessage)
Definition gamecontext.cpp:829
static void ConVoteNo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:630
CSaveHotReloadTee * m_apSavedTees[MAX_CLIENTS]
Definition gamecontext.h:229
static void ConVoteMuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:323
static void ConRescueMode(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1647
protocol7::CNetObjHandler m_NetObjHandler7
Definition gamecontext.h:126
static void ConLastTele(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1888
static void ConKill(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:536
static void CommandCallback(int ClientId, int FlagMask, const char *pCmd, IConsole::IResult *pResult, void *pUser)
Definition gamecontext.cpp:228
IGameController * m_pController
Definition gamecontext.h:236
IConsole * Console()
Definition gamecontext.h:204
static void ConPracticeUnWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2158
std::shared_ptr< CScoreRandomMapResult > m_SqlRandomMapResult
Definition gamecontext.h:439
CPlayerMapping m_PlayerMapping
Definition gamecontext.h:238
bool RateLimitPlayerMapVote(int ClientId) const
Definition gamecontext.cpp:5302
void OnClientEnter(int ClientId) override
Definition gamecontext.cpp:1728
static void ConInvite(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1110
static void ConUnSuper(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:164
CLayers * Layers()
Definition gamecontext.h:653
static int MapScan(const char *pName, int IsDir, int DirType, void *pUserData)
Definition gamecontext.cpp:3744
static void ConPracticeUnJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2144
std::optional< int > FindClientIdByName(const char *pName) const
Definition gamecontext.cpp:273
static void ConLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:249
void OnChangeInfoNetMessage(const CNetMsg_Cl_ChangeInfo *pMsg, int ClientId)
Definition gamecontext.cpp:2834
void CreateBirthdayEffect(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:452
void EndVote()
Definition gamecontext.cpp:994
void TeehistorianRecordPlayerName(int ClientId, const char *pName) override
Definition gamecontext.cpp:1944
void SendRename7(int ClientId)
Definition gamecontext.cpp:915
int m_VotePos
Definition gamecontext.h:261
bool m_TeeHistorianActive
Definition gamecontext.h:131
static void ConToggleTuneParam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3096
char m_aDeleteTempfile[128]
Definition gamecontext.h:274
void PracticeTeleport(CCharacter *pChr, vec2 Pos)
Definition ddracecommands.cpp:432
void Whisper(int ClientId, char *pStr)
Definition gamecontext.cpp:4975
static void ConPracticeUnLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2054
static void ConTopPoints(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2307
static void ConTeleTo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1721
static void ConPractice(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:563
static void ConSuper(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:151
static void ConUnmute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:276
static void ConTeamRank(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:919
int m_VoteType
Definition gamecontext.h:258
static void ConRandomMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3292
static void ConUnEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:139
int WhisperRecordFlag(int ClientId) const
Definition gamecontext.cpp:5076
IStorage * Storage()
Definition gamecontext.h:206
static void ConMapbug(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3239
static void ConShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:269
static void ConchainTeleOthersAuthLevel(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3854
static void ConToggleSpec(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:294
static void ConSwitchOpen(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3265
static void ConDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:226
int m_VoteVictim
Definition gamecontext.h:663
CPrng m_Prng
Definition gamecontext.h:136
CSaveTeam * m_apSavedTeams[MAX_CLIENTS]
Definition gamecontext.h:228
void OnVoteNetMessage(const CNetMsg_Cl_Vote *pMsg, int ClientId)
Definition gamecontext.cpp:2658
static void ConSay(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3387
IEngine * m_pEngine
Definition gamecontext.h:120
void CreateHammerHit(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:363
void SendBroadcast(const char *pText, int ClientId, bool IsImportant=true)
Definition gamecontext.cpp:882
void List(int ClientId, const char *pFilter)
Definition gamecontext.cpp:5154
bool m_VoteWillPass
Definition gamecontext.h:448
int m_VoteCreator
Definition gamecontext.h:257
int m_NumVoteOptions
Definition gamecontext.h:266
static void ConTimeout(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:531
void TeehistorianRecordAntibot(const void *pData, int DataSize) override
Definition gamecontext.cpp:1912
static void ConPracticeUnShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2123
bool IsClientHighBandwidth(int ClientId) const override
Definition gamecontext.cpp:4695
void SendChatTeam(int Team, const char *pText) const
Definition gamecontext.cpp:695
static void ConTeleCursor(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1841
bool IsRunningKickOrSpecVote(int ClientId) const
Definition gamecontext.cpp:4748
static void ConSave(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:882
void SendSettings(int ClientId) const
Definition gamecontext.cpp:817
static void ConTeleport(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:481
static void ConSetSwitch(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:351
static void ConPracticeUnEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2151
void SendEmoticon(int ClientId, int Emoticon, int TargetClientId) const
Definition gamecontext.cpp:795
static void ConTuneDumpZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3174
int GetClientVersion(int ClientId) const
Definition gamecontext.cpp:5195
static void ConProtectedKill(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2269
static void ConKillPlayer(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:93
static void ConUnSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:196
bool TeeHistorianActive() const
Definition gamecontext.h:214
void UnlockTeam(int ClientId, int Team) const
Definition ddracechat.cpp:1023
static void ConTop(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:376
static void ConTime(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1537
static void ConFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:206
static void ConEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:295
bool EmulateBug(int Bug) const
Definition gamecontext.cpp:290
void OnShutdown(void *pPersistentData) override
Definition gamecontext.cpp:4566
CMutes m_VoteMutes
Definition gamecontext.h:605
CNetObjHandler m_NetObjHandler
Definition gamecontext.h:127
static void ConVoteUnmute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:354
static void ConTuneReset(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3117
static void ConMoveRaw(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:72
CTeeHistorian * TeeHistorian()
Definition gamecontext.h:213
static void ConChangeMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3286
bool OnClientDataPersist(int ClientId, void *pData) override
Definition gamecontext.cpp:1794
static void ConRemoveVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3508
static void ConList(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:33
char m_aVoteReason[VOTE_REASON_LENGTH]
Definition gamecontext.h:265
void CallVote(int ClientId, const char *pDesc, const char *pCmd, const char *pReason, const char *pChatmsg, const char *pSixupDesc=nullptr)
Definition gamecontext.cpp:638
int m_LatestLog
Definition gamecontext.h:648
static void ConSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:186
static void ConAddMapVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3689
CMutes m_Mutes
Definition gamecontext.h:604
char m_aMapInfoMessage[512]
Definition gamecontext.h:443
static void ConRescue(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1612
bool IsClientReady(int ClientId) const override
Definition gamecontext.cpp:4685
std::vector< SSwitchers > & Switchers()
Definition gamecontext.h:248
@ FLAG_SIXUP
Definition gamecontext.h:309
@ FLAG_SIX
Definition gamecontext.h:308
static void ConUnShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:317
static void ConHelp(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:46
CVoteOptionServer * m_pVoteOptionFirst
Definition gamecontext.h:288
static void ConUnLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:259
static void ConPracticeAddWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2255
bool IsClientPlayer(int ClientId) const override
Definition gamecontext.cpp:4690
static void TeeHistorianWrite(const void *pData, int DataSize, void *pUser)
Definition gamecontext.cpp:192
bool PlayerModerating() const
Definition gamecontext.cpp:5212
void SendSaveCode(int Team, int TeamSize, int State, const char *pError, const char *pSaveRequester, const char *pServerName, const char *pGeneratedCode, const char *pCode)
Definition gamecontext.cpp:4813
static void ConUnPractice(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:645
void OnEmoticonNetMessage(const CNetMsg_Cl_Emoticon *pMsg, int ClientId)
Definition gamecontext.cpp:2900
void FillAntibot(CAntibotRoundData *pData) override
Definition gamecontext.cpp:295
char m_aaZoneLeaveMsg[TuneZone::NUM][256]
Definition gamecontext.h:269
const CPlayer * FindPlayerByName(const char *pName) const
Definition gamecontext.cpp:257
void SendStartMessages(int ClientId)
Definition gamecontext.cpp:5401
static void ConSettings(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:82
void TeehistorianRecordAuthLogin(int ClientId, const char *pRoleName, const char *pAuthName) override
Definition gamecontext.cpp:1968
void OnSetSpectatorModeNetMessage(const CNetMsg_Cl_SetSpectatorMode *pMsg, int ClientId)
Definition gamecontext.cpp:2808
Definition gameworld.h:18
CWorldCore m_Core
Definition gameworld.h:35
Definition memheap.h:11
Definition jsonwriter.h:15
Definition layers.h:13
Definition mapbugs.h:22
Definition gamecontext.h:85
char m_aReason[128]
Definition gamecontext.h:90
int SecondsLeft() const
Definition mutes.cpp:24
bool m_InitialDelay
Definition gamecontext.h:89
int64_t m_Expire
Definition gamecontext.h:87
bool m_NameKnown
Definition gamecontext.h:92
char m_aClientName[MAX_NAME_LENGTH]
Definition gamecontext.h:91
bool m_Initialized
Definition gamecontext.h:88
Definition gamecontext.h:98
CMutes(const char *pSystemName)
Definition mutes.cpp:29
void UnmuteAddr(const NETADDR *pAddr)
Definition mutes.cpp:90
void UnmuteExpired()
Definition mutes.cpp:122
void UnmuteIndex(int Index)
Definition mutes.cpp:73
std::optional< CMute > IsMuted(const NETADDR *pAddr, bool RespectInitialDelay) const
Definition mutes.cpp:108
const char * m_pSystemName
Definition gamecontext.h:110
bool Mute(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pClientName, bool InitialDelay)
Definition mutes.cpp:34
std::map< NETADDR, CMute > m_Mutes
Definition gamecontext.h:111
void Print(int Page) const
Definition mutes.cpp:138
Definition playermapping.h:29
Definition player.h:29
Definition prng.h:7
Definition authmanager.h:32
Definition save.h:165
Definition save.h:181
Definition score.h:15
Definition teehistorian.h:18
Definition gamecore.h:42
Definition packer.h:54
std::vector< SSwitchers > m_vSwitchers
Definition gamecore.h:176
Definition antibot.h:7
Definition config.h:9
Definition console.h:66
Definition console.h:22
void(*) FCommandCallback(IResult *pResult, void *pUserData)
Definition console.h:107
Definition engine.h:15
Definition gamecontroller.h:24
Definition server.h:388
Definition map.h:20
Definition server.h:39
Definition storage.h:21
static bool CheckClientId(int ClientId)
Definition gamecontext.h:685
constexpr auto NETADDR_MAXSTRSIZE
Definition types.h:162
constexpr int NUM
Definition protocol.h:184
std::bitset< MAX_CLIENTS > CClientMask
Definition protocol.h:194
@ MAX_CLIENTS
Definition protocol.h:89
@ MAX_NAME_LENGTH
Definition protocol.h:109
Definition aio.cpp:22
Definition antibot_data.h:111
Definition gamecontext.h:639
char m_aClientName[MAX_NAME_LENGTH]
Definition gamecontext.h:644
bool m_FromServer
Definition gamecontext.h:641
int64_t m_Timestamp
Definition gamecontext.h:640
int m_ClientVersion
Definition gamecontext.h:643
char m_aDescription[256+8]
Definition gamecontext.h:642
char m_aClientAddrStr[NETADDR_MAXSTRSIZE]
Definition gamecontext.h:645
Definition scoreworker.h:32
Definition scoreworker.h:105
Definition gamecontext.h:68
bool m_Sixup
Definition gamecontext.h:80
CSnapContext(int Version, bool Sixup, int ClientId)
Definition gamecontext.h:69
int ClientId() const
Definition gamecontext.h:76
int GetClientVersion() const
Definition gamecontext.h:74
bool IsSixup() const
Definition gamecontext.h:75
int m_ClientId
Definition gamecontext.h:81
int m_ClientVersion
Definition gamecontext.h:79
Definition uuid_manager.h:17
Definition voting.h:23
Definition types.h:168
vector2_base< float > vec2
Definition vmath.h:168
@ VOTE_DESC_LENGTH
Definition voting.h:8
@ VOTE_CMD_LENGTH
Definition voting.h:9
@ VOTE_REASON_LENGTH
Definition voting.h:10