From 75c87499396f58cc613bd377ce23c41d4bf9f0a6 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 23 Sep 2022 22:58:51 +0100 Subject: [PATCH] Menu jammin - Menu uses one of three songs (already in music.pk3) - Cycles between them every time you return to the title screen after starting a map - Console-accessible. Do what you want --- src/k_menu.h | 2 +- src/k_menufunc.c | 34 +++++++++++++++++++--------------- src/p_setup.c | 3 +++ 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/k_menu.h b/src/k_menu.h index 415c54284..caf21013b 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -536,7 +536,7 @@ extern struct menutransition_s { extern boolean menuwipe; extern consvar_t cv_showfocuslost; -extern consvar_t cv_chooseskin, cv_serversort; +extern consvar_t cv_chooseskin, cv_serversort, cv_menujam_update; void M_SetMenuDelay(UINT8 i); diff --git a/src/k_menufunc.c b/src/k_menufunc.c index 753a9b767..4ee347587 100644 --- a/src/k_menufunc.c +++ b/src/k_menufunc.c @@ -143,6 +143,10 @@ consvar_t cv_showfocuslost = CVAR_INIT ("showfocuslost", "Yes", CV_SAVE, CV_YesN static CV_PossibleValue_t skins_cons_t[MAXSKINS+1] = {{1, DEFAULTSKIN}}; consvar_t cv_chooseskin = CVAR_INIT ("chooseskin", DEFAULTSKIN, CV_HIDDEN, skins_cons_t, NULL); +consvar_t cv_menujam_update = CVAR_INIT ("menujam_update", "Off", CV_SAVE, CV_OnOff, NULL); +static CV_PossibleValue_t menujam_cons_t[] = {{0, "menu"}, {1, "menu2"}, {2, "menu3"}, {0, NULL}}; +static consvar_t cv_menujam = CVAR_INIT ("menujam", "0", CV_SAVE, menujam_cons_t, NULL); + // This gametype list is integral for many different reasons. // When you add gametypes here, don't forget to update them in dehacked.c and doomstat.h! CV_PossibleValue_t gametype_cons_t[NUMGAMETYPES+1]; @@ -945,7 +949,13 @@ void M_StartControlPanel(void) paused = false; CON_ToggleOff(); - S_ChangeMusicInternal("menu", true); + if (cv_menujam_update.value) + { + CV_AddValue(&cv_menujam, 1); + CV_SetValue(&cv_menujam_update, 0); + } + + S_ChangeMusicInternal(cv_menujam.string, true); } menuactive = true; @@ -1686,6 +1696,14 @@ void M_Init(void) CV_RegisterVar(&cv_chooseskin); CV_RegisterVar(&cv_autorecord); + // don't lose your position in the jam cycle + CV_RegisterVar(&cv_menujam_update); + CV_RegisterVar(&cv_menujam); + +#ifndef NONET + CV_RegisterVar(&cv_serversort); +#endif + if (dedicated) return; @@ -1712,20 +1730,6 @@ void M_Init(void) CV_RegisterVar(&cv_dummyaddonsearch); M_UpdateMenuBGImage(true); - -#if 0 -#ifdef HWRENDER - // Permanently hide some options based on render mode - if (rendermode == render_soft) - OP_VideoOptionsMenu[op_video_ogl].status = - OP_VideoOptionsMenu[op_video_kartman].status = - OP_VideoOptionsMenu[op_video_md2] .status = IT_DISABLED; -#endif -#endif - -#ifndef NONET - CV_RegisterVar(&cv_serversort); -#endif } // ================================================== diff --git a/src/p_setup.c b/src/p_setup.c index 6815d1496..762bf0b1b 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -4074,6 +4074,9 @@ static void P_InitGametype(void) G_RecordDemo(buf); } + + // Started a game? Move on to the next jam when you go back to the title screen + CV_SetValue(&cv_menujam_update, 1); } /** Loads a level from a lump or external wad.