; 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 . ; ; These are settings that are company-wide. Meaning that if 1 player in a ; company changes them, it changes for all players. [pre-amble] static void UpdateAllServiceInterval(int32 new_value); static bool CanUpdateServiceInterval(VehicleType type, int32 &new_value); static void UpdateServiceInterval(VehicleType type, int32 new_value); static const SettingTable _company_settings{ [post-amble] }; [templates] SDT_BOOL = SDT_BOOL(CompanySettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname), SDT_VAR = SDT_VAR(CompanySettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname), SDT_NULL = SDT_NULL($length, $from, $to, $extver), [validation] SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$var exceeds storage size"); [defaults] flags = SF_PER_COMPANY interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT strval = STR_NULL pre_cb = nullptr post_cb = nullptr guiproc = nullptr load = nullptr from = SL_MIN_VERSION to = SL_MAX_VERSION cat = SC_ADVANCED startup = false extver = SlXvFeatureTest() patxname = nullptr [SDT_BOOL] var = engine_renew def = true str = STR_CONFIG_SETTING_AUTORENEW_VEHICLE strhelp = STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT cat = SC_BASIC [SDT_VAR] var = engine_renew_months type = SLE_INT16 flags = SF_PER_COMPANY | SF_GUI_NEGATIVE_IS_SPECIAL def = 6 min = -12 max = 12 str = STR_CONFIG_SETTING_AUTORENEW_MONTHS strhelp = STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT strval = STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE [SDT_VAR] var = engine_renew_money type = SLE_UINT flags = SF_PER_COMPANY | SF_GUI_CURRENCY def = 100000 min = 0 max = 2000000 str = STR_CONFIG_SETTING_AUTORENEW_MONEY strhelp = STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT strval = STR_JUST_CURRENCY_LONG [SDT_BOOL] var = renew_keep_length def = false ;; allow_autoreplace_to_self [SDT_NULL] length = 1 extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 2) [SDT_BOOL] var = vehicle.servint_ispercent def = false str = STR_CONFIG_SETTING_SERVINT_ISPERCENT strhelp = STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT post_cb = UpdateAllServiceInterval [SDT_VAR] var = vehicle.servint_trains type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 150 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_TRAINS strhelp = STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_TRAIN, new_value); } post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); } [SDT_VAR] var = vehicle.servint_roadveh type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 150 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_ROAD, new_value); } post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); } [SDT_VAR] var = vehicle.servint_ships type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 360 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_SHIPS strhelp = STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_SHIP, new_value); } post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); } [SDT_VAR] var = vehicle.servint_aircraft type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 100 min = 5 max = 800 str = STR_CONFIG_SETTING_SERVINT_AIRCRAFT strhelp = STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE pre_cb = [](auto new_value) { return CanUpdateServiceInterval(VEH_AIRCRAFT, new_value); } post_cb = [](auto new_value) { UpdateServiceInterval(VEH_AIRCRAFT, new_value); } [SDT_BOOL] base = CompanySettings var = vehicle.auto_timetable_by_default flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_AUTO_TIMETABLE_BY_DEFAULT strhelp = STR_CONFIG_SETTING_AUTO_TIMETABLE_BY_DEFAULT_HELPTEXT patxname = ""vehicle.auto_timetable_by_default"" [SDT_BOOL] base = CompanySettings var = vehicle.auto_separation_by_default flags = SF_PER_COMPANY def = true str = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_BY_DEFAULT strhelp = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_BY_DEFAULT_HELPTEXT patxname = ""vehicle.auto_separation_by_default"" [SDT_VAR] base = CompanySettings var = auto_timetable_separation_rate type = SLE_UINT8 flags = SF_PER_COMPANY def = 40 min = 0 max = 100 interval = 10 str = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_RATE strhelp = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_RATE_HELPTEXT strval = STR_CONFIG_SETTING_PERCENTAGE cat = SC_EXPERT patxname = ""auto_timetable_separation_rate"" [SDT_VAR] base = CompanySettings var = timetable_autofill_rounding type = SLE_UINT16 flags = SF_PER_COMPANY def = 74 min = 1 max = 1000 interval = 10 str = STR_CONFIG_SETTING_TIMETABLE_AUTOFILL_ROUNDING_TICKS strhelp = STR_CONFIG_SETTING_TIMETABLE_AUTOFILL_ROUNDING_TICKS_HELPTEXT strval = STR_JUST_INT cat = SC_EXPERT patxname = ""timetable_autofill_rounding"" [SDT_VAR] base = CompanySettings var = order_occupancy_smoothness type = SLE_UINT8 flags = SF_PER_COMPANY def = 75 min = 0 max = 100 interval = 10 str = STR_CONFIG_OCCUPANCY_SMOOTHNESS strhelp = STR_CONFIG_OCCUPANCY_SMOOTHNESS_HELPTEXT strval = STR_CONFIG_SETTING_PERCENTAGE cat = SC_EXPERT patxname = ""order_occupancy_smoothness"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[0] flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_RAIL patxname = ""infra_sharing.infra_others_buy_in_depot.rail"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[1] flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_ROAD patxname = ""infra_sharing.infra_others_buy_in_depot.road"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[2] flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_WATER patxname = ""infra_sharing.infra_others_buy_in_depot.water"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[3] flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_AIR patxname = ""infra_sharing.infra_others_buy_in_depot.air"" [SDT_BOOL] base = CompanySettings var = advance_order_on_clone flags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_ADVANCE_ORDER_ON_CLONE strhelp = STR_CONFIG_SETTING_ADVANCE_ORDER_ON_CLONE_HELPTEXT patxname = ""advance_order_on_clone"" [SDT_BOOL] base = CompanySettings var = copy_clone_add_to_group flags = SF_PER_COMPANY def = true str = STR_CONFIG_SETTING_COPY_CLONE_ADD_TO_GROUP strhelp = STR_CONFIG_SETTING_COPY_CLONE_ADD_TO_GROUP_HELPTEXT patxname = ""copy_clone_add_to_group"" [SDT_VAR] base = CompanySettings var = simulated_wormhole_signals type = SLE_UINT8 flags = SF_PER_COMPANY def = 4 min = 1 max = 16 str = STR_CONFIG_SETTING_SIMULATE_SIGNALS strhelp = STR_CONFIG_SETTING_SIMULATE_SIGNALS_HELPTEXT strval = STR_CONFIG_SETTING_SIMULATE_SIGNALS_VALUE cat = SC_ADVANCED patxname = ""simulated_wormhole_signals""