DDraceNetwork 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 "teehistorian.h"
9
10#include <engine/console.h>
11#include <engine/server.h>
12
13#include <generated/protocol.h>
14
15#include <game/collision.h>
16#include <game/layers.h>
17#include <game/mapbugs.h>
18#include <game/voting.h>
19
20#include <map>
21#include <memory>
22#include <string>
23
24/*
25 Tick
26 Game Context (CGameContext::tick)
27 Game World (GAMEWORLD::tick)
28 Reset world if requested (GAMEWORLD::reset)
29 All entities in the world (ENTITY::tick)
30 All entities in the world (ENTITY::tick_deferred)
31 Remove entities marked for deletion (GAMEWORLD::remove_entities)
32 Game Controller (GAMECONTROLLER::tick)
33 All players (CPlayer::tick)
34
35
36 Snap
37 Game Context (CGameContext::snap)
38 Game World (GAMEWORLD::snap)
39 All entities in the world (ENTITY::snap)
40 Game Controller (GAMECONTROLLER::snap)
41 Events handler (EVENT_HANDLER::snap)
42 All players (CPlayer::snap)
43
44*/
45
46class CCharacter;
47class IConfigManager;
48class CConfig;
49class CHeap;
50class CPlayer;
51class CScore;
52class CUnpacker;
53class IAntibot;
54class IGameController;
55class IEngine;
56class IStorage;
59
61{
62 CSnapContext(int Version, bool Sixup, int ClientId) :
64 {
65 }
66
67 int GetClientVersion() const { return m_ClientVersion; }
68 bool IsSixup() const { return m_Sixup; }
69 bool ClientId() const { return m_ClientId; }
70
71private:
73 bool m_Sixup;
75};
76
77class CMute
78{
79public:
80 int64_t m_Expire;
81 bool m_Initialized = false;
83 char m_aReason[128];
86
87 int SecondsLeft() const;
88};
89
90class CMutes
91{
92public:
93 CMutes(const char *pSystemName);
94
95 bool Mute(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pClientName, bool InitialDelay);
96 void UnmuteIndex(int Index);
97 void UnmuteAddr(const NETADDR *pAddr);
98 void UnmuteExpired();
99 std::optional<CMute> IsMuted(const NETADDR *pAddr, bool RespectInitialDelay) const;
100 void Print(int Page) const;
101
102private:
103 const char *m_pSystemName;
104 std::map<NETADDR, CMute> m_Mutes;
105};
106
108{
121 std::vector<std::string> m_vCensorlist;
122
129
131
132 static void CommandCallback(int ClientId, int FlagMask, const char *pCmd, IConsole::IResult *pResult, void *pUser);
133 static void TeeHistorianWrite(const void *pData, int DataSize, void *pUser);
134
135 static void ConTuneParam(IConsole::IResult *pResult, void *pUserData);
136 static void ConToggleTuneParam(IConsole::IResult *pResult, void *pUserData);
137 static void ConTuneReset(IConsole::IResult *pResult, void *pUserData);
138 static void ConTunes(IConsole::IResult *pResult, void *pUserData);
139 static void ConTuneZone(IConsole::IResult *pResult, void *pUserData);
140 static void ConTuneDumpZone(IConsole::IResult *pResult, void *pUserData);
141 static void ConTuneResetZone(IConsole::IResult *pResult, void *pUserData);
142 static void ConTuneSetZoneMsgEnter(IConsole::IResult *pResult, void *pUserData);
143 static void ConTuneSetZoneMsgLeave(IConsole::IResult *pResult, void *pUserData);
144 static void ConMapbug(IConsole::IResult *pResult, void *pUserData);
145 static void ConSwitchOpen(IConsole::IResult *pResult, void *pUserData);
146 static void ConPause(IConsole::IResult *pResult, void *pUserData);
147 static void ConChangeMap(IConsole::IResult *pResult, void *pUserData);
148 static void ConRandomMap(IConsole::IResult *pResult, void *pUserData);
149 static void ConRandomUnfinishedMap(IConsole::IResult *pResult, void *pUserData);
150 static void ConRestart(IConsole::IResult *pResult, void *pUserData);
151 static void ConServerAlert(IConsole::IResult *pResult, void *pUserData);
152 static void ConModAlert(IConsole::IResult *pResult, void *pUserData);
153 static void ConBroadcast(IConsole::IResult *pResult, void *pUserData);
154 static void ConSay(IConsole::IResult *pResult, void *pUserData);
155 static void ConSetTeam(IConsole::IResult *pResult, void *pUserData);
156 static void ConSetTeamAll(IConsole::IResult *pResult, void *pUserData);
157 static void ConHotReload(IConsole::IResult *pResult, void *pUserData);
158 static void ConAddVote(IConsole::IResult *pResult, void *pUserData);
159 static void ConRemoveVote(IConsole::IResult *pResult, void *pUserData);
160 static void ConForceVote(IConsole::IResult *pResult, void *pUserData);
161 static void ConClearVotes(IConsole::IResult *pResult, void *pUserData);
162 static void ConAddMapVotes(IConsole::IResult *pResult, void *pUserData);
163 static void ConVote(IConsole::IResult *pResult, void *pUserData);
164 static void ConVotes(IConsole::IResult *pResult, void *pUserData);
165 static void ConVoteNo(IConsole::IResult *pResult, void *pUserData);
166 static void ConDrySave(IConsole::IResult *pResult, void *pUserData);
167 static void ConDumpAntibot(IConsole::IResult *pResult, void *pUserData);
168 static void ConAntibot(IConsole::IResult *pResult, void *pUserData);
169 static void ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
170 static void ConchainSettingUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
171 static void ConchainPracticeByDefaultUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
172 static void ConDumpLog(IConsole::IResult *pResult, void *pUserData);
173
174 void AddVote(const char *pDescription, const char *pCommand);
175 static int MapScan(const char *pName, int IsDir, int DirType, void *pUserData);
176
181
188
189public:
190 IServer *Server() const { return m_pServer; }
192 CConfig *Config() { return m_pConfig; }
194 IEngine *Engine() { return m_pEngine; }
204
205 CGameContext(bool Resetting = false);
206 ~CGameContext() override;
207
208 void Clear();
209
212 // keep last input to always apply when none is sent
218
219 // returns last input if available otherwise nulled PlayerInput object
220 // ClientId has to be valid
221 CNetObj_PlayerInput GetLastPlayerInput(int ClientId) const;
222
225
226 // helper functions
227 CCharacter *GetPlayerChar(int ClientId);
228 const CCharacter *GetPlayerChar(int ClientId) const;
229 bool EmulateBug(int Bug) const;
230 std::vector<SSwitchers> &Switchers() { return m_World.m_Core.m_vSwitchers; }
231
232 // voting
233 void StartVote(const char *pDesc, const char *pCommand, const char *pReason, const char *pSixupDesc);
234 void EndVote();
235 void SendVoteSet(int ClientId);
236 void SendVoteStatus(int ClientId, int Total, int Yes, int No);
237 void AbortVoteKickOnDisconnect(int ClientId);
238
250 char m_aaZoneEnterMsg[TuneZone::NUM][256]; // 0 is used for switching from or to area without tunings
252
253 void CreateAllEntities(bool Initial);
254 CPlayer *CreatePlayer(int ClientId, int StartTeam, bool Afk, int LastWhisperTo);
255
257 void DeleteTempfile();
258
259 enum
260 {
268 };
272
273 // helper functions
274 void CreateDamageInd(vec2 Pos, float AngleMod, int Amount, CClientMask Mask = CClientMask().set());
275 void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, CClientMask Mask = CClientMask().set());
276 void CreateHammerHit(vec2 Pos, CClientMask Mask = CClientMask().set());
277 void CreatePlayerSpawn(vec2 Pos, CClientMask Mask = CClientMask().set());
278 void CreateDeath(vec2 Pos, int ClientId, CClientMask Mask = CClientMask().set());
279 void CreateBirthdayEffect(vec2 Pos, CClientMask Mask = CClientMask().set());
280 void CreateFinishEffect(vec2 Pos, CClientMask Mask = CClientMask().set());
281 void CreateSound(vec2 Pos, int Sound, CClientMask Mask = CClientMask().set());
282 void CreateSoundGlobal(int Sound, int Target = -1) const;
283
284 void SnapSwitchers(int SnappingClient);
285 bool 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;
286 bool SnapPickup(const CSnapContext &Context, int SnapId, const vec2 &Pos, int Type, int SubType, int SwitchNumber, int Flags) const;
287
288 enum
289 {
290 FLAG_SIX = 1 << 0,
291 FLAG_SIXUP = 1 << 1,
292 };
293
294 // network
295 void CallVote(int ClientId, const char *pDesc, const char *pCmd, const char *pReason, const char *pChatmsg, const char *pSixupDesc = nullptr);
296 void SendChatTarget(int To, const char *pText, int VersionFlags = FLAG_SIX | FLAG_SIXUP) const;
297 void SendChatTeam(int Team, const char *pText) const;
298 void SendChat(int ClientId, int Team, const char *pText, int SpamProtectionClientId = -1, int VersionFlags = FLAG_SIX | FLAG_SIXUP);
299 void SendStartWarning(int ClientId, const char *pMessage);
300 void SendEmoticon(int ClientId, int Emoticon, int TargetClientId) const;
301 void SendWeaponPickup(int ClientId, int Weapon) const;
302 void SendMotd(int ClientId) const;
303 void SendSettings(int ClientId) const;
304 void SendServerAlert(const char *pMessage);
305 void SendModeratorAlert(const char *pMessage, int ToClientId);
306 void SendBroadcast(const char *pText, int ClientId, bool IsImportant = true);
307 void SendSkinChange7(int ClientId);
308
309 void List(int ClientId, const char *pFilter);
310
311 //
312 void CheckPureTuning();
313 void SendTuningParams(int ClientId, int Zone = 0);
314
315 const CVoteOptionServer *GetVoteOption(int Index) const;
316 void ProgressVoteOptions(int ClientId);
317
318 //
319 void LoadMapSettings();
320
321 // engine events
322 void OnInit(const void *pPersistentData) override;
323 void OnConsoleInit() override;
326 [[nodiscard]] bool OnMapChange(char *pNewMapName, int MapNameSize) override;
327 void OnShutdown(void *pPersistentData) override;
328
329 void OnTick() override;
330 void OnSnap(int ClientId, bool GlobalSnap) override;
331 void OnPostGlobalSnap() override;
332
333 void UpdatePlayerMaps();
334
335 void *PreProcessMsg(int *pMsgId, CUnpacker *pUnpacker, int ClientId);
336 void CensorMessage(char *pCensoredMessage, const char *pMessage, int Size);
337 void OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) override;
338 void OnSayNetMessage(const CNetMsg_Cl_Say *pMsg, int ClientId, const CUnpacker *pUnpacker);
339 void OnCallVoteNetMessage(const CNetMsg_Cl_CallVote *pMsg, int ClientId);
340 void OnVoteNetMessage(const CNetMsg_Cl_Vote *pMsg, int ClientId);
341 void OnSetTeamNetMessage(const CNetMsg_Cl_SetTeam *pMsg, int ClientId);
342 void OnIsDDNetLegacyNetMessage(const CNetMsg_Cl_IsDDNetLegacy *pMsg, int ClientId, CUnpacker *pUnpacker);
343 void OnShowOthersLegacyNetMessage(const CNetMsg_Cl_ShowOthersLegacy *pMsg, int ClientId);
344 void OnShowOthersNetMessage(const CNetMsg_Cl_ShowOthers *pMsg, int ClientId);
345 void OnShowDistanceNetMessage(const CNetMsg_Cl_ShowDistance *pMsg, int ClientId);
346 void OnCameraInfoNetMessage(const CNetMsg_Cl_CameraInfo *pMsg, int ClientId);
347 void OnSetSpectatorModeNetMessage(const CNetMsg_Cl_SetSpectatorMode *pMsg, int ClientId);
348 void OnChangeInfoNetMessage(const CNetMsg_Cl_ChangeInfo *pMsg, int ClientId);
349 void OnEmoticonNetMessage(const CNetMsg_Cl_Emoticon *pMsg, int ClientId);
350 void OnKillNetMessage(const CNetMsg_Cl_Kill *pMsg, int ClientId);
352 void OnStartInfoNetMessage(const CNetMsg_Cl_StartInfo *pMsg, int ClientId);
353
354 bool OnClientDataPersist(int ClientId, void *pData) override;
355 void OnClientConnected(int ClientId, void *pData) override;
356 void OnClientEnter(int ClientId) override;
357 void OnClientDrop(int ClientId, const char *pReason) override;
358 void OnClientPrepareInput(int ClientId, void *pInput) override;
359 void OnClientDirectInput(int ClientId, const void *pInput) override;
360 void OnClientPredictedInput(int ClientId, const void *pInput) override;
361 void OnClientPredictedEarlyInput(int ClientId, const void *pInput) override;
362
363 void PreInputClients(int ClientId, bool *pClients) override;
364
365 void TeehistorianRecordAntibot(const void *pData, int DataSize) override;
366 void TeehistorianRecordPlayerJoin(int ClientId, bool Sixup) override;
367 void TeehistorianRecordPlayerDrop(int ClientId, const char *pReason) override;
368 void TeehistorianRecordPlayerRejoin(int ClientId) override;
369 void TeehistorianRecordPlayerName(int ClientId, const char *pName) override;
370 void TeehistorianRecordPlayerFinish(int ClientId, int TimeTicks) override;
371 void TeehistorianRecordTeamFinish(int TeamId, int TimeTicks) override;
372 void TeehistorianRecordAuthLogin(int ClientId, int Level, const char *pAuthName) override;
373
374 bool IsClientReady(int ClientId) const override;
375 bool IsClientPlayer(int ClientId) const override;
376 // Whether the client is allowed to have high bandwidth.
377 bool IsClientHighBandwidth(int ClientId) const override;
378 int PersistentDataSize() const override { return sizeof(CPersistentData); }
379 int PersistentClientDataSize() const override { return sizeof(CPersistentClientData); }
380
381 CUuid GameUuid() const override;
382 const char *GameType() const override;
383 const char *Version() const override;
384 const char *NetVersion() const override;
385
386 // DDRace
387 void OnPreTickTeehistorian() override;
388 bool OnClientDDNetVersionKnown(int ClientId);
389 void FillAntibot(CAntibotRoundData *pData) override;
390 bool ProcessSpamProtection(int ClientId, bool RespectChatInitialDelay = true);
391 int GetDDRaceTeam(int ClientId) const;
392 // Describes the time when the first player joined the server.
395 int GetClientVersion(int ClientId) const;
397 bool PlayerExists(int ClientId) const override { return m_apPlayers[ClientId]; }
398 // Returns true if someone is actively moderating.
399 bool PlayerModerating() const;
400 void ForceVote(bool Success);
401
402 // Checks if player can vote and notify them about the reason
403 bool RateLimitPlayerVote(int ClientId);
404 bool RateLimitPlayerMapVote(int ClientId) const;
405
406 void OnUpdatePlayerServerInfo(CJsonWriter *pJsonWriter, int ClientId) override;
407 void ReadCensorList();
408
409 bool PracticeByDefault() const;
410
411 std::shared_ptr<CScoreRandomMapResult> m_SqlRandomMapResult;
412
413private:
414 // starting 1 to make 0 the special value "no client id"
418
419 // DDRace Console Commands
420
421 static void ConKillPlayer(IConsole::IResult *pResult, void *pUserData);
422
423 static void ConNinja(IConsole::IResult *pResult, void *pUserData);
424 static void ConUnNinja(IConsole::IResult *pResult, void *pUserData);
425 static void ConEndlessHook(IConsole::IResult *pResult, void *pUserData);
426 static void ConUnEndlessHook(IConsole::IResult *pResult, void *pUserData);
427 static void ConSolo(IConsole::IResult *pResult, void *pUserData);
428 static void ConUnSolo(IConsole::IResult *pResult, void *pUserData);
429 static void ConFreeze(IConsole::IResult *pResult, void *pUserData);
430 static void ConUnFreeze(IConsole::IResult *pResult, void *pUserData);
431 static void ConDeep(IConsole::IResult *pResult, void *pUserData);
432 static void ConUnDeep(IConsole::IResult *pResult, void *pUserData);
433 static void ConLiveFreeze(IConsole::IResult *pResult, void *pUserData);
434 static void ConUnLiveFreeze(IConsole::IResult *pResult, void *pUserData);
435 static void ConUnSuper(IConsole::IResult *pResult, void *pUserData);
436 static void ConSuper(IConsole::IResult *pResult, void *pUserData);
437 static void ConToggleInvincible(IConsole::IResult *pResult, void *pUserData);
438 static void ConShotgun(IConsole::IResult *pResult, void *pUserData);
439 static void ConGrenade(IConsole::IResult *pResult, void *pUserData);
440 static void ConLaser(IConsole::IResult *pResult, void *pUserData);
441 static void ConJetpack(IConsole::IResult *pResult, void *pUserData);
442 static void ConEndlessJump(IConsole::IResult *pResult, void *pUserData);
443 static void ConSetJumps(IConsole::IResult *pResult, void *pUserData);
444 static void ConWeapons(IConsole::IResult *pResult, void *pUserData);
445 static void ConUnShotgun(IConsole::IResult *pResult, void *pUserData);
446 static void ConUnGrenade(IConsole::IResult *pResult, void *pUserData);
447 static void ConUnLaser(IConsole::IResult *pResult, void *pUserData);
448 static void ConUnJetpack(IConsole::IResult *pResult, void *pUserData);
449 static void ConUnEndlessJump(IConsole::IResult *pResult, void *pUserData);
450 static void ConUnWeapons(IConsole::IResult *pResult, void *pUserData);
451 static void ConAddWeapon(IConsole::IResult *pResult, void *pUserData);
452 static void ConRemoveWeapon(IConsole::IResult *pResult, void *pUserData);
453 void ModifyWeapons(IConsole::IResult *pResult, void *pUserData, int Weapon, bool Remove);
454 void MoveCharacter(int ClientId, int X, int Y, bool Raw = false);
455 static void ConGoLeft(IConsole::IResult *pResult, void *pUserData);
456 static void ConGoRight(IConsole::IResult *pResult, void *pUserData);
457 static void ConGoUp(IConsole::IResult *pResult, void *pUserData);
458 static void ConGoDown(IConsole::IResult *pResult, void *pUserData);
459 static void ConMove(IConsole::IResult *pResult, void *pUserData);
460 static void ConMoveRaw(IConsole::IResult *pResult, void *pUserData);
461
462 static void ConToTeleporter(IConsole::IResult *pResult, void *pUserData);
463 static void ConToCheckTeleporter(IConsole::IResult *pResult, void *pUserData);
464 void Teleport(CCharacter *pChr, vec2 Pos);
465 static void ConTeleport(IConsole::IResult *pResult, void *pUserData);
466
467 static void ConCredits(IConsole::IResult *pResult, void *pUserData);
468 static void ConInfo(IConsole::IResult *pResult, void *pUserData);
469 static void ConHelp(IConsole::IResult *pResult, void *pUserData);
470 static void ConSettings(IConsole::IResult *pResult, void *pUserData);
471 static void ConRules(IConsole::IResult *pResult, void *pUserData);
472 static void ConKill(IConsole::IResult *pResult, void *pUserData);
473 static void ConTogglePause(IConsole::IResult *pResult, void *pUserData);
474 static void ConTogglePauseVoted(IConsole::IResult *pResult, void *pUserData);
475 static void ConToggleSpec(IConsole::IResult *pResult, void *pUserData);
476 static void ConToggleSpecVoted(IConsole::IResult *pResult, void *pUserData);
477 static void ConForcePause(IConsole::IResult *pResult, void *pUserData);
478 static void ConTeamTop5(IConsole::IResult *pResult, void *pUserData);
479 static void ConTop(IConsole::IResult *pResult, void *pUserData);
480 static void ConTimes(IConsole::IResult *pResult, void *pUserData);
481 static void ConPoints(IConsole::IResult *pResult, void *pUserData);
482 static void ConTopPoints(IConsole::IResult *pResult, void *pUserData);
483 static void ConTimeCP(IConsole::IResult *pResult, void *pUserData);
484
485 static void ConDND(IConsole::IResult *pResult, void *pUserData);
486 static void ConWhispers(IConsole::IResult *pResult, void *pUserData);
487 static void ConMapInfo(IConsole::IResult *pResult, void *pUserData);
488 static void ConTimeout(IConsole::IResult *pResult, void *pUserData);
489 static void ConPractice(IConsole::IResult *pResult, void *pUserData);
490 static void ConUnPractice(IConsole::IResult *pResult, void *pUserData);
491 static void ConPracticeCmdList(IConsole::IResult *pResult, void *pUserData);
492 static void ConSwap(IConsole::IResult *pResult, void *pUserData);
493 static void ConCancelSwap(IConsole::IResult *pResult, void *pUserData);
494 static void ConSave(IConsole::IResult *pResult, void *pUserData);
495 static void ConLoad(IConsole::IResult *pResult, void *pUserData);
496 static void ConMap(IConsole::IResult *pResult, void *pUserData);
497 static void ConTeamRank(IConsole::IResult *pResult, void *pUserData);
498 static void ConRank(IConsole::IResult *pResult, void *pUserData);
499 static void ConTeam(IConsole::IResult *pResult, void *pUserData);
500 static void ConLock(IConsole::IResult *pResult, void *pUserData);
501 static void ConUnlock(IConsole::IResult *pResult, void *pUserData);
502 static void ConInvite(IConsole::IResult *pResult, void *pUserData);
503 static void ConJoin(IConsole::IResult *pResult, void *pUserData);
504 static void ConTeam0Mode(IConsole::IResult *pResult, void *pUserData);
505 static void ConWhisper(IConsole::IResult *pResult, void *pUserData);
506 static void ConConverse(IConsole::IResult *pResult, void *pUserData);
507 static void ConSetEyeEmote(IConsole::IResult *pResult, void *pUserData);
508 static void ConEyeEmote(IConsole::IResult *pResult, void *pUserData);
509 static void ConShowOthers(IConsole::IResult *pResult, void *pUserData);
510 static void ConShowAll(IConsole::IResult *pResult, void *pUserData);
511 static void ConSpecTeam(IConsole::IResult *pResult, void *pUserData);
512 static void ConNinjaJetpack(IConsole::IResult *pResult, void *pUserData);
513 static void ConSayTime(IConsole::IResult *pResult, void *pUserData);
514 static void ConSayTimeAll(IConsole::IResult *pResult, void *pUserData);
515 static void ConTime(IConsole::IResult *pResult, void *pUserData);
516 static void ConSetTimerType(IConsole::IResult *pResult, void *pUserData);
517 static void ConRescue(IConsole::IResult *pResult, void *pUserData);
518 static void ConRescueMode(IConsole::IResult *pResult, void *pUserData);
519 static void ConBack(IConsole::IResult *pResult, void *pUserData);
520 static void ConTeleTo(IConsole::IResult *pResult, void *pUserData);
521 static void ConTeleXY(IConsole::IResult *pResult, void *pUserData);
522 static void ConTeleCursor(IConsole::IResult *pResult, void *pUserData);
523 static void ConLastTele(IConsole::IResult *pResult, void *pUserData);
524
525 // Chat commands for practice mode
526 static void ConPracticeToTeleporter(IConsole::IResult *pResult, void *pUserData);
527 static void ConPracticeToCheckTeleporter(IConsole::IResult *pResult, void *pUserData);
528 static void ConPracticeUnSolo(IConsole::IResult *pResult, void *pUserData);
529 static void ConPracticeSolo(IConsole::IResult *pResult, void *pUserData);
530 static void ConPracticeUnDeep(IConsole::IResult *pResult, void *pUserData);
531 static void ConPracticeDeep(IConsole::IResult *pResult, void *pUserData);
532 static void ConPracticeUnLiveFreeze(IConsole::IResult *pResult, void *pUserData);
533 static void ConPracticeLiveFreeze(IConsole::IResult *pResult, void *pUserData);
534 static void ConPracticeShotgun(IConsole::IResult *pResult, void *pUserData);
535 static void ConPracticeGrenade(IConsole::IResult *pResult, void *pUserData);
536 static void ConPracticeLaser(IConsole::IResult *pResult, void *pUserData);
537 static void ConPracticeJetpack(IConsole::IResult *pResult, void *pUserData);
538 static void ConPracticeEndlessJump(IConsole::IResult *pResult, void *pUserData);
539 static void ConPracticeSetJumps(IConsole::IResult *pResult, void *pUserData);
540 static void ConPracticeWeapons(IConsole::IResult *pResult, void *pUserData);
541 static void ConPracticeUnShotgun(IConsole::IResult *pResult, void *pUserData);
542 static void ConPracticeUnGrenade(IConsole::IResult *pResult, void *pUserData);
543 static void ConPracticeUnLaser(IConsole::IResult *pResult, void *pUserData);
544 static void ConPracticeUnJetpack(IConsole::IResult *pResult, void *pUserData);
545 static void ConPracticeUnEndlessJump(IConsole::IResult *pResult, void *pUserData);
546 static void ConPracticeUnWeapons(IConsole::IResult *pResult, void *pUserData);
547 static void ConPracticeNinja(IConsole::IResult *pResult, void *pUserData);
548 static void ConPracticeUnNinja(IConsole::IResult *pResult, void *pUserData);
549 static void ConPracticeEndlessHook(IConsole::IResult *pResult, void *pUserData);
550 static void ConPracticeUnEndlessHook(IConsole::IResult *pResult, void *pUserData);
551 static void ConPracticeToggleInvincible(IConsole::IResult *pResult, void *pUserData);
552 static void ConPracticeToggleCollision(IConsole::IResult *pResult, void *pUserData);
553 static void ConPracticeToggleHookCollision(IConsole::IResult *pResult, void *pUserData);
554 static void ConPracticeToggleHitOthers(IConsole::IResult *pResult, void *pUserData);
555
556 static void ConPracticeAddWeapon(IConsole::IResult *pResult, void *pUserData);
557 static void ConPracticeRemoveWeapon(IConsole::IResult *pResult, void *pUserData);
558
559 static void ConProtectedKill(IConsole::IResult *pResult, void *pUserData);
560 static void ConModerate(IConsole::IResult *pResult, void *pUserData);
561
562 static void ConList(IConsole::IResult *pResult, void *pUserData);
563 static void ConSetDDRTeam(IConsole::IResult *pResult, void *pUserData);
564 static void ConUninvite(IConsole::IResult *pResult, void *pUserData);
565
566 static void ConReloadCensorlist(IConsole::IResult *pResult, void *pUserData);
567
569
572 void MuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName);
573 void VoteMuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName);
574
575 static void ConMute(IConsole::IResult *pResult, void *pUserData);
576 static void ConMuteId(IConsole::IResult *pResult, void *pUserData);
577 static void ConMuteIp(IConsole::IResult *pResult, void *pUserData);
578 static void ConUnmute(IConsole::IResult *pResult, void *pUserData);
579 static void ConUnmuteId(IConsole::IResult *pResult, void *pUserData);
580 static void ConUnmuteIp(IConsole::IResult *pResult, void *pUserData);
581 static void ConMutes(IConsole::IResult *pResult, void *pUserData);
582
583 static void ConVoteMute(IConsole::IResult *pResult, void *pUserData);
584 static void ConVoteMuteId(IConsole::IResult *pResult, void *pUserData);
585 static void ConVoteMuteIp(IConsole::IResult *pResult, void *pUserData);
586 static void ConVoteUnmute(IConsole::IResult *pResult, void *pUserData);
587 static void ConVoteUnmuteId(IConsole::IResult *pResult, void *pUserData);
588 static void ConVoteUnmuteIp(IConsole::IResult *pResult, void *pUserData);
589 static void ConVoteMutes(IConsole::IResult *pResult, void *pUserData);
590
591 void Whisper(int ClientId, char *pStr);
592 void WhisperId(int ClientId, int VictimId, const char *pMessage);
593 void Converse(int ClientId, char *pStr);
594 bool IsVersionBanned(int Version);
595 void UnlockTeam(int ClientId, int Team) const;
596 void AttemptJoinTeam(int ClientId, int Team);
597
598 enum
599 {
601 MAX_LOGS = 512,
602 };
614
615 void LogEvent(const char *Description, int ClientId);
616
617public:
618 CLayers *Layers() { return &m_Layers; }
619 CScore *Score() { return m_pScore; }
620
621 enum
622 {
627 };
629
630 bool IsOptionVote() const { return m_VoteType == VOTE_TYPE_OPTION; }
631 bool IsKickVote() const { return m_VoteType == VOTE_TYPE_KICK; }
632 bool IsSpecVote() const { return m_VoteType == VOTE_TYPE_SPECTATE; }
633
634 bool IsRunningVote(int ClientId) const;
635 bool IsRunningKickOrSpecVote(int ClientId) const;
636
637 void SendRecord(int ClientId);
638 void SendFinish(int ClientId, float Time, std::optional<float> PreviousBestTime);
639 void SendSaveCode(int Team, int TeamSize, int State, const char *pError, const char *pSaveRequester, const char *pServerName, const char *pGeneratedCode, const char *pCode);
640 void OnSetAuthed(int ClientId, int Level) override;
641
642 void ResetTuning();
643};
644
645static inline bool CheckClientId(int ClientId)
646{
647 return ClientId >= 0 && ClientId < MAX_CLIENTS;
648}
649
650#endif
Definition character.h:24
Definition collision.h:35
Definition config.h:30
Definition eventhandler.h:11
static void ConAntibot(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:597
void MuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName)
Definition mutes.cpp:200
static void ConUnNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:111
static void ConLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:271
void CreatePlayerSpawn(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:350
static void ConTuneZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3125
void CreateFinishEffect(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:381
static void ConDumpLog(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:603
CGameContext(bool Resetting=false)
Definition gamecontext.cpp:75
CCharacter * GetPlayerChar(int ClientId)
Definition gamecontext.cpp:195
static void ConGoRight(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:23
static void ConRules(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:239
static void ConMutes(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:309
void OnClientDrop(int ClientId, const char *pReason) override
Definition gamecontext.cpp:1831
static void ConMap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:540
void OnStartInfoNetMessage(const CNetMsg_Cl_StartInfo *pMsg, int ClientId)
Definition gamecontext.cpp:2979
static void ConPracticeGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2283
static void ConSetJumps(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:293
CTeeHistorian m_TeeHistorian
Definition gamecontext.h:124
void OnTick() override
Definition gamecontext.cpp:1088
void OnCameraInfoNetMessage(const CNetMsg_Cl_CameraInfo *pMsg, int ClientId)
Definition gamecontext.cpp:2733
static void ConVoteUnmuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:359
CHeap * m_pVoteOptionHeap
Definition gamecontext.h:269
static void ConTogglePause(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:380
void TeehistorianRecordPlayerJoin(int ClientId, bool Sixup) override
Definition gamecontext.cpp:1888
void LogEvent(const char *Description, int ClientId)
Definition ddracecommands.cpp:636
void ForceVote(bool Success)
Definition gamecontext.cpp:5250
static void ConTimeCP(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2524
void SendChatTarget(int To, const char *pText, int VersionFlags=FLAG_SIX|FLAG_SIXUP) const
Definition gamecontext.cpp:587
static void ConTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1383
static void ConPracticeUnGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2332
static void ConEyeEmote(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1500
IConsole * m_pConsole
Definition gamecontext.h:112
static void ConForcePause(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:477
void AttemptJoinTeam(int ClientId, int Team)
Definition ddracechat.cpp:1151
void Teleport(CCharacter *pChr, vec2 Pos)
Definition ddracecommands.cpp:388
static void ConUnmuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:281
static void ConGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:265
int64_t m_VoteCloseTime
Definition gamecontext.h:241
static void ConToggleInvincible(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:166
void DeleteTempfile()
Definition gamecontext.cpp:4382
static void ConMove(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:53
bool PracticeByDefault() const
Definition gamecontext.cpp:5425
static void ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3795
@ MAX_LOG_SECONDS
Definition gamecontext.h:600
@ MAX_LOGS
Definition gamecontext.h:601
static void ConPause(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3257
static void ConGoLeft(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:13
static void ConNinjaJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1563
static void ConVoteUnmuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:373
static void ConSetEyeEmote(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1466
IAntibot * Antibot()
Definition gamecontext.h:199
IStorage * m_pStorage
Definition gamecontext.h:114
void PreInputClients(int ClientId, bool *pClients) override
Definition gamecontext.cpp:1396
void SendMotd(int ClientId) const
Definition gamecontext.cpp:733
void OnClientPredictedInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1453
CScore * m_pScore
Definition gamecontext.h:417
static void ConWhispers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:526
static void ConUnEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:333
CPlayer * CreatePlayer(int ClientId, int StartTeam, bool Afk, int LastWhisperTo)
Definition gamecontext.cpp:4371
bool IsRunningVote(int ClientId) const
Definition gamecontext.cpp:4747
void OnSayNetMessage(const CNetMsg_Cl_Say *pMsg, int ClientId, const CUnpacker *pUnpacker)
Definition gamecontext.cpp:2229
static void ConPracticeWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2318
void OnIsDDNetLegacyNetMessage(const CNetMsg_Cl_IsDDNetLegacy *pMsg, int ClientId, CUnpacker *pUnpacker)
Definition gamecontext.cpp:2693
void SendTuningParams(int ClientId, int Zone=0)
Definition gamecontext.cpp:998
static void ConPracticeToTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2139
static void ConDumpAntibot(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:591
bool IsVersionBanned(int Version)
Definition gamecontext.cpp:5179
CVoteOptionServer * m_pVoteOptionLast
Definition gamecontext.h:271
bool IsKickVote() const
Definition gamecontext.h:631
int64_t m_LastMapVote
Definition gamecontext.h:394
CNetObj_PlayerInput m_aLastPlayerInput[MAX_CLIENTS]
Definition gamecontext.h:213
static void ConPracticeEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2304
static void ConPracticeJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2297
static void ConPracticeLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2266
void ModifyWeapons(IConsole::IResult *pResult, void *pUserData, int Weapon, bool Remove)
Definition ddracecommands.cpp:359
CLayers m_Layers
Definition gamecontext.h:116
static void ConUnmuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:295
void CreateDamageInd(vec2 Pos, float AngleMod, int Amount, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:264
CGameWorld m_World
Definition gamecontext.h:224
static void ConUninvite(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:542
void OnSetTeamNetMessage(const CNetMsg_Cl_SetTeam *pMsg, int ClientId)
Definition gamecontext.cpp:2644
char m_aVoteCommand[VOTE_CMD_LENGTH]
Definition gamecontext.h:246
static void ConPracticeUnEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2388
bool m_aPlayerHasInput[MAX_CLIENTS]
Definition gamecontext.h:214
static void ConPracticeSetJumps(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2311
static void ConDrySave(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:557
void RegisterDDRaceCommands()
Definition gamecontext.cpp:3903
void OnClientPredictedEarlyInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1472
CNetObjHandler * GetNetObjHandler() override
Definition gamecontext.h:202
CCollision * Collision()
Definition gamecontext.h:196
static void ConToggleSpecVoted(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:375
static void ConMuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:243
static void ConUnWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:341
void SendWeaponPickup(int ClientId, int Weapon) const
Definition gamecontext.cpp:726
static void ConUnJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:325
bool OnMapChange(char *pNewMapName, int MapNameSize) override
Definition gamecontext.cpp:4391
CEventHandler m_Events
Definition gamecontext.h:210
void OnInit(const void *pPersistentData) override
Definition gamecontext.cpp:4084
static void ConDND(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:512
void ResetTuning()
Definition gamecontext.cpp:4968
CTuningParams m_aTuningList[TuneZone::NUM]
Definition gamecontext.h:120
static void ConLoad(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1009
void ReadCensorList()
Definition gamecontext.cpp:5407
void CensorMessage(char *pCensoredMessage, const char *pMessage, int Size)
Definition gamecontext.cpp:2137
static void ConVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3763
bool OnClientDDNetVersionKnown(int ClientId)
Definition gamecontext.cpp:1944
static void ConGoDown(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:33
void TeehistorianRecordPlayerRejoin(int ClientId) override
Definition gamecontext.cpp:1904
static void ConJoin(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1426
static void ConPracticeSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2207
CClientMask ClientsMaskExcludeClientVersionAndHigher(int Version) const
Definition gamecontext.cpp:5233
void CreateDeath(vec2 Pos, int ClientId, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:360
void OnKillNetMessage(const CNetMsg_Cl_Kill *pMsg, int ClientId)
Definition gamecontext.cpp:2937
void OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) override
Definition gamecontext.cpp:2159
IServer * m_pServer
Definition gamecontext.h:109
static void ConPracticeDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2246
void UpdatePlayerMaps()
Definition gamecontext.cpp:4636
@ VOTE_ENFORCE_NO
Definition gamecontext.h:262
@ VOTE_ENFORCE_NO_ADMIN
Definition gamecontext.h:264
@ VOTE_ENFORCE_YES_ADMIN
Definition gamecontext.h:265
@ VOTE_ENFORCE_UNKNOWN
Definition gamecontext.h:261
@ VOTE_ENFORCE_CANCEL
Definition gamecontext.h:267
@ VOTE_ENFORCE_ABORT
Definition gamecontext.h:266
@ VOTE_ENFORCE_YES
Definition gamecontext.h:263
CLog m_aLogs[MAX_LOGS]
Definition gamecontext.h:612
static void ConPracticeLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2290
static void ConPracticeToCheckTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2159
CUuid GameUuid() const override
Definition gamecontext.cpp:4714
void SendSkinChange7(int ClientId)
Definition gamecontext.cpp:838
static void ConConverse(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1456
static void ConMapInfo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:569
static void ConToTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:396
static void ConWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:301
static void ConHotReload(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3416
static void ConClearVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3647
void SendRecord(int ClientId)
Definition gamecontext.cpp:4757
static void ConUnGrenade(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:313
static void ConPracticeUnSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2179
char m_aaZoneEnterMsg[TuneZone::NUM][256]
Definition gamecontext.h:250
static void ConUnLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:319
void OnPreTickTeehistorian() override
Definition gamecontext.cpp:1070
static void ConTeam0Mode(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1303
static void ConPracticeRemoveWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2457
void MoveCharacter(int ClientId, int X, int Y, bool Raw=false)
Definition ddracecommands.cpp:71
bool IsSpecVote() const
Definition gamecontext.h:632
static void ConTunes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3112
static void ConWhisper(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1461
@ VOTE_TYPE_SPECTATE
Definition gamecontext.h:626
@ VOTE_TYPE_KICK
Definition gamecontext.h:625
@ VOTE_TYPE_UNKNOWN
Definition gamecontext.h:623
@ VOTE_TYPE_OPTION
Definition gamecontext.h:624
bool m_Resetting
Definition gamecontext.h:130
static void ConCancelSwap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:934
void SendChat(int ClientId, int Team, const char *pText, int SpamProtectionClientId=-1, int VersionFlags=FLAG_SIX|FLAG_SIXUP)
Definition gamecontext.cpp:625
static void ConUnDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:226
static void ConPracticeUnNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2374
static void ConPracticeToggleCollision(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2402
static void ConSetTimerType(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1735
void OnConsoleInit() override
Definition gamecontext.cpp:3848
void OnClientPrepareInput(int ClientId, void *pInput) override
Definition gamecontext.cpp:1431
static void ConReloadCensorlist(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:585
void * PreProcessMsg(int *pMsgId, CUnpacker *pUnpacker, int ClientId)
Definition gamecontext.cpp:1994
static void ConRank(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1048
void ProgressVoteOptions(int ClientId)
Definition gamecontext.cpp:1518
static void ConModAlert(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3336
static void ConRemoveWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:353
static void ConBroadcast(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3354
static void ConPracticeNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2367
int GetDDRaceTeam(int ClientId) const
Definition gamecontext.cpp:4963
void VoteMuteWithMessage(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pDisplayName)
Definition mutes.cpp:219
void OnCallVoteNetMessage(const CNetMsg_Cl_CallVote *pMsg, int ClientId)
Definition gamecontext.cpp:2334
void TeehistorianRecordPlayerDrop(int ClientId, const char *pReason) override
Definition gamecontext.cpp:1896
static void ConRandomUnfinishedMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3284
void AddVote(const char *pDescription, const char *pCommand)
Definition gamecontext.cpp:3453
CUuid m_GameUuid
Definition gamecontext.h:126
static void ConVoteMuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:336
void OnEnableSpectatorCountNetMessage(const CNetMsg_Cl_EnableSpectatorCount *pMsg, int ClientId)
Definition gamecontext.cpp:2970
static void ConAddVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3444
static void ConTuneSetZoneMsgLeave(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3204
static void ConPracticeEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2381
~CGameContext() override
Definition gamecontext.cpp:131
void OnShowOthersLegacyNetMessage(const CNetMsg_Cl_ShowOthersLegacy *pMsg, int ClientId)
Definition gamecontext.cpp:2709
void TeehistorianRecordTeamFinish(int TeamId, int TimeTicks) override
Definition gamecontext.cpp:1928
static void ConPracticeShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2276
static void ConVoteMute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:316
static void ConTimes(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:455
void SnapSwitchers(int SnappingClient)
Definition gamecontext.cpp:424
static void ConPracticeUnDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2235
static void ConchainPracticeByDefaultUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3815
static void ConSetTeam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3371
bool RateLimitPlayerVote(int ClientId)
Definition gamecontext.cpp:5266
static void ConPracticeToggleHitOthers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2422
void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:292
void SendStartWarning(int ClientId, const char *pMessage)
Definition gamecontext.cpp:708
CNetObj_PlayerInput GetLastPlayerInput(int ClientId) const
Definition gamecontext.cpp:189
IEngine * Engine()
Definition gamecontext.h:194
static void ConUnFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:206
uint32_t m_NextUniqueClientId
Definition gamecontext.h:415
ASYNCIO * m_pTeeHistorianFile
Definition gamecontext.h:125
CPlayer * m_apPlayers[MAX_CLIENTS]
Definition gamecontext.h:211
protocol7::CNetObjHandler * GetNetObjHandler7() override
Definition gamecontext.h:203
static void ConSpecTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1629
static void ConLock(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1069
static void ConSwap(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:810
static void ConTuneParam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3027
int PersistentDataSize() const override
Definition gamecontext.h:378
void CreateSoundGlobal(int Sound, int Target=-1) const
Definition gamecontext.cpp:406
const char * Version() const override
Definition gamecontext.cpp:4716
static void ConInfo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:50
static void ConSetTeamAll(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3397
static void ConServerAlert(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3325
static void ConchainSettingUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition gamecontext.cpp:3805
static void ConUnlock(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1118
IConfigManager * m_pConfigManager
Definition gamecontext.h:110
static void ConPracticeCmdList(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:788
int m_VoteEnforce
Definition gamecontext.h:249
static void ConVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3753
CScore * Score()
Definition gamecontext.h:619
IServer * Server() const
Definition gamecontext.h:190
void TeehistorianRecordPlayerFinish(int ClientId, int TimeTicks) override
Definition gamecontext.cpp:1920
static void ConGoUp(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:43
void StartVote(const char *pDesc, const char *pCommand, const char *pReason, const char *pSixupDesc)
Definition gamecontext.cpp:856
void CreateAllEntities(bool Initial)
Definition gamecontext.cpp:4277
void LoadMapSettings()
Definition gamecontext.cpp:4555
static void ConSetDDRTeam(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:515
void SendVoteSet(int ClientId)
Definition gamecontext.cpp:885
static void ConTuneResetZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3165
void RegisterChatCommands()
Definition gamecontext.cpp:3978
void OnPostGlobalSnap() override
Definition gamecontext.cpp:4626
void Clear()
Definition gamecontext.cpp:151
const char * GameType() const override
Definition gamecontext.cpp:4715
static void ConVoteMutes(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:387
static void ConPracticeToggleHookCollision(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2412
int m_aTeamMapping[MAX_CLIENTS]
Definition gamecontext.h:217
bool ProcessSpamProtection(int ClientId, bool RespectChatInitialDelay=true)
Definition gamecontext.cpp:4923
CConfig * Config()
Definition gamecontext.h:192
CTuningParams * TuningList()
Definition gamecontext.h:198
static void ConPoints(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2484
CConfig * m_pConfig
Definition gamecontext.h:111
static void ConPracticeToggleInvincible(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2395
static void ConTeamTop5(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:390
static void ConNinja(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:105
void OnUpdatePlayerServerInfo(CJsonWriter *pJsonWriter, int ClientId) override
Definition gamecontext.cpp:5348
void SendFinish(int ClientId, float Time, std::optional< float > PreviousBestTime)
Definition gamecontext.cpp:4773
CCollision m_Collision
Definition gamecontext.h:117
CMapBugs m_MapBugs
Definition gamecontext.h:127
static void ConJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:277
CCharacter * GetPracticeCharacter(IConsole::IResult *pResult)
Definition ddracechat.cpp:2118
bool IsOptionVote() const
Definition gamecontext.h:630
bool m_VoteUpdate
Definition gamecontext.h:242
static void ConTogglePauseVoted(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:385
void WhisperId(int ClientId, int VictimId, const char *pMessage)
Definition gamecontext.cpp:5089
void OnShowDistanceNetMessage(const CNetMsg_Cl_ShowDistance *pMsg, int ClientId)
Definition gamecontext.cpp:2727
static void ConBack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1879
int PersistentClientDataSize() const override
Definition gamecontext.h:379
static void ConMuteIp(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:258
static void ConPracticeUnLaser(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2339
IConfigManager * ConfigManager() const
Definition gamecontext.h:191
char m_aSixupVoteDescription[VOTE_DESC_LENGTH]
Definition gamecontext.h:245
IAntibot * m_pAntibot
Definition gamecontext.h:115
static void ConAddWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:347
static void ConRestart(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3298
static void ConTuneSetZoneMsgEnter(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3191
void CreateSound(vec2 Pos, int Sound, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:391
void Converse(int ClientId, char *pStr)
Definition gamecontext.cpp:5162
static void ConSayTimeAll(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1688
char m_aVoteDescription[VOTE_DESC_LENGTH]
Definition gamecontext.h:244
const char * NetVersion() const override
Definition gamecontext.cpp:4717
static void ConToCheckTeleporter(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:412
std::vector< std::string > m_vCensorlist
Definition gamecontext.h:121
void SendVoteStatus(int ClientId, int Total, int Yes, int No)
Definition gamecontext.cpp:947
static void ConMute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:238
CTuningParams * GlobalTuning()
Definition gamecontext.h:197
static void ConShowOthers(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1578
bool PlayerExists(int ClientId) const override
Definition gamecontext.h:397
void OnShowOthersNetMessage(const CNetMsg_Cl_ShowOthers *pMsg, int ClientId)
Definition gamecontext.cpp:2718
static void ConModerate(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:492
static void ConShowAll(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1601
void AbortVoteKickOnDisconnect(int ClientId)
Definition gamecontext.cpp:973
static void ConTeleXY(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1957
int64_t m_NonEmptySince
Definition gamecontext.h:393
static void ConSayTime(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1645
void OnClientConnected(int ClientId, void *pData) override
Definition gamecontext.cpp:1782
void OnClientDirectInput(int ClientId, const void *pInput) override
Definition gamecontext.cpp:1439
static void ConForceVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3579
static void ConEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:117
void SendServerAlert(const char *pMessage)
Definition gamecontext.cpp:752
static void ConVoteNo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:550
CSaveHotReloadTee * m_apSavedTees[MAX_CLIENTS]
Definition gamecontext.h:216
static void ConVoteMuteId(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:321
static void ConRescueMode(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1822
protocol7::CNetObjHandler m_NetObjHandler7
Definition gamecontext.h:118
static void ConLastTele(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2090
static void ConKill(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:463
static void CommandCallback(int ClientId, int FlagMask, const char *pCmd, IConsole::IResult *pResult, void *pUser)
Definition gamecontext.cpp:180
IGameController * m_pController
Definition gamecontext.h:223
IConsole * Console()
Definition gamecontext.h:193
static void ConPracticeUnWeapons(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2360
std::shared_ptr< CScoreRandomMapResult > m_SqlRandomMapResult
Definition gamecontext.h:411
void SendModeratorAlert(const char *pMessage, int ToClientId)
Definition gamecontext.cpp:784
bool RateLimitPlayerMapVote(int ClientId) const
Definition gamecontext.cpp:5335
void OnClientEnter(int ClientId) override
Definition gamecontext.cpp:1604
static void ConInvite(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1239
static void ConUnSuper(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:154
CLayers * Layers()
Definition gamecontext.h:618
static int MapScan(const char *pName, int IsDir, int DirType, void *pUserData)
Definition gamecontext.cpp:3737
static void ConPracticeUnJetpack(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2346
static void ConLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:239
void OnChangeInfoNetMessage(const CNetMsg_Cl_ChangeInfo *pMsg, int ClientId)
Definition gamecontext.cpp:2761
void TeehistorianRecordAuthLogin(int ClientId, int Level, const char *pAuthName) override
Definition gamecontext.cpp:1936
void CreateBirthdayEffect(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:371
void EndVote()
Definition gamecontext.cpp:879
void OnSnap(int ClientId, bool GlobalSnap) override
Definition gamecontext.cpp:4591
void TeehistorianRecordPlayerName(int ClientId, const char *pName) override
Definition gamecontext.cpp:1912
int m_VotePos
Definition gamecontext.h:243
bool m_TeeHistorianActive
Definition gamecontext.h:123
static void ConToggleTuneParam(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3061
char m_aDeleteTempfile[128]
Definition gamecontext.h:256
void Whisper(int ClientId, char *pStr)
Definition gamecontext.cpp:4979
static void ConPracticeUnLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2256
static void ConTopPoints(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2505
static void ConTeleTo(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1896
static void ConPractice(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:625
static void ConSuper(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:141
static void ConUnmute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:274
static void ConTeamRank(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1027
int m_VoteType
Definition gamecontext.h:240
static void ConRandomMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3270
static void ConUnEndlessHook(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:129
IStorage * Storage()
Definition gamecontext.h:195
static void ConMapbug(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3217
static void ConShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:259
static void ConToggleSpec(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:353
static void ConSwitchOpen(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3243
static void ConDeep(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:216
int m_VoteVictim
Definition gamecontext.h:628
CPrng m_Prng
Definition gamecontext.h:128
CSaveTeam * m_apSavedTeams[MAX_CLIENTS]
Definition gamecontext.h:215
void OnVoteNetMessage(const CNetMsg_Cl_Vote *pMsg, int ClientId)
Definition gamecontext.cpp:2613
static void ConSay(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3365
IEngine * m_pEngine
Definition gamecontext.h:113
void CreateHammerHit(vec2 Pos, CClientMask Mask=CClientMask().set())
Definition gamecontext.cpp:282
void SendBroadcast(const char *pText, int ClientId, bool IsImportant=true)
Definition gamecontext.cpp:805
void List(int ClientId, const char *pFilter)
Definition gamecontext.cpp:5187
bool m_VoteWillPass
Definition gamecontext.h:416
int m_VoteCreator
Definition gamecontext.h:239
int m_NumVoteOptions
Definition gamecontext.h:248
void CheckPureTuning()
Definition gamecontext.cpp:980
void OnSetAuthed(int ClientId, int Level) override
Definition gamecontext.cpp:4721
static void ConTimeout(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:585
void TeehistorianRecordAntibot(const void *pData, int DataSize) override
Definition gamecontext.cpp:1880
static void ConPracticeUnShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2325
bool IsClientHighBandwidth(int ClientId) const override
Definition gamecontext.cpp:4707
void SendChatTeam(int Team, const char *pText) const
Definition gamecontext.cpp:618
static void ConTeleCursor(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2035
bool 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:478
bool IsRunningKickOrSpecVote(int ClientId) const
Definition gamecontext.cpp:4752
static void ConSave(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:990
void SendSettings(int ClientId) const
Definition gamecontext.cpp:740
const CVoteOptionServer * GetVoteOption(int Index) const
Definition gamecontext.cpp:1505
static void ConTeleport(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:429
static void ConPracticeUnEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2353
void SendEmoticon(int ClientId, int Emoticon, int TargetClientId) const
Definition gamecontext.cpp:718
static void ConTuneDumpZone(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3148
int GetClientVersion(int ClientId) const
Definition gamecontext.cpp:5228
static void ConProtectedKill(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2464
static void ConKillPlayer(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:83
static void ConUnSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:186
bool TeeHistorianActive() const
Definition gamecontext.h:201
void UnlockTeam(int ClientId, int Team) const
Definition ddracechat.cpp:1142
static void ConTop(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:436
static void ConTime(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1712
static void ConFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:196
static void ConEndlessJump(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:285
bool EmulateBug(int Bug) const
Definition gamecontext.cpp:209
void OnShutdown(void *pPersistentData) override
Definition gamecontext.cpp:4518
CMutes m_VoteMutes
Definition gamecontext.h:571
CNetObjHandler m_NetObjHandler
Definition gamecontext.h:119
static void ConVoteUnmute(IConsole::IResult *pResult, void *pUserData)
Definition mutes.cpp:352
static void ConTuneReset(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3085
static void ConMoveRaw(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:62
CTeeHistorian * TeeHistorian()
Definition gamecontext.h:200
static void ConChangeMap(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3264
bool OnClientDataPersist(int ClientId, void *pData) override
Definition gamecontext.cpp:1769
static void ConRemoveVote(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3510
static void ConCredits(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:19
static void ConList(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:69
char m_aVoteReason[VOTE_REASON_LENGTH]
Definition gamecontext.h:247
void CallVote(int ClientId, const char *pDesc, const char *pCmd, const char *pReason, const char *pChatmsg, const char *pSixupDesc=nullptr)
Definition gamecontext.cpp:561
int m_LatestLog
Definition gamecontext.h:613
static void ConSolo(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:176
static void ConAddMapVotes(IConsole::IResult *pResult, void *pUserData)
Definition gamecontext.cpp:3683
CMutes m_Mutes
Definition gamecontext.h:570
static void ConRescue(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:1787
bool IsClientReady(int ClientId) const override
Definition gamecontext.cpp:4697
std::vector< SSwitchers > & Switchers()
Definition gamecontext.h:230
@ FLAG_SIXUP
Definition gamecontext.h:291
@ FLAG_SIX
Definition gamecontext.h:290
static void ConUnShotgun(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:307
static void ConHelp(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:82
CVoteOptionServer * m_pVoteOptionFirst
Definition gamecontext.h:270
static void ConUnLiveFreeze(IConsole::IResult *pResult, void *pUserData)
Definition ddracecommands.cpp:249
static void ConPracticeAddWeapon(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:2450
bool IsClientPlayer(int ClientId) const override
Definition gamecontext.cpp:4702
static void TeeHistorianWrite(const void *pData, int DataSize, void *pUser)
Definition gamecontext.cpp:174
bool PlayerModerating() const
Definition gamecontext.cpp:5245
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:4817
static void ConUnPractice(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:722
void OnEmoticonNetMessage(const CNetMsg_Cl_Emoticon *pMsg, int ClientId)
Definition gamecontext.cpp:2858
void FillAntibot(CAntibotRoundData *pData) override
Definition gamecontext.cpp:214
char m_aaZoneLeaveMsg[TuneZone::NUM][256]
Definition gamecontext.h:251
bool SnapPickup(const CSnapContext &Context, int SnapId, const vec2 &Pos, int Type, int SubType, int SwitchNumber, int Flags) const
Definition gamecontext.cpp:513
static void ConSettings(IConsole::IResult *pResult, void *pUserData)
Definition ddracechat.cpp:121
void OnSetSpectatorModeNetMessage(const CNetMsg_Cl_SetSpectatorMode *pMsg, int ClientId)
Definition gamecontext.cpp:2739
Definition gameworld.h:18
Definition memheap.h:11
Definition jsonwriter.h:15
Definition layers.h:13
Definition mapbugs.h:22
Definition gamecontext.h:78
char m_aReason[128]
Definition gamecontext.h:83
int SecondsLeft() const
Definition mutes.cpp:22
bool m_InitialDelay
Definition gamecontext.h:82
int64_t m_Expire
Definition gamecontext.h:80
bool m_NameKnown
Definition gamecontext.h:85
char m_aClientName[MAX_NAME_LENGTH]
Definition gamecontext.h:84
bool m_Initialized
Definition gamecontext.h:81
Definition gamecontext.h:91
CMutes(const char *pSystemName)
Definition mutes.cpp:27
void UnmuteAddr(const NETADDR *pAddr)
Definition mutes.cpp:88
void UnmuteExpired()
Definition mutes.cpp:120
void UnmuteIndex(int Index)
Definition mutes.cpp:71
std::optional< CMute > IsMuted(const NETADDR *pAddr, bool RespectInitialDelay) const
Definition mutes.cpp:106
const char * m_pSystemName
Definition gamecontext.h:103
bool Mute(const NETADDR *pAddr, int Seconds, const char *pReason, const char *pClientName, bool InitialDelay)
Definition mutes.cpp:32
std::map< NETADDR, CMute > m_Mutes
Definition gamecontext.h:104
void Print(int Page) const
Definition mutes.cpp:136
Definition protocol.h:1602
Definition player.h:26
Definition prng.h:7
Definition save.h:158
Definition save.h:174
Definition score.h:15
Definition teehistorian.h:18
Definition gamecore.h:43
Definition packer.h:54
Definition antibot.h:7
Definition config.h:9
Definition console.h:64
Definition console.h:20
void(* FCommandCallback)(IResult *pResult, void *pUserData)
Definition console.h:102
Definition engine.h:15
Definition gamecontroller.h:24
Definition server.h:301
Definition server.h:33
Definition storage.h:21
Definition protocol7.h:1239
std::bitset< MAX_CLIENTS > CClientMask
Definition protocol.h:166
@ MAX_CLIENTS
Definition protocol.h:89
@ MAX_NAME_LENGTH
Definition protocol.h:99
static bool CheckClientId(int ClientId)
Definition gamecontext.h:645
constexpr int NUM
Definition protocol.h:156
Definition system.cpp:387
Definition antibot_data.h:111
Definition gamecontext.h:604
char m_aClientName[MAX_NAME_LENGTH]
Definition gamecontext.h:609
bool m_FromServer
Definition gamecontext.h:606
int64_t m_Timestamp
Definition gamecontext.h:605
int m_ClientVersion
Definition gamecontext.h:608
char m_aDescription[256+8]
Definition gamecontext.h:607
char m_aClientAddrStr[NETADDR_MAXSTRSIZE]
Definition gamecontext.h:610
Definition gamecontext.h:183
int m_LastWhisperTo
Definition gamecontext.h:186
bool m_IsSpectator
Definition gamecontext.h:184
bool m_IsAfk
Definition gamecontext.h:185
Definition gamecontext.h:178
CUuid m_PrevGameUuid
Definition gamecontext.h:179
Definition protocol.h:1122
Definition protocol.h:1248
Definition protocol.h:1064
Definition protocol.h:1098
Definition protocol.h:1522
Definition protocol.h:1138
Definition protocol.h:1088
Definition protocol.h:1002
Definition protocol.h:1028
Definition protocol.h:1016
Definition protocol.h:1222
Definition protocol.h:1198
Definition protocol.h:1236
Definition protocol.h:1040
Definition protocol.h:1110
Definition protocol.h:423
Definition scoreworker.h:101
Definition gamecontext.h:61
bool ClientId() const
Definition gamecontext.h:69
bool m_Sixup
Definition gamecontext.h:73
CSnapContext(int Version, bool Sixup, int ClientId)
Definition gamecontext.h:62
int GetClientVersion() const
Definition gamecontext.h:67
bool IsSixup() const
Definition gamecontext.h:68
int m_ClientId
Definition gamecontext.h:74
int m_ClientVersion
Definition gamecontext.h:72
Definition uuid_manager.h:17
Definition voting.h:23
Definition types.h:72
constexpr auto NETADDR_MAXSTRSIZE
Definition types.h:51
vector2_base< float > vec2
Definition vmath.h:161
@ VOTE_DESC_LENGTH
Definition voting.h:8
@ VOTE_CMD_LENGTH
Definition voting.h:9
@ VOTE_REASON_LENGTH
Definition voting.h:10