diff options
author | orwell <orwell@bleipb.de> | 2025-01-07 22:55:50 +0100 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-01-07 22:55:50 +0100 |
commit | 2e575ee761cfdbc86afead28f2bbcb05fc20e616 (patch) | |
tree | 5dd48b5a2f6ac4ac55be2b098471b90b82a43dc7 /advtrains_interlocking/routesetting.lua | |
parent | ee5236459a9fa54919306bf5277bd3f798a859ca (diff) | |
download | advtrains-2e575ee761cfdbc86afead28f2bbcb05fc20e616.tar.gz advtrains-2e575ee761cfdbc86afead28f2bbcb05fc20e616.tar.bz2 advtrains-2e575ee761cfdbc86afead28f2bbcb05fc20e616.zip |
Fix crash with missing section in routesetting, correctly clear ARS table when empty
Diffstat (limited to 'advtrains_interlocking/routesetting.lua')
-rw-r--r-- | advtrains_interlocking/routesetting.lua | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/advtrains_interlocking/routesetting.lua b/advtrains_interlocking/routesetting.lua index 15c42aa..28c8c3c 100644 --- a/advtrains_interlocking/routesetting.lua +++ b/advtrains_interlocking/routesetting.lua @@ -66,7 +66,10 @@ function ilrs.set_route(signal, route, try) c_rseg = route[i] c_lckp = {} - if c_ts.route then + if not c_ts then + if not try then atwarn("Encountered ts missing during a real run of routesetting routine, at ts=",c_ts_id,"while setting route",rtename,"of",signal) end + return false, "Section '"..(c_ts_id).."' not found!", c_ts_id, nil + elseif c_ts.route then if not try then atwarn("Encountered ts lock during a real run of routesetting routine, at ts=",c_ts_id,"while setting route",rtename,"of",signal) end return false, "Section '"..(c_ts.name or c_ts_id).."' already has route set from "..sigd_to_string(c_ts.route.origin)..":\n"..c_ts.route.rsn, c_ts_id, nil end |