mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Add callbacks to IntSettingDesc to support dynamic strings for title, help and values.
parent
022b9e92d2
commit
9e9a8ca7f6
|
@ -454,7 +454,7 @@ size_t BoolSettingDesc::ParseValue(const char *str) const
|
||||||
*/
|
*/
|
||||||
StringID IntSettingDesc::GetTitle() const
|
StringID IntSettingDesc::GetTitle() const
|
||||||
{
|
{
|
||||||
return this->str;
|
return this->get_title_cb != nullptr ? this->get_title_cb(*this) : this->str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -463,7 +463,7 @@ StringID IntSettingDesc::GetTitle() const
|
||||||
*/
|
*/
|
||||||
StringID IntSettingDesc::GetHelp() const
|
StringID IntSettingDesc::GetHelp() const
|
||||||
{
|
{
|
||||||
return this->str_help;
|
return this->get_help_cb != nullptr ? this->get_help_cb(*this) : this->str_help;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -473,7 +473,9 @@ StringID IntSettingDesc::GetHelp() const
|
||||||
*/
|
*/
|
||||||
void IntSettingDesc::SetValueDParams(uint first_param, int32_t value) const
|
void IntSettingDesc::SetValueDParams(uint first_param, int32_t value) const
|
||||||
{
|
{
|
||||||
if (this->IsBoolSetting()) {
|
if (this->set_value_dparams_cb != nullptr) {
|
||||||
|
this->set_value_dparams_cb(*this, first_param, value);
|
||||||
|
} else if (this->IsBoolSetting()) {
|
||||||
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
||||||
} else {
|
} else {
|
||||||
if ((this->flags & SF_GUI_DROPDOWN) != 0) {
|
if ((this->flags & SF_GUI_DROPDOWN) != 0) {
|
||||||
|
|
|
@ -142,6 +142,10 @@ struct SettingDesc {
|
||||||
|
|
||||||
/** Base integer type, including boolean, settings. Only these are shown in the settings UI. */
|
/** Base integer type, including boolean, settings. Only these are shown in the settings UI. */
|
||||||
struct IntSettingDesc : SettingDesc {
|
struct IntSettingDesc : SettingDesc {
|
||||||
|
typedef StringID GetTitleCallback(const IntSettingDesc &sd);
|
||||||
|
typedef StringID GetHelpCallback(const IntSettingDesc &sd);
|
||||||
|
typedef void SetValueDParamsCallback(const IntSettingDesc &sd, uint first_param, int32_t value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A check to be performed before the setting gets changed. The passed integer may be
|
* A check to be performed before the setting gets changed. The passed integer may be
|
||||||
* changed by the check if that is important, for example to remove some unwanted bit.
|
* changed by the check if that is important, for example to remove some unwanted bit.
|
||||||
|
@ -169,10 +173,12 @@ struct IntSettingDesc : SettingDesc {
|
||||||
>
|
>
|
||||||
IntSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, Tdef def,
|
IntSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, Tdef def,
|
||||||
Tmin min, Tmax max, Tinterval interval, StringID str, StringID str_help, StringID str_val,
|
Tmin min, Tmax max, Tinterval interval, StringID str, StringID str_help, StringID str_val,
|
||||||
SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback) :
|
SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback,
|
||||||
|
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb) :
|
||||||
SettingDesc(save, flags, startup),
|
SettingDesc(save, flags, startup),
|
||||||
str(str), str_help(str_help), str_val(str_val), cat(cat), pre_check(pre_check),
|
str(str), str_help(str_help), str_val(str_val), cat(cat), pre_check(pre_check),
|
||||||
post_callback(post_callback) {
|
post_callback(post_callback),
|
||||||
|
get_title_cb(get_title_cb), get_help_cb(get_help_cb), set_value_dparams_cb(set_value_dparams_cb) {
|
||||||
if constexpr (std::is_base_of_v<StrongTypedefBase, Tdef>) {
|
if constexpr (std::is_base_of_v<StrongTypedefBase, Tdef>) {
|
||||||
this->def = def.base();
|
this->def = def.base();
|
||||||
} else {
|
} else {
|
||||||
|
@ -208,6 +214,9 @@ struct IntSettingDesc : SettingDesc {
|
||||||
SettingCategory cat; ///< assigned categories of the setting
|
SettingCategory cat; ///< assigned categories of the setting
|
||||||
PreChangeCheck *pre_check; ///< Callback to check for the validity of the setting.
|
PreChangeCheck *pre_check; ///< Callback to check for the validity of the setting.
|
||||||
PostChangeCallback *post_callback; ///< Callback when the setting has been changed.
|
PostChangeCallback *post_callback; ///< Callback when the setting has been changed.
|
||||||
|
GetTitleCallback *get_title_cb;
|
||||||
|
GetHelpCallback *get_help_cb;
|
||||||
|
SetValueDParamsCallback *set_value_dparams_cb;
|
||||||
|
|
||||||
StringID GetTitle() const;
|
StringID GetTitle() const;
|
||||||
StringID GetHelp() const;
|
StringID GetHelp() const;
|
||||||
|
@ -239,9 +248,10 @@ private:
|
||||||
struct BoolSettingDesc : IntSettingDesc {
|
struct BoolSettingDesc : IntSettingDesc {
|
||||||
BoolSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, bool def,
|
BoolSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, bool def,
|
||||||
StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
||||||
PreChangeCheck pre_check, PostChangeCallback post_callback) :
|
PreChangeCheck pre_check, PostChangeCallback post_callback,
|
||||||
|
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb) :
|
||||||
IntSettingDesc(save, flags, startup, def ? 1 : 0, 0, 1, 0, str, str_help, str_val, cat,
|
IntSettingDesc(save, flags, startup, def ? 1 : 0, 0, 1, 0, str, str_help, str_val, cat,
|
||||||
pre_check, post_callback) {}
|
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb) {}
|
||||||
|
|
||||||
static std::optional<bool> ParseSingleValue(const char *str);
|
static std::optional<bool> ParseSingleValue(const char *str);
|
||||||
|
|
||||||
|
@ -257,9 +267,10 @@ struct OneOfManySettingDesc : IntSettingDesc {
|
||||||
OneOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, int32_t def,
|
OneOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, int32_t def,
|
||||||
int32_t max, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
int32_t max, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
||||||
PreChangeCheck pre_check, PostChangeCallback post_callback,
|
PreChangeCheck pre_check, PostChangeCallback post_callback,
|
||||||
|
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
|
||||||
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
|
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
|
||||||
IntSettingDesc(save, flags, startup, def, 0, max, 0, str, str_help, str_val, cat,
|
IntSettingDesc(save, flags, startup, def, 0, max, 0, str, str_help, str_val, cat,
|
||||||
pre_check, post_callback), many_cnvt(many_cnvt)
|
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb), many_cnvt(many_cnvt)
|
||||||
{
|
{
|
||||||
for (auto one : many) this->many.push_back(one);
|
for (auto one : many) this->many.push_back(one);
|
||||||
}
|
}
|
||||||
|
@ -279,9 +290,10 @@ struct ManyOfManySettingDesc : OneOfManySettingDesc {
|
||||||
ManyOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup,
|
ManyOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup,
|
||||||
int32_t def, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
int32_t def, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
|
||||||
PreChangeCheck pre_check, PostChangeCallback post_callback,
|
PreChangeCheck pre_check, PostChangeCallback post_callback,
|
||||||
|
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
|
||||||
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
|
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
|
||||||
OneOfManySettingDesc(save, flags, startup, def, (1 << many.size()) - 1, str, str_help,
|
OneOfManySettingDesc(save, flags, startup, def, (1 << many.size()) - 1, str, str_help,
|
||||||
str_val, cat, pre_check, post_callback, many, many_cnvt) {}
|
str_val, cat, pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, many, many_cnvt) {}
|
||||||
|
|
||||||
size_t ParseValue(const char *str) const override;
|
size_t ParseValue(const char *str) const override;
|
||||||
std::string FormatValue(const void *object) const override;
|
std::string FormatValue(const void *object) const override;
|
||||||
|
|
|
@ -56,11 +56,11 @@ static size_t ConvertLandscape(const char *value);
|
||||||
|
|
||||||
/* Macros for various objects to go in the configuration file.
|
/* Macros for various objects to go in the configuration file.
|
||||||
* This section is for global variables */
|
* This section is for global variables */
|
||||||
#define SDTG_VAR(name, type, flags, var, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTG_VAR(name, type, flags, var, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(Int, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback)
|
NSD(Int, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook)
|
||||||
|
|
||||||
#define SDTG_BOOL(name, flags, var, def, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTG_BOOL(name, flags, var, def, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(Bool, SLEG_GENERAL(name, SL_VAR, var, SLE_BOOL, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback)
|
NSD(Bool, SLEG_GENERAL(name, SL_VAR, var, SLE_BOOL, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook)
|
||||||
|
|
||||||
#define SDTG_LIST(name, type, flags, var, def, length, from, to, cat, extra, startup)\
|
#define SDTG_LIST(name, type, flags, var, def, length, from, to, cat, extra, startup)\
|
||||||
NSD(List, SLEG_GENERAL(name, SL_ARR, var, type, length, from, to, extra),flags, startup, def)
|
NSD(List, SLEG_GENERAL(name, SL_ARR, var, type, length, from, to, extra),flags, startup, def)
|
||||||
|
@ -68,22 +68,22 @@ static size_t ConvertLandscape(const char *value);
|
||||||
#define SDTG_SSTR(name, type, flags, var, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTG_SSTR(name, type, flags, var, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
||||||
NSD(String, SLEG_GENERAL(name, SL_STDSTR, var, type, sizeof(var), from, to, extra), flags, startup, def, max_length, pre_check, post_callback)
|
NSD(String, SLEG_GENERAL(name, SL_STDSTR, var, type, sizeof(var), from, to, extra), flags, startup, def, max_length, pre_check, post_callback)
|
||||||
|
|
||||||
#define SDTG_OMANY(name, type, flags, var, def, max, full, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTG_OMANY(name, type, flags, var, def, max, full, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(OneOfMany, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, max, str, strhelp, strval, cat, pre_check, post_callback, full, nullptr)
|
NSD(OneOfMany, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, max, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, full, nullptr)
|
||||||
|
|
||||||
#define SDTG_MMANY(name, type, flags, var, def, full, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTG_MMANY(name, type, flags, var, def, full, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(ManyOfMany, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, full, nullptr)
|
NSD(ManyOfMany, SLEG_GENERAL(name, SL_VAR, var, type, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, full, nullptr)
|
||||||
|
|
||||||
/* Macros for various objects to go in the configuration file.
|
/* Macros for various objects to go in the configuration file.
|
||||||
* This section is for structures where their various members are saved */
|
* This section is for structures where their various members are saved */
|
||||||
#define SDT_VAR(base, var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDT_VAR(base, var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(Int, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback)
|
NSD(Int, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook)
|
||||||
|
|
||||||
#define SDT_VAR_NAME(base, var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup, name)\
|
#define SDT_VAR_NAME(base, var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup, name)\
|
||||||
NSD(Int, SLE_GENERAL_NAME(SL_VAR, name, base, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback)
|
NSD(Int, SLE_GENERAL_NAME(SL_VAR, name, base, var, type, 1, from, to, extra), flags, startup, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook)
|
||||||
|
|
||||||
#define SDT_BOOL(base, var, flags, def, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDT_BOOL(base, var, flags, def, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
NSD(Bool, SLE_GENERAL(SL_VAR, base, var, SLE_BOOL, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback)
|
NSD(Bool, SLE_GENERAL(SL_VAR, base, var, SLE_BOOL, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook)
|
||||||
|
|
||||||
#define SDT_LIST(base, var, type, flags, def, from, to, cat, extra, startup)\
|
#define SDT_LIST(base, var, type, flags, def, from, to, cat, extra, startup)\
|
||||||
NSD(List, SLE_GENERAL(SL_ARR, base, var, type, lengthof(((base*)8)->var), from, to, extra), flags, startup, def)
|
NSD(List, SLE_GENERAL(SL_ARR, base, var, type, lengthof(((base*)8)->var), from, to, extra), flags, startup, def)
|
||||||
|
@ -91,18 +91,18 @@ static size_t ConvertLandscape(const char *value);
|
||||||
#define SDT_SSTR(base, var, type, flags, def, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDT_SSTR(base, var, type, flags, def, pre_check, post_callback, from, to, cat, extra, startup)\
|
||||||
NSD(String, SLE_GENERAL(SL_STDSTR, base, var, type, sizeof(((base*)8)->var), from, to, extra), flags, startup, def, 0, pre_check, post_callback)
|
NSD(String, SLE_GENERAL(SL_STDSTR, base, var, type, sizeof(((base*)8)->var), from, to, extra), flags, startup, def, 0, pre_check, post_callback)
|
||||||
|
|
||||||
#define SDT_OMANY(base, var, type, flags, def, max, full, str, strhelp, strval, pre_check, post_callback, from, to, load, cat, extra, startup)\
|
#define SDT_OMANY(base, var, type, flags, def, max, full, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, load, cat, extra, startup)\
|
||||||
NSD(OneOfMany, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, max, str, strhelp, strval, cat, pre_check, post_callback, full, load)
|
NSD(OneOfMany, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, max, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, full, load)
|
||||||
|
|
||||||
#define SDT_MMANY(base, var, type, flags, def, full, str, pre_check, post_callback, strhelp, strval, from, to, cat, extra, startup)\
|
#define SDT_MMANY(base, var, type, flags, def, full, str, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, strhelp, strval, from, to, cat, extra, startup)\
|
||||||
NSD(ManyOfMany, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, full, nullptr)
|
NSD(ManyOfMany, SLE_GENERAL(SL_VAR, base, var, type, 1, from, to, extra), flags, startup, def, str, strhelp, strval, cat, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, full, nullptr)
|
||||||
|
|
||||||
|
|
||||||
#define SDTC_VAR(var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTC_VAR(var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
SDTG_VAR(#var, type, flags, _settings_client.var, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)
|
SDTG_VAR(#var, type, flags, _settings_client.var, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)
|
||||||
|
|
||||||
#define SDTC_BOOL(var, flags, def, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTC_BOOL(var, flags, def, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
SDTG_BOOL(#var, flags, _settings_client.var, def, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)
|
SDTG_BOOL(#var, flags, _settings_client.var, def, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)
|
||||||
|
|
||||||
#define SDTC_LIST(var, type, flags, def, from, to, cat, extra, startup)\
|
#define SDTC_LIST(var, type, flags, def, from, to, cat, extra, startup)\
|
||||||
SDTG_LIST(#var, type, flags, _settings_client.var, def, lengthof(_settings_client.var), from, to, cat, extra, startup)
|
SDTG_LIST(#var, type, flags, _settings_client.var, def, lengthof(_settings_client.var), from, to, cat, extra, startup)
|
||||||
|
@ -110,5 +110,5 @@ static size_t ConvertLandscape(const char *value);
|
||||||
#define SDTC_SSTR(var, type, flags, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTC_SSTR(var, type, flags, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
||||||
SDTG_SSTR(#var, type, flags, _settings_client.var, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
SDTG_SSTR(#var, type, flags, _settings_client.var, def, max_length, pre_check, post_callback, from, to, cat, extra, startup)\
|
||||||
|
|
||||||
#define SDTC_OMANY(var, type, flags, def, max, full, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)\
|
#define SDTC_OMANY(var, type, flags, def, max, full, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)\
|
||||||
SDTG_OMANY(#var, type, flags, _settings_client.var, def, max, full, str, strhelp, strval, pre_check, post_callback, from, to, cat, extra, startup)
|
SDTG_OMANY(#var, type, flags, _settings_client.var, def, max, full, str, strhelp, strval, pre_check, post_callback, get_title_hook, get_help_hook, set_value_dparams_hook, from, to, cat, extra, startup)
|
||||||
|
|
|
@ -16,8 +16,8 @@ static const SettingVariant _company_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size");
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size");
|
||||||
|
@ -30,6 +30,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -11,7 +11,7 @@ static const SettingVariant _currency_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_VAR = SDT_VAR (CurrencySpec, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR (CurrencySpec, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_SSTR = SDT_SSTR(CurrencySpec, $var, $type, $flags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_SSTR = SDT_SSTR(CurrencySpec, $var, $type, $flags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
|
@ -25,6 +25,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -20,9 +20,9 @@ static const SettingVariant _difficulty_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -36,6 +36,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -16,8 +16,8 @@ static const SettingVariant _economy_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||||
|
@ -30,6 +30,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -26,12 +26,12 @@ static const SettingVariant _game_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -46,6 +46,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -25,9 +25,9 @@ static const SettingVariant _gui_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -41,6 +41,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -12,7 +12,7 @@ static const SettingVariant _linkgraph_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||||
|
@ -25,6 +25,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -19,8 +19,8 @@ static const SettingVariant _locale_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
||||||
SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
|
@ -35,6 +35,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -25,11 +25,11 @@ static const SettingVariant _misc_settings_table[] = {
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
|
SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -43,6 +43,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -12,9 +12,9 @@ static const SettingVariant _multimedia_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_LIST = SDTC_LIST( $var, $type, $flags, $def, $from, $to, $cat, $extra, $startup),
|
SDTC_LIST = SDTC_LIST( $var, $type, $flags, $def, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -27,6 +27,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -14,10 +14,9 @@ static const SettingVariant _network_private_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_SSTR = SDTC_SSTR( $var, $type, $flags, $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_SSTR = SDTC_SSTR( $var, $type, $flags, $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -30,6 +29,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -16,9 +16,9 @@ static const SettingVariant _network_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -32,6 +32,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -13,7 +13,7 @@ static const SettingVariant _news_display_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -26,6 +26,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -31,12 +31,12 @@ static const SettingVariant _old_gameopt_settings_table[] = {
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
|
SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_NULL = SDT_NULL( $length, $from, $to),
|
SDT_NULL = SDT_NULL( $length, $from, $to),
|
||||||
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -53,6 +53,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -14,8 +14,8 @@ static const SettingVariant _pathfinding_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||||
|
@ -28,6 +28,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -14,9 +14,9 @@ static const SettingVariant _script_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||||
|
@ -30,6 +30,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -17,8 +17,8 @@ static const SettingVariant _win32_settings_table[] = {
|
||||||
};
|
};
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
[templates]
|
[templates]
|
||||||
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||||
|
@ -31,6 +31,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -13,8 +13,8 @@ static const SettingVariant _window_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(WindowDesc, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(WindowDesc, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(WindowDesc, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(WindowDesc, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var exceeds storage size");
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var exceeds storage size");
|
||||||
|
@ -27,6 +27,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
|
@ -18,9 +18,9 @@ static const SettingVariant _world_settings_table[] = {
|
||||||
[post-amble]
|
[post-amble]
|
||||||
};
|
};
|
||||||
[templates]
|
[templates]
|
||||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
||||||
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
||||||
|
|
||||||
[validation]
|
[validation]
|
||||||
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||||
|
@ -34,6 +34,9 @@ strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||||
strval = STR_NULL
|
strval = STR_NULL
|
||||||
pre_cb = nullptr
|
pre_cb = nullptr
|
||||||
post_cb = nullptr
|
post_cb = nullptr
|
||||||
|
str_cb = nullptr
|
||||||
|
help_cb = nullptr
|
||||||
|
val_cb = nullptr
|
||||||
load = nullptr
|
load = nullptr
|
||||||
from = SL_MIN_VERSION
|
from = SL_MIN_VERSION
|
||||||
to = SL_MAX_VERSION
|
to = SL_MAX_VERSION
|
||||||
|
|
Loading…
Reference in New Issue