diff --git a/src/lang/english.txt b/src/lang/english.txt index 7f28791..9d76544 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1110,20 +1110,22 @@ STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(no explanation STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Default value: {ORANGE}{STRING1} STR_CONFIG_SETTING_TYPE :{LTBLUE}Setting type: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE_CLIENT :Client setting (not stored in saves; affects all games) STR_CONFIG_SETTING_TYPE_GAME_MENU :Game setting (stored in saves; affects only new games) STR_CONFIG_SETTING_TYPE_GAME_INGAME :Game setting (stored in save; affects only current game) STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Company setting (stored in saves; affects only new games) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Company setting (stored in save; affects only current company) STR_CONFIG_SETTING_RESTRICT_LABEL :{BLACK}Show: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below showing only changed settings +STR_CONFIG_SETTING_RESTRICT_BASIC :Basic settings +STR_CONFIG_SETTING_RESTRICT_ADVANCED :Advanced settings STR_CONFIG_SETTING_RESTRICT_ALL :All settings STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Settings with a different value than the default STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT_WO_LOCAL :Non-client settings with a different value than the default STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Settings with a different value than your new-game settings STR_CONFIG_SETTING_OFF :Off STR_CONFIG_SETTING_ON :On STR_CONFIG_SETTING_DISABLED :disabled STR_CONFIG_SETTING_COMPANIES_OFF :Off diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index c64d006..2dae3be 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -990,20 +990,22 @@ struct SettingEntrySubtree { /** Data fields for a single setting (#SEF_SETTING_KIND kind) */ struct SettingEntrySetting { const char *name; ///< Name of the setting const SettingDesc *setting; ///< Setting description of the setting uint index; ///< Index of the setting in the settings table }; /** How the list of advanced settings is filtered. */ enum RestrictionMode { + RM_BASIC, ///< Show only settings which are in the category "basic" + RM_ADVANCED, ///< Show only settings which are in the category "advanced" RM_ALL, ///< List all settings regardless of the default/newgame/... values. RM_CHANGED_AGAINST_DEFAULT, ///< Show only settings which are different compared to default values. RM_CHANGED_AGAINST_DEFAULT_WO_LOCAL, ///< Show only non-local settings which are different compared to default values. RM_CHANGED_AGAINST_NEW, ///< Show only settings which are different compared to the user's new game setting values. RM_END, ///< End for iteration. }; /** Data structure describing a single setting in a tab */ struct SettingEntry { byte flags; ///< Flags of the setting entry. @see SettingEntryFlags @@ -1295,20 +1297,24 @@ bool SettingEntry::IsVisibleByRestrictionMode(RestrictionMode mode) const GameSettings *settings_ptr = &GetGameSettings(); assert((this->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); const SettingDesc *sd = this->d.entry.setting; if (mode == RM_CHANGED_AGAINST_DEFAULT_WO_LOCAL && (sd->save.conv & SLF_NO_NETWORK_SYNC) != 0) { /* Hide local settings when comparing our settings against those of the server. */ return false; } + if (mode == RM_BASIC) return (this->d.entry.setting->desc.cat & SC_BASIC_ONLY) != 0; + + if (mode == RM_ADVANCED) return (this->d.entry.setting->desc.cat & SC_ADVANCED_ONLY) != 0; + /* Read the current value. */ const void *var = ResolveVariableAddress(settings_ptr, sd); int64 current_value = ReadValue(var, sd->save.conv); int64 filter_value; if (mode == RM_CHANGED_AGAINST_DEFAULT || mode == RM_CHANGED_AGAINST_DEFAULT_WO_LOCAL) { /* This entry shall only be visible, if the value deviates from its default value. */ /* Read the default value. */ @@ -1936,20 +1942,22 @@ static SettingEntry _settings_main[] = { SettingEntry(&_settings_vehicles_page, STR_CONFIG_SETTING_VEHICLES), SettingEntry(&_settings_stations_page, STR_CONFIG_SETTING_STATIONS), SettingEntry(&_settings_economy_page, STR_CONFIG_SETTING_ECONOMY), SettingEntry(&_settings_ai_page, STR_CONFIG_SETTING_AI), }; /** Main page, holding all advanced settings */ static SettingsPage _settings_main_page = {_settings_main, lengthof(_settings_main)}; static const StringID _game_settings_restrict_dropdown[] = { + STR_CONFIG_SETTING_RESTRICT_BASIC, // RM_BASIC + STR_CONFIG_SETTING_RESTRICT_ADVANCED, // RM_ADVANCED STR_CONFIG_SETTING_RESTRICT_ALL, // RM_ALL STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT, // RM_CHANGED_AGAINST_DEFAULT STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT_WO_LOCAL, // RM_CHANGED_AGAINST_DEFAULT_WO_LOCAL STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW, // RM_CHANGED_AGAINST_NEW }; assert_compile(lengthof(_game_settings_restrict_dropdown) == RM_END); struct GameSettingsWindow : QueryStringBaseWindow { static const int SETTINGTREE_LEFT_OFFSET = 5; ///< Position of left edge of setting values static const int SETTINGTREE_RIGHT_OFFSET = 5; ///< Position of right edge of setting values diff --git a/src/settings_internal.h b/src/settings_internal.h index dccbece..e721106 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -45,39 +45,65 @@ enum SettingGuiFlagLong { SGF_NETWORK_ONLY = 1 << 3, ///< this setting only applies to network games SGF_CURRENCY = 1 << 4, ///< the number represents money, so when reading value multiply by exchange rate SGF_NO_NETWORK = 1 << 5, ///< this setting does not apply to network games; it may not be changed during the game SGF_NEWGAME_ONLY = 1 << 6, ///< this setting cannot be changed in a game SGF_SCENEDIT_TOO = 1 << 7, ///< this setting can be changed in the scenario editor (only makes sense when SGF_NEWGAME_ONLY is set) SGF_PER_COMPANY = 1 << 8, ///< this setting can be different for each company (saved in company struct) }; DECLARE_ENUM_AS_BIT_SET(SettingGuiFlagLong) typedef SimpleTinyEnumT SettingGuiFlag; +/** + * A SettingCategory defines a grouping of the settings. + * The group #SC_BASIC is intended for settings which also a novice player would like to change + * and is able to understand. + * The group #SC_ADVANCED is intended for settings which an intermediate player would like to use and + * finally #SC_EXPERT settings are those settings are a highly-skilled player would like to see. + * The grouping is meant to be inclusive, i.e. all settings in #SC_BASIC also will be included + * in the set of settings in #SC_ADVANCED. The group #SC_EXPERT contains all settings. + */ +enum SettingCategory { + SC_NONE = 0, + SC_BASIC_ONLY = 1 << 0, ///< assigned to the basic level + SC_ADVANCED_ONLY = 1 << 1, ///< assigned to the advanced level + SC_EXPERT_ONLY = 1 << 2, ///< assigned to the expert level + + // derived constants (player types) + SC_BASIC = SC_BASIC_ONLY | SC_ADVANCED_ONLY | SC_EXPERT_ONLY, ///< basic settings can be seen from anyone + SC_ADVANCED = SC_ADVANCED_ONLY | SC_EXPERT_ONLY, ///< advanced settings are seen by experts and advanced players + SC_EXPERT = SC_EXPERT_ONLY, ///< expert settings can only be seen by experts + SC_ALL = SC_EXPERT_ONLY, ///< alias for the expert level + + SC_END, //!< SC_END +}; + typedef bool OnChange(int32 var); ///< callback prototype on data modification typedef size_t OnConvert(const char *value); ///< callback prototype for convertion error /** Properties of config file settings. */ struct SettingDescBase { const char *name; ///< name of the setting. Used in configuration file and for console const void *def; ///< default value given when none is present SettingDescType cmd; ///< various flags for the variable SettingGuiFlag flags; ///< handles how a setting would show up in the GUI (text/currency, etc.) int32 min; ///< minimum values uint32 max; ///< maximum values int32 interval; ///< the interval to use between settings in the 'settings' window. If interval is '0' the interval is dynamically determined const char *many; ///< ONE/MANY_OF_MANY: string of possible values for this type StringID str; ///< (translated) string with descriptive text; gui and console StringID str_help; ///< (Translated) string with help text; gui only. StringID str_val; ///< (Translated) first string describing the value. OnChange *proc; ///< callback procedure for when the value is changed OnConvert *proc_cnvt; ///< callback procedure when loading value mechanism fails + enum SettingCategory cat; ///< assigned categories of the setting +// TODO NICO change text alignment here! }; struct SettingDesc { SettingDescBase desc; ///< Settings structure (going to configuration file) SaveLoad save; ///< Internal structure (going to savegame, parts to config) }; /* NOTE: The only difference between SettingDesc and SettingDescGlob is * that one uses global variables as a source and the other offsets * in a struct which are bound to a certain variable during runtime. diff --git a/src/table/company_settings.ini b/src/table/company_settings.ini index 060d7ac..45173e8 100644 --- a/src/table/company_settings.ini +++ b/src/table/company_settings.ini @@ -7,128 +7,138 @@ ; [pre-amble] static bool CheckInterval(int32 p1); static bool InvalidateDetailsWindow(int32 p1); static const SettingDesc _company_settings[] = { [post-amble] }; [templates] -SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), +SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDT_END = SDT_END() [defaults] flags = 0 guiflags = SGF_PER_COMPANY interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT [SDT_BOOL] base = CompanySettings var = engine_renew def = false str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE strhelp = STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = CompanySettings var = engine_renew_months type = SLE_INT16 guiflags = SGF_PER_COMPANY | SGF_DISPLAY_ABS def = 6 min = -12 max = 12 str = STR_CONFIG_SETTING_AUTORENEW_MONTHS strhelp = STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT strval = STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE +cat = SC_ADVANCED + [SDT_VAR] base = CompanySettings var = engine_renew_money type = SLE_UINT guiflags = SGF_PER_COMPANY | SGF_CURRENCY def = 100000 min = 0 max = 2000000 str = STR_CONFIG_SETTING_AUTORENEW_MONEY strhelp = STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT strval = STR_JUST_CURRENCY_LONG +cat = SC_ADVANCED + [SDT_BOOL] base = CompanySettings var = renew_keep_length def = false [SDT_BOOL] base = CompanySettings var = vehicle.servint_ispercent def = false str = STR_CONFIG_SETTING_SERVINT_ISPERCENT strhelp = STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT proc = CheckInterval +cat = SC_ADVANCED [SDT_VAR] base = CompanySettings var = vehicle.servint_trains type = SLE_UINT16 guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED def = 150 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_TRAINS strhelp = STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE proc = InvalidateDetailsWindow +cat = SC_ADVANCED [SDT_VAR] base = CompanySettings var = vehicle.servint_roadveh type = SLE_UINT16 guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED def = 150 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE proc = InvalidateDetailsWindow +cat = SC_ADVANCED [SDT_VAR] base = CompanySettings var = vehicle.servint_ships type = SLE_UINT16 guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED def = 360 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_SHIPS strhelp = STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE proc = InvalidateDetailsWindow +cat = SC_ADVANCED [SDT_VAR] base = CompanySettings var = vehicle.servint_aircraft type = SLE_UINT16 guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED def = 100 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_AIRCRAFT strhelp = STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE proc = InvalidateDetailsWindow +cat = SC_ADVANCED [SDT_END] }; diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini index 66eff3d..3f47d2f 100644 --- a/src/table/currency_settings.ini +++ b/src/table/currency_settings.ini @@ -4,64 +4,69 @@ ; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. ; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . ; [pre-amble] static const SettingDesc _currency_settings[] = { [post-amble] }; [templates] -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), -SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDT_END = SDT_END() [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = 0 interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT [SDT_VAR] base = CurrencySpec var = rate type = SLE_UINT16 def = 1 min = 0 max = UINT16_MAX +cat = SC_ADVANCED [SDT_CHR] base = CurrencySpec var = separator def = ""."" +cat = SC_BASIC [SDT_VAR] base = CurrencySpec var = to_euro type = SLE_INT32 def = 0 min = MIN_YEAR max = MAX_YEAR +cat = SC_ADVANCED [SDT_STR] base = CurrencySpec var = prefix type = SLE_STRBQ def = NULL +cat = SC_ADVANCED [SDT_STR] base = CurrencySpec var = suffix type = SLE_STRBQ def = "" credits"" +cat = SC_ADVANCED [SDT_END] diff --git a/src/table/gameopt_settings.ini b/src/table/gameopt_settings.ini index ee1a184..8212b9d 100644 --- a/src/table/gameopt_settings.ini +++ b/src/table/gameopt_settings.ini @@ -29,39 +29,39 @@ static const SettingDesc _gameopt_settings[] = { * it funny to have the GameDifficulty struct be an array while it is a struct of * same-sized members * XXX - To save file-space and since values are never bigger than about 10? only * save the first 16 bits in the savegame. Question is why the values are still int32 * and why not byte for example? * 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack * for savegames version 0 - though it is an array, it has to go through the byteswap process */ [post-amble] }; [templates] -SDTG_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $strhelp, $strval, $proc, $from, $to), +SDTG_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDT_NULL = SDT_NULL($length, $from, $to), -SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to), -SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), +SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load, $cat), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDT_END = SDT_END() [defaults] flags = 0 guiflags = 0 interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT [SDTG_GENERAL] name = ""diff_custom"" sdt_cmd = SDT_INTLIST sle_cmd = SL_ARR type = SLE_FILE_I16 | SLE_VAR_U16 flags = SLF_NOT_IN_CONFIG var = _old_diff_custom length = 17 @@ -86,85 +86,93 @@ full = NULL from = 4 ## [SDT_VAR] base = GameSettings var = difficulty.diff_level type = SLE_UINT8 def = 3 min = 0 max = 3 +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = locale.currency type = SLE_UINT8 flags = SLF_NO_NETWORK_SYNC def = 0 max = CUSTOM_CURRENCY_ID full = _locale_currencies +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = locale.units type = SLE_UINT8 flags = SLF_NO_NETWORK_SYNC def = 1 max = 2 full = _locale_units +cat = SC_BASIC # There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow # these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI. [SDT_OMANY] base = GameSettings var = game_creation.town_name type = SLE_UINT8 def = 0 max = 255 full = _town_names +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = game_creation.landscape type = SLE_UINT8 def = 0 max = 3 full = _climates load = ConvertLandscape +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.snow_line_height type = SLE_UINT8 def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT to = 21 +cat = SC_ADVANCED [SDT_NULL] length = 1 from = 22 to = 164 [SDT_NULL] length = 1 to = 22 [SDTC_OMANY] var = gui.autosave type = SLE_UINT8 from = 23 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1 max = 4 full = _autosave_interval +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = vehicle.road_side type = SLE_UINT8 def = 1 max = 1 full = _roadsides +cat = SC_BASIC [SDT_END] diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini index eeca619..dcf5025 100644 --- a/src/table/misc_settings.ini +++ b/src/table/misc_settings.ini @@ -6,271 +6,306 @@ ; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . ; [pre-amble] extern char _config_language_file[MAX_PATH]; static const SettingDescGlobVarList _misc_settings[] = { [post-amble] }; [templates] -SDTG_LIST = SDTG_LIST($name, $type, $length, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), +SDTG_LIST = SDTG_LIST($name, $type, $length, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_END = SDTG_END() [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = 0 interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT [SDTG_MMANY] name = ""display_opt"" type = SLE_UINT8 var = _display_opt def = (1 << DO_SHOW_TOWN_NAMES | 1 << DO_SHOW_STATION_NAMES | 1 << DO_SHOW_SIGNS | 1 << DO_FULL_ANIMATION | 1 << DO_FULL_DETAIL | 1 << DO_SHOW_WAYPOINT_NAMES | 1 << DO_SHOW_COMPETITOR_SIGNS) full = ""SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION||FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS"" [SDTG_BOOL] name = ""news_ticker_sound"" var = _news_ticker_sound def = true +cat = SC_BASIC [SDTG_BOOL] name = ""fullscreen"" var = _fullscreen def = false +cat = SC_BASIC [SDTG_STR] name = ""graphicsset"" type = SLE_STRQ var = BaseGraphics::ini_set def = NULL +cat = SC_BASIC [SDTG_STR] name = ""soundsset"" type = SLE_STRQ var = BaseSounds::ini_set def = NULL +cat = SC_BASIC [SDTG_STR] name = ""musicset"" type = SLE_STRQ var = BaseMusic::ini_set def = NULL +cat = SC_BASIC [SDTG_STR] name = ""videodriver"" type = SLE_STRQ var = _ini_videodriver def = NULL +cat = SC_BASIC [SDTG_STR] name = ""musicdriver"" type = SLE_STRQ var = _ini_musicdriver def = NULL +cat = SC_BASIC [SDTG_STR] name = ""sounddriver"" type = SLE_STRQ var = _ini_sounddriver def = NULL +cat = SC_BASIC [SDTG_STR] name = ""blitter"" type = SLE_STRQ var = _ini_blitter def = NULL +cat = SC_BASIC [SDTG_STR] name = ""language"" type = SLE_STRB var = _config_language_file def = NULL +cat = SC_BASIC ; workaround for implicit lengthof() in SDTG_LIST [SDTG_LIST] name = ""resolution"" type = SLE_INT length = 2 var = _cur_resolution def = ""640,480"" +cat = SC_BASIC [SDTG_STR] name = ""screenshot_format"" type = SLE_STRB var = _screenshot_format_name def = NULL +cat = SC_ADVANCED [SDTG_STR] name = ""savegame_format"" type = SLE_STRB var = _savegame_format def = NULL +cat = SC_EXPERT [SDTG_BOOL] name = ""rightclick_emulate"" var = _rightclick_emulate def = false +cat = SC_EXPERT [SDTG_STR] ifdef = WITH_FREETYPE name = ""small_font"" type = SLE_STRB var = _freetype.small_font def = NULL +cat = SC_ADVANCED [SDTG_STR] ifdef = WITH_FREETYPE name = ""medium_font"" type = SLE_STRB var = _freetype.medium_font def = NULL +cat = SC_ADVANCED [SDTG_STR] ifdef = WITH_FREETYPE name = ""large_font"" type = SLE_STRB var = _freetype.large_font def = NULL +cat = SC_ADVANCED [SDTG_STR] ifdef = WITH_FREETYPE name = ""mono_font"" type = SLE_STRB var = _freetype.mono_font def = NULL +cat = SC_ADVANCED [SDTG_VAR] ifdef = WITH_FREETYPE name = ""small_size"" type = SLE_UINT var = _freetype.small_size def = 8 min = 0 max = 72 +cat = SC_ADVANCED [SDTG_VAR] ifdef = WITH_FREETYPE name = ""medium_size"" type = SLE_UINT var = _freetype.medium_size def = 10 min = 0 max = 72 +cat = SC_ADVANCED [SDTG_VAR] ifdef = WITH_FREETYPE name = ""large_size"" type = SLE_UINT var = _freetype.large_size def = 16 min = 0 max = 72 +cat = SC_ADVANCED [SDTG_VAR] ifdef = WITH_FREETYPE name = ""mono_size"" type = SLE_UINT var = _freetype.mono_size def = 10 min = 0 max = 72 +cat = SC_ADVANCED [SDTG_BOOL] ifdef = WITH_FREETYPE name = ""small_aa"" var = _freetype.small_aa def = false +cat = SC_ADVANCED [SDTG_BOOL] ifdef = WITH_FREETYPE name = ""medium_aa"" var = _freetype.medium_aa def = false +cat = SC_ADVANCED [SDTG_BOOL] ifdef = WITH_FREETYPE name = ""large_aa"" var = _freetype.large_aa def = false +cat = SC_ADVANCED [SDTG_BOOL] ifdef = WITH_FREETYPE name = ""mono_aa"" var = _freetype.mono_aa def = false +cat = SC_ADVANCED [SDTG_VAR] name = ""sprite_cache_size_px"" type = SLE_UINT var = _sprite_cache_size def = 128 min = 1 max = 512 +cat = SC_EXPERT [SDTG_VAR] name = ""player_face"" type = SLE_UINT32 var = _company_manager_face def = 0 min = 0 max = 0xFFFFFFFF +cat = SC_BASIC [SDTG_VAR] name = ""transparency_options"" type = SLE_UINT var = _transparency_opt def = 0 min = 0 max = 0x1FF +cat = SC_BASIC [SDTG_VAR] name = ""transparency_locks"" type = SLE_UINT var = _transparency_lock def = 0 min = 0 max = 0x1FF +cat = SC_ADVANCED [SDTG_VAR] name = ""invisibility_options"" type = SLE_UINT var = _invisibility_opt def = 0 min = 0 max = 0xFF +cat = SC_ADVANCED + [SDTG_STR] name = ""keyboard"" type = SLE_STRB var = _keyboard_opt[0] def = NULL +cat = SC_ADVANCED [SDTG_STR] name = ""keyboard_caps"" type = SLE_STRB var = _keyboard_opt[1] def = NULL +cat = SC_ADVANCED [SDTG_VAR] name = ""last_newgrf_count"" type = SLE_UINT32 var = _settings_client.gui.last_newgrf_count def = 100 min = 0 max = UINT32_MAX +cat = SC_EXPERT [SDTG_END] diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index c5cedca..962ba4d 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -39,88 +39,88 @@ static size_t ConvertLandscape(const char *value); * macros as well, these fill up space so you can add more settings there (in * place) and you DON'T have to increase the savegame version. * * While reading values from openttd.cfg, some values may not be converted * properly, for any kind of reasons. In order to allow a process of self-cleaning * mechanism, a callback procedure is made available. You will have to supply the function, which * will work on a string, one function per setting. And of course, enable the callback param * on the appropriate macro. */ -#define NSD_GENERAL(name, def, cmd, guiflags, min, max, interval, many, str, strhelp, strval, proc, load)\ - {name, (const void*)(size_t)(def), {(byte)cmd}, {(uint16)guiflags}, min, max, interval, many, str, strhelp, strval, proc, load} +#define NSD_GENERAL(name, def, cmd, guiflags, min, max, interval, many, str, strhelp, strval, proc, load, cat)\ + {name, (const void*)(size_t)(def), {(byte)cmd}, {(uint16)guiflags}, min, max, interval, many, str, strhelp, strval, proc, load, cat} /* Macros for various objects to go in the configuration file. * This section is for global variables */ -#define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL), SLEG_GENERAL(sle_cmd, var, type | flags, length, from, to)} +#define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, strhelp, strval, proc, from, to, cat)\ + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, NULL, cat), SLEG_GENERAL(sle_cmd, var, type | flags, length, from, to)} -#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to) +#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTG_BOOL(name, flags, guiflags, var, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTG_BOOL(name, flags, guiflags, var, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTG_LIST(name, type, length, flags, guiflags, var, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTG_LIST(name, type, length, flags, guiflags, var, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTG_STR(name, type, flags, guiflags, var, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTG_STR(name, type, flags, guiflags, var, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTG_OMANY(name, type, flags, guiflags, var, def, max, full, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, max, 0, full, str, strhelp, strval, proc, from, to) +#define SDTG_OMANY(name, type, flags, guiflags, var, def, max, full, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, max, 0, full, str, strhelp, strval, proc, from, to, cat) -#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, strhelp, strval, proc, from, to) +#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, strhelp, strval, proc, from, to, cat) #define SDTG_NULL(length, from, to)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL}, SLEG_NULL(length, from, to)} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_EXPERT}, SLEG_NULL(length, from, to)} -#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL}, SLEG_END()} +#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLEG_END()} /* Macros for various objects to go in the configuration file. * This section is for structures where their various members are saved */ -#define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to)\ - {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load), SLE_GENERAL(sle_cmd, base, var, type | flags, length, from, to)} +#define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, strhelp, strval, proc, load, from, to, cat)\ + {NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, strhelp, strval, proc, load, cat), SLE_GENERAL(sle_cmd, base, var, type | flags, length, from, to)} -#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to)\ - SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, NULL, from, to) +#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat)\ + SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, NULL, from, to, cat) -#define SDT_BOOL(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDT_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, base, var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, NULL, from, to) +#define SDT_BOOL(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDT_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, base, var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, NULL, from, to, cat) -#define SDT_LIST(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDT_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to) +#define SDT_LIST(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDT_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to, cat) -#define SDT_STR(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to) +#define SDT_STR(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to, cat) -#define SDT_CHR(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to) +#define SDT_CHR(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, NULL, str, strhelp, strval, proc, NULL, from, to, cat) -#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, load)\ - SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, load, from, to) +#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, load, cat)\ + SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, load, from, to, cat) -#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc, strhelp, strval, from, to)\ - SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, strhelp, strval, proc, NULL, from, to) +#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc, strhelp, strval, from, to, cat)\ + SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, strhelp, strval, proc, NULL, from, to, cat) #define SDT_NULL(length, from, to)\ - {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL}, SLE_CONDNULL(length, from, to)} + {{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_EXPERT}, SLE_CONDNULL(length, from, to)} -#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to) +#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, min, max, interval, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTC_BOOL(var, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, _settings_client.var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTC_BOOL(var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, _settings_client.var, 1, def, 0, 1, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTC_LIST(var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTC_LIST(var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTC_STR(var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to) +#define SDTC_STR(var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, strhelp, strval, proc, from, to, cat) -#define SDTC_OMANY(var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to)\ - SDTG_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, from, to) +#define SDTC_OMANY(var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, cat)\ + SDTG_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, from, to, cat) -#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL}, SLE_END()} +#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, STR_NULL, STR_NULL, NULL, NULL, SC_NONE}, SLE_END()} diff --git a/src/table/settings.ini b/src/table/settings.ini index b16dc09..3709001 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -56,744 +56,802 @@ static bool UpdateClientConfigValues(int32 p1); * It is also a bit tricky since you would think that service_interval * for example doesn't need to be synched. Every client assigns the * service_interval value to the v->service_interval, meaning that every client * assigns his value. If the setting was company-based, that would mean that * vehicles could decide on different moments that they are heading back to a * service depot, causing desyncs on a massive scale. */ const SettingDesc _settings[] = { [post-amble] }; [templates] -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), -SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTC_LIST = SDTC_LIST( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to), -SDTC_STR = SDTC_STR( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), -SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load), -SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTC_LIST = SDTC_LIST( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTC_STR = SDTC_STR( $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $load, $cat), +SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDT_NULL = SDT_NULL($length, $from, $to), SDT_END = SDT_END() [defaults] flags = 0 guiflags = 0 interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT ; Saved settings variables. ; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatability. [SDT_VAR] base = GameSettings var = difficulty.max_no_competitors type = SLE_UINT8 from = 97 def = 0 min = 0 max = MAX_COMPANIES - 1 interval = 1 proc = MaxNoAIsChange +cat = SC_BASIC [SDT_NULL] length = 1 from = 97 to = 109 [SDT_VAR] base = GameSettings var = difficulty.number_towns type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY def = 2 min = 0 max = 4 interval = 1 strval = STR_NUM_VERY_LOW proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.industry_density type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY def = ID_END - 1 min = 0 max = ID_END - 1 interval = 1 strval = STR_FUNDING_ONLY proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.max_loan type = SLE_UINT32 from = 97 guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY def = 300000 min = 100000 max = 500000 interval = 50000 proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.initial_interest type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO def = 2 min = 2 max = 4 interval = 1 proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.vehicle_costs type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO def = 0 min = 0 max = 2 interval = 1 strval = STR_SEA_LEVEL_LOW proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.competitor_speed type = SLE_UINT8 from = 97 def = 2 min = 0 max = 4 interval = 1 strval = STR_AI_SPEED_VERY_SLOW proc = DifficultyChange +cat = SC_BASIC [SDT_NULL] length = 1 from = 97 to = 109 [SDT_VAR] base = GameSettings var = difficulty.vehicle_breakdowns type = SLE_UINT8 from = 97 def = 1 min = 0 max = 2 interval = 1 strval = STR_DISASTER_NONE proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.subsidy_multiplier type = SLE_UINT8 from = 97 def = 2 min = 0 max = 3 interval = 1 strval = STR_SUBSIDY_X1_5 proc = DifficultyChange +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = difficulty.construction_cost type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO def = 0 min = 0 max = 2 interval = 1 strval = STR_SEA_LEVEL_LOW proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.terrain_type type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY def = 1 min = 0 max = 3 interval = 1 strval = STR_TERRAIN_TYPE_VERY_FLAT proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.quantity_sea_lakes type = SLE_UINT8 from = 97 guiflags = SGF_NEWGAME_ONLY def = 0 min = 0 max = 4 interval = 1 strval = STR_SEA_LEVEL_VERY_LOW proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.economy type = SLE_UINT8 from = 97 def = 0 min = 0 max = 1 interval = 1 strval = STR_ECONOMY_STEADY proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.line_reverse_mode type = SLE_UINT8 from = 97 def = 0 min = 0 max = 1 interval = 1 strval = STR_REVERSE_AT_END_OF_LINE_AND_AT_STATIONS proc = DifficultyChange +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = difficulty.disasters type = SLE_UINT8 from = 97 def = 0 min = 0 max = 1 interval = 1 strval = STR_CONFIG_SETTING_OFF proc = DifficultyChange +cat = SC_BASIC [SDT_VAR] base = GameSettings var = difficulty.town_council_tolerance type = SLE_UINT8 from = 97 def = 0 min = 0 max = 2 interval = 1 strval = STR_CITY_APPROVAL_PERMISSIVE proc = DifficultyNoiseChange +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = difficulty.diff_level type = SLE_UINT8 from = 97 def = 3 min = 0 max = 3 proc = DifficultyReset +cat = SC_BASIC ; There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow ; these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI. [SDT_OMANY] base = GameSettings var = game_creation.town_name type = SLE_UINT8 from = 97 guiflags = SGF_NO_NETWORK def = 0 max = 255 full = _town_names +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = game_creation.landscape type = SLE_UINT8 from = 97 guiflags = SGF_NO_NETWORK def = 0 max = 3 full = _climates load = ConvertLandscape +cat = SC_BASIC ; Snow line (or snow_line_height * TILE_HEIGHT) [SDT_NULL] length = 1 from = 97 to = 163 [SDT_OMANY] base = GameSettings var = vehicle.road_side type = SLE_UINT8 from = 97 guiflags = SGF_NO_NETWORK def = 1 max = 1 full = _roadsides proc = CheckRoadSide +cat = SC_BASIC ; Construction [SDT_BOOL] base = GameSettings var = construction.build_on_slopes guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_BUILDONSLOPES strhelp = STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.command_pause_level type = SLE_UINT8 from = 154 guiflags = SGF_MULTISTRING | SGF_NO_NETWORK def = 1 min = 0 max = 3 interval = 1 str = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL strhelp = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT strval = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = construction.terraform_per_64k_frames type = SLE_UINT32 from = 156 def = 64 << 16 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.terraform_frame_burst type = SLE_UINT16 from = 156 def = 4096 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.clear_per_64k_frames type = SLE_UINT32 from = 156 def = 64 << 16 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.clear_frame_burst type = SLE_UINT16 from = 156 def = 4096 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.tree_per_64k_frames type = SLE_UINT32 from = 175 def = 64 << 16 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = construction.tree_frame_burst type = SLE_UINT16 from = 175 def = 4096 min = 0 max = 1 << 30 interval = 1 +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = construction.autoslope from = 75 def = true str = STR_CONFIG_SETTING_AUTOSLOPE strhelp = STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = construction.extra_dynamite def = true str = STR_CONFIG_SETTING_EXTRADYNAMITE strhelp = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = construction.max_bridge_length type = SLE_UINT16 from = 159 guiflags = SGF_NO_NETWORK def = 64 min = 1 max = 2048 interval = 1 str = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH strhelp = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT strval = STR_CONFIG_SETTING_TILE_LENGTH +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = construction.max_tunnel_length type = SLE_UINT16 from = 159 guiflags = SGF_NO_NETWORK def = 64 min = 1 max = 2048 interval = 1 str = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH strhelp = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT strval = STR_CONFIG_SETTING_TILE_LENGTH +cat = SC_ADVANCED # construction.longbridges [SDT_NULL] length = 1 to = 158 [SDT_VAR] base = GameSettings var = construction.train_signal_side type = SLE_UINT8 guiflags = SGF_MULTISTRING | SGF_NO_NETWORK def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_SIGNALSIDE strhelp = STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT strval = STR_CONFIG_SETTING_SIGNALSIDE_LEFT proc = RedrawScreen +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = station.never_expire_airports guiflags = SGF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = economy.town_layout type = SLE_UINT8 from = 59 guiflags = SGF_MULTISTRING def = TL_ORIGINAL min = TL_BEGIN max = NUM_TLS - 1 interval = 1 str = STR_CONFIG_SETTING_TOWN_LAYOUT strhelp = STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT strval = STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT proc = TownFoundingChanged +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = economy.allow_town_roads from = 113 guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = economy.found_town type = SLE_UINT8 from = 128 guiflags = SGF_MULTISTRING def = TF_FORBIDDEN min = TF_BEGIN max = TF_END - 1 interval = 1 str = STR_CONFIG_SETTING_TOWN_FOUNDING strhelp = STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT strval = STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN proc = TownFoundingChanged +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.allow_town_level_crossings from = 143 guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT +cat = SC_ADVANCED ; Vehicles [SDT_VAR] base = GameSettings var = vehicle.train_acceleration_model type = SLE_UINT8 guiflags = SGF_MULTISTRING def = 0 min = 0 max = 1 interval = 1 str = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL strhelp = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT strval = STR_CONFIG_SETTING_ORIGINAL proc = TrainAccelerationModelChanged +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = vehicle.roadveh_acceleration_model type = SLE_UINT8 from = 139 guiflags = SGF_MULTISTRING def = 0 min = 0 max = 1 interval = 1 str = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT strval = STR_CONFIG_SETTING_ORIGINAL proc = RoadVehAccelerationModelChanged +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = vehicle.train_slope_steepness type = SLE_UINT8 from = 133 def = 3 min = 0 max = 10 interval = 1 str = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS strhelp = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT strval = STR_CONFIG_SETTING_PERCENTAGE proc = TrainSlopeSteepnessChanged +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = vehicle.roadveh_slope_steepness type = SLE_UINT8 from = 139 def = 7 min = 0 max = 10 interval = 1 str = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT strval = STR_CONFIG_SETTING_PERCENTAGE proc = RoadVehSlopeSteepnessChanged +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = pf.forbid_90_deg def = false str = STR_CONFIG_SETTING_FORBID_90_DEG strhelp = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = vehicle.max_train_length type = SLE_UINT8 from = 159 def = 7 min = 1 max = 64 interval = 1 str = STR_CONFIG_SETTING_TRAIN_LENGTH strhelp = STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT strval = STR_CONFIG_SETTING_TILE_LENGTH +cat = SC_BASIC ; vehicle.mammoth_trains [SDT_NULL] length = 1 to = 158 [SDT_VAR] base = GameSettings var = vehicle.smoke_amount type = SLE_UINT8 from = 145 guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_SMOKE_AMOUNT strhelp = STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT strval = STR_CONFIG_SETTING_NONE +cat = SC_BASIC ; order.gotodepot [SDT_NULL] length = 1 to = 158 ; path finder [SDT_BOOL] base = GameSettings var = pf.roadveh_queue def = true str = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = pf.new_pathfinding_all to = 86 def = false +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.yapf.ship_use_yapf from = 28 to = 86 def = false +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.yapf.road_use_yapf from = 28 to = 86 def = true +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.yapf.rail_use_yapf from = 28 to = 86 def = true +cat = SC_EXPERT ## [SDT_VAR] base = GameSettings var = pf.pathfinder_for_trains type = SLE_UINT8 from = 87 guiflags = SGF_MULTISTRING def = 2 min = 1 max = 2 interval = 1 str = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT strval = STR_CONFIG_SETTING_PATHFINDER_NPF +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.pathfinder_for_roadvehs type = SLE_UINT8 from = 87 guiflags = SGF_MULTISTRING def = 2 min = 1 max = 2 interval = 1 str = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT strval = STR_CONFIG_SETTING_PATHFINDER_NPF +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.pathfinder_for_ships type = SLE_UINT8 from = 87 guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 interval = 1 str = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT strval = STR_CONFIG_SETTING_PATHFINDER_OPF +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = vehicle.never_expire_vehicles guiflags = SGF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = vehicle.max_trains type = SLE_UINT16 def = 500 min = 0 max = 5000 str = STR_CONFIG_SETTING_MAX_TRAINS strhelp = STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT strval = STR_JUST_COMMA proc = RedrawScreen +cat = SC_BASIC [SDT_VAR] base = GameSettings var = vehicle.max_roadveh type = SLE_UINT16 def = 500 min = 0 max = 5000 str = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT strval = STR_JUST_COMMA proc = RedrawScreen +cat = SC_BASIC [SDT_VAR] base = GameSettings var = vehicle.max_aircraft type = SLE_UINT16 def = 200 min = 0 max = 5000 str = STR_CONFIG_SETTING_MAX_AIRCRAFT strhelp = STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT strval = STR_JUST_COMMA proc = RedrawScreen +cat = SC_BASIC [SDT_VAR] base = GameSettings var = vehicle.max_ships type = SLE_UINT16 def = 300 min = 0 max = 5000 str = STR_CONFIG_SETTING_MAX_SHIPS strhelp = STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT strval = STR_JUST_COMMA proc = RedrawScreen +cat = SC_BASIC [SDTG_BOOL] name = NULL guiflags = SGF_NO_NETWORK var = _old_vds.servint_ispercent def = false to = 119 [SDTG_VAR] name = NULL @@ -834,2310 +892,2561 @@ def = 150 min = 5 max = 800 to = 119 [SDT_BOOL] base = GameSettings var = order.no_servicing_if_no_breakdowns def = true str = STR_CONFIG_SETTING_NOSERVICE strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = vehicle.wagon_speed_limits guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT proc = UpdateConsists +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = vehicle.disable_elrails from = 38 guiflags = SGF_NO_NETWORK def = false str = STR_CONFIG_SETTING_DISABLE_ELRAILS strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT proc = SettingsDisableElrail +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = vehicle.freight_trains type = SLE_UINT8 from = 39 guiflags = SGF_NO_NETWORK def = 1 min = 1 max = 255 interval = 1 str = STR_CONFIG_SETTING_FREIGHT_TRAINS strhelp = STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT strval = STR_JUST_COMMA proc = UpdateConsists +cat = SC_EXPERT ; order.timetabling [SDT_NULL] length = 1 from = 67 to = 158 [SDT_VAR] base = GameSettings var = vehicle.plane_speed type = SLE_UINT8 from = 90 guiflags = SGF_NO_NETWORK def = 4 min = 1 max = 4 str = STR_CONFIG_SETTING_PLANE_SPEED strhelp = STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT strval = STR_CONFIG_SETTING_PLANE_SPEED_VALUE +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = vehicle.dynamic_engines from = 95 guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_DYNAMIC_ENGINES strhelp = STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT proc = ChangeDynamicEngines +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = vehicle.plane_crashes type = SLE_UINT8 from = 138 guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 interval = 1 str = STR_CONFIG_SETTING_PLANE_CRASHES strhelp = STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT strval = STR_CONFIG_SETTING_PLANE_CRASHES_NONE +cat = SC_BASIC ; station.join_stations [SDT_NULL] length = 1 to = 158 [SDTC_BOOL] var = gui.sg_full_load_any from = 22 to = 92 def = true [SDT_BOOL] base = GameSettings var = order.improved_load guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_IMPROVEDLOAD strhelp = STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = order.selectgoods def = true str = STR_CONFIG_SETTING_SELECTGOODS strhelp = STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT +cat = SC_ADVANCED [SDTC_BOOL] var = gui.sg_new_nonstop from = 22 to = 92 def = false +cat = SC_ADVANCED ; station.nonuniform_stations [SDT_NULL] length = 1 to = 158 [SDT_VAR] base = GameSettings var = station.station_spread type = SLE_UINT8 def = 12 min = 4 max = 64 str = STR_CONFIG_SETTING_STATION_SPREAD strhelp = STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT strval = STR_CONFIG_SETTING_TILE_LENGTH proc = InvalidateStationBuildWindow +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = order.serviceathelipad def = true str = STR_CONFIG_SETTING_SERVICEATHELIPAD strhelp = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = station.modified_catchment def = true str = STR_CONFIG_SETTING_CATCHMENT strhelp = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT proc = StationCatchmentChanged +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = order.gradual_loading from = 40 guiflags = SGF_NO_NETWORK def = true str = STR_CONFIG_SETTING_GRADUAL_LOADING strhelp = STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = construction.road_stop_on_town_road from = 47 def = true str = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD strhelp = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = construction.road_stop_on_competitor_road from = 114 def = true str = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD strhelp = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = station.adjacent_stations from = 62 def = true str = STR_CONFIG_SETTING_ADJACENT_STATIONS strhelp = STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.station_noise_level from = 96 guiflags = SGF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NOISE_LEVEL strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT proc = InvalidateTownViewWindow +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = station.distant_join_stations from = 106 def = true str = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS strhelp = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT proc = DeleteSelectStationWindow +cat = SC_ADVANCED ## [SDT_BOOL] base = GameSettings var = economy.inflation def = true str = STR_CONFIG_SETTING_INFLATION strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT +cat = SC_BASIC [SDT_VAR] base = GameSettings var = construction.raw_industry_construction type = SLE_UINT8 guiflags = SGF_MULTISTRING def = 0 min = 0 max = 2 str = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD strhelp = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT strval = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE proc = InvalidateBuildIndustryWindow +cat = SC_BASIC [SDT_VAR] base = GameSettings var = construction.industry_platform type = SLE_UINT8 from = 148 def = 1 min = 0 max = 4 str = STR_CONFIG_SETTING_INDUSTRY_PLATFORM strhelp = STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT strval = STR_CONFIG_SETTING_TILE_LENGTH +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = economy.multiple_industry_per_town def = false str = STR_CONFIG_SETTING_MULTIPINDTOWN strhelp = STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT +cat = SC_BASIC [SDT_NULL] length = 1 to = 140 [SDT_BOOL] base = GameSettings var = economy.bribe def = true str = STR_CONFIG_SETTING_BRIBE strhelp = STR_CONFIG_SETTING_BRIBE_HELPTEXT proc = RedrawTownAuthority +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.exclusive_rights from = 79 def = true str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE strhelp = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT proc = RedrawTownAuthority +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.fund_buildings from = 165 def = true str = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS strhelp = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT proc = RedrawTownAuthority +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.fund_roads from = 160 def = true str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD strhelp = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT proc = RedrawTownAuthority +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.give_money from = 79 def = true str = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY strhelp = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.snow_line_height type = SLE_UINT8 def = DEF_SNOWLINE_HEIGHT min = MIN_SNOWLINE_HEIGHT max = MAX_SNOWLINE_HEIGHT str = STR_CONFIG_SETTING_SNOWLINE_HEIGHT strval = STR_JUST_COMMA +cat = SC_ADVANCED [SDT_NULL] length = 4 to = 143 [SDT_VAR] base = GameSettings var = game_creation.starting_year type = SLE_INT32 def = DEF_START_YEAR min = MIN_YEAR max = MAX_YEAR interval = 1 str = STR_CONFIG_SETTING_STARTING_YEAR strval = STR_JUST_INT +cat = SC_BASIC [SDT_NULL] length = 4 to = 104 [SDT_BOOL] base = GameSettings var = economy.smooth_economy def = true str = STR_CONFIG_SETTING_SMOOTH_ECONOMY strhelp = STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT proc = InvalidateIndustryViewWindow +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.allow_shares def = false str = STR_CONFIG_SETTING_ALLOW_SHARES strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT +cat = SC_BASIC [SDT_VAR] base = GameSettings var = economy.feeder_payment_share type = SLE_UINT8 from = 134 def = 75 min = 0 max = 100 str = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE strhelp = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT strval = STR_CONFIG_SETTING_PERCENTAGE +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = economy.town_growth_rate type = SLE_UINT8 from = 54 guiflags = SGF_MULTISTRING def = 2 min = 0 max = 4 str = STR_CONFIG_SETTING_TOWN_GROWTH strhelp = STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT strval = STR_CONFIG_SETTING_TOWN_GROWTH_NONE +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = economy.larger_towns type = SLE_UINT8 from = 54 guiflags = SGF_0ISDISABLED def = 4 min = 0 max = 255 interval = 1 str = STR_CONFIG_SETTING_LARGER_TOWNS strhelp = STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT strval = STR_CONFIG_SETTING_LARGER_TOWNS_VALUE +cat = SC_BASIC [SDT_VAR] base = GameSettings var = economy.initial_city_size type = SLE_UINT8 from = 56 def = 2 min = 1 max = 10 interval = 1 str = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER strhelp = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT strval = STR_JUST_COMMA +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = economy.mod_road_rebuild from = 77 def = true str = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD strhelp = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT +cat = SC_EXPERT ; previously ai-new setting. [SDT_NULL] length = 1 to = 106 [SDT_BOOL] base = GameSettings var = ai.ai_in_multiplayer def = true str = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER strhelp = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = ai.ai_disable_veh_train def = false str = STR_CONFIG_SETTING_AI_BUILDS_TRAINS strhelp = STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = ai.ai_disable_veh_roadveh def = false str = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = ai.ai_disable_veh_aircraft def = false str = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT strhelp = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT +cat = SC_ADVANCED [SDT_BOOL] base = GameSettings var = ai.ai_disable_veh_ship def = false str = STR_CONFIG_SETTING_AI_BUILDS_SHIPS strhelp = STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = script.script_max_opcode_till_suspend type = SLE_UINT32 from = 107 guiflags = SGF_NEWGAME_ONLY def = 10000 min = 5000 max = 250000 interval = 2500 str = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT strval = STR_JUST_COMMA +cat = SC_EXPERT ## [SDT_VAR] base = GameSettings var = vehicle.extend_vehicle_life type = SLE_UINT8 def = 0 min = 0 max = 100 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = economy.dist_local_authority type = SLE_UINT8 def = 20 min = 5 max = 60 +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.reverse_at_signals from = 159 def = false str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS strhelp = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.wait_oneway_signal type = SLE_UINT8 def = 15 min = 2 max = 255 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.wait_twoway_signal type = SLE_UINT8 def = 41 min = 2 max = 255 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = economy.town_noise_population[0] type = SLE_UINT16 from = 96 def = 800 min = 200 max = 65535 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = economy.town_noise_population[1] type = SLE_UINT16 from = 96 def = 2000 min = 400 max = 65535 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = economy.town_noise_population[2] type = SLE_UINT16 from = 96 def = 4000 min = 800 max = 65535 +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = economy.infrastructure_maintenance from = 166 def = false str = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE strhelp = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT proc = InvalidateCompanyInfrastructureWindow +cat = SC_BASIC ## [SDT_VAR] base = GameSettings var = pf.wait_for_pbs_path type = SLE_UINT8 from = 100 def = 30 min = 2 max = 255 +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.reserve_paths from = 100 def = false +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.path_backoff_interval type = SLE_UINT8 from = 100 def = 20 min = 1 max = 255 +cat = SC_EXPERT ## [SDT_VAR] base = GameSettings var = pf.opf.pf_maxlength type = SLE_UINT16 def = 4096 min = 64 max = 65535 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.opf.pf_maxdepth type = SLE_UINT8 def = 48 min = 4 max = 255 +cat = SC_EXPERT ## [SDT_VAR] base = GameSettings var = pf.npf.npf_max_search_nodes type = SLE_UINT def = 10000 min = 500 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_firstred_penalty type = SLE_UINT def = 10 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_firstred_exit_penalty type = SLE_UINT def = 100 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_lastred_penalty type = SLE_UINT def = 10 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_station_penalty type = SLE_UINT def = 1 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_slope_penalty type = SLE_UINT def = 1 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_curve_penalty type = SLE_UINT def = 1 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_depot_reverse_penalty type = SLE_UINT def = 50 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_pbs_cross_penalty type = SLE_UINT from = 100 def = 3 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_rail_pbs_signal_back_penalty type = SLE_UINT from = 100 def = 15 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_buoy_penalty type = SLE_UINT def = 2 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_water_curve_penalty type = SLE_UINT def = 1 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_road_curve_penalty type = SLE_UINT def = 1 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_crossing_penalty type = SLE_UINT def = 3 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_road_drive_through_penalty type = SLE_UINT from = 47 def = 8 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_road_dt_occupied_penalty type = SLE_UINT from = 130 def = 8 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.npf_road_bay_occupied_penalty type = SLE_UINT from = 130 def = 15 * NPF_TILE_LENGTH min = 0 max = 100000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.npf.maximum_go_to_depot_penalty type = SLE_UINT from = 131 def = 20 * NPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT ## [SDT_BOOL] base = GameSettings var = pf.yapf.disable_node_optimization from = 28 def = false +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.max_search_nodes type = SLE_UINT from = 28 def = 10000 min = 500 max = 1000000 +cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = pf.yapf.rail_firstred_twoway_eol from = 28 def = false +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_firstred_penalty type = SLE_UINT from = 28 def = 10 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_firstred_exit_penalty type = SLE_UINT from = 28 def = 100 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_lastred_penalty type = SLE_UINT from = 28 def = 10 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_lastred_exit_penalty type = SLE_UINT from = 28 def = 100 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_station_penalty type = SLE_UINT from = 28 def = 10 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_slope_penalty type = SLE_UINT from = 28 def = 2 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_curve45_penalty type = SLE_UINT from = 28 def = 1 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_curve90_penalty type = SLE_UINT from = 28 def = 6 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_depot_reverse_penalty type = SLE_UINT from = 28 def = 50 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_crossing_penalty type = SLE_UINT from = 28 def = 3 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_look_ahead_max_signals type = SLE_UINT from = 28 def = 10 min = 1 max = 100 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_look_ahead_signal_p0 type = SLE_INT from = 28 def = 500 min = -1000000 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_look_ahead_signal_p1 type = SLE_INT from = 28 def = -100 min = -1000000 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_look_ahead_signal_p2 type = SLE_INT from = 28 def = 5 min = -1000000 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_pbs_cross_penalty type = SLE_UINT from = 100 def = 3 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_pbs_station_penalty type = SLE_UINT from = 100 def = 8 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_pbs_signal_back_penalty type = SLE_UINT from = 100 def = 15 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_doubleslip_penalty type = SLE_UINT from = 100 def = 1 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_longer_platform_penalty type = SLE_UINT from = 33 def = 8 * YAPF_TILE_LENGTH min = 0 max = 20000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_longer_platform_per_tile_penalty type = SLE_UINT from = 33 def = 0 * YAPF_TILE_LENGTH min = 0 max = 20000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_shorter_platform_penalty type = SLE_UINT from = 33 def = 40 * YAPF_TILE_LENGTH min = 0 max = 20000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.rail_shorter_platform_per_tile_penalty type = SLE_UINT from = 33 def = 0 * YAPF_TILE_LENGTH min = 0 max = 20000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_slope_penalty type = SLE_UINT from = 33 def = 2 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_curve_penalty type = SLE_UINT from = 33 def = 1 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_crossing_penalty type = SLE_UINT from = 33 def = 3 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_stop_penalty type = SLE_UINT from = 47 def = 8 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_stop_occupied_penalty type = SLE_UINT from = 130 def = 8 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.road_stop_bay_occupied_penalty type = SLE_UINT from = 130 def = 15 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT [SDT_VAR] base = GameSettings var = pf.yapf.maximum_go_to_depot_penalty type = SLE_UINT from = 131 def = 20 * YAPF_TILE_LENGTH min = 0 max = 1000000 +cat = SC_EXPERT ## [SDT_VAR] base = GameSettings var = game_creation.land_generator type = SLE_UINT8 from = 30 guiflags = SGF_MULTISTRING def = 1 min = 0 max = 1 str = STR_CONFIG_SETTING_LAND_GENERATOR strval = STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.oil_refinery_limit type = SLE_UINT8 from = 30 def = 32 min = 12 max = 48 str = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE strval = STR_CONFIG_SETTING_TILE_LENGTH strhelp = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = game_creation.tgen_smoothness type = SLE_UINT8 from = 30 guiflags = SGF_MULTISTRING def = 1 min = 0 max = 3 str = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN strval = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.variety type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 0 min = 0 max = 5 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.generation_seed type = SLE_UINT32 from = 30 def = GENERATE_NEW_SEED min = 0 max = UINT32_MAX +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = game_creation.tree_placer type = SLE_UINT8 from = 30 guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 str = STR_CONFIG_SETTING_TREE_PLACER strval = STR_CONFIG_SETTING_TREE_PLACER_NONE +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.heightmap_rotation type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 1 str = STR_CONFIG_SETTING_HEIGHTMAP_ROTATION strval = STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.se_flat_world_height type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1 min = 0 max = 15 str = STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT strval = STR_JUST_COMMA +cat = SC_BASIC ## [SDT_VAR] base = GameSettings var = game_creation.map_x type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 8 min = MIN_MAP_SIZE_BITS max = MAX_MAP_SIZE_BITS +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.map_y type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 8 min = MIN_MAP_SIZE_BITS max = MAX_MAP_SIZE_BITS +cat = SC_BASIC [SDT_BOOL] base = GameSettings var = construction.freeform_edges from = 111 def = true str = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES strhelp = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT proc = CheckFreeformEdges +cat = SC_ADVANCED [SDT_VAR] base = GameSettings var = game_creation.water_borders type = SLE_UINT8 from = 111 def = 15 min = 0 max = 16 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.custom_town_number type = SLE_UINT16 from = 115 def = 1 min = 1 max = 5000 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = construction.extra_tree_placement type = SLE_UINT8 from = 132 guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 str = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT strhelp = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT strval = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.custom_sea_level type = SLE_UINT8 from = 149 def = 1 min = 2 max = 90 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.min_river_length type = SLE_UINT8 from = 163 def = 16 min = 2 max = 255 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.river_route_random type = SLE_UINT8 from = 163 def = 5 min = 1 max = 255 +cat = SC_BASIC [SDT_VAR] base = GameSettings var = game_creation.amount_of_rivers type = SLE_UINT8 from = 163 def = 2 min = 0 max = 3 +cat = SC_BASIC ; locale [SDT_OMANY] base = GameSettings var = locale.currency type = SLE_UINT8 from = 97 flags = SLF_NO_NETWORK_SYNC def = 0 max = CUSTOM_CURRENCY_ID full = _locale_currencies proc = RedrawScreen +cat = SC_BASIC [SDT_OMANY] base = GameSettings var = locale.units type = SLE_UINT8 from = 97 flags = SLF_NO_NETWORK_SYNC def = 1 max = 2 full = _locale_units proc = RedrawScreen +cat = SC_BASIC [SDT_STR] base = GameSettings var = locale.digit_group_separator type = SLE_STRQ from = 118 flags = SLF_NO_NETWORK_SYNC def = NULL proc = RedrawScreen +cat = SC_BASIC [SDT_STR] base = GameSettings var = locale.digit_group_separator_currency type = SLE_STRQ from = 118 flags = SLF_NO_NETWORK_SYNC def = NULL proc = RedrawScreen +cat = SC_BASIC [SDT_STR] base = GameSettings var = locale.digit_decimal_separator type = SLE_STRQ from = 126 flags = SLF_NO_NETWORK_SYNC def = NULL proc = RedrawScreen +cat = SC_BASIC ;*************************************************************************** ; Unsaved setting variables. [SDTC_OMANY] var = gui.autosave type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1 max = 4 full = _autosave_interval +cat = SC_BASIC [SDTC_BOOL] var = gui.threaded_saves flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true +cat = SC_EXPERT [SDTC_OMANY] var = gui.date_format_in_default_names type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 max = 2 full = _savegame_date str = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES strhelp = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT strval = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG +cat = SC_ADVANCED [SDTC_BOOL] var = gui.show_finances flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_SHOWFINANCES strhelp = STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.auto_scrolling type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 3 str = STR_CONFIG_SETTING_AUTOSCROLL strhelp = STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT strval = STR_CONFIG_SETTING_AUTOSCROLL_DISABLED +cat = SC_BASIC [SDTC_BOOL] var = gui.reverse_scroll flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_REVERSE_SCROLLING strhelp = STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT +cat = SC_ADVANCED [SDTC_BOOL] var = gui.smooth_scroll flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_SMOOTH_SCROLLING strhelp = STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT +cat = SC_ADVANCED [SDTC_BOOL] var = gui.left_mouse_btn_scrolling flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING strhelp = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT +cat = SC_BASIC [SDTC_BOOL] var = gui.measure_tooltip flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_MEASURE_TOOLTIP strhelp = STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.errmsg_duration type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 5 min = 0 max = 20 str = STR_CONFIG_SETTING_ERRMSG_DURATION strhelp = STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT strval = STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE +cat = SC_ADVANCED [SDTC_VAR] var = gui.hover_delay type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED def = 2 min = 1 max = 5 str = STR_CONFIG_SETTING_HOVER_DELAY strhelp = STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT strval = STR_CONFIG_SETTING_HOVER_DELAY_VALUE +cat = SC_ADVANCED [SDTC_VAR] var = gui.toolbar_pos type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_TOOLBAR_POS strhelp = STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT strval = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT proc = v_PositionMainToolbar +cat = SC_BASIC [SDTC_VAR] var = gui.statusbar_pos type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_STATUSBAR_POS strhelp = STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT strval = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT proc = v_PositionStatusbar +cat = SC_BASIC [SDTC_VAR] var = gui.window_snap_radius type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED def = 10 min = 1 max = 32 str = STR_CONFIG_SETTING_SNAP_RADIUS strhelp = STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT strval = STR_CONFIG_SETTING_SNAP_RADIUS_VALUE +cat = SC_ADVANCED [SDTC_VAR] var = gui.window_soft_limit type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED def = 20 min = 5 max = 255 interval = 1 str = STR_CONFIG_SETTING_SOFT_LIMIT strhelp = STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT strval = STR_CONFIG_SETTING_SOFT_LIMIT_VALUE +cat = SC_EXPERT [SDTC_VAR] var = gui.zoom_min type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = ZOOM_LVL_MIN min = ZOOM_LVL_MIN max = ZOOM_LVL_GUI str = STR_CONFIG_SETTING_ZOOM_MIN strhelp = STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT strval = STR_CONFIG_SETTING_ZOOM_LVL_MIN proc = ZoomMinMaxChanged +cat = SC_EXPERT [SDTC_VAR] var = gui.zoom_max type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = ZOOM_LVL_MAX min = ZOOM_LVL_OUT_8X max = ZOOM_LVL_MAX str = STR_CONFIG_SETTING_ZOOM_MAX strhelp = STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT strval = STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X proc = ZoomMinMaxChanged +cat = SC_EXPERT [SDTC_BOOL] var = gui.population_in_label flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_POPULATION_IN_LABEL strhelp = STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT proc = PopulationInLabelActive +cat = SC_ADVANCED [SDTC_BOOL] var = gui.link_terraform_toolbar flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR strhelp = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT +cat = SC_ADVANCED [SDTC_VAR] var = gui.smallmap_land_colour type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 2 str = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR strhelp = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT strval = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN proc = RedrawSmallmap +cat = SC_EXPERT [SDTC_VAR] var = gui.liveries type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 str = STR_CONFIG_SETTING_LIVERIES strhelp = STR_CONFIG_SETTING_LIVERIES_HELPTEXT strval = STR_CONFIG_SETTING_LIVERIES_NONE proc = InvalidateCompanyLiveryWindow +cat = SC_ADVANCED [SDTC_BOOL] var = gui.prefer_teamchat flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_PREFER_TEAMCHAT strhelp = STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.scrollwheel_scrolling type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 2 str = STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING strhelp = STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT strval = STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM +cat = SC_BASIC [SDTC_VAR] var = gui.scrollwheel_multiplier type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 5 min = 1 max = 15 interval = 1 str = STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER strhelp = STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT strval = STR_JUST_COMMA +cat = SC_BASIC [SDTC_BOOL] var = gui.pause_on_newgame flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME strhelp = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.advanced_vehicle_list type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS strhelp = STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT strval = STR_CONFIG_SETTING_COMPANIES_OFF +cat = SC_EXPERT [SDTC_BOOL] var = gui.timetable_in_ticks flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_TIMETABLE_IN_TICKS strhelp = STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT proc = InvalidateVehTimetableWindow +cat = SC_EXPERT [SDTC_BOOL] var = gui.timetable_arrival_departure flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE strhelp = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT proc = InvalidateVehTimetableWindow +cat = SC_ADVANCED [SDTC_BOOL] var = gui.quick_goto flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_QUICKGOTO strhelp = STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.loading_indicators type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 str = STR_CONFIG_SETTING_LOADING_INDICATORS strhelp = STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT strval = STR_CONFIG_SETTING_COMPANIES_OFF proc = RedrawScreen +cat = SC_BASIC [SDTC_VAR] var = gui.default_rail_type type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 2 str = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE strhelp = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT strval = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST +cat = SC_BASIC [SDTC_BOOL] var = gui.enable_signal_gui flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI strhelp = STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT proc = CloseSignalGUI +cat = SC_EXPERT [SDTC_VAR] var = gui.coloured_news_year type = SLE_INT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 2000 min = MIN_YEAR max = MAX_YEAR interval = 1 str = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR strhelp = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT strval = STR_JUST_INT +cat = SC_ADVANCED [SDTC_VAR] var = gui.drag_signals_density type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 4 min = 1 max = 20 str = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY strhelp = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT strval = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE proc = DragSignalsDensityChanged +cat = SC_BASIC [SDTC_BOOL] var = gui.drag_signals_fixed_distance flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE strhelp = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.semaphore_build_before type = SLE_INT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1950 min = MIN_YEAR max = MAX_YEAR interval = 1 str = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE strhelp = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT strval = STR_JUST_INT proc = ResetSignalVariant +cat = SC_ADVANCED [SDTC_BOOL] var = gui.vehicle_income_warn flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_WARN_INCOME_LESS strhelp = STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.order_review_system type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 str = STR_CONFIG_SETTING_ORDER_REVIEW strhelp = STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT strval = STR_CONFIG_SETTING_ORDER_REVIEW_OFF +cat = SC_ADVANCED [SDTC_BOOL] var = gui.lost_vehicle_warn flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_WARN_LOST_VEHICLE strhelp = STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT +cat = SC_ADVANCED [SDTC_BOOL] var = gui.disable_unsuitable_building flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING strhelp = STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT proc = RedrawScreen +cat = SC_EXPERT [SDTC_BOOL] var = gui.new_nonstop flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT strhelp = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT +cat = SC_BASIC [SDTC_VAR] var = gui.stop_location type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 interval = 1 str = STR_CONFIG_SETTING_STOP_LOCATION strhelp = STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT strval = STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END +cat = SC_BASIC [SDTC_BOOL] var = gui.keep_all_autosave flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_ADVANCED [SDTC_BOOL] var = gui.autosave_on_exit flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_BASIC [SDTC_VAR] var = gui.max_num_autosaves type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 16 min = 0 max = 255 +cat = SC_ADVANCED + [SDTC_BOOL] var = gui.auto_euro flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true +cat = SC_ADVANCED + [SDTC_VAR] var = gui.news_message_timeout type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 2 min = 1 max = 255 +cat = SC_ADVANCED + [SDTC_BOOL] var = gui.show_track_reservation flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION strhelp = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT proc = RedrawScreen +cat = SC_BASIC [SDTC_VAR] var = gui.default_signal_type type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 2 interval = 1 str = STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE strhelp = STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT strval = STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL +cat = SC_BASIC [SDTC_VAR] var = gui.cycle_signal_types type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 2 min = 0 max = 2 interval = 1 str = STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES strhelp = STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT strval = STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL +cat = SC_ADVANCED [SDTC_VAR] var = gui.station_numtracks type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1 min = 1 max = 7 +cat = SC_ADVANCED [SDTC_VAR] var = gui.station_platlength type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 5 min = 1 max = 7 +cat = SC_BASIC [SDTC_BOOL] var = gui.station_dragdrop flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true +cat = SC_BASIC [SDTC_BOOL] var = gui.station_show_coverage flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_BASIC [SDTC_BOOL] var = gui.persistent_buildingtools flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true str = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS strhelp = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT +cat = SC_BASIC [SDTC_BOOL] var = gui.expenses_layout flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false str = STR_CONFIG_SETTING_EXPENSES_LAYOUT strhelp = STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT proc = RedrawScreen +cat = SC_ADVANCED [SDTC_VAR] var = gui.missing_strings_threshold type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 25 min = 1 max = UINT8_MAX +cat = SC_EXPERT [SDTC_VAR] var = gui.graph_line_thickness type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 3 min = 1 max = 5 str = STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS strhelp = STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT strval = STR_JUST_COMMA proc = RedrawScreen +cat = SC_ADVANCED ; For the dedicated build we'll enable dates in logs by default. [SDTC_BOOL] ifdef = DEDICATED var = gui.show_date_in_logs flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true +cat = SC_ADVANCED [SDTC_BOOL] ifndef = DEDICATED var = gui.show_date_in_logs flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_ADVANCED [SDTC_VAR] var = gui.developer type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 1 min = 0 max = 2 +cat = SC_EXPERT [SDTC_BOOL] var = gui.newgrf_developer_tools flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false proc = InvalidateNewGRFChangeWindows +cat = SC_EXPERT [SDTC_BOOL] var = gui.ai_developer_tools flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false proc = InvalidateAISettingsWindow +cat = SC_EXPERT [SDTC_BOOL] var = gui.scenario_developer flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false proc = InvalidateNewGRFChangeWindows +cat = SC_ADVANCED [SDTC_BOOL] var = gui.newgrf_show_old_versions flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_EXPERT [SDTC_VAR] var = gui.newgrf_default_palette type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 1 min = 0 max = 1 str = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE strhelp = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT strval = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS proc = UpdateNewGRFConfigPalette +cat = SC_EXPERT [SDTC_VAR] var = gui.console_backlog_timeout type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 100 min = 10 max = 65500 +cat = SC_ADVANCED [SDTC_VAR] var = gui.console_backlog_length type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 100 min = 10 max = 65500 +cat = SC_ADVANCED [SDTC_VAR] var = music.playlist type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 0 min = 0 max = 5 interval = 1 +cat = SC_BASIC [SDTC_VAR] var = music.music_vol type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 127 min = 0 max = 127 interval = 1 +cat = SC_BASIC [SDTC_VAR] var = music.effect_vol type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 127 min = 0 max = 127 interval = 1 +cat = SC_BASIC [SDTC_LIST] var = music.custom_1 type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = NULL +cat = SC_BASIC [SDTC_LIST] var = music.custom_2 type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = NULL +cat = SC_BASIC [SDTC_BOOL] var = music.playing flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = true +cat = SC_BASIC [SDTC_BOOL] var = music.shuffle flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_BASIC [SDTC_VAR] ifdef = ENABLE_NETWORK var = gui.network_chat_box_width type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 620 min = 200 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = gui.network_chat_box_height type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 25 min = 5 max = 255 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = gui.network_chat_timeout type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 20 min = 1 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.sync_freq type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 100 min = 0 max = 100 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.frame_freq type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 0 min = 0 max = 100 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.commands_per_frame type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 2 min = 1 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_commands_in_queue type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 16 min = 1 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.bytes_per_frame type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 8 min = 1 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.bytes_per_frame_burst type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 256 min = 1 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_init_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 100 min = 0 max = 32000 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_join_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 500 min = 0 max = 32000 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_download_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 1000 min = 0 max = 32000 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_password_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 2000 min = 0 max = 32000 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_lag_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 500 min = 0 max = 32000 +cat = SC_ADVANCED [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.pause_on_join flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = true +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.server_port type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NETWORK_DEFAULT_PORT min = 0 max = 65535 +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.server_admin_port type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NETWORK_ADMIN_PORT min = 0 max = 65535 +cat = SC_EXPERT [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.server_admin_chat flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = true +cat = SC_EXPERT [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.server_advertise flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = false +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.lan_internet type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 0 min = 0 max = 1 +cat = SC_ADVANCED [SDTC_STR] ifdef = ENABLE_NETWORK var = network.client_name type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = NULL proc = UpdateClientName +cat = SC_BASIC [SDTC_STR] ifdef = ENABLE_NETWORK var = network.server_password type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NULL proc = UpdateServerPassword +cat = SC_BASIC [SDTC_STR] ifdef = ENABLE_NETWORK var = network.rcon_password type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NULL proc = UpdateRconPassword +cat = SC_BASIC [SDTC_STR] ifdef = ENABLE_NETWORK var = network.admin_password type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NULL +cat = SC_BASIC [SDTC_STR] ifdef = ENABLE_NETWORK var = network.default_company_pass type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = NULL +cat = SC_ADVANCED [SDTC_STR] ifdef = ENABLE_NETWORK var = network.server_name type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NULL +cat = SC_BASIC [SDTC_STR] ifdef = ENABLE_NETWORK var = network.connect_to_ip type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = NULL +cat = SC_ADVANCED [SDTC_STR] ifdef = ENABLE_NETWORK var = network.network_id type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = NULL +cat = SC_ADVANCED [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.autoclean_companies flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = false +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.autoclean_unprotected type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY def = 12 min = 0 max = 240 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.autoclean_protected type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY def = 36 min = 0 max = 240 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.autoclean_novehicles type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY def = 0 min = 0 max = 240 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_companies type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 15 min = 1 max = MAX_COMPANIES proc = UpdateClientConfigValues +cat = SC_BASIC [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_clients type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 25 min = 2 max = MAX_CLIENTS +cat = SC_BASIC [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.max_spectators type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 15 min = 0 max = MAX_CLIENTS proc = UpdateClientConfigValues +cat = SC_BASIC [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.restart_game_year type = SLE_INT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY def = 0 min = MIN_YEAR max = MAX_YEAR interval = 1 +cat = SC_ADVANCED [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.min_active_clients type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 0 min = 0 max = MAX_CLIENTS +cat = SC_ADVANCED [SDTC_OMANY] ifdef = ENABLE_NETWORK var = network.server_lang type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = 0 max = 35 full = _server_langs +cat = SC_BASIC [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.reload_cfg flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY def = false +cat = SC_EXPERT [SDTC_STR] ifdef = ENABLE_NETWORK var = network.last_host type = SLE_STRB flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = """" +cat = SC_EXPERT [SDTC_VAR] ifdef = ENABLE_NETWORK var = network.last_port type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = 0 min = 0 max = UINT16_MAX +cat = SC_EXPERT [SDTC_BOOL] ifdef = ENABLE_NETWORK var = network.no_http_content_downloads flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC def = false +cat = SC_EXPERT ; Since the network code (CmdChangeSetting and friends) use the index in this array to decide ; which setting the server is talking about all conditional compilation of this array must be at the ; end. This isn't really the best solution, the settings the server can tell the client about should ; either use a seperate array or some other form of identifier. ; ; We might need to emulate a right mouse button on mac [SDTC_VAR] ifdef = __APPLE__ var = gui.right_mouse_btn_emulation type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_MULTISTRING def = 0 min = 0 max = 2 str = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU strhelp = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT strval = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND +cat = SC_BASIC [SDT_END] diff --git a/src/table/win32_settings.ini b/src/table/win32_settings.ini index 15bf4c3..f4f27b9 100644 --- a/src/table/win32_settings.ini +++ b/src/table/win32_settings.ini @@ -10,56 +10,59 @@ /* win32_v.cpp only settings */ #if defined(WIN32) && !defined(DEDICATED) extern bool _force_full_redraw, _window_maximize; extern uint _display_hz, _fullscreen_bpp; static const SettingDescGlobVarList _win32_settings[] = { [post-amble] }; #endif /* WIN32 */ [templates] -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to), +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_END = SDTG_END() [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = 0 interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL proc = NULL load = NULL from = 0 to = SL_MAX_VERSION - +cat = SC_EXPERT [SDTG_VAR] name = ""display_hz"" type = SLE_UINT var = _display_hz def = 0 min = 0 max = 120 +cat = SC_ADVANCED [SDTG_BOOL] name = ""force_full_redraw"" var = _force_full_redraw def = false +cat = SC_EXPERT [SDTG_VAR] name = ""fullscreen_bpp"" type = SLE_UINT var = _fullscreen_bpp def = 8 min = 8 max = 32 +cat = SC_EXPERT [SDTG_BOOL] name = ""window_maximize"" var = _window_maximize def = false [SDTG_END]