Closed OpenRift412 closed 8 months ago
I think this is because we have "extended demos" enabled by default, and these do not necessarily end when the player dies - though vanilla demos do.
Indeed, just as Fabian said. In vanilla Heretic, when demo is recorder without -demoextend
parameter and player dies, recording stops on pressing use
key (i.e. by trying to restart level), if I'm not mistaking. Demo1 in Heretic 1.3 is a typical case: it desyncs, player dies and in original recording pressing use
. Since in desynced demo player is dead, and game is still in demo loop, it just ends the demo.
Just to make sure, this fact is right, let's have a look at demo bar and demo timer, since both are heavily relied on total demo tics: https://youtu.be/zjcRiH-aJVY. See? It ends right when it should.
So, despite of this is not very vanilla behavior, it is correct behavior technically. DSDA-Heretic works same way, having a -demoextend
parameter by default is really useful, especially when there is no command line at hand.
So, "it's a feature, not a bug."
If anyone curious, here's that demos played via DOS version of Heretic Registered v1.0 without desyncs:
Desync happens in 1.2 and 1.3, but not sure about 1.1 - don't have this registered IWAD. Most likely it will desync, as code changes were happened right in 1.1.
I think this is because we have "extended demos" enabled by default, and these do not necessarily end when the player dies - though vanilla demos do.
I think that should apply when running PWAD demos, and built-in IWAD demos that play during the title sequence should run without the extended mode. Would that be a good compromise, or does that not work within Crispy's design philosophy?
Background
Version of Crispy Doom: Latest Autobuild
Operating System and version: Windows 11
Game: Heretic
Bug description
Observed behavior: When the player dies at the end of the first demo, the level restarts.
Expected behavior: Instead of the level restarting, it should go to the credits screen and then go to the next demo.