DDraceNetwork Documentation
Loading...
Searching...
No Matches
console.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef ENGINE_SHARED_CONSOLE_H
4#define ENGINE_SHARED_CONSOLE_H
5
6#include "memheap.h"
7
8#include <engine/console.h>
9#include <engine/storage.h>
10
11#include <optional>
12#include <vector>
13
14class CConsole : public IConsole
15{
16 class CCommand : public CCommandInfo
17 {
18 public:
21 bool m_Temp;
24
25 const CCommandInfo *NextCommandInfo(int AccessLevel, int FlagMask) const override;
26
28 };
29
38
41 const char *m_apStrokeStr[2];
43
45 {
46 public:
47 const char *m_pFilename;
49 };
50
54
57
59
60 static void Con_Chain(IResult *pResult, void *pUserData);
61 static void Con_Echo(IResult *pResult, void *pUserData);
62 static void Con_Exec(IResult *pResult, void *pUserData);
63 static void ConCommandAccess(IResult *pResult, void *pUser);
65
66 void ExecuteLineStroked(int Stroke, const char *pStr, int ClientId = -1, bool InterpretSemicolons = true) override;
67
70
73
74 enum
75 {
78 };
79
80 class CResult : public IResult
81 {
82 public:
85
86 const char *m_pCommand;
87 const char *m_apArgs[MAX_PARTS];
88
89 CResult(int ClientId);
90 CResult(const CResult &Other);
91
92 void AddArgument(const char *pArg);
93 void RemoveArgument(unsigned Index) override;
94
95 const char *GetString(unsigned Index) const override;
96 int GetInteger(unsigned Index) const override;
97 float GetFloat(unsigned Index) const override;
98 std::optional<ColorHSLA> GetColor(unsigned Index, float DarkestLighting) const override;
99
100 // DDRace
101
102 enum
103 {
107 };
108
110 void ResetVictim();
111 bool HasVictim() const;
112 void SetVictim(int Victim);
113 void SetVictim(const char *pVictim);
114 int GetVictim() const override;
115 };
116
117 int ParseStart(CResult *pResult, const char *pString, int Length);
118
119 enum
120 {
125 };
126
127 int ParseArgs(CResult *pResult, const char *pFormat, bool IsColor = false);
128
129 /*
130 this function will set pFormat to the next parameter (i,s,r,v,?) it contains and
131 return the parameter; descriptions in brackets like [file] will be skipped;
132 returns '\0' if there is no next parameter; expects pFormat to point at a
133 parameter
134 */
135 char NextParam(const char *&pFormat);
136
146 std::vector<CExecutionQueueEntry> m_vExecutionQueue;
147
149 CCommand *FindCommand(const char *pName, int FlagMask);
150
152
153public:
154 CConsole(int FlagMask);
155 ~CConsole();
156
157 void Init() override;
158 const CCommandInfo *FirstCommandInfo(int AccessLevel, int FlagMask) const override;
159 const CCommandInfo *GetCommandInfo(const char *pName, int FlagMask, bool Temp) override;
160 int PossibleCommands(const char *pStr, int FlagMask, bool Temp, FPossibleCallback pfnCallback, void *pUser) override;
161
162 void ParseArguments(int NumArgs, const char **ppArguments) override;
163 void Register(const char *pName, const char *pParams, int Flags, FCommandCallback pfnFunc, void *pUser, const char *pHelp) override;
164 void RegisterTemp(const char *pName, const char *pParams, int Flags, const char *pHelp) override;
165 void DeregisterTemp(const char *pName) override;
166 void DeregisterTempAll() override;
167 void Chain(const char *pName, FChainCommandCallback pfnChainFunc, void *pUser) override;
168 void StoreCommands(bool Store) override;
169
170 bool LineIsValid(const char *pStr) override;
171 void ExecuteLine(const char *pStr, int ClientId = -1, bool InterpretSemicolons = true) override;
172 void ExecuteLineFlag(const char *pStr, int FlagMask, int ClientId = -1, bool InterpretSemicolons = true) override;
173 bool ExecuteFile(const char *pFilename, int ClientId = -1, bool LogFailure = false, int StorageType = IStorage::TYPE_ALL) override;
174
175 void Print(int Level, const char *pFrom, const char *pStr, ColorRGBA PrintColor = gs_ConsoleDefaultColor) const override;
178 void InitChecksum(CChecksumData *pData) const override;
179
180 void SetAccessLevel(int AccessLevel) override;
181
188 static std::optional<int> AccessLevelToInt(const char *pAccessLevel);
189
196 static const char *AccessLevelToString(int AccessLevel);
197
198 static std::optional<ColorHSLA> ColorParse(const char *pStr, float DarkestLighting);
199
200 // DDRace
201
203
204 bool Cheated() const override { return m_Cheated; }
205
206 int FlagMask() const override { return m_FlagMask; }
207 void SetFlagMask(int FlagMask) override { m_FlagMask = FlagMask; }
208};
209
210#endif
Definition console.h:31
FCommandCallback m_pfnCallback
Definition console.h:34
void * m_pUserData
Definition console.h:36
void * m_pCallbackUserData
Definition console.h:35
FChainCommandCallback m_pfnChainCallback
Definition console.h:33
Definition console.h:17
const CCommandInfo * NextCommandInfo(int AccessLevel, int FlagMask) const override
Definition console.cpp:84
void SetAccessLevel(int AccessLevel)
Definition console.cpp:96
CCommand * m_pNext
Definition console.h:19
void * m_pUserData
Definition console.h:23
bool m_Temp
Definition console.h:21
FCommandCallback m_pfnCallback
Definition console.h:22
int m_Flags
Definition console.h:20
Definition console.h:45
CExecFile * m_pPrev
Definition console.h:48
const char * m_pFilename
Definition console.h:47
Definition console.h:138
CCommand * m_pCommand
Definition console.h:140
CExecutionQueueEntry(CCommand *pCommand, const CResult &Result)
Definition console.h:142
CResult m_Result
Definition console.h:141
Definition console.h:81
float GetFloat(unsigned Index) const override
Definition console.cpp:70
const char * m_apArgs[MAX_PARTS]
Definition console.h:87
void AddArgument(const char *pArg)
Definition console.cpp:42
void RemoveArgument(unsigned Index) override
Definition console.cpp:47
void SetVictim(int Victim)
Definition console.cpp:1140
char m_aStringStorage[CONSOLE_MAX_STR_LENGTH+1]
Definition console.h:83
int m_Victim
Definition console.h:109
char * m_pArgsStart
Definition console.h:84
bool HasVictim() const
Definition console.cpp:1135
void ResetVictim()
Definition console.cpp:1130
int GetVictim() const override
Definition console.cpp:1125
@ VICTIM_ALL
Definition console.h:106
@ VICTIM_ME
Definition console.h:105
@ VICTIM_NONE
Definition console.h:104
std::optional< ColorHSLA > GetColor(unsigned Index, float DarkestLighting) const override
Definition console.cpp:77
const char * m_pCommand
Definition console.h:86
int GetInteger(unsigned Index) const override
Definition console.cpp:63
const char * GetString(unsigned Index) const override
Definition console.cpp:56
Definition console.h:15
static void ConUserCommandStatus(IConsole::IResult *pResult, void *pUser)
Definition console.cpp:823
void ParseArguments(int NumArgs, const char **ppArguments) override
Definition console.cpp:902
const CCommandInfo * FirstCommandInfo(int AccessLevel, int FlagMask) const override
Definition console.cpp:101
~CConsole()
Definition console.cpp:872
void SetFlagMask(int FlagMask) override
Definition console.h:207
void DeregisterTempAll() override
Definition console.cpp:1043
bool m_Cheated
Definition console.h:151
static void Con_Echo(IResult *pResult, void *pUserData)
Definition console.cpp:735
FTeeHistorianCommandCallback m_pfnTeeHistorianCommandCallback
Definition console.h:68
void StoreCommands(bool Store) override
Definition console.cpp:1096
bool Cheated() const override
Definition console.h:204
bool m_StoreCommands
Definition console.h:40
void SetAccessLevel(int AccessLevel) override
Definition console.cpp:416
void Init() override
Definition console.cpp:897
void SetUnknownCommandCallback(FUnknownCommandCallback pfnCallback, void *pUser) override
Definition console.cpp:392
void Register(const char *pName, const char *pParams, int Flags, FCommandCallback pfnFunc, void *pUser, const char *pHelp) override
Definition console.cpp:950
void AddCommandSorted(CCommand *pCommand)
Definition console.cpp:926
CCommand * m_pFirstCommand
Definition console.h:42
void ExecuteLineStroked(int Stroke, const char *pStr, int ClientId=-1, bool InterpretSemicolons=true) override
Definition console.cpp:469
void * m_pUnknownCommandUserdata
Definition console.h:72
static void TraverseChain(FCommandCallback *ppfnCallback, void **ppUserData)
Definition console.cpp:833
static std::optional< int > AccessLevelToInt(const char *pAccessLevel)
Definition console.cpp:112
int m_FlagMask
Definition console.h:39
int ParseStart(CResult *pResult, const char *pString, int Length)
Definition console.cpp:155
const char * m_apStrokeStr[2]
Definition console.h:41
FUnknownCommandCallback m_pfnUnknownCommandCallback
Definition console.h:71
void DeregisterTemp(const char *pName) override
Definition console.cpp:1011
void * m_pTeeHistorianCommandUserdata
Definition console.h:69
int FlagMask() const override
Definition console.h:206
void RegisterTemp(const char *pName, const char *pParams, int Flags, const char *pHelp) override
Definition console.cpp:977
void ExecuteLineFlag(const char *pStr, int FlagMask, int ClientId=-1, bool InterpretSemicolons=true) override
Definition console.cpp:680
CExecFile * m_pFirstExec
Definition console.h:51
int ParseArgs(CResult *pResult, const char *pFormat, bool IsColor=false)
Definition console.cpp:180
static void ConCommandAccess(IResult *pResult, void *pUser)
Definition console.cpp:745
void Chain(const char *pName, FChainCommandCallback pfnChainFunc, void *pUser) override
Definition console.cpp:1071
void ExecuteLine(const char *pStr, int ClientId=-1, bool InterpretSemicolons=true) override
Definition console.cpp:674
CCommand * FindCommand(const char *pName, int FlagMask)
Definition console.cpp:660
@ PARSEARGS_INVALID_INTEGER
Definition console.h:123
@ PARSEARGS_OK
Definition console.h:121
@ PARSEARGS_INVALID_FLOAT
Definition console.h:124
@ PARSEARGS_MISSING_VALUE
Definition console.h:122
bool ExecuteFile(const char *pFilename, int ClientId=-1, bool LogFailure=false, int StorageType=IStorage::TYPE_ALL) override
Definition console.cpp:688
bool LineIsValid(const char *pStr) override
Definition console.cpp:421
static const char * AccessLevelToString(int AccessLevel)
Definition console.cpp:136
void InitChecksum(CChecksumData *pData) const override
Definition console.cpp:398
char NextParam(const char *&pFormat)
Definition console.cpp:314
static void Con_Exec(IResult *pResult, void *pUserData)
Definition console.cpp:740
CCommand * m_pRecycleList
Definition console.h:55
int m_AccessLevel
Definition console.h:53
int PossibleCommands(const char *pStr, int FlagMask, bool Temp, FPossibleCallback pfnCallback, void *pUser) override
Definition console.cpp:643
static std::optional< ColorHSLA > ColorParse(const char *pStr, float DarkestLighting)
Definition console.cpp:1155
IStorage * m_pStorage
Definition console.h:52
const CCommandInfo * GetCommandInfo(const char *pName, int FlagMask, bool Temp) override
Definition console.cpp:1109
void SetTeeHistorianCommandCallback(FTeeHistorianCommandCallback pfnCallback, void *pUser) override
Definition console.cpp:386
static void ConCommandStatus(IConsole::IResult *pResult, void *pUser)
Definition console.cpp:782
void Print(int Level, const char *pFrom, const char *pStr, ColorRGBA PrintColor=gs_ConsoleDefaultColor) const override
Definition console.cpp:372
static void Con_Chain(IResult *pResult, void *pUserData)
Definition console.cpp:1065
CHeap m_TempCommands
Definition console.h:56
@ MAX_PARTS
Definition console.h:77
@ CONSOLE_MAX_STR_LENGTH
Definition console.h:76
std::vector< CExecutionQueueEntry > m_vExecutionQueue
Definition console.h:146
Definition memheap.h:11
Definition color.h:198
Definition console.h:73
Definition console.h:47
Definition console.h:18
static bool EmptyUnknownCommandCallback(const char *pCommand, void *pUser)
Definition console.h:96
bool(* FUnknownCommandCallback)(const char *pCommand, void *pUser)
Definition console.h:93
void(* FChainCommandCallback)(IResult *pResult, void *pUserData, FCommandCallback pfnCallback, void *pCallbackUserData)
Definition console.h:92
void(* FPossibleCallback)(int Index, const char *pCmd, void *pUser)
Definition console.h:90
void(* FCommandCallback)(IResult *pResult, void *pUserData)
Definition console.h:91
void(* FTeeHistorianCommandCallback)(int ClientId, int FlagMask, const char *pCmd, IResult *pResult, void *pUser)
Definition console.h:89
Definition storage.h:21
@ TYPE_ALL
Definition storage.h:27
Definition vmath.h:15
static constexpr ColorRGBA gs_ConsoleDefaultColor(1, 1, 1, 1)
Definition checksum.h:7