Infamous XBOX subtitle outline

This commit is contained in:
erorcun
2020-11-19 02:09:04 +03:00
parent 9826fdf6d5
commit 808f7c46f1
4 changed files with 50 additions and 1 deletions

View File

@ -942,6 +942,40 @@ CFont::PrintString(float x, float y, wchar *start, wchar *end, float spwidth)
}
#endif
#ifdef XBOX_SUBTITLES
void
CFont::PrintStringFromBottom(float x, float y, wchar *str)
{
#ifdef MORE_LANGUAGES
if (IsJapaneseFont())
y -= (32.0f * CFont::Details.scaleY / 2.75f + 2.0f * CFont::Details.scaleY) * GetNumberLines(x, y, str);
else
#endif
y -= (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * GetNumberLines(x, y, str);
PrintString(x, y, str);
}
void
CFont::PrintOutlinedString(float x, float y, wchar *str, float outlineStrength, bool fromBottom, CRGBA outlineColor)
{
CRGBA textColor = Details.color;
SetColor(outlineColor);
CVector2D offsets[] = { {1.f, 1.f}, {1.f, -1.f}, {-1.f, 1.f}, {-1.f, -1.f} };
for(int i = 0; i < ARRAY_SIZE(offsets); i++){
if (fromBottom)
PrintStringFromBottom(x + SCREEN_SCALE_X(offsets[i].x * outlineStrength), y + SCREEN_SCALE_Y(offsets[i].y * outlineStrength), str);
else
PrintString(x + SCREEN_SCALE_X(offsets[i].x * outlineStrength), y + SCREEN_SCALE_Y(offsets[i].y * outlineStrength), str);
}
SetColor(textColor);
if (fromBottom)
PrintStringFromBottom(x, y, str);
else
PrintString(x, y, str);
}
#endif
float
CFont::GetCharacterWidth(wchar c)
{