diff --git a/src/wi_stuff.cpp b/src/wi_stuff.cpp index 3fdde8aa5c..fca44fd17e 100644 --- a/src/wi_stuff.cpp +++ b/src/wi_stuff.cpp @@ -210,7 +210,7 @@ private: // //==================================================================== - void drawOnLnode(int n, FGameTexture * c[], int numc) + void drawOnLnode(int n, FGameTexture * c[], int numc, double backwidth, double backheight) { int i; for (i = 0; i= 0 && right < 320 && top >= 0 && bottom < 200) { - DrawTexture(twod, c[i], lnodes[n].x, lnodes[n].y, DTA_320x200, true, TAG_DONE); + DrawTexture(twod, c[i], lnodes[n].x, lnodes[n].y, DTA_FullscreenScale, FSMode_ScaleToFit43, DTA_VirtualWidthF, backwidth, DTA_VirtualHeightF, backheight, TAG_DONE); break; } } @@ -602,8 +602,8 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe // placing the animations precisely where they belong on the base pic animwidth = background->GetDisplayWidth(); animheight = background->GetDisplayHeight(); - if (gameinfo.fullscreenautoaspect > 0) animwidth = 320; // deal with widescreen replacements that keep the original coordinates. - DrawTexture(twod, background, 0, 0, DTA_Fullscreen, true, TAG_DONE); + if (animheight == 200) animwidth = 320; // deal with widescreen replacements that keep the original coordinates. + DrawTexture(twod, background, 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, TAG_DONE); } else { @@ -659,7 +659,7 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe } if (a->ctr >= 0) DrawTexture(twod, a->frames[a->ctr], a->loc.x, a->loc.y, - DTA_VirtualWidthF, animwidth, DTA_VirtualHeightF, animheight, DTA_FullscreenScale, gameinfo.fullscreenautoaspect, TAG_DONE); + DTA_VirtualWidthF, animwidth, DTA_VirtualHeightF, animheight, DTA_FullscreenScale, FSMode_ScaleToFit43, TAG_DONE); } if (drawsplat) @@ -667,7 +667,7 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe for (i = 0; iflags & LEVEL_VISITED) drawOnLnode(i, &splat, 1); // draw a splat on taken cities. + if (li && li->flags & LEVEL_VISITED) drawOnLnode(i, &splat, 1, animwidth, animheight); // draw a splat on taken cities. } } @@ -676,7 +676,7 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe { unsigned int v = MapToIndex(wbs->next); // Draw only if it points to a valid level on the current screen! - if (v