- Fixed some issues with the scaling feature of DStatusBarCore::DrawString

This commit is contained in:
Player701 2021-11-25 16:14:01 +03:00 committed by Christoph Oelckers
parent 54ad3433b1
commit d0697d9801

View file

@ -754,7 +754,7 @@ void DStatusBarCore::DrawString(FFont* font, const FString& cstring, double x, d
{
if (ch == ' ')
{
x += monospaced ? spacing : font->GetSpaceWidth() + spacing;
x += (monospaced ? spacing : font->GetSpaceWidth() + spacing) * scaleX;
continue;
}
else if (ch == TEXTCOLOR_ESCAPE)
@ -774,7 +774,7 @@ void DStatusBarCore::DrawString(FFont* font, const FString& cstring, double x, d
width += font->GetDefaultKerning();
if (!monospaced) //If we are monospaced lets use the offset
x += (c->GetDisplayLeftOffset() + 1); //ignore x offsets since we adapt to character size
x += c->GetDisplayLeftOffset() * scaleX + 1; //ignore x offsets since we adapt to character size
double rx, ry, rw, rh;
rx = x + drawOffset.X;
@ -825,12 +825,12 @@ void DStatusBarCore::DrawString(FFont* font, const FString& cstring, double x, d
DTA_LegacyRenderStyle, ERenderStyle(style),
TAG_DONE);
dx = monospaced
? spacing
: width + spacing - (c->GetDisplayLeftOffset() + 1);
// Take text scale into account
x += dx * scaleX;
dx = monospaced
? spacing * scaleX
: (double(width) + spacing - c->GetDisplayLeftOffset()) * scaleX - 1;
x += dx;
}
}