From e58046c9477d52470ebb50e2dbd1ccc1af9dae25 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 29 May 2021 10:58:07 +0200 Subject: Codechange: move all settings.ini files to table/settings --- src/table/CMakeLists.txt | 48 +- src/table/company_settings.ini | 130 - src/table/currency_settings.ini | 64 - src/table/gameopt_settings.ini | 178 -- src/table/misc_settings.ini | 356 --- src/table/settings.ini | 3893 ------------------------------ src/table/settings/CMakeLists.txt | 47 + src/table/settings/company_settings.ini | 130 + src/table/settings/currency_settings.ini | 64 + src/table/settings/gameopt_settings.ini | 178 ++ src/table/settings/misc_settings.ini | 356 +++ src/table/settings/settings.ini | 3893 ++++++++++++++++++++++++++++++ src/table/settings/win32_settings.ini | 44 + src/table/settings/window_settings.ini | 53 + src/table/win32_settings.ini | 44 - src/table/window_settings.ini | 53 - 16 files changed, 4766 insertions(+), 4765 deletions(-) delete mode 100644 src/table/company_settings.ini delete mode 100644 src/table/currency_settings.ini delete mode 100644 src/table/gameopt_settings.ini delete mode 100644 src/table/misc_settings.ini delete mode 100644 src/table/settings.ini create mode 100644 src/table/settings/CMakeLists.txt create mode 100644 src/table/settings/company_settings.ini create mode 100644 src/table/settings/currency_settings.ini create mode 100644 src/table/settings/gameopt_settings.ini create mode 100644 src/table/settings/misc_settings.ini create mode 100644 src/table/settings/settings.ini create mode 100644 src/table/settings/win32_settings.ini create mode 100644 src/table/settings/window_settings.ini delete mode 100644 src/table/win32_settings.ini delete mode 100644 src/table/window_settings.ini (limited to 'src/table') diff --git a/src/table/CMakeLists.txt b/src/table/CMakeLists.txt index bb2311cf1..c4043681b 100644 --- a/src/table/CMakeLists.txt +++ b/src/table/CMakeLists.txt @@ -1,50 +1,4 @@ -set(GENERATED_BINARY_DIR ${CMAKE_BINARY_DIR}/generated) -set(TABLE_BINARY_DIR ${GENERATED_BINARY_DIR}/table) - -set(TABLE_INI_SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/company_settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/currency_settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/gameopt_settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/misc_settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/win32_settings.ini - ${CMAKE_CURRENT_SOURCE_DIR}/window_settings.ini -) - -if (HOST_BINARY_DIR) - include(${HOST_BINARY_DIR}/settingsgen.cmake) -endif() - -# Generate a command and target to create the settings table -add_custom_command_timestamp(OUTPUT ${TABLE_BINARY_DIR}/settings.h - COMMAND ${CMAKE_COMMAND} -E make_directory ${TABLE_BINARY_DIR} - COMMAND settingsgen - -o ${TABLE_BINARY_DIR}/settings.h - -b ${CMAKE_SOURCE_DIR}/src/table/settings.h.preamble - -a ${CMAKE_SOURCE_DIR}/src/table/settings.h.postamble - ${TABLE_INI_SOURCE_FILES} - DEPENDS settingsgen ${TABLE_INI_SOURCE_FILES} - ${CMAKE_SOURCE_DIR}/src/table/settings.h.preamble - ${CMAKE_SOURCE_DIR}/src/table/settings.h.postamble - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating table/settings.h" -) -add_custom_target_timestamp(table_settings - DEPENDS - ${TABLE_BINARY_DIR}/settings.h -) - -add_library(settings - INTERFACE -) -target_include_directories(settings - INTERFACE - ${GENERATED_BINARY_DIR} -) -add_dependencies(settings - table_settings -) -add_library(openttd::settings ALIAS settings) +add_subdirectory(settings) add_files( airport_defaults.h diff --git a/src/table/company_settings.ini b/src/table/company_settings.ini deleted file mode 100644 index bb104adeb..000000000 --- a/src/table/company_settings.ini +++ /dev/null @@ -1,130 +0,0 @@ -; This file is part of OpenTTD. -; 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 void UpdateServiceInterval(int32 new_value); -static bool CanUpdateServiceInterval(VehicleType type, int32 &new_value); -static void UpdateServiceInterval(VehicleType type, int32 new_value); - -static const SettingTable _company_settings{ -[post-amble] -}; -[templates] -SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size"); - -[defaults] -flags = 0 -guiflags = SGF_PER_COMPANY -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = false - - - -[SDT_BOOL] -var = engine_renew -def = true -str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE -strhelp = STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT -cat = SC_BASIC - -[SDT_VAR] -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 - -[SDT_VAR] -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 - -[SDT_BOOL] -var = renew_keep_length -def = false - -[SDT_BOOL] -var = vehicle.servint_ispercent -def = false -str = STR_CONFIG_SETTING_SERVINT_ISPERCENT -strhelp = STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT -post_cb = UpdateServiceInterval - -[SDT_VAR] -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 -pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_TRAIN, new_value); } -post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); } - -[SDT_VAR] -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 -pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_ROAD, new_value); } -post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); } - -[SDT_VAR] -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 -pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_SHIP, new_value); } -post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); } - -[SDT_VAR] -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 -pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_AIRCRAFT, new_value); } -post_cb = [](auto new_value) { UpdateServiceInterval(VEH_AIRCRAFT, new_value); } diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini deleted file mode 100644 index ce0213758..000000000 --- a/src/table/currency_settings.ini +++ /dev/null @@ -1,64 +0,0 @@ -; This file is part of OpenTTD. -; 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 SettingTable _currency_settings{ -[post-amble] -}; -[templates] -SDT_VAR = SDT_VAR (CurrencySpec, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_SSTR = SDT_SSTR(CurrencySpec, $var, $type, $flags, $guiflags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CurrencySpec.$var exceeds storage size"); - -[defaults] -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = false - - - -[SDT_VAR] -var = rate -type = SLE_UINT16 -def = 1 -min = 0 -max = UINT16_MAX - -[SDT_SSTR] -var = separator -type = SLE_STRQ -def = ""."" -cat = SC_BASIC - -[SDT_VAR] -var = to_euro -type = SLE_INT32 -def = 0 -min = MIN_YEAR -max = MAX_YEAR - -[SDT_SSTR] -var = prefix -type = SLE_STRQ -def = nullptr - -[SDT_SSTR] -var = suffix -type = SLE_STRQ -def = "" credits"" diff --git a/src/table/gameopt_settings.ini b/src/table/gameopt_settings.ini deleted file mode 100644 index b3b7ec651..000000000 --- a/src/table/gameopt_settings.ini +++ /dev/null @@ -1,178 +0,0 @@ -; This file is part of OpenTTD. -; 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 uint GAME_DIFFICULTY_NUM = 18; -static uint16 _old_diff_custom[GAME_DIFFICULTY_NUM]; -uint8 _old_diff_level; ///< Old difficulty level from old savegames -uint8 _old_units; ///< Old units from old savegames - -/* Most of these strings are used both for gameopt-backward compatibility - * and the settings tables. The rest is here for consistency. */ -static std::initializer_list _locale_currencies{"GBP", "USD", "EUR", "YEN", "ATS", "BEF", "CHF", "CZK", "DEM", "DKK", "ESP", "FIM", "FRF", "GRD", "HUF", "ISK", "ITL", "NLG", "NOK", "PLN", "RON", "RUR", "SIT", "SEK", "YTL", "SKK", "BRL", "EEK", "custom"}; -static std::initializer_list _locale_units{"imperial", "metric", "si", "gameunits"}; -static std::initializer_list _town_names{"english", "french", "german", "american", "latin", "silly", "swedish", "dutch", "finnish", "polish", "slovak", "norwegian", "hungarian", "austrian", "romanian", "czech", "swiss", "danish", "turkish", "italian", "catalan"}; -static std::initializer_list _climates{"temperate", "arctic", "tropic", "toyland"}; -static std::initializer_list _autosave_interval{"off", "monthly", "quarterly", "half year", "yearly"}; -static std::initializer_list _roadsides{"left", "right"}; -static std::initializer_list _savegame_date{"long", "short", "iso"}; -static std::initializer_list _osk_activation{"disabled", "double", "single", "immediately"}; -static std::initializer_list _settings_profiles{"easy", "medium", "hard"}; -static std::initializer_list _news_display{ "off", "summarized", "full"}; - -static const SettingTable _gameopt_settings{ -/* In version 4 a new difficulty setting has been added to the difficulty settings, - * town attitude towards demolishing. Needs special handling because some dimwit thought - * 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_LIST = SDTG_LIST($name, $type, $flags, $guiflags, $var, $def, $length, $from, $to, $cat, $extra, $startup), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_NULL = SDT_NULL( $length, $from, $to), -SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup), -SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); -SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); - -[defaults] -flags = 0 -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = false - - - -[SDTG_LIST] -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 -def = nullptr -to = SLV_4 - -[SDTG_LIST] -name = ""diff_custom"" -sdt_cmd = SDT_INTLIST -sle_cmd = SL_ARR -type = SLE_UINT16 -flags = SLF_NOT_IN_CONFIG -var = _old_diff_custom -length = 18 -def = nullptr -full = nullptr -from = SLV_4 - -## -[SDTG_VAR] -name = ""diff_level"" -var = _old_diff_level -type = SLE_UINT8 -flags = SLF_NOT_IN_CONFIG -def = SP_CUSTOM -min = SP_EASY -max = SP_CUSTOM -cat = SC_BASIC - -[SDT_OMANY] -var = locale.currency -type = SLE_UINT8 -flags = SLF_NO_NETWORK_SYNC -def = 0 -max = CURRENCY_END - 1 -full = _locale_currencies -cat = SC_BASIC - -[SDTG_OMANY] -name = ""units"" -var = _old_units -type = SLE_UINT8 -flags = SLF_NOT_IN_CONFIG -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] -var = game_creation.town_name -type = SLE_UINT8 -def = 0 -max = 255 -full = _town_names -cat = SC_BASIC - -[SDT_OMANY] -var = game_creation.landscape -type = SLE_UINT8 -def = 0 -max = 3 -full = _climates -load = ConvertLandscape -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.snow_line_height -type = SLE_UINT8 -def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT -min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT -# "max" used to be MAX_SNOWLINE_HEIGHT * TILE_HEIGHT, but this would overflow the storage. -max = UINT8_MAX -to = SLV_22 - -[SDT_NULL] -length = 1 -from = SLV_22 -to = SLV_165 - -[SDT_NULL] -length = 1 -to = SLV_23 - -[SDTC_OMANY] -var = gui.autosave -type = SLE_UINT8 -from = SLV_23 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 1 -max = 4 -full = _autosave_interval -cat = SC_BASIC - -[SDT_OMANY] -var = vehicle.road_side -type = SLE_UINT8 -def = 1 -max = 1 -full = _roadsides -cat = SC_BASIC diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini deleted file mode 100644 index 1b633a65a..000000000 --- a/src/table/misc_settings.ini +++ /dev/null @@ -1,356 +0,0 @@ -; This file is part of OpenTTD. -; 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] -extern std::string _config_language_file; - -static std::initializer_list _support8bppmodes{"no", "system" , "hardware"}; -static std::initializer_list _display_opt_modes{"SHOW_TOWN_NAMES", "SHOW_STATION_NAMES", "SHOW_SIGNS", "FULL_ANIMATION", "", "FULL_DETAIL", "WAYPOINTS", "SHOW_COMPETITOR_SIGNS"}; - -#ifdef WITH_COCOA -extern bool _allow_hidpi_window; -#endif -#ifndef WITH_COCOA -#define WITHOUT_COCOA -#endif - -static const SettingTable _misc_settings{ -[post-amble] -}; -[templates] -SDTG_LIST = SDTG_LIST($name, $type, $flags, $guiflags, $var, $def, $length, $from, $to, $cat, $extra, $startup), -SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $guiflags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); - -[defaults] -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = true - - - -[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 = _display_opt_modes - -[SDTG_BOOL] -name = ""fullscreen"" -var = _fullscreen -def = false -cat = SC_BASIC - -[SDTG_BOOL] -ifdef = WITH_COCOA -name = ""video_hw_accel"" -var = _video_hw_accel -def = false -cat = SC_BASIC - -[SDTG_BOOL] -ifdef = WITHOUT_COCOA -name = ""video_hw_accel"" -var = _video_hw_accel -def = true -cat = SC_BASIC - -[SDTG_BOOL] -name = ""video_vsync"" -var = _video_vsync -def = false -cat = SC_BASIC - -[SDTG_OMANY] -name = ""support8bpp"" -type = SLE_UINT8 -var = _support8bpp -def = 0 -max = 2 -full = _support8bppmodes -cat = SC_BASIC - -[SDTG_SSTR] -name = ""graphicsset"" -type = SLE_STRQ -var = BaseGraphics::ini_set -def = nullptr -cat = SC_BASIC - -[SDTG_SSTR] -name = ""soundsset"" -type = SLE_STRQ -var = BaseSounds::ini_set -def = nullptr -cat = SC_BASIC - -[SDTG_SSTR] -name = ""musicset"" -type = SLE_STRQ -var = BaseMusic::ini_set -def = nullptr -cat = SC_BASIC - -[SDTG_SSTR] -name = ""videodriver"" -type = SLE_STRQ -var = _ini_videodriver -def = nullptr -cat = SC_EXPERT - -[SDTG_SSTR] -name = ""musicdriver"" -type = SLE_STRQ -var = _ini_musicdriver -def = nullptr -cat = SC_EXPERT - -[SDTG_SSTR] -name = ""sounddriver"" -type = SLE_STRQ -var = _ini_sounddriver -def = nullptr -cat = SC_EXPERT - -[SDTG_SSTR] -name = ""blitter"" -type = SLE_STRQ -var = _ini_blitter -def = nullptr - -[SDTG_SSTR] -name = ""language"" -type = SLE_STR -var = _config_language_file -def = nullptr -cat = SC_BASIC - -; workaround for implicit lengthof() in SDTG_LIST -[SDTG_LIST] -name = ""resolution"" -type = SLE_INT -length = 2 -var = _cur_resolution -def = ""0,0"" -cat = SC_BASIC - -[SDTG_SSTR] -name = ""screenshot_format"" -type = SLE_STR -var = _screenshot_format_name -def = nullptr -cat = SC_EXPERT - -[SDTG_SSTR] -name = ""savegame_format"" -type = SLE_STR -var = _savegame_format -def = nullptr -cat = SC_EXPERT - -[SDTG_BOOL] -name = ""rightclick_emulate"" -var = _rightclick_emulate -def = false - -[SDTG_SSTR] -ifdef = HAS_TRUETYPE_FONT -name = ""small_font"" -type = SLE_STR -var = _freetype.small.font -def = nullptr - -[SDTG_SSTR] -ifdef = HAS_TRUETYPE_FONT -name = ""medium_font"" -type = SLE_STR -var = _freetype.medium.font -def = nullptr - -[SDTG_SSTR] -ifdef = HAS_TRUETYPE_FONT -name = ""large_font"" -type = SLE_STR -var = _freetype.large.font -def = nullptr - -[SDTG_SSTR] -ifdef = HAS_TRUETYPE_FONT -name = ""mono_font"" -type = SLE_STR -var = _freetype.mono.font -def = nullptr - -[SDTG_VAR] -ifdef = HAS_TRUETYPE_FONT -name = ""small_size"" -type = SLE_UINT -var = _freetype.small.size -def = 0 -min = 0 -max = 72 - -[SDTG_VAR] -ifdef = HAS_TRUETYPE_FONT -name = ""medium_size"" -type = SLE_UINT -var = _freetype.medium.size -def = 0 -min = 0 -max = 72 - -[SDTG_VAR] -ifdef = HAS_TRUETYPE_FONT -name = ""large_size"" -type = SLE_UINT -var = _freetype.large.size -def = 0 -min = 0 -max = 72 - -[SDTG_VAR] -ifdef = HAS_TRUETYPE_FONT -name = ""mono_size"" -type = SLE_UINT -var = _freetype.mono.size -def = 0 -min = 0 -max = 72 - -[SDTG_BOOL] -ifdef = HAS_TRUETYPE_FONT -name = ""small_aa"" -var = _freetype.small.aa -def = false - -[SDTG_BOOL] -ifdef = HAS_TRUETYPE_FONT -name = ""medium_aa"" -var = _freetype.medium.aa -def = false - -[SDTG_BOOL] -ifdef = HAS_TRUETYPE_FONT -name = ""large_aa"" -var = _freetype.large.aa -def = false - -[SDTG_BOOL] -ifdef = HAS_TRUETYPE_FONT -name = ""mono_aa"" -var = _freetype.mono.aa -def = false - -[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_BASIC - -[SDTG_VAR] -name = ""invisibility_options"" -type = SLE_UINT -var = _invisibility_opt -def = 0 -min = 0 -max = 0xFF -cat = SC_BASIC - -[SDTG_SSTR] -name = ""keyboard"" -type = SLE_STR -var = _keyboard_opt[0] -def = nullptr -cat = SC_EXPERT - -[SDTG_SSTR] -name = ""keyboard_caps"" -type = SLE_STR -var = _keyboard_opt[1] -def = nullptr -cat = SC_EXPERT - -[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_VAR] -name = ""gui_zoom"" -type = SLE_INT8 -var = _gui_zoom_cfg -def = ZOOM_LVL_CFG_AUTO -min = ZOOM_LVL_CFG_AUTO -max = ZOOM_LVL_OUT_4X -cat = SC_BASIC - -[SDTG_VAR] -name = ""font_zoom"" -type = SLE_INT8 -var = _font_zoom_cfg -def = ZOOM_LVL_CFG_AUTO -min = ZOOM_LVL_CFG_AUTO -max = ZOOM_LVL_OUT_4X -cat = SC_BASIC - -[SDTG_BOOL] -ifdef = WITH_COCOA -name = ""allow_hidpi"" -var = _allow_hidpi_window -def = true diff --git a/src/table/settings.ini b/src/table/settings.ini deleted file mode 100644 index 3c22ec4c1..000000000 --- a/src/table/settings.ini +++ /dev/null @@ -1,3893 +0,0 @@ -; This file is part of OpenTTD. -; 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] -/* Begin - Callback Functions for the various settings */ -static void v_PositionMainToolbar(int32 new_value); -static void v_PositionStatusbar(int32 new_value); -static void RedrawSmallmap(int32 new_value); -static void StationSpreadChanged(int32 new_value); -static void CloseSignalGUI(int32 new_value); -static void UpdateConsists(int32 new_value); -static void TrainAccelerationModelChanged(int32 new_value); -static void RoadVehAccelerationModelChanged(int32 new_value); -static void TrainSlopeSteepnessChanged(int32 new_value); -static void RoadVehSlopeSteepnessChanged(int32 new_value); -static void TownFoundingChanged(int32 new_value); -static void DifficultyNoiseChange(int32 new_value); -static void MaxNoAIsChange(int32 new_value); -static bool CheckRoadSide(int32 &new_value); -static bool CheckMaxHeightLevel(int32 &new_value); -static bool CheckFreeformEdges(int32 &new_value); -static void UpdateFreeformEdges(int32 new_value); -static bool CheckDynamicEngines(int32 &new_value); -static void StationCatchmentChanged(int32 new_value); -static void InvalidateCompanyLiveryWindow(int32 new_value); -static void InvalidateNewGRFChangeWindows(int32 new_value); -static void ZoomMinMaxChanged(int32 new_value); -static void SpriteZoomMinChanged(int32 new_value); -static void MaxVehiclesChanged(int32 new_value); -static void InvalidateShipPathCache(int32 new_value); - -static bool ReplaceAsteriskWithEmptyPassword(std::string &newval); -static void UpdateClientConfigValues(); - -/* End - Callback Functions for the various settings */ - -/* Some settings do not need to be synchronised when playing in multiplayer. - * These include for example the GUI settings and will not be saved with the - * savegame. - * It is also a bit tricky since you would think that service_interval - * for example does not need to be synched. Every client assigns the - * service_interval value to the v->service_interval, meaning that every client - * assigns its own 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 SettingTable _settings{ -[post-amble] -}; -[templates] -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTC_LIST = SDTC_LIST( $var, $type, $flags, $guiflags, $def, $from, $to, $cat, $extra, $startup), -SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTC_SSTR = SDTC_SSTR( $var, $type, $flags, $guiflags, $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup), -SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $guiflags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_NULL = SDT_NULL( $length, $from, $to), - -[validation] -SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); -SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); -SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); - -[defaults] -flags = 0 -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = false - - - -; Saved settings variables. -; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatibility. -[SDT_VAR] -var = difficulty.max_no_competitors -type = SLE_UINT8 -from = SLV_97 -def = 0 -min = 0 -max = MAX_COMPANIES - 1 -interval = 1 -post_cb = MaxNoAIsChange -cat = SC_BASIC - -[SDT_NULL] -length = 1 -from = SLV_97 -to = SLV_110 - -[SDT_VAR] -var = difficulty.number_towns -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY -def = 2 -min = 0 -max = 4 -interval = 1 -strval = STR_NUM_VERY_LOW -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.industry_density -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING -def = ID_END - 1 -min = 0 -max = ID_END - 1 -interval = 1 -str = STR_CONFIG_SETTING_INDUSTRY_DENSITY -strhelp = STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT -strval = STR_FUNDING_ONLY -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.max_loan -type = SLE_UINT32 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY -def = 300000 -min = 0 -max = 2000000000 -interval = 50000 -str = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN -strhelp = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT -strval = STR_JUST_CURRENCY_LONG -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.initial_interest -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO -def = 2 -min = 2 -max = 4 -interval = 1 -str = STR_CONFIG_SETTING_INTEREST_RATE -strhelp = STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT -strval = STR_CONFIG_SETTING_PERCENTAGE - -[SDT_VAR] -var = difficulty.vehicle_costs -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING -def = 0 -min = 0 -max = 2 -interval = 1 -str = STR_CONFIG_SETTING_RUNNING_COSTS -strhelp = STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT -strval = STR_SEA_LEVEL_LOW -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.competitor_speed -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING -def = 2 -min = 0 -max = 4 -interval = 1 -str = STR_CONFIG_SETTING_CONSTRUCTION_SPEED -strhelp = STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT -strval = STR_AI_SPEED_VERY_SLOW -cat = SC_BASIC - -[SDT_NULL] -length = 1 -from = SLV_97 -to = SLV_110 - -[SDT_VAR] -var = difficulty.vehicle_breakdowns -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING -def = 1 -min = 0 -max = 2 -interval = 1 -str = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS -strhelp = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT -strval = STR_DISASTER_NONE -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.subsidy_multiplier -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING -def = 2 -min = 0 -max = 3 -interval = 1 -str = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER -strhelp = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT -strval = STR_SUBSIDY_X1_5 - -[SDT_VAR] -var = difficulty.construction_cost -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING -def = 0 -min = 0 -max = 2 -interval = 1 -str = STR_CONFIG_SETTING_CONSTRUCTION_COSTS -strhelp = STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT -strval = STR_SEA_LEVEL_LOW -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.terrain_type -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 1 -min = 0 -max = 5 -interval = 1 -str = STR_CONFIG_SETTING_TERRAIN_TYPE -strhelp = STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT -strval = STR_TERRAIN_TYPE_VERY_FLAT -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.quantity_sea_lakes -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NEWGAME_ONLY -def = 0 -min = 0 -max = 4 -interval = 1 -strval = STR_SEA_LEVEL_VERY_LOW -cat = SC_BASIC - -[SDT_BOOL] -var = difficulty.economy -from = SLV_97 -def = false -str = STR_CONFIG_SETTING_RECESSIONS -strhelp = STR_CONFIG_SETTING_RECESSIONS_HELPTEXT - -[SDT_BOOL] -var = difficulty.line_reverse_mode -from = SLV_97 -def = false -str = STR_CONFIG_SETTING_TRAIN_REVERSING -strhelp = STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT - -[SDT_BOOL] -var = difficulty.disasters -from = SLV_97 -def = false -str = STR_CONFIG_SETTING_DISASTERS -strhelp = STR_CONFIG_SETTING_DISASTERS_HELPTEXT -cat = SC_BASIC - -[SDT_VAR] -var = difficulty.town_council_tolerance -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING -def = 0 -min = 0 -max = 2 -interval = 1 -str = STR_CONFIG_SETTING_CITY_APPROVAL -strhelp = STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT -strval = STR_CITY_APPROVAL_PERMISSIVE -post_cb = DifficultyNoiseChange - -[SDTG_VAR] -name = ""diff_level"" -var = _old_diff_level -type = SLE_UINT8 -flags = SLF_NOT_IN_CONFIG -from = SLV_97 -to = SLV_178 -def = 3 -min = 0 -max = 3 -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] -var = game_creation.town_name -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_NO_NETWORK -def = 0 -max = 255 -full = _town_names -cat = SC_BASIC - -[SDT_OMANY] -var = game_creation.landscape -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 0 -max = 3 -full = _climates -load = ConvertLandscape -str = STR_CONFIG_SETTING_LANDSCAPE -strhelp = STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT -strval = STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE -cat = SC_BASIC - -; Snow line (or snow_line_height * TILE_HEIGHT) -[SDT_NULL] -length = 1 -from = SLV_97 -to = SLV_164 - -[SDT_OMANY] -var = vehicle.road_side -type = SLE_UINT8 -from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NO_NETWORK -def = 1 -max = 1 -full = _roadsides -str = STR_CONFIG_SETTING_ROAD_SIDE -strhelp = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT -strval = STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT -pre_cb = CheckRoadSide -cat = SC_BASIC - -; Construction - -[SDT_VAR] -var = construction.map_height_limit -type = SLE_UINT8 -from = SLV_194 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_0ISDISABLED -def = 0 -min = MIN_MAP_HEIGHT_LIMIT -max = MAX_MAP_HEIGHT_LIMIT -interval = 1 -str = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT -strhelp = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT -strval = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE -pre_cb = CheckMaxHeightLevel -post_cb = [](auto) { InvalidateWindowClassesData(WC_SMALLMAP, 2); } -cat = SC_ADVANCED - -[SDT_VAR] -var = game_creation.heightmap_height -type = SLE_UINT8 -from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY -def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM -min = MIN_HEIGHTMAP_HEIGHT -max = MAX_MAP_HEIGHT_LIMIT -interval = 1 - -[SDT_BOOL] -var = construction.build_on_slopes -guiflags = SGF_NO_NETWORK -def = true -cat = SC_EXPERT - -[SDT_VAR] -var = construction.command_pause_level -type = SLE_UINT8 -from = SLV_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 - -[SDT_VAR] -var = construction.terraform_per_64k_frames -type = SLE_UINT32 -from = SLV_156 -def = 64 << 16 -min = 0 -max = 1 << 30 -interval = 1 -cat = SC_EXPERT - -[SDT_VAR] -var = construction.terraform_frame_burst -type = SLE_UINT16 -from = SLV_156 -def = 4096 -min = 0 -max = 1 << 15 -interval = 1 -cat = SC_EXPERT - -[SDT_VAR] -var = construction.clear_per_64k_frames -type = SLE_UINT32 -from = SLV_156 -def = 64 << 16 -min = 0 -max = 1 << 30 -interval = 1 -cat = SC_EXPERT - -[SDT_VAR] -var = construction.clear_frame_burst -type = SLE_UINT16 -from = SLV_156 -def = 4096 -min = 0 -max = 1 << 15 -interval = 1 -cat = SC_EXPERT - -[SDT_VAR] -var = construction.tree_per_64k_frames -type = SLE_UINT32 -from = SLV_175 -def = 64 << 16 -min = 0 -max = 1 << 30 -interval = 1 -cat = SC_EXPERT - -[SDT_VAR] -var = construction.tree_frame_burst -type = SLE_UINT16 -from = SLV_175 -def = 4096 -min = 0 -max = 1 << 15 -interval = 1 -cat = SC_EXPERT - -[SDT_BOOL] -var = construction.autoslope -from = SLV_75 -def = true -str = STR_CONFIG_SETTING_AUTOSLOPE -strhelp = STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT -cat = SC_EXPERT - -[SDT_BOOL] -var = construction.extra_dynamite -def = true -str = STR_CONFIG_SETTING_EXTRADYNAMITE -strhelp = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT - -[SDT_VAR] -var = construction.max_bridge_length -type = SLE_UINT16 -from = SLV_159 -guiflags = SGF_NO_NETWORK -def = 64 -min = 1 -max = MAX_MAP_SIZE -interval = 1 -str = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH -strhelp = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT -strval = STR_CONFIG_SETTING_TILE_LENGTH - -[SDT_VAR] -var = construction.max_bridge_height -type = SLE_UINT8 -from = SLV_194 -guiflags = SGF_NO_NETWORK -def = 12 -min = 1 -max = MAX_TILE_HEIGHT -interval = 1 -str = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT -strhelp = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT -strval = STR_JUST_COMMA -cat = SC_EXPERT - -[SDT_VAR] -var = construction.max_tunnel_length -type = SLE_UINT16 -from = SLV_159 -guiflags = SGF_NO_NETWORK -def = 64 -min = 1 -max = MAX_MAP_SIZE -interval = 1 -str = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH -strhelp = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT -strval = STR_CONFIG_SETTING_TILE_LENGTH - -# construction.longbridges -[SDT_NULL] -length = 1 -to = SLV_159 - -[SDT_VAR] -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 -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - -[SDT_BOOL] -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 - -[SDT_VAR] -var = economy.town_layout -type = SLE_UINT8 -from = SLV_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 -post_cb = TownFoundingChanged - -[SDT_BOOL] -var = economy.allow_town_roads -from = SLV_113 -guiflags = SGF_NO_NETWORK -def = true -str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS -strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT - -[SDT_VAR] -var = economy.found_town -type = SLE_UINT8 -from = SLV_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 -post_cb = TownFoundingChanged -cat = SC_BASIC - -[SDT_BOOL] -var = economy.allow_town_level_crossings -from = SLV_143 -guiflags = SGF_NO_NETWORK -def = true -str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS -strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT - -[SDT_VAR] -var = economy.town_cargogen_mode -type = SLE_UINT8 -from = SLV_TOWN_CARGOGEN -guiflags = SGF_MULTISTRING -def = TCGM_BITCOUNT -min = TCGM_BEGIN -max = TCGM_END - 1 -interval = 1 -str = STR_CONFIG_SETTING_TOWN_CARGOGENMODE -strhelp = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT -strval = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL -cat = SC_ADVANCED - -; link graph - -[SDT_VAR] -var = linkgraph.recalc_interval -type = SLE_UINT16 -from = SLV_183 -def = 4 -min = 2 -max = 32 -interval = 2 -str = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL -strval = STR_JUST_COMMA -strhelp = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT -extra = offsetof(LinkGraphSettings, recalc_interval) - -[SDT_VAR] -var = linkgraph.recalc_time -type = SLE_UINT16 -from = SLV_183 -def = 16 -min = 1 -max = 4096 -interval = 1 -str = STR_CONFIG_SETTING_LINKGRAPH_TIME -strval = STR_JUST_COMMA -strhelp = STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT -extra = offsetof(LinkGraphSettings, recalc_time) - - -[SDT_VAR] -var = linkgraph.distribution_pax -type = SLE_UINT8 -from = SLV_183 -guiflags = SGF_MULTISTRING -def = DT_MANUAL -min = DT_MIN -max = DT_MAX -interval = 1 -str = STR_CONFIG_SETTING_DISTRIBUTION_PAX -strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL -strhelp = STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT -extra = offsetof(LinkGraphSettings, distribution_pax) - - -[SDT_VAR] -var = linkgraph.distribution_mail -type = SLE_UINT8 -from = SLV_183 -guiflags = SGF_MULTISTRING -def = DT_MANUAL -min = DT_MIN -max = DT_MAX -interval = 1 -str = STR_CONFIG_SETTING_DISTRIBUTION_MAIL -strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL -strhelp = STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT -extra = offsetof(LinkGraphSettings, distribution_mail) - - -[SDT_VAR] -var = linkgraph.distribution_armoured -type = SLE_UINT8 -from = SLV_183 -guiflags = SGF_MULTISTRING -def = DT_MANUAL -min = DT_MIN -max = DT_MAX -interval = 1 -str = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED -strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL -strhelp = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT -extra = offsetof(LinkGraphSettings, distribution_armoured) - - -[SDT_VAR] -var = linkgraph.distribution_default -type = SLE_UINT8 -from = SLV_183 -guiflags = SGF_MULTISTRING -def = DT_MANUAL -min = DT_BEGIN -max = DT_MAX_NONSYMMETRIC -interval = 1 -str = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT -strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL -strhelp = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT -extra = offsetof(LinkGraphSettings, distribution_default) - - -[SDT_VAR] -var = linkgraph.accuracy -type = SLE_UINT8 -from = SLV_183 -def = 16 -min = 2 -max = 64 -interval = 1 -str = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY -strval = STR_JUST_COMMA -strhelp = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT -extra = offsetof(LinkGraphSettings, accuracy) - - -[SDT_VAR] -var = linkgraph.demand_distance -type = SLE_UINT8 -from = SLV_183 -def = 100 -min = 0 -max = 255 -interval = 5 -str = STR_CONFIG_SETTING_DEMAND_DISTANCE -strval = STR_CONFIG_SETTING_PERCENTAGE -strhelp = STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT -extra = offsetof(LinkGraphSettings, demand_distance) - - -[SDT_VAR] -var = linkgraph.demand_size -type = SLE_UINT8 -from = SLV_183 -def = 100 -min = 0 -max = 100 -interval = 5 -str = STR_CONFIG_SETTING_DEMAND_SIZE -strval = STR_CONFIG_SETTING_PERCENTAGE -strhelp = STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT -extra = offsetof(LinkGraphSettings, demand_size) - - -[SDT_VAR] -var = linkgraph.short_path_saturation -type = SLE_UINT8 -from = SLV_183 -def = 80 -min = 0 -max = 250 -interval = 5 -str = STR_CONFIG_SETTING_SHORT_PATH_SATURATION -strval = STR_CONFIG_SETTING_PERCENTAGE -strhelp = STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT -extra = offsetof(LinkGraphSettings, short_path_saturation) - - -; Vehicles - -[SDT_VAR] -var = vehicle.train_acceleration_model -type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = 1 -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 -post_cb = TrainAccelerationModelChanged - -[SDT_VAR] -var = vehicle.roadveh_acceleration_model -type = SLE_UINT8 -from = SLV_139 -guiflags = SGF_MULTISTRING -def = 1 -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 -post_cb = RoadVehAccelerationModelChanged - -[SDT_VAR] -var = vehicle.train_slope_steepness -type = SLE_UINT8 -from = SLV_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 -post_cb = TrainSlopeSteepnessChanged -cat = SC_EXPERT - -[SDT_VAR] -var = vehicle.roadveh_slope_steepness -type = SLE_UINT8 -from = SLV_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 -post_cb = RoadVehSlopeSteepnessChanged -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.forbid_90_deg -def = false -str = STR_CONFIG_SETTING_FORBID_90_DEG -strhelp = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT -post_cb = InvalidateShipPathCache -cat = SC_EXPERT - -[SDT_VAR] -var = vehicle.max_train_length -type = SLE_UINT8 -from = SLV_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 = SLV_159 - -[SDT_VAR] -var = vehicle.smoke_amount -type = SLE_UINT8 -from = SLV_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 - -; order.gotodepot -[SDT_NULL] -length = 1 -to = SLV_159 - -; path finder - -[SDT_BOOL] -var = pf.roadveh_queue -def = true -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.new_pathfinding_all -to = SLV_87 -def = false -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.yapf.ship_use_yapf -from = SLV_28 -to = SLV_87 -def = false -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.yapf.road_use_yapf -from = SLV_28 -to = SLV_87 -def = true -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.yapf.rail_use_yapf -from = SLV_28 -to = SLV_87 -def = true -cat = SC_EXPERT - -## -[SDT_VAR] -var = pf.pathfinder_for_trains -type = SLE_UINT8 -from = SLV_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] -var = pf.pathfinder_for_roadvehs -type = SLE_UINT8 -from = SLV_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] -var = pf.pathfinder_for_ships -type = SLE_UINT8 -from = SLV_87 -guiflags = SGF_MULTISTRING -def = 2 -min = 1 -max = 2 -interval = 1 -str = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS -strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT -strval = STR_CONFIG_SETTING_PATHFINDER_NPF -post_cb = InvalidateShipPathCache -cat = SC_EXPERT - -[SDT_BOOL] -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 - -[SDT_VAR] -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 -post_cb = MaxVehiclesChanged -cat = SC_BASIC - -[SDT_VAR] -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 -post_cb = MaxVehiclesChanged -cat = SC_BASIC - -[SDT_VAR] -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 -post_cb = MaxVehiclesChanged -cat = SC_BASIC - -[SDT_VAR] -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 -post_cb = MaxVehiclesChanged -cat = SC_BASIC - -[SDTG_BOOL] -name = nullptr -guiflags = SGF_NO_NETWORK -var = _old_vds.servint_ispercent -def = false -to = SLV_120 - -[SDTG_VAR] -name = nullptr -type = SLE_UINT16 -guiflags = SGF_0ISDISABLED -var = _old_vds.servint_trains -def = 150 -min = 5 -max = 800 -to = SLV_120 - -[SDTG_VAR] -name = nullptr -type = SLE_UINT16 -guiflags = SGF_0ISDISABLED -var = _old_vds.servint_roadveh -def = 150 -min = 5 -max = 800 -to = SLV_120 - -[SDTG_VAR] -name = nullptr -type = SLE_UINT16 -guiflags = SGF_0ISDISABLED -var = _old_vds.servint_ships -def = 360 -min = 5 -max = 800 -to = SLV_120 - -[SDTG_VAR] -name = nullptr -type = SLE_UINT16 -guiflags = SGF_0ISDISABLED -var = _old_vds.servint_aircraft -def = 150 -min = 5 -max = 800 -to = SLV_120 - -[SDT_BOOL] -var = order.no_servicing_if_no_breakdowns -def = true -str = STR_CONFIG_SETTING_NOSERVICE -strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT - -[SDT_BOOL] -var = vehicle.wagon_speed_limits -guiflags = SGF_NO_NETWORK -def = true -str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS -strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT -post_cb = UpdateConsists - -[SDT_BOOL] -var = vehicle.disable_elrails -from = SLV_38 -guiflags = SGF_NO_NETWORK -def = false -str = STR_CONFIG_SETTING_DISABLE_ELRAILS -strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT -post_cb = SettingsDisableElrail -cat = SC_EXPERT - -[SDT_VAR] -var = vehicle.freight_trains -type = SLE_UINT8 -from = SLV_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 -post_cb = UpdateConsists - -; order.timetabling -[SDT_NULL] -length = 1 -from = SLV_67 -to = SLV_159 - -[SDT_VAR] -var = vehicle.plane_speed -type = SLE_UINT8 -from = SLV_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 - -[SDT_BOOL] -var = vehicle.dynamic_engines -from = SLV_95 -guiflags = SGF_NO_NETWORK -def = true -pre_cb = CheckDynamicEngines -cat = SC_EXPERT - -[SDT_VAR] -var = vehicle.plane_crashes -type = SLE_UINT8 -from = SLV_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 = SLV_159 - -[SDTC_BOOL] -var = gui.sg_full_load_any -from = SLV_22 -to = SLV_93 -def = true - -[SDT_BOOL] -var = order.improved_load -guiflags = SGF_NO_NETWORK -def = true -cat = SC_EXPERT - -[SDT_BOOL] -var = order.selectgoods -def = true -cat = SC_EXPERT - -[SDTC_BOOL] -var = gui.sg_new_nonstop -from = SLV_22 -to = SLV_93 -def = false - -; station.nonuniform_stations -[SDT_NULL] -length = 1 -to = SLV_159 - -[SDT_VAR] -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 -post_cb = StationSpreadChanged -cat = SC_BASIC - -[SDT_BOOL] -var = order.serviceathelipad -def = true -str = STR_CONFIG_SETTING_SERVICEATHELIPAD -strhelp = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT -cat = SC_EXPERT - -[SDT_BOOL] -var = station.modified_catchment -def = true -str = STR_CONFIG_SETTING_CATCHMENT -strhelp = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT -post_cb = StationCatchmentChanged -cat = SC_EXPERT - -[SDT_BOOL] -var = station.serve_neutral_industries -def = true -from = SLV_SERVE_NEUTRAL_INDUSTRIES -str = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES -strhelp = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT -post_cb = StationCatchmentChanged - -[SDT_BOOL] -var = order.gradual_loading -from = SLV_40 -guiflags = SGF_NO_NETWORK -def = true -cat = SC_EXPERT - -[SDT_BOOL] -var = construction.road_stop_on_town_road -from = SLV_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] -var = construction.road_stop_on_competitor_road -from = SLV_114 -def = true -str = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD -strhelp = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT -cat = SC_BASIC - -[SDT_BOOL] -var = station.adjacent_stations -from = SLV_62 -def = true -cat = SC_EXPERT - -[SDT_BOOL] -var = economy.station_noise_level -from = SLV_96 -guiflags = SGF_NO_NETWORK -def = false -str = STR_CONFIG_SETTING_NOISE_LEVEL -strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT -post_cb = [](auto new_value) { InvalidateWindowClassesData(WC_TOWN_VIEW, new_value); } - -[SDT_BOOL] -var = station.distant_join_stations -from = SLV_106 -def = true -str = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS -strhelp = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT -post_cb = [](auto) { DeleteWindowById(WC_SELECT_STATION, 0); } - -## -[SDT_BOOL] -var = economy.inflation -guiflags = SGF_NO_NETWORK -def = false -str = STR_CONFIG_SETTING_INFLATION -strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT -cat = SC_BASIC - -[SDT_VAR] -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 -post_cb = [](auto) { InvalidateWindowData(WC_BUILD_INDUSTRY, 0); } -cat = SC_BASIC - -[SDT_VAR] -var = construction.industry_platform -type = SLE_UINT8 -from = SLV_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] -var = economy.multiple_industry_per_town -def = false -str = STR_CONFIG_SETTING_MULTIPINDTOWN -strhelp = STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT - -[SDT_NULL] -length = 1 -to = SLV_141 - -[SDT_BOOL] -var = economy.bribe -def = true -str = STR_CONFIG_SETTING_BRIBE -strhelp = STR_CONFIG_SETTING_BRIBE_HELPTEXT -post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } -cat = SC_BASIC - -[SDT_BOOL] -var = economy.exclusive_rights -from = SLV_79 -def = true -str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE -strhelp = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT -post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } -cat = SC_BASIC - -[SDT_BOOL] -var = economy.fund_buildings -from = SLV_165 -def = true -str = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS -strhelp = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT -post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } -cat = SC_BASIC - -[SDT_BOOL] -var = economy.fund_roads -from = SLV_160 -def = true -str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD -strhelp = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT -post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } -cat = SC_BASIC - -[SDT_BOOL] -var = economy.give_money -from = SLV_79 -def = true -str = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY -strhelp = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.snow_line_height -type = SLE_UINT8 -guiflags = SGF_SCENEDIT_ONLY -def = DEF_SNOWLINE_HEIGHT -min = MIN_SNOWLINE_HEIGHT -max = MAX_SNOWLINE_HEIGHT -interval = 1 -str = STR_CONFIG_SETTING_SNOWLINE_HEIGHT -strhelp = STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT -strval = STR_JUST_COMMA -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.snow_coverage -type = SLE_UINT8 -from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY -def = DEF_SNOW_COVERAGE -min = 0 -max = 100 -interval = 10 -str = STR_CONFIG_SETTING_SNOW_COVERAGE -strhelp = STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT -strval = STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.desert_coverage -type = SLE_UINT8 -from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY -def = DEF_DESERT_COVERAGE -min = 0 -max = 100 -interval = 10 -str = STR_CONFIG_SETTING_DESERT_COVERAGE -strhelp = STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT -strval = STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE -cat = SC_BASIC - -[SDT_NULL] -length = 4 -to = SLV_144 - -[SDT_VAR] -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 = SLV_105 - -[SDT_VAR] -var = game_creation.ending_year -type = SLE_INT32 -from = SLV_ENDING_YEAR -guiflags = SGF_0ISDISABLED -def = DEF_END_YEAR -min = MIN_YEAR -max = MAX_YEAR - 1 -interval = 1 -str = STR_CONFIG_SETTING_ENDING_YEAR -strhelp = STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT -strval = STR_CONFIG_SETTING_ENDING_YEAR_VALUE -cat = SC_ADVANCED - -[SDT_VAR] -var = economy.type -type = SLE_UINT8 -guiflags = SGF_MULTISTRING -def = ET_SMOOTH -min = ET_BEGIN -max = ET_END - 1 -str = STR_CONFIG_SETTING_ECONOMY_TYPE -strhelp = STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT -strval = STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL -post_cb = [](auto) { InvalidateWindowClassesData(WC_INDUSTRY_VIEW); } -cat = SC_BASIC - -[SDT_BOOL] -var = economy.allow_shares -def = false -str = STR_CONFIG_SETTING_ALLOW_SHARES -strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT -post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY); } - -[SDT_VAR] -var = economy.min_years_for_shares -type = SLE_UINT8 -from = SLV_TRADING_AGE -def = 6 -min = 0 -max = 255 -interval = 1 -str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES -strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT -strval = STR_JUST_INT -cat = SC_EXPERT - -[SDT_VAR] -var = economy.feeder_payment_share -type = SLE_UINT8 -from = SLV_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] -var = economy.town_growth_rate -type = SLE_UINT8 -from = SLV_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 - -[SDT_VAR] -var = economy.larger_towns -type = SLE_UINT8 -from = SLV_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 - -[SDT_VAR] -var = economy.initial_city_size -type = SLE_UINT8 -from = SLV_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 - -[SDT_BOOL] -var = economy.mod_road_rebuild -from = SLV_77 -def = true -cat = SC_EXPERT - -; previously ai-new setting. -[SDT_NULL] -length = 1 -to = SLV_107 - -[SDT_OMANY] -var = script.settings_profile -type = SLE_UINT8 -from = SLV_178 -guiflags = SGF_MULTISTRING -def = SP_EASY -min = SP_EASY -max = SP_HARD -full = _settings_profiles -str = STR_CONFIG_SETTING_AI_PROFILE -strhelp = STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT -strval = STR_CONFIG_SETTING_AI_PROFILE_EASY -cat = SC_BASIC - -[SDT_BOOL] -var = ai.ai_in_multiplayer -def = true -str = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER -strhelp = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT -cat = SC_BASIC - -[SDT_BOOL] -var = ai.ai_disable_veh_train -def = false -str = STR_CONFIG_SETTING_AI_BUILDS_TRAINS -strhelp = STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT - -[SDT_BOOL] -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 - -[SDT_BOOL] -var = ai.ai_disable_veh_aircraft -def = false -str = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT -strhelp = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT - -[SDT_BOOL] -var = ai.ai_disable_veh_ship -def = false -str = STR_CONFIG_SETTING_AI_BUILDS_SHIPS -strhelp = STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT - -[SDT_VAR] -var = script.script_max_opcode_till_suspend -type = SLE_UINT32 -from = SLV_107 -guiflags = SGF_NEWGAME_ONLY -def = 10000 -min = 500 -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] -var = script.script_max_memory_megabytes -type = SLE_UINT32 -from = SLV_SCRIPT_MEMLIMIT -guiflags = SGF_NEWGAME_ONLY -def = 1024 -min = 8 -max = 8192 -interval = 8 -str = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY -strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT -strval = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE -cat = SC_EXPERT - -## -[SDT_VAR] -var = vehicle.extend_vehicle_life -type = SLE_UINT8 -def = 0 -min = 0 -max = 100 -cat = SC_EXPERT - -[SDT_VAR] -var = economy.dist_local_authority -type = SLE_UINT8 -def = 20 -min = 5 -max = 60 -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.reverse_at_signals -from = SLV_159 -def = false -str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS -strhelp = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT - -[SDT_VAR] -var = pf.wait_oneway_signal -type = SLE_UINT8 -def = 15 -min = 2 -max = 255 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.wait_twoway_signal -type = SLE_UINT8 -def = 41 -min = 2 -max = 255 -cat = SC_EXPERT - -[SDT_VAR] -var = economy.town_noise_population[0] -type = SLE_UINT16 -from = SLV_96 -def = 800 -min = 200 -max = 65535 -cat = SC_EXPERT - -[SDT_VAR] -var = economy.town_noise_population[1] -type = SLE_UINT16 -from = SLV_96 -def = 2000 -min = 400 -max = 65535 -cat = SC_EXPERT - -[SDT_VAR] -var = economy.town_noise_population[2] -type = SLE_UINT16 -from = SLV_96 -def = 4000 -min = 800 -max = 65535 -cat = SC_EXPERT - -[SDT_BOOL] -var = economy.infrastructure_maintenance -from = SLV_166 -def = false -str = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE -strhelp = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT -post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY_INFRASTRUCTURE); } -cat = SC_BASIC - -## -[SDT_VAR] -var = pf.wait_for_pbs_path -type = SLE_UINT8 -from = SLV_100 -def = 30 -min = 2 -max = 255 -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.reserve_paths -from = SLV_100 -def = false -cat = SC_EXPERT - -[SDT_VAR] -var = pf.path_backoff_interval -type = SLE_UINT8 -from = SLV_100 -def = 20 -min = 1 -max = 255 -cat = SC_EXPERT - -## -; Used to be pf.opf.pf_maxlength & pf.opf.pf_maxdepth -[SDT_NULL] -length = 3 -to = SLV_REMOVE_OPF - -## -[SDT_VAR] -var = pf.npf.npf_max_search_nodes -type = SLE_UINT -def = 10000 -min = 500 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_rail_firstred_penalty -type = SLE_UINT -def = 10 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -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] -var = pf.npf.npf_rail_lastred_penalty -type = SLE_UINT -def = 10 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_rail_station_penalty -type = SLE_UINT -def = 1 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_rail_slope_penalty -type = SLE_UINT -def = 1 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_rail_curve_penalty -type = SLE_UINT -def = 1 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -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] -var = pf.npf.npf_rail_pbs_cross_penalty -type = SLE_UINT -from = SLV_100 -def = 3 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_rail_pbs_signal_back_penalty -type = SLE_UINT -from = SLV_100 -def = 15 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_buoy_penalty -type = SLE_UINT -def = 2 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_water_curve_penalty -type = SLE_UINT -def = 1 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_road_curve_penalty -type = SLE_UINT -def = 1 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_crossing_penalty -type = SLE_UINT -def = 3 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_road_drive_through_penalty -type = SLE_UINT -from = SLV_47 -def = 8 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_road_dt_occupied_penalty -type = SLE_UINT -from = SLV_130 -def = 8 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.npf_road_bay_occupied_penalty -type = SLE_UINT -from = SLV_130 -def = 15 * NPF_TILE_LENGTH -min = 0 -max = 100000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.npf.maximum_go_to_depot_penalty -type = SLE_UINT -from = SLV_131 -def = 20 * NPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -## -[SDT_BOOL] -var = pf.yapf.disable_node_optimization -from = SLV_28 -def = false -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.max_search_nodes -type = SLE_UINT -from = SLV_28 -def = 10000 -min = 500 -max = 1000000 -cat = SC_EXPERT - -[SDT_BOOL] -var = pf.yapf.rail_firstred_twoway_eol -from = SLV_28 -def = false -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_firstred_penalty -type = SLE_UINT -from = SLV_28 -def = 10 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_firstred_exit_penalty -type = SLE_UINT -from = SLV_28 -def = 100 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_lastred_penalty -type = SLE_UINT -from = SLV_28 -def = 10 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_lastred_exit_penalty -type = SLE_UINT -from = SLV_28 -def = 100 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_station_penalty -type = SLE_UINT -from = SLV_28 -def = 10 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_slope_penalty -type = SLE_UINT -from = SLV_28 -def = 2 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_curve45_penalty -type = SLE_UINT -from = SLV_28 -def = 1 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_curve90_penalty -type = SLE_UINT -from = SLV_28 -def = 6 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_depot_reverse_penalty -type = SLE_UINT -from = SLV_28 -def = 50 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_crossing_penalty -type = SLE_UINT -from = SLV_28 -def = 3 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_look_ahead_max_signals -type = SLE_UINT -from = SLV_28 -def = 10 -min = 1 -max = 100 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_look_ahead_signal_p0 -type = SLE_INT -from = SLV_28 -def = 500 -min = -1000000 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_look_ahead_signal_p1 -type = SLE_INT -from = SLV_28 -def = -100 -min = -1000000 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_look_ahead_signal_p2 -type = SLE_INT -from = SLV_28 -def = 5 -min = -1000000 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_pbs_cross_penalty -type = SLE_UINT -from = SLV_100 -def = 3 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_pbs_station_penalty -type = SLE_UINT -from = SLV_100 -def = 8 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_pbs_signal_back_penalty -type = SLE_UINT -from = SLV_100 -def = 15 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_doubleslip_penalty -type = SLE_UINT -from = SLV_100 -def = 1 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_longer_platform_penalty -type = SLE_UINT -from = SLV_33 -def = 8 * YAPF_TILE_LENGTH -min = 0 -max = 20000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_longer_platform_per_tile_penalty -type = SLE_UINT -from = SLV_33 -def = 0 * YAPF_TILE_LENGTH -min = 0 -max = 20000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_shorter_platform_penalty -type = SLE_UINT -from = SLV_33 -def = 40 * YAPF_TILE_LENGTH -min = 0 -max = 20000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.rail_shorter_platform_per_tile_penalty -type = SLE_UINT -from = SLV_33 -def = 0 * YAPF_TILE_LENGTH -min = 0 -max = 20000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_slope_penalty -type = SLE_UINT -from = SLV_33 -def = 2 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_curve_penalty -type = SLE_UINT -from = SLV_33 -def = 1 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_crossing_penalty -type = SLE_UINT -from = SLV_33 -def = 3 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_stop_penalty -type = SLE_UINT -from = SLV_47 -def = 8 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_stop_occupied_penalty -type = SLE_UINT -from = SLV_130 -def = 8 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.road_stop_bay_occupied_penalty -type = SLE_UINT -from = SLV_130 -def = 15 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.maximum_go_to_depot_penalty -type = SLE_UINT -from = SLV_131 -def = 20 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.ship_curve45_penalty -type = SLE_UINT -from = SLV_SHIP_CURVE_PENALTY -def = 1 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -[SDT_VAR] -var = pf.yapf.ship_curve90_penalty -type = SLE_UINT -from = SLV_SHIP_CURVE_PENALTY -def = 6 * YAPF_TILE_LENGTH -min = 0 -max = 1000000 -cat = SC_EXPERT - -## -[SDT_VAR] -var = game_creation.land_generator -type = SLE_UINT8 -from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 1 -min = 0 -max = 1 -str = STR_CONFIG_SETTING_LAND_GENERATOR -strhelp = STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT -strval = STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL - -[SDT_VAR] -var = game_creation.oil_refinery_limit -type = SLE_UINT8 -from = SLV_30 -def = 32 -min = 12 -max = 128 -str = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE -strval = STR_CONFIG_SETTING_TILE_LENGTH -strhelp = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT - -[SDT_VAR] -var = game_creation.tgen_smoothness -type = SLE_UINT8 -from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 1 -min = TGEN_SMOOTHNESS_BEGIN -max = TGEN_SMOOTHNESS_END - 1 -str = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN -strhelp = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT -strval = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.variety -type = SLE_UINT8 -from = SLV_197 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 0 -min = 0 -max = 5 -str = STR_CONFIG_SETTING_VARIETY -strhelp = STR_CONFIG_SETTING_VARIETY_HELPTEXT -strval = STR_VARIETY_NONE - -[SDT_VAR] -var = game_creation.generation_seed -type = SLE_UINT32 -from = SLV_30 -def = GENERATE_NEW_SEED -min = 0 -max = UINT32_MAX -cat = SC_EXPERT - -[SDT_VAR] -var = game_creation.tree_placer -type = SLE_UINT8 -from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO -def = 2 -min = 0 -max = 2 -str = STR_CONFIG_SETTING_TREE_PLACER -strhelp = STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT -strval = STR_CONFIG_SETTING_TREE_PLACER_NONE -cat = SC_BASIC - -[SDT_VAR] -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] -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] -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] -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] -var = construction.freeform_edges -from = SLV_111 -def = true -pre_cb = CheckFreeformEdges -post_cb = UpdateFreeformEdges -cat = SC_EXPERT - -[SDT_VAR] -var = game_creation.water_borders -type = SLE_UINT8 -from = SLV_111 -def = 15 -min = 0 -max = 16 - -[SDT_VAR] -var = game_creation.custom_town_number -type = SLE_UINT16 -from = SLV_115 -def = 1 -min = 1 -max = 5000 -cat = SC_BASIC - -[SDT_VAR] -var = construction.extra_tree_placement -type = SLE_UINT8 -from = SLV_132 -guiflags = SGF_MULTISTRING -def = 2 -min = 0 -max = 3 -str = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT -strhelp = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT -strval = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.custom_terrain_type -type = SLE_UINT8 -from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY -def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM -min = MIN_CUSTOM_TERRAIN_TYPE -max = MAX_MAP_HEIGHT_LIMIT -interval = 1 - -[SDT_VAR] -var = game_creation.custom_sea_level -type = SLE_UINT8 -from = SLV_149 -def = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE -min = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE -max = CUSTOM_SEA_LEVEL_MAX_PERCENTAGE -cat = SC_BASIC - -[SDT_VAR] -var = game_creation.min_river_length -type = SLE_UINT8 -from = SLV_163 -def = 16 -min = 2 -max = 255 -cat = SC_EXPERT - -[SDT_VAR] -var = game_creation.river_route_random -type = SLE_UINT8 -from = SLV_163 -def = 5 -min = 1 -max = 255 -cat = SC_EXPERT - -[SDT_VAR] -var = game_creation.amount_of_rivers -type = SLE_UINT8 -from = SLV_163 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY -def = 2 -min = 0 -max = 3 -str = STR_CONFIG_SETTING_RIVER_AMOUNT -strhelp = STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT -strval = STR_RIVERS_NONE - -; locale - -[SDT_OMANY] -var = locale.currency -type = SLE_UINT8 -from = SLV_97 -flags = SLF_NO_NETWORK_SYNC -def = 0 -max = CURRENCY_END - 1 -full = _locale_currencies -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - -[SDTG_OMANY] -name = ""units"" -var = _old_units -type = SLE_UINT8 -from = SLV_97 -to = SLV_184 -flags = SLF_NOT_IN_CONFIG -def = 1 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - -[SDT_OMANY] -var = locale.units_velocity -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 3 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL - -[SDT_OMANY] -var = locale.units_power -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL - -[SDT_OMANY] -var = locale.units_weight -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL - -[SDT_OMANY] -var = locale.units_volume -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL - -[SDT_OMANY] -var = locale.units_force -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL - -[SDT_OMANY] -var = locale.units_height -type = SLE_UINT8 -from = SLV_184 -flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _locale_units -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC -str = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT -strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT -strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL - -[SDT_SSTR] -var = locale.digit_group_separator -type = SLE_STRQ -from = SLV_118 -flags = SLF_NO_NETWORK_SYNC -def = nullptr -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - -[SDT_SSTR] -var = locale.digit_group_separator_currency -type = SLE_STRQ -from = SLV_118 -flags = SLF_NO_NETWORK_SYNC -def = nullptr -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - -[SDT_SSTR] -var = locale.digit_decimal_separator -type = SLE_STRQ -from = SLV_126 -flags = SLF_NO_NETWORK_SYNC -def = nullptr -post_cb = [](auto) { MarkWholeScreenDirty(); } -cat = SC_BASIC - - -;*************************************************************************** -; Unsaved setting variables. - -[SDTC_OMANY] -var = gui.autosave -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 4 -full = _autosave_interval -str = STR_CONFIG_SETTING_AUTOSAVE -strhelp = STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT -strval = STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF -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 = 2 -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 - -[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_VAR] -var = gui.scroll_mode -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_SCROLLMODE -strhelp = STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT -strval = STR_CONFIG_SETTING_SCROLLMODE_DEFAULT -cat = SC_BASIC - -[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 - -[SDTC_BOOL] -var = gui.right_mouse_wnd_close -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -str = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE -strhelp = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_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 - -[SDTC_VAR] -var = gui.hover_delay_ms -type = SLE_UINT16 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED -def = 250 -min = 50 -max = 6000 -interval = 50 -str = STR_CONFIG_SETTING_HOVER_DELAY -strhelp = STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT -strval = STR_CONFIG_SETTING_HOVER_DELAY_VALUE - -[SDTC_OMANY] -var = gui.osk_activation -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -str = STR_CONFIG_SETTING_OSK_ACTIVATION -strhelp = STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT -strval = STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED -guiflags = SGF_MULTISTRING -full = _osk_activation -def = 1 -min = 0 -max = 3 -cat = SC_BASIC - -[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 -post_cb = 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 -post_cb = 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_EXPERT - -[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_OUT_4X -str = STR_CONFIG_SETTING_ZOOM_MIN -strhelp = STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT -strval = STR_CONFIG_SETTING_ZOOM_LVL_MIN -post_cb = ZoomMinMaxChanged -startup = true - -[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 -post_cb = ZoomMinMaxChanged -startup = true - -[SDTC_VAR] -var = gui.sprite_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_OUT_4X -str = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN -strhelp = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT -strval = STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN -post_cb = SpriteZoomMinChanged - -[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 -post_cb = [](auto) { UpdateAllTownVirtCoords(); } - -[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 - -[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 -post_cb = RedrawSmallmap - -[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 -post_cb = InvalidateCompanyLiveryWindow - -[SDTC_VAR] -var = gui.starting_colour -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = COLOUR_END -min = 0 -max = COLOUR_END -str = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR -strhelp = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT -strval = STR_COLOUR_DARK_BLUE - -[SDTC_BOOL] -var = gui.auto_remove_signals -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -str = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS -strhelp = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT -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 - -[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 -post_cb = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); } -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 -post_cb = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); } - -[SDTC_BOOL] -var = gui.quick_goto -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -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 -post_cb = [](auto) { MarkWholeScreenDirty(); } -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 -post_cb = 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_EXPERT - -[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 -post_cb = [](auto) { InvalidateWindowData(WC_BUILD_SIGNAL, 0); } -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_EXPERT - -[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 -post_cb = ResetSignalVariant - -[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_BASIC - -[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 - -[SDTC_BOOL] -var = gui.new_nonstop -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -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 - -[SDTC_BOOL] -var = gui.autosave_on_exit -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -cat = SC_BASIC - -[SDTC_BOOL] -var = gui.autosave_on_network_disconnect -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -cat = SC_EXPERT - -[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 - -[SDTC_BOOL] -var = gui.auto_euro -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true - -[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 - -[SDTC_BOOL] -var = gui.show_track_reservation -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION -strhelp = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT -post_cb = [](auto) { MarkWholeScreenDirty(); } -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 - -[SDTC_VAR] -var = gui.station_numtracks -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 1 -min = 1 -max = 7 - -[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 = true -str = STR_CONFIG_SETTING_EXPENSES_LAYOUT -strhelp = STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT -post_cb = [](auto) { MarkWholeScreenDirty(); } - -[SDTC_VAR] -var = gui.station_gui_group_order -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 0 -min = 0 -max = 5 -interval = 1 - -[SDTC_VAR] -var = gui.station_gui_sort_by -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 0 -min = 0 -max = 3 -interval = 1 - -[SDTC_VAR] -var = gui.station_gui_sort_order -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 0 -min = 0 -max = 1 -interval = 1 - -[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 -post_cb = [](auto) { MarkWholeScreenDirty(); } - -[SDTC_BOOL] -var = gui.show_newgrf_name -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -str = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME -strhelp = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT -post_cb = [](auto) { MarkWholeScreenDirty(); } -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 - -[SDTC_BOOL] -ifndef = DEDICATED -var = gui.show_date_in_logs -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false - -[SDTC_VAR] -var = gui.settings_restriction_mode -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 0 -min = 0 -max = 2 - -[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 -post_cb = InvalidateNewGRFChangeWindows -cat = SC_EXPERT - -[SDTC_BOOL] -var = gui.ai_developer_tools -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -post_cb = [](auto) { InvalidateWindowClassesData(WC_AI_SETTINGS); } -cat = SC_EXPERT - -[SDTC_BOOL] -var = gui.scenario_developer -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = false -post_cb = InvalidateNewGRFChangeWindows - -[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 -post_cb = 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 - -[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 - -[SDTC_VAR] -var = gui.refresh_rate -type = SLE_UINT16 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 60 -min = 10 -max = 1000 -cat = SC_EXPERT -startup = true - -[SDTC_VAR] -var = gui.fast_forward_speed_limit -type = SLE_UINT16 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NO_NETWORK -def = 2500 -min = 0 -max = 50000 -interval = 10 -str = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT -strhelp = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT -strval = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL -cat = SC_BASIC - -[SDTC_BOOL] -var = sound.news_ticker -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_TICKER -strhelp = STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT - -[SDTC_BOOL] -var = sound.news_full -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_NEWS -strhelp = STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT - -[SDTC_BOOL] -var = sound.new_year -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_NEW_YEAR -strhelp = STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT - -[SDTC_BOOL] -var = sound.confirm -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_CONFIRM -strhelp = STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT - -[SDTC_BOOL] -var = sound.click_beep -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_CLICK -strhelp = STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT - -[SDTC_BOOL] -var = sound.disaster -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_DISASTER -strhelp = STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT - -[SDTC_BOOL] -var = sound.vehicle -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_VEHICLE -strhelp = STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT - -[SDTC_BOOL] -var = sound.ambient -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = true -str = STR_CONFIG_SETTING_SOUND_AMBIENT -strhelp = STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT - -[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 = 50 -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 = 100 -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 = nullptr -cat = SC_BASIC - -[SDTC_LIST] -var = music.custom_2 -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = nullptr -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_OMANY] -var = news_display.arrival_player -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN -strhelp = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.arrival_other -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER -strhelp = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.accident -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS -strhelp = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.company_info -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION -strhelp = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.open -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN -strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.close -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE -strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.economy -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES -strhelp = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.production_player -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY -strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.production_other -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 0 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER -strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.production_nobody -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 0 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED -strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.advice -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_ADVICE -strhelp = STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.new_vehicles -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES -strhelp = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.acceptance -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE -strhelp = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.subsidies -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 1 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_SUBSIDIES -strhelp = STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_OMANY] -var = news_display.general -type = SLE_UINT8 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING -def = 2 -max = 2 -full = _news_display -str = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION -strhelp = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT -strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF - -[SDTC_VAR] -var = gui.network_chat_box_width_pct -type = SLE_UINT16 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = 40 -min = 10 -max = 100 -cat = SC_EXPERT - -[SDTC_VAR] -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] -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] -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] -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] -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] -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] -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] -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] -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] -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 - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 - -[SDTC_BOOL] -var = network.pause_on_join -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = true - -[SDTC_VAR] -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] -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] -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] -var = network.server_advertise -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = false - -[SDTC_SSTR] -var = network.client_name -type = SLE_STR -length = NETWORK_CLIENT_NAME_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = nullptr -pre_cb = NetworkValidateClientName -post_cb = NetworkUpdateClientName -cat = SC_BASIC - -[SDTC_SSTR] -var = network.server_password -type = SLE_STR -length = NETWORK_PASSWORD_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = nullptr -pre_cb = ReplaceAsteriskWithEmptyPassword -post_cb = [](auto) { NetworkServerUpdateGameInfo(); } -cat = SC_BASIC - -[SDTC_SSTR] -var = network.rcon_password -type = SLE_STR -length = NETWORK_PASSWORD_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = nullptr -pre_cb = ReplaceAsteriskWithEmptyPassword -cat = SC_BASIC - -[SDTC_SSTR] -var = network.admin_password -type = SLE_STR -length = NETWORK_PASSWORD_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = nullptr -cat = SC_BASIC - -[SDTC_SSTR] -var = network.default_company_pass -type = SLE_STR -length = NETWORK_PASSWORD_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = nullptr - -[SDTC_SSTR] -var = network.server_name -type = SLE_STR -length = NETWORK_NAME_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = nullptr -pre_cb = NetworkValidateServerName -post_cb = [](auto) { UpdateClientConfigValues(); } -cat = SC_BASIC - -[SDTC_SSTR] -var = network.connect_to_ip -type = SLE_STR -length = 0 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = nullptr - -[SDTC_SSTR] -var = network.network_id -type = SLE_STR -length = NETWORK_SERVER_ID_LENGTH -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = nullptr - -[SDTC_BOOL] -var = network.autoclean_companies -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = false - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 -post_cb = [](auto) { UpdateClientConfigValues(); } -cat = SC_BASIC - -[SDTC_VAR] -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 -post_cb = [](auto) { UpdateClientConfigValues(); } -cat = SC_BASIC - -[SDTC_VAR] -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 -post_cb = [](auto) { UpdateClientConfigValues(); } -cat = SC_BASIC - -[SDTC_VAR] -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 - -[SDTC_VAR] -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 - -[SDTC_BOOL] -var = network.reload_cfg -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY -def = false -cat = SC_EXPERT - -[SDTC_SSTR] -var = network.last_joined -type = SLE_STR -length = 0 -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -def = """" -cat = SC_EXPERT - -[SDTC_BOOL] -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 separate 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 diff --git a/src/table/settings/CMakeLists.txt b/src/table/settings/CMakeLists.txt new file mode 100644 index 000000000..b1503145f --- /dev/null +++ b/src/table/settings/CMakeLists.txt @@ -0,0 +1,47 @@ +set(GENERATED_BINARY_DIR ${CMAKE_BINARY_DIR}/generated) +set(TABLE_BINARY_DIR ${GENERATED_BINARY_DIR}/table) + +set(TABLE_INI_SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/company_settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/currency_settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/gameopt_settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/misc_settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/win32_settings.ini + ${CMAKE_CURRENT_SOURCE_DIR}/window_settings.ini +) + +if (HOST_BINARY_DIR) + include(${HOST_BINARY_DIR}/settingsgen.cmake) +endif() + +# Generate a command and target to create the settings table +add_custom_command_timestamp(OUTPUT ${TABLE_BINARY_DIR}/settings.h + COMMAND ${CMAKE_COMMAND} -E make_directory ${TABLE_BINARY_DIR} + COMMAND settingsgen + -o ${TABLE_BINARY_DIR}/settings.h + -b ${CMAKE_SOURCE_DIR}/src/table/settings.h.preamble + -a ${CMAKE_SOURCE_DIR}/src/table/settings.h.postamble + ${TABLE_INI_SOURCE_FILES} + DEPENDS settingsgen ${TABLE_INI_SOURCE_FILES} + ${CMAKE_SOURCE_DIR}/src/table/settings.h.preamble + ${CMAKE_SOURCE_DIR}/src/table/settings.h.postamble + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating table/settings.h" +) +add_custom_target_timestamp(table_settings + DEPENDS + ${TABLE_BINARY_DIR}/settings.h +) + +add_library(settings + INTERFACE +) +target_include_directories(settings + INTERFACE + ${GENERATED_BINARY_DIR} +) +add_dependencies(settings + table_settings +) +add_library(openttd::settings ALIAS settings) diff --git a/src/table/settings/company_settings.ini b/src/table/settings/company_settings.ini new file mode 100644 index 000000000..bb104adeb --- /dev/null +++ b/src/table/settings/company_settings.ini @@ -0,0 +1,130 @@ +; This file is part of OpenTTD. +; 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 void UpdateServiceInterval(int32 new_value); +static bool CanUpdateServiceInterval(VehicleType type, int32 &new_value); +static void UpdateServiceInterval(VehicleType type, int32 new_value); + +static const SettingTable _company_settings{ +[post-amble] +}; +[templates] +SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size"); + +[defaults] +flags = 0 +guiflags = SGF_PER_COMPANY +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = false + + + +[SDT_BOOL] +var = engine_renew +def = true +str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE +strhelp = STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT +cat = SC_BASIC + +[SDT_VAR] +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 + +[SDT_VAR] +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 + +[SDT_BOOL] +var = renew_keep_length +def = false + +[SDT_BOOL] +var = vehicle.servint_ispercent +def = false +str = STR_CONFIG_SETTING_SERVINT_ISPERCENT +strhelp = STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT +post_cb = UpdateServiceInterval + +[SDT_VAR] +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 +pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_TRAIN, new_value); } +post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); } + +[SDT_VAR] +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 +pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_ROAD, new_value); } +post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); } + +[SDT_VAR] +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 +pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_SHIP, new_value); } +post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); } + +[SDT_VAR] +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 +pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_AIRCRAFT, new_value); } +post_cb = [](auto new_value) { UpdateServiceInterval(VEH_AIRCRAFT, new_value); } diff --git a/src/table/settings/currency_settings.ini b/src/table/settings/currency_settings.ini new file mode 100644 index 000000000..ce0213758 --- /dev/null +++ b/src/table/settings/currency_settings.ini @@ -0,0 +1,64 @@ +; This file is part of OpenTTD. +; 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 SettingTable _currency_settings{ +[post-amble] +}; +[templates] +SDT_VAR = SDT_VAR (CurrencySpec, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_SSTR = SDT_SSTR(CurrencySpec, $var, $type, $flags, $guiflags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CurrencySpec.$var exceeds storage size"); + +[defaults] +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = false + + + +[SDT_VAR] +var = rate +type = SLE_UINT16 +def = 1 +min = 0 +max = UINT16_MAX + +[SDT_SSTR] +var = separator +type = SLE_STRQ +def = ""."" +cat = SC_BASIC + +[SDT_VAR] +var = to_euro +type = SLE_INT32 +def = 0 +min = MIN_YEAR +max = MAX_YEAR + +[SDT_SSTR] +var = prefix +type = SLE_STRQ +def = nullptr + +[SDT_SSTR] +var = suffix +type = SLE_STRQ +def = "" credits"" diff --git a/src/table/settings/gameopt_settings.ini b/src/table/settings/gameopt_settings.ini new file mode 100644 index 000000000..b3b7ec651 --- /dev/null +++ b/src/table/settings/gameopt_settings.ini @@ -0,0 +1,178 @@ +; This file is part of OpenTTD. +; 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 uint GAME_DIFFICULTY_NUM = 18; +static uint16 _old_diff_custom[GAME_DIFFICULTY_NUM]; +uint8 _old_diff_level; ///< Old difficulty level from old savegames +uint8 _old_units; ///< Old units from old savegames + +/* Most of these strings are used both for gameopt-backward compatibility + * and the settings tables. The rest is here for consistency. */ +static std::initializer_list _locale_currencies{"GBP", "USD", "EUR", "YEN", "ATS", "BEF", "CHF", "CZK", "DEM", "DKK", "ESP", "FIM", "FRF", "GRD", "HUF", "ISK", "ITL", "NLG", "NOK", "PLN", "RON", "RUR", "SIT", "SEK", "YTL", "SKK", "BRL", "EEK", "custom"}; +static std::initializer_list _locale_units{"imperial", "metric", "si", "gameunits"}; +static std::initializer_list _town_names{"english", "french", "german", "american", "latin", "silly", "swedish", "dutch", "finnish", "polish", "slovak", "norwegian", "hungarian", "austrian", "romanian", "czech", "swiss", "danish", "turkish", "italian", "catalan"}; +static std::initializer_list _climates{"temperate", "arctic", "tropic", "toyland"}; +static std::initializer_list _autosave_interval{"off", "monthly", "quarterly", "half year", "yearly"}; +static std::initializer_list _roadsides{"left", "right"}; +static std::initializer_list _savegame_date{"long", "short", "iso"}; +static std::initializer_list _osk_activation{"disabled", "double", "single", "immediately"}; +static std::initializer_list _settings_profiles{"easy", "medium", "hard"}; +static std::initializer_list _news_display{ "off", "summarized", "full"}; + +static const SettingTable _gameopt_settings{ +/* In version 4 a new difficulty setting has been added to the difficulty settings, + * town attitude towards demolishing. Needs special handling because some dimwit thought + * 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_LIST = SDTG_LIST($name, $type, $flags, $guiflags, $var, $def, $length, $from, $to, $cat, $extra, $startup), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_NULL = SDT_NULL( $length, $from, $to), +SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup), +SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); +SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); + +[defaults] +flags = 0 +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = false + + + +[SDTG_LIST] +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 +def = nullptr +to = SLV_4 + +[SDTG_LIST] +name = ""diff_custom"" +sdt_cmd = SDT_INTLIST +sle_cmd = SL_ARR +type = SLE_UINT16 +flags = SLF_NOT_IN_CONFIG +var = _old_diff_custom +length = 18 +def = nullptr +full = nullptr +from = SLV_4 + +## +[SDTG_VAR] +name = ""diff_level"" +var = _old_diff_level +type = SLE_UINT8 +flags = SLF_NOT_IN_CONFIG +def = SP_CUSTOM +min = SP_EASY +max = SP_CUSTOM +cat = SC_BASIC + +[SDT_OMANY] +var = locale.currency +type = SLE_UINT8 +flags = SLF_NO_NETWORK_SYNC +def = 0 +max = CURRENCY_END - 1 +full = _locale_currencies +cat = SC_BASIC + +[SDTG_OMANY] +name = ""units"" +var = _old_units +type = SLE_UINT8 +flags = SLF_NOT_IN_CONFIG +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] +var = game_creation.town_name +type = SLE_UINT8 +def = 0 +max = 255 +full = _town_names +cat = SC_BASIC + +[SDT_OMANY] +var = game_creation.landscape +type = SLE_UINT8 +def = 0 +max = 3 +full = _climates +load = ConvertLandscape +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.snow_line_height +type = SLE_UINT8 +def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT +min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT +# "max" used to be MAX_SNOWLINE_HEIGHT * TILE_HEIGHT, but this would overflow the storage. +max = UINT8_MAX +to = SLV_22 + +[SDT_NULL] +length = 1 +from = SLV_22 +to = SLV_165 + +[SDT_NULL] +length = 1 +to = SLV_23 + +[SDTC_OMANY] +var = gui.autosave +type = SLE_UINT8 +from = SLV_23 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 1 +max = 4 +full = _autosave_interval +cat = SC_BASIC + +[SDT_OMANY] +var = vehicle.road_side +type = SLE_UINT8 +def = 1 +max = 1 +full = _roadsides +cat = SC_BASIC diff --git a/src/table/settings/misc_settings.ini b/src/table/settings/misc_settings.ini new file mode 100644 index 000000000..1b633a65a --- /dev/null +++ b/src/table/settings/misc_settings.ini @@ -0,0 +1,356 @@ +; This file is part of OpenTTD. +; 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] +extern std::string _config_language_file; + +static std::initializer_list _support8bppmodes{"no", "system" , "hardware"}; +static std::initializer_list _display_opt_modes{"SHOW_TOWN_NAMES", "SHOW_STATION_NAMES", "SHOW_SIGNS", "FULL_ANIMATION", "", "FULL_DETAIL", "WAYPOINTS", "SHOW_COMPETITOR_SIGNS"}; + +#ifdef WITH_COCOA +extern bool _allow_hidpi_window; +#endif +#ifndef WITH_COCOA +#define WITHOUT_COCOA +#endif + +static const SettingTable _misc_settings{ +[post-amble] +}; +[templates] +SDTG_LIST = SDTG_LIST($name, $type, $flags, $guiflags, $var, $def, $length, $from, $to, $cat, $extra, $startup), +SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $guiflags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); + +[defaults] +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = true + + + +[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 = _display_opt_modes + +[SDTG_BOOL] +name = ""fullscreen"" +var = _fullscreen +def = false +cat = SC_BASIC + +[SDTG_BOOL] +ifdef = WITH_COCOA +name = ""video_hw_accel"" +var = _video_hw_accel +def = false +cat = SC_BASIC + +[SDTG_BOOL] +ifdef = WITHOUT_COCOA +name = ""video_hw_accel"" +var = _video_hw_accel +def = true +cat = SC_BASIC + +[SDTG_BOOL] +name = ""video_vsync"" +var = _video_vsync +def = false +cat = SC_BASIC + +[SDTG_OMANY] +name = ""support8bpp"" +type = SLE_UINT8 +var = _support8bpp +def = 0 +max = 2 +full = _support8bppmodes +cat = SC_BASIC + +[SDTG_SSTR] +name = ""graphicsset"" +type = SLE_STRQ +var = BaseGraphics::ini_set +def = nullptr +cat = SC_BASIC + +[SDTG_SSTR] +name = ""soundsset"" +type = SLE_STRQ +var = BaseSounds::ini_set +def = nullptr +cat = SC_BASIC + +[SDTG_SSTR] +name = ""musicset"" +type = SLE_STRQ +var = BaseMusic::ini_set +def = nullptr +cat = SC_BASIC + +[SDTG_SSTR] +name = ""videodriver"" +type = SLE_STRQ +var = _ini_videodriver +def = nullptr +cat = SC_EXPERT + +[SDTG_SSTR] +name = ""musicdriver"" +type = SLE_STRQ +var = _ini_musicdriver +def = nullptr +cat = SC_EXPERT + +[SDTG_SSTR] +name = ""sounddriver"" +type = SLE_STRQ +var = _ini_sounddriver +def = nullptr +cat = SC_EXPERT + +[SDTG_SSTR] +name = ""blitter"" +type = SLE_STRQ +var = _ini_blitter +def = nullptr + +[SDTG_SSTR] +name = ""language"" +type = SLE_STR +var = _config_language_file +def = nullptr +cat = SC_BASIC + +; workaround for implicit lengthof() in SDTG_LIST +[SDTG_LIST] +name = ""resolution"" +type = SLE_INT +length = 2 +var = _cur_resolution +def = ""0,0"" +cat = SC_BASIC + +[SDTG_SSTR] +name = ""screenshot_format"" +type = SLE_STR +var = _screenshot_format_name +def = nullptr +cat = SC_EXPERT + +[SDTG_SSTR] +name = ""savegame_format"" +type = SLE_STR +var = _savegame_format +def = nullptr +cat = SC_EXPERT + +[SDTG_BOOL] +name = ""rightclick_emulate"" +var = _rightclick_emulate +def = false + +[SDTG_SSTR] +ifdef = HAS_TRUETYPE_FONT +name = ""small_font"" +type = SLE_STR +var = _freetype.small.font +def = nullptr + +[SDTG_SSTR] +ifdef = HAS_TRUETYPE_FONT +name = ""medium_font"" +type = SLE_STR +var = _freetype.medium.font +def = nullptr + +[SDTG_SSTR] +ifdef = HAS_TRUETYPE_FONT +name = ""large_font"" +type = SLE_STR +var = _freetype.large.font +def = nullptr + +[SDTG_SSTR] +ifdef = HAS_TRUETYPE_FONT +name = ""mono_font"" +type = SLE_STR +var = _freetype.mono.font +def = nullptr + +[SDTG_VAR] +ifdef = HAS_TRUETYPE_FONT +name = ""small_size"" +type = SLE_UINT +var = _freetype.small.size +def = 0 +min = 0 +max = 72 + +[SDTG_VAR] +ifdef = HAS_TRUETYPE_FONT +name = ""medium_size"" +type = SLE_UINT +var = _freetype.medium.size +def = 0 +min = 0 +max = 72 + +[SDTG_VAR] +ifdef = HAS_TRUETYPE_FONT +name = ""large_size"" +type = SLE_UINT +var = _freetype.large.size +def = 0 +min = 0 +max = 72 + +[SDTG_VAR] +ifdef = HAS_TRUETYPE_FONT +name = ""mono_size"" +type = SLE_UINT +var = _freetype.mono.size +def = 0 +min = 0 +max = 72 + +[SDTG_BOOL] +ifdef = HAS_TRUETYPE_FONT +name = ""small_aa"" +var = _freetype.small.aa +def = false + +[SDTG_BOOL] +ifdef = HAS_TRUETYPE_FONT +name = ""medium_aa"" +var = _freetype.medium.aa +def = false + +[SDTG_BOOL] +ifdef = HAS_TRUETYPE_FONT +name = ""large_aa"" +var = _freetype.large.aa +def = false + +[SDTG_BOOL] +ifdef = HAS_TRUETYPE_FONT +name = ""mono_aa"" +var = _freetype.mono.aa +def = false + +[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_BASIC + +[SDTG_VAR] +name = ""invisibility_options"" +type = SLE_UINT +var = _invisibility_opt +def = 0 +min = 0 +max = 0xFF +cat = SC_BASIC + +[SDTG_SSTR] +name = ""keyboard"" +type = SLE_STR +var = _keyboard_opt[0] +def = nullptr +cat = SC_EXPERT + +[SDTG_SSTR] +name = ""keyboard_caps"" +type = SLE_STR +var = _keyboard_opt[1] +def = nullptr +cat = SC_EXPERT + +[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_VAR] +name = ""gui_zoom"" +type = SLE_INT8 +var = _gui_zoom_cfg +def = ZOOM_LVL_CFG_AUTO +min = ZOOM_LVL_CFG_AUTO +max = ZOOM_LVL_OUT_4X +cat = SC_BASIC + +[SDTG_VAR] +name = ""font_zoom"" +type = SLE_INT8 +var = _font_zoom_cfg +def = ZOOM_LVL_CFG_AUTO +min = ZOOM_LVL_CFG_AUTO +max = ZOOM_LVL_OUT_4X +cat = SC_BASIC + +[SDTG_BOOL] +ifdef = WITH_COCOA +name = ""allow_hidpi"" +var = _allow_hidpi_window +def = true diff --git a/src/table/settings/settings.ini b/src/table/settings/settings.ini new file mode 100644 index 000000000..3c22ec4c1 --- /dev/null +++ b/src/table/settings/settings.ini @@ -0,0 +1,3893 @@ +; This file is part of OpenTTD. +; 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] +/* Begin - Callback Functions for the various settings */ +static void v_PositionMainToolbar(int32 new_value); +static void v_PositionStatusbar(int32 new_value); +static void RedrawSmallmap(int32 new_value); +static void StationSpreadChanged(int32 new_value); +static void CloseSignalGUI(int32 new_value); +static void UpdateConsists(int32 new_value); +static void TrainAccelerationModelChanged(int32 new_value); +static void RoadVehAccelerationModelChanged(int32 new_value); +static void TrainSlopeSteepnessChanged(int32 new_value); +static void RoadVehSlopeSteepnessChanged(int32 new_value); +static void TownFoundingChanged(int32 new_value); +static void DifficultyNoiseChange(int32 new_value); +static void MaxNoAIsChange(int32 new_value); +static bool CheckRoadSide(int32 &new_value); +static bool CheckMaxHeightLevel(int32 &new_value); +static bool CheckFreeformEdges(int32 &new_value); +static void UpdateFreeformEdges(int32 new_value); +static bool CheckDynamicEngines(int32 &new_value); +static void StationCatchmentChanged(int32 new_value); +static void InvalidateCompanyLiveryWindow(int32 new_value); +static void InvalidateNewGRFChangeWindows(int32 new_value); +static void ZoomMinMaxChanged(int32 new_value); +static void SpriteZoomMinChanged(int32 new_value); +static void MaxVehiclesChanged(int32 new_value); +static void InvalidateShipPathCache(int32 new_value); + +static bool ReplaceAsteriskWithEmptyPassword(std::string &newval); +static void UpdateClientConfigValues(); + +/* End - Callback Functions for the various settings */ + +/* Some settings do not need to be synchronised when playing in multiplayer. + * These include for example the GUI settings and will not be saved with the + * savegame. + * It is also a bit tricky since you would think that service_interval + * for example does not need to be synched. Every client assigns the + * service_interval value to the v->service_interval, meaning that every client + * assigns its own 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 SettingTable _settings{ +[post-amble] +}; +[templates] +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTC_LIST = SDTC_LIST( $var, $type, $flags, $guiflags, $def, $from, $to, $cat, $extra, $startup), +SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTC_SSTR = SDTC_SSTR( $var, $type, $flags, $guiflags, $def, $length, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup), +SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $guiflags, $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_NULL = SDT_NULL( $length, $from, $to), + +[validation] +SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); +SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); +SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size"); + +[defaults] +flags = 0 +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = false + + + +; Saved settings variables. +; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatibility. +[SDT_VAR] +var = difficulty.max_no_competitors +type = SLE_UINT8 +from = SLV_97 +def = 0 +min = 0 +max = MAX_COMPANIES - 1 +interval = 1 +post_cb = MaxNoAIsChange +cat = SC_BASIC + +[SDT_NULL] +length = 1 +from = SLV_97 +to = SLV_110 + +[SDT_VAR] +var = difficulty.number_towns +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY +def = 2 +min = 0 +max = 4 +interval = 1 +strval = STR_NUM_VERY_LOW +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.industry_density +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING +def = ID_END - 1 +min = 0 +max = ID_END - 1 +interval = 1 +str = STR_CONFIG_SETTING_INDUSTRY_DENSITY +strhelp = STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT +strval = STR_FUNDING_ONLY +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.max_loan +type = SLE_UINT32 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY +def = 300000 +min = 0 +max = 2000000000 +interval = 50000 +str = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN +strhelp = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT +strval = STR_JUST_CURRENCY_LONG +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.initial_interest +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +def = 2 +min = 2 +max = 4 +interval = 1 +str = STR_CONFIG_SETTING_INTEREST_RATE +strhelp = STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT +strval = STR_CONFIG_SETTING_PERCENTAGE + +[SDT_VAR] +var = difficulty.vehicle_costs +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING +def = 0 +min = 0 +max = 2 +interval = 1 +str = STR_CONFIG_SETTING_RUNNING_COSTS +strhelp = STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT +strval = STR_SEA_LEVEL_LOW +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.competitor_speed +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING +def = 2 +min = 0 +max = 4 +interval = 1 +str = STR_CONFIG_SETTING_CONSTRUCTION_SPEED +strhelp = STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT +strval = STR_AI_SPEED_VERY_SLOW +cat = SC_BASIC + +[SDT_NULL] +length = 1 +from = SLV_97 +to = SLV_110 + +[SDT_VAR] +var = difficulty.vehicle_breakdowns +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING +def = 1 +min = 0 +max = 2 +interval = 1 +str = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS +strhelp = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT +strval = STR_DISASTER_NONE +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.subsidy_multiplier +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING +def = 2 +min = 0 +max = 3 +interval = 1 +str = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER +strhelp = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT +strval = STR_SUBSIDY_X1_5 + +[SDT_VAR] +var = difficulty.construction_cost +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING +def = 0 +min = 0 +max = 2 +interval = 1 +str = STR_CONFIG_SETTING_CONSTRUCTION_COSTS +strhelp = STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT +strval = STR_SEA_LEVEL_LOW +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.terrain_type +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 1 +min = 0 +max = 5 +interval = 1 +str = STR_CONFIG_SETTING_TERRAIN_TYPE +strhelp = STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT +strval = STR_TERRAIN_TYPE_VERY_FLAT +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.quantity_sea_lakes +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NEWGAME_ONLY +def = 0 +min = 0 +max = 4 +interval = 1 +strval = STR_SEA_LEVEL_VERY_LOW +cat = SC_BASIC + +[SDT_BOOL] +var = difficulty.economy +from = SLV_97 +def = false +str = STR_CONFIG_SETTING_RECESSIONS +strhelp = STR_CONFIG_SETTING_RECESSIONS_HELPTEXT + +[SDT_BOOL] +var = difficulty.line_reverse_mode +from = SLV_97 +def = false +str = STR_CONFIG_SETTING_TRAIN_REVERSING +strhelp = STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT + +[SDT_BOOL] +var = difficulty.disasters +from = SLV_97 +def = false +str = STR_CONFIG_SETTING_DISASTERS +strhelp = STR_CONFIG_SETTING_DISASTERS_HELPTEXT +cat = SC_BASIC + +[SDT_VAR] +var = difficulty.town_council_tolerance +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING +def = 0 +min = 0 +max = 2 +interval = 1 +str = STR_CONFIG_SETTING_CITY_APPROVAL +strhelp = STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT +strval = STR_CITY_APPROVAL_PERMISSIVE +post_cb = DifficultyNoiseChange + +[SDTG_VAR] +name = ""diff_level"" +var = _old_diff_level +type = SLE_UINT8 +flags = SLF_NOT_IN_CONFIG +from = SLV_97 +to = SLV_178 +def = 3 +min = 0 +max = 3 +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] +var = game_creation.town_name +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_NO_NETWORK +def = 0 +max = 255 +full = _town_names +cat = SC_BASIC + +[SDT_OMANY] +var = game_creation.landscape +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 0 +max = 3 +full = _climates +load = ConvertLandscape +str = STR_CONFIG_SETTING_LANDSCAPE +strhelp = STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT +strval = STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE +cat = SC_BASIC + +; Snow line (or snow_line_height * TILE_HEIGHT) +[SDT_NULL] +length = 1 +from = SLV_97 +to = SLV_164 + +[SDT_OMANY] +var = vehicle.road_side +type = SLE_UINT8 +from = SLV_97 +guiflags = SGF_MULTISTRING | SGF_NO_NETWORK +def = 1 +max = 1 +full = _roadsides +str = STR_CONFIG_SETTING_ROAD_SIDE +strhelp = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT +strval = STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT +pre_cb = CheckRoadSide +cat = SC_BASIC + +; Construction + +[SDT_VAR] +var = construction.map_height_limit +type = SLE_UINT8 +from = SLV_194 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_0ISDISABLED +def = 0 +min = MIN_MAP_HEIGHT_LIMIT +max = MAX_MAP_HEIGHT_LIMIT +interval = 1 +str = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT +strhelp = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT +strval = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE +pre_cb = CheckMaxHeightLevel +post_cb = [](auto) { InvalidateWindowClassesData(WC_SMALLMAP, 2); } +cat = SC_ADVANCED + +[SDT_VAR] +var = game_creation.heightmap_height +type = SLE_UINT8 +from = SLV_MAPGEN_SETTINGS_REVAMP +guiflags = SGF_NEWGAME_ONLY +def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM +min = MIN_HEIGHTMAP_HEIGHT +max = MAX_MAP_HEIGHT_LIMIT +interval = 1 + +[SDT_BOOL] +var = construction.build_on_slopes +guiflags = SGF_NO_NETWORK +def = true +cat = SC_EXPERT + +[SDT_VAR] +var = construction.command_pause_level +type = SLE_UINT8 +from = SLV_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 + +[SDT_VAR] +var = construction.terraform_per_64k_frames +type = SLE_UINT32 +from = SLV_156 +def = 64 << 16 +min = 0 +max = 1 << 30 +interval = 1 +cat = SC_EXPERT + +[SDT_VAR] +var = construction.terraform_frame_burst +type = SLE_UINT16 +from = SLV_156 +def = 4096 +min = 0 +max = 1 << 15 +interval = 1 +cat = SC_EXPERT + +[SDT_VAR] +var = construction.clear_per_64k_frames +type = SLE_UINT32 +from = SLV_156 +def = 64 << 16 +min = 0 +max = 1 << 30 +interval = 1 +cat = SC_EXPERT + +[SDT_VAR] +var = construction.clear_frame_burst +type = SLE_UINT16 +from = SLV_156 +def = 4096 +min = 0 +max = 1 << 15 +interval = 1 +cat = SC_EXPERT + +[SDT_VAR] +var = construction.tree_per_64k_frames +type = SLE_UINT32 +from = SLV_175 +def = 64 << 16 +min = 0 +max = 1 << 30 +interval = 1 +cat = SC_EXPERT + +[SDT_VAR] +var = construction.tree_frame_burst +type = SLE_UINT16 +from = SLV_175 +def = 4096 +min = 0 +max = 1 << 15 +interval = 1 +cat = SC_EXPERT + +[SDT_BOOL] +var = construction.autoslope +from = SLV_75 +def = true +str = STR_CONFIG_SETTING_AUTOSLOPE +strhelp = STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT +cat = SC_EXPERT + +[SDT_BOOL] +var = construction.extra_dynamite +def = true +str = STR_CONFIG_SETTING_EXTRADYNAMITE +strhelp = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT + +[SDT_VAR] +var = construction.max_bridge_length +type = SLE_UINT16 +from = SLV_159 +guiflags = SGF_NO_NETWORK +def = 64 +min = 1 +max = MAX_MAP_SIZE +interval = 1 +str = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH +strhelp = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT +strval = STR_CONFIG_SETTING_TILE_LENGTH + +[SDT_VAR] +var = construction.max_bridge_height +type = SLE_UINT8 +from = SLV_194 +guiflags = SGF_NO_NETWORK +def = 12 +min = 1 +max = MAX_TILE_HEIGHT +interval = 1 +str = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT +strhelp = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT +strval = STR_JUST_COMMA +cat = SC_EXPERT + +[SDT_VAR] +var = construction.max_tunnel_length +type = SLE_UINT16 +from = SLV_159 +guiflags = SGF_NO_NETWORK +def = 64 +min = 1 +max = MAX_MAP_SIZE +interval = 1 +str = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH +strhelp = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT +strval = STR_CONFIG_SETTING_TILE_LENGTH + +# construction.longbridges +[SDT_NULL] +length = 1 +to = SLV_159 + +[SDT_VAR] +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 +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + +[SDT_BOOL] +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 + +[SDT_VAR] +var = economy.town_layout +type = SLE_UINT8 +from = SLV_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 +post_cb = TownFoundingChanged + +[SDT_BOOL] +var = economy.allow_town_roads +from = SLV_113 +guiflags = SGF_NO_NETWORK +def = true +str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS +strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT + +[SDT_VAR] +var = economy.found_town +type = SLE_UINT8 +from = SLV_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 +post_cb = TownFoundingChanged +cat = SC_BASIC + +[SDT_BOOL] +var = economy.allow_town_level_crossings +from = SLV_143 +guiflags = SGF_NO_NETWORK +def = true +str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS +strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT + +[SDT_VAR] +var = economy.town_cargogen_mode +type = SLE_UINT8 +from = SLV_TOWN_CARGOGEN +guiflags = SGF_MULTISTRING +def = TCGM_BITCOUNT +min = TCGM_BEGIN +max = TCGM_END - 1 +interval = 1 +str = STR_CONFIG_SETTING_TOWN_CARGOGENMODE +strhelp = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT +strval = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL +cat = SC_ADVANCED + +; link graph + +[SDT_VAR] +var = linkgraph.recalc_interval +type = SLE_UINT16 +from = SLV_183 +def = 4 +min = 2 +max = 32 +interval = 2 +str = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL +strval = STR_JUST_COMMA +strhelp = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT +extra = offsetof(LinkGraphSettings, recalc_interval) + +[SDT_VAR] +var = linkgraph.recalc_time +type = SLE_UINT16 +from = SLV_183 +def = 16 +min = 1 +max = 4096 +interval = 1 +str = STR_CONFIG_SETTING_LINKGRAPH_TIME +strval = STR_JUST_COMMA +strhelp = STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT +extra = offsetof(LinkGraphSettings, recalc_time) + + +[SDT_VAR] +var = linkgraph.distribution_pax +type = SLE_UINT8 +from = SLV_183 +guiflags = SGF_MULTISTRING +def = DT_MANUAL +min = DT_MIN +max = DT_MAX +interval = 1 +str = STR_CONFIG_SETTING_DISTRIBUTION_PAX +strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL +strhelp = STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT +extra = offsetof(LinkGraphSettings, distribution_pax) + + +[SDT_VAR] +var = linkgraph.distribution_mail +type = SLE_UINT8 +from = SLV_183 +guiflags = SGF_MULTISTRING +def = DT_MANUAL +min = DT_MIN +max = DT_MAX +interval = 1 +str = STR_CONFIG_SETTING_DISTRIBUTION_MAIL +strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL +strhelp = STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT +extra = offsetof(LinkGraphSettings, distribution_mail) + + +[SDT_VAR] +var = linkgraph.distribution_armoured +type = SLE_UINT8 +from = SLV_183 +guiflags = SGF_MULTISTRING +def = DT_MANUAL +min = DT_MIN +max = DT_MAX +interval = 1 +str = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED +strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL +strhelp = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT +extra = offsetof(LinkGraphSettings, distribution_armoured) + + +[SDT_VAR] +var = linkgraph.distribution_default +type = SLE_UINT8 +from = SLV_183 +guiflags = SGF_MULTISTRING +def = DT_MANUAL +min = DT_BEGIN +max = DT_MAX_NONSYMMETRIC +interval = 1 +str = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT +strval = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL +strhelp = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT +extra = offsetof(LinkGraphSettings, distribution_default) + + +[SDT_VAR] +var = linkgraph.accuracy +type = SLE_UINT8 +from = SLV_183 +def = 16 +min = 2 +max = 64 +interval = 1 +str = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY +strval = STR_JUST_COMMA +strhelp = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT +extra = offsetof(LinkGraphSettings, accuracy) + + +[SDT_VAR] +var = linkgraph.demand_distance +type = SLE_UINT8 +from = SLV_183 +def = 100 +min = 0 +max = 255 +interval = 5 +str = STR_CONFIG_SETTING_DEMAND_DISTANCE +strval = STR_CONFIG_SETTING_PERCENTAGE +strhelp = STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT +extra = offsetof(LinkGraphSettings, demand_distance) + + +[SDT_VAR] +var = linkgraph.demand_size +type = SLE_UINT8 +from = SLV_183 +def = 100 +min = 0 +max = 100 +interval = 5 +str = STR_CONFIG_SETTING_DEMAND_SIZE +strval = STR_CONFIG_SETTING_PERCENTAGE +strhelp = STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT +extra = offsetof(LinkGraphSettings, demand_size) + + +[SDT_VAR] +var = linkgraph.short_path_saturation +type = SLE_UINT8 +from = SLV_183 +def = 80 +min = 0 +max = 250 +interval = 5 +str = STR_CONFIG_SETTING_SHORT_PATH_SATURATION +strval = STR_CONFIG_SETTING_PERCENTAGE +strhelp = STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT +extra = offsetof(LinkGraphSettings, short_path_saturation) + + +; Vehicles + +[SDT_VAR] +var = vehicle.train_acceleration_model +type = SLE_UINT8 +guiflags = SGF_MULTISTRING +def = 1 +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 +post_cb = TrainAccelerationModelChanged + +[SDT_VAR] +var = vehicle.roadveh_acceleration_model +type = SLE_UINT8 +from = SLV_139 +guiflags = SGF_MULTISTRING +def = 1 +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 +post_cb = RoadVehAccelerationModelChanged + +[SDT_VAR] +var = vehicle.train_slope_steepness +type = SLE_UINT8 +from = SLV_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 +post_cb = TrainSlopeSteepnessChanged +cat = SC_EXPERT + +[SDT_VAR] +var = vehicle.roadveh_slope_steepness +type = SLE_UINT8 +from = SLV_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 +post_cb = RoadVehSlopeSteepnessChanged +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.forbid_90_deg +def = false +str = STR_CONFIG_SETTING_FORBID_90_DEG +strhelp = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT +post_cb = InvalidateShipPathCache +cat = SC_EXPERT + +[SDT_VAR] +var = vehicle.max_train_length +type = SLE_UINT8 +from = SLV_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 = SLV_159 + +[SDT_VAR] +var = vehicle.smoke_amount +type = SLE_UINT8 +from = SLV_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 + +; order.gotodepot +[SDT_NULL] +length = 1 +to = SLV_159 + +; path finder + +[SDT_BOOL] +var = pf.roadveh_queue +def = true +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.new_pathfinding_all +to = SLV_87 +def = false +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.yapf.ship_use_yapf +from = SLV_28 +to = SLV_87 +def = false +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.yapf.road_use_yapf +from = SLV_28 +to = SLV_87 +def = true +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.yapf.rail_use_yapf +from = SLV_28 +to = SLV_87 +def = true +cat = SC_EXPERT + +## +[SDT_VAR] +var = pf.pathfinder_for_trains +type = SLE_UINT8 +from = SLV_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] +var = pf.pathfinder_for_roadvehs +type = SLE_UINT8 +from = SLV_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] +var = pf.pathfinder_for_ships +type = SLE_UINT8 +from = SLV_87 +guiflags = SGF_MULTISTRING +def = 2 +min = 1 +max = 2 +interval = 1 +str = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS +strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT +strval = STR_CONFIG_SETTING_PATHFINDER_NPF +post_cb = InvalidateShipPathCache +cat = SC_EXPERT + +[SDT_BOOL] +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 + +[SDT_VAR] +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 +post_cb = MaxVehiclesChanged +cat = SC_BASIC + +[SDT_VAR] +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 +post_cb = MaxVehiclesChanged +cat = SC_BASIC + +[SDT_VAR] +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 +post_cb = MaxVehiclesChanged +cat = SC_BASIC + +[SDT_VAR] +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 +post_cb = MaxVehiclesChanged +cat = SC_BASIC + +[SDTG_BOOL] +name = nullptr +guiflags = SGF_NO_NETWORK +var = _old_vds.servint_ispercent +def = false +to = SLV_120 + +[SDTG_VAR] +name = nullptr +type = SLE_UINT16 +guiflags = SGF_0ISDISABLED +var = _old_vds.servint_trains +def = 150 +min = 5 +max = 800 +to = SLV_120 + +[SDTG_VAR] +name = nullptr +type = SLE_UINT16 +guiflags = SGF_0ISDISABLED +var = _old_vds.servint_roadveh +def = 150 +min = 5 +max = 800 +to = SLV_120 + +[SDTG_VAR] +name = nullptr +type = SLE_UINT16 +guiflags = SGF_0ISDISABLED +var = _old_vds.servint_ships +def = 360 +min = 5 +max = 800 +to = SLV_120 + +[SDTG_VAR] +name = nullptr +type = SLE_UINT16 +guiflags = SGF_0ISDISABLED +var = _old_vds.servint_aircraft +def = 150 +min = 5 +max = 800 +to = SLV_120 + +[SDT_BOOL] +var = order.no_servicing_if_no_breakdowns +def = true +str = STR_CONFIG_SETTING_NOSERVICE +strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT + +[SDT_BOOL] +var = vehicle.wagon_speed_limits +guiflags = SGF_NO_NETWORK +def = true +str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS +strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT +post_cb = UpdateConsists + +[SDT_BOOL] +var = vehicle.disable_elrails +from = SLV_38 +guiflags = SGF_NO_NETWORK +def = false +str = STR_CONFIG_SETTING_DISABLE_ELRAILS +strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT +post_cb = SettingsDisableElrail +cat = SC_EXPERT + +[SDT_VAR] +var = vehicle.freight_trains +type = SLE_UINT8 +from = SLV_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 +post_cb = UpdateConsists + +; order.timetabling +[SDT_NULL] +length = 1 +from = SLV_67 +to = SLV_159 + +[SDT_VAR] +var = vehicle.plane_speed +type = SLE_UINT8 +from = SLV_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 + +[SDT_BOOL] +var = vehicle.dynamic_engines +from = SLV_95 +guiflags = SGF_NO_NETWORK +def = true +pre_cb = CheckDynamicEngines +cat = SC_EXPERT + +[SDT_VAR] +var = vehicle.plane_crashes +type = SLE_UINT8 +from = SLV_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 = SLV_159 + +[SDTC_BOOL] +var = gui.sg_full_load_any +from = SLV_22 +to = SLV_93 +def = true + +[SDT_BOOL] +var = order.improved_load +guiflags = SGF_NO_NETWORK +def = true +cat = SC_EXPERT + +[SDT_BOOL] +var = order.selectgoods +def = true +cat = SC_EXPERT + +[SDTC_BOOL] +var = gui.sg_new_nonstop +from = SLV_22 +to = SLV_93 +def = false + +; station.nonuniform_stations +[SDT_NULL] +length = 1 +to = SLV_159 + +[SDT_VAR] +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 +post_cb = StationSpreadChanged +cat = SC_BASIC + +[SDT_BOOL] +var = order.serviceathelipad +def = true +str = STR_CONFIG_SETTING_SERVICEATHELIPAD +strhelp = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT +cat = SC_EXPERT + +[SDT_BOOL] +var = station.modified_catchment +def = true +str = STR_CONFIG_SETTING_CATCHMENT +strhelp = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT +post_cb = StationCatchmentChanged +cat = SC_EXPERT + +[SDT_BOOL] +var = station.serve_neutral_industries +def = true +from = SLV_SERVE_NEUTRAL_INDUSTRIES +str = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES +strhelp = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT +post_cb = StationCatchmentChanged + +[SDT_BOOL] +var = order.gradual_loading +from = SLV_40 +guiflags = SGF_NO_NETWORK +def = true +cat = SC_EXPERT + +[SDT_BOOL] +var = construction.road_stop_on_town_road +from = SLV_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] +var = construction.road_stop_on_competitor_road +from = SLV_114 +def = true +str = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD +strhelp = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT +cat = SC_BASIC + +[SDT_BOOL] +var = station.adjacent_stations +from = SLV_62 +def = true +cat = SC_EXPERT + +[SDT_BOOL] +var = economy.station_noise_level +from = SLV_96 +guiflags = SGF_NO_NETWORK +def = false +str = STR_CONFIG_SETTING_NOISE_LEVEL +strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT +post_cb = [](auto new_value) { InvalidateWindowClassesData(WC_TOWN_VIEW, new_value); } + +[SDT_BOOL] +var = station.distant_join_stations +from = SLV_106 +def = true +str = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS +strhelp = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT +post_cb = [](auto) { DeleteWindowById(WC_SELECT_STATION, 0); } + +## +[SDT_BOOL] +var = economy.inflation +guiflags = SGF_NO_NETWORK +def = false +str = STR_CONFIG_SETTING_INFLATION +strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT +cat = SC_BASIC + +[SDT_VAR] +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 +post_cb = [](auto) { InvalidateWindowData(WC_BUILD_INDUSTRY, 0); } +cat = SC_BASIC + +[SDT_VAR] +var = construction.industry_platform +type = SLE_UINT8 +from = SLV_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] +var = economy.multiple_industry_per_town +def = false +str = STR_CONFIG_SETTING_MULTIPINDTOWN +strhelp = STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT + +[SDT_NULL] +length = 1 +to = SLV_141 + +[SDT_BOOL] +var = economy.bribe +def = true +str = STR_CONFIG_SETTING_BRIBE +strhelp = STR_CONFIG_SETTING_BRIBE_HELPTEXT +post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } +cat = SC_BASIC + +[SDT_BOOL] +var = economy.exclusive_rights +from = SLV_79 +def = true +str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE +strhelp = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT +post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } +cat = SC_BASIC + +[SDT_BOOL] +var = economy.fund_buildings +from = SLV_165 +def = true +str = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS +strhelp = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT +post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } +cat = SC_BASIC + +[SDT_BOOL] +var = economy.fund_roads +from = SLV_160 +def = true +str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD +strhelp = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT +post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); } +cat = SC_BASIC + +[SDT_BOOL] +var = economy.give_money +from = SLV_79 +def = true +str = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY +strhelp = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.snow_line_height +type = SLE_UINT8 +guiflags = SGF_SCENEDIT_ONLY +def = DEF_SNOWLINE_HEIGHT +min = MIN_SNOWLINE_HEIGHT +max = MAX_SNOWLINE_HEIGHT +interval = 1 +str = STR_CONFIG_SETTING_SNOWLINE_HEIGHT +strhelp = STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT +strval = STR_JUST_COMMA +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.snow_coverage +type = SLE_UINT8 +from = SLV_MAPGEN_SETTINGS_REVAMP +guiflags = SGF_NEWGAME_ONLY +def = DEF_SNOW_COVERAGE +min = 0 +max = 100 +interval = 10 +str = STR_CONFIG_SETTING_SNOW_COVERAGE +strhelp = STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT +strval = STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.desert_coverage +type = SLE_UINT8 +from = SLV_MAPGEN_SETTINGS_REVAMP +guiflags = SGF_NEWGAME_ONLY +def = DEF_DESERT_COVERAGE +min = 0 +max = 100 +interval = 10 +str = STR_CONFIG_SETTING_DESERT_COVERAGE +strhelp = STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT +strval = STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE +cat = SC_BASIC + +[SDT_NULL] +length = 4 +to = SLV_144 + +[SDT_VAR] +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 = SLV_105 + +[SDT_VAR] +var = game_creation.ending_year +type = SLE_INT32 +from = SLV_ENDING_YEAR +guiflags = SGF_0ISDISABLED +def = DEF_END_YEAR +min = MIN_YEAR +max = MAX_YEAR - 1 +interval = 1 +str = STR_CONFIG_SETTING_ENDING_YEAR +strhelp = STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT +strval = STR_CONFIG_SETTING_ENDING_YEAR_VALUE +cat = SC_ADVANCED + +[SDT_VAR] +var = economy.type +type = SLE_UINT8 +guiflags = SGF_MULTISTRING +def = ET_SMOOTH +min = ET_BEGIN +max = ET_END - 1 +str = STR_CONFIG_SETTING_ECONOMY_TYPE +strhelp = STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT +strval = STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL +post_cb = [](auto) { InvalidateWindowClassesData(WC_INDUSTRY_VIEW); } +cat = SC_BASIC + +[SDT_BOOL] +var = economy.allow_shares +def = false +str = STR_CONFIG_SETTING_ALLOW_SHARES +strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT +post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY); } + +[SDT_VAR] +var = economy.min_years_for_shares +type = SLE_UINT8 +from = SLV_TRADING_AGE +def = 6 +min = 0 +max = 255 +interval = 1 +str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES +strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT +strval = STR_JUST_INT +cat = SC_EXPERT + +[SDT_VAR] +var = economy.feeder_payment_share +type = SLE_UINT8 +from = SLV_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] +var = economy.town_growth_rate +type = SLE_UINT8 +from = SLV_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 + +[SDT_VAR] +var = economy.larger_towns +type = SLE_UINT8 +from = SLV_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 + +[SDT_VAR] +var = economy.initial_city_size +type = SLE_UINT8 +from = SLV_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 + +[SDT_BOOL] +var = economy.mod_road_rebuild +from = SLV_77 +def = true +cat = SC_EXPERT + +; previously ai-new setting. +[SDT_NULL] +length = 1 +to = SLV_107 + +[SDT_OMANY] +var = script.settings_profile +type = SLE_UINT8 +from = SLV_178 +guiflags = SGF_MULTISTRING +def = SP_EASY +min = SP_EASY +max = SP_HARD +full = _settings_profiles +str = STR_CONFIG_SETTING_AI_PROFILE +strhelp = STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT +strval = STR_CONFIG_SETTING_AI_PROFILE_EASY +cat = SC_BASIC + +[SDT_BOOL] +var = ai.ai_in_multiplayer +def = true +str = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER +strhelp = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT +cat = SC_BASIC + +[SDT_BOOL] +var = ai.ai_disable_veh_train +def = false +str = STR_CONFIG_SETTING_AI_BUILDS_TRAINS +strhelp = STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT + +[SDT_BOOL] +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 + +[SDT_BOOL] +var = ai.ai_disable_veh_aircraft +def = false +str = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT +strhelp = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT + +[SDT_BOOL] +var = ai.ai_disable_veh_ship +def = false +str = STR_CONFIG_SETTING_AI_BUILDS_SHIPS +strhelp = STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT + +[SDT_VAR] +var = script.script_max_opcode_till_suspend +type = SLE_UINT32 +from = SLV_107 +guiflags = SGF_NEWGAME_ONLY +def = 10000 +min = 500 +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] +var = script.script_max_memory_megabytes +type = SLE_UINT32 +from = SLV_SCRIPT_MEMLIMIT +guiflags = SGF_NEWGAME_ONLY +def = 1024 +min = 8 +max = 8192 +interval = 8 +str = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY +strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT +strval = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE +cat = SC_EXPERT + +## +[SDT_VAR] +var = vehicle.extend_vehicle_life +type = SLE_UINT8 +def = 0 +min = 0 +max = 100 +cat = SC_EXPERT + +[SDT_VAR] +var = economy.dist_local_authority +type = SLE_UINT8 +def = 20 +min = 5 +max = 60 +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.reverse_at_signals +from = SLV_159 +def = false +str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS +strhelp = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT + +[SDT_VAR] +var = pf.wait_oneway_signal +type = SLE_UINT8 +def = 15 +min = 2 +max = 255 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.wait_twoway_signal +type = SLE_UINT8 +def = 41 +min = 2 +max = 255 +cat = SC_EXPERT + +[SDT_VAR] +var = economy.town_noise_population[0] +type = SLE_UINT16 +from = SLV_96 +def = 800 +min = 200 +max = 65535 +cat = SC_EXPERT + +[SDT_VAR] +var = economy.town_noise_population[1] +type = SLE_UINT16 +from = SLV_96 +def = 2000 +min = 400 +max = 65535 +cat = SC_EXPERT + +[SDT_VAR] +var = economy.town_noise_population[2] +type = SLE_UINT16 +from = SLV_96 +def = 4000 +min = 800 +max = 65535 +cat = SC_EXPERT + +[SDT_BOOL] +var = economy.infrastructure_maintenance +from = SLV_166 +def = false +str = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE +strhelp = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT +post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY_INFRASTRUCTURE); } +cat = SC_BASIC + +## +[SDT_VAR] +var = pf.wait_for_pbs_path +type = SLE_UINT8 +from = SLV_100 +def = 30 +min = 2 +max = 255 +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.reserve_paths +from = SLV_100 +def = false +cat = SC_EXPERT + +[SDT_VAR] +var = pf.path_backoff_interval +type = SLE_UINT8 +from = SLV_100 +def = 20 +min = 1 +max = 255 +cat = SC_EXPERT + +## +; Used to be pf.opf.pf_maxlength & pf.opf.pf_maxdepth +[SDT_NULL] +length = 3 +to = SLV_REMOVE_OPF + +## +[SDT_VAR] +var = pf.npf.npf_max_search_nodes +type = SLE_UINT +def = 10000 +min = 500 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_rail_firstred_penalty +type = SLE_UINT +def = 10 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +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] +var = pf.npf.npf_rail_lastred_penalty +type = SLE_UINT +def = 10 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_rail_station_penalty +type = SLE_UINT +def = 1 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_rail_slope_penalty +type = SLE_UINT +def = 1 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_rail_curve_penalty +type = SLE_UINT +def = 1 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +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] +var = pf.npf.npf_rail_pbs_cross_penalty +type = SLE_UINT +from = SLV_100 +def = 3 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_rail_pbs_signal_back_penalty +type = SLE_UINT +from = SLV_100 +def = 15 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_buoy_penalty +type = SLE_UINT +def = 2 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_water_curve_penalty +type = SLE_UINT +def = 1 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_road_curve_penalty +type = SLE_UINT +def = 1 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_crossing_penalty +type = SLE_UINT +def = 3 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_road_drive_through_penalty +type = SLE_UINT +from = SLV_47 +def = 8 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_road_dt_occupied_penalty +type = SLE_UINT +from = SLV_130 +def = 8 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.npf_road_bay_occupied_penalty +type = SLE_UINT +from = SLV_130 +def = 15 * NPF_TILE_LENGTH +min = 0 +max = 100000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.npf.maximum_go_to_depot_penalty +type = SLE_UINT +from = SLV_131 +def = 20 * NPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +## +[SDT_BOOL] +var = pf.yapf.disable_node_optimization +from = SLV_28 +def = false +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.max_search_nodes +type = SLE_UINT +from = SLV_28 +def = 10000 +min = 500 +max = 1000000 +cat = SC_EXPERT + +[SDT_BOOL] +var = pf.yapf.rail_firstred_twoway_eol +from = SLV_28 +def = false +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_firstred_penalty +type = SLE_UINT +from = SLV_28 +def = 10 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_firstred_exit_penalty +type = SLE_UINT +from = SLV_28 +def = 100 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_lastred_penalty +type = SLE_UINT +from = SLV_28 +def = 10 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_lastred_exit_penalty +type = SLE_UINT +from = SLV_28 +def = 100 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_station_penalty +type = SLE_UINT +from = SLV_28 +def = 10 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_slope_penalty +type = SLE_UINT +from = SLV_28 +def = 2 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_curve45_penalty +type = SLE_UINT +from = SLV_28 +def = 1 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_curve90_penalty +type = SLE_UINT +from = SLV_28 +def = 6 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_depot_reverse_penalty +type = SLE_UINT +from = SLV_28 +def = 50 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_crossing_penalty +type = SLE_UINT +from = SLV_28 +def = 3 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_look_ahead_max_signals +type = SLE_UINT +from = SLV_28 +def = 10 +min = 1 +max = 100 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_look_ahead_signal_p0 +type = SLE_INT +from = SLV_28 +def = 500 +min = -1000000 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_look_ahead_signal_p1 +type = SLE_INT +from = SLV_28 +def = -100 +min = -1000000 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_look_ahead_signal_p2 +type = SLE_INT +from = SLV_28 +def = 5 +min = -1000000 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_pbs_cross_penalty +type = SLE_UINT +from = SLV_100 +def = 3 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_pbs_station_penalty +type = SLE_UINT +from = SLV_100 +def = 8 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_pbs_signal_back_penalty +type = SLE_UINT +from = SLV_100 +def = 15 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_doubleslip_penalty +type = SLE_UINT +from = SLV_100 +def = 1 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_longer_platform_penalty +type = SLE_UINT +from = SLV_33 +def = 8 * YAPF_TILE_LENGTH +min = 0 +max = 20000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_longer_platform_per_tile_penalty +type = SLE_UINT +from = SLV_33 +def = 0 * YAPF_TILE_LENGTH +min = 0 +max = 20000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_shorter_platform_penalty +type = SLE_UINT +from = SLV_33 +def = 40 * YAPF_TILE_LENGTH +min = 0 +max = 20000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.rail_shorter_platform_per_tile_penalty +type = SLE_UINT +from = SLV_33 +def = 0 * YAPF_TILE_LENGTH +min = 0 +max = 20000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_slope_penalty +type = SLE_UINT +from = SLV_33 +def = 2 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_curve_penalty +type = SLE_UINT +from = SLV_33 +def = 1 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_crossing_penalty +type = SLE_UINT +from = SLV_33 +def = 3 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_stop_penalty +type = SLE_UINT +from = SLV_47 +def = 8 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_stop_occupied_penalty +type = SLE_UINT +from = SLV_130 +def = 8 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.road_stop_bay_occupied_penalty +type = SLE_UINT +from = SLV_130 +def = 15 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.maximum_go_to_depot_penalty +type = SLE_UINT +from = SLV_131 +def = 20 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.ship_curve45_penalty +type = SLE_UINT +from = SLV_SHIP_CURVE_PENALTY +def = 1 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +[SDT_VAR] +var = pf.yapf.ship_curve90_penalty +type = SLE_UINT +from = SLV_SHIP_CURVE_PENALTY +def = 6 * YAPF_TILE_LENGTH +min = 0 +max = 1000000 +cat = SC_EXPERT + +## +[SDT_VAR] +var = game_creation.land_generator +type = SLE_UINT8 +from = SLV_30 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 1 +min = 0 +max = 1 +str = STR_CONFIG_SETTING_LAND_GENERATOR +strhelp = STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT +strval = STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL + +[SDT_VAR] +var = game_creation.oil_refinery_limit +type = SLE_UINT8 +from = SLV_30 +def = 32 +min = 12 +max = 128 +str = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE +strval = STR_CONFIG_SETTING_TILE_LENGTH +strhelp = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT + +[SDT_VAR] +var = game_creation.tgen_smoothness +type = SLE_UINT8 +from = SLV_30 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 1 +min = TGEN_SMOOTHNESS_BEGIN +max = TGEN_SMOOTHNESS_END - 1 +str = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN +strhelp = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT +strval = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.variety +type = SLE_UINT8 +from = SLV_197 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 0 +min = 0 +max = 5 +str = STR_CONFIG_SETTING_VARIETY +strhelp = STR_CONFIG_SETTING_VARIETY_HELPTEXT +strval = STR_VARIETY_NONE + +[SDT_VAR] +var = game_creation.generation_seed +type = SLE_UINT32 +from = SLV_30 +def = GENERATE_NEW_SEED +min = 0 +max = UINT32_MAX +cat = SC_EXPERT + +[SDT_VAR] +var = game_creation.tree_placer +type = SLE_UINT8 +from = SLV_30 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +def = 2 +min = 0 +max = 2 +str = STR_CONFIG_SETTING_TREE_PLACER +strhelp = STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT +strval = STR_CONFIG_SETTING_TREE_PLACER_NONE +cat = SC_BASIC + +[SDT_VAR] +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] +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] +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] +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] +var = construction.freeform_edges +from = SLV_111 +def = true +pre_cb = CheckFreeformEdges +post_cb = UpdateFreeformEdges +cat = SC_EXPERT + +[SDT_VAR] +var = game_creation.water_borders +type = SLE_UINT8 +from = SLV_111 +def = 15 +min = 0 +max = 16 + +[SDT_VAR] +var = game_creation.custom_town_number +type = SLE_UINT16 +from = SLV_115 +def = 1 +min = 1 +max = 5000 +cat = SC_BASIC + +[SDT_VAR] +var = construction.extra_tree_placement +type = SLE_UINT8 +from = SLV_132 +guiflags = SGF_MULTISTRING +def = 2 +min = 0 +max = 3 +str = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT +strhelp = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT +strval = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.custom_terrain_type +type = SLE_UINT8 +from = SLV_MAPGEN_SETTINGS_REVAMP +guiflags = SGF_NEWGAME_ONLY +def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM +min = MIN_CUSTOM_TERRAIN_TYPE +max = MAX_MAP_HEIGHT_LIMIT +interval = 1 + +[SDT_VAR] +var = game_creation.custom_sea_level +type = SLE_UINT8 +from = SLV_149 +def = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE +min = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE +max = CUSTOM_SEA_LEVEL_MAX_PERCENTAGE +cat = SC_BASIC + +[SDT_VAR] +var = game_creation.min_river_length +type = SLE_UINT8 +from = SLV_163 +def = 16 +min = 2 +max = 255 +cat = SC_EXPERT + +[SDT_VAR] +var = game_creation.river_route_random +type = SLE_UINT8 +from = SLV_163 +def = 5 +min = 1 +max = 255 +cat = SC_EXPERT + +[SDT_VAR] +var = game_creation.amount_of_rivers +type = SLE_UINT8 +from = SLV_163 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +def = 2 +min = 0 +max = 3 +str = STR_CONFIG_SETTING_RIVER_AMOUNT +strhelp = STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT +strval = STR_RIVERS_NONE + +; locale + +[SDT_OMANY] +var = locale.currency +type = SLE_UINT8 +from = SLV_97 +flags = SLF_NO_NETWORK_SYNC +def = 0 +max = CURRENCY_END - 1 +full = _locale_currencies +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + +[SDTG_OMANY] +name = ""units"" +var = _old_units +type = SLE_UINT8 +from = SLV_97 +to = SLV_184 +flags = SLF_NOT_IN_CONFIG +def = 1 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + +[SDT_OMANY] +var = locale.units_velocity +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 3 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL + +[SDT_OMANY] +var = locale.units_power +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL + +[SDT_OMANY] +var = locale.units_weight +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL + +[SDT_OMANY] +var = locale.units_volume +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL + +[SDT_OMANY] +var = locale.units_force +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL + +[SDT_OMANY] +var = locale.units_height +type = SLE_UINT8 +from = SLV_184 +flags = SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _locale_units +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL + +[SDT_SSTR] +var = locale.digit_group_separator +type = SLE_STRQ +from = SLV_118 +flags = SLF_NO_NETWORK_SYNC +def = nullptr +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + +[SDT_SSTR] +var = locale.digit_group_separator_currency +type = SLE_STRQ +from = SLV_118 +flags = SLF_NO_NETWORK_SYNC +def = nullptr +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + +[SDT_SSTR] +var = locale.digit_decimal_separator +type = SLE_STRQ +from = SLV_126 +flags = SLF_NO_NETWORK_SYNC +def = nullptr +post_cb = [](auto) { MarkWholeScreenDirty(); } +cat = SC_BASIC + + +;*************************************************************************** +; Unsaved setting variables. + +[SDTC_OMANY] +var = gui.autosave +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 4 +full = _autosave_interval +str = STR_CONFIG_SETTING_AUTOSAVE +strhelp = STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT +strval = STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF +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 = 2 +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 + +[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_VAR] +var = gui.scroll_mode +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_SCROLLMODE +strhelp = STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT +strval = STR_CONFIG_SETTING_SCROLLMODE_DEFAULT +cat = SC_BASIC + +[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 + +[SDTC_BOOL] +var = gui.right_mouse_wnd_close +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE +strhelp = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_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 + +[SDTC_VAR] +var = gui.hover_delay_ms +type = SLE_UINT16 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_0ISDISABLED +def = 250 +min = 50 +max = 6000 +interval = 50 +str = STR_CONFIG_SETTING_HOVER_DELAY +strhelp = STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT +strval = STR_CONFIG_SETTING_HOVER_DELAY_VALUE + +[SDTC_OMANY] +var = gui.osk_activation +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +str = STR_CONFIG_SETTING_OSK_ACTIVATION +strhelp = STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT +strval = STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED +guiflags = SGF_MULTISTRING +full = _osk_activation +def = 1 +min = 0 +max = 3 +cat = SC_BASIC + +[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 +post_cb = 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 +post_cb = 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_EXPERT + +[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_OUT_4X +str = STR_CONFIG_SETTING_ZOOM_MIN +strhelp = STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT +strval = STR_CONFIG_SETTING_ZOOM_LVL_MIN +post_cb = ZoomMinMaxChanged +startup = true + +[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 +post_cb = ZoomMinMaxChanged +startup = true + +[SDTC_VAR] +var = gui.sprite_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_OUT_4X +str = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN +strhelp = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT +strval = STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN +post_cb = SpriteZoomMinChanged + +[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 +post_cb = [](auto) { UpdateAllTownVirtCoords(); } + +[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 + +[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 +post_cb = RedrawSmallmap + +[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 +post_cb = InvalidateCompanyLiveryWindow + +[SDTC_VAR] +var = gui.starting_colour +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = COLOUR_END +min = 0 +max = COLOUR_END +str = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR +strhelp = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT +strval = STR_COLOUR_DARK_BLUE + +[SDTC_BOOL] +var = gui.auto_remove_signals +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS +strhelp = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT +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 + +[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 +post_cb = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); } +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 +post_cb = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); } + +[SDTC_BOOL] +var = gui.quick_goto +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +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 +post_cb = [](auto) { MarkWholeScreenDirty(); } +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 +post_cb = 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_EXPERT + +[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 +post_cb = [](auto) { InvalidateWindowData(WC_BUILD_SIGNAL, 0); } +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_EXPERT + +[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 +post_cb = ResetSignalVariant + +[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_BASIC + +[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 + +[SDTC_BOOL] +var = gui.new_nonstop +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +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 + +[SDTC_BOOL] +var = gui.autosave_on_exit +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +cat = SC_BASIC + +[SDTC_BOOL] +var = gui.autosave_on_network_disconnect +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +cat = SC_EXPERT + +[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 + +[SDTC_BOOL] +var = gui.auto_euro +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true + +[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 + +[SDTC_BOOL] +var = gui.show_track_reservation +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION +strhelp = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT +post_cb = [](auto) { MarkWholeScreenDirty(); } +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 + +[SDTC_VAR] +var = gui.station_numtracks +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 1 +min = 1 +max = 7 + +[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 = true +str = STR_CONFIG_SETTING_EXPENSES_LAYOUT +strhelp = STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT +post_cb = [](auto) { MarkWholeScreenDirty(); } + +[SDTC_VAR] +var = gui.station_gui_group_order +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 0 +min = 0 +max = 5 +interval = 1 + +[SDTC_VAR] +var = gui.station_gui_sort_by +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 0 +min = 0 +max = 3 +interval = 1 + +[SDTC_VAR] +var = gui.station_gui_sort_order +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 0 +min = 0 +max = 1 +interval = 1 + +[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 +post_cb = [](auto) { MarkWholeScreenDirty(); } + +[SDTC_BOOL] +var = gui.show_newgrf_name +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME +strhelp = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT +post_cb = [](auto) { MarkWholeScreenDirty(); } +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 + +[SDTC_BOOL] +ifndef = DEDICATED +var = gui.show_date_in_logs +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false + +[SDTC_VAR] +var = gui.settings_restriction_mode +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 0 +min = 0 +max = 2 + +[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 +post_cb = InvalidateNewGRFChangeWindows +cat = SC_EXPERT + +[SDTC_BOOL] +var = gui.ai_developer_tools +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +post_cb = [](auto) { InvalidateWindowClassesData(WC_AI_SETTINGS); } +cat = SC_EXPERT + +[SDTC_BOOL] +var = gui.scenario_developer +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +post_cb = InvalidateNewGRFChangeWindows + +[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 +post_cb = 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 + +[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 + +[SDTC_VAR] +var = gui.refresh_rate +type = SLE_UINT16 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 60 +min = 10 +max = 1000 +cat = SC_EXPERT +startup = true + +[SDTC_VAR] +var = gui.fast_forward_speed_limit +type = SLE_UINT16 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_0ISDISABLED | SGF_NO_NETWORK +def = 2500 +min = 0 +max = 50000 +interval = 10 +str = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT +strhelp = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT +strval = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL +cat = SC_BASIC + +[SDTC_BOOL] +var = sound.news_ticker +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_TICKER +strhelp = STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT + +[SDTC_BOOL] +var = sound.news_full +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_NEWS +strhelp = STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT + +[SDTC_BOOL] +var = sound.new_year +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_NEW_YEAR +strhelp = STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT + +[SDTC_BOOL] +var = sound.confirm +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_CONFIRM +strhelp = STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT + +[SDTC_BOOL] +var = sound.click_beep +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_CLICK +strhelp = STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT + +[SDTC_BOOL] +var = sound.disaster +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_DISASTER +strhelp = STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT + +[SDTC_BOOL] +var = sound.vehicle +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_VEHICLE +strhelp = STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT + +[SDTC_BOOL] +var = sound.ambient +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_SOUND_AMBIENT +strhelp = STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT + +[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 = 50 +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 = 100 +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 = nullptr +cat = SC_BASIC + +[SDTC_LIST] +var = music.custom_2 +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = nullptr +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_OMANY] +var = news_display.arrival_player +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN +strhelp = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.arrival_other +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER +strhelp = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.accident +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS +strhelp = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.company_info +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION +strhelp = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.open +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN +strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.close +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE +strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.economy +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES +strhelp = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.production_player +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY +strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.production_other +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 0 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER +strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.production_nobody +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 0 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED +strhelp = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.advice +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_ADVICE +strhelp = STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.new_vehicles +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES +strhelp = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.acceptance +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE +strhelp = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.subsidies +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 1 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_SUBSIDIES +strhelp = STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_OMANY] +var = news_display.general +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = 2 +max = 2 +full = _news_display +str = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION +strhelp = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT +strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF + +[SDTC_VAR] +var = gui.network_chat_box_width_pct +type = SLE_UINT16 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = 40 +min = 10 +max = 100 +cat = SC_EXPERT + +[SDTC_VAR] +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] +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] +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] +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] +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] +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] +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] +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] +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] +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 + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 + +[SDTC_BOOL] +var = network.pause_on_join +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = true + +[SDTC_VAR] +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] +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] +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] +var = network.server_advertise +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = false + +[SDTC_SSTR] +var = network.client_name +type = SLE_STR +length = NETWORK_CLIENT_NAME_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = nullptr +pre_cb = NetworkValidateClientName +post_cb = NetworkUpdateClientName +cat = SC_BASIC + +[SDTC_SSTR] +var = network.server_password +type = SLE_STR +length = NETWORK_PASSWORD_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = nullptr +pre_cb = ReplaceAsteriskWithEmptyPassword +post_cb = [](auto) { NetworkServerUpdateGameInfo(); } +cat = SC_BASIC + +[SDTC_SSTR] +var = network.rcon_password +type = SLE_STR +length = NETWORK_PASSWORD_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = nullptr +pre_cb = ReplaceAsteriskWithEmptyPassword +cat = SC_BASIC + +[SDTC_SSTR] +var = network.admin_password +type = SLE_STR +length = NETWORK_PASSWORD_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = nullptr +cat = SC_BASIC + +[SDTC_SSTR] +var = network.default_company_pass +type = SLE_STR +length = NETWORK_PASSWORD_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = nullptr + +[SDTC_SSTR] +var = network.server_name +type = SLE_STR +length = NETWORK_NAME_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = nullptr +pre_cb = NetworkValidateServerName +post_cb = [](auto) { UpdateClientConfigValues(); } +cat = SC_BASIC + +[SDTC_SSTR] +var = network.connect_to_ip +type = SLE_STR +length = 0 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = nullptr + +[SDTC_SSTR] +var = network.network_id +type = SLE_STR +length = NETWORK_SERVER_ID_LENGTH +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = nullptr + +[SDTC_BOOL] +var = network.autoclean_companies +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = false + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 +post_cb = [](auto) { UpdateClientConfigValues(); } +cat = SC_BASIC + +[SDTC_VAR] +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 +post_cb = [](auto) { UpdateClientConfigValues(); } +cat = SC_BASIC + +[SDTC_VAR] +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 +post_cb = [](auto) { UpdateClientConfigValues(); } +cat = SC_BASIC + +[SDTC_VAR] +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 + +[SDTC_VAR] +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 + +[SDTC_BOOL] +var = network.reload_cfg +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NETWORK_ONLY +def = false +cat = SC_EXPERT + +[SDTC_SSTR] +var = network.last_joined +type = SLE_STR +length = 0 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = """" +cat = SC_EXPERT + +[SDTC_BOOL] +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 separate 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 diff --git a/src/table/settings/win32_settings.ini b/src/table/settings/win32_settings.ini new file mode 100644 index 000000000..6b7d5276d --- /dev/null +++ b/src/table/settings/win32_settings.ini @@ -0,0 +1,44 @@ +; This file is part of OpenTTD. +; 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] +/* win32_v.cpp only settings */ +#if defined(_WIN32) && !defined(DEDICATED) +extern bool _window_maximize; + +static const SettingTable _win32_settings{ +[post-amble] +}; +#endif /* _WIN32 */ +[templates] +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); + +[defaults] +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = true + + +[SDTG_BOOL] +name = ""window_maximize"" +var = _window_maximize +def = false +cat = SC_BASIC diff --git a/src/table/settings/window_settings.ini b/src/table/settings/window_settings.ini new file mode 100644 index 000000000..560a197ab --- /dev/null +++ b/src/table/settings/window_settings.ini @@ -0,0 +1,53 @@ +; This file is part of OpenTTD. +; 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 SettingTable _window_settings{ +[post-amble] +}; +[templates] +SDT_BOOL = SDT_BOOL(WindowDesc, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), +SDT_VAR = SDT_VAR(WindowDesc, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), + +[validation] +SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var exceeds storage size"); + +[defaults] +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_NONE +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NULL +pre_cb = nullptr +post_cb = nullptr +load = nullptr +from = SL_MIN_VERSION +to = SL_MAX_VERSION +cat = SC_ADVANCED +extra = 0 +startup = false + + + +[SDT_BOOL] +var = pref_sticky +def = false + +[SDT_VAR] +var = pref_width +type = SLE_INT16 +def = 0 +min = 0 +max = 32000 + +[SDT_VAR] +var = pref_height +type = SLE_INT16 +def = 0 +min = 0 +max = 32000 diff --git a/src/table/win32_settings.ini b/src/table/win32_settings.ini deleted file mode 100644 index 6b7d5276d..000000000 --- a/src/table/win32_settings.ini +++ /dev/null @@ -1,44 +0,0 @@ -; This file is part of OpenTTD. -; 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] -/* win32_v.cpp only settings */ -#if defined(_WIN32) && !defined(DEDICATED) -extern bool _window_maximize; - -static const SettingTable _win32_settings{ -[post-amble] -}; -#endif /* _WIN32 */ -[templates] -SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); - -[defaults] -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = true - - -[SDTG_BOOL] -name = ""window_maximize"" -var = _window_maximize -def = false -cat = SC_BASIC diff --git a/src/table/window_settings.ini b/src/table/window_settings.ini deleted file mode 100644 index 560a197ab..000000000 --- a/src/table/window_settings.ini +++ /dev/null @@ -1,53 +0,0 @@ -; This file is part of OpenTTD. -; 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 SettingTable _window_settings{ -[post-amble] -}; -[templates] -SDT_BOOL = SDT_BOOL(WindowDesc, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), -SDT_VAR = SDT_VAR(WindowDesc, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), - -[validation] -SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var exceeds storage size"); - -[defaults] -flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE -interval = 0 -str = STR_NULL -strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT -strval = STR_NULL -pre_cb = nullptr -post_cb = nullptr -load = nullptr -from = SL_MIN_VERSION -to = SL_MAX_VERSION -cat = SC_ADVANCED -extra = 0 -startup = false - - - -[SDT_BOOL] -var = pref_sticky -def = false - -[SDT_VAR] -var = pref_width -type = SLE_INT16 -def = 0 -min = 0 -max = 32000 - -[SDT_VAR] -var = pref_height -type = SLE_INT16 -def = 0 -min = 0 -max = 32000 -- cgit v1.2.3-70-g09d2