diff options
Diffstat (limited to 'src/table/gameopt_settings.ini')
-rw-r--r-- | src/table/gameopt_settings.ini | 190 |
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] + |