2011-03-06 10:54:20 +01:00
; 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/>.
;
2021-05-29 11:08:58 +02:00
; These are settings that are company-wide. Meaning that if 1 player in a
; company changes them, it changes for all players.
2011-03-03 22:04:17 +01:00
[pre-amble]
2023-05-08 19:01:06 +02:00
static void UpdateAllServiceInterval(int32_t new_value);
static bool CanUpdateServiceInterval(VehicleType type, int32_t &new_value);
static void UpdateServiceInterval(VehicleType type, int32_t new_value);
2024-01-27 22:50:40 +01:00
static void SettingsValueAbsolute(const IntSettingDesc &sd, uint first_param, int32_t value);
2024-03-25 21:38:44 +01:00
static void GetDefaultServiceInterval(VehicleType type, int32_t &new_value);
2011-03-06 11:35:40 +01:00
2021-07-05 17:46:38 +02:00
static const SettingVariant _company_settings_table[] = {
2011-03-03 22:04:17 +01:00
[post-amble]
};
[templates]
2024-03-25 21:33:40 +01:00
SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $str_cb, $help_cb, $val_cb, $def_cb, $from, $to, $cat, $extra, $startup),
2011-03-03 22:04:17 +01:00
2021-03-01 13:12:17 +01:00
[validation]
2021-05-29 09:12:11 +02:00
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size");
2021-03-01 13:12:17 +01:00
2011-03-05 11:12:03 +01:00
[defaults]
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY
2011-03-05 11:12:03 +01:00
interval = 0
str = STR_NULL
2012-05-12 12:09:00 +02:00
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
2011-03-06 16:51:44 +01:00
strval = STR_NULL
2021-05-24 11:47:37 +02:00
pre_cb = nullptr
post_cb = nullptr
2024-01-27 22:11:20 +01:00
str_cb = nullptr
help_cb = nullptr
val_cb = nullptr
2024-03-25 21:33:40 +01:00
def_cb = nullptr
2019-04-11 13:24:02 +02:00
load = nullptr
2019-01-26 02:48:40 +01:00
from = SL_MIN_VERSION
2011-03-05 11:20:49 +01:00
to = SL_MAX_VERSION
2012-11-08 11:04:00 +01:00
cat = SC_ADVANCED
2020-12-14 00:14:37 +01:00
extra = 0
2021-02-16 00:09:52 +01:00
startup = false
2011-03-05 11:12:03 +01:00
2011-03-03 22:04:17 +01:00
[SDT_BOOL]
var = engine_renew
2020-12-15 09:58:37 +01:00
def = true
2011-03-03 22:04:17 +01:00
str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT
2019-09-08 11:04:43 +02:00
cat = SC_BASIC
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = engine_renew_months
type = SLE_INT16
2024-01-27 22:50:40 +01:00
flags = SF_PER_COMPANY
2011-03-03 22:04:17 +01:00
def = 6
min = -12
max = 12
str = STR_CONFIG_SETTING_AUTORENEW_MONTHS
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT
2012-05-06 17:03:45 +02:00
strval = STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE
2024-01-27 22:50:40 +01:00
val_cb = SettingsValueAbsolute
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = engine_renew_money
type = SLE_UINT
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY | SF_GUI_CURRENCY
2011-03-03 22:04:17 +01:00
def = 100000
min = 0
max = 2000000
str = STR_CONFIG_SETTING_AUTORENEW_MONEY
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT
2012-05-06 16:56:13 +02:00
strval = STR_JUST_CURRENCY_LONG
2011-03-03 22:04:17 +01:00
[SDT_BOOL]
var = renew_keep_length
def = false
[SDT_BOOL]
var = vehicle.servint_ispercent
def = false
str = STR_CONFIG_SETTING_SERVINT_ISPERCENT
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT
2021-06-21 18:31:56 +02:00
post_cb = UpdateAllServiceInterval
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = vehicle.servint_trains
type = SLE_UINT16
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
2023-04-08 20:04:30 +02:00
def = DEF_SERVINT_DAYS_TRAINS
2024-01-23 17:36:09 +01:00
min = MIN_SERVINT_MINUTES
2023-04-08 20:04:30 +02:00
max = MAX_SERVINT_DAYS
interval = 1
2011-03-03 22:04:17 +01:00
str = STR_CONFIG_SETTING_SERVINT_TRAINS
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT
2012-05-06 16:56:13 +02:00
strval = STR_CONFIG_SETTING_SERVINT_VALUE
2023-01-15 07:55:54 +01:00
pre_cb = [](auto &new_value) { return CanUpdateServiceInterval(VEH_TRAIN, new_value); }
2021-05-24 11:47:37 +02:00
post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); }
2024-03-25 21:38:44 +01:00
def_cb = [](auto &new_value) { GetDefaultServiceInterval(VEH_TRAIN, new_value); }
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = vehicle.servint_roadveh
type = SLE_UINT16
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
2023-04-08 20:04:30 +02:00
def = DEF_SERVINT_DAYS_ROADVEH
2024-01-23 17:36:09 +01:00
min = MIN_SERVINT_MINUTES
2023-04-08 20:04:30 +02:00
max = MAX_SERVINT_DAYS
interval = 1
2011-03-03 22:04:17 +01:00
str = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT
2012-05-06 16:56:13 +02:00
strval = STR_CONFIG_SETTING_SERVINT_VALUE
2023-01-15 07:55:54 +01:00
pre_cb = [](auto &new_value) { return CanUpdateServiceInterval(VEH_ROAD, new_value); }
2021-05-24 11:47:37 +02:00
post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); }
2024-03-25 21:38:44 +01:00
def_cb = [](auto &new_value) { GetDefaultServiceInterval(VEH_ROAD, new_value); }
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = vehicle.servint_ships
type = SLE_UINT16
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
2023-04-08 20:04:30 +02:00
def = DEF_SERVINT_DAYS_SHIPS
2024-01-23 17:36:09 +01:00
min = MIN_SERVINT_MINUTES
2023-04-08 20:04:30 +02:00
max = MAX_SERVINT_DAYS
interval = 1
2011-03-03 22:04:17 +01:00
str = STR_CONFIG_SETTING_SERVINT_SHIPS
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT
2012-05-06 16:56:13 +02:00
strval = STR_CONFIG_SETTING_SERVINT_VALUE
2023-01-15 07:55:54 +01:00
pre_cb = [](auto &new_value) { return CanUpdateServiceInterval(VEH_SHIP, new_value); }
2021-05-24 11:47:37 +02:00
post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); }
2024-03-25 21:38:44 +01:00
def_cb = [](auto &new_value) { GetDefaultServiceInterval(VEH_SHIP, new_value); }
2011-03-03 22:04:17 +01:00
[SDT_VAR]
var = vehicle.servint_aircraft
type = SLE_UINT16
2021-06-03 20:55:03 +02:00
flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL
2023-04-08 20:04:30 +02:00
def = DEF_SERVINT_DAYS_AIRCRAFT
2024-01-23 17:36:09 +01:00
min = MIN_SERVINT_MINUTES
2023-04-08 20:04:30 +02:00
max = MAX_SERVINT_DAYS
interval = 1
2011-03-03 22:04:17 +01:00
str = STR_CONFIG_SETTING_SERVINT_AIRCRAFT
2012-05-12 12:09:56 +02:00
strhelp = STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT
2012-05-06 16:56:13 +02:00
strval = STR_CONFIG_SETTING_SERVINT_VALUE
2023-01-15 07:55:54 +01:00
pre_cb = [](auto &new_value) { return CanUpdateServiceInterval(VEH_AIRCRAFT, new_value); }
2021-05-24 11:47:37 +02:00
post_cb = [](auto new_value) { UpdateServiceInterval(VEH_AIRCRAFT, new_value); }
2024-03-25 21:38:44 +01:00
def_cb = [](auto &new_value) { GetDefaultServiceInterval(VEH_AIRCRAFT, new_value); }