[FIXED] [BUG] [PLAYER] Falling OHNOER'S can direct drop into the exit

Started by IchoTolot, October 05, 2016, 10:39:52 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

IchoTolot

While watching Flopsy's latest Sublem's video I noticed this. Standing OHNOER'S should enter the exit yes, that's desireable, but they should not be able direct drop into it. They should still need solid ground under the exit and must not have previleges above normal fallers!

Around 14:15 is such a situation using the Nuke to create the OHNOER'S.  https://www.youtube.com/watch?v=MK7Ad-Dcs84

Reprodcable through:

- Nuking and letting lemmings fall right above the exit.
- Using an exploder right above the exit on solid ground ----> triggering the animation. Then remove the terrain and let him direct drop into the exit.

namida

This was discussed in IRC a while back, and I believe Nepster has already fixed this one.
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

@Nepster: I made a slight change to your fix for this, I changed it to:

if     (not L.LemIsZombie)
     and ((L.LemAction in [baFloating, baGliding]) or HasPixelAt(L.LemX, L.LemY)) then
  begin


Instead of ruling out specific cases (no fallers, no splatters, no not-standing-on-ground ohnoers), it uses a positive test instead: Either the lemming must be floating or gliding (the only cases I can think of where a lemming is intentionally allowed to exit while not standing on anything), or have solid ground underneath it.

This is in commit 79EBC77. If there are issues with this that I've overlooked, or other cases exist that you can think of, modify or revert it as nessecary.
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)

Nepster

The big issue is, that direct drops are now possible again, if the exit is standing on the ground.

Reason: During the last frame before splatting, the following happens:
- First the faller determines his end position, which is within the terrain.
- The lemming position is set to this end position (so HasPixelAt(L.LemX, L.LemY) is true), the action is set to splatting and the explosion-timer is set to 0. But the lemming isn't removed yet, because he might collect pick-up skills during the intermediate frames.
- Now the intermediate frames are checked for trigger areas and the exit area is found. So the lemming hops in.

Actually, now that I think about it, setting the action to splatting before checking the trigger areas might create a few teleporter bugs in certain setups. I will have to do some more checking...

namida

Good catch. For now it may be better to just revert this change (my one I mean, not yours).
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)

Colorful Arty