diff --git a/SpaceCadetPinball/gdrv.cpp b/SpaceCadetPinball/gdrv.cpp index b714d9c..2cb49f4 100644 --- a/SpaceCadetPinball/gdrv.cpp +++ b/SpaceCadetPinball/gdrv.cpp @@ -436,12 +436,17 @@ void gdrv::grtext_draw_ttext_in_box(LPCWSTR text, int xOff, int yOff, int width, 22, 28 }; + static const int fontSizes_EastAsian[3] = + { + 22, + 27, + 32 + }; xOff = static_cast(xOff * fullscrn::ScaleX) + fullscrn::OffsetX; yOff = static_cast(yOff * fullscrn::ScaleY) + fullscrn::OffsetY; width = static_cast(width * fullscrn::ScaleX); height = static_cast(height * fullscrn::ScaleY); - auto fontSize = static_cast(round(fontSizes[fullscrn::GetResolution()] * fullscrn::ScaleY)); HDC dc = GetDC(hwnd); tagRECT rc{}; @@ -459,25 +464,29 @@ void gdrv::grtext_draw_ttext_in_box(LPCWSTR text, int xOff, int yOff, int width, sscanf_s(fontColor, "%d %d %d", &grtext_red, &grtext_green, &grtext_blue); } - const char* font; + const char* font = "Arial"; + const int* selectedFontSizes = fontSizes; switch (options::Options.Language) { case Languages::TraditionalChinese: font = "Microsoft JhengHei"; + selectedFontSizes = fontSizes_EastAsian; break; case Languages::SimplifiedChinese: font = "Microsoft YaHei"; + selectedFontSizes = fontSizes_EastAsian; break; case Languages::Japanese: font = "MS UI Gothic"; break; case Languages::Korean: - font = "Gulim"; + font = "Malgun Gothic"; + selectedFontSizes = fontSizes_EastAsian; break; - default: - font = "Arial"; } + auto fontSize = static_cast(round(selectedFontSizes[fullscrn::GetResolution()] * fullscrn::ScaleY)); + // Default font does not scale well auto hNewFont = CreateFont(fontSize, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,