Under some circumstances, it is possible for teleports and messages to combine to crash the system. The teleport can get delayed indefinitely, and if the target is deleted for any reason then everything falls over due to messages involving a now-invalid id...
simple test case:
http://en.file-upload.net/download-1077 ... h.zip.html
fix:
add a test for validity to triggers.lua/finish_queued_teleport:
Code: Select all
function finish_queued_teleport(id)
local targ = exvar[id].inst
local lev = exvar[id].lev
local xc = exvar[id].x
local yc = exvar[id].y
if (exvar[id].disabled) then return end
-- test added here:
if (not dsb_valid_inst(targ)) then return end
local occupied = nil
...