Author Topic: [FIXED][Bug][Player]Failure screen massage on Level Cleared screen  (Read 2640 times)

0 Members and 1 Guest are viewing this topic.

Offline GigaLem

  • The Dog That Brought Lemmings to Avalice
  • Posts: 1415
    • View Profile
Just tested a level and got this as the message. May I remind you that this message is went you fail a level with few lemmings saved.
Image in spoiler
Spoiler (click to show/hide)

Offline Nepster

  • Posts: 1829
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #1 on: December 18, 2018, 09:30:19 PM »
Sorry, but this is not nearly enough information you are giving us here. My current guess is that either the level pack of this level overrides the default messages, or the file with your default messages got changed, so that the top message got replaced with the one you are seeing. The messages are stored in the file "data\postview.nxmi" and this file should look like the attached one.

Offline IchoTolot

  • Global Moderator
  • Posts: 3608
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #2 on: January 29, 2019, 09:34:12 PM »
We got a false message again during Nessy's stream with the Contest 16 pack.

A level with 1 Lemming (Arty's R1 level) got solved an it showed the "Very Bad" message instead of the "Save All" one. The pack uses the standard messages.

@Nessy: Could you post the stream link here for reference? ???

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #3 on: January 30, 2019, 07:34:11 PM »
I have encountered this bug several times, with default postview messages, on levels that either:
- Have a save requirement of zero. Probably not critical, no real-world level will have this requirement, only placeholder ones. Correct behaviour here is undefined, as both "saved none" and "met requirement exactly" are fulfilled, and in a real-world scenario these are mutually exclusive so no priority between them is defined.
- Have exactly one lemming (including cloners) and require exactly one lemming saved. Correct behaviour here would be to display the "saved all" message.

There may be other situations, but these are the ones I recall. I don't personally remember seeing it on levels with more than 1 lemming, as long as the postview message conditions themself aren't faulty.
My Lemmings 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)

Offline Nessy

  • Posts: 579
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #4 on: January 31, 2019, 08:22:07 PM »
Quote from: IchoTolot
@Nessy: Could you post the stream link here for reference? ???

For reference here's the part of the stream where I completed Arty's Rule 1 level which has only 1 lemming and before the window pops up to save my replay you can see the incorrect message.

I haven't encountered this bug before but I actually want to run some more tests on it first and post some of my findings.

EDIT: Okay so one interesting thing I noticed right off the bat is that in the default postview text file the "Better Rethink Your Strategy..." message I got on that level seems to be linked to saving exactly one lemming in a level regardless if it's one lemming saved out of one.

$RESULT
  CONDITION 1
  LINE Better rethink your strategy before
  LINE you try this level again!
$END


I'm wondering if this is overwriting the "Right On!" message or if the "Right On!" message isn't even being checked because it already met the save 1 condition?


« Last Edit: January 31, 2019, 08:29:31 PM by Nessy »

Offline ccexplore

  • Posts: 5311
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #5 on: February 01, 2019, 07:26:05 AM »
Yeah, ordering definitely matters for these kinds of checks, because some cases may satisfy multiple checks but usually only one of the corresponding messages is most appropriate .  For reference, this post described the exact ordering of checks that the original Lemmings 1 game performs to determine which message to show (ie. it stops at the first check that is satisfied and displays the corresponding message associated with that check).  Might be good to take a closer look at how NeoLemmix's programming orders the checks it performs.  If it's based directly on the ordering of entries in postview.nxmi, I'd suggest to try reordering the entries in the file to match the original game's ordering of checks.
« Last Edit: February 01, 2019, 07:33:07 AM by ccexplore »

Offline Nepster

  • Posts: 1829
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #6 on: February 07, 2019, 08:44:39 AM »
I have fixed the issue with requirements of 0 or 1 lemming for the next release. The checks for absolute values (like 0 or 1) are now ignored if the level is solved.

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #7 on: February 08, 2019, 12:57:34 AM »
Quote
The checks for absolute values (like 0 or 1) are now ignored if the level is solved.

Just to be safe there, I would check that this doesn't result in a divide-by-zero error on levels that require saving 0 of 0 (which might be used as placeholders during development of packs).
My Lemmings 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)

Offline Nepster

  • Posts: 1829
    • View Profile
Re: [Bug][Player]Failure screen massage on Level Cleared screen
« Reply #8 on: February 08, 2019, 07:41:33 AM »
We only divide by the constant 100 in that algorithm, so there is no possibility of a divide-by-zero error.