mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 11:41:25 +00:00
Enhanced Surface::writeSubstring to crop any string that exceeds the width of the surface - this fixes a visual glitch in the German version where some lines were so long they were exceeding the size of the screen
svn-id: r30547
This commit is contained in:
parent
586ef72e96
commit
e6c20003c0
@ -263,11 +263,16 @@ void Surface::writeSubstring(uint16 x, uint16 y, Common::String line, int len,
|
||||
colour = LureEngine::getReference().isEGA() ? EGA_DIALOG_TEXT_COLOUR : VGA_DIALOG_TEXT_COLOUR;
|
||||
|
||||
for (int index = 0; (index < len) && (*sPtr != '\0'); ++index, ++sPtr) {
|
||||
int charSize = varLength ? fontSize[(uint8)*sPtr - 32] + 2 : FONT_WIDTH;
|
||||
if (x + charSize >= width())
|
||||
// Passed the right hand edge of the surface
|
||||
break;
|
||||
|
||||
// Write next character
|
||||
writeChar(x, y, (uint8) *sPtr, transparent, colour);
|
||||
|
||||
// Move to after the character in preparation for the next character
|
||||
if (!varLength) x += FONT_WIDTH;
|
||||
else x += fontSize[(uint8)*sPtr - 32] + 2;
|
||||
x += charSize;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user