summaryrefslogtreecommitdiff
path: root/src/table/gameopt_settings.ini
diff options
context:
space:
mode:
Diffstat (limited to 'src/table/gameopt_settings.ini')
-rw-r--r--src/table/gameopt_settings.ini190
1 files changed, 190 insertions, 0 deletions
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]
+