aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authororwell <orwell@bleipb.de>2025-02-18 00:18:59 +0100
committerorwell <orwell@bleipb.de>2025-02-18 00:18:59 +0100
commit32bc5704d4894fe749d55a099dcb5039cf7de9a1 (patch)
tree8704d038a8f5b3594dbae97619d4024ae1c6f4b7
parent5ba1c48589e855ab3143242de0eafe2890589969 (diff)
downloadadvtrains-32bc5704d4894fe749d55a099dcb5039cf7de9a1.tar.gz
advtrains-32bc5704d4894fe749d55a099dcb5039cf7de9a1.tar.bz2
advtrains-32bc5704d4894fe749d55a099dcb5039cf7de9a1.zip
The trap triggered, improve outputroute_prog_rework
-rw-r--r--advtrains/occupation.lua2
-rw-r--r--advtrains/path.lua6
2 files changed, 5 insertions, 3 deletions
diff --git a/advtrains/occupation.lua b/advtrains/occupation.lua
index 66ad36c..20a986e 100644
--- a/advtrains/occupation.lua
+++ b/advtrains/occupation.lua
@@ -103,9 +103,7 @@ function o.clear_all_items(train_id, pos)
local t = occget(pos)
if not t then return end
local i = 1
- local _cnt = 0
while t[i] do
- _cnt = _cnt + 1; if _cnt > 10000 then error("Loop trap in advtrains.occ,clear_all_items was triggered!") end
if t[i]==train_id then
table.remove(t, i)
table.remove(t, i)
diff --git a/advtrains/path.lua b/advtrains/path.lua
index 84d295d..57829ad 100644
--- a/advtrains/path.lua
+++ b/advtrains/path.lua
@@ -119,7 +119,11 @@ function advtrains.path_invalidate(train, ignore_lock)
--atdebug("path_invalidate for",train.id)
local _cnt = 0
for i,p in pairs(train.path) do
- _cnt = _cnt + 1; if _cnt > 10000 then error("Loop trap in advtrains.path_invalidate was triggered!") end
+ _cnt = _cnt + 1
+ if _cnt > 10000 then
+ atdebug(train)
+ error("Loop trap in advtrains.path_invalidate was triggered!")
+ end
advtrains.occ.clear_all_items(train.id, advtrains.round_vector_floor_y(p))
end
--atdebug("occ cleared")