[BUG][PLAYER] On assignment for frame n, first erase old assignment for n

Started by Simon, May 30, 2019, 05:02:37 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Split off from Simon should report these 3 NL bugs properly:

How to repro:

1. Assign something, B, for physics update ("phyu") n, to lemming L.
2. Framestep back to between physics updates n-1 and n.
3. Assign something, A, for phyu n to lemming L.

What happens: B is replayed and your new assignment A is eaten without effect. B's effect is visible on the screen.

Expected instead: B is erased from the replay and A becomes part of the replay, and A's effect is visible on the screen.




Quote1. If you framestep back to between physics updates ("phyus") n-1 and n, and then assign A for phyu n to lemming L, but the replay already contains an assignment B at phyu n (forgot whether it has to be to L or not), then B is replayed and your assignment A is eaten. Expected instead: B is erased from the replay and A gets through.

namida wrote: This has been a known issue for so long - since Lemmix even, I think - that it doesn't even register to me anymore - it's just "I have to step back two frames to cancel that assignment". But you're right, this absolutely should be fixed.

-- Simon

namida

Edited topic title to reflect the typical naming scheme for this board. (I don't know if Nepster feels the same way, but I actually find this to be really useful when looking through the topics to find stuff to work on.)
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

After being a known bug for something like 5 years, if not more, this is finally fixed in commit 108240B.
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

Reopened because a related bug still exists: If you just click in empty space or press the cancel replay key on such a frame, the assignment still occurs; the correct behaviour is only happening for a new assignment.
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

And fixed. I'm a bit wary of this fix - it feels too simple, almost "I would've done this already if this didn't cause some side effect", but I don't recall actually trying it. Please look out for possible awkward behaviour around this fix during the release candidate phase; I've specifically tagged the commit that fixes this just so I can easily find and reverse it if need be.
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)