From 9fac1db45f79e2312415500b6ec9d22a8edb0cdd Mon Sep 17 00:00:00 2001 From: orwell Date: Wed, 20 Dec 2023 00:20:56 +0100 Subject: Set maximum train length and prevent coupling if it would exceed --- advtrains/couple.lua | 7 +++++++ advtrains/init.lua | 3 +++ 2 files changed, 10 insertions(+) diff --git a/advtrains/couple.lua b/advtrains/couple.lua index 1318c12..b6a445e 100644 --- a/advtrains/couple.lua +++ b/advtrains/couple.lua @@ -227,6 +227,13 @@ function advtrains.couple_trains(init_train, invert_init_train, stat_train, stat local stp = stat_train.trainparts local stat_wagoncnt = #stp local stat_trainlen = stat_train.trainlen -- save the train length of stat train, to be added to index + + -- sanity check, prevent coupling if train would be longer than 20 after coupling + local tot_len = init_wagoncnt + stat_wagoncnt + if tot_len > advtrains.TRAIN_MAX_WAGONS then + atwarn("Cannot couple",stat_train.id,"and",init_train.id,"- train would have length",tot_len,"which is above the limit of",advtrains.TRAIN_MAX_WAGONS) + return + end if stat_train_opposite then -- insert wagons in inverse order and set their wagon_flipped state diff --git a/advtrains/init.lua b/advtrains/init.lua index a7e5764..9c977eb 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -48,6 +48,9 @@ advtrains.IGNORE_WORLD = false local NO_SAVE = false -- Do not save any data to advtrains save files +advtrains.TRAIN_MAX_WAGONS = 20 +-- Limit on the maximum number of wagons that may be in a train + -- ========================================================================== -- Use a global slowdown factor to slow down train movements. Now a setting -- cgit v1.2.3