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 GAME_CLIENT_COMPONENTS_CONSOLE_H
4#define GAME_CLIENT_COMPONENTS_CONSOLE_H
5
6#include <base/lock.h>
7
8#include <engine/console.h>
10
13#include <game/client/ui.h>
14
15enum
16{
21};
22
23class CConsoleLogger;
24
26{
27 friend class CConsoleLogger;
29 {
30 public:
44
46 const char *m_pName;
47 int m_Type;
51
52 STextBoundingBox m_BoundingBox = {0.0f, 0.0f, 0.0f, 0.0f};
53 float m_LastInputHeight = 0.0f;
54
55 bool m_MouseIsPress = false;
56 vec2 m_MousePress = vec2(0.0f, 0.0f);
57 vec2 m_MouseRelease = vec2(0.0f, 0.0f);
59 int m_CurSelEnd = 0;
60 bool m_HasSelection = false;
62
64
75
76 char m_aUser[64];
79
81 const char *m_pCommandName;
82 const char *m_pCommandHelp;
83 const char *m_pCommandParams;
84
85 bool m_Searching = false;
98 std::vector<SSearchMatch> m_vSearchMatches;
99
100 CInstance(int t);
102
106 void ClearHistory();
107 void Reset();
108
109 void ExecuteLine(const char *pLine);
110
111 bool OnInput(const IInput::CEvent &Event);
114 void ScrollToCenter(int StartLine, int EndLine);
116
117 const char *GetString() const { return m_Input.GetString(); }
130 void GetCommand(const char *pInput, char (&aCmd)[IConsole::CMDLINE_LENGTH]);
131 static void PossibleCommandsCompleteCallback(int Index, const char *pStr, void *pUser);
132 static void PossibleArgumentsCompleteCallback(int Index, const char *pStr, void *pUser);
133
134 void UpdateEntryTextAttributes(CBacklogEntry *pEntry) const;
135
136 private:
137 void SetSearching(bool Searching);
138 void ClearSearch();
139 void UpdateSearch();
140
141 friend class CGameConsole;
142 };
143
146
149
152
157
160
161 static inline constexpr ColorRGBA ms_SearchHighlightColor = ColorRGBA(1.0f, 0.0f, 0.0f, 1.0f);
162 static inline constexpr ColorRGBA ms_SearchSelectedColor = ColorRGBA(1.0f, 1.0f, 0.0f, 1.0f);
163
165
166 static void PossibleCommandsRenderCallback(int Index, const char *pStr, void *pUser);
178
179public:
180 enum
181 {
185 };
186
187 CGameConsole();
189 int Sizeof() const override { return sizeof(*this); }
190
191 void PrintLine(int Type, const char *pLine);
192 void RequireUsername(bool UsernameReq);
193
194 void OnStateChange(int NewState, int OldState) override;
195 void OnConsoleInit() override;
196 void OnInit() override;
197 void OnReset() override;
198 void OnRender() override;
199 void OnMessage(int MsgType, void *pRawMsg) override;
200 bool OnInput(const IInput::CEvent &Event) override;
201 void Prompt(char (&aPrompt)[32]);
202
203 void Toggle(int Type);
204 bool IsActive() const { return m_ConsoleState != CONSOLE_CLOSED; }
205};
206#endif
Definition component.h:165
Definition console.cpp:34
Definition console.h:29
int m_BacklogCurLine
Definition console.h:48
bool m_HasSelection
Definition console.h:60
int m_CompletionCommandEnd
Definition console.h:74
int m_CurSelEnd
Definition console.h:59
const char * m_pCommandHelp
Definition console.h:82
void ExecuteLine(const char *pLine)
Definition console.cpp:301
CGameConsole * m_pGameConsole
Definition console.h:63
void GetCommand(const char *pInput, char(&aCmd)[IConsole::CMDLINE_LENGTH])
Definition console.cpp:358
bool m_IsCommand
Definition console.h:80
void UpdateBacklogTextAttributes()
Definition console.cpp:248
void Dump() REQUIRES(!m_BacklogPendingLock)
Definition console.cpp:871
void Init(CGameConsole *pGameConsole)
Definition console.cpp:229
bool m_MouseIsPress
Definition console.h:55
char m_aCompletionBufferArgument[IConsole::CMDLINE_LENGTH]
Definition console.h:67
int m_CompletionChosen
Definition console.h:66
bool m_Searching
Definition console.h:85
static void PossibleArgumentsCompleteCallback(int Index, const char *pStr, void *pUser)
Definition console.cpp:384
int m_CompletionChosenArgument
Definition console.h:68
CStaticRingBuffer< CBacklogEntry, 1024 *1024, CRingBufferBase::FLAG_RECYCLE > m_Backlog
Definition console.h:39
bool m_UsernameReq
Definition console.h:78
const char * m_pCommandName
Definition console.h:81
void UpdateEntryTextAttributes(CBacklogEntry *pEntry) const
Definition console.cpp:728
const char * m_pCommandParams
Definition console.h:83
void ClearHistory()
Definition console.cpp:285
std::vector< SSearchMatch > m_vSearchMatches
Definition console.h:98
char m_aCompletionBuffer[IConsole::CMDLINE_LENGTH]
Definition console.h:65
int m_CompletionFlagmask
Definition console.h:69
int m_CurSelStart
Definition console.h:58
STextBoundingBox m_BoundingBox
Definition console.h:52
int m_Type
Definition console.h:47
void SetSearching(bool Searching)
Definition console.cpp:741
int m_NewLineCounter
Definition console.h:61
const char * m_pName
Definition console.h:46
CLock m_BacklogPendingLock
Definition console.h:40
float m_LastInputHeight
Definition console.h:53
CStaticRingBuffer< char, 64 *1024, CRingBufferBase::FLAG_RECYCLE > m_History
Definition console.h:42
static void PossibleCommandsCompleteCallback(int Index, const char *pStr, void *pUser)
Definition console.cpp:344
CStaticRingBuffer< CBacklogEntry, 1024 *1024, CRingBufferBase::FLAG_RECYCLE > m_BacklogPending GUARDED_BY(m_BacklogPendingLock)
bool OnInput(const IInput::CEvent &Event)
Definition console.cpp:400
void Reset()
Definition console.cpp:291
void ScrollToCenter(int StartLine, int EndLine)
Definition console.cpp:708
int m_BacklogLastActiveLine
Definition console.h:49
vec2 m_MousePress
Definition console.h:56
int m_CurrentMatchIndex
Definition console.h:96
const char * GetString() const
Definition console.h:117
int m_CompletionCommandStart
Definition console.h:73
float m_CompletionRenderOffsetChange
Definition console.h:71
void UpdateSearch()
Definition console.cpp:766
char * m_pHistoryEntry
Definition console.h:43
float m_CompletionRenderOffset
Definition console.h:70
int GetLinesToScroll(int Direction, int LinesToScroll)
Definition console.cpp:683
char m_aUser[64]
Definition console.h:76
void ClearSearch()
Definition console.cpp:758
int m_CompletionArgumentPosition
Definition console.h:72
bool m_UserGot
Definition console.h:77
vec2 m_MouseRelease
Definition console.h:57
void PrintLine(const char *pLine, int Len, ColorRGBA PrintColor) REQUIRES(!m_BacklogPendingLock)
Definition console.cpp:670
void PumpBacklogPending() REQUIRES(!m_BacklogPendingLock)
Definition console.cpp:257
int m_LinesRendered
Definition console.h:50
char m_aCurrentSearchString[IConsole::CMDLINE_LENGTH]
Definition console.h:97
void ClearBacklog() REQUIRES(!m_BacklogPendingLock)
Definition console.cpp:234
CLineInputBuffered< IConsole::CMDLINE_LENGTH > m_Input
Definition console.h:45
Definition console.h:26
void Prompt(char(&aPrompt)[32])
Definition console.cpp:1010
void OnRender() override
Definition console.cpp:1037
void OnInit() override
Definition console.cpp:1655
static void ConConsolePageDown(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1583
void Toggle(int Type)
Definition console.cpp:1509
bool OnInput(const IInput::CEvent &Event) override
Definition console.cpp:1490
int m_ConsoleType
Definition console.h:153
CUi::CTouchState m_TouchState
Definition console.h:159
float m_StateChangeDuration
Definition console.h:156
CInstance m_RemoteConsole
Definition console.h:148
CConsoleLogger * m_pConsoleLogger
Definition console.h:145
~CGameConsole()
Definition console.cpp:906
static void PossibleCommandsRenderCallback(int Index, const char *pStr, void *pUser)
Definition console.cpp:961
static void ConClearLocalConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1556
int m_ConsoleState
Definition console.h:154
static void ConConsolePageBottom(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1599
static void ConchainConsoleOutputLevel(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition console.cpp:1606
void PrintLine(int Type, const char *pLine)
Definition console.cpp:1625
static void ConToggleRemoteConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1551
@ CONSOLETYPE_LOCAL
Definition console.h:182
@ CONSOLETYPE_REMOTE
Definition console.h:183
@ NUM_CONSOLETYPES
Definition console.h:184
static constexpr ColorRGBA ms_SearchHighlightColor
Definition console.h:161
CInstance * ConsoleForType(int ConsoleType)
Definition console.cpp:912
static void ConDumpLocalConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1566
bool m_WantsSelectionCopy
Definition console.h:158
float m_StateChangeEnd
Definition console.h:155
void OnMessage(int MsgType, void *pRawMsg) override
Definition console.cpp:1486
static void ConConsolePageUp(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1576
CGameConsole()
Definition console.cpp:895
static void ConDumpRemoteConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1571
class IConsole * m_pConsole
Definition console.h:144
void OnReset() override
Definition console.cpp:924
void OnStateChange(int NewState, int OldState) override
Definition console.cpp:1667
static void ConConsolePageTop(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1592
static void ConToggleLocalConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1546
CInstance * CurrentConsole()
Definition console.cpp:919
CInstance m_LocalConsole
Definition console.h:147
void RequireUsername(bool UsernameReq)
Definition console.cpp:1616
int PossibleMaps(const char *pStr, IConsole::FPossibleCallback pfnCallback=IConsole::EmptyPossibleCommandCallback, void *pUser=nullptr)
Definition console.cpp:929
void OnConsoleInit() override
Definition console.cpp:1633
int Sizeof() const override
Definition console.h:189
bool IsActive() const
Definition console.h:204
static constexpr ColorRGBA ms_SearchSelectedColor
Definition console.h:162
static void ConClearRemoteConsole(IConsole::IResult *pResult, void *pUserData)
Definition console.cpp:1561
const char * GetString() const
Definition lineinput.h:133
Definition lock.h:90
Definition ui.h:341
Definition color.h:198
Definition console.h:47
Definition console.h:18
static void EmptyPossibleCommandCallback(int Index, const char *pCmd, void *pUser)
Definition console.h:95
void(* FPossibleCallback)(int Index, const char *pCmd, void *pUser)
Definition console.h:90
void(* FCommandCallback)(IResult *pResult, void *pUserData)
Definition console.h:91
@ CMDLINE_LENGTH
Definition console.h:37
Definition input.h:22
Definition input.h:18
Definition vmath.h:15
@ CONSOLE_OPEN
Definition console.h:19
@ CONSOLE_OPENING
Definition console.h:18
@ CONSOLE_CLOSING
Definition console.h:20
@ CONSOLE_CLOSED
Definition console.h:17
#define REQUIRES(...)
Definition lock.h:34
Direction
Definition nameplates.cpp:179
float m_YOffset
Definition console.h:33
int m_LineCount
Definition console.h:34
size_t m_Length
Definition console.h:36
ColorRGBA m_PrintColor
Definition console.h:35
char m_aText[1]
Definition console.h:37
int m_Pos
Definition console.h:88
int m_EndLine
Definition console.h:90
int m_EntryLine
Definition console.h:91
SSearchMatch(int Pos, int StartLine, int EndLine, int EntryLine)
Definition console.h:93
int m_StartLine
Definition console.h:89
Definition textrender.h:178
vector2_base< float > vec2
Definition vmath.h:161