From 6522351a1f66d45eea213560b820d7ad09538d45 Mon Sep 17 00:00:00 2001 From: EmperorJake <68182631+EmperorJake@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:03:11 +1100 Subject: [PATCH] Feature: Setting to disable the loading speed penalty for trains longer than the station --- .DS_Store | Bin 0 -> 8196 bytes src/economy.cpp | 2 +- src/lang/english.txt | 3 +++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/table/settings/game_settings.ini | 7 +++++++ 6 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b179567118f04d786067ad30991c86cf3f0e7835 GIT binary patch literal 8196 zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA}k>D7#IW?7*dnUiwlx+@{^!4 zqts{!jE2By2#kinXb6mkz+ejjMu>wraMb${*->&d1V%$(M1}yUd{BV2?HL@PbOVG2 zNii@oFo3%Nj0_B*E&w=;7{UDj29O*`D~JYZ1<@d_42&Qa*bJ~%21ck>MsPO-q)z~9 z4p=(_BiLq;I9NLaBiLpJ21bZ>21cmOjL;qmBSbp`BSbp`BiMGZk)y9_j~5Ve&d)1J%*;zI0x1d3Oi4{jEQ$%w%uC5Hcgio#ODP8Hg-UR6 za&pECh*wuzSm-F2SQyvpC{$Y-8R#gO7@O7Ba&m|&>strKXXoVR<#$3n04oO=cp-c^ z*~P%XfaIZ^;xcE*fCO_e%tN<`u^a2qq`yB$wtSmZUo7PEXgcObxABqEsn@c&d&pB z6oGpT!eHcF$0shYqM>VKZsXwU=^J>3UqDbum`9W+Dl;WDuOu@qGqor(u{b$3FC{ZC zJ+wSCr6eP~EVDQ>DJL}~FEKZjQ;<=I^9sL&q?ELbtSm$ULIX@`L}^lHVQFSbrGPRA z2iOh;StXvBl*E!$-~1GiEh!uVTRFipsph&*VBO_srk!G*zxA%UTYp_-wWVFtr$hAj+7 z8ICbrWw^)ilHoJMPew*YHb!m&IZpL25KE~;ca~bC`E?`{9xQcNT<7URKjN2IZGoD~P z$#{zKGUFr0$Ba)IpE15?{Kfd2@edO#lQ@$ElO&T8lMa(ElOB^flLeC%lQokclRr}g zQzBCqQ$AAx#6wKbN|zxP!iSMel^B@~I{L@74tr*karf}_;_(?Wne8SYID3hRiiseCIRp{~n4w%Okzx7%w^1D%x5fQEM}}>tYxfYY+!6+>}Kp? z>}Bj{oX9wfaW>-|#(9j(8CNi_WL(X-mT?>7cE%lyyBH5M9$`GncpRGQ?=U`Pe8u=0 zl49ZM*cZZwk&ItZ({WjFQC?1dUOKp)3R5)vXl96)BtZRtR|W=LQ8`ZXm=c}0HhTp2JVV8 aGBAL&4%|QhNsaB%`hT?khbH=AMgahaS!(3~ literal 0 HcmV?d00001 diff --git a/src/economy.cpp b/src/economy.cpp index ddd2cf9e4c..75c7905d24 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1612,7 +1612,7 @@ static void ReserveConsist(Station *st, Vehicle *u, CargoArray *consist_capleft, */ static void UpdateLoadUnloadTicks(Vehicle *front, const Station *st, int ticks) { - if (front->type == VEH_TRAIN) { + if (front->type == VEH_TRAIN && _settings_game.order.station_length_loading_penalty) { /* Each platform tile is worth 2 rail vehicles. */ int overhang = front->GetGroundVehicleCache()->cached_total_length - st->GetPlatformLength(front->tile) * TILE_SIZE; if (overhang > 0) { diff --git a/src/lang/english.txt b/src/lang/english.txt index 7c1c6ae2e6..09aac5258a 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1777,6 +1777,9 @@ STR_CONFIG_SETTING_SERVINT_DISABLED :Disabled STR_CONFIG_SETTING_NOSERVICE :Disable servicing when breakdowns set to none: {STRING2} STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :When enabled, vehicles do not get serviced if they cannot break down +STR_CONFIG_SETTING_STATION_LENGTH_LOADING_PENALTY :Loading speed penalty for trains that are longer than the station: {STRING2} +STR_CONFIG_SETTING_STATION_LENGTH_LOADING_PENALTY_HELPTEXT :When enabled, trains which are too long for the station load more slowly than a train which fits the station. This setting does not affect pathfinding. + STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Enable wagon speed limits: {STRING2} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :When enabled, also use speed limits of wagons for deciding the maximum speed of a train diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 47b2bf833b..23f0000189 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1918,6 +1918,7 @@ static SettingsContainer &GetSettingsTree() limitations->Add(new SettingEntry("construction.road_stop_on_competitor_road")); limitations->Add(new SettingEntry("construction.crossing_with_competitor")); limitations->Add(new SettingEntry("vehicle.disable_elrails")); + limitations->Add(new SettingEntry("order.station_length_loading_penalty")); } SettingsPage *disasters = main->Add(new SettingsPage(STR_CONFIG_SETTING_ACCIDENTS)); diff --git a/src/settings_type.h b/src/settings_type.h index 8ac229ed72..8e9c40e3f1 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -501,6 +501,7 @@ struct OrderSettings { bool selectgoods; ///< only send the goods to station if a train has been there bool no_servicing_if_no_breakdowns; ///< don't send vehicles to depot when breakdowns are disabled bool serviceathelipad; ///< service helicopters at helipads automatically (no need to send to depot) + bool station_length_loading_penalty; ///< make trains longer than the station load more slowly }; /** Settings related to vehicles. */ diff --git a/src/table/settings/game_settings.ini b/src/table/settings/game_settings.ini index 7c4fdf51c9..7902d17a4c 100644 --- a/src/table/settings/game_settings.ini +++ b/src/table/settings/game_settings.ini @@ -78,6 +78,13 @@ str = STR_CONFIG_SETTING_SERVICEATHELIPAD strhelp = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT cat = SC_EXPERT +[SDT_BOOL] +var = order.station_length_loading_penalty +def = true +str = STR_CONFIG_SETTING_STATION_LENGTH_LOADING_PENALTY +strhelp = STR_CONFIG_SETTING_STATION_LENGTH_LOADING_PENALTY_HELPTEXT +cat = SC_EXPERT + [SDT_BOOL] var = order.gradual_loading from = SLV_40