My worry is now: If we make the freeze, but don't nail it perfectly, yes, we'll still be better than quitting, but we aren't as good as pausing (for a reason that I don't see yet)
To be honest, I'm at the point where I feel we just need to make a decision and run with it.
I failed to persuade you (i.e. the person who originally requested this feature and has offered to fund it!) that pause is better. I also now see that freeze is both easier to manage and (much) easier to debug.
So, I've pretty much done a 180 on wanting pause. I know I can do it if it's requested later, but for now I just want to get the "no lems" feature stable and ready for release.
After a lot of deliberation and testing of the new behaviour, I'm even beginning to think that the physics freeze shouldn't be optional. The choice should be: exit to postview, or freeze the game. Allowing gameplay to continue into an unplayable state has the potential to be very confusing. If I get no feedback on this, I'll likely run with it and remove the option.
Incidentally, we can also re-use the minimap message code for other "unplayable states": only Blockers remain (and no Walkers in skillset), only Neutrals remain, only Zombies remain (debateable), etc - obviously, game doesn't freeze in these examples, but the message can be displayed if we wish.
Do you (or others) have time to hop on Mumble tomorrow, Monday, 19:00 UTC?
Potentially, yes. I'll move a few things around and see you then.
Ah, a nuked level in general freezes now
I can't seem to reproduce this. Nuked levels exit as usual...
You are right, I can't reproduce this either. Sorry, I don't remember why I wrote this, either.
OK - wierdly, I can now reproduce this bug!
It's fixed; the end-of-level check now factors in nuke. However, I'm now seeing possibilities to streamline and simplify these checks further. It won't make a difference up front, but the whole thing should be easier to debug.
During the freeze with only zombies left alive, can we nuke?
At the moment, no. All controls except for backskip and restart have no effect.
Incidentally, in NL, nuking zombies causes the level to immediately exit to postview anyway: we don't get to see the zombies explode. I fixed this in SLX, happy to apply the fix in NL as well.
We won't advance to the tick in which the nuke is actively preventing the freeze
Correct - although, we can allow this by specifically calling the update procedure if the nuke is activated, thus cancelling the freeze state.
Note: we could even cancel the freeze state with pause, thus achieving both freeze and pause in the same feature...?In Lix, during the freeze, the nuke becomes a button to exit.
This is a good idea; I've added this by setting the nuke flag to true and calling the update procedure for nuke button/hotkey iff the unplayable state has been reached. Bit of a hack, maybe - there's probably a better way to achieve this same thing.
Note: we can't call for Game.Finish because it needs a reason, which is undeclared in GBSP.