Skip to content

GP backup save adjustments to prevent life loss if game is exited before end of Position.

Checks have been added to P_ArchivePlayer and P_ArchiveMisc to prevent life/continue loss if the game is exited before the end of Position. If the game is exited after Position, the life loss will occur as normal. To facilitate this, a set of SavescumFlag functions and an associated variable have been added, with calls placed in appropriate places to set and unset it as needed. Importantly, G_HandleSaveLevel is now called in G_Ticker to facilitate this check.

This change is intended to allow for the player to take a break mid-cup without being "punished" for doing so, but without allowing them to abuse this to get infinite retries of the actual race. While the current implementation technically allows for savescumming to avoid faulting at the position line, this so rarely determines the actual result of a race in my experience that it feels inconsequential, and my judgement is that it's probably better to allow the occasional post-fault quit out than to worry too much about potential pre-Position save abuse. (This, of course, can be adjusted if needed.) In any scenario besides quitting out before Position, existing life loss behavior will occur - this should only affect this specific scenario.

Attached videos demonstrate this in action - prior to commit 80d67236, the implementation would always treat Alt+F4 and console quits the same as quitting out after Position, but this is now properly accounted for via (as of commit b29e6f0a) re-implementing the check into G_Ticker at the moment Position ends. The videos demonstrate the functionality of the older commit and not the current commit, but are otherwise accurate. ringracers0026 ringracers0027 ringracers0028

Edited by Freaky Mutant Man

Merge request reports

Loading