aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/graphics/fontsjis.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/graphics/fontsjis.cpp b/engines/sci/graphics/fontsjis.cpp
index 3e2d5217f7..5f065355f6 100644
--- a/engines/sci/graphics/fontsjis.cpp
+++ b/engines/sci/graphics/fontsjis.cpp
@@ -74,7 +74,12 @@ byte GfxFontSjis::getCharHeight(uint16 chr) {
void GfxFontSjis::draw(uint16 chr, int16 top, int16 left, byte color, bool greyedOutput) {
// TODO: Check, if character fits on screen - if it doesn't we need to skip it
// Normally SCI cuts the character and draws the part that fits, but the common SJIS doesn't support that
- _screen->putKanjiChar(_commonFont, left, top, chr, color);
+ // It seems as if the PC98 ROM actually uses the given position as the center of the character, that's why we
+ // subtract 4 here. Otherwise the characters will be slightly to the right. The actual cause for "bad" coordinates
+ // is GetLongest() inside GfxText16. It leaves the last character that is causing a split to a new line within the
+ // current line instead of removing it. That way the result will actually be too long (not our fault, sierra sci
+ // does it the same way)
+ _screen->putKanjiChar(_commonFont, left - 4, top, chr, color);
}
} // End of namespace Sci