You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
654 lines
14 KiB
INI
654 lines
14 KiB
INI
; 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/>.
|
|
;
|
|
|
|
; Pathfinding settings as stored in the main configuration file ("openttd.cfg")
|
|
; and in the savegame PATS chunk.
|
|
|
|
[pre-amble]
|
|
static void InvalidateShipPathCache(int32_t new_value);
|
|
static void CheckYapfRailSignalPenalties(int32_t new_value);
|
|
|
|
static bool TrainPathfinderSettingGUI(SettingOnGuiCtrlData &data);
|
|
|
|
static const SettingTable _pathfinding_settings{
|
|
[post-amble]
|
|
};
|
|
[templates]
|
|
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
|
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
|
|
|
[validation]
|
|
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
|
|
|
[defaults]
|
|
flags = SF_NONE
|
|
interval = 0
|
|
str = STR_NULL
|
|
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
|
strval = STR_NULL
|
|
pre_cb = nullptr
|
|
post_cb = nullptr
|
|
str_cb = nullptr
|
|
help_cb = nullptr
|
|
val_cb = nullptr
|
|
guiproc = nullptr
|
|
load = nullptr
|
|
from = SL_MIN_VERSION
|
|
to = SL_MAX_VERSION
|
|
cat = SC_ADVANCED
|
|
startup = false
|
|
extver = SlXvFeatureTest()
|
|
patxname = nullptr
|
|
enumlist = <this parameter must be set>
|
|
|
|
|
|
[SDT_BOOL]
|
|
var = pf.forbid_90_deg
|
|
def = true
|
|
str = STR_CONFIG_SETTING_FORBID_90_DEG
|
|
strhelp = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.back_of_one_way_pbs_waiting_point
|
|
flags = SF_PATCH
|
|
def = true
|
|
str = STR_CONFIG_SETTING_BACK_ONE_WAY_PBS_SAFE_WAITING
|
|
str = STR_CONFIG_SETTING_BACK_ONE_WAY_PBS_SAFE_WAITING_HELPTEXT
|
|
cat = SC_EXPERT
|
|
patxname = ""pf.back_of_one_way_pbs_waiting_point""
|
|
|
|
[SDT_BOOL]
|
|
var = pf.roadveh_queue
|
|
def = true
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.reroute_rv_on_layout_change
|
|
type = SLE_UINT8
|
|
flags = SF_GUI_DROPDOWN | SF_PATCH
|
|
def = 1
|
|
min = 0
|
|
max = 2
|
|
interval = 1
|
|
str = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE
|
|
strhelp = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_HELPTEXT
|
|
strval = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_NO
|
|
cat = SC_ADVANCED
|
|
patxname = ""pf.reroute_rv_on_layout_change""
|
|
|
|
[SDT_BOOL]
|
|
var = pf.new_pathfinding_all
|
|
to = SLV_87
|
|
def = false
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.yapf.ship_use_yapf
|
|
from = SLV_28
|
|
to = SLV_87
|
|
def = false
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.yapf.road_use_yapf
|
|
from = SLV_28
|
|
to = SLV_87
|
|
def = true
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.yapf.rail_use_yapf
|
|
from = SLV_28
|
|
to = SLV_87
|
|
def = true
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.pathfinder_for_trains
|
|
type = SLE_UINT8
|
|
from = SLV_87
|
|
flags = SF_GUI_DROPDOWN
|
|
def = 2
|
|
min = 1
|
|
max = 2
|
|
interval = 1
|
|
str = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS
|
|
strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT
|
|
strval = STR_CONFIG_SETTING_PATHFINDER_NPF
|
|
cat = SC_EXPERT
|
|
guiproc = TrainPathfinderSettingGUI
|
|
|
|
[SDT_VAR]
|
|
var = pf.pathfinder_for_roadvehs
|
|
type = SLE_UINT8
|
|
from = SLV_87
|
|
flags = SF_GUI_DROPDOWN
|
|
def = 2
|
|
min = 1
|
|
max = 2
|
|
interval = 1
|
|
str = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES
|
|
strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT
|
|
strval = STR_CONFIG_SETTING_PATHFINDER_NPF
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.pathfinder_for_ships
|
|
type = SLE_UINT8
|
|
from = SLV_87
|
|
flags = SF_GUI_DROPDOWN
|
|
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
|
|
post_cb = InvalidateShipPathCache
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.reverse_at_signals
|
|
from = SLV_159
|
|
def = false
|
|
str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS
|
|
strhelp = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT
|
|
|
|
[SDT_VAR]
|
|
var = pf.wait_oneway_signal
|
|
type = SLE_UINT8
|
|
def = 15
|
|
min = 2
|
|
max = 255
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.wait_twoway_signal
|
|
type = SLE_UINT8
|
|
def = 41
|
|
min = 2
|
|
max = 255
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.wait_for_pbs_path
|
|
type = SLE_UINT8
|
|
from = SLV_100
|
|
def = 30
|
|
min = 2
|
|
max = 255
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.reserve_paths
|
|
from = SLV_100
|
|
def = false
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.path_backoff_interval
|
|
type = SLE_UINT8
|
|
from = SLV_100
|
|
def = 20
|
|
min = 1
|
|
max = 255
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_max_search_nodes
|
|
type = SLE_UINT
|
|
def = AYSTAR_DEF_MAX_SEARCH_NODES
|
|
min = 500
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_firstred_penalty
|
|
type = SLE_UINT
|
|
def = 10 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_firstred_exit_penalty
|
|
type = SLE_UINT
|
|
def = 100 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_lastred_penalty
|
|
type = SLE_UINT
|
|
def = 10 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_station_penalty
|
|
type = SLE_UINT
|
|
def = 1 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_slope_penalty
|
|
type = SLE_UINT
|
|
def = 1 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_curve_penalty
|
|
type = SLE_UINT
|
|
def = 1 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_depot_reverse_penalty
|
|
type = SLE_UINT
|
|
def = 50 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_pbs_cross_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 3 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_rail_pbs_signal_back_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 15 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_buoy_penalty
|
|
type = SLE_UINT
|
|
def = 2 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_water_curve_penalty
|
|
type = SLE_UINT
|
|
def = 1 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_road_curve_penalty
|
|
type = SLE_UINT
|
|
def = 1 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_crossing_penalty
|
|
type = SLE_UINT
|
|
def = 3 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_road_drive_through_penalty
|
|
type = SLE_UINT
|
|
from = SLV_47
|
|
def = 8 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_road_dt_occupied_penalty
|
|
type = SLE_UINT
|
|
from = SLV_130
|
|
def = 8 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.npf_road_bay_occupied_penalty
|
|
type = SLE_UINT
|
|
from = SLV_130
|
|
def = 15 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 100000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.npf.maximum_go_to_depot_penalty
|
|
type = SLE_UINT
|
|
from = SLV_131
|
|
def = 20 * NPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.yapf.disable_node_optimization
|
|
from = SLV_28
|
|
def = false
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.max_search_nodes
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = AYSTAR_DEF_MAX_SEARCH_NODES
|
|
min = 500
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_BOOL]
|
|
var = pf.yapf.rail_firstred_twoway_eol
|
|
from = SLV_28
|
|
def = true
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_firstred_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 10 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_firstred_exit_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 100 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_lastred_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 10 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_lastred_exit_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 100 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_station_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 10 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_slope_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 2 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_curve45_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 1 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_curve90_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 6 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_depot_reverse_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 50 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_crossing_penalty
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 3 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_look_ahead_max_signals
|
|
type = SLE_UINT
|
|
from = SLV_28
|
|
def = 10
|
|
min = 1
|
|
max = 100
|
|
cat = SC_EXPERT
|
|
post_cb = CheckYapfRailSignalPenalties
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_look_ahead_signal_p0
|
|
type = SLE_INT
|
|
from = SLV_28
|
|
def = 500
|
|
min = -1000000
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
post_cb = CheckYapfRailSignalPenalties
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_look_ahead_signal_p1
|
|
type = SLE_INT
|
|
from = SLV_28
|
|
def = -100
|
|
min = -1000000
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
post_cb = CheckYapfRailSignalPenalties
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_look_ahead_signal_p2
|
|
type = SLE_INT
|
|
from = SLV_28
|
|
def = 5
|
|
min = -1000000
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
post_cb = CheckYapfRailSignalPenalties
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_pbs_cross_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 3 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_pbs_station_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 8 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_pbs_signal_back_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 15 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_doubleslip_penalty
|
|
type = SLE_UINT
|
|
from = SLV_100
|
|
def = 1 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_longer_platform_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 8 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 20000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_longer_platform_per_tile_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 0 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 20000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_shorter_platform_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 40 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 20000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.rail_shorter_platform_per_tile_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 0 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 20000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_slope_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 2 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_curve_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 1 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_crossing_penalty
|
|
type = SLE_UINT
|
|
from = SLV_33
|
|
def = 3 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_stop_penalty
|
|
type = SLE_UINT
|
|
from = SLV_47
|
|
def = 8 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_stop_occupied_penalty
|
|
type = SLE_UINT
|
|
from = SLV_130
|
|
def = 8 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.road_stop_bay_occupied_penalty
|
|
type = SLE_UINT
|
|
from = SLV_130
|
|
def = 15 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.maximum_go_to_depot_penalty
|
|
type = SLE_UINT
|
|
from = SLV_131
|
|
def = 20 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.ship_curve45_penalty
|
|
type = SLE_UINT
|
|
from = SLV_SHIP_CURVE_PENALTY
|
|
def = 1 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|
|
|
|
[SDT_VAR]
|
|
var = pf.yapf.ship_curve90_penalty
|
|
type = SLE_UINT
|
|
from = SLV_SHIP_CURVE_PENALTY
|
|
def = 6 * YAPF_TILE_LENGTH
|
|
min = 0
|
|
max = 1000000
|
|
cat = SC_EXPERT
|