2011-03-03 21:04:17 +00:00
|
|
|
[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]
|
2011-03-05 10:47:49 +00:00
|
|
|
SDTG_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $proc, $from, $to),
|
|
|
|
SDT_NULL = SDT_NULL($length, $from, $to),
|
|
|
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $guiflags, $def, $max, $full, $str, $proc, $from, $to),
|
|
|
|
SDT_OMANY = SDT_OMANY($base, $var, $type, $flags, $guiflags, $def, $max, $full, $str, $proc, $from, $to, $load),
|
|
|
|
SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc, $from, $to),
|
|
|
|
SDT_END = SDT_END()
|
2011-03-03 21:04:17 +00:00
|
|
|
|
2011-03-05 10:12:03 +00:00
|
|
|
[defaults]
|
|
|
|
flags = 0
|
|
|
|
guiflags = 0
|
|
|
|
interval = 0
|
|
|
|
str = STR_NULL
|
|
|
|
proc = NULL
|
|
|
|
load = NULL
|
2011-03-05 10:20:49 +00:00
|
|
|
from = 0
|
|
|
|
to = SL_MAX_VERSION
|
2011-03-05 10:12:03 +00:00
|
|
|
|
|
|
|
|
2011-03-03 21:04:17 +00:00
|
|
|
|
|
|
|
[SDTG_GENERAL]
|
|
|
|
name = ""diff_custom""
|
|
|
|
sdt_cmd = SDT_INTLIST
|
|
|
|
sle_cmd = SL_ARR
|
|
|
|
type = SLE_FILE_I16 | SLE_VAR_U16
|
2011-03-05 11:34:31 +00:00
|
|
|
flags = SLF_NOT_IN_CONFIG
|
2011-03-03 21:04:17 +00:00
|
|
|
var = _old_diff_custom
|
|
|
|
length = 17
|
|
|
|
def = 0
|
|
|
|
min = 0
|
|
|
|
max = 0
|
|
|
|
full = NULL
|
|
|
|
to = 3
|
|
|
|
|
|
|
|
[SDTG_GENERAL]
|
|
|
|
name = ""diff_custom""
|
|
|
|
sdt_cmd = SDT_INTLIST
|
|
|
|
sle_cmd = SL_ARR
|
|
|
|
type = SLE_UINT16
|
2011-03-05 11:34:31 +00:00
|
|
|
flags = SLF_NOT_IN_CONFIG
|
2011-03-03 21:04:17 +00:00
|
|
|
var = _old_diff_custom
|
|
|
|
length = 18
|
|
|
|
def = 0
|
|
|
|
min = 0
|
|
|
|
max = 0
|
|
|
|
full = NULL
|
|
|
|
from = 4
|
|
|
|
|
|
|
|
##
|
|
|
|
[SDT_VAR]
|
|
|
|
base = GameSettings
|
|
|
|
var = difficulty.diff_level
|
|
|
|
type = SLE_UINT8
|
|
|
|
def = 3
|
|
|
|
min = 0
|
|
|
|
max = 3
|
|
|
|
|
|
|
|
[SDT_OMANY]
|
|
|
|
base = GameSettings
|
|
|
|
var = locale.currency
|
|
|
|
type = SLE_UINT8
|
2011-03-05 11:34:31 +00:00
|
|
|
flags = SLF_NO_NETWORK_SYNC
|
2011-03-03 21:04:17 +00:00
|
|
|
def = 0
|
|
|
|
max = CUSTOM_CURRENCY_ID
|
|
|
|
full = _locale_currencies
|
|
|
|
|
|
|
|
[SDT_OMANY]
|
|
|
|
base = GameSettings
|
|
|
|
var = locale.units
|
|
|
|
type = SLE_UINT8
|
2011-03-05 11:34:31 +00:00
|
|
|
flags = SLF_NO_NETWORK_SYNC
|
2011-03-03 21:04:17 +00:00
|
|
|
def = 1
|
|
|
|
max = 2
|
|
|
|
full = _locale_units
|
|
|
|
|
|
|
|
# There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow
|
|
|
|
# these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI.
|
|
|
|
[SDT_OMANY]
|
|
|
|
base = GameSettings
|
|
|
|
var = game_creation.town_name
|
|
|
|
type = SLE_UINT8
|
|
|
|
def = 0
|
|
|
|
max = 255
|
|
|
|
full = _town_names
|
|
|
|
|
|
|
|
[SDT_OMANY]
|
|
|
|
base = GameSettings
|
|
|
|
var = game_creation.landscape
|
|
|
|
type = SLE_UINT8
|
|
|
|
def = 0
|
|
|
|
max = 3
|
|
|
|
full = _climates
|
|
|
|
load = ConvertLandscape
|
|
|
|
|
|
|
|
[SDT_VAR]
|
|
|
|
base = GameSettings
|
|
|
|
var = game_creation.snow_line
|
|
|
|
type = SLE_UINT8
|
|
|
|
def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
|
|
|
|
min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
|
|
|
|
max = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
|
|
|
|
|
2011-03-05 10:47:49 +00:00
|
|
|
[SDT_NULL]
|
2011-03-03 21:04:17 +00:00
|
|
|
length = 1
|
|
|
|
to = 22
|
|
|
|
|
2011-03-05 10:47:49 +00:00
|
|
|
[SDTC_OMANY]
|
2011-03-03 21:04:17 +00:00
|
|
|
var = gui.autosave
|
|
|
|
type = SLE_UINT8
|
|
|
|
from = 23
|
2011-03-05 11:34:31 +00:00
|
|
|
flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
|
2011-03-03 21:04:17 +00:00
|
|
|
def = 1
|
|
|
|
max = 4
|
|
|
|
full = _autosave_interval
|
|
|
|
|
|
|
|
[SDT_OMANY]
|
|
|
|
base = GameSettings
|
|
|
|
var = vehicle.road_side
|
|
|
|
type = SLE_UINT8
|
|
|
|
def = 1
|
|
|
|
max = 1
|
|
|
|
full = _roadsides
|
|
|
|
|
|
|
|
[SDT_END]
|
|
|
|
|