diff --git a/src/k_menu.h b/src/k_menu.h index 5dea1c177..9d252f326 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -206,6 +206,7 @@ extern menuitem_t MAIN_Goner[]; extern menu_t MAIN_GonerDef; void M_GonerTick(void); +void M_DrawGonerBack(void); void M_GonerProfile(INT32 choice); void M_GonerTutorial(INT32 choice); void M_GonerResetLooking(int type); diff --git a/src/k_menudraw.c b/src/k_menudraw.c index b33893c29..40a893a2e 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -785,7 +785,9 @@ void M_Drawer(void) if (menuactive) { boolean drawbgroutine = false; - if (gamestate == GS_MENU) + boolean trulystarted = M_GameTrulyStarted(); + + if (gamestate == GS_MENU && trulystarted) { if (currentMenu->bgroutine) drawbgroutine = true; @@ -798,7 +800,11 @@ void M_Drawer(void) && (currentMenu->behaviourflags & MBF_DRAWBGWHILEPLAYING)) drawbgroutine = true; - if (!WipeInAction && currentMenu != &PAUSE_PlaybackMenuDef) + if (!Playing() && !trulystarted) + { + M_DrawGonerBack(); + } + else if (!WipeInAction && currentMenu != &PAUSE_PlaybackMenuDef) { V_DrawFadeScreen(122, 3); } @@ -3861,7 +3867,7 @@ void M_DrawMPServerBrowser(void) void M_DrawOptionsCogs(void) { // the background isn't drawn outside of being in the main menu state. - if (gamestate == GS_MENU) + if (gamestate == GS_MENU && M_GameTrulyStarted()) { patch_t *back[3] = {W_CachePatchName("OPT_BG1", PU_CACHE), W_CachePatchName("OPT_BG2", PU_CACHE), W_CachePatchName("OPT_BG3", PU_CACHE)}; INT32 tflag = 0; diff --git a/src/menus/main-goner.cpp b/src/menus/main-goner.cpp index 89786d9cd..972b53a8a 100644 --- a/src/menus/main-goner.cpp +++ b/src/menus/main-goner.cpp @@ -33,7 +33,6 @@ menuitem_t MAIN_Goner[] = {.routine = M_GonerTutorial}, 0, 0}, }; -static void M_DrawGonerBack(void); static void M_GonerDrawer(void); menu_t MAIN_GonerDef = { @@ -497,10 +496,25 @@ void M_GonerTick(void) } } -static void M_DrawGonerBack(void) +void M_DrawGonerBack(void) { srb2::Draw drawer = srb2::Draw(); + if (gamedata->gonerlevel <= GDGONER_VIDEO) + { + drawer + .width(BASEVIDWIDTH) + .height(BASEVIDHEIGHT) + .fill(157); + + drawer + .xy(10, 10) + .font(srb2::Draw::Font::kConsole) + .flags(V_ADD|V_10TRANS) + .text("NO SIGNAL"); + return; + } + drawer .width(BASEVIDWIDTH) .height(BASEVIDHEIGHT)