diff --git a/src/f_finale.c b/src/f_finale.c index 688009b68..f6bff28fb 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -902,9 +902,9 @@ boolean F_CreditResponder(event_t *event) void F_StartGameEvaluation(void) { // Credits option in extras menu - if (cursaveslot == -1) + if (grandprixinfo.gp == false) { - S_FadeOutStopMusic(MUSICRATE/2); + S_FadeMusic(0, MUSICRATE/4); F_StartGameEnd(); return; } diff --git a/src/k_menu.h b/src/k_menu.h index 7eefd06ea..832b4d7b2 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -1048,6 +1048,7 @@ typedef enum extras_eggtv, extras_stereo, extras_password, + extras_credits, } extras_e; void M_InitExtras(INT32 choice); // init for the struct diff --git a/src/menus/extras-1.c b/src/menus/extras-1.c index 5e11a6121..f623b2d3b 100644 --- a/src/menus/extras-1.c +++ b/src/menus/extras-1.c @@ -5,6 +5,15 @@ #include "../m_cond.h" #include "../m_cheat.h" #include "../s_sound.h" +#include "../f_finale.h" + +static void M_Credits(INT32 choice) +{ + (void)choice; + restoreMenu = currentMenu; + M_ClearMenus(true); + F_StartCredits(); +} menuitem_t EXTRAS_Main[] = { @@ -32,6 +41,9 @@ menuitem_t EXTRAS_Main[] = {IT_STRING | IT_CVAR | IT_CV_STRING, "Password", "If you don't know any passwords, come back later!", NULL, {.cvar = &cv_dummyextraspassword}, 0, 0}, + + {IT_STRING | IT_CALL, "Credits", "It's important to know who makes the video games you play.", + NULL, {.routine = M_Credits}, 0, 0}, }; // the extras menu essentially reuses the options menu stuff