summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralberth <alberth@openttd.org>2011-03-03 21:04:17 +0000
committeralberth <alberth@openttd.org>2011-03-03 21:04:17 +0000
commit74d756799cd5ae6abad5ed4ea0c97ce74b245f05 (patch)
tree9cd16faac1092382ca5416780b299236f2d6eb2b /src
parent98d5302c63c13e42dadaa3ea49ed0549fb8fd154 (diff)
downloadopenttd-74d756799cd5ae6abad5ed4ea0c97ce74b245f05.tar.xz
(svn r22172) -Add: Add ini files containing the table/settings data.
Diffstat (limited to 'src')
-rw-r--r--src/table/company_settings.ini120
-rw-r--r--src/table/currency_settings.ini67
-rw-r--r--src/table/gameopt_settings.ini190
-rw-r--r--src/table/misc_settings.ini358
-rw-r--r--src/table/music_settings.ini91
-rw-r--r--src/table/settings.ini3701
-rw-r--r--src/table/win32_settings.ini62
7 files changed, 4589 insertions, 0 deletions
diff --git a/src/table/company_settings.ini b/src/table/company_settings.ini
new file mode 100644
index 000000000..385848bcc
--- /dev/null
+++ b/src/table/company_settings.ini
@@ -0,0 +1,120 @@
+[pre-amble]
+static const SettingDesc _company_settings[] = {
+[post-amble]
+};
+[templates]
+SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $proc),
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_END = SDT_END()
+
+
+
+[SDT_BOOL]
+base = CompanySettings
+var = engine_renew
+flags = 0
+guiflags = PC
+def = false
+str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE
+proc = NULL
+
+[SDT_VAR]
+base = CompanySettings
+var = engine_renew_months
+type = SLE_INT16
+flags = 0
+guiflags = PC
+def = 6
+min = -12
+max = 12
+interval = 0
+str = STR_CONFIG_SETTING_AUTORENEW_MONTHS
+proc = NULL
+
+[SDT_VAR]
+base = CompanySettings
+var = engine_renew_money
+type = SLE_UINT
+flags = 0
+guiflags = PC|CR
+def = 100000
+min = 0
+max = 2000000
+interval = 0
+str = STR_CONFIG_SETTING_AUTORENEW_MONEY
+proc = NULL
+
+[SDT_BOOL]
+base = CompanySettings
+var = renew_keep_length
+flags = 0
+guiflags = PC
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_BOOL]
+base = CompanySettings
+var = vehicle.servint_ispercent
+flags = 0
+guiflags = PC
+def = false
+str = STR_CONFIG_SETTING_SERVINT_ISPERCENT
+proc = CheckInterval
+
+[SDT_VAR]
+base = CompanySettings
+var = vehicle.servint_trains
+type = SLE_UINT16
+flags = 0
+guiflags = PC|D0
+def = 150
+min = 5
+max = 800
+interval = 0
+str = STR_CONFIG_SETTING_SERVINT_TRAINS
+proc = InvalidateDetailsWindow
+
+[SDT_VAR]
+base = CompanySettings
+var = vehicle.servint_roadveh
+type = SLE_UINT16
+flags = 0
+guiflags = PC|D0
+def = 150
+min = 5
+max = 800
+interval = 0
+str = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES
+proc = InvalidateDetailsWindow
+
+[SDT_VAR]
+base = CompanySettings
+var = vehicle.servint_ships
+type = SLE_UINT16
+flags = 0
+guiflags = PC|D0
+def = 360
+min = 5
+max = 800
+interval = 0
+str = STR_CONFIG_SETTING_SERVINT_SHIPS
+proc = InvalidateDetailsWindow
+
+[SDT_VAR]
+base = CompanySettings
+var = vehicle.servint_aircraft
+type = SLE_UINT16
+flags = 0
+guiflags = PC|D0
+def = 100
+min = 5
+max = 800
+interval = 0
+str = STR_CONFIG_SETTING_SERVINT_AIRCRAFT
+proc = InvalidateDetailsWindow
+
+[SDT_END]
+
+
+};
diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini
new file mode 100644
index 000000000..82094f26a
--- /dev/null
+++ b/src/table/currency_settings.ini
@@ -0,0 +1,67 @@
+[pre-amble]
+static const SettingDesc _currency_settings[] = {
+[post-amble]
+};
+[templates]
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $proc),
+SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $proc),
+SDT_END = SDT_END()
+
+[SDT_VAR]
+base = CurrencySpec
+var = rate
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 1
+min = 0
+max = UINT16_MAX
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CHR]
+base = CurrencySpec
+var = separator
+flags = S
+guiflags = 0
+def = "".""
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = CurrencySpec
+var = to_euro
+type = SLE_INT32
+flags = S
+guiflags = 0
+def = 0
+min = MIN_YEAR
+max = MAX_YEAR
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_STR]
+base = CurrencySpec
+var = prefix
+type = SLE_STRBQ
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDT_STR]
+base = CurrencySpec
+var = suffix
+type = SLE_STRBQ
+flags = S
+guiflags = 0
+def = "" credits""
+str = STR_NULL
+proc = NULL
+
+[SDT_END]
+
diff --git a/src/table/gameopt_settings.ini b/src/table/gameopt_settings.ini
new file mode 100644
index 000000000..59ae86e82
--- /dev/null
+++ b/src/table/gameopt_settings.ini
@@ -0,0 +1,190 @@
+[pre-amble]
+static const uint GAME_DIFFICULTY_NUM = 18;
+static uint16 _old_diff_custom[GAME_DIFFICULTY_NUM];
+
+/* Most of these strings are used both for gameopt-backward compatability
+ * and the settings tables. The rest is here for consistency. */
+static const char *_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 const char *_locale_units = "imperial|metric|si";
+static const char *_town_names = "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovak|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish|italian|catalan";
+static const char *_climates = "temperate|arctic|tropic|toyland";
+static const char *_autosave_interval = "off|monthly|quarterly|half year|yearly";
+static const char *_roadsides = "left|right";
+static const char *_savegame_date = "long|short|iso";
+#ifdef ENABLE_NETWORK
+static const char *_server_langs = "ANY|ENGLISH|GERMAN|FRENCH|BRAZILIAN|BULGARIAN|CHINESE|CZECH|DANISH|DUTCH|ESPERANTO|FINNISH|HUNGARIAN|ICELANDIC|ITALIAN|JAPANESE|KOREAN|LITHUANIAN|NORWEGIAN|POLISH|PORTUGUESE|ROMANIAN|RUSSIAN|SLOVAK|SLOVENIAN|SPANISH|SWEDISH|TURKISH|UKRAINIAN|AFRIKAANS|CROATIAN|CATALAN|ESTONIAN|GALICIAN|GREEK|LATVIAN";
+#endif /* ENABLE_NETWORK */
+
+static const SettingDesc _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_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $proc, $from, $to),
+SDT_CONDNULL = SDT_CONDNULL($length, $from, $to),
+SDTC_CONDOMANY = SDTC_CONDOMANY( $var, $type, $from, $to, $flags, $guiflags, $def, $max, $full, $str, $proc),
+SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $proc, $load),
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_END = SDT_END()
+
+
+[SDTG_GENERAL]
+name = ""diff_custom""
+sdt_cmd = SDT_INTLIST
+sle_cmd = SL_ARR
+type = SLE_FILE_I16 | SLE_VAR_U16
+flags = C
+guiflags = 0
+var = _old_diff_custom
+length = 17
+def = 0
+min = 0
+max = 0
+interval = 0
+full = NULL
+str = STR_NULL
+proc = NULL
+from = 0
+to = 3
+
+[SDTG_GENERAL]
+name = ""diff_custom""
+sdt_cmd = SDT_INTLIST
+sle_cmd = SL_ARR
+type = SLE_UINT16
+flags = C
+guiflags = 0
+var = _old_diff_custom
+length = 18
+def = 0
+min = 0
+max = 0
+interval = 0
+full = NULL
+str = STR_NULL
+proc = NULL
+from = 4
+to = SL_MAX_VERSION
+
+##
+[SDT_VAR]
+base = GameSettings
+var = difficulty.diff_level
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 3
+min = 0
+max = 3
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_OMANY]
+base = GameSettings
+var = locale.currency
+type = SLE_UINT8
+flags = N
+guiflags = 0
+def = 0
+max = CUSTOM_CURRENCY_ID
+full = _locale_currencies
+str = STR_NULL
+proc = NULL
+load = NULL
+
+[SDT_OMANY]
+base = GameSettings
+var = locale.units
+type = SLE_UINT8
+flags = N
+guiflags = 0
+def = 1
+max = 2
+full = _locale_units
+str = STR_NULL
+proc = NULL
+load = NULL
+
+# There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow
+# these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI.
+[SDT_OMANY]
+base = GameSettings
+var = game_creation.town_name
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 0
+max = 255
+full = _town_names
+str = STR_NULL
+proc = NULL
+load = NULL
+
+[SDT_OMANY]
+base = GameSettings
+var = game_creation.landscape
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 0
+max = 3
+full = _climates
+str = STR_NULL
+proc = NULL
+load = ConvertLandscape
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.snow_line
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
+min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
+max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 22
+
+[SDTC_CONDOMANY]
+var = gui.autosave
+type = SLE_UINT8
+from = 23
+to = SL_MAX_VERSION
+flags = S
+guiflags = 0
+def = 1
+max = 4
+full = _autosave_interval
+str = STR_NULL
+proc = NULL
+
+[SDT_OMANY]
+base = GameSettings
+var = vehicle.road_side
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 1
+max = 1
+full = _roadsides
+str = STR_NULL
+proc = NULL
+load = NULL
+
+[SDT_END]
+
diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini
new file mode 100644
index 000000000..8ce3a449d
--- /dev/null
+++ b/src/table/misc_settings.ini
@@ -0,0 +1,358 @@
+[pre-amble]
+extern char _config_language_file[MAX_PATH];
+
+static const SettingDescGlobVarList _misc_settings[] = {
+[post-amble]
+};
+[templates]
+SDTG_CONDLIST = SDTG_CONDLIST($name, $type, $length, $flags, $guiflags, $var, $def, $str, $proc, $from, $to),
+SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $proc),
+SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $proc),
+SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $proc),
+SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc),
+SDTG_END = SDTG_END()
+
+[SDTG_MMANY]
+name = ""display_opt""
+type = SLE_UINT8
+flags = S
+guiflags = 0
+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)
+full = ""SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION||FULL_DETAIL|WAYPOINTS""
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+name = ""news_ticker_sound""
+flags = S
+guiflags = 0
+var = _news_ticker_sound
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+name = ""fullscreen""
+flags = S
+guiflags = 0
+var = _fullscreen
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""graphicsset""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = BaseGraphics::ini_set
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""soundsset""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = BaseSounds::ini_set
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""musicset""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = BaseMusic::ini_set
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""videodriver""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = _ini_videodriver
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""musicdriver""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = _ini_musicdriver
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""sounddriver""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = _ini_sounddriver
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""blitter""
+type = SLE_STRQ
+flags = S
+guiflags = 0
+var = _ini_blitter
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""language""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _config_language_file
+def = NULL
+str = STR_NULL
+proc = NULL
+
+; workaround for implicit lengthof() in SDTG_LIST
+[SDTG_CONDLIST]
+name = ""resolution""
+type = SLE_INT
+length = 2
+flags = S
+guiflags = 0
+var = _cur_resolution
+def = ""640,480""
+str = STR_NULL
+proc = NULL
+from = 0
+to = SL_MAX_VERSION
+
+[SDTG_STR]
+name = ""screenshot_format""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _screenshot_format_name
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""savegame_format""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _savegame_format
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+name = ""rightclick_emulate""
+flags = S
+guiflags = 0
+var = _rightclick_emulate
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+ifdef = WITH_FREETYPE
+name = ""small_font""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _freetype.small_font
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+ifdef = WITH_FREETYPE
+name = ""medium_font""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _freetype.medium_font
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+ifdef = WITH_FREETYPE
+name = ""large_font""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _freetype.large_font
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+ifdef = WITH_FREETYPE
+name = ""small_size""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _freetype.small_size
+def = 8
+min = 0
+max = 72
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+ifdef = WITH_FREETYPE
+name = ""medium_size""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _freetype.medium_size
+def = 10
+min = 0
+max = 72
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+ifdef = WITH_FREETYPE
+name = ""large_size""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _freetype.large_size
+def = 16
+min = 0
+max = 72
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+ifdef = WITH_FREETYPE
+name = ""small_aa""
+flags = S
+guiflags = 0
+var = _freetype.small_aa
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+ifdef = WITH_FREETYPE
+name = ""medium_aa""
+flags = S
+guiflags = 0
+var = _freetype.medium_aa
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+ifdef = WITH_FREETYPE
+name = ""large_aa""
+flags = S
+guiflags = 0
+var = _freetype.large_aa
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""sprite_cache_size""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _sprite_cache_size
+def = 4
+min = 1
+max = 64
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""player_face""
+type = SLE_UINT32
+flags = S
+guiflags = 0
+var = _company_manager_face
+def = 0
+min = 0
+max = 0xFFFFFFFF
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""transparency_options""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _transparency_opt
+def = 0
+min = 0
+max = 0x1FF
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""transparency_locks""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _transparency_lock
+def = 0
+min = 0
+max = 0x1FF
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""invisibility_options""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _invisibility_opt
+def = 0
+min = 0
+max = 0xFF
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""keyboard""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _keyboard_opt[0]
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_STR]
+name = ""keyboard_caps""
+type = SLE_STRB
+flags = S
+guiflags = 0
+var = _keyboard_opt[1]
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTG_END]
+
diff --git a/src/table/music_settings.ini b/src/table/music_settings.ini
new file mode 100644
index 000000000..99b34f53e
--- /dev/null
+++ b/src/table/music_settings.ini
@@ -0,0 +1,91 @@
+[pre-amble]
+static const SettingDesc _music_settings[] = {
+[post-amble]
+};
+[templates]
+SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $proc),
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_LIST = SDT_LIST($base, $var, $type, $flags, $guiflags, $def, $str, $proc),
+SDT_END = SDT_END()
+
+[SDT_VAR]
+base = MusicFileSettings
+var = playlist
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 0
+min = 0
+max = 5
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = MusicFileSettings
+var = music_vol
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 127
+min = 0
+max = 127
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = MusicFileSettings
+var = effect_vol
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 127
+min = 0
+max = 127
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_LIST]
+base = MusicFileSettings
+var = custom_1
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDT_LIST]
+base = MusicFileSettings
+var = custom_2
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDT_BOOL]
+base = MusicFileSettings
+var = playing
+flags = S
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDT_BOOL]
+base = MusicFileSettings
+var = shuffle
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_END]
+
+
+};
diff --git a/src/table/settings.ini b/src/table/settings.ini
new file mode 100644
index 000000000..17f55533c
--- /dev/null
+++ b/src/table/settings.ini
@@ -0,0 +1,3701 @@
+[pre-amble]
+/* 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 doesn't need to be synched. Every client assigns the
+ * service_interval value to the v->service_interval, meaning that every client
+ * assigns his value. If the setting was company-based, that would mean that
+ * vehicles could decide on different moments that they are heading back to a
+ * service depot, causing desyncs on a massive scale. */
+const SettingDesc _settings[] = {
+[post-amble]
+};
+[templates]
+SDTG_CONDBOOL = SDTG_CONDBOOL($name, $flags, $guiflags, $var, $def, $str, $proc, $from, $to),
+SDTG_CONDVAR = SDTG_CONDVAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc, $from, $to),
+SDTC_BOOL = SDTC_BOOL( $var, $flags, $guiflags, $def, $str, $proc),
+SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $proc),
+SDTC_CONDBOOL = SDTC_CONDBOOL( $var, $from, $to, $flags, $guiflags, $def, $str, $proc),
+SDT_CONDBOOL = SDT_CONDBOOL($base, $var, $from, $to, $flags, $guiflags, $def, $str, $proc),
+SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $proc),
+SDT_CONDOMANY = SDT_CONDOMANY($base, $var, $type, $from, $to, $flags, $guiflags, $def, $max, $full, $str, $proc, $load),
+SDT_CONDSTR = SDT_CONDSTR($base, $var, $type, $from, $to, $flags, $guiflags, $def, $str, $proc),
+SDT_CONDVAR = SDT_CONDVAR($base, $var, $type, $from, $to, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDTC_STR = SDTC_STR( $var, $type, $flags, $guiflags, $def, $str, $proc),
+SDTC_VAR = SDTC_VAR( $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_CONDNULL = SDT_CONDNULL($length, $from, $to),
+SDT_END = SDT_END()
+
+
+
+; Saved settings variables.
+; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatability.
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.max_no_competitors
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = MAX_COMPANIES-1
+interval = 1
+str = STR_NULL
+proc = MaxNoAIsChange
+
+[SDT_CONDNULL]
+length = 1
+from = 97
+to = 109
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.number_towns
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NG
+def = 2
+min = 0
+max = 4
+interval = 1
+str = STR_NUM_VERY_LOW
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.industry_density
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NG
+def = ID_END-1
+min = 0
+max = ID_END-1
+interval = 1
+str = STR_FUNDING_ONLY
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.max_loan
+type = SLE_UINT32
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NS|CR
+def = 300000
+min = 100000
+max = 500000
+interval = 50000
+str = STR_NULL
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.initial_interest
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NS
+def = 2
+min = 2
+max = 4
+interval = 1
+str = STR_NULL
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.vehicle_costs
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NS
+def = 0
+min = 0
+max = 2
+interval = 1
+str = STR_SEA_LEVEL_LOW
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.competitor_speed
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2
+min = 0
+max = 4
+interval = 1
+str = STR_AI_SPEED_VERY_SLOW
+proc = DifficultyChange
+
+[SDT_CONDNULL]
+length = 1
+from = 97
+to = 109
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.vehicle_breakdowns
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1
+min = 0
+max = 2
+interval = 1
+str = STR_DISASTER_NONE
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.subsidy_multiplier
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2
+min = 0
+max = 3
+interval = 1
+str = STR_SUBSIDY_X1_5
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.construction_cost
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NS
+def = 0
+min = 0
+max = 2
+interval = 1
+str = STR_SEA_LEVEL_LOW
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.terrain_type
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NG
+def = 1
+min = 0
+max = 3
+interval = 1
+str = STR_TERRAIN_TYPE_VERY_FLAT
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.quantity_sea_lakes
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NG
+def = 0
+min = 0
+max = 4
+interval = 1
+str = STR_SEA_LEVEL_VERY_LOW
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.economy
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = 1
+interval = 1
+str = STR_ECONOMY_STEADY
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.line_reverse_mode
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = 1
+interval = 1
+str = STR_REVERSE_AT_END_OF_LINE_AND_AT_STATIONS
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.disasters
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = 1
+interval = 1
+str = STR_DISASTERS_OFF
+proc = DifficultyChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.town_council_tolerance
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = 2
+interval = 1
+str = STR_CITY_APPROVAL_PERMISSIVE
+proc = DifficultyNoiseChange
+
+[SDT_CONDVAR]
+base = GameSettings
+var = difficulty.diff_level
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 3
+min = 0
+max = 3
+interval = 0
+str = STR_NULL
+proc = DifficultyReset
+
+; 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_CONDOMANY]
+base = GameSettings
+var = game_creation.town_name
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 0
+max = 255
+full = _town_names
+str = STR_NULL
+proc = NULL
+load = NULL
+
+[SDT_CONDOMANY]
+base = GameSettings
+var = game_creation.landscape
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 0
+max = 3
+full = _climates
+str = STR_NULL
+proc = NULL
+load = ConvertLandscape
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.snow_line
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
+min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
+max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDOMANY]
+base = GameSettings
+var = vehicle.road_side
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 1
+max = 1
+full = _roadsides
+str = STR_NULL
+proc = CheckRoadSide
+load = NULL
+
+; Construction
+
+[SDT_BOOL]
+base = GameSettings
+var = construction.build_on_slopes
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_BUILDONSLOPES
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.command_pause_level
+type = SLE_UINT8
+from = 154
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS|NN
+def = 1
+min = 0
+max = 3
+interval = 1
+str = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.terraform_per_64k_frames
+type = SLE_UINT32
+from = 156
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 64 << 16
+min = 0
+max = 1 << 30
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.terraform_frame_burst
+type = SLE_UINT16
+from = 156
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 4096
+min = 0
+max = 1 << 30
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.clear_per_64k_frames
+type = SLE_UINT32
+from = 156
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 64 << 16
+min = 0
+max = 1 << 30
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.clear_frame_burst
+type = SLE_UINT16
+from = 156
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 4096
+min = 0
+max = 1 << 30
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = construction.autoslope
+from = 75
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_AUTOSLOPE
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = construction.extra_dynamite
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_EXTRADYNAMITE
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.max_bridge_length
+type = SLE_UINT16
+from = 159
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 64
+min = 1
+max = 2048
+interval = 1
+str = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.max_tunnel_length
+type = SLE_UINT16
+from = 159
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 64
+min = 1
+max = 2048
+interval = 1
+str = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH
+proc = NULL
+
+# construction.longbridges
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 158
+
+[SDT_BOOL]
+base = GameSettings
+var = construction.signal_side
+flags = N
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_SIGNALSIDE
+proc = RedrawScreen
+
+[SDT_BOOL]
+base = GameSettings
+var = station.never_expire_airports
+flags = 0
+guiflags = NN
+def = false
+str = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.town_layout
+type = SLE_UINT8
+from = 59
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = TL_ORIGINAL
+min = TL_BEGIN
+max = NUM_TLS - 1
+interval = 1
+str = STR_CONFIG_SETTING_TOWN_LAYOUT
+proc = TownFoundingChanged
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.allow_town_roads
+from = 113
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.found_town
+type = SLE_UINT8
+from = 128
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = TF_FORBIDDEN
+min = TF_BEGIN
+max = TF_END - 1
+interval = 1
+str = STR_CONFIG_SETTING_TOWN_FOUNDING
+proc = TownFoundingChanged
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.allow_town_level_crossings
+from = 143
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS
+proc = NULL
+
+; Vehicles
+
+[SDT_VAR]
+base = GameSettings
+var = vehicle.train_acceleration_model
+type = SLE_UINT8
+flags = 0
+guiflags = MS
+def = 0
+min = 0
+max = 1
+interval = 1
+str = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL
+proc = TrainAccelerationModelChanged
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.roadveh_acceleration_model
+type = SLE_UINT8
+from = 139
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 0
+min = 0
+max = 1
+interval = 1
+str = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL
+proc = RoadVehAccelerationModelChanged
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.train_slope_steepness
+type = SLE_UINT8
+from = 133
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 3
+min = 0
+max = 10
+interval = 1
+str = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
+proc = TrainSlopeSteepnessChanged
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.roadveh_slope_steepness
+type = SLE_UINT8
+from = 139
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 7
+min = 0
+max = 10
+interval = 1
+str = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS
+proc = RoadVehSlopeSteepnessChanged
+
+[SDT_BOOL]
+base = GameSettings
+var = pf.forbid_90_deg
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_FORBID_90_DEG
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.max_train_length
+type = SLE_UINT8
+from = 159
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 7
+min = 1
+max = 64
+interval = 1
+str = STR_CONFIG_SETTING_TRAIN_LENGTH
+proc = NULL
+
+; vehicle.mammoth_trains
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 158
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.smoke_amount
+type = SLE_UINT8
+from = 145
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_SMOKE_AMOUNT
+proc = NULL
+
+; order.gotodepot
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 158
+
+; path finder
+
+[SDT_BOOL]
+base = GameSettings
+var = pf.roadveh_queue
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.new_pathfinding_all
+from = 0
+to = 86
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.yapf.ship_use_yapf
+from = 28
+to = 86
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.yapf.road_use_yapf
+from = 28
+to = 86
+flags = 0
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.yapf.rail_use_yapf
+from = 28
+to = 86
+flags = 0
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.pathfinder_for_trains
+type = SLE_UINT8
+from = 87
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 1
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.pathfinder_for_roadvehs
+type = SLE_UINT8
+from = 87
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 1
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.pathfinder_for_ships
+type = SLE_UINT8
+from = 87
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = vehicle.never_expire_vehicles
+flags = 0
+guiflags = NN
+def = false
+str = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = vehicle.max_trains
+type = SLE_UINT16
+flags = 0
+guiflags = 0
+def = 500
+min = 0
+max = 5000
+interval = 0
+str = STR_CONFIG_SETTING_MAX_TRAINS
+proc = RedrawScreen
+
+[SDT_VAR]
+base = GameSettings
+var = vehicle.max_roadveh
+type = SLE_UINT16
+flags = 0
+guiflags = 0
+def = 500
+min = 0
+max = 5000
+interval = 0
+str = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
+proc = RedrawScreen
+
+[SDT_VAR]
+base = GameSettings
+var = vehicle.max_aircraft
+type = SLE_UINT16
+flags = 0
+guiflags = 0
+def = 200
+min = 0
+max = 5000
+interval = 0
+str = STR_CONFIG_SETTING_MAX_AIRCRAFT
+proc = RedrawScreen
+
+[SDT_VAR]
+base = GameSettings
+var = vehicle.max_ships
+type = SLE_UINT16
+flags = 0
+guiflags = 0
+def = 300
+min = 0
+max = 5000
+interval = 0
+str = STR_CONFIG_SETTING_MAX_SHIPS
+proc = RedrawScreen
+
+[SDTG_CONDBOOL]
+name = NULL
+flags = 0
+guiflags = NN
+var = _old_vds.servint_ispercent
+def = false
+str = STR_NULL
+proc = NULL
+from = 0
+to = 119
+
+[SDTG_CONDVAR]
+name = NULL
+type = SLE_UINT16
+flags = 0
+guiflags = D0
+var = _old_vds.servint_trains
+def = 150
+min = 5
+max = 800
+interval = 0
+str = STR_NULL
+proc = NULL
+from = 0
+to = 119
+
+[SDTG_CONDVAR]
+name = NULL
+type = SLE_UINT16
+flags = 0
+guiflags = D0
+var = _old_vds.servint_roadveh
+def = 150
+min = 5
+max = 800
+interval = 0
+str = STR_NULL
+proc = NULL
+from = 0
+to = 119
+
+[SDTG_CONDVAR]
+name = NULL
+type = SLE_UINT16
+flags = 0
+guiflags = D0
+var = _old_vds.servint_ships
+def = 360
+min = 5
+max = 800
+interval = 0
+str = STR_NULL
+proc = NULL
+from = 0
+to = 119
+
+[SDTG_CONDVAR]
+name = NULL
+type = SLE_UINT16
+flags = 0
+guiflags = D0
+var = _old_vds.servint_aircraft
+def = 150
+min = 5
+max = 800
+interval = 0
+str = STR_NULL
+proc = NULL
+from = 0
+to = 119
+
+[SDT_BOOL]
+base = GameSettings
+var = order.no_servicing_if_no_breakdowns
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_NOSERVICE
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = vehicle.wagon_speed_limits
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
+proc = UpdateConsists
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = vehicle.disable_elrails
+from = 38
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = false
+str = STR_CONFIG_SETTING_DISABLE_ELRAILS
+proc = SettingsDisableElrail
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.freight_trains
+type = SLE_UINT8
+from = 39
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 1
+min = 1
+max = 255
+interval = 1
+str = STR_CONFIG_SETTING_FREIGHT_TRAINS
+proc = UpdateConsists
+
+; order.timetabling
+[SDT_CONDNULL]
+length = 1
+from = 67
+to = 158
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.plane_speed
+type = SLE_UINT8
+from = 90
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = 4
+min = 1
+max = 4
+interval = 0
+str = STR_CONFIG_SETTING_PLANE_SPEED
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = vehicle.dynamic_engines
+from = 95
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_DYNAMIC_ENGINES
+proc = ChangeDynamicEngines
+
+[SDT_CONDVAR]
+base = GameSettings
+var = vehicle.plane_crashes
+type = SLE_UINT8
+from = 138
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_PLANE_CRASHES
+proc = NULL
+
+; station.join_stations
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 158
+
+[SDTC_CONDBOOL]
+var = gui.sg_full_load_any
+from = 22
+to = 92
+flags = 0
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = order.improved_load
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_IMPROVEDLOAD
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = order.selectgoods
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_SELECTGOODS
+proc = NULL
+
+[SDTC_CONDBOOL]
+var = gui.sg_new_nonstop
+from = 22
+to = 92
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+; station.nonuniform_stations
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 158
+
+[SDT_VAR]
+base = GameSettings
+var = station.station_spread
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 12
+min = 4
+max = 64
+interval = 0
+str = STR_CONFIG_SETTING_STATION_SPREAD
+proc = InvalidateStationBuildWindow
+
+[SDT_BOOL]
+base = GameSettings
+var = order.serviceathelipad
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_SERVICEATHELIPAD
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = station.modified_catchment
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_CATCHMENT
+proc = StationCatchmentChanged
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = order.gradual_loading
+from = 40
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = true
+str = STR_CONFIG_SETTING_GRADUAL_LOADING
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = construction.road_stop_on_town_road
+from = 47
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = construction.road_stop_on_competitor_road
+from = 114
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = station.adjacent_stations
+from = 62
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ADJACENT_STATIONS
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.station_noise_level
+from = 96
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NN
+def = false
+str = STR_CONFIG_SETTING_NOISE_LEVEL
+proc = InvalidateTownViewWindow
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = station.distant_join_stations
+from = 106
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS
+proc = DeleteSelectStationWindow
+
+##
+[SDT_BOOL]
+base = GameSettings
+var = economy.inflation
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_INFLATION
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = construction.raw_industry_construction
+type = SLE_UINT8
+flags = 0
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD
+proc = InvalidateBuildIndustryWindow
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.industry_platform
+type = SLE_UINT8
+from = 148
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1
+min = 0
+max = 4
+interval = 0
+str = STR_CONFIG_SETTING_INDUSTRY_PLATFORM
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = economy.multiple_industry_per_town
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_MULTIPINDTOWN
+proc = NULL
+
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 140
+
+[SDT_BOOL]
+base = GameSettings
+var = economy.bribe
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_BRIBE
+proc = RedrawTownAuthority
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.exclusive_rights
+from = 79
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
+proc = RedrawTownAuthority
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.fund_roads
+from = 160
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
+proc = RedrawTownAuthority
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.give_money
+from = 79
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.snow_line_height
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = DEF_SNOWLINE_HEIGHT
+min = MIN_SNOWLINE_HEIGHT
+max = MAX_SNOWLINE_HEIGHT
+interval = 0
+str = STR_CONFIG_SETTING_SNOWLINE_HEIGHT
+proc = NULL
+
+[SDT_CONDNULL]
+length = 4
+from = 0
+to = 143
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.starting_year
+type = SLE_INT32
+flags = 0
+guiflags = NC
+def = DEF_START_YEAR
+min = MIN_YEAR
+max = MAX_YEAR
+interval = 1
+str = STR_CONFIG_SETTING_STARTING_YEAR
+proc = NULL
+
+[SDT_CONDNULL]
+length = 4
+from = 0
+to = 104
+
+[SDT_BOOL]
+base = GameSettings
+var = economy.smooth_economy
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_SMOOTH_ECONOMY
+proc = InvalidateIndustryViewWindow
+
+[SDT_BOOL]
+base = GameSettings
+var = economy.allow_shares
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_ALLOW_SHARES
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.feeder_payment_share
+type = SLE_UINT8
+from = 134
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 75
+min = 0
+max = 100
+interval = 0
+str = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.town_growth_rate
+type = SLE_UINT8
+from = 54
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 0
+max = 4
+interval = 0
+str = STR_CONFIG_SETTING_TOWN_GROWTH
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.larger_towns
+type = SLE_UINT8
+from = 54
+to = SL_MAX_VERSION
+flags = 0
+guiflags = D0
+def = 4
+min = 0
+max = 255
+interval = 1
+str = STR_CONFIG_SETTING_LARGER_TOWNS
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.initial_city_size
+type = SLE_UINT8
+from = 56
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2
+min = 1
+max = 10
+interval = 1
+str = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = economy.mod_road_rebuild
+from = 77
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD
+proc = NULL
+
+; previously ai-new setting.
+[SDT_CONDNULL]
+length = 1
+from = 0
+to = 106
+
+[SDT_BOOL]
+base = GameSettings
+var = ai.ai_in_multiplayer
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = ai.ai_disable_veh_train
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_AI_BUILDS_TRAINS
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = ai.ai_disable_veh_roadveh
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = ai.ai_disable_veh_aircraft
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT
+proc = NULL
+
+[SDT_BOOL]
+base = GameSettings
+var = ai.ai_disable_veh_ship
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_AI_BUILDS_SHIPS
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = ai.ai_max_opcode_till_suspend
+type = SLE_UINT32
+from = 107
+to = SL_MAX_VERSION
+flags = 0
+guiflags = NG
+def = 10000
+min = 5000
+max = 250000
+interval = 2500
+str = STR_CONFIG_SETTING_AI_MAX_OPCODES
+proc = NULL
+
+##
+[SDT_VAR]
+base = GameSettings
+var = vehicle.extend_vehicle_life
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 0
+min = 0
+max = 100
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = economy.dist_local_authority
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 20
+min = 5
+max = 60
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.reverse_at_signals
+from = 159
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.wait_oneway_signal
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 15
+min = 2
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.wait_twoway_signal
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 41
+min = 2
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.town_noise_population[0]
+type = SLE_UINT16
+from = 96
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 800
+min = 200
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.town_noise_population[1]
+type = SLE_UINT16
+from = 96
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2000
+min = 400
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = economy.town_noise_population[2]
+type = SLE_UINT16
+from = 96
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 4000
+min = 800
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.wait_for_pbs_path
+type = SLE_UINT8
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 30
+min = 2
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.reserve_paths
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.path_backoff_interval
+type = SLE_UINT8
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 20
+min = 1
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_VAR]
+base = GameSettings
+var = pf.opf.pf_maxlength
+type = SLE_UINT16
+flags = 0
+guiflags = 0
+def = 4096
+min = 64
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.opf.pf_maxdepth
+type = SLE_UINT8
+flags = 0
+guiflags = 0
+def = 48
+min = 4
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_max_search_nodes
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = 10000
+min = 500
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_firstred_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 10 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_firstred_exit_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = (100 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_lastred_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 10 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_station_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 1 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_slope_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 1 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_curve_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 1 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_rail_depot_reverse_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 50 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.npf_rail_pbs_cross_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 3 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.npf_rail_pbs_signal_back_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 15 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_buoy_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 2 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_water_curve_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 1 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_road_curve_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 1 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = pf.npf.npf_crossing_penalty
+type = SLE_UINT
+flags = 0
+guiflags = 0
+def = ( 3 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.npf_road_drive_through_penalty
+type = SLE_UINT
+from = 47
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 8 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.npf_road_dt_occupied_penalty
+type = SLE_UINT
+from = 130
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 8 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.npf_road_bay_occupied_penalty
+type = SLE_UINT
+from = 130
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 15 * NPF_TILE_LENGTH)
+min = 0
+max = 100000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.npf.maximum_go_to_depot_penalty
+type = SLE_UINT
+from = 131
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = ( 20 * NPF_TILE_LENGTH)
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.yapf.disable_node_optimization
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.max_search_nodes
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 10000
+min = 500
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = pf.yapf.rail_firstred_twoway_eol
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_firstred_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 10 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_firstred_exit_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 100 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_lastred_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 10 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_lastred_exit_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 100 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_station_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 10 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_slope_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_curve45_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_curve90_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 6 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_depot_reverse_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 50 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_crossing_penalty
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 3 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_look_ahead_max_signals
+type = SLE_UINT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 10
+min = 1
+max = 100
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_look_ahead_signal_p0
+type = SLE_INT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 500
+min = -1000000
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_look_ahead_signal_p1
+type = SLE_INT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = -100
+min = -1000000
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_look_ahead_signal_p2
+type = SLE_INT
+from = 28
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 5
+min = -1000000
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_pbs_cross_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 3 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_pbs_station_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 8 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_pbs_signal_back_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 15 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_doubleslip_penalty
+type = SLE_UINT
+from = 100
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_longer_platform_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 8 * YAPF_TILE_LENGTH
+min = 0
+max = 20000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_longer_platform_per_tile_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0 * YAPF_TILE_LENGTH
+min = 0
+max = 20000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_shorter_platform_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 40 * YAPF_TILE_LENGTH
+min = 0
+max = 20000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.rail_shorter_platform_per_tile_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 0 * YAPF_TILE_LENGTH
+min = 0
+max = 20000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_slope_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 2 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_curve_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_crossing_penalty
+type = SLE_UINT
+from = 33
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 3 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_stop_penalty
+type = SLE_UINT
+from = 47
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 8 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_stop_occupied_penalty
+type = SLE_UINT
+from = 130
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 8 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.road_stop_bay_occupied_penalty
+type = SLE_UINT
+from = 130
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 15 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = pf.yapf.maximum_go_to_depot_penalty
+type = SLE_UINT
+from = 131
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 20 * YAPF_TILE_LENGTH
+min = 0
+max = 1000000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+##
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.land_generator
+type = SLE_UINT8
+from = 30
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 1
+min = 0
+max = 1
+interval = 0
+str = STR_CONFIG_SETTING_LAND_GENERATOR
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.oil_refinery_limit
+type = SLE_UINT8
+from = 30
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 32
+min = 12
+max = 48
+interval = 0
+str = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.tgen_smoothness
+type = SLE_UINT8
+from = 30
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 1
+min = 0
+max = 3
+interval = 0
+str = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.variety
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 0
+min = 0
+max = 5
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.generation_seed
+type = SLE_UINT32
+from = 30
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = GENERATE_NEW_SEED
+min = 0
+max = UINT32_MAX
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.tree_placer
+type = SLE_UINT8
+from = 30
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_TREE_PLACER
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.heightmap_rotation
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+min = 0
+max = 1
+interval = 0
+str = STR_CONFIG_SETTING_HEIGHTMAP_ROTATION
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.se_flat_world_height
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 1
+min = 0
+max = 15
+interval = 0
+str = STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT
+proc = NULL
+
+##
+[SDT_VAR]
+base = GameSettings
+var = game_creation.map_x
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 8
+min = MIN_MAP_SIZE_BITS
+max = MAX_MAP_SIZE_BITS
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_VAR]
+base = GameSettings
+var = game_creation.map_y
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 8
+min = MIN_MAP_SIZE_BITS
+max = MAX_MAP_SIZE_BITS
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDBOOL]
+base = GameSettings
+var = construction.freeform_edges
+from = 111
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES
+proc = CheckFreeformEdges
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.water_borders
+type = SLE_UINT8
+from = 111
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 15
+min = 0
+max = 16
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.custom_town_number
+type = SLE_UINT16
+from = 115
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1
+min = 1
+max = 5000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = construction.extra_tree_placement
+type = SLE_UINT8
+from = 132
+to = SL_MAX_VERSION
+flags = 0
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT
+proc = NULL
+
+[SDT_CONDVAR]
+base = GameSettings
+var = game_creation.custom_sea_level
+type = SLE_UINT8
+from = 149
+to = SL_MAX_VERSION
+flags = 0
+guiflags = 0
+def = 1
+min = 2
+max = 90
+interval = 0
+str = STR_NULL
+proc = NULL
+
+; locale
+
+[SDT_CONDOMANY]
+base = GameSettings
+var = locale.currency
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = N
+guiflags = 0
+def = 0
+max = CUSTOM_CURRENCY_ID
+full = _locale_currencies
+str = STR_NULL
+proc = RedrawScreen
+load = NULL
+
+[SDT_CONDOMANY]
+base = GameSettings
+var = locale.units
+type = SLE_UINT8
+from = 97
+to = SL_MAX_VERSION
+flags = N
+guiflags = 0
+def = 1
+max = 2
+full = _locale_units
+str = STR_NULL
+proc = RedrawScreen
+load = NULL
+
+[SDT_CONDSTR]
+base = GameSettings
+var = locale.digit_group_separator
+type = SLE_STRQ
+from = 118
+to = SL_MAX_VERSION
+flags = N
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = RedrawScreen
+
+[SDT_CONDSTR]
+base = GameSettings
+var = locale.digit_group_separator_currency
+type = SLE_STRQ
+from = 118
+to = SL_MAX_VERSION
+flags = N
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = RedrawScreen
+
+[SDT_CONDSTR]
+base = GameSettings
+var = locale.digit_decimal_separator
+type = SLE_STRQ
+from = 126
+to = SL_MAX_VERSION
+flags = N
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = RedrawScreen
+
+
+;***************************************************************************
+; Unsaved setting variables.
+
+[SDTC_OMANY]
+var = gui.autosave
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 1
+max = 4
+full = _autosave_interval
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.threaded_saves
+flags = S
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_OMANY]
+var = gui.date_format_in_default_names
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+max = 2
+full = _savegame_date
+str = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.show_finances
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_SHOWFINANCES
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.autoscroll
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_AUTOSCROLL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.reverse_scroll
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_REVERSE_SCROLLING
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.smooth_scroll
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_SMOOTH_SCROLLING
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.left_mouse_btn_scrolling
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.measure_tooltip
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_MEASURE_TOOLTIP
+proc = NULL
+
+[SDTC_VAR]
+var = gui.errmsg_duration
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 5
+min = 0
+max = 20
+interval = 0
+str = STR_CONFIG_SETTING_ERRMSG_DURATION
+proc = NULL
+
+[SDTC_VAR]
+var = gui.hover_delay
+type = SLE_UINT8
+flags = S
+guiflags = D0
+def = 2
+min = 1
+max = 5
+interval = 0
+str = STR_CONFIG_SETTING_HOVER_DELAY
+proc = NULL
+
+[SDTC_VAR]
+var = gui.toolbar_pos
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_TOOLBAR_POS
+proc = v_PositionMainToolbar
+
+[SDTC_VAR]
+var = gui.statusbar_pos
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_STATUSBAR_POS
+proc = v_PositionStatusbar
+
+[SDTC_VAR]
+var = gui.window_snap_radius
+type = SLE_UINT8
+flags = S
+guiflags = D0
+def = 10
+min = 1
+max = 32
+interval = 0
+str = STR_CONFIG_SETTING_SNAP_RADIUS
+proc = NULL
+
+[SDTC_VAR]
+var = gui.window_soft_limit
+type = SLE_UINT8
+flags = S
+guiflags = D0
+def = 20
+min = 5
+max = 255
+interval = 1
+str = STR_CONFIG_SETTING_SOFT_LIMIT
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.population_in_label
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_POPULATION_IN_LABEL
+proc = PopulationInLabelActive
+
+[SDTC_BOOL]
+var = gui.link_terraform_toolbar
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR
+proc = NULL
+
+[SDTC_VAR]
+var = gui.smallmap_land_colour
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR
+proc = RedrawSmallmap
+
+[SDTC_VAR]
+var = gui.liveries
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_LIVERIES
+proc = InvalidateCompanyLiveryWindow
+
+[SDTC_BOOL]
+var = gui.prefer_teamchat
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_PREFER_TEAMCHAT
+proc = NULL
+
+[SDTC_VAR]
+var = gui.scrollwheel_scrolling
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING
+proc = NULL
+
+[SDTC_VAR]
+var = gui.scrollwheel_multiplier
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 5
+min = 1
+max = 15
+interval = 1
+str = STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.pause_on_newgame
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME
+proc = NULL
+
+[SDTC_VAR]
+var = gui.advanced_vehicle_list
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.timetable_in_ticks
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_TIMETABLE_IN_TICKS
+proc = InvalidateVehTimetableWindow
+
+[SDTC_BOOL]
+var = gui.timetable_arrival_departure
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE
+proc = InvalidateVehTimetableWindow
+
+[SDTC_BOOL]
+var = gui.quick_goto
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_QUICKGOTO
+proc = NULL
+
+[SDTC_VAR]
+var = gui.loading_indicators
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_LOADING_INDICATORS
+proc = RedrawScreen
+
+[SDTC_VAR]
+var = gui.default_rail_type
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.enable_signal_gui
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI
+proc = CloseSignalGUI
+
+[SDTC_VAR]
+var = gui.coloured_news_year
+type = SLE_INT32
+flags = S
+guiflags = NC
+def = 2000
+min = MIN_YEAR
+max = MAX_YEAR
+interval = 1
+str = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR
+proc = NULL
+
+[SDTC_VAR]
+var = gui.drag_signals_density
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 4
+min = 1
+max = 20
+interval = 0
+str = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY
+proc = DragSignalsDensityChanged
+
+[SDTC_VAR]
+var = gui.semaphore_build_before
+type = SLE_INT32
+flags = S
+guiflags = NC
+def = 1950
+min = MIN_YEAR
+max = MAX_YEAR
+interval = 1
+str = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE
+proc = ResetSignalVariant
+
+[SDTC_BOOL]
+var = gui.vehicle_income_warn
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_WARN_INCOME_LESS
+proc = NULL
+
+[SDTC_VAR]
+var = gui.order_review_system
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_ORDER_REVIEW
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.lost_vehicle_warn
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_WARN_LOST_VEHICLE
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.disable_unsuitable_building
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING
+proc = RedrawScreen
+
+[SDTC_BOOL]
+var = gui.new_nonstop
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT
+proc = NULL
+
+[SDTC_VAR]
+var = gui.stop_location
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_STOP_LOCATION
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.keep_all_autosave
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.autosave_on_exit
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.max_num_autosaves
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 16
+min = 0
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.auto_euro
+flags = S
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.news_message_timeout
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 2
+min = 1
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.show_track_reservation
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION
+proc = RedrawScreen
+
+[SDTC_VAR]
+var = gui.default_signal_type
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 1
+min = 0
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE
+proc = NULL
+
+[SDTC_VAR]
+var = gui.cycle_signal_types
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 2
+min = 0
+max = 2
+interval = 1
+str = STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES
+proc = NULL
+
+[SDTC_VAR]
+var = gui.station_numtracks
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 1
+min = 1
+max = 7
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.station_platlength
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 5
+min = 1
+max = 7
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.station_dragdrop
+flags = S
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.station_show_coverage
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.persistent_buildingtools
+flags = S
+guiflags = 0
+def = true
+str = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.expenses_layout
+flags = S
+guiflags = 0
+def = false
+str = STR_CONFIG_SETTING_EXPENSES_LAYOUT
+proc = RedrawScreen
+
+
+; For the dedicated build we'll enable dates in logs by default.
+[SDTC_BOOL]
+ifdef = DEDICATED
+var = gui.show_date_in_logs
+flags = S
+guiflags = 0
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifndef = DEDICATED
+var = gui.show_date_in_logs
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.developer
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 1
+min = 0
+max = 2
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.newgrf_developer_tools
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = InvalidateNewGRFChangeWindows
+
+[SDTC_BOOL]
+var = gui.ai_developer_tools
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+var = gui.scenario_developer
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = InvalidateNewGRFChangeWindows
+
+[SDTC_BOOL]
+var = gui.newgrf_show_old_versions
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.console_backlog_timeout
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 100
+min = 10
+max = 65500
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+var = gui.console_backlog_length
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 100
+min = 10
+max = 65500
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = gui.network_chat_box_width
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 620
+min = 200
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = gui.network_chat_box_height
+type = SLE_UINT8
+flags = S
+guiflags = 0
+def = 25
+min = 5
+max = 255
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = gui.network_chat_timeout
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 20
+min = 1
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.sync_freq
+type = SLE_UINT16
+flags = C|S
+guiflags = NO
+def = 100
+min = 0
+max = 100
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.frame_freq
+type = SLE_UINT8
+flags = C|S
+guiflags = NO
+def = 0
+min = 0
+max = 100
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.commands_per_frame
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = 2
+min = 1
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.max_commands_in_queue
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = 16
+min = 1
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.bytes_per_frame
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = 8
+min = 1
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.bytes_per_frame_burst
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = 256
+min = 1
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.max_join_time
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = 500
+min = 0
+max = 32000
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.pause_on_join
+flags = S
+guiflags = NO
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.server_port
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = NETWORK_DEFAULT_PORT
+min = 0
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.server_admin_port
+type = SLE_UINT16
+flags = S
+guiflags = NO
+def = NETWORK_ADMIN_PORT
+min = 0
+max = 65535
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.server_admin_chat
+flags = S
+guiflags = NO
+def = true
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.server_advertise
+flags = S
+guiflags = NO
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.lan_internet
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 0
+min = 0
+max = 1
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.client_name
+type = SLE_STRB
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = UpdateClientName
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.server_password
+type = SLE_STRB
+flags = S
+guiflags = NO
+def = NULL
+str = STR_NULL
+proc = UpdateServerPassword
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.rcon_password
+type = SLE_STRB
+flags = S
+guiflags = NO
+def = NULL
+str = STR_NULL
+proc = UpdateRconPassword
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.admin_password
+type = SLE_STRB
+flags = S
+guiflags = NO
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.default_company_pass
+type = SLE_STRB
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.server_name
+type = SLE_STRB
+flags = S
+guiflags = NO
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.connect_to_ip
+type = SLE_STRB
+flags = S
+guiflags = 0
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.network_id
+type = SLE_STRB
+flags = S
+guiflags = NO
+def = NULL
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.autoclean_companies
+flags = S
+guiflags = NO
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.autoclean_unprotected
+type = SLE_UINT8
+flags = S
+guiflags = D0|NO
+def = 12
+min = 0
+max = 240
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.autoclean_protected
+type = SLE_UINT8
+flags = S
+guiflags = D0|NO
+def = 36
+min = 0
+max = 240
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.autoclean_novehicles
+type = SLE_UINT8
+flags = S
+guiflags = D0|NO
+def = 0
+min = 0
+max = 240
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.max_companies
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 15
+min = 1
+max = MAX_COMPANIES
+interval = 0
+str = STR_NULL
+proc = UpdateClientConfigValues
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.max_clients
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 25
+min = 2
+max = MAX_CLIENTS
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.max_spectators
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 15
+min = 0
+max = MAX_CLIENTS
+interval = 0
+str = STR_NULL
+proc = UpdateClientConfigValues
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.restart_game_year
+type = SLE_INT32
+flags = S
+guiflags = D0|NO|NC
+def = 0
+min = MIN_YEAR
+max = MAX_YEAR
+interval = 1
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.min_active_clients
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 0
+min = 0
+max = MAX_CLIENTS
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_OMANY]
+ifdef = ENABLE_NETWORK
+var = network.server_lang
+type = SLE_UINT8
+flags = S
+guiflags = NO
+def = 0
+max = 35
+full = _server_langs
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.reload_cfg
+flags = S
+guiflags = NO
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTC_STR]
+ifdef = ENABLE_NETWORK
+var = network.last_host
+type = SLE_STRB
+flags = S
+guiflags = 0
+def = """"
+str = STR_NULL
+proc = NULL
+
+[SDTC_VAR]
+ifdef = ENABLE_NETWORK
+var = network.last_port
+type = SLE_UINT16
+flags = S
+guiflags = 0
+def = 0
+min = 0
+max = UINT16_MAX
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTC_BOOL]
+ifdef = ENABLE_NETWORK
+var = network.no_http_content_downloads
+flags = S
+guiflags = 0
+def = false
+str = STR_NULL
+proc = NULL
+
+; Since the network code (CmdChangeSetting and friends) use the index in this array to decide
+; which setting the server is talking about all conditional compilation of this array must be at the
+; end. This isn't really the best solution, the settings the server can tell the client about should
+; either use a seperate array or some other form of identifier.
+
+;
+; We might need to emulate a right mouse button on mac
+[SDTC_VAR]
+ifdef = __APPLE__
+var = gui.right_mouse_btn_emulation
+type = SLE_UINT8
+flags = S
+guiflags = MS
+def = 0
+min = 0
+max = 2
+interval = 0
+str = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU
+proc = NULL
+
+[SDT_END]
+
diff --git a/src/table/win32_settings.ini b/src/table/win32_settings.ini
new file mode 100644
index 000000000..5f713ecff
--- /dev/null
+++ b/src/table/win32_settings.ini
@@ -0,0 +1,62 @@
+[pre-amble]
+/* win32_v.cpp only settings */
+#if defined(WIN32) && !defined(DEDICATED)
+extern bool _force_full_redraw, _window_maximize;
+extern uint _display_hz, _fullscreen_bpp;
+
+static const SettingDescGlobVarList _win32_settings[] = {
+[post-amble]
+};
+#endif /* WIN32 */
+[templates]
+SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $proc),
+SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc),
+SDTG_END = SDTG_END()
+
+
+[SDTG_VAR]
+name = ""display_hz""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _display_hz
+def = 0
+min = 0
+max = 120
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+name = ""force_full_redraw""
+flags = S
+guiflags = 0
+var = _force_full_redraw
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_VAR]
+name = ""fullscreen_bpp""
+type = SLE_UINT
+flags = S
+guiflags = 0
+var = _fullscreen_bpp
+def = 8
+min = 8
+max = 32
+interval = 0
+str = STR_NULL
+proc = NULL
+
+[SDTG_BOOL]
+name = ""window_maximize""
+flags = S
+guiflags = 0
+var = _window_maximize
+def = false
+str = STR_NULL
+proc = NULL
+
+[SDTG_END]
+