Paiy has reported two levels not awarding the "No Pause" talisman (on Discord). I also noticed this happening several times whilst playtesting
Lemminas Origins, and did attempt to fix it in commits
00989847d - b76c92531. It seemed fairly watertight after that, but since paiy has confirmed being on the latest version of SLX (2.7.3) and playing without pressing pause or loading a replay, it's clear that more needs to be done.
Currently, the No Pause talisman fails in any of the following conditions:
1) Pause was pressed at any time during playing the level
2) A replay of the level was loaded at any time
Checking for pause is not a problem: if the pause button or hotkey is pressed, a flag is set to true and it remains true until the end of the level, at which point the talisman is failed. If the user restarts the level, the flag is set to false.
What's more likely to be the issue here is checking for a replay having been loaded. Many in-game actions can cause a replay to be inadvertently loaded (backstepping, rewinding, restarting, even changing the release rate) and it's very difficult to keep track of them all for the purposes of this talisman.
Maybe, then, we should only check for a replay being loaded if it's
explicitly loaded from a replay file. In all other cases, we check only for button/hotkey presses (backstep, rewind, restart) to determine whether this action should fail the talisman:
Backstep and rewind should, obviously. Restart should only fail it
iff the user has "replay after restart" behaviour activated
and pause was pressed at any time during play - furthermore, we already allow 55 frames' grace to cancel a replay if the player paused, restarted (with replay after restart activated), and then cancelled immediately - in real terms, the player has until the music starts to cancel.
From a quick look at the code, the "replay was loaded" flag (which fails the talisman) is set to true and false in lots of places, likely due to the number of actions that can trigger a replay load. This is not good, and shows that we need a more watertight solution.
So, I propose two fixes for this:
![lemming :lemming:](https://www.lemmingsforums.net/Smileys/lemmings/lemming.gif)
The first is to remove the "replay was loaded" flag and replace it with something which only tracks player input - no automatic in-game processing events should be responsible for failing the talisman.
![lemming :lemming:](https://www.lemmingsforums.net/Smileys/lemmings/lemming.gif)
The second is to draw some sort of marker to the panel to explicitly show the status of "no pause" - visual feedback provides the player with assurace that their playthrough will pass the talisman, whilst also making it easier to find the cause of any bugs, should they arise in the future.