1
0
Fork 0

Codechange: Use EnumBitSet for SettingFlags. (#13429)

pull/13426/head
Peter Nelson 2025-02-01 15:46:51 +00:00 committed by GitHub
parent 1d25c526b4
commit c4c5028862
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 414 additions and 415 deletions

View File

@ -246,7 +246,7 @@ struct CheatWindow : Window {
CheatWindow(WindowDesc &desc) : Window(desc)
{
this->sandbox_settings = GetFilteredSettingCollection([](const SettingDesc &sd) { return HasFlag(sd.flags, SF_SANDBOX); });
this->sandbox_settings = GetFilteredSettingCollection([](const SettingDesc &sd) { return sd.flags.Test(SettingFlag::Sandbox); });
this->InitNested();
}
@ -349,13 +349,13 @@ struct CheatWindow : Window {
if (sd->IsBoolSetting()) {
/* Draw checkbox for boolean-value either on/off */
DrawBoolButton(buttons.left, buttons.top, value != 0, editable);
} else if (HasFlag(sd->flags, SF_GUI_DROPDOWN)) {
} else if (sd->flags.Test(SettingFlag::GuiDropdown)) {
/* Draw [v] button for settings of an enum-type */
DrawDropDownButton(buttons.left, buttons.top, COLOUR_YELLOW, state != 0, editable);
} else {
/* Draw [<][>] boxes for settings of an integer-type */
DrawArrowButtons(buttons.left, buttons.top, COLOUR_YELLOW, state,
editable && value != (HasFlag(sd->flags, SF_GUI_0_IS_SPECIAL) ? 0 : sd->min), editable && static_cast<uint32_t>(value) != sd->max);
editable && value != (sd->flags.Test(SettingFlag::GuiZeroIsSpecial) ? 0 : sd->min), editable && static_cast<uint32_t>(value) != sd->max);
}
sd->SetValueDParams(1, value);
DrawString(text.left, text.right, text.top, sd->GetTitle(), TC_LIGHT_BLUE);
@ -508,11 +508,11 @@ struct CheatWindow : Window {
ChangeSettingValue(sd, x);
} else {
/* Only open editbox if clicked for the second time, and only for types where it is sensible for. */
if (this->last_clicked_setting == sd && !sd->IsBoolSetting() && !HasFlag(sd->flags, SF_GUI_DROPDOWN)) {
if (this->last_clicked_setting == sd && !sd->IsBoolSetting() && !sd->flags.Test(SettingFlag::GuiDropdown)) {
int64_t value64 = sd->Read(&GetGameSettings());
/* Show the correct currency-translated value */
if (HasFlag(sd->flags, SF_GUI_CURRENCY)) value64 *= GetCurrency().rate;
if (sd->flags.Test(SettingFlag::GuiCurrency)) value64 *= GetCurrency().rate;
CharSetFilter charset_filter = CS_NUMERAL; //default, only numeric input allowed
if (sd->min < 0) charset_filter = CS_NUMERAL_SIGNED; // special case, also allow '-' sign for negative input
@ -560,7 +560,7 @@ struct CheatWindow : Window {
if (value < sd->min) value = sd->min; // skip between "disabled" and minimum
} else {
value -= step;
if (value < sd->min) value = HasFlag(sd->flags, SF_GUI_0_IS_SPECIAL) ? 0 : sd->min;
if (value < sd->min) value = sd->flags.Test(SettingFlag::GuiZeroIsSpecial) ? 0 : sd->min;
}
/* Set up scroller timeout for numeric values */
@ -613,7 +613,7 @@ struct CheatWindow : Window {
long long llvalue = atoll(str->c_str());
/* Save the correct currency-translated value */
if (HasFlag(sd->flags, SF_GUI_CURRENCY)) llvalue /= GetCurrency().rate;
if (sd->flags.Test(SettingFlag::GuiCurrency)) llvalue /= GetCurrency().rate;
value = ClampTo<int32_t>(llvalue);
} else {

View File

@ -223,7 +223,7 @@ void Gamelog::Print(std::function<void(const std::string &)> proc)
/* virtual */ void LoggedChangeSettingChanged::FormatTo(std::back_insert_iterator<std::string> &output_iterator, GrfIDMapping &, GamelogActionType)
{
/* A setting with the SF_NO_NETWORK flag got changed; these settings usually affect NewGRFs, such as road side or wagon speed limits. */
/* A setting with the SettingFlag::NoNetwork flag got changed; these settings usually affect NewGRFs, such as road side or wagon speed limits. */
fmt::format_to(output_iterator, "Setting changed: {} : {} -> {}", this->name, this->oldval, this->newval);
}

View File

@ -79,9 +79,9 @@ static std::vector<SaveLoad> GetSettingsDesc(const SettingTable &settings, bool
std::vector<SaveLoad> saveloads;
for (auto &desc : settings) {
const SettingDesc *sd = GetSettingDesc(desc);
if (sd->flags & SF_NOT_IN_SAVE) continue;
if (sd->flags.Test(SettingFlag::NotInSave)) continue;
if (is_loading && (sd->flags & SF_NO_NETWORK_SYNC) && _networking && !_network_server) {
if (is_loading && sd->flags.Test(SettingFlag::NoNetworkSync) && _networking && !_network_server) {
if (IsSavegameVersionBefore(SLV_TABLE_CHUNKS)) {
/* We don't want to read this setting, so we do need to skip over it. */
saveloads.push_back({sd->GetName(), sd->save.cmd, GetVarFileType(sd->save.conv) | SLE_VAR_NULL, sd->save.length, sd->save.version_from, sd->save.version_to, nullptr, 0, nullptr});
@ -112,8 +112,8 @@ static void LoadSettings(const SettingTable &settings, void *object, const SaveL
/* Ensure all IntSettings are valid (min/max could have changed between versions etc). */
for (auto &desc : settings) {
const SettingDesc *sd = GetSettingDesc(desc);
if (sd->flags & SF_NOT_IN_SAVE) continue;
if ((sd->flags & SF_NO_NETWORK_SYNC) && _networking && !_network_server) continue;
if (sd->flags.Test(SettingFlag::NotInSave)) continue;
if (sd->flags.Test(SettingFlag::NoNetworkSync) && _networking && !_network_server) continue;
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue;
if (sd->IsIntSetting()) {
@ -194,8 +194,8 @@ struct PATSChunkHandler : ChunkHandler {
* up values to become non-default, depending on the saveload version. */
for (auto &desc : settings_table) {
const SettingDesc *sd = GetSettingDesc(desc);
if (sd->flags & SF_NOT_IN_SAVE) continue;
if ((sd->flags & SF_NO_NETWORK_SYNC) && _networking && !_network_server) continue;
if (sd->flags.Test(SettingFlag::NotInSave)) continue;
if (sd->flags.Test(SettingFlag::NoNetworkSync) && _networking && !_network_server) continue;
sd->ResetToDefault(&_settings_game);
}

View File

@ -39,7 +39,7 @@
const SettingDesc *sd = GetSettingFromName(setting);
assert(sd != nullptr);
if ((sd->flags & SF_NO_NETWORK_SYNC) != 0) return false;
if ((sd->flags.Test(SettingFlag::NoNetworkSync))) return false;
value = Clamp<SQInteger>(value, INT32_MIN, INT32_MAX);

View File

@ -465,10 +465,10 @@ void IntSettingDesc::SetValueDParams(uint first_param, int32_t value) const
} else if (this->IsBoolSetting()) {
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
} else {
if ((this->flags & SF_GUI_DROPDOWN) != 0) {
if (this->flags.Test(SettingFlag::GuiDropdown)) {
SetDParam(first_param++, this->str_val - min_val + value);
} else {
SetDParam(first_param++, this->str_val + ((value == 0 && (this->flags & SF_GUI_0_IS_SPECIAL) != 0) ? 1 : 0));
SetDParam(first_param++, this->str_val + ((value == 0 && this->flags.Test(SettingFlag::GuiZeroIsSpecial)) ? 1 : 0));
}
SetDParam(first_param++, value);
}
@ -508,9 +508,9 @@ void IntSettingDesc::MakeValueValidAndWrite(const void *object, int32_t val) con
* Make the value valid given the limitations of this setting.
*
* In the case of int settings this is ensuring the value is between the minimum and
* maximum value, with a special case for 0 if SF_GUI_0_IS_SPECIAL is set.
* maximum value, with a special case for 0 if SettingFlag::GuiZeroIsSpecial is set.
* This is generally done by clamping the value so it is within the allowed value range.
* However, for SF_GUI_DROPDOWN the default is used when the value is not valid.
* However, for SettingFlag::GuiDropdown the default is used when the value is not valid.
* @param val The value to make valid.
*/
void IntSettingDesc::MakeValueValid(int32_t &val) const
@ -530,8 +530,8 @@ void IntSettingDesc::MakeValueValid(int32_t &val) const
case SLE_VAR_U16:
case SLE_VAR_I32: {
/* Override the minimum value. No value below this->min, except special value 0 */
if (!(this->flags & SF_GUI_0_IS_SPECIAL) || val != 0) {
if (!(this->flags & SF_GUI_DROPDOWN)) {
if (!this->flags.Test(SettingFlag::GuiZeroIsSpecial) || val != 0) {
if (!this->flags.Test(SettingFlag::GuiDropdown)) {
/* Clamp value-type setting to its valid range */
val = Clamp(val, min_val, max_val);
} else if (val < min_val || val > static_cast<int32_t>(max_val)) {
@ -544,8 +544,8 @@ void IntSettingDesc::MakeValueValid(int32_t &val) const
case SLE_VAR_U32: {
/* Override the minimum value. No value below this->min, except special value 0 */
uint32_t uval = static_cast<uint32_t>(val);
if (!(this->flags & SF_GUI_0_IS_SPECIAL) || uval != 0) {
if (!(this->flags & SF_GUI_DROPDOWN)) {
if (!this->flags.Test(SettingFlag::GuiZeroIsSpecial) || uval != 0) {
if (!this->flags.Test(SettingFlag::GuiDropdown)) {
/* Clamp value-type setting to its valid range */
uval = ClampU(uval, min_val, max_val);
} else if (uval < static_cast<uint32_t>(min_val) || uval > max_val) {
@ -720,7 +720,7 @@ static void IniSaveSettings(IniFile &ini, const SettingTable &settings_table, co
/* If the setting is not saved to the configuration
* file, just continue with the next setting */
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue;
if (sd->flags & SF_NOT_IN_CONFIG) continue;
if (sd->flags.Test(SettingFlag::NotInConfig)) continue;
/* XXX - wtf is this?? (group override?) */
std::string s{ sd->GetName() };
@ -902,14 +902,14 @@ void IniSaveWindowSettings(IniFile &ini, const char *grpname, void *desc)
*/
bool SettingDesc::IsEditable(bool do_command) const
{
if (!do_command && !(this->flags & SF_NO_NETWORK_SYNC) && _networking && !_network_server && !(this->flags & SF_PER_COMPANY)) return false;
if (do_command && (this->flags & SF_NO_NETWORK_SYNC)) return false;
if ((this->flags & SF_NETWORK_ONLY) && !_networking && _game_mode != GM_MENU) return false;
if ((this->flags & SF_NO_NETWORK) && _networking) return false;
if ((this->flags & SF_NEWGAME_ONLY) &&
if (!do_command && !this->flags.Test(SettingFlag::NoNetworkSync) && _networking && !_network_server && !this->flags.Test(SettingFlag::PerCompany)) return false;
if (do_command && this->flags.Test(SettingFlag::NoNetworkSync)) return false;
if (this->flags.Test(SettingFlag::NetworkOnly) && !_networking && _game_mode != GM_MENU) return false;
if (this->flags.Test(SettingFlag::NoNetwork) && _networking) return false;
if (this->flags.Test(SettingFlag::NewgameOnly) &&
(_game_mode == GM_NORMAL ||
(_game_mode == GM_EDITOR && !(this->flags & SF_SCENEDIT_TOO)))) return false;
if ((this->flags & SF_SCENEDIT_ONLY) && _game_mode != GM_EDITOR) return false;
(_game_mode == GM_EDITOR && !this->flags.Test(SettingFlag::SceneditToo)))) return false;
if (this->flags.Test(SettingFlag::SceneditOnly) && _game_mode != GM_EDITOR) return false;
return true;
}
@ -919,8 +919,8 @@ bool SettingDesc::IsEditable(bool do_command) const
*/
SettingType SettingDesc::GetType() const
{
if (this->flags & SF_PER_COMPANY) return ST_COMPANY;
return (this->flags & SF_NOT_IN_SAVE) ? ST_CLIENT : ST_GAME;
if (this->flags.Test(SettingFlag::PerCompany)) return ST_COMPANY;
return this->flags.Test(SettingFlag::NotInSave) ? ST_CLIENT : ST_GAME;
}
/**
@ -1604,14 +1604,14 @@ void IntSettingDesc::ChangeValue(const void *object, int32_t newval) const
this->Write(object, newval);
if (this->post_callback != nullptr) this->post_callback(newval);
if (HasFlag(this->flags, SF_NO_NETWORK) || HasFlag(this->flags, SF_SANDBOX)) {
if (this->flags.Test(SettingFlag::NoNetwork) || this->flags.Test(SettingFlag::Sandbox)) {
_gamelog.StartAction(GLAT_SETTING);
_gamelog.Setting(this->GetName(), oldval, newval);
_gamelog.StopAction();
}
SetWindowClassesDirty(WC_GAME_OPTIONS);
if (HasFlag(this->flags, SF_SANDBOX)) SetWindowClassesDirty(WC_CHEATS);
if (this->flags.Test(SettingFlag::Sandbox)) SetWindowClassesDirty(WC_CHEATS);
if (_save_config) SaveToConfig();
}
@ -1775,7 +1775,7 @@ CommandCost CmdChangeCompanySetting(DoCommandFlag flags, const std::string &name
bool SetSettingValue(const IntSettingDesc *sd, int32_t value, bool force_newgame)
{
const IntSettingDesc *setting = sd->AsIntSetting();
if ((setting->flags & SF_PER_COMPANY) != 0) {
if (setting->flags.Test(SettingFlag::PerCompany)) {
if (Company::IsValidID(_local_company) && _game_mode != GM_MENU) {
return Command<CMD_CHANGE_COMPANY_SETTING>::Post(setting->GetName(), value);
}
@ -1788,7 +1788,7 @@ bool SetSettingValue(const IntSettingDesc *sd, int32_t value, bool force_newgame
* (if any) to change. Also *hack*hack* we update the _newgame version
* of settings because changing a company-based setting in a game also
* changes its defaults. At least that is the convention we have chosen */
if (setting->flags & SF_NO_NETWORK_SYNC) {
if (setting->flags.Test(SettingFlag::NoNetworkSync)) {
if (_game_mode != GM_MENU) {
setting->ChangeValue(&_settings_newgame, value);
}
@ -1850,7 +1850,7 @@ void SyncCompanySettings()
*/
bool SetSettingValue(const StringSettingDesc *sd, std::string value, bool force_newgame)
{
assert(sd->flags & SF_NO_NETWORK_SYNC);
assert(sd->flags.Test(SettingFlag::NoNetworkSync));
if (GetVarMemType(sd->save.conv) == SLE_VAR_STRQ && value.compare("(null)") == 0) {
value.clear();
@ -1884,7 +1884,7 @@ void IConsoleSetSetting(const char *name, const char *value, bool force_newgame)
{
const SettingDesc *sd = GetSettingFromName(name);
/* Company settings are not in "list_settings", so don't try to modify them. */
if (sd == nullptr || sd->flags & SF_PER_COMPANY) {
if (sd == nullptr || sd->flags.Test(SettingFlag::PerCompany)) {
IConsolePrint(CC_ERROR, "'{}' is an unknown setting.", name);
return;
}
@ -1928,7 +1928,7 @@ void IConsoleGetSetting(const char *name, bool force_newgame)
{
const SettingDesc *sd = GetSettingFromName(name);
/* Company settings are not in "list_settings", so don't try to read them. */
if (sd == nullptr || sd->flags & SF_PER_COMPANY) {
if (sd == nullptr || sd->flags.Test(SettingFlag::PerCompany)) {
IConsolePrint(CC_ERROR, "'{}' is an unknown setting.", name);
return;
}
@ -1942,7 +1942,7 @@ void IConsoleGetSetting(const char *name, bool force_newgame)
const IntSettingDesc *int_setting = sd->AsIntSetting();
auto [min_val, max_val] = int_setting->GetRange();
IConsolePrint(CC_INFO, "Current value for '{}' is '{}' (min: {}{}, max: {}).",
sd->GetName(), value, (sd->flags & SF_GUI_0_IS_SPECIAL) ? "(0) " : "", min_val, max_val);
sd->GetName(), value, sd->flags.Test(SettingFlag::GuiZeroIsSpecial) ? "(0) " : "", min_val, max_val);
}
}

View File

@ -1589,7 +1589,7 @@ bool SettingEntry::UpdateFilterState(SettingFilter &filter, bool force_visible)
static const void *ResolveObject(const GameSettings *settings_ptr, const IntSettingDesc *sd)
{
if ((sd->flags & SF_PER_COMPANY) != 0) {
if (sd->flags.Test(SettingFlag::PerCompany)) {
if (Company::IsValidID(_local_company) && _game_mode != GM_MENU) {
return &Company::Get(_local_company)->settings;
}
@ -1626,13 +1626,13 @@ void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right,
if (sd->IsBoolSetting()) {
/* Draw checkbox for boolean-value either on/off */
DrawBoolButton(buttons_left, button_y, value != 0, editable);
} else if ((sd->flags & SF_GUI_DROPDOWN) != 0) {
} else if (sd->flags.Test(SettingFlag::GuiDropdown)) {
/* Draw [v] button for settings of an enum-type */
DrawDropDownButton(buttons_left, button_y, COLOUR_YELLOW, state != 0, editable);
} else {
/* Draw [<][>] boxes for settings of an integer-type */
DrawArrowButtons(buttons_left, button_y, COLOUR_YELLOW, state,
editable && value != (sd->flags & SF_GUI_0_IS_SPECIAL ? 0 : min_val), editable && static_cast<uint32_t>(value) != max_val);
editable && value != (sd->flags.Test(SettingFlag::GuiZeroIsSpecial) ? 0 : min_val), editable && static_cast<uint32_t>(value) != max_val);
}
sd->SetValueDParams(1, value);
DrawString(text_left, text_right, y + (SETTING_HEIGHT - GetCharacterHeight(FS_NORMAL)) / 2, sd->GetTitle(), highlight ? TC_WHITE : TC_LIGHT_BLUE);
@ -2612,7 +2612,7 @@ struct GameSettingsWindow : Window {
int32_t value = sd->Read(ResolveObject(settings_ptr, sd));
/* clicked on the icon on the left side. Either scroller, bool on/off or dropdown */
if (x < SETTING_BUTTON_WIDTH && (sd->flags & SF_GUI_DROPDOWN)) {
if (x < SETTING_BUTTON_WIDTH && sd->flags.Test(SettingFlag::GuiDropdown)) {
this->SetDisplayedHelpText(pe);
if (this->valuedropdown_entry == pe) {
@ -2681,7 +2681,7 @@ struct GameSettingsWindow : Window {
if (value < min_val) value = min_val; // skip between "disabled" and minimum
} else {
value -= step;
if (value < min_val) value = (sd->flags & SF_GUI_0_IS_SPECIAL) ? 0 : min_val;
if (value < min_val) value = sd->flags.Test(SettingFlag::GuiZeroIsSpecial) ? 0 : min_val;
}
/* Set up scroller timeout for numeric values */
@ -2702,10 +2702,10 @@ struct GameSettingsWindow : Window {
}
} else {
/* Only open editbox if clicked for the second time, and only for types where it is sensible for. */
if (this->last_clicked == pe && !sd->IsBoolSetting() && !(sd->flags & SF_GUI_DROPDOWN)) {
if (this->last_clicked == pe && !sd->IsBoolSetting() && !sd->flags.Test(SettingFlag::GuiDropdown)) {
int64_t value64 = value;
/* Show the correct currency-translated value */
if (sd->flags & SF_GUI_CURRENCY) value64 *= GetCurrency().rate;
if (sd->flags.Test(SettingFlag::GuiCurrency)) value64 *= GetCurrency().rate;
CharSetFilter charset_filter = CS_NUMERAL; //default, only numeric input allowed
if (min_val < 0) charset_filter = CS_NUMERAL_SIGNED; // special case, also allow '-' sign for negative input
@ -2741,7 +2741,7 @@ struct GameSettingsWindow : Window {
long long llvalue = atoll(str->c_str());
/* Save the correct currency-translated value */
if (sd->flags & SF_GUI_CURRENCY) llvalue /= GetCurrency().rate;
if (sd->flags.Test(SettingFlag::GuiCurrency)) llvalue /= GetCurrency().rate;
value = ClampTo<int32_t>(llvalue);
} else {
@ -2781,7 +2781,7 @@ struct GameSettingsWindow : Window {
/* Deal with drop down boxes on the panel. */
assert(this->valuedropdown_entry != nullptr);
const IntSettingDesc *sd = this->valuedropdown_entry->setting;
assert(sd->flags & SF_GUI_DROPDOWN);
assert(sd->flags.Test(SettingFlag::GuiDropdown));
SetSettingValue(sd, index);
this->SetDirty();

View File

@ -13,23 +13,22 @@
#include <variant>
#include "saveload/saveload.h"
enum SettingFlag : uint16_t {
SF_NONE = 0,
SF_GUI_0_IS_SPECIAL = 1 << 0, ///< A value of zero is possible and has a custom string (the one after "strval").
SF_GUI_DROPDOWN = 1 << 2, ///< The value represents a limited number of string-options (internally integer) presented as dropdown.
SF_GUI_CURRENCY = 1 << 3, ///< The number represents money, so when reading value multiply by exchange rate.
SF_NETWORK_ONLY = 1 << 4, ///< This setting only applies to network games.
SF_NO_NETWORK = 1 << 5, ///< This setting does not apply to network games; it may not be changed during the game.
SF_NEWGAME_ONLY = 1 << 6, ///< This setting cannot be changed in a game.
SF_SCENEDIT_TOO = 1 << 7, ///< This setting can be changed in the scenario editor (only makes sense when SF_NEWGAME_ONLY is set).
SF_SCENEDIT_ONLY = 1 << 8, ///< This setting can only be changed in the scenario editor.
SF_PER_COMPANY = 1 << 9, ///< This setting can be different for each company (saved in company struct).
SF_NOT_IN_SAVE = 1 << 10, ///< Do not save with savegame, basically client-based.
SF_NOT_IN_CONFIG = 1 << 11, ///< Do not save to config file.
SF_NO_NETWORK_SYNC = 1 << 12, ///< Do not synchronize over network (but it is saved if SF_NOT_IN_SAVE is not set).
SF_SANDBOX = 1 << 13, ///< This setting is a sandbox setting.
enum class SettingFlag : uint8_t {
GuiZeroIsSpecial, ///< A value of zero is possible and has a custom string (the one after "strval").
GuiDropdown, ///< The value represents a limited number of string-options (internally integer) presented as dropdown.
GuiCurrency, ///< The number represents money, so when reading value multiply by exchange rate.
NetworkOnly, ///< This setting only applies to network games.
NoNetwork, ///< This setting does not apply to network games; it may not be changed during the game.
NewgameOnly, ///< This setting cannot be changed in a game.
SceneditToo, ///< This setting can be changed in the scenario editor (only makes sense when SettingFlag::NewgameOnly is set).
SceneditOnly, ///< This setting can only be changed in the scenario editor.
PerCompany, ///< This setting can be different for each company (saved in company struct).
NotInSave, ///< Do not save with savegame, basically client-based.
NotInConfig, ///< Do not save to config file.
NoNetworkSync, ///< Do not synchronize over network (but it is saved if SettingFlag::NotInSave is not set).
Sandbox, ///< This setting is a sandbox setting.
};
DECLARE_ENUM_AS_BIT_SET(SettingFlag)
using SettingFlags = EnumBitSet<SettingFlag, uint16_t>;
/**
* A SettingCategory defines a grouping of the settings.
@ -70,11 +69,11 @@ struct IniItem;
/** Properties of config file settings. */
struct SettingDesc {
SettingDesc(const SaveLoad &save, SettingFlag flags, bool startup) :
SettingDesc(const SaveLoad &save, SettingFlags flags, bool startup) :
flags(flags), startup(startup), save(save) {}
virtual ~SettingDesc() = default;
SettingFlag flags; ///< Handles how a setting would show up in the GUI (text/currency, etc.).
SettingFlags flags; ///< Handles how a setting would show up in the GUI (text/currency, etc.).
bool startup; ///< Setting has to be loaded directly at startup?.
SaveLoad save; ///< Internal structure (going to savegame, parts to config).
@ -178,7 +177,7 @@ struct IntSettingDesc : SettingDesc {
std::enable_if_t<std::disjunction_v<std::is_convertible<Tmax, uint32_t>, std::is_base_of<StrongTypedefBase, Tmax>>, int> = 0,
std::enable_if_t<std::disjunction_v<std::is_convertible<Tinterval, int32_t>, std::is_base_of<StrongTypedefBase, Tinterval>>, int> = 0
>
IntSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, Tdef def,
IntSettingDesc(const SaveLoad &save, SettingFlags flags, bool startup, Tdef def,
Tmin min, Tmax max, Tinterval interval, StringID str, StringID str_help, StringID str_val,
SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
@ -260,7 +259,7 @@ private:
/** Boolean setting. */
struct BoolSettingDesc : IntSettingDesc {
BoolSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, bool def,
BoolSettingDesc(const SaveLoad &save, SettingFlags flags, bool startup, bool def,
StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
@ -279,7 +278,7 @@ struct BoolSettingDesc : IntSettingDesc {
struct OneOfManySettingDesc : IntSettingDesc {
typedef size_t OnConvert(const char *value); ///< callback prototype for conversion error
OneOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, int32_t def,
OneOfManySettingDesc(const SaveLoad &save, SettingFlags flags, bool startup, int32_t def,
int32_t max, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
@ -302,7 +301,7 @@ struct OneOfManySettingDesc : IntSettingDesc {
/** Many of many setting. */
struct ManyOfManySettingDesc : OneOfManySettingDesc {
ManyOfManySettingDesc(const SaveLoad &save, SettingFlag flags, bool startup,
ManyOfManySettingDesc(const SaveLoad &save, SettingFlags flags, bool startup,
int32_t def, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
@ -331,7 +330,7 @@ struct StringSettingDesc : SettingDesc {
*/
typedef void PostChangeCallback(const std::string &value);
StringSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, const char *def,
StringSettingDesc(const SaveLoad &save, SettingFlags flags, bool startup, const char *def,
uint32_t max_length, PreChangeCheck pre_check, PostChangeCallback post_callback) :
SettingDesc(save, flags, startup), def(def == nullptr ? "" : def), max_length(max_length),
pre_check(pre_check), post_callback(post_callback) {}
@ -358,7 +357,7 @@ private:
/** List/array settings. */
struct ListSettingDesc : SettingDesc {
ListSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, const char *def) :
ListSettingDesc(const SaveLoad &save, SettingFlags flags, bool startup, const char *def) :
SettingDesc(save, flags, startup), def(def) {}
const char *def; ///< default value given when none is present
@ -373,7 +372,7 @@ struct ListSettingDesc : SettingDesc {
/** Placeholder for settings that have been removed, but might still linger in the savegame. */
struct NullSettingDesc : SettingDesc {
NullSettingDesc(const SaveLoad &save) :
SettingDesc(save, SF_NOT_IN_CONFIG, false) {}
SettingDesc(save, SettingFlag::NotInConfig, false) {}
std::string FormatValue(const void *) const override { NOT_REACHED(); }
void ParseValue(const IniItem *, void *) const override { NOT_REACHED(); }

View File

@ -20,14 +20,14 @@ static const SettingVariant _company_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(CompanySettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(CompanySettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size");
[defaults]
flags = SF_PER_COMPANY
flags = SettingFlag::PerCompany
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -58,7 +58,7 @@ cat = SC_BASIC
[SDT_VAR]
var = engine_renew_months
type = SLE_INT16
flags = SF_PER_COMPANY
flags = SettingFlag::PerCompany
def = 6
min = -12
max = 12
@ -70,7 +70,7 @@ val_cb = SettingsValueAbsolute
[SDT_VAR]
var = engine_renew_money
type = SLE_UINT
flags = SF_PER_COMPANY | SF_GUI_CURRENCY
flags = SettingFlag::PerCompany, SettingFlag::GuiCurrency
def = 100000
min = 0
max = 2000000
@ -92,7 +92,7 @@ post_cb = UpdateAllServiceInterval
[SDT_VAR]
var = vehicle.servint_trains
type = SLE_UINT16
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::PerCompany, SettingFlag::GuiZeroIsSpecial
def = DEF_SERVINT_DAYS_TRAINS
min = MIN_SERVINT_MINUTES
max = MAX_SERVINT_DAYS
@ -109,7 +109,7 @@ range_cb = GetServiceIntervalRange
[SDT_VAR]
var = vehicle.servint_roadveh
type = SLE_UINT16
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::PerCompany, SettingFlag::GuiZeroIsSpecial
def = DEF_SERVINT_DAYS_ROADVEH
min = MIN_SERVINT_MINUTES
max = MAX_SERVINT_DAYS
@ -126,7 +126,7 @@ range_cb = GetServiceIntervalRange
[SDT_VAR]
var = vehicle.servint_ships
type = SLE_UINT16
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::PerCompany, SettingFlag::GuiZeroIsSpecial
def = DEF_SERVINT_DAYS_SHIPS
min = MIN_SERVINT_MINUTES
max = MAX_SERVINT_DAYS
@ -143,7 +143,7 @@ range_cb = GetServiceIntervalRange
[SDT_VAR]
var = vehicle.servint_aircraft
type = SLE_UINT16
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::PerCompany, SettingFlag::GuiZeroIsSpecial
def = DEF_SERVINT_DAYS_AIRCRAFT
min = MIN_SERVINT_MINUTES
max = MAX_SERVINT_DAYS

View File

@ -11,14 +11,14 @@ static const SettingVariant _currency_settings_table[] = {
[post-amble]
};
[templates]
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, $def_cb, $range_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_VAR = SDT_VAR (CurrencySpec, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_SSTR = SDT_SSTR(CurrencySpec, $var, $type, SettingFlags({$flags}), $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CurrencySpec.$var exceeds storage size");
[defaults]
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT

View File

@ -20,16 +20,16 @@ static const SettingVariant _difficulty_settings_table[] = {
[post-amble]
};
[templates]
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, $def_cb, $range_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, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, SettingFlags({$flags}), $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR (GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -84,7 +84,7 @@ max = 3
var = difficulty.number_towns
type = SLE_UINT8
from = SLV_97
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = 2
min = 0
max = 4
@ -96,7 +96,7 @@ cat = SC_BASIC
var = difficulty.industry_density
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = ID_NORMAL
min = 0
max = ID_END - 1
@ -110,7 +110,7 @@ cat = SC_BASIC
var = difficulty.max_loan
type = SLE_UINT32
from = SLV_97
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_CURRENCY | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::NewgameOnly, SettingFlag::SceneditToo, SettingFlag::GuiCurrency, SettingFlag::GuiZeroIsSpecial
def = 300000
min = LOAN_INTERVAL
max = MAX_LOAN_LIMIT
@ -125,7 +125,7 @@ cat = SC_BASIC
var = difficulty.initial_interest
type = SLE_UINT8
from = SLV_97
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO
flags = SettingFlag::NewgameOnly, SettingFlag::SceneditToo
def = 2
min = 2
max = 4
@ -138,7 +138,7 @@ strval = STR_CONFIG_SETTING_PERCENTAGE
var = difficulty.vehicle_costs
type = SLE_UINT8
from = SLV_97
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN
flags = SettingFlag::NewgameOnly, SettingFlag::SceneditToo, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -152,7 +152,7 @@ cat = SC_BASIC
var = difficulty.competitor_speed
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 4
@ -175,7 +175,7 @@ max = 2
var = difficulty.vehicle_breakdowns
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -189,7 +189,7 @@ cat = SC_BASIC
var = difficulty.subsidy_multiplier
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 3
@ -202,7 +202,7 @@ strval = STR_SUBSIDY_X1_5
var = difficulty.subsidy_duration
type = SLE_UINT16
from = SLV_CUSTOM_SUBSIDY_DURATION
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
def = 1
min = 0
max = 5000
@ -216,7 +216,7 @@ strval = STR_CONFIG_SETTING_SUBSIDY_DURATION_VALUE
var = difficulty.construction_cost
type = SLE_UINT8
from = SLV_97
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN
flags = SettingFlag::NewgameOnly, SettingFlag::SceneditToo, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -230,7 +230,7 @@ cat = SC_BASIC
var = difficulty.terrain_type
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 1
min = 0
max = 5
@ -244,7 +244,7 @@ cat = SC_BASIC
var = difficulty.quantity_sea_lakes
type = SLE_UINT8
from = SLV_97
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = 0
min = 0
max = 4
@ -278,7 +278,7 @@ cat = SC_BASIC
var = difficulty.town_council_tolerance
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 0
min = 0
max = 3
@ -292,7 +292,7 @@ post_cb = DifficultyNoiseChange
name = ""diff_level""
var = _old_diff_level
type = SLE_UINT8
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
from = SLV_97
to = SLV_178
def = 3
@ -302,7 +302,7 @@ cat = SC_BASIC
[SDT_BOOL]
var = difficulty.infinite_money
flags = SF_SANDBOX
flags = SettingFlag::Sandbox
def = false
str = STR_CONFIG_SETTING_INFINITE_MONEY
strhelp = STR_CONFIG_SETTING_INFINITE_MONEY_HELPTEXT

View File

@ -16,14 +16,14 @@ static const SettingVariant _economy_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR (GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -47,7 +47,7 @@ startup = false
var = economy.town_layout
type = SLE_UINT8
from = SLV_59
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = TL_ORIGINAL
min = TL_BEGIN
max = NUM_TLS - 1
@ -60,7 +60,7 @@ post_cb = TownFoundingChanged
[SDT_BOOL]
var = economy.allow_town_roads
from = SLV_113
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS
strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT
@ -69,7 +69,7 @@ strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT
var = economy.found_town
type = SLE_UINT8
from = SLV_128
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = TF_FORBIDDEN
min = TF_BEGIN
max = TF_END - 1
@ -83,7 +83,7 @@ cat = SC_BASIC
[SDT_BOOL]
var = economy.allow_town_level_crossings
from = SLV_143
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS
strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT
@ -92,7 +92,7 @@ strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT
var = economy.town_cargogen_mode
type = SLE_UINT8
from = SLV_TOWN_CARGOGEN
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = TCGM_BITCOUNT
min = TCGM_BEGIN
max = TCGM_END - 1
@ -105,7 +105,7 @@ cat = SC_ADVANCED
[SDT_BOOL]
var = economy.station_noise_level
from = SLV_96
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = false
str = STR_CONFIG_SETTING_NOISE_LEVEL
strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT
@ -113,7 +113,7 @@ post_cb = [](auto new_value) { InvalidateWindowClassesData(WC_TOWN_VIEW, new_va
[SDT_BOOL]
var = economy.inflation
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = false
str = STR_CONFIG_SETTING_INFLATION
strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT
@ -173,7 +173,7 @@ cat = SC_BASIC
[SDT_VAR]
var = economy.type
type = SLE_UINT8
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = ET_SMOOTH
min = ET_BEGIN
max = ET_END - 1
@ -200,7 +200,7 @@ cat = SC_EXPERT
var = economy.town_growth_rate
type = SLE_UINT8
from = SLV_54
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 4
@ -212,7 +212,7 @@ strval = STR_CONFIG_SETTING_TOWN_GROWTH_NONE
var = economy.larger_towns
type = SLE_UINT8
from = SLV_54
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
def = 4
min = 0
max = 255
@ -294,7 +294,7 @@ cat = SC_BASIC
[SDT_VAR]
var = economy.timekeeping_units
type = SLE_UINT8
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY | SF_SCENEDIT_TOO
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly, SettingFlag::SceneditToo
def = TKU_CALENDAR
min = TKU_CALENDAR
max = TKU_WALLCLOCK
@ -307,7 +307,7 @@ cat = SC_BASIC
[SDT_VAR]
var = economy.minutes_per_calendar_year
type = SLE_UINT16
flags = SF_GUI_0_IS_SPECIAL | SF_NO_NETWORK
flags = SettingFlag::GuiZeroIsSpecial, SettingFlag::NoNetwork
def = CalendarTime::DEF_MINUTES_PER_YEAR
min = CalendarTime::FROZEN_MINUTES_PER_YEAR
max = CalendarTime::MAX_MINUTES_PER_YEAR
@ -322,7 +322,7 @@ cat = SC_BASIC
[SDT_VAR]
var = economy.town_cargo_scale
type = SLE_UINT16
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = DEF_CARGO_SCALE
min = MIN_CARGO_SCALE
max = MAX_CARGO_SCALE
@ -335,7 +335,7 @@ cat = SC_BASIC
[SDT_VAR]
var = economy.industry_cargo_scale
type = SLE_UINT16
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = DEF_CARGO_SCALE
min = MIN_CARGO_SCALE
max = MAX_CARGO_SCALE

View File

@ -26,12 +26,12 @@ static const SettingVariant _game_settings_table[] = {
[post-amble]
};
[templates]
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_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, $def_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, $def_cb, $from, $to, $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, $def_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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTG_BOOL = SDTG_BOOL($name, SettingFlags({$flags}), $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, SettingFlags({$flags}), $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTC_BOOL = SDTC_BOOL( $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
@ -39,7 +39,7 @@ SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$va
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -67,7 +67,7 @@ strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT
[SDT_BOOL]
var = order.improved_load
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
cat = SC_EXPERT
@ -93,13 +93,13 @@ cat = SC_EXPERT
[SDT_BOOL]
var = order.gradual_loading
from = SLV_40
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
cat = SC_EXPERT
[SDT_BOOL]
var = station.never_expire_airports
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = false
str = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT
@ -144,7 +144,7 @@ post_cb = [](auto) { CloseWindowById(WC_SELECT_STATION, 0); }
var = vehicle.road_side
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN | SF_NO_NETWORK
flags = SettingFlag::GuiDropdown, SettingFlag::NoNetwork
def = 1
max = 1
full = _roadsides
@ -157,7 +157,7 @@ cat = SC_BASIC
[SDT_VAR]
var = vehicle.train_acceleration_model
type = SLE_UINT8
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 1
min = 0
max = 1
@ -171,7 +171,7 @@ post_cb = TrainAccelerationModelChanged
var = vehicle.roadveh_acceleration_model
type = SLE_UINT8
from = SLV_139
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 1
min = 0
max = 1
@ -226,7 +226,7 @@ cat = SC_BASIC
var = vehicle.smoke_amount
type = SLE_UINT8
from = SLV_145
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 2
@ -236,7 +236,7 @@ strval = STR_CONFIG_SETTING_NONE
[SDT_BOOL]
var = vehicle.never_expire_vehicles
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = false
str = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES
strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT
@ -291,7 +291,7 @@ cat = SC_BASIC
[SDT_BOOL]
var = vehicle.wagon_speed_limits
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT
@ -300,7 +300,7 @@ post_cb = UpdateConsists
[SDT_BOOL]
var = vehicle.disable_elrails
from = SLV_38
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = false
str = STR_CONFIG_SETTING_DISABLE_ELRAILS
strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT
@ -311,7 +311,7 @@ cat = SC_EXPERT
var = vehicle.freight_trains
type = SLE_UINT8
from = SLV_39
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 1
min = 1
max = 255
@ -325,7 +325,7 @@ post_cb = UpdateConsists
var = vehicle.plane_speed
type = SLE_UINT8
from = SLV_90
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 4
min = 1
max = 4
@ -336,7 +336,7 @@ strval = STR_CONFIG_SETTING_PLANE_SPEED_VALUE
[SDT_BOOL]
var = vehicle.dynamic_engines
from = SLV_95
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
pre_cb = CheckDynamicEngines
cat = SC_EXPERT
@ -345,7 +345,7 @@ cat = SC_EXPERT
var = vehicle.plane_crashes
type = SLE_UINT8
from = SLV_138
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 2
@ -367,7 +367,7 @@ cat = SC_EXPERT
[SDTG_BOOL]
name = ""vehicle.servint_ispercent""
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
var = _old_vds.servint_ispercent
def = false
to = SLV_120
@ -375,7 +375,7 @@ to = SLV_120
[SDTG_VAR]
name = ""vehicle.servint_trains""
type = SLE_UINT16
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
var = _old_vds.servint_trains
def = 150
min = 5
@ -385,7 +385,7 @@ to = SLV_120
[SDTG_VAR]
name = ""vehicle.servint_roadveh""
type = SLE_UINT16
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
var = _old_vds.servint_roadveh
def = 150
min = 5
@ -395,7 +395,7 @@ to = SLV_120
[SDTG_VAR]
name = ""vehicle.servint_ships""
type = SLE_UINT16
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
var = _old_vds.servint_ships
def = 360
min = 5
@ -405,7 +405,7 @@ to = SLV_120
[SDTG_VAR]
name = ""vehicle.servint_aircraft""
type = SLE_UINT16
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
var = _old_vds.servint_aircraft
def = 150
min = 5

View File

@ -25,16 +25,16 @@ static const SettingVariant _gui_settings_table[] = {
[post-amble]
};
[templates]
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTC_BOOL = SDTC_BOOL( $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY( $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_VAR = SDTC_VAR( $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTC_OMANY = 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");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -57,21 +57,21 @@ startup = false
[SDTC_VAR]
var = gui.autosave_interval
type = SLE_UINT32
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 10
min = 0
max = 1440
[SDTC_BOOL]
var = gui.threaded_saves
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
cat = SC_EXPERT
[SDTC_OMANY]
var = gui.date_format_in_default_names
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _savegame_date
@ -81,7 +81,7 @@ strval = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG
[SDTC_BOOL]
var = gui.show_finances
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SHOWFINANCES
str_cb = SettingTitleWallclock
@ -92,7 +92,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.auto_scrolling
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 3
@ -105,7 +105,7 @@ cat = SC_BASIC
ifdef = UNIX
var = gui.scroll_mode
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = VSM_MAP_RMB
min = VSM_VIEWPORT_RMB_FIXED
max = VSM_MAP_LMB
@ -118,7 +118,7 @@ cat = SC_BASIC
ifndef = UNIX
var = gui.scroll_mode
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = VSM_VIEWPORT_RMB_FIXED
min = VSM_VIEWPORT_RMB_FIXED
max = VSM_MAP_LMB
@ -129,7 +129,7 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.smooth_scroll
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SMOOTH_SCROLLING
strhelp = STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT
@ -137,7 +137,7 @@ strhelp = STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT
[SDTC_OMANY]
var = gui.right_click_wnd_close
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = RCC_NO
min = RCC_NO
max = RCC_YES_EXCEPT_STICKY
@ -152,7 +152,7 @@ cat = SC_BASIC
ifdef = __APPLE__
var = gui.right_mouse_btn_emulation
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -163,7 +163,7 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.measure_tooltip
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_MEASURE_TOOLTIP
strhelp = STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT
@ -172,7 +172,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.errmsg_duration
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 5
min = 0
max = 20
@ -183,7 +183,7 @@ strval = STR_CONFIG_SETTING_SECONDS_VALUE
[SDTC_VAR]
var = gui.hover_delay_ms
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial
def = 250
min = 50
max = 6000
@ -195,7 +195,7 @@ strval = STR_CONFIG_SETTING_HOVER_DELAY_VALUE
[SDTC_OMANY]
var = gui.osk_activation
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
str = STR_CONFIG_SETTING_OSK_ACTIVATION
strhelp = STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT
strval = STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED
@ -208,7 +208,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.toolbar_pos
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -221,7 +221,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.statusbar_pos
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -234,7 +234,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.window_snap_radius
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial
def = 10
min = 1
max = 32
@ -246,7 +246,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.window_soft_limit
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial
def = 20
min = 5
max = 255
@ -259,7 +259,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.zoom_min
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = ZOOM_LVL_MIN
min = ZOOM_LVL_MIN
max = ZOOM_LVL_NORMAL
@ -272,7 +272,7 @@ startup = true
[SDTC_VAR]
var = gui.zoom_max
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = ZOOM_LVL_MAX
min = ZOOM_LVL_OUT_2X
max = ZOOM_LVL_MAX
@ -285,7 +285,7 @@ startup = true
[SDTC_VAR]
var = gui.sprite_zoom_min
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = ZOOM_LVL_MIN
min = ZOOM_LVL_MIN
max = ZOOM_LVL_NORMAL
@ -296,7 +296,7 @@ post_cb = SpriteZoomMinChanged
[SDTC_BOOL]
var = gui.population_in_label
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_POPULATION_IN_LABEL
strhelp = STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT
@ -304,7 +304,7 @@ post_cb = [](auto) { UpdateAllTownVirtCoords(); }
[SDTC_BOOL]
var = gui.link_terraform_toolbar
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR
strhelp = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT
@ -312,7 +312,7 @@ strhelp = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT
[SDTC_VAR]
var = gui.smallmap_land_colour
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -324,7 +324,7 @@ post_cb = RedrawSmallmap
[SDTC_VAR]
var = gui.linkgraph_colours
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 3
@ -337,7 +337,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.liveries
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = LIT_ALL
min = LIT_NONE
max = LIT_ALL
@ -349,7 +349,7 @@ post_cb = InvalidateCompanyLiveryWindow
[SDTC_VAR]
var = gui.starting_colour
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = COLOUR_END
min = 0
max = COLOUR_END
@ -360,7 +360,7 @@ strval = STR_COLOUR_DARK_BLUE
[SDTC_VAR]
var = gui.starting_colour_secondary
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = COLOUR_END
min = 0
max = COLOUR_END
@ -370,7 +370,7 @@ strval = STR_COLOUR_SECONDARY_DARK_BLUE
[SDTC_BOOL]
var = gui.auto_remove_signals
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS
strhelp = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT
@ -378,7 +378,7 @@ cat = SC_ADVANCED
[SDTC_BOOL]
var = gui.prefer_teamchat
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_PREFER_TEAMCHAT
strhelp = STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT
@ -387,7 +387,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.scrollwheel_scrolling
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = SWS_ZOOM_MAP
min = SWS_ZOOM_MAP
max = SWS_OFF
@ -399,7 +399,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.scrollwheel_multiplier
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 5
min = 1
max = 15
@ -411,7 +411,7 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.pause_on_newgame
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME
strhelp = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT
@ -420,7 +420,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.advanced_vehicle_list
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -431,7 +431,7 @@ strval = STR_CONFIG_SETTING_COMPANIES_OFF
[SDTC_VAR]
var = gui.timetable_mode
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -444,7 +444,7 @@ cat = SC_ADVANCED
[SDTC_BOOL]
var = gui.timetable_arrival_departure
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE
strhelp = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT
@ -452,7 +452,7 @@ post_cb = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MOD
[SDTC_BOOL]
var = gui.quick_goto
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_QUICKGOTO
strhelp = STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT
@ -461,7 +461,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.loading_indicators
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -474,7 +474,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.default_rail_type
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -486,7 +486,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.signal_gui_mode
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 1
@ -499,7 +499,7 @@ cat = SC_ADVANCED
[SDTC_VAR]
var = gui.default_signal_type
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 5
min = 0
max = 5
@ -507,7 +507,7 @@ max = 5
[SDTC_VAR]
var = gui.coloured_news_year
type = SLE_INT32
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 2000
min = CalendarTime::MIN_YEAR
max = CalendarTime::MAX_YEAR
@ -520,7 +520,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.cycle_signal_types
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = SIGNAL_CYCLE_GROUP
min = SIGNAL_CYCLE_GROUP
max = SIGNAL_CYCLE_ALL
@ -533,7 +533,7 @@ cat = SC_ADVANCED
[SDTC_VAR]
var = gui.drag_signals_density
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 4
min = 1
max = 20
@ -545,7 +545,7 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.drag_signals_fixed_distance
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE
strhelp = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT
@ -554,7 +554,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.semaphore_build_before
type = SLE_INT32
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 1950
min = CalendarTime::MIN_YEAR
max = CalendarTime::MAX_YEAR
@ -566,7 +566,7 @@ post_cb = ResetSignalVariant
[SDTC_BOOL]
var = gui.vehicle_income_warn
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_WARN_INCOME_LESS
strhelp = STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT
@ -576,7 +576,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.order_review_system
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
min = 0
max = 2
@ -587,21 +587,21 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.lost_vehicle_warn
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_WARN_LOST_VEHICLE
strhelp = STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT
[SDTC_BOOL]
var = gui.old_vehicle_warn
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_WARN_OLD_VEHICLE
strhelp = STR_CONFIG_SETTING_WARN_OLD_VEHICLE_HELPTEXT
[SDTC_BOOL]
var = gui.new_nonstop
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT
strhelp = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT
@ -610,7 +610,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.stop_location
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 2
@ -623,45 +623,45 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.keep_all_autosave
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
[SDTC_BOOL]
var = gui.autosave_on_exit
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
cat = SC_BASIC
[SDTC_BOOL]
var = gui.autosave_on_network_disconnect
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
cat = SC_EXPERT
[SDTC_VAR]
var = gui.max_num_autosaves
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 16
min = 0
max = 255
[SDTC_BOOL]
var = gui.auto_euro
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
[SDTC_VAR]
var = gui.news_message_timeout
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 2
min = 1
max = 255
[SDTC_BOOL]
var = gui.show_track_reservation
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION
strhelp = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT
@ -671,7 +671,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.station_numtracks
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 1
min = 1
max = 7
@ -679,7 +679,7 @@ max = 7
[SDTC_VAR]
var = gui.station_platlength
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 5
min = 1
max = 7
@ -687,19 +687,19 @@ cat = SC_BASIC
[SDTC_BOOL]
var = gui.station_dragdrop
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
cat = SC_BASIC
[SDTC_BOOL]
var = gui.station_show_coverage
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
cat = SC_BASIC
[SDTC_BOOL]
var = gui.persistent_buildingtools
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS
strhelp = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT
@ -708,7 +708,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.station_gui_group_order
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 3
min = 0
max = 5
@ -717,7 +717,7 @@ interval = 1
[SDTC_VAR]
var = gui.station_gui_sort_by
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 0
min = 0
max = 3
@ -726,7 +726,7 @@ interval = 1
[SDTC_VAR]
var = gui.station_gui_sort_order
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 0
min = 0
max = 1
@ -735,7 +735,7 @@ interval = 1
[SDTC_VAR]
var = gui.missing_strings_threshold
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 25
min = 1
max = UINT8_MAX
@ -744,7 +744,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.graph_line_thickness
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 3
min = 1
max = 5
@ -755,7 +755,7 @@ post_cb = [](auto) { MarkWholeScreenDirty(); }
[SDTC_BOOL]
var = gui.show_newgrf_name
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME
strhelp = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT
@ -764,7 +764,7 @@ cat = SC_ADVANCED
[SDTC_BOOL]
var = gui.show_cargo_in_vehicle_lists
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
str = STR_CONFIG_SETTING_SHOW_CARGO_IN_LISTS
strhelp = STR_CONFIG_SETTING_SHOW_CARGO_IN_LISTS_HELPTEXT
@ -775,19 +775,19 @@ cat = SC_ADVANCED
[SDTC_BOOL]
ifdef = DEDICATED
var = gui.show_date_in_logs
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
[SDTC_BOOL]
ifndef = DEDICATED
var = gui.show_date_in_logs
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
[SDTC_VAR]
var = gui.settings_restriction_mode
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 0
min = 0
max = 2
@ -795,7 +795,7 @@ max = 2
[SDTC_VAR]
var = gui.developer
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 1
min = 0
max = 2
@ -804,34 +804,34 @@ post_cb = [](auto) { DebugReconsiderSendRemoteMessages(); }
[SDTC_BOOL]
var = gui.newgrf_developer_tools
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
post_cb = InvalidateNewGRFChangeWindows
cat = SC_EXPERT
[SDTC_BOOL]
var = gui.ai_developer_tools
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
post_cb = [](auto) { InvalidateWindowClassesData(WC_GAME_OPTIONS); InvalidateWindowClassesData(WC_SCRIPT_DEBUG); InvalidateWindowClassesData(WC_SCRIPT_SETTINGS); }
cat = SC_EXPERT
[SDTC_BOOL]
var = gui.scenario_developer
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
post_cb = InvalidateNewGRFChangeWindows
[SDTC_BOOL]
var = gui.newgrf_show_old_versions
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
cat = SC_EXPERT
[SDTC_VAR]
var = gui.newgrf_default_palette
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
min = 0
max = 1
@ -841,7 +841,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.console_backlog_timeout
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 100
min = 10
max = 65500
@ -849,7 +849,7 @@ max = 65500
[SDTC_VAR]
var = gui.console_backlog_length
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 100
min = 10
max = 65500
@ -857,7 +857,7 @@ max = 65500
[SDTC_VAR]
var = gui.refresh_rate
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 60
min = 10
max = 1000
@ -867,7 +867,7 @@ startup = true
[SDTC_VAR]
var = gui.fast_forward_speed_limit
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NO_NETWORK
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial, SettingFlag::NoNetwork
def = 2500
min = 0
max = 50000
@ -880,7 +880,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = gui.network_chat_box_width_pct
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 40
min = 10
max = 100
@ -889,7 +889,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.network_chat_box_height
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 25
min = 5
max = 255
@ -898,7 +898,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = gui.network_chat_timeout
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 20
min = 1
max = 65535
@ -906,7 +906,7 @@ cat = SC_EXPERT
[SDTC_BOOL]
var = gui.scale_bevels
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
post_cb = [](auto) { SetupWidgetDimensions(); ReInitAllWindows(true); }
cat = SC_BASIC

View File

@ -12,13 +12,13 @@ static const SettingVariant _linkgraph_settings_table[] = {
[post-amble]
};
[templates]
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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -68,7 +68,7 @@ extra = offsetof(LinkGraphSettings, recalc_time)
var = linkgraph.distribution_pax
type = SLE_UINT8
from = SLV_183
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = DT_MANUAL
min = DT_MIN
max = DT_MAX
@ -82,7 +82,7 @@ extra = offsetof(LinkGraphSettings, distribution_pax)
var = linkgraph.distribution_mail
type = SLE_UINT8
from = SLV_183
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = DT_MANUAL
min = DT_MIN
max = DT_MAX
@ -96,7 +96,7 @@ extra = offsetof(LinkGraphSettings, distribution_mail)
var = linkgraph.distribution_armoured
type = SLE_UINT8
from = SLV_183
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = DT_MANUAL
min = DT_MIN
max = DT_MAX
@ -110,7 +110,7 @@ extra = offsetof(LinkGraphSettings, distribution_armoured)
var = linkgraph.distribution_default
type = SLE_UINT8
from = SLV_183
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = DT_MANUAL
min = DT_BEGIN
max = DT_MAX_NONSYMMETRIC

View File

@ -21,16 +21,16 @@ static const SettingVariant _locale_settings_table[] = {
[post-amble]
};
[templates]
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $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, $def_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),
SDTG_OMANY = SDTG_OMANY($name, $type, SettingFlags({$flags}), $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -53,7 +53,7 @@ startup = false
var = locale.currency
type = SLE_UINT8
from = SLV_97
flags = SF_NO_NETWORK_SYNC
flags = SettingFlag::NoNetworkSync
def = 0
max = CURRENCY_END - 1
full = _locale_currencies
@ -66,7 +66,7 @@ var = _old_units
type = SLE_UINT8
from = SLV_97
to = SLV_184
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
def = 1
max = 2
full = _locale_units
@ -77,7 +77,7 @@ cat = SC_BASIC
var = locale.units_velocity
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 4
full = _locale_units
@ -91,7 +91,7 @@ val_cb = SettingsValueVelocityUnit
var = locale.units_velocity_nautical
type = SLE_UINT8
from = SLV_VELOCITY_NAUTICAL
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 4
full = _locale_units
@ -105,7 +105,7 @@ val_cb = SettingsValueVelocityUnit
var = locale.units_power
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
@ -119,7 +119,7 @@ strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL
var = locale.units_weight
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
@ -133,7 +133,7 @@ strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL
var = locale.units_volume
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
@ -147,7 +147,7 @@ strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL
var = locale.units_force
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _locale_units
@ -161,7 +161,7 @@ strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL
var = locale.units_height
type = SLE_UINT8
from = SLV_184
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
@ -175,7 +175,7 @@ strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL
var = locale.digit_group_separator
type = SLE_STRQ
from = SLV_118
flags = SF_NO_NETWORK_SYNC
flags = SettingFlag::NoNetworkSync
def = nullptr
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
@ -184,7 +184,7 @@ cat = SC_BASIC
var = locale.digit_group_separator_currency
type = SLE_STRQ
from = SLV_118
flags = SF_NO_NETWORK_SYNC
flags = SettingFlag::NoNetworkSync
def = nullptr
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
@ -193,7 +193,7 @@ cat = SC_BASIC
var = locale.digit_decimal_separator
type = SLE_STRQ
from = SLV_126
flags = SF_NO_NETWORK_SYNC
flags = SettingFlag::NoNetworkSync
def = nullptr
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC

View File

@ -25,19 +25,19 @@ static const SettingVariant _misc_settings_table[] = {
[post-amble]
};
[templates]
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, $str_cb, $help_cb, $val_cb, $def_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, $def_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, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTG_LIST = SDTG_LIST($name, $type, SettingFlags({$flags}), $var, $def, $length, $from, $to, $cat, $extra, $startup),
SDTG_MMANY = SDTG_MMANY($name, $type, SettingFlags({$flags}), $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_OMANY = SDTG_OMANY($name, $type, SettingFlags({$flags}), $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_SSTR = SDTG_SSTR($name, $type, SettingFlags({$flags}), $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTG_BOOL = SDTG_BOOL($name, SettingFlags({$flags}), $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, SettingFlags({$flags}), $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
[defaults]
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT

View File

@ -12,15 +12,15 @@ static const SettingVariant _multimedia_settings_table[] = {
[post-amble]
};
[templates]
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTC_BOOL = SDTC_BOOL( $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_LIST = SDTC_LIST( $var, $type, SettingFlags({$flags}), $def, $from, $to, $cat, $extra, $startup),
SDTC_VAR = SDTC_VAR( $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -42,21 +42,21 @@ startup = false
[SDTC_BOOL]
var = sound.news_ticker
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_TICKER
strhelp = STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT
[SDTC_BOOL]
var = sound.news_full
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_NEWS
strhelp = STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT
[SDTC_BOOL]
var = sound.new_year
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_NEW_YEAR
str_cb = SettingTitleWallclock
@ -65,35 +65,35 @@ help_cb = SettingHelpWallclock
[SDTC_BOOL]
var = sound.confirm
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_CONFIRM
strhelp = STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT
[SDTC_BOOL]
var = sound.click_beep
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_CLICK
strhelp = STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT
[SDTC_BOOL]
var = sound.disaster
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_DISASTER
strhelp = STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT
[SDTC_BOOL]
var = sound.vehicle
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_VEHICLE
strhelp = STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT
[SDTC_BOOL]
var = sound.ambient
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
str = STR_CONFIG_SETTING_SOUND_AMBIENT
strhelp = STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT
@ -101,7 +101,7 @@ strhelp = STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT
[SDTC_VAR]
var = music.playlist
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 0
min = 0
max = 5
@ -111,7 +111,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = music.music_vol
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 50
min = 0
max = 127
@ -121,7 +121,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = music.effect_vol
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 100
min = 0
max = 127
@ -131,25 +131,25 @@ cat = SC_BASIC
[SDTC_LIST]
var = music.custom_1
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
cat = SC_BASIC
[SDTC_LIST]
var = music.custom_2
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
cat = SC_BASIC
[SDTC_BOOL]
var = music.playing
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = true
cat = SC_BASIC
[SDTC_BOOL]
var = music.shuffle
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = false
cat = SC_BASIC

View File

@ -14,15 +14,15 @@ static const SettingVariant _network_private_settings_table[] = {
[post-amble]
};
[templates]
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_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_BOOL = SDTC_BOOL( $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY( $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_SSTR = SDTC_SSTR( $var, $type, SettingFlags({$flags}), $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -46,7 +46,7 @@ startup = false
var = network.client_name
type = SLE_STR
length = NETWORK_CLIENT_NAME_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
pre_cb = NetworkValidateClientName
post_cb = NetworkUpdateClientName
@ -56,7 +56,7 @@ cat = SC_BASIC
var = network.server_name
type = SLE_STR
length = NETWORK_NAME_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr
pre_cb = NetworkValidateServerName
post_cb = [](auto) { UpdateClientConfigValues(); }
@ -66,21 +66,21 @@ cat = SC_BASIC
var = network.connect_to_ip
type = SLE_STR
length = 0
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
[SDTC_SSTR]
var = network.last_joined
type = SLE_STR
length = 0
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = """"
cat = SC_EXPERT
[SDTC_OMANY]
var = network.use_relay_service
type = SLE_UINT8
flags = SF_GUI_DROPDOWN | SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::GuiDropdown, SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = URS_ASK
min = URS_NO
max = URS_ALLOW
@ -93,7 +93,7 @@ cat = SC_BASIC
[SDTC_OMANY]
var = network.participate_survey
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = PS_ASK
min = PS_ASK
max = PS_YES

View File

@ -13,12 +13,12 @@ static const SettingVariant _network_secrets_settings_table[] = {
[post-amble]
};
[templates]
SDTC_SSTR = SDTC_SSTR( $var, $type, $flags, $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTC_SSTR = SDTC_SSTR( $var, $type, SettingFlags({$flags}), $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
[validation]
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -38,7 +38,7 @@ startup = false
var = network.server_password
type = SLE_STR
length = NETWORK_PASSWORD_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr
pre_cb = ReplaceAsteriskWithEmptyPassword
post_cb = [](auto) { NetworkServerUpdateGameInfo(); }
@ -48,7 +48,7 @@ cat = SC_BASIC
var = network.rcon_password
type = SLE_STR
length = NETWORK_PASSWORD_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr
pre_cb = ReplaceAsteriskWithEmptyPassword
cat = SC_BASIC
@ -57,7 +57,7 @@ cat = SC_BASIC
var = network.admin_password
type = SLE_STR
length = NETWORK_PASSWORD_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr
cat = SC_BASIC
@ -65,7 +65,7 @@ cat = SC_BASIC
var = network.client_secret_key
type = SLE_STR
length = NETWORK_SECRET_KEY_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
; Prevent the user from setting the secret key from the console using 'setting'
pre_cb = [](auto) { return false; }
@ -74,7 +74,7 @@ pre_cb = [](auto) { return false; }
var = network.client_public_key
type = SLE_STR
length = NETWORK_SECRET_KEY_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = nullptr
; Prevent the user from setting the public key from the console using 'setting'
pre_cb = [](auto) { return false; }
@ -83,12 +83,12 @@ pre_cb = [](auto) { return false; }
var = network.server_invite_code
type = SLE_STR
length = NETWORK_INVITE_CODE_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr
[SDTC_SSTR]
var = network.server_invite_code_secret
type = SLE_STR
length = NETWORK_INVITE_CODE_SECRET_LENGTH
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = nullptr

View File

@ -16,16 +16,16 @@ static const SettingVariant _network_settings_table[] = {
[post-amble]
};
[templates]
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTC_BOOL = SDTC_BOOL( $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY( $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_VAR = SDTC_VAR( $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTC_OMANY = 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");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -48,7 +48,7 @@ startup = false
[SDTC_VAR]
var = network.sync_freq
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NOT_IN_CONFIG | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NotInConfig, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 100
min = 0
max = 100
@ -57,7 +57,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.frame_freq
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NOT_IN_CONFIG | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NotInConfig, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 0
min = 0
max = 100
@ -66,7 +66,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.commands_per_frame
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 2
min = 1
max = 65535
@ -75,7 +75,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.commands_per_frame_server
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 16
min = 1
max = 65535
@ -84,7 +84,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.max_commands_in_queue
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 16
min = 1
max = 65535
@ -93,7 +93,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.bytes_per_frame
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 8
min = 1
max = 65535
@ -102,7 +102,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.bytes_per_frame_burst
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 256
min = 1
max = 65535
@ -111,7 +111,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.max_init_time
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 100
min = 0
max = 32000
@ -120,7 +120,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.max_join_time
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 500
min = 0
max = 32000
@ -128,7 +128,7 @@ max = 32000
[SDTC_VAR]
var = network.max_download_time
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 1000
min = 0
max = 32000
@ -136,7 +136,7 @@ max = 32000
[SDTC_VAR]
var = network.max_password_time
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 2000
min = 0
max = 32000
@ -144,20 +144,20 @@ max = 32000
[SDTC_VAR]
var = network.max_lag_time
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 500
min = 0
max = 32000
[SDTC_BOOL]
var = network.pause_on_join
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = true
[SDTC_VAR]
var = network.server_port
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = NETWORK_DEFAULT_PORT
min = 0
max = 65535
@ -166,7 +166,7 @@ cat = SC_EXPERT
[SDTC_VAR]
var = network.server_admin_port
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = NETWORK_ADMIN_PORT
min = 0
max = 65535
@ -174,20 +174,20 @@ cat = SC_EXPERT
[SDTC_BOOL]
var = network.server_admin_chat
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = true
cat = SC_EXPERT
[SDTC_BOOL]
var = network.allow_insecure_admin_login
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = false
cat = SC_EXPERT
[SDTC_OMANY]
var = network.server_game_type
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = SERVER_GAME_TYPE_LOCAL
min = SERVER_GAME_TYPE_LOCAL
max = SERVER_GAME_TYPE_INVITE_ONLY
@ -197,13 +197,13 @@ cat = SC_BASIC
[SDTC_BOOL]
var = network.autoclean_companies
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = false
[SDTC_VAR]
var = network.autoclean_protected
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial, SettingFlag::NetworkOnly
def = 36
min = 0
max = 240
@ -211,7 +211,7 @@ max = 240
[SDTC_VAR]
var = network.autoclean_novehicles
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial, SettingFlag::NetworkOnly
def = 0
min = 0
max = 240
@ -219,7 +219,7 @@ max = 240
[SDTC_VAR]
var = network.max_companies
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 15
min = 1
max = MAX_COMPANIES
@ -229,7 +229,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = network.max_clients
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 25
min = 2
max = MAX_CLIENTS
@ -239,7 +239,7 @@ cat = SC_BASIC
[SDTC_VAR]
var = network.restart_game_year
type = SLE_INT32
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial, SettingFlag::NetworkOnly
def = 0
min = CalendarTime::MIN_YEAR
max = CalendarTime::MAX_YEAR
@ -248,7 +248,7 @@ interval = 1
[SDTC_VAR]
var = network.restart_hours
type = SLE_UINT16
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiZeroIsSpecial, SettingFlag::NetworkOnly
def = 0
min = 0
max = UINT16_MAX
@ -258,13 +258,13 @@ post_cb = [](auto) { ChangeNetworkRestartTime(false); }
[SDTC_VAR]
var = network.min_active_clients
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = 0
min = 0
max = MAX_CLIENTS
[SDTC_BOOL]
var = network.reload_cfg
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::NetworkOnly
def = false
cat = SC_EXPERT

View File

@ -13,13 +13,13 @@ static const SettingVariant _news_display_settings_table[] = {
[post-amble]
};
[templates]
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY( $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -41,7 +41,7 @@ startup = false
[SDTC_OMANY]
var = news_display.arrival_player
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -52,7 +52,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.arrival_other
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _news_display
@ -63,7 +63,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.accident
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -74,7 +74,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.accident_other
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -85,7 +85,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.company_info
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -96,7 +96,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.open
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _news_display
@ -107,7 +107,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.close
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _news_display
@ -118,7 +118,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.economy
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -129,7 +129,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.production_player
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _news_display
@ -140,7 +140,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.production_other
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
max = 2
full = _news_display
@ -151,7 +151,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.production_nobody
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
max = 2
full = _news_display
@ -162,7 +162,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.advice
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -173,7 +173,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.new_vehicles
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -184,7 +184,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.acceptance
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display
@ -195,7 +195,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.subsidies
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _news_display
@ -206,7 +206,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF
[SDTC_OMANY]
var = news_display.general
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _news_display

View File

@ -30,13 +30,13 @@ static const SettingVariant _old_gameopt_settings_table[] = {
[post-amble]
};
[templates]
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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTG_LIST = SDTG_LIST($name, $type, SettingFlags({$flags}), $var, $def, $length, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, SettingFlags({$flags}), $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_NULL = SDT_NULL( $length, $from, $to),
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $from, $to, $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, $def_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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY( $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_OMANY = SDTG_OMANY($name, $type, SettingFlags({$flags}), $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
@ -46,7 +46,7 @@ SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$va
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -72,7 +72,7 @@ name = ""diff_custom""
sdt_cmd = SDT_INTLIST
sle_cmd = SL_ARR
type = SLE_FILE_I16 | SLE_VAR_U16
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
var = _old_diff_custom
length = 17
def = nullptr
@ -83,7 +83,7 @@ name = ""diff_custom""
sdt_cmd = SDT_INTLIST
sle_cmd = SL_ARR
type = SLE_UINT16
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
var = _old_diff_custom
length = 18
def = nullptr
@ -94,7 +94,7 @@ from = SLV_4
name = ""diff_level""
var = _old_diff_level
type = SLE_UINT8
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
def = SP_CUSTOM
min = SP_EASY
max = SP_CUSTOM
@ -103,7 +103,7 @@ cat = SC_BASIC
[SDT_OMANY]
var = locale.currency
type = SLE_UINT8
flags = SF_NO_NETWORK_SYNC
flags = SettingFlag::NoNetworkSync
def = 0
max = CURRENCY_END - 1
full = _locale_currencies
@ -113,7 +113,7 @@ cat = SC_BASIC
name = ""units""
var = _old_units
type = SLE_UINT8
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
def = 1
max = 2
full = _locale_units

View File

@ -12,14 +12,14 @@ static const SettingVariant _pathfinding_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT

View File

@ -13,16 +13,16 @@ static const SettingVariant _script_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $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, $def_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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_OMANY = 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");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -46,7 +46,7 @@ startup = false
var = script.script_max_opcode_till_suspend
type = SLE_UINT32
from = SLV_107
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = 10000
min = 500
max = 250000
@ -60,7 +60,7 @@ cat = SC_EXPERT
var = script.script_max_memory_megabytes
type = SLE_UINT32
from = SLV_SCRIPT_MEMLIMIT
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = 1024
min = 8
max = 8192

View File

@ -17,14 +17,14 @@ static const SettingVariant _win32_settings_table[] = {
};
#endif /* _WIN32 */
[templates]
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDTG_BOOL = SDTG_BOOL($name, SettingFlags({$flags}), $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, SettingFlags({$flags}), $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
[defaults]
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT

View File

@ -13,14 +13,14 @@ static const SettingVariant _window_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(WindowDesc, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_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, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(WindowDesc, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(WindowDesc, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var exceeds storage size");
[defaults]
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT

View File

@ -18,16 +18,16 @@ static const SettingVariant _world_settings_table[] = {
[post-amble]
};
[templates]
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $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, $def_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, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
SDT_BOOL = SDT_BOOL(GameSettings, $var, SettingFlags({$flags}), $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDT_OMANY = 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");
[defaults]
flags = SF_NONE
flags =
interval = 0
str = STR_NULL
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
@ -53,7 +53,7 @@ startup = false
var = game_creation.town_name
type = SLE_UINT8
from = SLV_97
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 0
max = 255
full = _town_names
@ -63,7 +63,7 @@ cat = SC_BASIC
var = game_creation.landscape
type = SLE_UINT8
from = SLV_97
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 0
max = 3
full = _climates
@ -77,7 +77,7 @@ cat = SC_BASIC
var = game_creation.heightmap_height
type = SLE_UINT8
from = SLV_MAPGEN_SETTINGS_REVAMP
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM
min = MIN_HEIGHTMAP_HEIGHT
max = MAX_MAP_HEIGHT_LIMIT
@ -86,7 +86,7 @@ interval = 1
[SDT_VAR]
var = game_creation.snow_line_height
type = SLE_UINT8
flags = SF_SCENEDIT_ONLY
flags = SettingFlag::SceneditOnly
def = DEF_SNOWLINE_HEIGHT
min = MIN_SNOWLINE_HEIGHT
max = MAX_SNOWLINE_HEIGHT
@ -100,7 +100,7 @@ cat = SC_BASIC
var = game_creation.snow_coverage
type = SLE_UINT8
from = SLV_MAPGEN_SETTINGS_REVAMP
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = DEF_SNOW_COVERAGE
min = 0
max = 100
@ -114,7 +114,7 @@ cat = SC_BASIC
var = game_creation.desert_coverage
type = SLE_UINT8
from = SLV_MAPGEN_SETTINGS_REVAMP
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = DEF_DESERT_COVERAGE
min = 0
max = 100
@ -139,7 +139,7 @@ cat = SC_BASIC
var = game_creation.ending_year
type = SLE_INT32
from = SLV_ENDING_YEAR
flags = SF_GUI_0_IS_SPECIAL
flags = SettingFlag::GuiZeroIsSpecial
def = CalendarTime::DEF_END_YEAR
min = CalendarTime::MIN_YEAR
max = CalendarTime::MAX_YEAR - 1
@ -153,7 +153,7 @@ cat = SC_ADVANCED
var = game_creation.land_generator
type = SLE_UINT8
from = SLV_30
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 1
min = 0
max = 1
@ -176,7 +176,7 @@ strhelp = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT
var = game_creation.tgen_smoothness
type = SLE_UINT8
from = SLV_30
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 1
min = TGEN_SMOOTHNESS_BEGIN
max = TGEN_SMOOTHNESS_END - 1
@ -189,7 +189,7 @@ cat = SC_BASIC
var = game_creation.variety
type = SLE_UINT8
from = SLV_197
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 0
min = 0
max = 5
@ -201,7 +201,7 @@ strval = STR_VARIETY_NONE
var = game_creation.generation_seed
type = SLE_UINT32
from = SLV_30
flags = SF_NOT_IN_CONFIG
flags = SettingFlag::NotInConfig
def = GENERATE_NEW_SEED
min = 0
max = UINT32_MAX
@ -211,7 +211,7 @@ cat = SC_EXPERT
var = game_creation.tree_placer
type = SLE_UINT8
from = SLV_30
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY | SF_SCENEDIT_TOO
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly, SettingFlag::SceneditToo
def = 2
min = 0
max = 2
@ -223,7 +223,7 @@ cat = SC_BASIC
[SDT_VAR]
var = game_creation.heightmap_rotation
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 0
min = 0
max = 1
@ -234,7 +234,7 @@ cat = SC_BASIC
[SDT_VAR]
var = game_creation.se_flat_world_height
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 1
min = 0
max = 15
@ -245,7 +245,7 @@ cat = SC_BASIC
[SDT_VAR]
var = game_creation.map_x
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 8
min = MIN_MAP_SIZE_BITS
max = MAX_MAP_SIZE_BITS
@ -254,7 +254,7 @@ cat = SC_BASIC
[SDT_VAR]
var = game_creation.map_y
type = SLE_UINT8
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
flags = SettingFlag::NotInSave, SettingFlag::NoNetworkSync
def = 8
min = MIN_MAP_SIZE_BITS
max = MAX_MAP_SIZE_BITS
@ -288,7 +288,7 @@ max = 64000
var = game_creation.custom_terrain_type
type = SLE_UINT8
from = SLV_MAPGEN_SETTINGS_REVAMP
flags = SF_NEWGAME_ONLY
flags = SettingFlag::NewgameOnly
def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM
min = MIN_CUSTOM_TERRAIN_TYPE
max = MAX_MAP_HEIGHT_LIMIT
@ -325,7 +325,7 @@ cat = SC_EXPERT
var = game_creation.amount_of_rivers
type = SLE_UINT8
from = SLV_163
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
flags = SettingFlag::GuiDropdown, SettingFlag::NewgameOnly
def = 2
min = 0
max = 3
@ -337,7 +337,7 @@ strval = STR_RIVERS_NONE
var = construction.map_height_limit
type = SLE_UINT8
from = SLV_194
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_0_IS_SPECIAL
flags = SettingFlag::NewgameOnly, SettingFlag::SceneditToo, SettingFlag::GuiZeroIsSpecial
def = 0
min = MIN_MAP_HEIGHT_LIMIT
max = MAX_MAP_HEIGHT_LIMIT
@ -351,7 +351,7 @@ cat = SC_ADVANCED
[SDT_BOOL]
var = construction.build_on_slopes
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = true
cat = SC_EXPERT
@ -359,7 +359,7 @@ cat = SC_EXPERT
var = construction.command_pause_level
type = SLE_UINT8
from = SLV_154
flags = SF_GUI_DROPDOWN | SF_NO_NETWORK
flags = SettingFlag::GuiDropdown, SettingFlag::NoNetwork
def = 1
min = 0
max = 3
@ -464,7 +464,7 @@ strhelp = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT
var = construction.max_bridge_length
type = SLE_UINT16
from = SLV_159
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 64
min = 1
max = MAX_MAP_SIZE
@ -477,7 +477,7 @@ strval = STR_CONFIG_SETTING_TILE_LENGTH
var = construction.max_bridge_height
type = SLE_UINT8
from = SLV_194
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 12
min = 1
max = MAX_TILE_HEIGHT
@ -491,7 +491,7 @@ cat = SC_EXPERT
var = construction.max_tunnel_length
type = SLE_UINT16
from = SLV_159
flags = SF_NO_NETWORK
flags = SettingFlag::NoNetwork
def = 64
min = 1
max = MAX_MAP_SIZE
@ -503,7 +503,7 @@ strval = STR_CONFIG_SETTING_TILE_LENGTH
[SDT_VAR]
var = construction.train_signal_side
type = SLE_UINT8
flags = SF_GUI_DROPDOWN | SF_NO_NETWORK
flags = SettingFlag::GuiDropdown, SettingFlag::NoNetwork
def = 1
min = 0
max = 2
@ -539,7 +539,7 @@ cat = SC_BASIC
[SDT_VAR]
var = construction.raw_industry_construction
type = SLE_UINT8
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 0
min = 0
max = 2
@ -573,7 +573,7 @@ cat = SC_EXPERT
var = construction.extra_tree_placement
type = SLE_UINT8
from = SLV_132
flags = SF_GUI_DROPDOWN
flags = SettingFlag::GuiDropdown
def = 2
min = 0
max = 3