[✓][BUG] Builders sometimes leave a gap when turned by a Blocker

Started by WillLem, Today at 02:55:01 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

This was reported by hrb264 on Discord.

It's something we've probably been aware of for a while. Sometimes, if a Blocker is used to turn a Builder, a small unexplained gap is left in the bridge:



This is unrelated to the recent left-facing Builder physics update, and has actually been present in Lemmini forever, but the update has made it easier to spot the bug.

The bug occurs in both directions. What's happening is that the Builder has already laid the brick whilst facing in their original direction, they are then turned by the Blocker mid-animation, and they step up onto nothing to then lay the next brick. The brick actually appears to vanish; this is because the sprite itself is showing a brick having apparently been laid, but it hasn't actually been painted to the level - at least not in the lemming's new direction - so when the sprite resets to frame 0, the brick "vanishes" (or, more accurately, it never actually existed).

The fix is simply to re-draw the step when the lemming turns. Yes, this means that the same step is drawn twice (in both directions), but it matches what's shown in the sprite and significantly increases Builder flexibility, so I'm happy to go ahead with this:



Note that the timing of the Builder's action is unaffected - the step is redrawn as soon as the lemming turns. Existing levels/replays ought not to be affected by this fix unless the buggy behaviour was required as part of the level's solution (e.g. in order to separate a lemming from the crowd). If any level did make use of this glitch though, I'd personally rather not support it in RetroLemmini anyway.

Attached are 2 replays showing the bug happening in both directions (the level is included with RetroLemmini).

Fixed in RLPlayer commit 70d1765.