DDNet documentation
Loading...
Searching...
No Matches
editor_server_settings.h
Go to the documentation of this file.
1#ifndef GAME_EDITOR_EDITOR_SERVER_SETTINGS_H
2#define GAME_EDITOR_EDITOR_SERVER_SETTINGS_H
3
4#include "component.h"
5#include "editor_ui.h"
6
7#include <base/str.h>
8
9#include <map>
10#include <string>
11#include <vector>
12
13class CEditor;
14struct SMapSettingInt;
16struct IMapSetting;
17class CLineInput;
18
20{
21 char m_aCommand[256];
22
23 CEditorMapSetting(const char *pCommand)
24 {
25 str_copy(m_aCommand, pCommand);
26 }
27};
28
29// A parsed map setting argument, storing the name and the type
30// Used for validation and to display arguments names
32{
33 char m_aName[32];
34 char m_Type;
35};
36
37// An argument for the current setting
39{
40 char m_aValue[256]; // Value of the argument
41 float m_X; // The X position
42 size_t m_Start; // Start offset within the input string
43 size_t m_End; // End offset within the input string
44 bool m_Error; // If the argument is wrong or not
45 char m_ExpectedType; // The expected type
46};
47
49{
50 const char *m_pValue; // Possible value string
51 int m_ArgIndex; // Argument for that possible value
52 const void *m_pData; // Generic pointer to pass specific data
53};
54
72
74{
75 enum
76 {
77 TYPE_INVALID = 1 << 0,
79 };
80 int m_Index; // Index of the command in the loaded map settings list
81 char m_aSetting[256]; // String of the setting
82 int m_Type; // Type of that invalid setting
83 int m_CollidingIndex; // The colliding line index in case type is TYPE_DUPLICATE
84 bool m_Unknown; // Is the command unknown
85
86 struct SContext
87 {
88 bool m_Fixed;
92
93 SInvalidSetting(int Index, const char *pSetting, int Type, int CollidingIndex, bool Unknown) :
94 m_Index(Index), m_Type(Type), m_CollidingIndex(CollidingIndex), m_Unknown(Unknown), m_Context()
95 {
96 str_copy(m_aSetting, pSetting);
97 }
98};
99
100// --------------------------------------
101// Builder classes & methods to generate list of possible values
102// easily for specific settings and arguments.
103// It uses a container stored inside CMapSettingsBackend.
104// Usage:
105// CValuesBuilder Builder(&m_Container);
106// // Either do it in one go:
107// Builder("tune").Argument(0).Add("value_1").Add("value_2");
108// // Or reference the builder (useful when using in a loop):
109// auto TuneBuilder = Builder("tune").Argument(0);
110// TuneBuilder.Add("value_1");
111// TuneBuilder.Add("value_2");
112// // ...
113
114using TArgumentValuesList = std::vector<const char *>; // List of possible values
115using TSettingValues = std::map<int, TArgumentValuesList>; // Possible values per argument
116using TSettingsArgumentValues = std::map<std::string, TSettingValues>; // Possible values per argument, per command/setting name
117
118class CValuesBuilder;
121{
122public:
123 CArgumentValuesListBuilder &Add(const char *pString)
124 {
125 m_pContainer->emplace_back(pString);
126 return *this;
127 }
128
129private:
130 CArgumentValuesListBuilder(std::vector<const char *> *pContainer) :
131 m_pContainer(pContainer) {}
132
133 std::vector<const char *> *m_pContainer;
135};
136
138{
139public:
141 {
143 }
144
145private:
147 m_pContainer(pContainer) {}
148
149 friend class CValuesBuilder;
151};
152
154{
155public:
157 m_pContainer(pContainer)
158 {
159 }
160
161 CSettingValuesBuilder operator()(const char *pSettingName) const
162 {
163 return CSettingValuesBuilder(&(*m_pContainer)[pSettingName]);
164 }
165
166private:
168};
169
170// --------------------------------------
171
173{
174 static void LoadTuneValues(const CSettingValuesBuilder &TuneBuilder);
175 static void LoadTuneZoneValues(const CSettingValuesBuilder &TuneZoneBuilder);
176 static void LoadMapBugs(const CSettingValuesBuilder &BugBuilder);
177 static void LoadArgumentTuneValues(CArgumentValuesListBuilder &&ArgBuilder);
178};
179
188
195
197{
198 typedef void (*FLoaderFunction)(const CSettingValuesBuilder &);
199
200public:
201 // General methods
203
204 void OnInit(CEditor *pEditor) override;
205 void OnMapLoad() override;
206
207 // Constraints methods
208 enum class EArgConstraint
209 {
213 };
214
215 EArgConstraint ArgConstraint(const char *pSettingName, int Arg) const
216 {
217 return m_ArgConstraintsPerCommand.at(pSettingName).at(Arg);
218 }
219
220 // Backend methods
221 const std::vector<SParsedMapSettingArg> &ParsedArgs(const std::shared_ptr<IMapSetting> &pSetting) const
222 {
223 return m_ParsedCommandArgs.at(pSetting);
224 }
225
226 // CContext
228 {
229 static constexpr ColorRGBA ms_ArgumentStringColor = ColorRGBA(84.0f / 255.0f, 1.0f, 1.0f, 1.0f);
230 static constexpr ColorRGBA ms_ArgumentNumberColor = ColorRGBA(0.1f, 0.9f, 0.05f, 1.0f);
231 static constexpr ColorRGBA ms_ArgumentUnknownColor = ColorRGBA(0.6f, 0.6f, 0.6f, 1.0f);
232 static constexpr ColorRGBA ms_CommentColor = ColorRGBA(0.5f, 0.5f, 0.5f, 1.0f);
233 static constexpr ColorRGBA ms_ErrorColor = ColorRGBA(240.0f / 255.0f, 70.0f / 255.0f, 70.0f / 255.0f, 1.0f);
234
236
237 public:
238 bool CommandIsValid() const { return m_pCurrentSetting != nullptr; }
239 int CurrentArg() const { return m_CursorArgIndex; }
240 const char *CurrentArgName() const { return (!m_pCurrentSetting || m_CursorArgIndex < 0 || m_CursorArgIndex >= (int)m_pBackend->m_ParsedCommandArgs.at(m_pCurrentSetting).size()) ? nullptr : m_pBackend->m_ParsedCommandArgs.at(m_pCurrentSetting).at(m_CursorArgIndex).m_aName; }
242 size_t CurrentArgOffset() const { return m_CursorArgIndex == -1 ? 0 : m_vCurrentArgs[m_CursorArgIndex].m_Start; }
243 const char *CurrentArgValue() const { return m_CursorArgIndex == -1 ? m_aCommand : m_vCurrentArgs[m_CursorArgIndex].m_aValue; }
244 const std::vector<SPossibleValueMatch> &PossibleMatches() const { return m_vPossibleMatches; }
245 bool HasError() const { return m_Error.m_aMessage[0] != '\0'; }
246 size_t ErrorOffset() const { return m_Error.m_ArgIndex < 0 ? 0 : m_vCurrentArgs.at(m_Error.m_ArgIndex).m_Start; }
247 const char *Error() const { return m_Error.m_aMessage; }
248 int ArgCount() const { return (int)m_vCurrentArgs.size(); }
249 const SCurrentSettingArg &Arg(int Index) const { return m_vCurrentArgs.at(Index); }
250 const std::shared_ptr<IMapSetting> &Setting() const { return m_pCurrentSetting; }
251 CLineInput *LineInput() const { return m_pLineInput; }
252 void SetFontSize(float FontSize) { m_FontSize = FontSize; }
253 int CommentOffset() const { return m_CommentOffset; }
254
255 int CheckCollision(ECollisionCheckResult &Result) const;
256 int CheckCollision(const std::vector<CEditorMapSetting> &vSettings, ECollisionCheckResult &Result) const;
257 int CheckCollision(const char *pInputString, const std::vector<CEditorMapSetting> &vSettings, ECollisionCheckResult &Result) const;
258
259 void Update();
260 void UpdateFromString(const char *pStr);
261 bool UpdateCursor(bool Force = false);
262 void Reset();
263 void GetCommandHelpText(char *pStr, int Length) const;
264 bool Valid() const;
265 void ColorArguments(std::vector<STextColorSplit> &vColorSplits) const;
266
270
271 private:
272 // Methods
273 CContext(CMapSettingsBackend *pMaster, CLineInput *pLineinput) :
274 m_DropdownContext(), m_pLineInput(pLineinput), m_pBackend(pMaster)
275 {
277 Reset();
278 }
279
280 void ClearError();
281 EValidationResult ValidateArg(int Index, const char *pArg);
283 void ParseArgs(const char *pLineInputStr, const char *pStr);
284 bool OnInput(const IInput::CEvent &Event);
285 const char *InputString() const;
286
287 template<int N>
288 void FormatDisplayValue(const char *pValue, char (&aOut)[N]);
289
290 // Fields
291 std::shared_ptr<IMapSetting> m_pCurrentSetting; // Current setting, can be nullptr in case of invalid setting name
292 std::vector<SCurrentSettingArg> m_vCurrentArgs; // Current parsed arguments from lineinput string
293 int m_CursorArgIndex; // The current argument the cursor is over
294 std::vector<SPossibleValueMatch> m_vPossibleMatches; // The current matches from cursor argument
295 size_t m_LastCursorOffset; // Last cursor offset
297 char m_aCommand[128]; // The current command, not necessarily valid
299 int m_CommentOffset; // Position of the comment, if there is one
300
304 };
305
307 {
308 return CContext(this, pLineInput);
309 }
310
311private:
312 // Loader methods
313 void LoadAllMapSettings();
314 void LoadCommand(const char *pName, const char *pArgs, const char *pHelp);
315 void LoadSettingInt(const std::shared_ptr<SMapSettingInt> &pSetting);
316 void LoadSettingCommand(const std::shared_ptr<SMapSettingCommand> &pSetting);
317 void InitValueLoaders();
318 void LoadPossibleValues(const CSettingValuesBuilder &Builder, const std::shared_ptr<IMapSetting> &pSetting);
319 void RegisterLoader(const char *pSettingName, const FLoaderFunction &pfnLoader);
320 void LoadConstraints();
321
322 static void PossibleConfigVariableCallback(const struct SConfigVariable *pVariable, void *pUserData);
323
324 // Argument constraints
325 using TArgumentConstraints = std::map<int, EArgConstraint>; // Constraint per argument index
326 using TCommandArgumentConstraints = std::map<std::string, TArgumentConstraints>; // Constraints per command/setting name
327
328 // Argument constraints builder
329 // Used to define arguments constraints for specific commands
330 // It uses a container stored in CMapSettingsBackend.
331 // Usage:
332 // CCommandArgumentConstraintBuilder Command(&m_Container);
333 // Command("tune", 2).Unique(0); // Defines argument 0 of command "tune" having 2 args as UNIQUE
334 // Command("tune_zone", 3).Multiple(0).Unique(1);
335 // // ^ Multiple() currently is only for readable purposes. It can be omitted:
336 // // Command("tune_zone", 3).Unique(1);
337 //
338
340
342 {
344
345 private:
348
350
351 public:
353 {
354 // Define a multiple argument constraint
355 (*m_pContainer)[Arg] = EArgConstraint::MULTIPLE;
356 return *this;
357 }
358
360 {
361 // Define a unique argument constraint
362 (*m_pContainer)[Arg] = EArgConstraint::UNIQUE;
363 return *this;
364 }
365 };
366
368 {
369 public:
372
373 CArgumentConstraintsBuilder operator()(const char *pSettingName, int ArgCount)
374 {
375 for(int i = 0; i < ArgCount; i++)
376 (*m_pContainer)[pSettingName][i] = EArgConstraint::DEFAULT;
377 return CArgumentConstraintsBuilder(&(*m_pContainer)[pSettingName]);
378 }
379
380 private:
382 };
383
385
386 // Backend fields
387 std::vector<std::shared_ptr<IMapSetting>> m_vpMapSettings;
388 std::map<std::shared_ptr<IMapSetting>, std::vector<SParsedMapSettingArg>> m_ParsedCommandArgs; // Parsed available settings arguments, used for validation
390 std::map<std::string, FLoaderFunction> m_LoaderFunctions;
391
392 friend class CEditor;
393
394 // Map settings validation on load
396 {
397 std::vector<SInvalidSetting> m_vSettingsInvalid;
398 std::vector<CEditorMapSetting> m_vSettingsValid;
399 std::map<int, std::vector<int>> m_SettingsDuplicate;
400
402
403 void Reset()
404 {
405 m_vSettingsInvalid.clear();
406 m_vSettingsValid.clear();
407 m_SettingsDuplicate.clear();
408 }
409
411};
412
413#endif
Definition editor_server_settings.h:121
std::vector< const char * > * m_pContainer
Definition editor_server_settings.h:133
friend class CSettingValuesBuilder
Definition editor_server_settings.h:134
CArgumentValuesListBuilder(std::vector< const char * > *pContainer)
Definition editor_server_settings.h:130
CArgumentValuesListBuilder & Add(const char *pString)
Definition editor_server_settings.h:123
Definition component.h:13
Definition editor.h:109
Definition lineinput.h:25
Definition editor_server_settings.h:342
CArgumentConstraintsBuilder & Unique(int Arg)
Definition editor_server_settings.h:359
CArgumentConstraintsBuilder(TArgumentConstraints *pContainer)
Definition editor_server_settings.h:346
friend class CCommandArgumentConstraintBuilder
Definition editor_server_settings.h:343
CArgumentConstraintsBuilder & Multiple(int Arg)
Definition editor_server_settings.h:352
TArgumentConstraints * m_pContainer
Definition editor_server_settings.h:349
Definition editor_server_settings.h:368
CArgumentConstraintsBuilder operator()(const char *pSettingName, int ArgCount)
Definition editor_server_settings.h:373
TCommandArgumentConstraints * m_pContainer
Definition editor_server_settings.h:381
CCommandArgumentConstraintBuilder(TCommandArgumentConstraints *pContainer)
Definition editor_server_settings.h:370
Definition editor_server_settings.h:228
int CommentOffset() const
Definition editor_server_settings.h:253
const char * InputString() const
Definition editor_server_settings.cpp:1785
CContext(CMapSettingsBackend *pMaster, CLineInput *pLineinput)
Definition editor_server_settings.h:273
static constexpr ColorRGBA ms_ArgumentUnknownColor
Definition editor_server_settings.h:231
static constexpr ColorRGBA ms_ErrorColor
Definition editor_server_settings.h:233
void GetCommandHelpText(char *pStr, int Length) const
Definition editor_server_settings.cpp:2063
void UpdatePossibleMatches()
Definition editor_server_settings.cpp:1658
SCommandParseError m_Error
Definition editor_server_settings.h:298
bool CommandIsValid() const
Definition editor_server_settings.h:238
std::vector< SCurrentSettingArg > m_vCurrentArgs
Definition editor_server_settings.h:292
void Update()
Definition editor_server_settings.cpp:1214
int m_CurrentCompletionIndex
Definition editor_server_settings.h:269
int m_CursorArgIndex
Definition editor_server_settings.h:293
static constexpr ColorRGBA ms_ArgumentStringColor
Definition editor_server_settings.h:229
std::vector< SPossibleValueMatch > m_vPossibleMatches
Definition editor_server_settings.h:294
void Reset()
Definition editor_server_settings.cpp:1196
int m_CommentOffset
Definition editor_server_settings.h:299
CLineInput * m_pLineInput
Definition editor_server_settings.h:296
int ArgCount() const
Definition editor_server_settings.h:248
bool HasError() const
Definition editor_server_settings.h:245
static constexpr ColorRGBA ms_CommentColor
Definition editor_server_settings.h:232
const char * CurrentArgValue() const
Definition editor_server_settings.h:243
size_t ErrorOffset() const
Definition editor_server_settings.h:246
EValidationResult ValidateArg(int Index, const char *pArg)
Definition editor_server_settings.cpp:1601
size_t m_LastCursorOffset
Definition editor_server_settings.h:295
bool m_AllowUnknownCommands
Definition editor_server_settings.h:267
static constexpr ColorRGBA ms_ArgumentNumberColor
Definition editor_server_settings.h:230
void FormatDisplayValue(const char *pValue, char(&aOut)[N])
Definition editor_server_settings.cpp:2072
void SetFontSize(float FontSize)
Definition editor_server_settings.h:252
const SCurrentSettingArg & Arg(int Index) const
Definition editor_server_settings.h:249
void ClearError()
Definition editor_server_settings.cpp:1536
CLineInput * LineInput() const
Definition editor_server_settings.h:251
float CurrentArgPos() const
Definition editor_server_settings.h:241
const std::vector< SPossibleValueMatch > & PossibleMatches() const
Definition editor_server_settings.h:244
int CheckCollision(ECollisionCheckResult &Result) const
Definition editor_server_settings.cpp:1839
friend class CMapSettingsBackend
Definition editor_server_settings.h:235
void UpdateFromString(const char *pStr)
Definition editor_server_settings.cpp:1219
size_t CurrentArgOffset() const
Definition editor_server_settings.h:242
bool OnInput(const IInput::CEvent &Event)
Definition editor_server_settings.cpp:1757
const char * CurrentArgName() const
Definition editor_server_settings.h:240
const std::shared_ptr< IMapSetting > & Setting() const
Definition editor_server_settings.h:250
void ColorArguments(std::vector< STextColorSplit > &vColorSplits) const
Definition editor_server_settings.cpp:1792
bool Valid() const
Definition editor_server_settings.cpp:2032
std::shared_ptr< IMapSetting > m_pCurrentSetting
Definition editor_server_settings.h:291
bool UpdateCursor(bool Force=false)
Definition editor_server_settings.cpp:1542
std::string m_CompositionStringBuffer
Definition editor_server_settings.h:302
char m_aCommand[128]
Definition editor_server_settings.h:297
float m_FontSize
Definition editor_server_settings.h:303
SEditBoxDropdownContext m_DropdownContext
Definition editor_server_settings.h:268
void ParseArgs(const char *pLineInputStr, const char *pStr)
Definition editor_server_settings.cpp:1285
const char * Error() const
Definition editor_server_settings.h:247
int CurrentArg() const
Definition editor_server_settings.h:239
CMapSettingsBackend * m_pBackend
Definition editor_server_settings.h:301
void LoadSettingCommand(const std::shared_ptr< SMapSettingCommand > &pSetting)
Definition editor_server_settings.cpp:1107
std::map< int, EArgConstraint > TArgumentConstraints
Definition editor_server_settings.h:325
void LoadSettingInt(const std::shared_ptr< SMapSettingInt > &pSetting)
Definition editor_server_settings.cpp:1098
void RegisterLoader(const char *pSettingName, const FLoaderFunction &pfnLoader)
Definition editor_server_settings.cpp:1159
TSettingsArgumentValues m_PossibleValuesPerCommand
Definition editor_server_settings.h:389
CContext NewContext(CLineInput *pLineInput)
Definition editor_server_settings.h:306
void InitValueLoaders()
Definition editor_server_settings.cpp:2158
friend class CEditor
Definition editor_server_settings.h:392
void LoadCommand(const char *pName, const char *pArgs, const char *pHelp)
Definition editor_server_settings.cpp:1093
CMapSettingsBackend()=default
std::map< std::string, TArgumentConstraints > TCommandArgumentConstraints
Definition editor_server_settings.h:326
std::map< std::shared_ptr< IMapSetting >, std::vector< SParsedMapSettingArg > > m_ParsedCommandArgs
Definition editor_server_settings.h:388
void OnInit(CEditor *pEditor) override
Definition editor_server_settings.cpp:1048
static void PossibleConfigVariableCallback(const struct SConfigVariable *pVariable, void *pUserData)
Definition editor_server_settings.cpp:1180
std::map< std::string, FLoaderFunction > m_LoaderFunctions
Definition editor_server_settings.h:390
std::vector< std::shared_ptr< IMapSetting > > m_vpMapSettings
Definition editor_server_settings.h:387
void LoadConstraints()
Definition editor_server_settings.cpp:1165
void(* FLoaderFunction)(const CSettingValuesBuilder &)
Definition editor_server_settings.h:198
void OnMapLoad() override
Definition editor_server_settings.cpp:2086
TCommandArgumentConstraints m_ArgConstraintsPerCommand
Definition editor_server_settings.h:384
struct CMapSettingsBackend::SLoadedMapSettings m_LoadedMapSettings
EArgConstraint ArgConstraint(const char *pSettingName, int Arg) const
Definition editor_server_settings.h:215
void LoadAllMapSettings()
Definition editor_server_settings.cpp:1079
void LoadPossibleValues(const CSettingValuesBuilder &Builder, const std::shared_ptr< IMapSetting > &pSetting)
Definition editor_server_settings.cpp:1149
const std::vector< SParsedMapSettingArg > & ParsedArgs(const std::shared_ptr< IMapSetting > &pSetting) const
Definition editor_server_settings.h:221
EArgConstraint
Definition editor_server_settings.h:209
@ DEFAULT
Definition editor_server_settings.h:210
@ MULTIPLE
Definition editor_server_settings.h:212
@ UNIQUE
Definition editor_server_settings.h:211
Definition editor_server_settings.h:138
CSettingValuesBuilder(TSettingValues *pContainer)
Definition editor_server_settings.h:146
friend class CValuesBuilder
Definition editor_server_settings.h:149
CArgumentValuesListBuilder Argument(int Arg) const
Definition editor_server_settings.h:140
TSettingValues * m_pContainer
Definition editor_server_settings.h:150
Definition editor_server_settings.h:154
CValuesBuilder(TSettingsArgumentValues *pContainer)
Definition editor_server_settings.h:156
TSettingsArgumentValues * m_pContainer
Definition editor_server_settings.h:167
CSettingValuesBuilder operator()(const char *pSettingName) const
Definition editor_server_settings.h:161
Definition color.h:182
Definition input.h:22
std::map< int, TArgumentValuesList > TSettingValues
Definition editor_server_settings.h:115
std::map< std::string, TSettingValues > TSettingsArgumentValues
Definition editor_server_settings.h:116
ECollisionCheckResult
Definition editor_server_settings.h:190
@ REPLACE
Definition editor_server_settings.h:192
@ ADD
Definition editor_server_settings.h:193
std::vector< const char * > TArgumentValuesList
Definition editor_server_settings.h:114
EValidationResult
Definition editor_server_settings.h:181
@ INCOMPLETE
Definition editor_server_settings.h:184
@ UNKNOWN
Definition editor_server_settings.h:185
@ OUT_OF_RANGE
Definition editor_server_settings.h:186
@ ERROR
Definition editor_server_settings.h:183
@ VALID
Definition editor_server_settings.h:182
int str_copy(char *dst, const char *src, int dst_size)
Definition str.cpp:18
char m_aCommand[256]
Definition editor_server_settings.h:21
CEditorMapSetting(const char *pCommand)
Definition editor_server_settings.h:23
std::map< int, std::vector< int > > m_SettingsDuplicate
Definition editor_server_settings.h:399
std::vector< SInvalidSetting > m_vSettingsInvalid
Definition editor_server_settings.h:397
void Reset()
Definition editor_server_settings.h:403
std::vector< CEditorMapSetting > m_vSettingsValid
Definition editor_server_settings.h:398
Definition editor_server_settings.cpp:25
Definition editor_server_settings.h:56
EErrorType
Definition editor_server_settings.h:61
@ ERROR_UNKNOWN
Definition editor_server_settings.h:68
@ ERROR_TOO_MANY_ARGS
Definition editor_server_settings.h:63
@ ERROR_INCOMPLETE
Definition editor_server_settings.h:66
@ ERROR_INVALID_VALUE
Definition editor_server_settings.h:64
@ ERROR_OUT_OF_RANGE
Definition editor_server_settings.h:67
@ ERROR_UNKNOWN_VALUE
Definition editor_server_settings.h:65
@ ERROR_NONE
Definition editor_server_settings.h:62
char m_aMessage[256]
Definition editor_server_settings.h:57
EErrorType m_Type
Definition editor_server_settings.h:70
int m_ArgIndex
Definition editor_server_settings.h:58
Definition config.h:111
Definition editor_server_settings.h:39
char m_aValue[256]
Definition editor_server_settings.h:40
bool m_Error
Definition editor_server_settings.h:44
char m_ExpectedType
Definition editor_server_settings.h:45
size_t m_Start
Definition editor_server_settings.h:42
float m_X
Definition editor_server_settings.h:41
size_t m_End
Definition editor_server_settings.h:43
Definition editor_ui.h:7
Definition editor_server_settings.h:87
bool m_Deleted
Definition editor_server_settings.h:89
bool m_Chosen
Definition editor_server_settings.h:90
bool m_Fixed
Definition editor_server_settings.h:88
int m_Index
Definition editor_server_settings.h:80
@ TYPE_DUPLICATE
Definition editor_server_settings.h:78
@ TYPE_INVALID
Definition editor_server_settings.h:77
int m_CollidingIndex
Definition editor_server_settings.h:83
char m_aSetting[256]
Definition editor_server_settings.h:81
struct SInvalidSetting::SContext m_Context
int m_Type
Definition editor_server_settings.h:82
SInvalidSetting(int Index, const char *pSetting, int Type, int CollidingIndex, bool Unknown)
Definition editor_server_settings.h:93
bool m_Unknown
Definition editor_server_settings.h:84
Definition editor_server_settings.cpp:48
Definition editor_server_settings.cpp:39
Definition editor_server_settings.h:32
char m_aName[32]
Definition editor_server_settings.h:33
char m_Type
Definition editor_server_settings.h:34
Definition editor_server_settings.h:49
const void * m_pData
Definition editor_server_settings.h:52
const char * m_pValue
Definition editor_server_settings.h:50
int m_ArgIndex
Definition editor_server_settings.h:51
Definition editor_server_settings.h:173
static void LoadMapBugs(const CSettingValuesBuilder &BugBuilder)
Definition editor_server_settings.cpp:2178
static void LoadArgumentTuneValues(CArgumentValuesListBuilder &&ArgBuilder)
Definition editor_server_settings.cpp:2186
static void LoadTuneValues(const CSettingValuesBuilder &TuneBuilder)
Definition editor_server_settings.cpp:2166
static void LoadTuneZoneValues(const CSettingValuesBuilder &TuneZoneBuilder)
Definition editor_server_settings.cpp:2172