-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add a "prev map" key binding #2046
base: master
Are you sure you want to change the base?
Conversation
@@ -2608,6 +2608,18 @@ boolean M_ShortcutResponder(const event_t *ev) | |||
} | |||
} | |||
|
|||
if (M_InputActivated(input_menu_prevlevel)) | |||
{ | |||
if (demoplayback && singledemo && !PLAYBACK_SKIP) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about this part.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Next Level" works during demoplayback
. "Prev Level" would not be so practical - we would have to restart the demo from the beginning. I think we need demo compatible save/rewind to implement the "Prev Level" feature well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need demo compatible save/rewind to implement the "Prev Level" feature well.
For demos, yes. But for regular play?
What if you start the game with -warp 1 2
and hit the "prev level" button? I would expect it to go back to E1M1, although this map has not been visited in the current run.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For demos, yes. But for regular play?
Yes, I was talking about demos. Sure, we can implement "prev map" without demo playback support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Demo support for "prev level" would be very useful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Demo support for "prev level" would be very useful.
Then it will take a while until we have demo-compatible saves. DSDA-Doom has an implementation of it, but I want to try to extend zone memory with "relative pointers" idea: https://nullprogram.com/blog/2023/09/30/
instead of pointers I use signed integers whose value indicates an offset relative to itself
This would allow us to save/restore the entire playsim with a single memcpy
. Not sure if this will work though.
@@ -702,6 +702,7 @@ void M_BindInputVariables(void) | |||
|
|||
BIND_INPUT(input_menu_reloadlevel, "Restart current level/demo"); | |||
BIND_INPUT(input_menu_nextlevel, "Go to next level"); | |||
BIND_INPUT(input_menu_prevlevel, "Go to previous level"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's a good solution.
Fixes #2007