1#ifndef GAME_EDITOR_EDITOR_SERVER_SETTINGS_H
2#define GAME_EDITOR_EDITOR_SERVER_SETTINGS_H
96 SInvalidSetting(
int Index,
const char *pSetting,
int Type,
int CollidingIndex,
bool Unknown) :
224 const std::vector<SParsedMapSettingArg> &
ParsedArgs(
const std::shared_ptr<IMapSetting> &pSetting)
const
266 virtual void Reset();
269 void ColorArguments(std::vector<STextColorSplit> &vColorSplits)
const;
289 void ParseArgs(
const char *pLineInputStr,
const char *pStr);
319 void Reset()
override;
347 void LoadCommand(
const char *pName,
const char *pArgs,
const char *pHelp);
348 void LoadSettingInt(
const std::shared_ptr<SMapSettingInt> &pSetting);
408 for(
int i = 0; i < ArgCount; i++)
Definition editor_server_settings.h:124
std::vector< const char * > * m_pContainer
Definition editor_server_settings.h:136
friend class CSettingValuesBuilder
Definition editor_server_settings.h:137
CArgumentValuesListBuilder(std::vector< const char * > *pContainer)
Definition editor_server_settings.h:133
CArgumentValuesListBuilder & Add(const char *pString)
Definition editor_server_settings.h:126
Definition component.h:13
Definition ui_listbox.h:17
Definition editor_server_settings.h:375
CArgumentConstraintsBuilder & Unique(int Arg)
Definition editor_server_settings.h:392
CArgumentConstraintsBuilder(TArgumentConstraints *pContainer)
Definition editor_server_settings.h:379
friend class CCommandArgumentConstraintBuilder
Definition editor_server_settings.h:376
CArgumentConstraintsBuilder & Multiple(int Arg)
Definition editor_server_settings.h:385
TArgumentConstraints * m_pContainer
Definition editor_server_settings.h:382
Definition editor_server_settings.h:401
CArgumentConstraintsBuilder operator()(const char *pSettingName, int ArgCount)
Definition editor_server_settings.h:406
TCommandArgumentConstraints * m_pContainer
Definition editor_server_settings.h:414
CCommandArgumentConstraintBuilder(TCommandArgumentConstraints *pContainer)
Definition editor_server_settings.h:403
Definition editor_server_settings.h:312
void Reset() override
Definition editor_server_settings.cpp:2089
CContextWithInput(CMapSettingsBackend *pBackend)
Definition editor_server_settings.h:314
CListBox m_ListBox
Definition editor_server_settings.h:323
int m_CommandSelectedIndex
Definition editor_server_settings.h:321
CLineInputBuffered< 256 > m_CommandInput
Definition editor_server_settings.h:322
int CommentOffset() const
Definition editor_server_settings.h:257
const char * InputString() const
Definition editor_server_settings.cpp:1788
static constexpr ColorRGBA ms_ArgumentUnknownColor
Definition editor_server_settings.h:234
static constexpr ColorRGBA ms_ErrorColor
Definition editor_server_settings.h:236
void GetCommandHelpText(char *pStr, int Length) const
Definition editor_server_settings.cpp:2066
void UpdatePossibleMatches()
Definition editor_server_settings.cpp:1661
SCommandParseError m_Error
Definition editor_server_settings.h:304
bool CommandIsValid() const
Definition editor_server_settings.h:243
std::vector< SCurrentSettingArg > m_vCurrentArgs
Definition editor_server_settings.h:298
void Update()
Definition editor_server_settings.cpp:1212
int m_CurrentCompletionIndex
Definition editor_server_settings.h:273
int m_CursorArgIndex
Definition editor_server_settings.h:299
static constexpr ColorRGBA ms_ArgumentStringColor
Definition editor_server_settings.h:232
std::vector< SPossibleValueMatch > m_vPossibleMatches
Definition editor_server_settings.h:300
virtual void Reset()
Definition editor_server_settings.cpp:1194
int m_CommentOffset
Definition editor_server_settings.h:305
CLineInput * m_pLineInput
Definition editor_server_settings.h:302
int ArgCount() const
Definition editor_server_settings.h:253
bool HasError() const
Definition editor_server_settings.h:250
static constexpr ColorRGBA ms_CommentColor
Definition editor_server_settings.h:235
const char * CurrentArgValue() const
Definition editor_server_settings.h:248
size_t ErrorOffset() const
Definition editor_server_settings.h:251
EValidationResult ValidateArg(int Index, const char *pArg)
Definition editor_server_settings.cpp:1604
size_t m_LastCursorOffset
Definition editor_server_settings.h:301
bool m_AllowUnknownCommands
Definition editor_server_settings.h:271
static constexpr ColorRGBA ms_ArgumentNumberColor
Definition editor_server_settings.h:233
void FormatDisplayValue(const char *pValue, char(&aOut)[N])
Definition editor_server_settings.cpp:2075
void SetFontSize(float FontSize)
Definition editor_server_settings.h:256
const SCurrentSettingArg & Arg(int Index) const
Definition editor_server_settings.h:254
void ClearError()
Definition editor_server_settings.cpp:1539
float CurrentArgPos() const
Definition editor_server_settings.h:246
const std::vector< SPossibleValueMatch > & PossibleMatches() const
Definition editor_server_settings.h:249
int CheckCollision(ECollisionCheckResult &Result) const
Definition editor_server_settings.cpp:1842
CContext(CMapSettingsBackend *pBackend, CLineInput *pLineInput)
Definition editor_server_settings.h:277
friend class CMapSettingsBackend
Definition editor_server_settings.h:238
virtual ~CContext()=default
void UpdateFromString(const char *pStr)
Definition editor_server_settings.cpp:1217
size_t CurrentArgOffset() const
Definition editor_server_settings.h:247
bool OnInput(const IInput::CEvent &Event)
Definition editor_server_settings.cpp:1760
const char * CurrentArgName() const
Definition editor_server_settings.h:245
const std::shared_ptr< IMapSetting > & Setting() const
Definition editor_server_settings.h:255
void ColorArguments(std::vector< STextColorSplit > &vColorSplits) const
Definition editor_server_settings.cpp:1795
bool Valid() const
Definition editor_server_settings.cpp:2035
std::shared_ptr< IMapSetting > m_pCurrentSetting
Definition editor_server_settings.h:297
bool UpdateCursor(bool Force=false)
Definition editor_server_settings.cpp:1545
char m_aCommand[128]
Definition editor_server_settings.h:303
float m_FontSize
Definition editor_server_settings.h:308
SEditBoxDropdownContext m_DropdownContext
Definition editor_server_settings.h:272
void ParseArgs(const char *pLineInputStr, const char *pStr)
Definition editor_server_settings.cpp:1288
const char * Error() const
Definition editor_server_settings.h:252
int CurrentArg() const
Definition editor_server_settings.h:244
CMapSettingsBackend * m_pBackend
Definition editor_server_settings.h:307
Definition editor_server_settings.h:326
CHeadlessContext(CMapSettingsBackend *pBackend)
Definition editor_server_settings.h:328
void LoadSettingCommand(const std::shared_ptr< SMapSettingCommand > &pSetting)
Definition editor_server_settings.cpp:1105
std::map< int, EArgConstraint > TArgumentConstraints
Definition editor_server_settings.h:358
void LoadSettingInt(const std::shared_ptr< SMapSettingInt > &pSetting)
Definition editor_server_settings.cpp:1096
void RegisterLoader(const char *pSettingName, const FLoaderFunction &pfnLoader)
Definition editor_server_settings.cpp:1157
TSettingsArgumentValues m_PossibleValuesPerCommand
Definition editor_server_settings.h:422
void InitValueLoaders()
Definition editor_server_settings.cpp:2168
friend class CEditor
Definition editor_server_settings.h:425
void LoadCommand(const char *pName, const char *pArgs, const char *pHelp)
Definition editor_server_settings.cpp:1091
CMapSettingsBackend()=default
std::map< std::string, TArgumentConstraints > TCommandArgumentConstraints
Definition editor_server_settings.h:359
std::map< std::shared_ptr< IMapSetting >, std::vector< SParsedMapSettingArg > > m_ParsedCommandArgs
Definition editor_server_settings.h:421
void OnInit(CEditor *pEditor) override
Definition editor_server_settings.cpp:1046
static void PossibleConfigVariableCallback(const struct SConfigVariable *pVariable, void *pUserData)
Definition editor_server_settings.cpp:1178
std::map< std::string, FLoaderFunction > m_LoaderFunctions
Definition editor_server_settings.h:423
std::vector< std::shared_ptr< IMapSetting > > m_vpMapSettings
Definition editor_server_settings.h:420
void LoadConstraints()
Definition editor_server_settings.cpp:1163
void(* FLoaderFunction)(const CSettingValuesBuilder &)
Definition editor_server_settings.h:201
void OnMapLoad() override
Definition editor_server_settings.cpp:2096
TCommandArgumentConstraints m_ArgConstraintsPerCommand
Definition editor_server_settings.h:417
struct CMapSettingsBackend::SLoadedMapSettings m_LoadedMapSettings
EArgConstraint ArgConstraint(const char *pSettingName, int Arg) const
Definition editor_server_settings.h:218
void LoadAllMapSettings()
Definition editor_server_settings.cpp:1077
CHeadlessContext NewHeadlessContext()
Definition editor_server_settings.h:339
void LoadPossibleValues(const CSettingValuesBuilder &Builder, const std::shared_ptr< IMapSetting > &pSetting)
Definition editor_server_settings.cpp:1147
CContextWithInput NewContextWithInput()
Definition editor_server_settings.h:334
const std::vector< SParsedMapSettingArg > & ParsedArgs(const std::shared_ptr< IMapSetting > &pSetting) const
Definition editor_server_settings.h:224
EArgConstraint
Definition editor_server_settings.h:212
@ DEFAULT
Definition editor_server_settings.h:213
@ MULTIPLE
Definition editor_server_settings.h:215
@ UNIQUE
Definition editor_server_settings.h:214
Definition editor_server_settings.h:141
CSettingValuesBuilder(TSettingValues *pContainer)
Definition editor_server_settings.h:149
friend class CValuesBuilder
Definition editor_server_settings.h:152
CArgumentValuesListBuilder Argument(int Arg) const
Definition editor_server_settings.h:143
TSettingValues * m_pContainer
Definition editor_server_settings.h:153
Definition editor_server_settings.h:157
CValuesBuilder(TSettingsArgumentValues *pContainer)
Definition editor_server_settings.h:159
TSettingsArgumentValues * m_pContainer
Definition editor_server_settings.h:170
CSettingValuesBuilder operator()(const char *pSettingName) const
Definition editor_server_settings.h:164
std::map< int, TArgumentValuesList > TSettingValues
Definition editor_server_settings.h:118
std::map< std::string, TSettingValues > TSettingsArgumentValues
Definition editor_server_settings.h:119
ECollisionCheckResult
Definition editor_server_settings.h:193
@ REPLACE
Definition editor_server_settings.h:195
@ ADD
Definition editor_server_settings.h:196
std::vector< const char * > TArgumentValuesList
Definition editor_server_settings.h:117
EValidationResult
Definition editor_server_settings.h:184
@ INCOMPLETE
Definition editor_server_settings.h:187
@ UNKNOWN
Definition editor_server_settings.h:188
@ OUT_OF_RANGE
Definition editor_server_settings.h:189
@ ERROR
Definition editor_server_settings.h:186
@ VALID
Definition editor_server_settings.h:185
int str_copy(char *dst, const char *src, int dst_size)
Definition str.cpp:18
char m_aCommand[256]
Definition editor_server_settings.h:24
CEditorMapSetting(const char *pCommand)
Definition editor_server_settings.h:26
SLoadedMapSettings()=default
std::map< int, std::vector< int > > m_SettingsDuplicate
Definition editor_server_settings.h:432
std::vector< SInvalidSetting > m_vSettingsInvalid
Definition editor_server_settings.h:430
void Reset()
Definition editor_server_settings.h:436
std::vector< CEditorMapSetting > m_vSettingsValid
Definition editor_server_settings.h:431
Definition editor_server_settings.cpp:26
Definition editor_server_settings.h:59
EErrorType
Definition editor_server_settings.h:64
@ ERROR_UNKNOWN
Definition editor_server_settings.h:71
@ ERROR_TOO_MANY_ARGS
Definition editor_server_settings.h:66
@ ERROR_INCOMPLETE
Definition editor_server_settings.h:69
@ ERROR_INVALID_VALUE
Definition editor_server_settings.h:67
@ ERROR_OUT_OF_RANGE
Definition editor_server_settings.h:70
@ ERROR_UNKNOWN_VALUE
Definition editor_server_settings.h:68
@ ERROR_NONE
Definition editor_server_settings.h:65
char m_aMessage[256]
Definition editor_server_settings.h:60
EErrorType m_Type
Definition editor_server_settings.h:73
int m_ArgIndex
Definition editor_server_settings.h:61
Definition editor_server_settings.h:42
char m_aValue[256]
Definition editor_server_settings.h:43
bool m_Error
Definition editor_server_settings.h:47
char m_ExpectedType
Definition editor_server_settings.h:48
size_t m_Start
Definition editor_server_settings.h:45
float m_X
Definition editor_server_settings.h:44
size_t m_End
Definition editor_server_settings.h:46
Definition editor_server_settings.h:90
bool m_Deleted
Definition editor_server_settings.h:92
bool m_Chosen
Definition editor_server_settings.h:93
bool m_Fixed
Definition editor_server_settings.h:91
int m_Index
Definition editor_server_settings.h:83
@ TYPE_DUPLICATE
Definition editor_server_settings.h:81
@ TYPE_INVALID
Definition editor_server_settings.h:80
int m_CollidingIndex
Definition editor_server_settings.h:86
char m_aSetting[256]
Definition editor_server_settings.h:84
struct SInvalidSetting::SContext m_Context
int m_Type
Definition editor_server_settings.h:85
SInvalidSetting(int Index, const char *pSetting, int Type, int CollidingIndex, bool Unknown)
Definition editor_server_settings.h:96
bool m_Unknown
Definition editor_server_settings.h:87
Definition editor_server_settings.cpp:49
Definition editor_server_settings.cpp:40
Definition editor_server_settings.h:35
char m_aName[32]
Definition editor_server_settings.h:36
char m_Type
Definition editor_server_settings.h:37
Definition editor_server_settings.h:52
const void * m_pData
Definition editor_server_settings.h:55
const char * m_pValue
Definition editor_server_settings.h:53
int m_ArgIndex
Definition editor_server_settings.h:54
Definition editor_server_settings.h:176
static void LoadMapBugs(const CSettingValuesBuilder &BugBuilder)
Definition editor_server_settings.cpp:2188
static void LoadArgumentTuneValues(CArgumentValuesListBuilder &&ArgBuilder)
Definition editor_server_settings.cpp:2196
static void LoadTuneValues(const CSettingValuesBuilder &TuneBuilder)
Definition editor_server_settings.cpp:2176
static void LoadTuneZoneValues(const CSettingValuesBuilder &TuneZoneBuilder)
Definition editor_server_settings.cpp:2182