From 9e16f3b0dc009d6995fc2215e7d52a143abf8e4e Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 25 Jun 2020 13:03:19 -0700 Subject: [PATCH 1/3] Only fill the intermission with blapck if we can't draw patches This fixes an issue where patches cease to be drawn due to Y_UnloadData, but the screen is still overwritten, causing the next wipe to start from void. --- src/y_inter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/y_inter.c b/src/y_inter.c index cd197c5cf..3c2308851 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -330,7 +330,7 @@ void Y_IntermissionDrawer(void) safetorender = false; } - if (!usebuffer || !safetorender) + if (!safetorender) V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31); if (!safetorender) From 45cafe35abe93300e4e03e7443cccf2269252e83 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 25 Jun 2020 13:08:00 -0700 Subject: [PATCH 2/3] Just stretch the fallback card to the screen resolution --- src/y_inter.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/y_inter.c b/src/y_inter.c index 3c2308851..9ccba2d5f 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -359,12 +359,11 @@ void Y_IntermissionDrawer(void) else if (rendermode != render_soft && usebuffer) HWR_DrawIntermissionBG(); #endif - else + else if (bgpatch) { - if (widebgpatch && rendermode == render_soft && vid.width / vid.dupx == 400) - V_DrawScaledPatch(0, 0, V_SNAPTOLEFT, widebgpatch); - else if (bgpatch) - V_DrawScaledPatch(0, 0, 0, bgpatch); + fixed_t hs = vid.width * FRACUNIT / BASEVIDWIDTH; + fixed_t vs = vid.height * FRACUNIT / BASEVIDHEIGHT; + V_DrawStretchyFixedPatch(0, 0, hs, vs, V_NOSCALEPATCH, bgpatch, NULL); } } else if (bgtile) From 8878dcc023ddd4fad82b37933d7acc175b2a4dce Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 25 Jun 2020 13:08:48 -0700 Subject: [PATCH 3/3] Remove caching of INTERSCW --- src/y_inter.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/y_inter.c b/src/y_inter.c index 9ccba2d5f..799578c34 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -141,7 +141,6 @@ static y_data data; // graphics static patch_t *bgpatch = NULL; // INTERSCR -static patch_t *widebgpatch = NULL; // INTERSCW static patch_t *bgtile = NULL; // SPECTILE/SRB2BACK static patch_t *interpic = NULL; // custom picture defined in map header static boolean usetile; @@ -1265,7 +1264,6 @@ void Y_StartIntermission(void) data.coop.actnum = mapheaderinfo[gamemap-1]->actnum; // get background patches - widebgpatch = W_CachePatchName("INTERSCW", PU_PATCH); bgpatch = W_CachePatchName("INTERSCR", PU_PATCH); // grab an interscreen if appropriate @@ -2083,7 +2081,6 @@ static void Y_UnloadData(void) // unload the background patches UNLOAD(bgpatch); - UNLOAD(widebgpatch); UNLOAD(bgtile); UNLOAD(interpic); @@ -2126,7 +2123,6 @@ static void Y_CleanupData(void) { // unload the background patches CLEANUP(bgpatch); - CLEANUP(widebgpatch); CLEANUP(bgtile); CLEANUP(interpic);