; 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 SettingTable _misc_settings{
[post-amble]
};
[templates]
SDTG_LIST = SDTG_LIST($name, $type, $flags, $guiflags, $var, $def, $length, $from, $to, $cat, $extra, $startup),
SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTG_SSTR = SDTG_SSTR($name, $type, $flags, $guiflags, $var, $def, 0, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup),
SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $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 = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SF_NONE
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