mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 20:21:26 +00:00
- fixed some scaling inconsistencies in the summary screen.
The background size wasn't taken into account for the splats and the widescreen check never verified the height of the background image. It will now unconditionally use the new widescreen expansion mode for everything to reduce problems, use the background's display size for positioning overlays and only in the case of 200 pixel tall images perform widescreen positioning adjustment.
This commit is contained in:
parent
bd68ef917e
commit
fbf57e0c1d
1 changed files with 7 additions and 7 deletions
|
@ -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<numc; i++)
|
||||
|
@ -230,7 +230,7 @@ private:
|
|||
|
||||
if (left >= 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; i<lnodes.Size(); i++)
|
||||
{
|
||||
level_info_t * li = FindLevelInfo(lnodes[i].Level);
|
||||
if (li && li->flags & 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<lnodes.Size()) drawOnLnode(v, &yah[0], yah.Size());
|
||||
if (v<lnodes.Size()) drawOnLnode(v, &yah[0], yah.Size(), animwidth, animheight);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue