; 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 . ; ; Locale settings as stored in the main configuration file ("openttd.cfg") and ; in the savegame PATS chunk. These settings are not sync'd over the network. [pre-amble] static void SettingsValueVelocityUnit(const IntSettingDesc &sd, uint first_param, int32_t value); uint8_t _old_units; ///< Old units from old savegames static constexpr std::initializer_list _locale_currencies{"GBP", "USD", "EUR", "JPY", "ATS", "BEF", "CHF", "CZK", "DEM", "DKK", "ESP", "FIM", "FRF", "GRD", "HUF", "ISK", "ITL", "NLG", "NOK", "PLN", "RON", "RUR", "SIT", "SEK", "TRY", "SKK", "BRL", "EEK", "LTL", "KRW", "ZAR", "custom", "GEL", "IRR", "RUB", "MXN", "NTD", "CNY", "HKD", "INR", "IDR", "MYR", "LVL"}; static constexpr std::initializer_list _locale_units{"imperial", "metric", "si", "gameunits", "knots"}; static_assert(_locale_currencies.size() == CURRENCY_END); static const SettingVariant _locale_settings_table[] = { [post-amble] }; [templates] 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), [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 = 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 [SDT_OMANY] var = locale.currency type = SLE_UINT8 from = SLV_97 flags = SF_NO_NETWORK_SYNC 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 = SF_NOT_IN_CONFIG 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN 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 = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN def = 1 max = 2 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