diff --git a/src/common/2d/v_2ddrawer.cpp b/src/common/2d/v_2ddrawer.cpp index 665ea3d8ca..59765daa7a 100644 --- a/src/common/2d/v_2ddrawer.cpp +++ b/src/common/2d/v_2ddrawer.cpp @@ -37,6 +37,7 @@ #include "vm.h" #include "c_cvars.h" #include "v_draw.h" +#include "v_video.h" #include "fcolormap.h" static F2DDrawer drawer; @@ -752,6 +753,13 @@ void F2DDrawer::AddFlatFill(int left, int top, int right, int bottom, FGameTextu fV1 = float(right - left) / (float)src->GetDisplayHeight() * fs; break; + case -1: // classic flat scaling + float ar = 4.f / 3.f / (float)ActiveRatio((float)screen->GetWidth(), (float)screen->GetHeight()); + fU1 = 0.f; + fV1 = 0.f; + fU2 = 320.f / 64.f * fs / ar; + fV2 = 200.f / 64.f * fs; + break; } dg.mVertIndex = (int)mVertices.Reserve(4); auto ptr = &mVertices[dg.mVertIndex]; diff --git a/src/intermission/intermission.cpp b/src/intermission/intermission.cpp index f2d1609f2d..0e03cef95a 100644 --- a/src/intermission/intermission.cpp +++ b/src/intermission/intermission.cpp @@ -73,6 +73,8 @@ extern int NoWipe; CVAR(Bool, nointerscrollabort, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); CVAR(Bool, inter_subtitles, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); +CVAR(Bool, inter_classic_scaling, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); + //========================================================================== // // This also gets used by the title loop. @@ -221,7 +223,7 @@ void DIntermissionScreen::Drawer () } else { - twod->AddFlatFill(0,0, twod->GetWidth(), twod->GetHeight(), TexMan.GetGameTexture(mBackground)); + twod->AddFlatFill(0,0, twod->GetWidth(), twod->GetHeight(), TexMan.GetGameTexture(mBackground), (inter_classic_scaling ? -1 : 0)); } } else