; 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/>.
;

[pre-amble]
/* Begin - Callback Functions for the various settings */
static bool v_PositionMainToolbar(int32 p1);
static bool v_PositionStatusbar(int32 p1);
static bool PopulationInLabelActive(int32 p1);
static bool RedrawScreen(int32 p1);
static bool RedrawSmallmap(int32 p1);
static bool StationSpreadChanged(int32 p1);
static bool InvalidateBuildIndustryWindow(int32 p1);
static bool CloseSignalGUI(int32 p1);
static bool InvalidateTownViewWindow(int32 p1);
static bool DeleteSelectStationWindow(int32 p1);
static bool UpdateConsists(int32 p1);
static bool TrainAccelerationModelChanged(int32 p1);
static bool RoadVehAccelerationModelChanged(int32 p1);
static bool TrainSlopeSteepnessChanged(int32 p1);
static bool RoadVehSlopeSteepnessChanged(int32 p1);
static bool DragSignalsDensityChanged(int32);
static bool TownFoundingChanged(int32 p1);
static bool DifficultyNoiseChange(int32 i);
static bool MaxNoAIsChange(int32 i);
static bool CheckRoadSide(int p1);
static bool ChangeMaxHeightLevel(int32 p1);
static bool CheckFreeformEdges(int32 p1);
static bool ChangeDynamicEngines(int32 p1);
static bool StationCatchmentChanged(int32 p1);
static bool InvalidateVehTimetableWindow(int32 p1);
static bool InvalidateCompanyLiveryWindow(int32 p1);
static bool InvalidateNewGRFChangeWindows(int32 p1);
static bool InvalidateIndustryViewWindow(int32 p1);
static bool InvalidateAISettingsWindow(int32 p1);
static bool RedrawTownAuthority(int32 p1);
static bool InvalidateCompanyInfrastructureWindow(int32 p1);
static bool InvalidateCompanyWindow(int32 p1);
static bool ZoomMinMaxChanged(int32 p1);
static bool SpriteZoomMinChanged(int32 p1);
static bool MaxVehiclesChanged(int32 p1);
static bool InvalidateShipPathCache(int32 p1);

static bool UpdateClientName(int32 p1);
static bool UpdateServerPassword(int32 p1);
static bool UpdateRconPassword(int32 p1);
static bool UpdateClientConfigValues(int32 p1);

/* End - Callback Functions for the various settings */

/* Some settings do not need to be synchronised when playing in multiplayer.
 * These include for example the GUI settings and will not be saved with the
 * savegame.
 * It is also a bit tricky since you would think that service_interval
 * for example doesn't need to be synched. Every client assigns the
 * service_interval value to the v->service_interval, meaning that every client
 * assigns his value. If the setting was company-based, that would mean that
 * vehicles could decide on different moments that they are heading back to a
 * service depot, causing desyncs on a massive scale. */
const SettingDesc _settings[] = {
[post-amble]
};
[templates]
SDTG_BOOL  =  SDTG_BOOL($name,              $flags, $guiflags, $var, $def,                        $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTG_VAR   =   SDTG_VAR($name,       $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTG_OMANY = SDTG_OMANY($name,       $type, $flags, $guiflags, $var, $def,       $max, $full,     $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTC_BOOL  =  SDTC_BOOL(       $var,        $flags, $guiflags, $def,                              $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTC_LIST  =  SDTC_LIST(       $var, $type, $flags, $guiflags, $def,                              $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTC_OMANY = SDTC_OMANY(       $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTC_STR   =   SDTC_STR(       $var, $type, $flags, $guiflags, $def,                              $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDTC_VAR   =   SDTC_VAR(       $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDT_BOOL   =   SDT_BOOL($base, $var,        $flags, $guiflags, $def,                              $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDT_OMANY  =  SDT_OMANY($base, $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strhelp, $strval, $proc, $from, $to, $load, $cat, $extra, $startup),
SDT_STR    =    SDT_STR($base, $var, $type, $flags, $guiflags, $def,                              $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDT_VAR    =    SDT_VAR($base, $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to,        $cat, $extra, $startup),
SDT_NULL   =   SDT_NULL($length, $from, $to),
SDT_END    = SDT_END()

[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");
SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for $base.$var exceeds storage size");
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for $base.$var exceeds storage size");

[defaults]
flags    = 0
guiflags = SGF_NONE
interval = 0
str      = STR_NULL
strhelp  = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
strval   = STR_NULL
proc     = nullptr
load     = nullptr
from     = SL_MIN_VERSION
to       = SL_MAX_VERSION
cat      = SC_ADVANCED
extra    = 0
startup  = false



; Saved settings variables.
; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatibility.
[SDT_VAR]
base     = GameSettings
var      = difficulty.max_no_competitors
type     = SLE_UINT8
from     = SLV_97
def      = 0
min      = 0
max      = MAX_COMPANIES - 1
interval = 1
proc     = MaxNoAIsChange
cat      = SC_BASIC

[SDT_NULL]
length   = 1
from     = SLV_97
to       = SLV_110

[SDT_VAR]
base     = GameSettings
var      = difficulty.number_towns
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY
def      = 2
min      = 0
max      = 4
interval = 1
strval   = STR_NUM_VERY_LOW
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.industry_density
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING
def      = ID_END - 1
min      = 0
max      = ID_END - 1
interval = 1
str      = STR_CONFIG_SETTING_INDUSTRY_DENSITY
strhelp  = STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT
strval   = STR_FUNDING_ONLY
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.max_loan
type     = SLE_UINT32
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY
def      = 300000
min      = 0
max      = 2000000000
interval = 50000
str      = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN
strhelp  = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT
strval   = STR_JUST_CURRENCY_LONG
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.initial_interest
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO
def      = 2
min      = 2
max      = 4
interval = 1
str      = STR_CONFIG_SETTING_INTEREST_RATE
strhelp  = STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE

[SDT_VAR]
base     = GameSettings
var      = difficulty.vehicle_costs
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_RUNNING_COSTS
strhelp  = STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT
strval   = STR_SEA_LEVEL_LOW
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.competitor_speed
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 4
interval = 1
str      = STR_CONFIG_SETTING_CONSTRUCTION_SPEED
strhelp  = STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT
strval   = STR_AI_SPEED_VERY_SLOW
cat      = SC_BASIC

[SDT_NULL]
length   = 1
from     = SLV_97
to       = SLV_110

[SDT_VAR]
base     = GameSettings
var      = difficulty.vehicle_breakdowns
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS
strhelp  = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT
strval   = STR_DISASTER_NONE
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.subsidy_multiplier
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 3
interval = 1
str      = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER
strhelp  = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT
strval   = STR_SUBSIDY_X1_5

[SDT_VAR]
base     = GameSettings
var      = difficulty.construction_cost
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_CONSTRUCTION_COSTS
strhelp  = STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT
strval   = STR_SEA_LEVEL_LOW
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.terrain_type
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 1
min      = 0
max      = 5
interval = 1
str      = STR_CONFIG_SETTING_TERRAIN_TYPE
strhelp  = STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT
strval   = STR_TERRAIN_TYPE_VERY_FLAT
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.quantity_sea_lakes
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NEWGAME_ONLY
def      = 0
min      = 0
max      = 4
interval = 1
strval   = STR_SEA_LEVEL_VERY_LOW
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = difficulty.economy
from     = SLV_97
def      = false
str      = STR_CONFIG_SETTING_RECESSIONS
strhelp  = STR_CONFIG_SETTING_RECESSIONS_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = difficulty.line_reverse_mode
from     = SLV_97
def      = false
str      = STR_CONFIG_SETTING_TRAIN_REVERSING
strhelp  = STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = difficulty.disasters
from     = SLV_97
def      = false
str      = STR_CONFIG_SETTING_DISASTERS
strhelp  = STR_CONFIG_SETTING_DISASTERS_HELPTEXT
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = difficulty.town_council_tolerance
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_CITY_APPROVAL
strhelp  = STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT
strval   = STR_CITY_APPROVAL_PERMISSIVE
proc     = DifficultyNoiseChange

[SDTG_VAR]
name     = ""diff_level""
var      = _old_diff_level
type     = SLE_UINT8
flags    = SLF_NOT_IN_CONFIG
from     = SLV_97
to       = SLV_178
def      = 3
min      = 0
max      = 3
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]
base     = GameSettings
var      = game_creation.town_name
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_NO_NETWORK
def      = 0
max      = 255
full     = _town_names
cat      = SC_BASIC

[SDT_OMANY]
base     = GameSettings
var      = game_creation.landscape
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 0
max      = 3
full     = _climates
load     = ConvertLandscape
str      = STR_CONFIG_SETTING_LANDSCAPE
strhelp  = STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT
strval   = STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE
cat      = SC_BASIC

; Snow line (or snow_line_height * TILE_HEIGHT)
[SDT_NULL]
length   = 1
from     = SLV_97
to       = SLV_164

[SDT_OMANY]
base     = GameSettings
var      = vehicle.road_side
type     = SLE_UINT8
from     = SLV_97
guiflags = SGF_MULTISTRING | SGF_NO_NETWORK
def      = 1
max      = 1
full     = _roadsides
str      = STR_CONFIG_SETTING_ROAD_SIDE
strhelp  = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT
strval   = STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT
proc     = CheckRoadSide
cat      = SC_BASIC

; Construction

[SDT_VAR]
base     = GameSettings
var      = construction.map_height_limit
type     = SLE_UINT8
from     = SLV_194
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_0ISDISABLED
def      = 0
min      = MIN_MAP_HEIGHT_LIMIT
max      = MAX_MAP_HEIGHT_LIMIT
interval = 1
str      = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT
strhelp  = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT
strval   = STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE
proc     = ChangeMaxHeightLevel
cat      = SC_ADVANCED

[SDT_VAR]
base     = GameSettings
var      = game_creation.heightmap_height
type     = SLE_UINT8
from     = SLV_MAPGEN_SETTINGS_REVAMP
guiflags = SGF_NEWGAME_ONLY
def      = MAP_HEIGHT_LIMIT_AUTO_MINIMUM
min      = MIN_HEIGHTMAP_HEIGHT
max      = MAX_MAP_HEIGHT_LIMIT
interval = 1

[SDT_BOOL]
base     = GameSettings
var      = construction.build_on_slopes
guiflags = SGF_NO_NETWORK
def      = true
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.command_pause_level
type     = SLE_UINT8
from     = SLV_154
guiflags = SGF_MULTISTRING | SGF_NO_NETWORK
def      = 1
min      = 0
max      = 3
interval = 1
str      = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL
strhelp  = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT
strval   = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS

[SDT_VAR]
base     = GameSettings
var      = construction.terraform_per_64k_frames
type     = SLE_UINT32
from     = SLV_156
def      = 64 << 16
min      = 0
max      = 1 << 30
interval = 1
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.terraform_frame_burst
type     = SLE_UINT16
from     = SLV_156
def      = 4096
min      = 0
max      = 1 << 15
interval = 1
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.clear_per_64k_frames
type     = SLE_UINT32
from     = SLV_156
def      = 64 << 16
min      = 0
max      = 1 << 30
interval = 1
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.clear_frame_burst
type     = SLE_UINT16
from     = SLV_156
def      = 4096
min      = 0
max      = 1 << 15
interval = 1
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.tree_per_64k_frames
type     = SLE_UINT32
from     = SLV_175
def      = 64 << 16
min      = 0
max      = 1 << 30
interval = 1
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.tree_frame_burst
type     = SLE_UINT16
from     = SLV_175
def      = 4096
min      = 0
max      = 1 << 15
interval = 1
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = construction.autoslope
from     = SLV_75
def      = true
str      = STR_CONFIG_SETTING_AUTOSLOPE
strhelp  = STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = construction.extra_dynamite
def      = true
str      = STR_CONFIG_SETTING_EXTRADYNAMITE
strhelp  = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = construction.max_bridge_length
type     = SLE_UINT16
from     = SLV_159
guiflags = SGF_NO_NETWORK
def      = 64
min      = 1
max      = MAX_MAP_SIZE
interval = 1
str      = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH
strhelp  = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH

[SDT_VAR]
base     = GameSettings
var      = construction.max_bridge_height
type     = SLE_UINT8
from     = SLV_194
guiflags = SGF_NO_NETWORK
def      = 12
min      = 1
max      = MAX_TILE_HEIGHT
interval = 1
str      = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT
strhelp  = STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT
strval   = STR_JUST_COMMA
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = construction.max_tunnel_length
type     = SLE_UINT16
from     = SLV_159
guiflags = SGF_NO_NETWORK
def      = 64
min      = 1
max      = MAX_MAP_SIZE
interval = 1
str      = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH
strhelp  = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH

# construction.longbridges
[SDT_NULL]
length   = 1
to       = SLV_159

[SDT_VAR]
base     = GameSettings
var      = construction.train_signal_side
type     = SLE_UINT8
guiflags = SGF_MULTISTRING | SGF_NO_NETWORK
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_SIGNALSIDE
strhelp  = STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT
strval   = STR_CONFIG_SETTING_SIGNALSIDE_LEFT
proc     = RedrawScreen
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = station.never_expire_airports
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
strhelp  = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = economy.town_layout
type     = SLE_UINT8
from     = SLV_59
guiflags = SGF_MULTISTRING
def      = TL_ORIGINAL
min      = TL_BEGIN
max      = NUM_TLS - 1
interval = 1
str      = STR_CONFIG_SETTING_TOWN_LAYOUT
strhelp  = STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT
strval   = STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT
proc     = TownFoundingChanged

[SDT_BOOL]
base     = GameSettings
var      = economy.allow_town_roads
from     = SLV_113
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS
strhelp  = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = economy.found_town
type     = SLE_UINT8
from     = SLV_128
guiflags = SGF_MULTISTRING
def      = TF_FORBIDDEN
min      = TF_BEGIN
max      = TF_END - 1
interval = 1
str      = STR_CONFIG_SETTING_TOWN_FOUNDING
strhelp  = STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT
strval   = STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN
proc     = TownFoundingChanged
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.allow_town_level_crossings
from     = SLV_143
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS
strhelp  = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = economy.town_cargogen_mode
type     = SLE_UINT8
from     = SLV_TOWN_CARGOGEN
guiflags = SGF_MULTISTRING
def      = TCGM_BITCOUNT
min      = TCGM_BEGIN
max      = TCGM_END - 1
interval = 1
str      = STR_CONFIG_SETTING_TOWN_CARGOGENMODE
strhelp  = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT
strval   = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL
cat      = SC_ADVANCED

; link graph

[SDT_VAR]
base     = GameSettings
var      = linkgraph.recalc_interval
type     = SLE_UINT16
from     = SLV_183
def      = 4
min      = 2
max      = 32
interval = 2
str      = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL
strval   = STR_JUST_COMMA
strhelp  = STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT
extra    = offsetof(LinkGraphSettings, recalc_interval)

[SDT_VAR]
base     = GameSettings
var      = linkgraph.recalc_time
type     = SLE_UINT16
from     = SLV_183
def      = 16
min      = 1
max      = 4096
interval = 1
str      = STR_CONFIG_SETTING_LINKGRAPH_TIME
strval   = STR_JUST_COMMA
strhelp  = STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT
extra    = offsetof(LinkGraphSettings, recalc_time)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.distribution_pax
type     = SLE_UINT8
from     = SLV_183
guiflags = SGF_MULTISTRING
def      = DT_MANUAL
min      = DT_MIN
max      = DT_MAX
interval = 1
str      = STR_CONFIG_SETTING_DISTRIBUTION_PAX
strval   = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL
strhelp  = STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT
extra    = offsetof(LinkGraphSettings, distribution_pax)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.distribution_mail
type     = SLE_UINT8
from     = SLV_183
guiflags = SGF_MULTISTRING
def      = DT_MANUAL
min      = DT_MIN
max      = DT_MAX
interval = 1
str      = STR_CONFIG_SETTING_DISTRIBUTION_MAIL
strval   = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL
strhelp  = STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT
extra    = offsetof(LinkGraphSettings, distribution_mail)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.distribution_armoured
type     = SLE_UINT8
from     = SLV_183
guiflags = SGF_MULTISTRING
def      = DT_MANUAL
min      = DT_MIN
max      = DT_MAX
interval = 1
str      = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED
strval   = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL
strhelp  = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT
extra    = offsetof(LinkGraphSettings, distribution_armoured)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.distribution_default
type     = SLE_UINT8
from     = SLV_183
guiflags = SGF_MULTISTRING
def      = DT_MANUAL
min      = DT_BEGIN
max      = DT_MAX_NONSYMMETRIC
interval = 1
str      = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT
strval   = STR_CONFIG_SETTING_DISTRIBUTION_MANUAL
strhelp  = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT
extra    = offsetof(LinkGraphSettings, distribution_default)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.accuracy
type     = SLE_UINT8
from     = SLV_183
def      = 16
min      = 2
max      = 64
interval = 1
str      = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY
strval   = STR_JUST_COMMA
strhelp  = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT
extra    = offsetof(LinkGraphSettings, accuracy)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.demand_distance
type     = SLE_UINT8
from     = SLV_183
def      = 100
min      = 0
max      = 255
interval = 5
str      = STR_CONFIG_SETTING_DEMAND_DISTANCE
strval   = STR_CONFIG_SETTING_PERCENTAGE
strhelp  = STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT
extra    = offsetof(LinkGraphSettings, demand_distance)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.demand_size
type     = SLE_UINT8
from     = SLV_183
def      = 100
min      = 0
max      = 100
interval = 5
str      = STR_CONFIG_SETTING_DEMAND_SIZE
strval   = STR_CONFIG_SETTING_PERCENTAGE
strhelp  = STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT
extra    = offsetof(LinkGraphSettings, demand_size)


[SDT_VAR]
base     = GameSettings
var      = linkgraph.short_path_saturation
type     = SLE_UINT8
from     = SLV_183
def      = 80
min      = 0
max      = 250
interval = 5
str      = STR_CONFIG_SETTING_SHORT_PATH_SATURATION
strval   = STR_CONFIG_SETTING_PERCENTAGE
strhelp  = STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT
extra    = offsetof(LinkGraphSettings, short_path_saturation)


; Vehicles

[SDT_VAR]
base     = GameSettings
var      = vehicle.train_acceleration_model
type     = SLE_UINT8
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 1
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL
strhelp  = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT
strval   = STR_CONFIG_SETTING_ORIGINAL
proc     = TrainAccelerationModelChanged

[SDT_VAR]
base     = GameSettings
var      = vehicle.roadveh_acceleration_model
type     = SLE_UINT8
from     = SLV_139
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 1
interval = 1
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL
strhelp  = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT
strval   = STR_CONFIG_SETTING_ORIGINAL
proc     = RoadVehAccelerationModelChanged

[SDT_VAR]
base     = GameSettings
var      = vehicle.train_slope_steepness
type     = SLE_UINT8
from     = SLV_133
def      = 3
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
strhelp  = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE
proc     = TrainSlopeSteepnessChanged
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = vehicle.roadveh_slope_steepness
type     = SLE_UINT8
from     = SLV_139
def      = 7
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS
strhelp  = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE
proc     = RoadVehSlopeSteepnessChanged
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.forbid_90_deg
def      = false
str      = STR_CONFIG_SETTING_FORBID_90_DEG
strhelp  = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT
proc     = InvalidateShipPathCache
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_train_length
type     = SLE_UINT8
from     = SLV_159
def      = 7
min      = 1
max      = 64
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_LENGTH
strhelp  = STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH
cat      = SC_BASIC

; vehicle.mammoth_trains
[SDT_NULL]
length   = 1
to       = SLV_159

[SDT_VAR]
base     = GameSettings
var      = vehicle.smoke_amount
type     = SLE_UINT8
from     = SLV_145
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_SMOKE_AMOUNT
strhelp  = STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT
strval   = STR_CONFIG_SETTING_NONE

; order.gotodepot
[SDT_NULL]
length   = 1
to       = SLV_159

; path finder

[SDT_BOOL]
base     = GameSettings
var      = pf.roadveh_queue
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.new_pathfinding_all
to       = SLV_87
def      = false
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.ship_use_yapf
from     = SLV_28
to       = SLV_87
def      = false
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.road_use_yapf
from     = SLV_28
to       = SLV_87
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.rail_use_yapf
from     = SLV_28
to       = SLV_87
def      = true
cat      = SC_EXPERT

##
[SDT_VAR]
base     = GameSettings
var      = pf.pathfinder_for_trains
type     = SLE_UINT8
from     = SLV_87
guiflags = SGF_MULTISTRING
def      = 2
min      = 1
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS
strhelp  = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT
strval   = STR_CONFIG_SETTING_PATHFINDER_NPF
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.pathfinder_for_roadvehs
type     = SLE_UINT8
from     = SLV_87
guiflags = SGF_MULTISTRING
def      = 2
min      = 1
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES
strhelp  = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT
strval   = STR_CONFIG_SETTING_PATHFINDER_NPF
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.pathfinder_for_ships
type     = SLE_UINT8
from     = SLV_87
guiflags = SGF_MULTISTRING
def      = 2
min      = 1
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS
strhelp  = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT
strval   = STR_CONFIG_SETTING_PATHFINDER_NPF
proc     = InvalidateShipPathCache
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = vehicle.never_expire_vehicles
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES
strhelp  = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_trains
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_TRAINS
strhelp  = STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT
strval   = STR_JUST_COMMA
proc     = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_roadveh
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
strhelp  = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT
strval   = STR_JUST_COMMA
proc     = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_aircraft
type     = SLE_UINT16
def      = 200
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_AIRCRAFT
strhelp  = STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT
strval   = STR_JUST_COMMA
proc     = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_ships
type     = SLE_UINT16
def      = 300
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_SHIPS
strhelp  = STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT
strval   = STR_JUST_COMMA
proc     = MaxVehiclesChanged
cat      = SC_BASIC

[SDTG_BOOL]
name     = nullptr
guiflags = SGF_NO_NETWORK
var      = _old_vds.servint_ispercent
def      = false
to       = SLV_120

[SDTG_VAR]
name     = nullptr
type     = SLE_UINT16
guiflags = SGF_0ISDISABLED
var      = _old_vds.servint_trains
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = nullptr
type     = SLE_UINT16
guiflags = SGF_0ISDISABLED
var      = _old_vds.servint_roadveh
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = nullptr
type     = SLE_UINT16
guiflags = SGF_0ISDISABLED
var      = _old_vds.servint_ships
def      = 360
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = nullptr
type     = SLE_UINT16
guiflags = SGF_0ISDISABLED
var      = _old_vds.servint_aircraft
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDT_BOOL]
base     = GameSettings
var      = order.no_servicing_if_no_breakdowns
def      = true
str      = STR_CONFIG_SETTING_NOSERVICE
strhelp  = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = vehicle.wagon_speed_limits
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
strhelp  = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT
proc     = UpdateConsists

[SDT_BOOL]
base     = GameSettings
var      = vehicle.disable_elrails
from     = SLV_38
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_DISABLE_ELRAILS
strhelp  = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT
proc     = SettingsDisableElrail
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = vehicle.freight_trains
type     = SLE_UINT8
from     = SLV_39
guiflags = SGF_NO_NETWORK
def      = 1
min      = 1
max      = 255
interval = 1
str      = STR_CONFIG_SETTING_FREIGHT_TRAINS
strhelp  = STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT
strval   = STR_JUST_COMMA
proc     = UpdateConsists

; order.timetabling
[SDT_NULL]
length   = 1
from     = SLV_67
to       = SLV_159

[SDT_VAR]
base     = GameSettings
var      = vehicle.plane_speed
type     = SLE_UINT8
from     = SLV_90
guiflags = SGF_NO_NETWORK
def      = 4
min      = 1
max      = 4
str      = STR_CONFIG_SETTING_PLANE_SPEED
strhelp  = STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT
strval   = STR_CONFIG_SETTING_PLANE_SPEED_VALUE

[SDT_BOOL]
base     = GameSettings
var      = vehicle.dynamic_engines
from     = SLV_95
guiflags = SGF_NO_NETWORK
def      = true
proc     = ChangeDynamicEngines
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = vehicle.plane_crashes
type     = SLE_UINT8
from     = SLV_138
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PLANE_CRASHES
strhelp  = STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT
strval   = STR_CONFIG_SETTING_PLANE_CRASHES_NONE
cat      = SC_BASIC

; station.join_stations
[SDT_NULL]
length   = 1
to       = SLV_159

[SDTC_BOOL]
var      = gui.sg_full_load_any
from     = SLV_22
to       = SLV_93
def      = true

[SDT_BOOL]
base     = GameSettings
var      = order.improved_load
guiflags = SGF_NO_NETWORK
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = order.selectgoods
def      = true
cat      = SC_EXPERT

[SDTC_BOOL]
var      = gui.sg_new_nonstop
from     = SLV_22
to       = SLV_93
def      = false

; station.nonuniform_stations
[SDT_NULL]
length   = 1
to       = SLV_159

[SDT_VAR]
base     = GameSettings
var      = station.station_spread
type     = SLE_UINT8
def      = 12
min      = 4
max      = 64
str      = STR_CONFIG_SETTING_STATION_SPREAD
strhelp  = STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH
proc     = StationSpreadChanged
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = order.serviceathelipad
def      = true
str      = STR_CONFIG_SETTING_SERVICEATHELIPAD
strhelp  = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = station.modified_catchment
def      = true
str      = STR_CONFIG_SETTING_CATCHMENT
strhelp  = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT
proc     = StationCatchmentChanged
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = station.serve_neutral_industries
def      = true
from     = SLV_SERVE_NEUTRAL_INDUSTRIES
str      = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES
strhelp  = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT
proc     = StationCatchmentChanged

[SDT_BOOL]
base     = GameSettings
var      = order.gradual_loading
from     = SLV_40
guiflags = SGF_NO_NETWORK
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = construction.road_stop_on_town_road
from     = SLV_47
def      = true
str      = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD
strhelp  = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = construction.road_stop_on_competitor_road
from     = SLV_114
def      = true
str      = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD
strhelp  = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = station.adjacent_stations
from     = SLV_62
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = economy.station_noise_level
from     = SLV_96
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_NOISE_LEVEL
strhelp  = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT
proc     = InvalidateTownViewWindow

[SDT_BOOL]
base     = GameSettings
var      = station.distant_join_stations
from     = SLV_106
def      = true
str      = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS
strhelp  = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT
proc     = DeleteSelectStationWindow

##
[SDT_BOOL]
base     = GameSettings
var      = economy.inflation
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_INFLATION
strhelp  = STR_CONFIG_SETTING_INFLATION_HELPTEXT
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = construction.raw_industry_construction
type     = SLE_UINT8
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD
strhelp  = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT
strval   = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE
proc     = InvalidateBuildIndustryWindow
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = construction.industry_platform
type     = SLE_UINT8
from     = SLV_148
def      = 1
min      = 0
max      = 4
str      = STR_CONFIG_SETTING_INDUSTRY_PLATFORM
strhelp  = STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = economy.multiple_industry_per_town
def      = false
str      = STR_CONFIG_SETTING_MULTIPINDTOWN
strhelp  = STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT

[SDT_NULL]
length   = 1
to       = SLV_141

[SDT_BOOL]
base     = GameSettings
var      = economy.bribe
def      = true
str      = STR_CONFIG_SETTING_BRIBE
strhelp  = STR_CONFIG_SETTING_BRIBE_HELPTEXT
proc     = RedrawTownAuthority
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.exclusive_rights
from     = SLV_79
def      = true
str      = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
strhelp  = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT
proc     = RedrawTownAuthority
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.fund_buildings
from     = SLV_165
def      = true
str      = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS
strhelp  = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT
proc     = RedrawTownAuthority
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.fund_roads
from     = SLV_160
def      = true
str      = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
strhelp  = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT
proc     = RedrawTownAuthority
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.give_money
from     = SLV_79
def      = true
str      = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY
strhelp  = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.snow_line_height
type     = SLE_UINT8
guiflags = SGF_SCENEDIT_ONLY
def      = DEF_SNOWLINE_HEIGHT
min      = MIN_SNOWLINE_HEIGHT
max      = MAX_SNOWLINE_HEIGHT
interval = 1
str      = STR_CONFIG_SETTING_SNOWLINE_HEIGHT
strhelp  = STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT
strval   = STR_JUST_COMMA
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.snow_coverage
type     = SLE_UINT8
from     = SLV_MAPGEN_SETTINGS_REVAMP
guiflags = SGF_NEWGAME_ONLY
def      = DEF_SNOW_COVERAGE
min      = 0
max      = 100
interval = 10
str      = STR_CONFIG_SETTING_SNOW_COVERAGE
strhelp  = STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT
strval   = STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.desert_coverage
type     = SLE_UINT8
from     = SLV_MAPGEN_SETTINGS_REVAMP
guiflags = SGF_NEWGAME_ONLY
def      = DEF_DESERT_COVERAGE
min      = 0
max      = 100
interval = 10
str      = STR_CONFIG_SETTING_DESERT_COVERAGE
strhelp  = STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT
strval   = STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE
cat      = SC_BASIC

[SDT_NULL]
length   = 4
to       = SLV_144

[SDT_VAR]
base     = GameSettings
var      = game_creation.starting_year
type     = SLE_INT32
def      = DEF_START_YEAR
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_STARTING_YEAR
strval   = STR_JUST_INT
cat      = SC_BASIC

[SDT_NULL]
length   = 4
to       = SLV_105

[SDT_VAR]
base     = GameSettings
var      = game_creation.ending_year
type     = SLE_INT32
from     = SLV_ENDING_YEAR
guiflags = SGF_0ISDISABLED
def      = DEF_END_YEAR
min      = MIN_YEAR
max      = MAX_YEAR - 1
interval = 1
str      = STR_CONFIG_SETTING_ENDING_YEAR
strhelp  = STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT
strval   = STR_CONFIG_SETTING_ENDING_YEAR_VALUE
cat      = SC_ADVANCED

[SDT_VAR]
base     = GameSettings
var      = economy.type
type     = SLE_UINT8
guiflags = SGF_MULTISTRING
def      = ET_SMOOTH
min      = ET_BEGIN
max      = ET_END - 1
str      = STR_CONFIG_SETTING_ECONOMY_TYPE
strhelp  = STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT
strval   = STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL
proc     = InvalidateIndustryViewWindow
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = economy.allow_shares
def      = false
str      = STR_CONFIG_SETTING_ALLOW_SHARES
strhelp  = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT
proc     = InvalidateCompanyWindow

[SDT_VAR]
base     = GameSettings
var      = economy.min_years_for_shares
type     = SLE_UINT8
from     = SLV_TRADING_AGE
def      = 6
min      = 0
max      = 255
interval = 1
str      = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES
strhelp  = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT
strval   = STR_JUST_INT
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.feeder_payment_share
type     = SLE_UINT8
from     = SLV_134
def      = 75
min      = 0
max      = 100
str      = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE
strhelp  = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.town_growth_rate
type     = SLE_UINT8
from     = SLV_54
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 4
str      = STR_CONFIG_SETTING_TOWN_GROWTH
strhelp  = STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT
strval   = STR_CONFIG_SETTING_TOWN_GROWTH_NONE

[SDT_VAR]
base     = GameSettings
var      = economy.larger_towns
type     = SLE_UINT8
from     = SLV_54
guiflags = SGF_0ISDISABLED
def      = 4
min      = 0
max      = 255
interval = 1
str      = STR_CONFIG_SETTING_LARGER_TOWNS
strhelp  = STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT
strval   = STR_CONFIG_SETTING_LARGER_TOWNS_VALUE

[SDT_VAR]
base     = GameSettings
var      = economy.initial_city_size
type     = SLE_UINT8
from     = SLV_56
def      = 2
min      = 1
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER
strhelp  = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT
strval   = STR_JUST_COMMA

[SDT_BOOL]
base     = GameSettings
var      = economy.mod_road_rebuild
from     = SLV_77
def      = true
cat      = SC_EXPERT

; previously ai-new setting.
[SDT_NULL]
length   = 1
to       = SLV_107

[SDT_OMANY]
base     = GameSettings
var      = script.settings_profile
type     = SLE_UINT8
from     = SLV_178
guiflags = SGF_MULTISTRING
def      = SP_EASY
min      = SP_EASY
max      = SP_HARD
full     = _settings_profiles
str      = STR_CONFIG_SETTING_AI_PROFILE
strhelp  = STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT
strval   = STR_CONFIG_SETTING_AI_PROFILE_EASY
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_in_multiplayer
def      = true
str      = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER
strhelp  = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_disable_veh_train
def      = false
str      = STR_CONFIG_SETTING_AI_BUILDS_TRAINS
strhelp  = STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_disable_veh_roadveh
def      = false
str      = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES
strhelp  = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_disable_veh_aircraft
def      = false
str      = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT
strhelp  = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_disable_veh_ship
def      = false
str      = STR_CONFIG_SETTING_AI_BUILDS_SHIPS
strhelp  = STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = script.script_max_opcode_till_suspend
type     = SLE_UINT32
from     = SLV_107
guiflags = SGF_NEWGAME_ONLY
def      = 10000
min      = 500
max      = 250000
interval = 2500
str      = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES
strhelp  = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT
strval   = STR_JUST_COMMA
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = script.script_max_memory_megabytes
type     = SLE_UINT32
from     = SLV_SCRIPT_MEMLIMIT
guiflags = SGF_NEWGAME_ONLY
def      = 1024
min      = 8
max      = 8192
interval = 8
str      = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY
strhelp  = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT
strval   = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE
cat      = SC_EXPERT

##
[SDT_VAR]
base     = GameSettings
var      = vehicle.extend_vehicle_life
type     = SLE_UINT8
def      = 0
min      = 0
max      = 100
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.dist_local_authority
type     = SLE_UINT8
def      = 20
min      = 5
max      = 60
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.reverse_at_signals
from     = SLV_159
def      = false
str      = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS
strhelp  = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = pf.wait_oneway_signal
type     = SLE_UINT8
def      = 15
min      = 2
max      = 255
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.wait_twoway_signal
type     = SLE_UINT8
def      = 41
min      = 2
max      = 255
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.town_noise_population[0]
type     = SLE_UINT16
from     = SLV_96
def      = 800
min      = 200
max      = 65535
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.town_noise_population[1]
type     = SLE_UINT16
from     = SLV_96
def      = 2000
min      = 400
max      = 65535
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = economy.town_noise_population[2]
type     = SLE_UINT16
from     = SLV_96
def      = 4000
min      = 800
max      = 65535
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = economy.infrastructure_maintenance
from     = SLV_166
def      = false
str      = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE
strhelp  = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT
proc     = InvalidateCompanyInfrastructureWindow
cat      = SC_BASIC

##
[SDT_VAR]
base     = GameSettings
var      = pf.wait_for_pbs_path
type     = SLE_UINT8
from     = SLV_100
def      = 30
min      = 2
max      = 255
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.reserve_paths
from     = SLV_100
def      = false
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.path_backoff_interval
type     = SLE_UINT8
from     = SLV_100
def      = 20
min      = 1
max      = 255
cat      = SC_EXPERT

##
; Used to be pf.opf.pf_maxlength & pf.opf.pf_maxdepth
[SDT_NULL]
length   = 3
to       = SLV_REMOVE_OPF

##
[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_max_search_nodes
type     = SLE_UINT
def      = 10000
min      = 500
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_firstred_penalty
type     = SLE_UINT
def      = 10 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_firstred_exit_penalty
type     = SLE_UINT
def      = 100 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_lastred_penalty
type     = SLE_UINT
def      = 10 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_station_penalty
type     = SLE_UINT
def      = 1 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_slope_penalty
type     = SLE_UINT
def      = 1 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_curve_penalty
type     = SLE_UINT
def      = 1 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_depot_reverse_penalty
type     = SLE_UINT
def      = 50 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_pbs_cross_penalty
type     = SLE_UINT
from     = SLV_100
def      = 3 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_rail_pbs_signal_back_penalty
type     = SLE_UINT
from     = SLV_100
def      = 15 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_buoy_penalty
type     = SLE_UINT
def      = 2 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_water_curve_penalty
type     = SLE_UINT
def      = 1 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_road_curve_penalty
type     = SLE_UINT
def      = 1 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_crossing_penalty
type     = SLE_UINT
def      = 3 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_road_drive_through_penalty
type     = SLE_UINT
from     = SLV_47
def      = 8 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_road_dt_occupied_penalty
type     = SLE_UINT
from     = SLV_130
def      = 8 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.npf_road_bay_occupied_penalty
type     = SLE_UINT
from     = SLV_130
def      = 15 * NPF_TILE_LENGTH
min      = 0
max      = 100000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.npf.maximum_go_to_depot_penalty
type     = SLE_UINT
from     = SLV_131
def      = 20 * NPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

##
[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.disable_node_optimization
from     = SLV_28
def      = false
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.max_search_nodes
type     = SLE_UINT
from     = SLV_28
def      = 10000
min      = 500
max      = 1000000
cat      = SC_EXPERT

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.rail_firstred_twoway_eol
from     = SLV_28
def      = false
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_firstred_penalty
type     = SLE_UINT
from     = SLV_28
def      = 10 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_firstred_exit_penalty
type     = SLE_UINT
from     = SLV_28
def      = 100 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_lastred_penalty
type     = SLE_UINT
from     = SLV_28
def      = 10 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_lastred_exit_penalty
type     = SLE_UINT
from     = SLV_28
def      = 100 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_station_penalty
type     = SLE_UINT
from     = SLV_28
def      = 10 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_slope_penalty
type     = SLE_UINT
from     = SLV_28
def      = 2 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_curve45_penalty
type     = SLE_UINT
from     = SLV_28
def      = 1 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_curve90_penalty
type     = SLE_UINT
from     = SLV_28
def      = 6 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_depot_reverse_penalty
type     = SLE_UINT
from     = SLV_28
def      = 50 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_crossing_penalty
type     = SLE_UINT
from     = SLV_28
def      = 3 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_look_ahead_max_signals
type     = SLE_UINT
from     = SLV_28
def      = 10
min      = 1
max      = 100
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_look_ahead_signal_p0
type     = SLE_INT
from     = SLV_28
def      = 500
min      = -1000000
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_look_ahead_signal_p1
type     = SLE_INT
from     = SLV_28
def      = -100
min      = -1000000
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_look_ahead_signal_p2
type     = SLE_INT
from     = SLV_28
def      = 5
min      = -1000000
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_pbs_cross_penalty
type     = SLE_UINT
from     = SLV_100
def      = 3 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_pbs_station_penalty
type     = SLE_UINT
from     = SLV_100
def      = 8 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_pbs_signal_back_penalty
type     = SLE_UINT
from     = SLV_100
def      = 15 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_doubleslip_penalty
type     = SLE_UINT
from     = SLV_100
def      = 1 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_longer_platform_penalty
type     = SLE_UINT
from     = SLV_33
def      = 8 * YAPF_TILE_LENGTH
min      = 0
max      = 20000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_longer_platform_per_tile_penalty
type     = SLE_UINT
from     = SLV_33
def      = 0 * YAPF_TILE_LENGTH
min      = 0
max      = 20000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_shorter_platform_penalty
type     = SLE_UINT
from     = SLV_33
def      = 40 * YAPF_TILE_LENGTH
min      = 0
max      = 20000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.rail_shorter_platform_per_tile_penalty
type     = SLE_UINT
from     = SLV_33
def      = 0 * YAPF_TILE_LENGTH
min      = 0
max      = 20000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_slope_penalty
type     = SLE_UINT
from     = SLV_33
def      = 2 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_curve_penalty
type     = SLE_UINT
from     = SLV_33
def      = 1 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_crossing_penalty
type     = SLE_UINT
from     = SLV_33
def      = 3 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_stop_penalty
type     = SLE_UINT
from     = SLV_47
def      = 8 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_stop_occupied_penalty
type     = SLE_UINT
from     = SLV_130
def      = 8 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.road_stop_bay_occupied_penalty
type     = SLE_UINT
from     = SLV_130
def      = 15 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.maximum_go_to_depot_penalty
type     = SLE_UINT
from     = SLV_131
def      = 20 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.ship_curve45_penalty
type     = SLE_UINT
from     = SLV_SHIP_CURVE_PENALTY
def      = 1 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = pf.yapf.ship_curve90_penalty
type     = SLE_UINT
from     = SLV_SHIP_CURVE_PENALTY
def      = 6 * YAPF_TILE_LENGTH
min      = 0
max      = 1000000
cat      = SC_EXPERT

##
[SDT_VAR]
base     = GameSettings
var      = game_creation.land_generator
type     = SLE_UINT8
from     = SLV_30
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 1
min      = 0
max      = 1
str      = STR_CONFIG_SETTING_LAND_GENERATOR
strhelp  = STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT
strval   = STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL

[SDT_VAR]
base     = GameSettings
var      = game_creation.oil_refinery_limit
type     = SLE_UINT8
from     = SLV_30
def      = 32
min      = 12
max      = 128
str      = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE
strval   = STR_CONFIG_SETTING_TILE_LENGTH
strhelp  = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT

[SDT_VAR]
base     = GameSettings
var      = game_creation.tgen_smoothness
type     = SLE_UINT8
from     = SLV_30
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 1
min      = TGEN_SMOOTHNESS_BEGIN
max      = TGEN_SMOOTHNESS_END - 1
str      = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN
strhelp  = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT
strval   = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.variety
type     = SLE_UINT8
from     = SLV_197
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 0
min      = 0
max      = 5
str      = STR_CONFIG_SETTING_VARIETY
strhelp  = STR_CONFIG_SETTING_VARIETY_HELPTEXT
strval   = STR_VARIETY_NONE

[SDT_VAR]
base     = GameSettings
var      = game_creation.generation_seed
type     = SLE_UINT32
from     = SLV_30
def      = GENERATE_NEW_SEED
min      = 0
max      = UINT32_MAX
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = game_creation.tree_placer
type     = SLE_UINT8
from     = SLV_30
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO
def      = 2
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_TREE_PLACER
strhelp  = STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT
strval   = STR_CONFIG_SETTING_TREE_PLACER_NONE
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.heightmap_rotation
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 1
str      = STR_CONFIG_SETTING_HEIGHTMAP_ROTATION
strval   = STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.se_flat_world_height
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1
min      = 0
max      = 15
str      = STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT
strval   = STR_JUST_COMMA
cat      = SC_BASIC

##
[SDT_VAR]
base     = GameSettings
var      = game_creation.map_x
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 8
min      = MIN_MAP_SIZE_BITS
max      = MAX_MAP_SIZE_BITS
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.map_y
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 8
min      = MIN_MAP_SIZE_BITS
max      = MAX_MAP_SIZE_BITS
cat      = SC_BASIC

[SDT_BOOL]
base     = GameSettings
var      = construction.freeform_edges
from     = SLV_111
def      = true
proc     = CheckFreeformEdges
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = game_creation.water_borders
type     = SLE_UINT8
from     = SLV_111
def      = 15
min      = 0
max      = 16

[SDT_VAR]
base     = GameSettings
var      = game_creation.custom_town_number
type     = SLE_UINT16
from     = SLV_115
def      = 1
min      = 1
max      = 5000
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = construction.extra_tree_placement
type     = SLE_UINT8
from     = SLV_132
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 3
str      = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT
strhelp  = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT
strval   = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.custom_terrain_type
type     = SLE_UINT8
from     = SLV_MAPGEN_SETTINGS_REVAMP
guiflags = SGF_NEWGAME_ONLY
def      = MAP_HEIGHT_LIMIT_AUTO_MINIMUM
min      = MIN_CUSTOM_TERRAIN_TYPE
max      = MAX_MAP_HEIGHT_LIMIT
interval = 1

[SDT_VAR]
base     = GameSettings
var      = game_creation.custom_sea_level
type     = SLE_UINT8
from     = SLV_149
def      = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE
min      = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE
max      = CUSTOM_SEA_LEVEL_MAX_PERCENTAGE
cat      = SC_BASIC

[SDT_VAR]
base     = GameSettings
var      = game_creation.min_river_length
type     = SLE_UINT8
from     = SLV_163
def      = 16
min      = 2
max      = 255
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = game_creation.river_route_random
type     = SLE_UINT8
from     = SLV_163
def      = 5
min      = 1
max      = 255
cat      = SC_EXPERT

[SDT_VAR]
base     = GameSettings
var      = game_creation.amount_of_rivers
type     = SLE_UINT8
from     = SLV_163
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def      = 2
min      = 0
max      = 3
str      = STR_CONFIG_SETTING_RIVER_AMOUNT
strhelp  = STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT
strval   = STR_RIVERS_NONE

; locale

[SDT_OMANY]
base     = GameSettings
var      = locale.currency
type     = SLE_UINT8
from     = SLV_97
flags    = SLF_NO_NETWORK_SYNC
def      = 0
max      = CURRENCY_END - 1
full     = _locale_currencies
proc     = RedrawScreen
cat      = SC_BASIC

[SDTG_OMANY]
name     = ""units""
var      = _old_units
type     = SLE_UINT8
from     = SLV_97
to       = SLV_184
flags    = SLF_NOT_IN_CONFIG
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen
cat      = SC_BASIC

[SDT_OMANY]
base     = GameSettings
var      = locale.units_velocity
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 3
full     = _locale_units
proc     = RedrawScreen
cat      = SC_BASIC
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL

[SDT_OMANY]
base     = GameSettings
var      = locale.units_power
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen
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]
base     = GameSettings
var      = locale.units_weight
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen
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]
base     = GameSettings
var      = locale.units_volume
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen
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]
base     = GameSettings
var      = locale.units_force
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _locale_units
proc     = RedrawScreen
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]
base     = GameSettings
var      = locale.units_height
type     = SLE_UINT8
from     = SLV_184
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen
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_STR]
base     = GameSettings
var      = locale.digit_group_separator
type     = SLE_STRQ
from     = SLV_118
flags    = SLF_NO_NETWORK_SYNC
def      = nullptr
proc     = RedrawScreen
cat      = SC_BASIC

[SDT_STR]
base     = GameSettings
var      = locale.digit_group_separator_currency
type     = SLE_STRQ
from     = SLV_118
flags    = SLF_NO_NETWORK_SYNC
def      = nullptr
proc     = RedrawScreen
cat      = SC_BASIC

[SDT_STR]
base     = GameSettings
var      = locale.digit_decimal_separator
type     = SLE_STRQ
from     = SLV_126
flags    = SLF_NO_NETWORK_SYNC
def      = nullptr
proc     = RedrawScreen
cat      = SC_BASIC


;***************************************************************************
; Unsaved setting variables.

[SDTC_OMANY]
var      = gui.autosave
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 4
full     = _autosave_interval
str      = STR_CONFIG_SETTING_AUTOSAVE
strhelp  = STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT
strval   = STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.threaded_saves
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
cat      = SC_EXPERT

[SDTC_OMANY]
var      = gui.date_format_in_default_names
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _savegame_date
str      = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES
strhelp  = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT
strval   = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG

[SDTC_BOOL]
var      = gui.show_finances
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SHOWFINANCES
strhelp  = STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.auto_scrolling
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 3
str      = STR_CONFIG_SETTING_AUTOSCROLL
strhelp  = STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT
strval   = STR_CONFIG_SETTING_AUTOSCROLL_DISABLED
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.scroll_mode
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 3
str      = STR_CONFIG_SETTING_SCROLLMODE
strhelp  = STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT
strval   = STR_CONFIG_SETTING_SCROLLMODE_DEFAULT
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.smooth_scroll
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_SMOOTH_SCROLLING
strhelp  = STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT

[SDTC_BOOL]
var      = gui.right_mouse_wnd_close
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE
strhelp  = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.measure_tooltip
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_MEASURE_TOOLTIP
strhelp  = STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.errmsg_duration
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 5
min      = 0
max      = 20
str      = STR_CONFIG_SETTING_ERRMSG_DURATION
strhelp  = STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT
strval   = STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE

[SDTC_VAR]
var      = gui.hover_delay_ms
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED
def      = 250
min      = 50
max      = 6000
interval = 50
str      = STR_CONFIG_SETTING_HOVER_DELAY
strhelp  = STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT
strval   = STR_CONFIG_SETTING_HOVER_DELAY_VALUE

[SDTC_OMANY]
var      = gui.osk_activation
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
str      = STR_CONFIG_SETTING_OSK_ACTIVATION
strhelp  = STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT
strval   = STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED
guiflags = SGF_MULTISTRING
full     = _osk_activation
def      = 1
min      = 0
max      = 3
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.toolbar_pos
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_TOOLBAR_POS
strhelp  = STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT
strval   = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT
proc     = v_PositionMainToolbar
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.statusbar_pos
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_STATUSBAR_POS
strhelp  = STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT
strval   = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT
proc     = v_PositionStatusbar
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.window_snap_radius
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED
def      = 10
min      = 1
max      = 32
str      = STR_CONFIG_SETTING_SNAP_RADIUS
strhelp  = STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT
strval   = STR_CONFIG_SETTING_SNAP_RADIUS_VALUE
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.window_soft_limit
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED
def      = 20
min      = 5
max      = 255
interval = 1
str      = STR_CONFIG_SETTING_SOFT_LIMIT
strhelp  = STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT
strval   = STR_CONFIG_SETTING_SOFT_LIMIT_VALUE
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.zoom_min
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = ZOOM_LVL_MIN
min      = ZOOM_LVL_MIN
max      = ZOOM_LVL_OUT_4X
str      = STR_CONFIG_SETTING_ZOOM_MIN
strhelp  = STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT
strval   = STR_CONFIG_SETTING_ZOOM_LVL_MIN
proc     = ZoomMinMaxChanged
startup  = true

[SDTC_VAR]
var      = gui.zoom_max
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = ZOOM_LVL_MAX
min      = ZOOM_LVL_OUT_8X
max      = ZOOM_LVL_MAX
str      = STR_CONFIG_SETTING_ZOOM_MAX
strhelp  = STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT
strval   = STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X
proc     = ZoomMinMaxChanged
startup  = true

[SDTC_VAR]
var      = gui.sprite_zoom_min
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = ZOOM_LVL_MIN
min      = ZOOM_LVL_MIN
max      = ZOOM_LVL_OUT_4X
str      = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN
strhelp  = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT
strval   = STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN
proc     = SpriteZoomMinChanged

[SDTC_BOOL]
var      = gui.population_in_label
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_POPULATION_IN_LABEL
strhelp  = STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT
proc     = PopulationInLabelActive

[SDTC_BOOL]
var      = gui.link_terraform_toolbar
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR
strhelp  = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT

[SDTC_VAR]
var      = gui.smallmap_land_colour
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR
strhelp  = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT
strval   = STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN
proc     = RedrawSmallmap

[SDTC_VAR]
var      = gui.liveries
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_LIVERIES
strhelp  = STR_CONFIG_SETTING_LIVERIES_HELPTEXT
strval   = STR_CONFIG_SETTING_LIVERIES_NONE
proc     = InvalidateCompanyLiveryWindow

[SDTC_VAR]
var      = gui.starting_colour
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = COLOUR_END
min      = 0
max      = COLOUR_END
str      = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR
strhelp  = STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT
strval   = STR_COLOUR_DARK_BLUE

[SDTC_BOOL]
var      = gui.auto_remove_signals
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS
strhelp  = STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT
cat      = SC_ADVANCED

[SDTC_BOOL]
var      = gui.prefer_teamchat
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_PREFER_TEAMCHAT
strhelp  = STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.scrollwheel_scrolling
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING
strhelp  = STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT
strval   = STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.scrollwheel_multiplier
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 5
min      = 1
max      = 15
interval = 1
str      = STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER
strhelp  = STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT
strval   = STR_JUST_COMMA
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.pause_on_newgame
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME
strhelp  = STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.advanced_vehicle_list
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS
strhelp  = STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT
strval   = STR_CONFIG_SETTING_COMPANIES_OFF

[SDTC_BOOL]
var      = gui.timetable_in_ticks
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_TIMETABLE_IN_TICKS
strhelp  = STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT
proc     = InvalidateVehTimetableWindow
cat      = SC_EXPERT

[SDTC_BOOL]
var      = gui.timetable_arrival_departure
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE
strhelp  = STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT
proc     = InvalidateVehTimetableWindow

[SDTC_BOOL]
var      = gui.quick_goto
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_QUICKGOTO
strhelp  = STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.loading_indicators
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_LOADING_INDICATORS
strhelp  = STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT
strval   = STR_CONFIG_SETTING_COMPANIES_OFF
proc     = RedrawScreen
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.default_rail_type
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE
strhelp  = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT
strval   = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.enable_signal_gui
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI
strhelp  = STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT
proc     = CloseSignalGUI
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.coloured_news_year
type     = SLE_INT32
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 2000
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR
strhelp  = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT
strval   = STR_JUST_INT
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.drag_signals_density
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 4
min      = 1
max      = 20
str      = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY
strhelp  = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT
strval   = STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE
proc     = DragSignalsDensityChanged
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.drag_signals_fixed_distance
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE
strhelp  = STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.semaphore_build_before
type     = SLE_INT32
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1950
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE
strhelp  = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT
strval   = STR_JUST_INT
proc     = ResetSignalVariant

[SDTC_BOOL]
var      = gui.vehicle_income_warn
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_WARN_INCOME_LESS
strhelp  = STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.order_review_system
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_ORDER_REVIEW
strhelp  = STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT
strval   = STR_CONFIG_SETTING_ORDER_REVIEW_OFF
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.lost_vehicle_warn
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_WARN_LOST_VEHICLE
strhelp  = STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT

[SDTC_BOOL]
var      = gui.new_nonstop
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT
strhelp  = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.stop_location
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_STOP_LOCATION
strhelp  = STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT
strval   = STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.keep_all_autosave
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false

[SDTC_BOOL]
var      = gui.autosave_on_exit
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.autosave_on_network_disconnect
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.max_num_autosaves
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 16
min      = 0
max      = 255

[SDTC_BOOL]
var      = gui.auto_euro
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true

[SDTC_VAR]
var      = gui.news_message_timeout
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 2
min      = 1
max      = 255

[SDTC_BOOL]
var      = gui.show_track_reservation
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION
strhelp  = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT
proc     = RedrawScreen
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.default_signal_type
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE
strhelp  = STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT
strval   = STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL
cat      = SC_BASIC

[SDTC_VAR]
var      = gui.cycle_signal_types
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES
strhelp  = STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT
strval   = STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL

[SDTC_VAR]
var      = gui.station_numtracks
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1
min      = 1
max      = 7

[SDTC_VAR]
var      = gui.station_platlength
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 5
min      = 1
max      = 7
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.station_dragdrop
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.station_show_coverage
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.persistent_buildingtools
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS
strhelp  = STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT
cat      = SC_BASIC

[SDTC_BOOL]
var      = gui.expenses_layout
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_EXPENSES_LAYOUT
strhelp  = STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT
proc     = RedrawScreen

[SDTC_VAR]
var      = gui.station_gui_group_order
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 5
interval = 1

[SDTC_VAR]
var      = gui.station_gui_sort_by
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 3
interval = 1

[SDTC_VAR]
var      = gui.station_gui_sort_order
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 1
interval = 1

[SDTC_VAR]
var      = gui.missing_strings_threshold
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 25
min      = 1
max      = UINT8_MAX
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.graph_line_thickness
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 3
min      = 1
max      = 5
str      = STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS
strhelp  = STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT
strval   = STR_JUST_COMMA
proc     = RedrawScreen

[SDTC_BOOL]
var      = gui.show_newgrf_name
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME
strhelp  = STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT
proc     = RedrawScreen
cat      = SC_ADVANCED

; For the dedicated build we'll enable dates in logs by default.
[SDTC_BOOL]
ifdef    = DEDICATED
var      = gui.show_date_in_logs
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true

[SDTC_BOOL]
ifndef   = DEDICATED
var      = gui.show_date_in_logs
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false

[SDTC_VAR]
var      = gui.settings_restriction_mode
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 2

[SDTC_VAR]
var      = gui.developer
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1
min      = 0
max      = 2
cat      = SC_EXPERT

[SDTC_BOOL]
var      = gui.newgrf_developer_tools
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
proc     = InvalidateNewGRFChangeWindows
cat      = SC_EXPERT

[SDTC_BOOL]
var      = gui.ai_developer_tools
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
proc     = InvalidateAISettingsWindow
cat      = SC_EXPERT

[SDTC_BOOL]
var      = gui.scenario_developer
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
proc     = InvalidateNewGRFChangeWindows

[SDTC_BOOL]
var      = gui.newgrf_show_old_versions
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.newgrf_default_palette
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 1
proc     = UpdateNewGRFConfigPalette
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.console_backlog_timeout
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 100
min      = 10
max      = 65500

[SDTC_VAR]
var      = gui.console_backlog_length
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 100
min      = 10
max      = 65500

[SDTC_VAR]
var      = gui.refresh_rate
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 60
min      = 10
max      = 1000
cat      = SC_EXPERT
startup  = true

[SDTC_VAR]
var      = gui.fast_forward_speed_limit
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED | SGF_NO_NETWORK
def      = 2500
min      = 0
max      = 50000
interval = 10
str      = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT
strhelp  = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT
strval   = STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL
cat      = SC_BASIC

[SDTC_BOOL]
var      = sound.news_ticker
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_TICKER
strhelp  = STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT

[SDTC_BOOL]
var      = sound.news_full
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_NEWS
strhelp  = STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT

[SDTC_BOOL]
var      = sound.new_year
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_NEW_YEAR
strhelp  = STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT

[SDTC_BOOL]
var      = sound.confirm
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_CONFIRM
strhelp  = STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT

[SDTC_BOOL]
var      = sound.click_beep
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_CLICK
strhelp  = STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT

[SDTC_BOOL]
var      = sound.disaster
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_DISASTER
strhelp  = STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT

[SDTC_BOOL]
var      = sound.vehicle
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_VEHICLE
strhelp  = STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT

[SDTC_BOOL]
var      = sound.ambient
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_SOUND_AMBIENT
strhelp  = STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT

[SDTC_VAR]
var      = music.playlist
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 5
interval = 1
cat      = SC_BASIC

[SDTC_VAR]
var      = music.music_vol
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 127
min      = 0
max      = 127
interval = 1
cat      = SC_BASIC

[SDTC_VAR]
var      = music.effect_vol
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 127
min      = 0
max      = 127
interval = 1
cat      = SC_BASIC

[SDTC_LIST]
var      = music.custom_1
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = nullptr
cat      = SC_BASIC

[SDTC_LIST]
var      = music.custom_2
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = nullptr
cat      = SC_BASIC

[SDTC_BOOL]
var      = music.playing
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
cat      = SC_BASIC

[SDTC_BOOL]
var      = music.shuffle
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
cat      = SC_BASIC

[SDTC_OMANY]
var      = news_display.arrival_player
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN
strhelp  = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.arrival_other
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER
strhelp  = STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.accident
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS
strhelp  = STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.company_info
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION
strhelp  = STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.open
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN
strhelp  = STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.close
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE
strhelp  = STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.economy
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES
strhelp  = STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.production_player
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY
strhelp  = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.production_other
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER
strhelp  = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.production_nobody
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED
strhelp  = STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.advice
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_ADVICE
strhelp  = STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.new_vehicles
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES
strhelp  = STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.acceptance
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE
strhelp  = STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.subsidies
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 1
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_SUBSIDIES
strhelp  = STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_OMANY]
var      = news_display.general
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 2
max      = 2
full     = _news_display
str      = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION
strhelp  = STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT
strval   = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF

[SDTC_VAR]
var      = gui.network_chat_box_width_pct
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 40
min      = 10
max      = 100
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.network_chat_box_height
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 25
min      = 5
max      = 255
cat      = SC_EXPERT

[SDTC_VAR]
var      = gui.network_chat_timeout
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 20
min      = 1
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.sync_freq
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 100
min      = 0
max      = 100
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.frame_freq
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 0
min      = 0
max      = 100
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.commands_per_frame
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 2
min      = 1
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.max_commands_in_queue
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 16
min      = 1
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.bytes_per_frame
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 8
min      = 1
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.bytes_per_frame_burst
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 256
min      = 1
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.max_init_time
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 100
min      = 0
max      = 32000
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.max_join_time
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 500
min      = 0
max      = 32000

[SDTC_VAR]
var      = network.max_download_time
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 1000
min      = 0
max      = 32000

[SDTC_VAR]
var      = network.max_password_time
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 2000
min      = 0
max      = 32000

[SDTC_VAR]
var      = network.max_lag_time
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 500
min      = 0
max      = 32000

[SDTC_BOOL]
var      = network.pause_on_join
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = true

[SDTC_VAR]
var      = network.server_port
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NETWORK_DEFAULT_PORT
min      = 0
max      = 65535
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.server_admin_port
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NETWORK_ADMIN_PORT
min      = 0
max      = 65535
cat      = SC_EXPERT

[SDTC_BOOL]
var      = network.server_admin_chat
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = true
cat      = SC_EXPERT

[SDTC_BOOL]
var      = network.server_advertise
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = false

[SDTC_STR]
var      = network.client_name
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = nullptr
proc     = UpdateClientName
cat      = SC_BASIC

[SDTC_STR]
var      = network.server_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = nullptr
proc     = UpdateServerPassword
cat      = SC_BASIC

[SDTC_STR]
var      = network.rcon_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = nullptr
proc     = UpdateRconPassword
cat      = SC_BASIC

[SDTC_STR]
var      = network.admin_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = nullptr
cat      = SC_BASIC

[SDTC_STR]
var      = network.default_company_pass
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = nullptr

[SDTC_STR]
var      = network.server_name
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = nullptr
cat      = SC_BASIC

[SDTC_STR]
var      = network.connect_to_ip
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = nullptr

[SDTC_STR]
var      = network.network_id
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = nullptr

[SDTC_BOOL]
var      = network.autoclean_companies
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = false

[SDTC_VAR]
var      = network.autoclean_unprotected
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY
def      = 12
min      = 0
max      = 240

[SDTC_VAR]
var      = network.autoclean_protected
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY
def      = 36
min      = 0
max      = 240

[SDTC_VAR]
var      = network.autoclean_novehicles
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY
def      = 0
min      = 0
max      = 240

[SDTC_VAR]
var      = network.max_companies
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 15
min      = 1
max      = MAX_COMPANIES
proc     = UpdateClientConfigValues
cat      = SC_BASIC

[SDTC_VAR]
var      = network.max_clients
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 25
min      = 2
max      = MAX_CLIENTS
cat      = SC_BASIC

[SDTC_VAR]
var      = network.max_spectators
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 15
min      = 0
max      = MAX_CLIENTS
proc     = UpdateClientConfigValues
cat      = SC_BASIC

[SDTC_VAR]
var      = network.restart_game_year
type     = SLE_INT32
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY
def      = 0
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1

[SDTC_VAR]
var      = network.min_active_clients
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 0
min      = 0
max      = MAX_CLIENTS

[SDTC_OMANY]
var      = network.server_lang
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 0
max      = 35
full     = _server_langs
cat      = SC_BASIC

[SDTC_BOOL]
var      = network.reload_cfg
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = false
cat      = SC_EXPERT

[SDTC_STR]
var      = network.last_host
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = """"
cat      = SC_EXPERT

[SDTC_VAR]
var      = network.last_port
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = UINT16_MAX
cat      = SC_EXPERT

[SDTC_BOOL]
var      = network.no_http_content_downloads
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
cat      = SC_EXPERT

; Since the network code (CmdChangeSetting and friends) use the index in this array to decide
; which setting the server is talking about all conditional compilation of this array must be at the
; end. This isn't really the best solution, the settings the server can tell the client about should
; either use a separate array or some other form of identifier.

;
; We might need to emulate a right mouse button on mac
[SDTC_VAR]
ifdef    = __APPLE__
var      = gui.right_mouse_btn_emulation
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_MULTISTRING
def      = 0
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU
strhelp  = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT
strval   = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND
cat      = SC_BASIC

[SDT_END]

