From 3db5d4701969373b2514d658e9f20b7656ced45c Mon Sep 17 00:00:00 2001 From: rarified Date: Thu, 9 Sep 2021 17:15:40 -0600 Subject: [PATCH] Fixed case where character can be remapped from Unicode. Forgot to subtract fFirstChar base --- Sources/Plasma/PubUtilLib/plGImage/plFont.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plGImage/plFont.cpp b/Sources/Plasma/PubUtilLib/plGImage/plFont.cpp index c9a282fb..30f86d2b 100644 --- a/Sources/Plasma/PubUtilLib/plGImage/plFont.cpp +++ b/Sources/Plasma/PubUtilLib/plGImage/plFont.cpp @@ -291,7 +291,7 @@ void plFont::IRenderString( plMipmap *mip, UInt16 x, UInt16 y, const wchar_t *st plCharacter& ch = fCharacters[(UInt16)L' ' - fFirstChar]; if (fCharacters.Count() <= ((UInt16)string[0] - fFirstChar)) { if (wctob(string[0]) != EOF) - ch = (fCharacters[(UInt16)wctob(string[0])]); + ch = (fCharacters[(UInt16)wctob(string[0]) - fFirstChar]); } else { ch = (fCharacters[(UInt16)string[0] - fFirstChar]); } @@ -397,7 +397,7 @@ void plFont::IRenderString( plMipmap *mip, UInt16 x, UInt16 y, const wchar_t *st plCharacter& ch = fCharacters[(UInt16)L' ' - fFirstChar]; if (fCharacters.Count() <= ((UInt16)string[0] - fFirstChar)) { if (wctob(string[0]) != EOF) - ch = (fCharacters[(UInt16)wctob(string[0])]); + ch = (fCharacters[(UInt16)wctob(string[0] - fFirstChar)]); } else { ch = (fCharacters[(UInt16)string[0] - fFirstChar]); } @@ -467,7 +467,7 @@ void plFont::IRenderString( plMipmap *mip, UInt16 x, UInt16 y, const wchar_t *st plCharacter* charToDraw = &(fCharacters[(UInt16)L' ' - fFirstchar]); if (fCharacters.Count() <= ((UInt16)string[i] - fFirstChar)) { if (wctob(string[i]) != EOF) - charToDraw = &(fCharacters[(UInt16)wctob(string[i])]); + charToDraw = &(fCharacters[(UInt16)wctob(string[i]) - fFirstChar]); } else { charToDraw = &(fCharacters[(UInt16)string[i] - fFirstChar]); } @@ -603,7 +603,7 @@ void plFont::IRenderString( plMipmap *mip, UInt16 x, UInt16 y, const wchar_t *st plCharacter& ch = fCharacters[(UInt16)L' ' - fFirstChar]; if (fCharacters.Count() <= ((UInt16)string[0] - fFirstChar)) { if (wctob(string[0]) != EOF) - ch = (fCharacters[(UInt16)wctob(string[0])]); + ch = (fCharacters[(UInt16)wctob(string[0] - fFirstChar)]); } else { ch = (fCharacters[(UInt16)string[0] - fFirstChar]); }