[BUG] [PLAYER] Climber ignore 7-pixel high overhangs

Started by Nepster, February 13, 2016, 04:09:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

Status: Fixed this specific issue, but I feel that further discussion on climbers in general is needed.

For the avoidance of doubt, V1.42n has not changed the climber mechanics compared to V1.40n-C / V1.41n. This bug simply wasn't discovered until now. On further investigation, it appears this bug exists at least as far back as V1.38n - probably a lot further too.




Currently climbers ignore any overhang that is 7 pixels above the ground, while they should do this only for overhangs up to 6 pixel high.

This bug is likely caused by the fix to this bug.

namida

Will investigate. Hopefully fixing this doesn't break as many of IchoTolot's levels (I more wonder if it might un-break a few that he made the effort to patch).
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)

IchoTolot

Quote from: namida on February 13, 2016, 04:22:07 PM
Will investigate. Hopefully fixing this doesn't break as many of IchoTolot's levels (I more wonder if it might un-break a few that he made the effort to patch).

Well it seems I must go through ~ 400 replays again :(

But I think this would be more of a "fixing replays task" than "fixing broken levels" task. I hardly imagine that this will make levels impossible as this is a restiction of sth that wasn't there before and considered to beeing part of a level (as I understand it), but better to check nevertheless.
A handful of replays breaking again would be expected though. ----> another big replay checking and fixing session

namida

NeoLemmix really needs some kind of mass replay check function. The current setup is not particularly suited to it, but perhaps I can kludge one in there somehow... I managed to kludge in dumping all level images, after all, and it's not very well suited to that 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

Alright, I just tested this.

CORRECT: An overhang 7 pixels from the ground will stop a climber if that overhang is at the top of the climb.
CORRECT: An overhang 8 pixels from the ground will stop a climber if that overhang is at the top of the climb.
CORRECT: An overhang 6 pixels from the ground will not stop a climber, with the overhang being not at the top of the climb. (It's impossible to have it at the top, as 6 pixels would result in a jumper.)
INCORRECT: An overhang 7 pixels from the ground will not stop a climber (it should).
CORRECT: An overhang 8 pixels from the ground will stop a climber.

I tested this with the final release in every line as far back as V1.38n; the mockup level I made involves rotated pieces so couldn't test further back, but at any rate climber behaviour in reaction to overhangs hadn't changed for a long time before then.

So, this bug was not caused by the fix to the 6-pixel overhang at top of climb bug.

Nevertheless, it is still a bug (just not one caused by what we had guessed was causing it), so it'll need to be fixed.
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

Between testing and examining the code while trying to fix this, I've noticed quite a few oddities in how the climber behaves, specifically in regard to different behaviours whether the overhang is at the top of the climb or in the middle of it.

I've fixed this issue in the source code, making the behaviour when he encounters a mid-climb overhang at 7 pixels consistent with when he encounters a mid-climb overhang at most larger heights. Thus, this one can be considered fixed. But I'm also going to open a new topic to discuss climber mechanics in general.
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)