Plasma Engine  2.0
Loading...
Searching...
No Matches
QuakeConsole.h
1#pragma once
2
3#include <Core/Console/Console.h>
4
6
15class PL_CORE_DLL plQuakeConsole final : public plConsole
16{
17public:
19 virtual ~plQuakeConsole();
20
21
22
25
27 void SetMaxConsoleStrings(plUInt32 uiMax) { m_uiMaxConsoleStrings = plMath::Clamp<plUInt32>(uiMax, 0, 100000); }
28
30 plUInt32 GetMaxConsoleStrings() const { return m_uiMaxConsoleStrings; }
31
33 virtual void EnableLogOutput(bool bEnable);
34
36 virtual void SaveState(plStreamWriter& inout_stream) const;
37
39 virtual void LoadState(plStreamReader& inout_stream);
40
42
45
46
47
49 virtual void ExecuteCommand(plStringView sInput) override;
50
58 void BindKey(plStringView sKey, plStringView sCommand);
59
61 void UnbindKey(plStringView sKey);
62
64 void ExecuteBoundKey(plStringView sKey);
65
67
70
75 void AddInputCharacter(plUInt32 uiChar);
76
78 void ClearInputLine();
79
81 plStringView GetInputLine() const { return m_sInputLine; }
82
84 plInt32 GetCaretPosition() const { return m_iCaretPosition; }
85
87 void MoveCaret(plInt32 iMoveOffset);
88
90 void DeleteNextCharacter();
91
93 void Scroll(plInt32 iLines);
94
96 plUInt32 GetScrollPosition() const { return m_iScrollPosition; }
97
109 virtual void DoDefaultInputHandling(bool bConsoleOpen);
110
112
115
117 virtual void AddConsoleString(plStringView sText, plConsoleString::Type type = plConsoleString::Type::Default) override;
118
120 const plDeque<plConsoleString>& GetConsoleStrings() const;
121
123 void ClearConsoleStrings();
124
125
127
130
131
133 static plString GetFullInfoAsString(plCVar* pCVar);
134
136 static const plString GetValueAsString(plCVar* pCVar);
137
139
140protected:
142 void RemoveCharacter(plUInt32 uiInputLinePosition);
143
145 void ClampCaretPosition();
146
147
149 void LogHandler(const plLoggingEventData& data);
150
151 plInt32 m_iCaretPosition;
152 plStringBuilder m_sInputLine;
153
154 virtual bool ProcessInputCharacter(plUInt32 uiChar);
155 virtual bool FilterInputCharacter(plUInt32 uiChar);
156 virtual void InputStringChanged();
157
158 plDeque<plConsoleString> m_ConsoleStrings;
159 bool m_bUseFilteredStrings = false;
160 plDeque<plConsoleString> m_FilteredConsoleStrings;
161 plUInt32 m_uiMaxConsoleStrings;
162 plInt32 m_iScrollPosition;
163 bool m_bLogOutputEnabled;
164 bool m_bDefaultInputHandlingInitialized;
165
166
167 plMap<plString, plString> m_BoundKeys;
168};
CVars are global variables that are used for configuring the engine.
Definition CVar.h:109
Definition Console.h:78
virtual void AddConsoleString(plStringView sText, plConsoleString::Type type=plConsoleString::Type::Default)
Adds a string to the console.
Definition Console.cpp:336
virtual void ExecuteCommand(plStringView sInput)
Executes the given input string.
Definition Console.cpp:312
Definition Deque.h:270
Definition Map.h:408
A Quake-style console for in-game configuration of plCVar and plConsoleFunction.
Definition QuakeConsole.h:16
plStringView GetInputLine() const
Returns the current content of the input line.
Definition QuakeConsole.h:81
plUInt32 GetMaxConsoleStrings() const
Returns how many strings the console will keep in memory at maximum.
Definition QuakeConsole.h:30
plUInt32 GetScrollPosition() const
Returns the current scroll position. This must be used during rendering to start with the proper line...
Definition QuakeConsole.h:96
plInt32 GetCaretPosition() const
Returns the position (in characters) of the caret.
Definition QuakeConsole.h:84
void SetMaxConsoleStrings(plUInt32 uiMax)
Adjusts how many strings the console will keep in memory at maximum.
Definition QuakeConsole.h:27
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
constexpr PL_ALWAYS_INLINE T Clamp(T value, T min_val, T max_val)
Clamps "value" to the range [min; max]. Returns "value", if it is inside the range already.
Definition Math_inl.h:51
The data that is sent through plLogInterface.
Definition Log.h:50