File diff r17411:cb019658e5d5 → r17412:1ff79f20974f
src/table/gameopt_settings.ini
Show inline comments
 
new file 100644
 
[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]