mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'f9-f10' into 'master'
Turn F9 into a dedicated WebM button, add F10 as "lossless recording" button See merge request KartKrew/Kart!1045
This commit is contained in:
commit
ba23836fc1
6 changed files with 72 additions and 33 deletions
|
|
@ -154,6 +154,7 @@ static void Command_Playdemo_f(void);
|
|||
static void Command_Timedemo_f(void);
|
||||
static void Command_Stopdemo_f(void);
|
||||
static void Command_StartMovie_f(void);
|
||||
static void Command_StartLossless_f(void);
|
||||
static void Command_StopMovie_f(void);
|
||||
static void Command_Map_f(void);
|
||||
static void Command_RandomMap(void);
|
||||
|
|
@ -891,11 +892,12 @@ void D_RegisterClientCommands(void)
|
|||
|
||||
COM_AddCommand("screenshot", M_ScreenShot);
|
||||
COM_AddCommand("startmovie", Command_StartMovie_f);
|
||||
COM_AddCommand("startlossless", Command_StartLossless_f);
|
||||
COM_AddCommand("stopmovie", Command_StopMovie_f);
|
||||
COM_AddCommand("minigen", M_MinimapGenerate);
|
||||
|
||||
CV_RegisterVar(&cv_screenshot_colorprofile);
|
||||
CV_RegisterVar(&cv_moviemode);
|
||||
CV_RegisterVar(&cv_lossless_recorder);
|
||||
|
||||
#ifdef SRB2_CONFIG_ENABLE_WEBM_MOVIES
|
||||
M_AVRecorder_AddCommands();
|
||||
|
|
@ -2503,7 +2505,12 @@ static void Command_Stopdemo_f(void)
|
|||
|
||||
static void Command_StartMovie_f(void)
|
||||
{
|
||||
M_StartMovie();
|
||||
M_StartMovie(MM_AVRECORDER);
|
||||
}
|
||||
|
||||
static void Command_StartLossless_f(void)
|
||||
{
|
||||
M_StartMovie(cv_lossless_recorder.value);
|
||||
}
|
||||
|
||||
static void Command_StopMovie_f(void)
|
||||
|
|
|
|||
|
|
@ -561,8 +561,6 @@ extern consvar_t cv_autorecord;
|
|||
|
||||
void M_SetMenuDelay(UINT8 i);
|
||||
|
||||
void Moviemode_mode_Onchange(void);
|
||||
|
||||
void M_SortServerList(void);
|
||||
|
||||
void M_MapMenuControls(event_t *ev);
|
||||
|
|
|
|||
|
|
@ -114,8 +114,8 @@ typedef off_t off64_t;
|
|||
|
||||
consvar_t cv_screenshot_colorprofile = CVAR_INIT ("screenshot_colorprofile", "Yes", CV_SAVE, CV_YesNo, NULL);
|
||||
|
||||
static CV_PossibleValue_t moviemode_cons_t[] = {{MM_GIF, "GIF"}, {MM_APNG, "aPNG"}, {MM_SCREENSHOT, "Screenshots"}, {MM_AVRECORDER, "WebM"}, {0, NULL}};
|
||||
consvar_t cv_moviemode = CVAR_INIT ("moviemode_mode", "WebM", CV_SAVE|CV_CALL, moviemode_cons_t, Moviemode_mode_Onchange);
|
||||
static CV_PossibleValue_t lossless_recorder_cons_t[] = {{MM_GIF, "GIF"}, {MM_APNG, "aPNG"}, {MM_SCREENSHOT, "Screenshots"}, {0, NULL}};
|
||||
consvar_t cv_lossless_recorder = CVAR_INIT ("lossless_recorder", "GIF", CV_SAVE, lossless_recorder_cons_t, NULL);
|
||||
|
||||
static CV_PossibleValue_t zlib_mem_level_t[] = {
|
||||
{1, "(Min Memory) 1"},
|
||||
|
|
@ -1316,22 +1316,36 @@ static inline moviemode_t M_StartMovieAVRecorder(const char *pathname)
|
|||
#endif
|
||||
}
|
||||
|
||||
void M_StartMovie(void)
|
||||
void M_StartMovie(moviemode_t mode)
|
||||
{
|
||||
#if NUMSCREENS > 2
|
||||
const char *folder;
|
||||
char pathname[MAX_WADPATH];
|
||||
|
||||
if (moviemode)
|
||||
return;
|
||||
|
||||
strcpy(pathname, srb2home);
|
||||
strcat(pathname, PATHSEP "media" PATHSEP "movies" PATHSEP);
|
||||
switch (mode)
|
||||
{
|
||||
case MM_GIF:
|
||||
folder = "gifs";
|
||||
break;
|
||||
|
||||
case MM_AVRECORDER:
|
||||
folder = "movies";
|
||||
break;
|
||||
|
||||
default:
|
||||
folder = "slideshows";
|
||||
}
|
||||
|
||||
sprintf(pathname, "%s" PATHSEP "media" PATHSEP "%s" PATHSEP, srb2home, folder);
|
||||
M_MkdirEach(pathname, M_PathParts(pathname) - 2, 0755);
|
||||
|
||||
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 +1856,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<moviemode_t>(cv_lossless_recorder.value));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,12 +43,12 @@ typedef enum {
|
|||
extern moviemode_t moviemode;
|
||||
|
||||
extern consvar_t cv_screenshot_colorprofile;
|
||||
extern consvar_t cv_moviemode;
|
||||
extern consvar_t cv_lossless_recorder;
|
||||
extern consvar_t cv_zlib_memory, cv_zlib_level, cv_zlib_strategy, cv_zlib_window_bits;
|
||||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -100,9 +100,6 @@ void M_InitOptions(INT32 choice)
|
|||
// So that pause doesn't go to the main menu...
|
||||
OPTIONS_MainDef.prevMenu = currentMenu;
|
||||
|
||||
// This will disable or enable the textboxes of the affected menus before we get to them.
|
||||
Moviemode_mode_Onchange();
|
||||
|
||||
M_SetupNextMenu(&OPTIONS_MainDef, false);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,19 +9,23 @@
|
|||
|
||||
menuitem_t OPTIONS_DataScreenshot[] =
|
||||
{
|
||||
#ifdef SRB2_CONFIG_ENABLE_WEBM_MOVIES
|
||||
{IT_HEADER, "MOVIE RECORDING (F9)", NULL,
|
||||
NULL, {NULL}, 0, 0},
|
||||
|
||||
{IT_STRING | IT_CVAR, "Recording Format", "What file format will movies will be recorded in?",
|
||||
NULL, {.cvar = &cv_moviemode}, 0, 0},
|
||||
|
||||
#ifdef SRB2_CONFIG_ENABLE_WEBM_MOVIES
|
||||
{IT_STRING | IT_CVAR, "Real-Time Data", "If enabled, shows fps, duration and filesize of recording in real-time.",
|
||||
NULL, {.cvar = &cv_movie_showfps}, 0, 0},
|
||||
#else
|
||||
{IT_SPACE | IT_NOTHING, NULL, NULL,
|
||||
NULL, {NULL}, 0, 0},
|
||||
#endif
|
||||
|
||||
{IT_SPACE | IT_NOTHING, NULL, NULL,
|
||||
NULL, {NULL}, 0, 0},
|
||||
|
||||
{IT_HEADER, "LOSSLESS RECORDING (F10)", NULL,
|
||||
NULL, {NULL}, 0, 0},
|
||||
|
||||
{IT_STRING | IT_CVAR, "Recording Format", "What file format will lossless recordings use?",
|
||||
NULL, {.cvar = &cv_lossless_recorder}, 0, 0},
|
||||
|
||||
};
|
||||
|
||||
menu_t OPTIONS_DataScreenshotDef = {
|
||||
|
|
@ -39,10 +43,3 @@ menu_t OPTIONS_DataScreenshotDef = {
|
|||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
void Moviemode_mode_Onchange(void)
|
||||
{
|
||||
// opt 3 in a 0 based array, you get the idea...
|
||||
OPTIONS_DataScreenshot[2].status =
|
||||
(cv_moviemode.value == MM_AVRECORDER ? IT_CVAR|IT_STRING : IT_DISABLED);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue