- allow all list menu items to fall back on the Unicode font for languages which are not supported by the bitmap font.

This allows the primary menus to display Korean text without any further special handling.
This commit is contained in:
Christoph Oelckers 2019-04-10 22:25:31 +02:00
parent b423caa8d6
commit 9fddc38030

View file

@ -89,6 +89,8 @@ class ListMenuItemStaticPatch : ListMenuItem
return; return;
} }
let font = generic_ui? NewSmallFont : mFont;
double x = mXpos; double x = mXpos;
Vector2 vec = TexMan.GetScaledSize(mTexture); Vector2 vec = TexMan.GetScaledSize(mTexture);
if (mYpos >= 0) if (mYpos >= 0)
@ -100,8 +102,8 @@ class ListMenuItemStaticPatch : ListMenuItem
} }
else else
{ {
if (mCentered) x -= mFont.StringWidth(mSubstitute)/2; if (mCentered) x -= font.StringWidth(mSubstitute)/2;
screen.DrawText(mFont, mColor, x, mYpos, mSubstitute, DTA_Clean, true); screen.DrawText(font, mColor, x, mYpos, mSubstitute, DTA_Clean, true);
} }
} }
else else
@ -114,8 +116,8 @@ class ListMenuItemStaticPatch : ListMenuItem
} }
else else
{ {
if (mCentered) x -= (mFont.StringWidth(mSubstitute) * CleanXfac)/2; if (mCentered) x -= (font.StringWidth(mSubstitute) * CleanXfac)/2;
screen.DrawText(mFont, mColor, x, mYpos, mSubstitute, DTA_CleanNoMove, true); screen.DrawText(font, mColor, x, mYpos, mSubstitute, DTA_CleanNoMove, true);
} }
} }
} }
@ -164,18 +166,20 @@ class ListMenuItemStaticText : ListMenuItem
{ {
if (mText.Length() != 0) if (mText.Length() != 0)
{ {
let font = generic_ui? NewSmallFont : mFont;
String text = Stringtable.Localize(mText); String text = Stringtable.Localize(mText);
if (mYpos >= 0) if (mYpos >= 0)
{ {
double x = mXpos; double x = mXpos;
if (mCentered) x -= mFont.StringWidth(text)/2; if (mCentered) x -= font.StringWidth(text)/2;
screen.DrawText(mFont, mColor, x, mYpos, text, DTA_Clean, true); screen.DrawText(font, mColor, x, mYpos, text, DTA_Clean, true);
} }
else else
{ {
double x = (mXpos - 160) * CleanXfac + (Screen.GetWidth() >> 1); double x = (mXpos - 160) * CleanXfac + (Screen.GetWidth() >> 1);
if (mCentered) x -= (mFont.StringWidth(text) * CleanXfac)/2; if (mCentered) x -= (font.StringWidth(text) * CleanXfac)/2;
screen.DrawText (mFont, mColor, x, -mYpos*CleanYfac, text, DTA_CleanNoMove, true); screen.DrawText (font, mColor, x, -mYpos*CleanYfac, text, DTA_CleanNoMove, true);
} }
} }
} }
@ -285,12 +289,14 @@ class ListMenuItemTextItem : ListMenuItemSelectable
override void Drawer(bool selected) override void Drawer(bool selected)
{ {
screen.DrawText(mFont, selected ? mColorSelected : mColor, mXpos, mYpos, mText, DTA_Clean, true); let font = generic_ui? NewSmallFont : mFont;
screen.DrawText(font, selected ? mColorSelected : mColor, mXpos, mYpos, mText, DTA_Clean, true);
} }
override int GetWidth() override int GetWidth()
{ {
return max(1, mFont.StringWidth(StringTable.Localize(mText))); let font = generic_ui? NewSmallFont : mFont;
return max(1, font.StringWidth(StringTable.Localize(mText)));
} }
} }