new events is now always valid to append to

also "vore" now resets the eaten list
This commit is contained in:
Kistaro Windrider 2023-09-30 12:55:33 -07:00
parent 2b02d2b94b
commit e0b8386849
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -66,12 +66,13 @@ end
-- vore eats another linked list -- vore eats another linked list
-- by appending its contents. -- by appending its contents.
-- the ingested linked -- the ingested linked is empty.
-- list is no longer valid.
function linked_list:vore(x) function linked_list:vore(x)
if (not x.next) return if (not x.next) return
self.tail.next = x.next self.tail.next = x.next
self.tail = x.tail self.tail = x.tail
x.next = nil
x.tail = x
end end
-- strip calls f(x) for each -- strip calls f(x) for each
@ -153,6 +154,7 @@ function wipe_level()
intangibles_fg = linked_list.new() intangibles_fg = linked_list.new()
intangibles_bg = linked_list.new() intangibles_bg = linked_list.new()
events = linked_list.new() events = linked_list.new()
new_events = linked_list.new()
end end
function _update60() function _update60()
@ -169,9 +171,8 @@ end
function updategame() function updategame()
leveldone = level_frame() leveldone = level_frame()
new_events = linked_list.new()
events:strip(call_move)
events:vore(new_events) events:vore(new_events)
events:strip(call_move)
for _, lst in ipairs{intangibles_bg, pships, eships, pbullets, ebullets} do for _, lst in ipairs{intangibles_bg, pships, eships, pbullets, ebullets} do
lst:strip(call_move) lst:strip(call_move)
end end