mirror of https://github.com/OpenTTD/OpenTTD.git
155 lines
6.2 KiB
INI
155 lines
6.2 KiB
INI
; This file is part of OpenTTD.
|
|
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
;
|
|
|
|
; Settings that used to be saved in the savegame under the OPTS chunk and
|
|
; under "gameopts" in the configuration file, but no longer are. Most of these
|
|
; are now moved to other places.
|
|
;
|
|
; For backwards compatability, this file dictates how both were saved. When
|
|
; a configuration files contains these entries, they are read once, and removed
|
|
; from the configuration file afterwards. Those that are still supported will
|
|
; be saved in their new place.
|
|
|
|
[pre-amble]
|
|
static constexpr std::initializer_list<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 constexpr std::initializer_list<const char*> _climates{"temperate", "arctic", "tropic", "toyland"};
|
|
|
|
static const SettingVariant _old_gameopt_settings_table[] = {
|
|
/* 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 SlCopy() hack
|
|
* for savegames version 0 - though it is an array, it has to go through the byteswap process */
|
|
[post-amble]
|
|
};
|
|
[templates]
|
|
SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
|
|
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
|
SDT_NULL = SDT_NULL( $length, $from, $to),
|
|
SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
|
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
|
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $load, $cat, $extra, $startup),
|
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $cat, $extra, $startup),
|
|
|
|
[validation]
|
|
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
|
SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
|
SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
|
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
|
|
|
[defaults]
|
|
flags = SF_NONE
|
|
interval = 0
|
|
str = STR_NULL
|
|
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|
strval = STR_NULL
|
|
pre_cb = nullptr
|
|
post_cb = nullptr
|
|
str_cb = nullptr
|
|
help_cb = nullptr
|
|
val_cb = nullptr
|
|
load = nullptr
|
|
from = SL_MIN_VERSION
|
|
to = SL_MAX_VERSION
|
|
cat = SC_ADVANCED
|
|
extra = 0
|
|
startup = false
|
|
|
|
|
|
|
|
[SDTG_LIST]
|
|
name = ""diff_custom""
|
|
sdt_cmd = SDT_INTLIST
|
|
sle_cmd = SL_ARR
|
|
type = SLE_FILE_I16 | SLE_VAR_U16
|
|
flags = SF_NOT_IN_CONFIG
|
|
var = _old_diff_custom
|
|
length = 17
|
|
def = nullptr
|
|
to = SLV_4
|
|
|
|
[SDTG_LIST]
|
|
name = ""diff_custom""
|
|
sdt_cmd = SDT_INTLIST
|
|
sle_cmd = SL_ARR
|
|
type = SLE_UINT16
|
|
flags = SF_NOT_IN_CONFIG
|
|
var = _old_diff_custom
|
|
length = 18
|
|
def = nullptr
|
|
full = nullptr
|
|
from = SLV_4
|
|
|
|
[SDTG_VAR]
|
|
name = ""diff_level""
|
|
var = _old_diff_level
|
|
type = SLE_UINT8
|
|
flags = SF_NOT_IN_CONFIG
|
|
def = SP_CUSTOM
|
|
min = SP_EASY
|
|
max = SP_CUSTOM
|
|
cat = SC_BASIC
|
|
|
|
[SDT_OMANY]
|
|
var = locale.currency
|
|
type = SLE_UINT8
|
|
flags = SF_NO_NETWORK_SYNC
|
|
def = 0
|
|
max = CURRENCY_END - 1
|
|
full = _locale_currencies
|
|
cat = SC_BASIC
|
|
|
|
[SDTG_OMANY]
|
|
name = ""units""
|
|
var = _old_units
|
|
type = SLE_UINT8
|
|
flags = SF_NOT_IN_CONFIG
|
|
def = 1
|
|
max = 2
|
|
full = _locale_units
|
|
cat = SC_BASIC
|
|
|
|
# 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]
|
|
var = game_creation.town_name
|
|
type = SLE_UINT8
|
|
def = 0
|
|
max = 255
|
|
full = _town_names
|
|
cat = SC_BASIC
|
|
|
|
[SDT_OMANY]
|
|
var = game_creation.landscape
|
|
type = SLE_UINT8
|
|
def = 0
|
|
max = 3
|
|
full = _climates
|
|
load = ConvertLandscape
|
|
cat = SC_BASIC
|
|
|
|
[SDT_VAR]
|
|
var = game_creation.snow_line_height
|
|
type = SLE_UINT8
|
|
def = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
|
|
min = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
|
|
# "max" used to be MAX_SNOWLINE_HEIGHT * TILE_HEIGHT, but this would overflow the storage.
|
|
max = UINT8_MAX
|
|
to = SLV_22
|
|
|
|
[SDT_OMANY]
|
|
var = vehicle.road_side
|
|
type = SLE_UINT8
|
|
def = 1
|
|
max = 1
|
|
full = _roadsides
|
|
cat = SC_BASIC
|