[FIXED] Lemmings may survive nuking [BUG] [PLAYER]

Started by Nepster, October 01, 2016, 09:42:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

Sometimes some lemmings may survive nuking. I currently don't know what causes this bug or even how to reproduce it. Here my current knowledge:
- Every time I encountered this bug, I did some heavy frame-stepping during the count-down.
- This behavior cannot be caught in replays. If you encounter this behavior and save a replay, everything works as intended upon loading the replay.

Note: This happened when testing the non-released experimental new-formats version of NeoLemmix. I don't know whether this occurs as well in the V1.47 versions.

namida

I have been able to reproduce this on new-formats branch, but not on V1.47n-D (and thus presumably not on any other backwards-compatible branch either).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#2
Confirmed this is still occuring in commit 69C4598 (latest at the time of this message).

It would appear to be somehow related to save states, as I can only get it to occur when an internal save state would be made during the countdown starting.

EDIT: Can also confirm that it is occuring on the backwards-compatible branch, now that I have a rough idea of the timing to trigger it (still none on the exact causes).

EDIT: It would appear it's triggered much more easily than we thought - simply trigger the nuke such that the assigning of bomber-countdowns crosses a 10sec mark on the timer (as this is when savestates are made), then perform a backwards frameskip such that both the start and end points of the skip are after said 10sec mark. From what I can tell, this consistently reproduces the bug with only a single frameskip. The lemming that would've begun counting down on exactly the frame of the savestate, and all later lemmings, will not get countdowns.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Found the cause! :D It should be fixed in commit BD770DE.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)