Just recently I encountered a strange situation. Although I think
there is no bug here, I thought I'd share this so perhaps others can get a better understanding of this event system.
Have a look at this simple capx
On the event sheet there is a disabled action (system wait 0 seconds) which makes a big difference on the outcome, even if on a quick look, it shouldn't matter.
First of all, all "enemies" are destroyed. Then, in a subevent, the enemies are counted.
Turns out that if you leave the wait enabled, the subevent won't find any enemies.
But if you disable the wait, the subevent will actually find the enemies, even though the parent event destroyed them.
This SOL thing is starting to make sense now, even though it can get funny in situations like the above.
The Wait tutorial
"The Wait action saves the state of the entire SOL and cancels the current event. When the wait time has expired, the entire SOL as it was is restored (minus any objects that got destroyed), and the event is resumed from the action following the wait action."
So it mentions explicitly that the SOL minus the destroyed objects gets restored. But I wonder, should the SOL be updated on the fly when the destroy occurs? Because it gets weird in situations like the above.
As I said, I think
there is no bug here, i.e. things work as they were designed to. But I'm wondering, wouldn't it be more intuitive to update the SOL on the fly when the objects get destroyed, so that the wait action in the example wouldn't make any difference?