diff options
author | orwell96 <orwell@bleipb.de> | 2018-12-10 22:57:16 +0100 |
---|---|---|
committer | orwell96 <orwell@bleipb.de> | 2018-12-10 22:57:16 +0100 |
commit | c8788e6ca7cc26f41c819983d0677502786e8985 (patch) | |
tree | 4841282baa2d27b72166856fc5edb0db07cdef79 /advtrains | |
parent | 144e1fc4e01741f8cdd5a579ae84cde85c420d78 (diff) | |
download | advtrains-c8788e6ca7cc26f41c819983d0677502786e8985.tar.gz advtrains-c8788e6ca7cc26f41c819983d0677502786e8985.tar.bz2 advtrains-c8788e6ca7cc26f41c819983d0677502786e8985.zip |
Fix crashes:
1. when train hit a route, nil access to already cancelled route caused crash
2. fix crash when trying to ensure_init a train that doesn't exist
Diffstat (limited to 'advtrains')
-rw-r--r-- | advtrains/trainlogic.lua | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua index 965fcbd..fb87fca 100644 --- a/advtrains/trainlogic.lua +++ b/advtrains/trainlogic.lua @@ -222,6 +222,12 @@ local callbacks_remove, run_callbacks_remove = mkcallback("remove") -- - save files were loaded -- Additionally, this gets called outside the step cycle to initialize and/or remove a train, then occ_write_mode is set. function advtrains.train_ensure_init(id, train) + if not train then + atwarn("train_ensure_init: Called with id =",id,"but a nil train!") + atwarn(debug.traceback()) + return nil + end + train.dirty = true if train.no_step then return nil end |