; $Id$
;
; 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 InvalidateStationBuildWindow(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 DifficultyReset(int32 level);
static bool DifficultyChange(int32);
static bool DifficultyNoiseChange(int32 i);
static bool MaxNoAIsChange(int32 i);
static bool CheckRoadSide(int 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 RedrawTownAuthority(int32 p1);
extern bool UpdateNewGRFConfigPalette(int32 p1);

#ifdef ENABLE_NETWORK
static bool UpdateClientName(int32 p1);
static bool UpdateServerPassword(int32 p1);
static bool UpdateRconPassword(int32 p1);
static bool UpdateClientConfigValues(int32 p1);
#endif /* ENABLE_NETWORK */
/* 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, $strval, $proc, $from, $to),
SDTG_VAR   =   SDTG_VAR($name,       $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strval, $proc, $from, $to),
SDTC_BOOL  =  SDTC_BOOL(       $var,        $flags, $guiflags, $def,                              $str, $strval, $proc, $from, $to),
SDTC_LIST  =  SDTC_LIST(       $var, $type, $flags, $guiflags, $def,                              $str, $strval, $proc, $from, $to),
SDTC_OMANY = SDTC_OMANY(       $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strval, $proc, $from, $to),
SDTC_STR   =   SDTC_STR(       $var, $type, $flags, $guiflags, $def,                              $str, $strval, $proc, $from, $to),
SDTC_VAR   =   SDTC_VAR(       $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strval, $proc, $from, $to),
SDT_BOOL   =   SDT_BOOL($base, $var,        $flags, $guiflags, $def,                              $str, $strval, $proc, $from, $to),
SDT_OMANY  =  SDT_OMANY($base, $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strval, $proc, $from, $to, $load),
SDT_STR    =    SDT_STR($base, $var, $type, $flags, $guiflags, $def,                              $str, $strval, $proc, $from, $to),
SDT_VAR    =    SDT_VAR($base, $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strval, $proc, $from, $to),
SDT_NULL   =   SDT_NULL($length, $from, $to),
SDT_END    = SDT_END()

[defaults]
flags    = 0
guiflags = 0
interval = 0
str      = STR_NULL
strval   = STR_NULL
proc     = NULL
load     = NULL
from     = 0
to       = SL_MAX_VERSION



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

[SDT_NULL]
length   = 1
from     = 97
to       = 109

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

[SDT_VAR]
base     = GameSettings
var      = difficulty.industry_density
type     = SLE_UINT8
from     = 97
guiflags = SGF_NEWGAME_ONLY
def      = ID_END - 1
min      = 0
max      = ID_END - 1
interval = 1
strval   = STR_FUNDING_ONLY
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.max_loan
type     = SLE_UINT32
from     = 97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY
def      = 300000
min      = 100000
max      = 500000
interval = 50000
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.initial_interest
type     = SLE_UINT8
from     = 97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO
def      = 2
min      = 2
max      = 4
interval = 1
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.vehicle_costs
type     = SLE_UINT8
from     = 97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO
def      = 0
min      = 0
max      = 2
interval = 1
strval   = STR_SEA_LEVEL_LOW
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.competitor_speed
type     = SLE_UINT8
from     = 97
def      = 2
min      = 0
max      = 4
interval = 1
strval   = STR_AI_SPEED_VERY_SLOW
proc     = DifficultyChange

[SDT_NULL]
length   = 1
from     = 97
to       = 109

[SDT_VAR]
base     = GameSettings
var      = difficulty.vehicle_breakdowns
type     = SLE_UINT8
from     = 97
def      = 1
min      = 0
max      = 2
interval = 1
strval   = STR_DISASTER_NONE
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.subsidy_multiplier
type     = SLE_UINT8
from     = 97
def      = 2
min      = 0
max      = 3
interval = 1
strval   = STR_SUBSIDY_X1_5
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.construction_cost
type     = SLE_UINT8
from     = 97
guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO
def      = 0
min      = 0
max      = 2
interval = 1
strval   = STR_SEA_LEVEL_LOW
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.terrain_type
type     = SLE_UINT8
from     = 97
guiflags = SGF_NEWGAME_ONLY
def      = 1
min      = 0
max      = 3
interval = 1
strval   = STR_TERRAIN_TYPE_VERY_FLAT
proc     = DifficultyChange

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

[SDT_VAR]
base     = GameSettings
var      = difficulty.economy
type     = SLE_UINT8
from     = 97
def      = 0
min      = 0
max      = 1
interval = 1
strval   = STR_ECONOMY_STEADY
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.line_reverse_mode
type     = SLE_UINT8
from     = 97
def      = 0
min      = 0
max      = 1
interval = 1
strval   = STR_REVERSE_AT_END_OF_LINE_AND_AT_STATIONS
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.disasters
type     = SLE_UINT8
from     = 97
def      = 0
min      = 0
max      = 1
interval = 1
strval   = STR_CONFIG_SETTING_OFF
proc     = DifficultyChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.town_council_tolerance
type     = SLE_UINT8
from     = 97
def      = 0
min      = 0
max      = 2
interval = 1
strval   = STR_CITY_APPROVAL_PERMISSIVE
proc     = DifficultyNoiseChange

[SDT_VAR]
base     = GameSettings
var      = difficulty.diff_level
type     = SLE_UINT8
from     = 97
def      = 3
min      = 0
max      = 3
proc     = DifficultyReset

; 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     = 97
guiflags = SGF_NO_NETWORK
def      = 0
max      = 255
full     = _town_names

[SDT_OMANY]
base     = GameSettings
var      = game_creation.landscape
type     = SLE_UINT8
from     = 97
guiflags = SGF_NO_NETWORK
def      = 0
max      = 3
full     = _climates
load     = ConvertLandscape

[SDT_VAR]
base     = GameSettings
var      = game_creation.snow_line
type     = SLE_UINT8
from     = 97
guiflags = SGF_NO_NETWORK
def      = DEF_SNOWLINE_HEIGHT * TILE_HEIGHT
min      = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
max      = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT

[SDT_OMANY]
base     = GameSettings
var      = vehicle.road_side
type     = SLE_UINT8
from     = 97
guiflags = SGF_NO_NETWORK
def      = 1
max      = 1
full     = _roadsides
proc     = CheckRoadSide

; Construction

[SDT_BOOL]
base     = GameSettings
var      = construction.build_on_slopes
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_BUILDONSLOPES

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

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

[SDT_VAR]
base     = GameSettings
var      = construction.terraform_frame_burst
type     = SLE_UINT16
from     = 156
def      = 4096
min      = 0
max      = 1 << 30
interval = 1

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

[SDT_VAR]
base     = GameSettings
var      = construction.clear_frame_burst
type     = SLE_UINT16
from     = 156
def      = 4096
min      = 0
max      = 1 << 30
interval = 1

[SDT_BOOL]
base     = GameSettings
var      = construction.autoslope
from     = 75
def      = true
str      = STR_CONFIG_SETTING_AUTOSLOPE

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

[SDT_VAR]
base     = GameSettings
var      = construction.max_bridge_length
type     = SLE_UINT16
from     = 159
guiflags = SGF_NO_NETWORK
def      = 64
min      = 1
max      = 2048
interval = 1
str      = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH

[SDT_VAR]
base     = GameSettings
var      = construction.max_tunnel_length
type     = SLE_UINT16
from     = 159
guiflags = SGF_NO_NETWORK
def      = 64
min      = 1
max      = 2048
interval = 1
str      = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH

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

[SDT_BOOL]
base     = GameSettings
var      = construction.signal_side
flags    = SLF_NO_NETWORK_SYNC
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_SIGNALSIDE
proc     = RedrawScreen

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

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

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

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

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

; Vehicles

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

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

[SDT_VAR]
base     = GameSettings
var      = vehicle.train_slope_steepness
type     = SLE_UINT8
from     = 133
def      = 3
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
proc     = TrainSlopeSteepnessChanged

[SDT_VAR]
base     = GameSettings
var      = vehicle.roadveh_slope_steepness
type     = SLE_UINT8
from     = 139
def      = 7
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS
proc     = RoadVehSlopeSteepnessChanged

[SDT_BOOL]
base     = GameSettings
var      = pf.forbid_90_deg
def      = false
str      = STR_CONFIG_SETTING_FORBID_90_DEG

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_train_length
type     = SLE_UINT8
from     = 159
def      = 7
min      = 1
max      = 64
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_LENGTH

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

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

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

; path finder

[SDT_BOOL]
base     = GameSettings
var      = pf.roadveh_queue
def      = true
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING

[SDT_BOOL]
base     = GameSettings
var      = pf.new_pathfinding_all
to       = 86
def      = false

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.ship_use_yapf
from     = 28
to       = 86
def      = false

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.road_use_yapf
from     = 28
to       = 86
def      = true

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.rail_use_yapf
from     = 28
to       = 86
def      = true

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

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

[SDT_VAR]
base     = GameSettings
var      = pf.pathfinder_for_ships
type     = SLE_UINT8
from     = 87
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS
strval   = STR_CONFIG_SETTING_PATHFINDER_OPF

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

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_trains
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_TRAINS
proc     = RedrawScreen

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_roadveh
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
proc     = RedrawScreen

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_aircraft
type     = SLE_UINT16
def      = 200
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_AIRCRAFT
proc     = RedrawScreen

[SDT_VAR]
base     = GameSettings
var      = vehicle.max_ships
type     = SLE_UINT16
def      = 300
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_SHIPS
proc     = RedrawScreen

[SDTG_BOOL]
name     = NULL
guiflags = SGF_NO_NETWORK
var      = _old_vds.servint_ispercent
def      = false
to       = 119

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

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

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

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

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

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

[SDT_BOOL]
base     = GameSettings
var      = vehicle.disable_elrails
from     = 38
guiflags = SGF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_DISABLE_ELRAILS
proc     = SettingsDisableElrail

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

; order.timetabling
[SDT_NULL]
length   = 1
from     = 67
to       = 158

[SDT_VAR]
base     = GameSettings
var      = vehicle.plane_speed
type     = SLE_UINT8
from     = 90
guiflags = SGF_NO_NETWORK
def      = 4
min      = 1
max      = 4
str      = STR_CONFIG_SETTING_PLANE_SPEED

[SDT_BOOL]
base     = GameSettings
var      = vehicle.dynamic_engines
from     = 95
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_DYNAMIC_ENGINES
proc     = ChangeDynamicEngines

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

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

[SDTC_BOOL]
var      = gui.sg_full_load_any
from     = 22
to       = 92
def      = true

[SDT_BOOL]
base     = GameSettings
var      = order.improved_load
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_IMPROVEDLOAD

[SDT_BOOL]
base     = GameSettings
var      = order.selectgoods
def      = true
str      = STR_CONFIG_SETTING_SELECTGOODS

[SDTC_BOOL]
var      = gui.sg_new_nonstop
from     = 22
to       = 92
def      = false

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

[SDT_VAR]
base     = GameSettings
var      = station.station_spread
type     = SLE_UINT8
def      = 12
min      = 4
max      = 64
str      = STR_CONFIG_SETTING_STATION_SPREAD
proc     = InvalidateStationBuildWindow

[SDT_BOOL]
base     = GameSettings
var      = order.serviceathelipad
def      = true
str      = STR_CONFIG_SETTING_SERVICEATHELIPAD

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

[SDT_BOOL]
base     = GameSettings
var      = order.gradual_loading
from     = 40
guiflags = SGF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_GRADUAL_LOADING

[SDT_BOOL]
base     = GameSettings
var      = construction.road_stop_on_town_road
from     = 47
def      = true
str      = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD

[SDT_BOOL]
base     = GameSettings
var      = construction.road_stop_on_competitor_road
from     = 114
def      = true
str      = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD

[SDT_BOOL]
base     = GameSettings
var      = station.adjacent_stations
from     = 62
def      = true
str      = STR_CONFIG_SETTING_ADJACENT_STATIONS

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

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

##
[SDT_BOOL]
base     = GameSettings
var      = economy.inflation
def      = true
str      = STR_CONFIG_SETTING_INFLATION

[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
strval   = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE
proc     = InvalidateBuildIndustryWindow

[SDT_VAR]
base     = GameSettings
var      = construction.industry_platform
type     = SLE_UINT8
from     = 148
def      = 1
min      = 0
max      = 4
str      = STR_CONFIG_SETTING_INDUSTRY_PLATFORM

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

[SDT_NULL]
length   = 1
to       = 140

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

[SDT_BOOL]
base     = GameSettings
var      = economy.exclusive_rights
from     = 79
def      = true
str      = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
proc     = RedrawTownAuthority

[SDT_BOOL]
base     = GameSettings
var      = economy.fund_roads
from     = 160
def      = true
str      = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
proc     = RedrawTownAuthority

[SDT_BOOL]
base     = GameSettings
var      = economy.give_money
from     = 79
def      = true
str      = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY

[SDT_VAR]
base     = GameSettings
var      = game_creation.snow_line_height
type     = SLE_UINT8
def      = DEF_SNOWLINE_HEIGHT
min      = MIN_SNOWLINE_HEIGHT
max      = MAX_SNOWLINE_HEIGHT
str      = STR_CONFIG_SETTING_SNOWLINE_HEIGHT

[SDT_NULL]
length   = 4
to       = 143

[SDT_VAR]
base     = GameSettings
var      = game_creation.starting_year
type     = SLE_INT32
guiflags = SGF_NOCOMMA
def      = DEF_START_YEAR
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_STARTING_YEAR

[SDT_NULL]
length   = 4
to       = 104

[SDT_BOOL]
base     = GameSettings
var      = economy.smooth_economy
def      = true
str      = STR_CONFIG_SETTING_SMOOTH_ECONOMY
proc     = InvalidateIndustryViewWindow

[SDT_BOOL]
base     = GameSettings
var      = economy.allow_shares
def      = false
str      = STR_CONFIG_SETTING_ALLOW_SHARES

[SDT_VAR]
base     = GameSettings
var      = economy.feeder_payment_share
type     = SLE_UINT8
from     = 134
def      = 75
min      = 0
max      = 100
str      = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE

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

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

[SDT_VAR]
base     = GameSettings
var      = economy.initial_city_size
type     = SLE_UINT8
from     = 56
def      = 2
min      = 1
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER

[SDT_BOOL]
base     = GameSettings
var      = economy.mod_road_rebuild
from     = 77
def      = true
str      = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD

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

[SDT_BOOL]
base     = GameSettings
var      = ai.ai_in_multiplayer
def      = true
str      = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER

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

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

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

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

[SDT_VAR]
base     = GameSettings
var      = ai.ai_max_opcode_till_suspend
type     = SLE_UINT32
from     = 107
guiflags = SGF_NEWGAME_ONLY
def      = 10000
min      = 5000
max      = 250000
interval = 2500
str      = STR_CONFIG_SETTING_AI_MAX_OPCODES

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

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

[SDT_BOOL]
base     = GameSettings
var      = pf.reverse_at_signals
from     = 159
def      = false
str      = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS

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

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

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

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

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

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

[SDT_BOOL]
base     = GameSettings
var      = pf.reserve_paths
from     = 100
def      = false

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

##
[SDT_VAR]
base     = GameSettings
var      = pf.opf.pf_maxlength
type     = SLE_UINT16
def      = 4096
min      = 64
max      = 65535

[SDT_VAR]
base     = GameSettings
var      = pf.opf.pf_maxdepth
type     = SLE_UINT8
def      = 48
min      = 4
max      = 255

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

##
[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.disable_node_optimization
from     = 28
def      = false

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

[SDT_BOOL]
base     = GameSettings
var      = pf.yapf.rail_firstred_twoway_eol
from     = 28
def      = false

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[SDT_VAR]
base     = GameSettings
var      = game_creation.oil_refinery_limit
type     = SLE_UINT8
from     = 30
def      = 32
min      = 12
max      = 48
str      = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE

[SDT_VAR]
base     = GameSettings
var      = game_creation.tgen_smoothness
type     = SLE_UINT8
from     = 30
guiflags = SGF_MULTISTRING
def      = 1
min      = 0
max      = 3
str      = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN
strval   = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH

[SDT_VAR]
base     = GameSettings
var      = game_creation.variety
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 5

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

[SDT_VAR]
base     = GameSettings
var      = game_creation.tree_placer
type     = SLE_UINT8
from     = 30
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_TREE_PLACER
strval   = STR_CONFIG_SETTING_TREE_PLACER_NONE

[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

[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

##
[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

[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

[SDT_BOOL]
base     = GameSettings
var      = construction.freeform_edges
from     = 111
def      = true
str      = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES
proc     = CheckFreeformEdges

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

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

[SDT_VAR]
base     = GameSettings
var      = construction.extra_tree_placement
type     = SLE_UINT8
from     = 132
guiflags = SGF_MULTISTRING
def      = 2
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT
strval   = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE

[SDT_VAR]
base     = GameSettings
var      = game_creation.custom_sea_level
type     = SLE_UINT8
from     = 149
def      = 1
min      = 2
max      = 90

; locale

[SDT_OMANY]
base     = GameSettings
var      = locale.currency
type     = SLE_UINT8
from     = 97
flags    = SLF_NO_NETWORK_SYNC
def      = 0
max      = CUSTOM_CURRENCY_ID
full     = _locale_currencies
proc     = RedrawScreen

[SDT_OMANY]
base     = GameSettings
var      = locale.units
type     = SLE_UINT8
from     = 97
flags    = SLF_NO_NETWORK_SYNC
def      = 1
max      = 2
full     = _locale_units
proc     = RedrawScreen

[SDT_STR]
base     = GameSettings
var      = locale.digit_group_separator
type     = SLE_STRQ
from     = 118
flags    = SLF_NO_NETWORK_SYNC
def      = NULL
proc     = RedrawScreen

[SDT_STR]
base     = GameSettings
var      = locale.digit_group_separator_currency
type     = SLE_STRQ
from     = 118
flags    = SLF_NO_NETWORK_SYNC
def      = NULL
proc     = RedrawScreen

[SDT_STR]
base     = GameSettings
var      = locale.digit_decimal_separator
type     = SLE_STRQ
from     = 126
flags    = SLF_NO_NETWORK_SYNC
def      = NULL
proc     = RedrawScreen


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

[SDTC_OMANY]
var      = gui.autosave
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1
max      = 4
full     = _autosave_interval

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

[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      = 0
max      = 2
full     = _savegame_date
str      = STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES
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

[SDTC_BOOL]
var      = gui.autoscroll
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_AUTOSCROLL

[SDTC_BOOL]
var      = gui.reverse_scroll
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_REVERSE_SCROLLING

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

[SDTC_BOOL]
var      = gui.left_mouse_btn_scrolling
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING

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

[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

[SDTC_VAR]
var      = gui.hover_delay
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_0ISDISABLED
def      = 2
min      = 1
max      = 5
str      = STR_CONFIG_SETTING_HOVER_DELAY

[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
strval   = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT
proc     = v_PositionMainToolbar

[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
strval   = STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT
proc     = v_PositionStatusbar

[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

[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

[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
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

[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
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
strval   = STR_CONFIG_SETTING_LIVERIES_NONE
proc     = InvalidateCompanyLiveryWindow

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

[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
strval   = STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM

[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

[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

[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
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
proc     = InvalidateVehTimetableWindow

[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
proc     = InvalidateVehTimetableWindow

[SDTC_BOOL]
var      = gui.quick_goto
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_QUICKGOTO

[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
strval   = STR_CONFIG_SETTING_COMPANIES_OFF
proc     = RedrawScreen

[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
strval   = STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST

[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
proc     = CloseSignalGUI

[SDTC_VAR]
var      = gui.coloured_news_year
type     = SLE_INT32
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NOCOMMA
def      = 2000
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_COLOURED_NEWS_YEAR

[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
proc     = DragSignalsDensityChanged

[SDTC_VAR]
var      = gui.semaphore_build_before
type     = SLE_INT32
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NOCOMMA
def      = 1950
min      = MIN_YEAR
max      = MAX_YEAR
interval = 1
str      = STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE
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

[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
strval   = STR_CONFIG_SETTING_ORDER_REVIEW_OFF

[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

[SDTC_BOOL]
var      = gui.disable_unsuitable_building
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = true
str      = STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING
proc     = RedrawScreen

[SDTC_BOOL]
var      = gui.new_nonstop
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false
str      = STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT

[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
strval   = STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END

[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

[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      = false
str      = STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION
proc     = RedrawScreen

[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
strval   = STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL

[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
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

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

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

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

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


; 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.developer
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 1
min      = 0
max      = 2

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

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

[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

[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
str      = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE
strval   = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS
proc     = UpdateNewGRFConfigPalette

[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      = music.playlist
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 0
min      = 0
max      = 5
interval = 1

[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

[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

[SDTC_LIST]
var      = music.custom_1
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = NULL

[SDTC_LIST]
var      = music.custom_2
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = NULL

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

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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
var      = gui.network_chat_box_width
type     = SLE_UINT16
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = 620
min      = 200
max      = 65535

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

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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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_BOOL]
ifdef    = ENABLE_NETWORK
var      = network.pause_on_join
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = true

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

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

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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
var      = network.lan_internet
type     = SLE_UINT8
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = 0
min      = 0
max      = 1

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.client_name
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = NULL
proc     = UpdateClientName

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.server_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NULL
proc     = UpdateServerPassword

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.rcon_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NULL
proc     = UpdateRconPassword

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.admin_password
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NULL

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.default_company_pass
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = NULL

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.server_name
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
guiflags = SGF_NETWORK_ONLY
def      = NULL

[SDTC_STR]
ifdef    = ENABLE_NETWORK
var      = network.connect_to_ip
type     = SLE_STRB
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = NULL

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

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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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]
ifdef    = ENABLE_NETWORK
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]
ifdef    = ENABLE_NETWORK
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]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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

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

[SDTC_VAR]
ifdef    = ENABLE_NETWORK
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]
ifdef    = ENABLE_NETWORK
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

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

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

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

[SDTC_BOOL]
ifdef    = ENABLE_NETWORK
var      = network.no_http_content_downloads
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
def      = false

; 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 seperate 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
strval   = STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND

[SDT_END]