File diff r25549:fb65768b27a1 → r25550:35330ff774a6
src/table/settings.ini
Show inline comments
 
; 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 void v_PositionMainToolbar(int32 new_value);
 
static void v_PositionStatusbar(int32 new_value);
 
static void RedrawSmallmap(int32 new_value);
 
static void StationSpreadChanged(int32 new_value);
 
static void CloseSignalGUI(int32 new_value);
 
static void UpdateConsists(int32 new_value);
 
static void TrainAccelerationModelChanged(int32 new_value);
 
static void RoadVehAccelerationModelChanged(int32 new_value);
 
static void TrainSlopeSteepnessChanged(int32 new_value);
 
static void RoadVehSlopeSteepnessChanged(int32 new_value);
 
static void TownFoundingChanged(int32 new_value);
 
static void DifficultyNoiseChange(int32 new_value);
 
static void MaxNoAIsChange(int32 new_value);
 
static bool CheckRoadSide(int32 &new_value);
 
static bool CheckMaxHeightLevel(int32 &new_value);
 
static bool CheckFreeformEdges(int32 &new_value);
 
static void UpdateFreeformEdges(int32 new_value);
 
static bool CheckDynamicEngines(int32 &new_value);
 
static void StationCatchmentChanged(int32 new_value);
 
static void InvalidateCompanyLiveryWindow(int32 new_value);
 
static void InvalidateNewGRFChangeWindows(int32 new_value);
 
static void ZoomMinMaxChanged(int32 new_value);
 
static void SpriteZoomMinChanged(int32 new_value);
 
static void MaxVehiclesChanged(int32 new_value);
 
static void InvalidateShipPathCache(int32 new_value);
 

	
 
static bool ReplaceAsteriskWithEmptyPassword(std::string &newval);
 
static void UpdateClientConfigValues();
 
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 does not need to be synched. Every client assigns the
 
 * service_interval value to the v->service_interval, meaning that every client
 
 * assigns its own 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 SettingTable _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),
 
SDTG_BOOL  =  SDTG_BOOL($name,              $flags, $guiflags, $var, $def,                        $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDTG_VAR   =   SDTG_VAR($name,       $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDTG_OMANY = SDTG_OMANY($name,       $type, $flags, $guiflags, $var, $def,       $max, $full,     $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDTC_BOOL  =  SDTC_BOOL(       $var,        $flags, $guiflags, $def,                              $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDTC_LIST  =  SDTC_LIST(       $var, $type, $flags, $guiflags, $def,                                                                          $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_OMANY = SDTC_OMANY(       $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDTC_SSTR  =  SDTC_SSTR(       $var, $type, $flags, $guiflags, $def,             $length,                                  $pre_cb, $post_cb, $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),
 
SDTC_VAR   =   SDTC_VAR(       $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDT_BOOL   =   SDT_BOOL($base, $var,        $flags, $guiflags, $def,                              $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDT_OMANY  =  SDT_OMANY($base, $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
 
SDT_SSTR   =   SDT_SSTR($base, $var, $type, $flags, $guiflags, $def,                                                       $pre_cb, $post_cb, $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_VAR    =    SDT_VAR($base, $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
 
SDT_NULL   =   SDT_NULL($length, $from, $to),
 

	
 
[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
 
pre_cb   = nullptr
 
post_cb  = 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
 
post_cb  = 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
 
@@ -315,25 +302,25 @@ cat      = SC_BASIC
 
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
 
post_cb  = 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
 
@@ -375,43 +362,44 @@ 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
 
pre_cb   = 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
 
pre_cb   = CheckMaxHeightLevel
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_SMALLMAP, 2); }
 
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
 
@@ -569,73 +557,73 @@ 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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
post_cb  = 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
 
post_cb  = 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]
 
@@ -813,78 +801,78 @@ extra    = offsetof(LinkGraphSettings, s
 
[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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -989,85 +977,85 @@ cat      = SC_EXPERT
 
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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -1113,51 +1101,51 @@ 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -1166,25 +1154,25 @@ 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
 
pre_cb   = CheckDynamicEngines
 
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
 
@@ -1229,52 +1217,52 @@ 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -1299,57 +1287,57 @@ 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
 
post_cb  = [](auto new_value) { InvalidateWindowClassesData(WC_TOWN_VIEW, new_value); }
 

	
 
[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
 
post_cb  = [](auto) { DeleteWindowById(WC_SELECT_STATION, 0); }
 

	
 
##
 
[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
 
post_cb  = [](auto) { InvalidateWindowData(WC_BUILD_INDUSTRY, 0); }
 
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
 
@@ -1364,55 +1352,55 @@ str      = STR_CONFIG_SETTING_MULTIPINDT
 
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
 
post_cb  = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
 
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
 
post_cb  = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
 
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
 
post_cb  = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
 
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
 
post_cb  = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
 
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]
 
@@ -1496,34 +1484,34 @@ 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
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_INDUSTRY_VIEW); }
 
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
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_COMPANY); }
 

	
 
[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
 
@@ -1749,25 +1737,25 @@ 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
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_COMPANY_INFRASTRUCTURE); }
 
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
 
@@ -2418,25 +2406,26 @@ 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
 
pre_cb   = CheckFreeformEdges
 
post_cb  = UpdateFreeformEdges
 
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]
 
@@ -2519,131 +2508,131 @@ 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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
cat      = SC_BASIC
 
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER
 
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT
 
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL
 

	
 
[SDT_OMANY]
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
cat      = SC_BASIC
 
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT
 
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT
 
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL
 

	
 
[SDT_OMANY]
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
cat      = SC_BASIC
 
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME
 
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT
 
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL
 

	
 
[SDT_OMANY]
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
cat      = SC_BASIC
 
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE
 
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT
 
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL
 

	
 
[SDT_OMANY]
 
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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
cat      = SC_BASIC
 
str      = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT
 
strhelp  = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT
 
strval   = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL
 

	
 
[SDT_SSTR]
 
base     = GameSettings
 
var      = locale.digit_group_separator
 
type     = SLE_STRQ
 
from     = SLV_118
 
flags    = SLF_NO_NETWORK_SYNC
 
def      = nullptr
 
@@ -2802,39 +2791,39 @@ 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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -2857,94 +2846,94 @@ 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = 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
 
post_cb  = [](auto) { UpdateAllTownVirtCoords(); }
 

	
 
[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
 
post_cb  = 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
 
post_cb  = 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
 
@@ -3008,77 +2997,77 @@ 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
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); }
 
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
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_VEHICLE_TIMETABLE, VIWD_MODIFY_ORDERS); }
 

	
 
[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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
post_cb  = 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
 
@@ -3086,47 +3075,47 @@ 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
 
post_cb  = [](auto) { InvalidateWindowData(WC_BUILD_SIGNAL, 0); }
 
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
 
post_cb  = 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
 
@@ -3204,25 +3193,25 @@ 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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
@@ -3277,25 +3266,25 @@ 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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 

	
 
[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
 
@@ -3325,33 +3314,33 @@ 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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 

	
 
[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
 
post_cb  = [](auto) { MarkWholeScreenDirty(); }
 
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
 
@@ -3370,55 +3359,55 @@ max      = 2
 
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
 
post_cb  = InvalidateNewGRFChangeWindows
 
cat      = SC_EXPERT
 

	
 
[SDTC_BOOL]
 
var      = gui.ai_developer_tools
 
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
 
def      = false
 
proc     = InvalidateAISettingsWindow
 
post_cb  = [](auto) { InvalidateWindowClassesData(WC_AI_SETTINGS); }
 
cat      = SC_EXPERT
 

	
 
[SDTC_BOOL]
 
var      = gui.scenario_developer
 
flags    = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
 
def      = false
 
proc     = InvalidateNewGRFChangeWindows
 
post_cb  = 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
 
post_cb  = 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
 
@@ -4020,47 +4009,47 @@ guiflags = SGF_0ISDISABLED | SGF_NETWORK
 
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
 
post_cb  = [](auto) { 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
 
proc     = UpdateClientConfigValues
 
post_cb  = [](auto) { UpdateClientConfigValues(); }
 
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
 
post_cb  = [](auto) { 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