; 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 <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
;

; Linkgraph settings as stored in the main configuration file ("openttd.cfg")
; and in the savegame PATS chunk and in the linkgraph chunks for each job running.

[pre-amble]
static const SettingVariant _linkgraph_settings_table[] = {
[post-amble]
};
[templates]
SDT_VAR    =    SDT_VAR(GameSettings, $var, $type, SettingFlags({$flags}), $def,       $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $range_cb, $from, $to,        $cat, $extra, $startup),

[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");

[defaults]
flags    =
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
def_cb   = nullptr
range_cb = nullptr
load     = nullptr
from     = SL_MIN_VERSION
to       = SL_MAX_VERSION
cat      = SC_ADVANCED
extra    = 0
startup  = false


[SDT_VAR]
var      = linkgraph.recalc_interval
type     = SLE_UINT16
from     = SLV_183
def      = 8
min      = 4
max      = 90
interval = 1
str      = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL
strval   = STR_CONFIG_SETTING_SECONDS_VALUE
strhelp  = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT
extra    = offsetof(LinkGraphSettings, recalc_interval)

[SDT_VAR]
var      = linkgraph.recalc_time
type     = SLE_UINT16
from     = SLV_183
def      = 32
min      = 1
max      = 9000
interval = 1
str      = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME
strval   = STR_CONFIG_SETTING_SECONDS_VALUE
strhelp  = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT
extra    = offsetof(LinkGraphSettings, recalc_time)

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

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

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

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

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

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

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

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