Anyway the symptom is that the destruction of veclist on return from is_spike is correctly notifying each vector that it is supposed to remove
itself from the internal record list. However in doing this, it is calling a method on itself after itself has been destroyed. I will look into this further.
Anyway, a work around is to remove all the vectors from the record list before exit from is_spike by modifying the function according to:
Code: Select all
func is_spike() { local i localobj ...
...
for i=0, veclist.count-1 {
veclist.o(i).play_remove()
}
return spike
}