Files
openttd-cmclient/src/table/settings/locale_settings.ini
2025-10-24 16:25:16 -04:00

200 lines
7.1 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/>.
;
; Locale settings as stored in the main configuration file ("openttd.cfg") and
; in the savegame PATS chunk. These settings are not synced over the network.
[pre-amble]
static std::pair<StringParameter, StringParameter> SettingsValueVelocityUnit(const IntSettingDesc &sd, int32_t value);
uint8_t _old_units; ///< Old units from old savegames
static constexpr std::initializer_list<std::string_view> _locale_currencies{"GBP"sv, "USD"sv, "EUR"sv, "JPY"sv, "ATS"sv, "BEF"sv, "CHF"sv, "CZK"sv, "DEM"sv, "DKK"sv, "ESP"sv, "FIM"sv, "FRF"sv, "GRD"sv, "HUF"sv, "ISK"sv, "ITL"sv, "NLG"sv, "NOK"sv, "PLN"sv, "RON"sv, "RUR"sv, "SIT"sv, "SEK"sv, "TRY"sv, "SKK"sv, "BRL"sv, "EEK"sv, "LTL"sv, "KRW"sv, "ZAR"sv, "custom"sv, "GEL"sv, "IRR"sv, "RUB"sv, "MXN"sv, "NTD"sv, "CNY"sv, "HKD"sv, "INR"sv, "IDR"sv, "MYR"sv, "LVL"sv, "PTE"sv, "UAH"sv, "VND"sv};
static constexpr std::initializer_list<std::string_view> _locale_units{"imperial"sv, "metric"sv, "si"sv, "gameunits"sv, "knots"sv};
static_assert(_locale_currencies.size() == CURRENCY_END);
static const SettingVariant _locale_settings_table[] = {
[post-amble]
};
[templates]
SDTG_OMANY = SDTG_OMANY($name, $type, SettingFlags({$flags}), $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, SettingFlags({$flags}), $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, SettingFlags({$flags}), $def, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
[validation]
SDTG_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");
[defaults]
flags =
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
def_cb = nullptr
load = nullptr
from = SL_MIN_VERSION
to = SL_MAX_VERSION
cat = SC_ADVANCED
extra = 0
startup = false
[SDT_OMANY]
var = locale.currency
type = SLE_UINT8
from = SLV_97
flags = SettingFlag::NoNetworkSync
def = 0
max = CURRENCY_END - 1
full = _locale_currencies
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
[SDTG_OMANY]
name = ""units""
var = _old_units
type = SLE_UINT8
from = SLV_97
to = SLV_184
flags = SettingFlag::NotInConfig
def = 1
max = 2
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
[SDT_OMANY]
var = locale.units_velocity
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 4
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT
val_cb = SettingsValueVelocityUnit
[SDT_OMANY]
var = locale.units_velocity_nautical
type = SLE_UINT8
from = SLV_VELOCITY_NAUTICAL
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 4
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT
val_cb = SettingsValueVelocityUnit
[SDT_OMANY]
var = locale.units_power
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL
[SDT_OMANY]
var = locale.units_weight
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL
[SDT_OMANY]
var = locale.units_volume
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 2
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL
[SDT_OMANY]
var = locale.units_force
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 2
max = 2
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL
[SDT_OMANY]
var = locale.units_height
type = SLE_UINT8
from = SLV_184
flags = SettingFlag::NoNetworkSync, SettingFlag::GuiDropdown
def = 1
max = 3
full = _locale_units
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL
[SDT_SSTR]
var = locale.digit_group_separator
type = SLE_STRQ
from = SLV_118
flags = SettingFlag::NoNetworkSync
def = """"
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
[SDT_SSTR]
var = locale.digit_group_separator_currency
type = SLE_STRQ
from = SLV_118
flags = SettingFlag::NoNetworkSync
def = """"
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC
[SDT_SSTR]
var = locale.digit_decimal_separator
type = SLE_STRQ
from = SLV_126
flags = SettingFlag::NoNetworkSync
def = """"
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_BASIC