diff --git a/src/k_menu.h b/src/k_menu.h index 03c7df458..555464a18 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -593,6 +593,8 @@ void M_GoBack(INT32 choice); void M_Ticker(void); void M_Init(void); +void M_PlayMenuJam(void); + void M_MenuTypingInput(INT32 key); extern menu_t MessageDef; diff --git a/src/k_menufunc.c b/src/k_menufunc.c index 967f97e37..6ebb2b515 100644 --- a/src/k_menufunc.c +++ b/src/k_menufunc.c @@ -356,6 +356,17 @@ boolean M_Responder(event_t *ev) return true; } +void M_PlayMenuJam(void) +{ + if (cv_menujam_update.value) + { + CV_AddValue(&cv_menujam, 1); + CV_SetValue(&cv_menujam_update, 0); + } + + S_ChangeMusicInternal(cv_menujam.string, true); +} + // // M_SpecificMenuRestore // @@ -472,14 +483,6 @@ void M_StartControlPanel(void) CON_ToggleOff(); modeattacking = ATTACKING_NONE; - - if (cv_menujam_update.value) - { - CV_AddValue(&cv_menujam, 1); - CV_SetValue(&cv_menujam_update, 0); - } - - S_ChangeMusicInternal(cv_menujam.string, true); } if (cv_currprofile.value == -1) // Only ask once per session. @@ -510,6 +513,8 @@ void M_StartControlPanel(void) currentMenu = M_SpecificMenuRestore(M_InterruptMenuWithChallenges(restoreMenu)); restoreMenu = NULL; } + + M_PlayMenuJam(); } else { diff --git a/src/s_sound.c b/src/s_sound.c index e93e5c584..aedcaee15 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -31,6 +31,7 @@ #include "m_cond.h" // for conditionsets #include "lua_hook.h" // MusicChange hook #include "byteptr.h" +#include "k_menu.h" // M_PlayMenuJam #ifdef HW3SOUND // 3D Sound Interface @@ -2651,9 +2652,13 @@ void GameDigiMusic_OnChange(void) { P_RestoreMusic(&players[consoleplayer]); } - else if (S_MusicExists("menu")) + else if (gamestate == GS_TITLESCREEN) { - S_ChangeMusicInternal("menu", looptitle); + S_ChangeMusicInternal("_title", looptitle); + } + else + { + M_PlayMenuJam(); } } else