; 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 . ; ; Various of settings that are stored in global variables. They are all ; located under "misc" in the configuration files. [pre-amble] extern std::string _config_language_file; static std::initializer_list _support8bppmodes{"no", "system" , "hardware"}; static std::initializer_list _display_opt_modes{"SHOW_TOWN_NAMES", "SHOW_STATION_NAMES", "SHOW_SIGNS", "FULL_ANIMATION", "", "FULL_DETAIL", "WAYPOINTS", "SHOW_COMPETITOR_SIGNS"}; #ifdef WITH_COCOA extern bool _allow_hidpi_window; #endif #ifndef WITH_COCOA #define WITHOUT_COCOA #endif static const SettingVariant _misc_settings_table[] = { [post-amble] }; [templates] SDTG_LIST = SDTG_LIST($name, $type, $flags, $var, $def, $length, $from, $to, $cat, $extra, $startup), SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_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"); [defaults] flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL pre_cb = nullptr post_cb = nullptr load = nullptr from = SL_MIN_VERSION to = SL_MAX_VERSION cat = SC_ADVANCED extra = 0 startup = true [SDTG_MMANY] name = ""display_opt"" type = SLE_UINT8 var = _display_opt def = (1 << DO_SHOW_TOWN_NAMES | 1 << DO_SHOW_STATION_NAMES | 1 << DO_SHOW_SIGNS | 1 << DO_FULL_ANIMATION | 1 << DO_FULL_DETAIL | 1 << DO_SHOW_WAYPOINT_NAMES | 1 << DO_SHOW_COMPETITOR_SIGNS) full = _display_opt_modes [SDTG_BOOL] name = ""fullscreen"" var = _fullscreen def = false cat = SC_BASIC [SDTG_BOOL] ifdef = WITH_COCOA name = ""video_hw_accel"" var = _video_hw_accel def = false cat = SC_BASIC [SDTG_BOOL] ifdef = WITHOUT_COCOA name = ""video_hw_accel"" var = _video_hw_accel def = true cat = SC_BASIC [SDTG_BOOL] name = ""video_vsync"" var = _video_vsync def = false cat = SC_BASIC [SDTG_OMANY] name = ""support8bpp"" type = SLE_UINT8 var = _support8bpp def = 0 max = 2 full = _support8bppmodes cat = SC_BASIC [SDTG_SSTR] name = ""graphicsset"" type = SLE_STRQ var = BaseGraphics::ini_set def = nullptr cat = SC_BASIC [SDTG_SSTR] name = ""soundsset"" type = SLE_STRQ var = BaseSounds::ini_set def = nullptr cat = SC_BASIC [SDTG_SSTR] name = ""musicset"" type = SLE_STRQ var = BaseMusic::ini_set def = nullptr cat = SC_BASIC [SDTG_SSTR] name = ""videodriver"" type = SLE_STRQ var = _ini_videodriver def = nullptr cat = SC_EXPERT [SDTG_SSTR] name = ""musicdriver"" type = SLE_STRQ var = _ini_musicdriver def = nullptr cat = SC_EXPERT [SDTG_SSTR] name = ""sounddriver"" type = SLE_STRQ var = _ini_sounddriver def = nullptr cat = SC_EXPERT [SDTG_SSTR] name = ""blitter"" type = SLE_STRQ var = _ini_blitter def = nullptr [SDTG_SSTR] name = ""language"" type = SLE_STR var = _config_language_file def = nullptr cat = SC_BASIC ; workaround for implicit lengthof() in SDTG_LIST [SDTG_LIST] name = ""resolution"" type = SLE_INT length = 2 var = _cur_resolution def = ""0,0"" cat = SC_BASIC [SDTG_SSTR] name = ""screenshot_format"" type = SLE_STR var = _screenshot_format_name def = nullptr cat = SC_EXPERT [SDTG_SSTR] name = ""savegame_format"" type = SLE_STR var = _savegame_format def = nullptr cat = SC_EXPERT [SDTG_BOOL] name = ""rightclick_emulate"" var = _rightclick_emulate def = false [SDTG_SSTR] ifdef = HAS_TRUETYPE_FONT name = ""small_font"" type = SLE_STR var = _freetype.small.font def = nullptr [SDTG_SSTR] ifdef = HAS_TRUETYPE_FONT name = ""medium_font"" type = SLE_STR var = _freetype.medium.font def = nullptr [SDTG_SSTR] ifdef = HAS_TRUETYPE_FONT name = ""large_font"" type = SLE_STR var = _freetype.large.font def = nullptr [SDTG_SSTR] ifdef = HAS_TRUETYPE_FONT name = ""mono_font"" type = SLE_STR var = _freetype.mono.font def = nullptr [SDTG_VAR] ifdef = HAS_TRUETYPE_FONT name = ""small_size"" type = SLE_UINT var = _freetype.small.size def = 0 min = 0 max = 72 [SDTG_VAR] ifdef = HAS_TRUETYPE_FONT name = ""medium_size"" type = SLE_UINT var = _freetype.medium.size def = 0 min = 0 max = 72 [SDTG_VAR] ifdef = HAS_TRUETYPE_FONT name = ""large_size"" type = SLE_UINT var = _freetype.large.size def = 0 min = 0 max = 72 [SDTG_VAR] ifdef = HAS_TRUETYPE_FONT name = ""mono_size"" type = SLE_UINT var = _freetype.mono.size def = 0 min = 0 max = 72 [SDTG_BOOL] ifdef = HAS_TRUETYPE_FONT name = ""small_aa"" var = _freetype.small.aa def = false [SDTG_BOOL] ifdef = HAS_TRUETYPE_FONT name = ""medium_aa"" var = _freetype.medium.aa def = false [SDTG_BOOL] ifdef = HAS_TRUETYPE_FONT name = ""large_aa"" var = _freetype.large.aa def = false [SDTG_BOOL] ifdef = HAS_TRUETYPE_FONT name = ""mono_aa"" var = _freetype.mono.aa def = false [SDTG_VAR] name = ""sprite_cache_size_px"" type = SLE_UINT var = _sprite_cache_size def = 128 min = 1 max = 512 cat = SC_EXPERT [SDTG_VAR] name = ""player_face"" type = SLE_UINT32 var = _company_manager_face def = 0 min = 0 max = 0xFFFFFFFF cat = SC_BASIC [SDTG_VAR] name = ""transparency_options"" type = SLE_UINT var = _transparency_opt def = 0 min = 0 max = 0x1FF cat = SC_BASIC [SDTG_VAR] name = ""transparency_locks"" type = SLE_UINT var = _transparency_lock def = 0 min = 0 max = 0x1FF cat = SC_BASIC [SDTG_VAR] name = ""invisibility_options"" type = SLE_UINT var = _invisibility_opt def = 0 min = 0 max = 0xFF cat = SC_BASIC [SDTG_SSTR] name = ""keyboard"" type = SLE_STR var = _keyboard_opt[0] def = nullptr cat = SC_EXPERT [SDTG_SSTR] name = ""keyboard_caps"" type = SLE_STR var = _keyboard_opt[1] def = nullptr cat = SC_EXPERT [SDTG_VAR] name = ""last_newgrf_count"" type = SLE_UINT32 var = _settings_client.gui.last_newgrf_count def = 100 min = 0 max = UINT32_MAX cat = SC_EXPERT [SDTG_VAR] name = ""gui_zoom"" type = SLE_INT8 var = _gui_zoom_cfg def = ZOOM_LVL_CFG_AUTO min = ZOOM_LVL_CFG_AUTO max = ZOOM_LVL_OUT_4X cat = SC_BASIC [SDTG_VAR] name = ""font_zoom"" type = SLE_INT8 var = _font_zoom_cfg def = ZOOM_LVL_CFG_AUTO min = ZOOM_LVL_CFG_AUTO max = ZOOM_LVL_OUT_4X cat = SC_BASIC [SDTG_BOOL] ifdef = WITH_COCOA name = ""allow_hidpi"" var = _allow_hidpi_window def = true