From efb86f709f6220ac8971bb003da82c3e3a9a682a Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 13 Mar 2023 17:24:32 -0700 Subject: [PATCH] Add F9 as a dedicated WebM button Lightly refactors M_StartMovie and M_ScreenshotResponder. --- src/d_netcmd.c | 2 +- src/m_misc.cpp | 38 ++++++++++++++++++++++++++++++++------ src/m_misc.h | 2 +- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index e95d0792c..49ac9dc8e 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -2503,7 +2503,7 @@ static void Command_Stopdemo_f(void) static void Command_StartMovie_f(void) { - M_StartMovie(); + M_StartMovie(cv_moviemode.value); } static void Command_StopMovie_f(void) diff --git a/src/m_misc.cpp b/src/m_misc.cpp index f50962e0c..5ae80e81e 100644 --- a/src/m_misc.cpp +++ b/src/m_misc.cpp @@ -1316,7 +1316,7 @@ static inline moviemode_t M_StartMovieAVRecorder(const char *pathname) #endif } -void M_StartMovie(void) +void M_StartMovie(moviemode_t mode) { #if NUMSCREENS > 2 char pathname[MAX_WADPATH]; @@ -1331,7 +1331,7 @@ void M_StartMovie(void) if (rendermode == render_none) I_Error("Can't make a movie without a render system\n"); - switch (cv_moviemode.value) + switch (mode) { case MM_GIF: moviemode = M_StartMovieGIF(pathname); @@ -1842,12 +1842,38 @@ boolean M_ScreenshotResponder(event_t *ev) if (ch >= NUMKEYS && menuactive) // If it's not a keyboard key, then don't allow it in the menus! return false; - if (ch == KEY_F8 /*|| ch == gamecontrol[0][gc_screenshot][0] || ch == gamecontrol[0][gc_screenshot][1]*/) // remappable F8 + switch (ch) + { + case KEY_F8: M_ScreenShot(); - else if (ch == KEY_F9 /*|| ch == gamecontrol[0][gc_recordgif][0] || ch == gamecontrol[0][gc_recordgif][1]*/) // remappable F9 - ((moviemode) ? M_StopMovie : M_StartMovie)(); - else + break; + + case KEY_F9: + if (moviemode) + { + M_StopMovie(); + } + else + { + M_StartMovie(MM_AVRECORDER); + } + break; + + case KEY_F10: + if (moviemode) + { + M_StopMovie(); + } + else + { + M_StartMovie(static_cast(cv_moviemode.value)); + } + break; + + default: return false; + } + return true; } diff --git a/src/m_misc.h b/src/m_misc.h index 45a35d149..558a5904b 100644 --- a/src/m_misc.h +++ b/src/m_misc.h @@ -48,7 +48,7 @@ extern consvar_t cv_zlib_memory, cv_zlib_level, cv_zlib_strategy, cv_zlib_window extern consvar_t cv_zlib_memorya, cv_zlib_levela, cv_zlib_strategya, cv_zlib_window_bitsa; extern consvar_t cv_apng_delay, cv_apng_downscale; -void M_StartMovie(void); +void M_StartMovie(moviemode_t mode); void M_LegacySaveFrame(void); void M_StopMovie(void);