[Scummvm-cvs-logs] SF.net SVN: scummvm:[48684] scummvm/trunk/engines/sci/graphics/fontsjis.cpp
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sat Apr 17 15:31:05 CEST 2010
Revision: 48684
http://scummvm.svn.sourceforge.net/scummvm/?rev=48684&view=rev
Author: m_kiewitz
Date: 2010-04-17 13:31:04 +0000 (Sat, 17 Apr 2010)
Log Message:
-----------
SCI: changed coordinate adjustment for kanji chars to & 0xFFC
Modified Paths:
--------------
scummvm/trunk/engines/sci/graphics/fontsjis.cpp
Modified: scummvm/trunk/engines/sci/graphics/fontsjis.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/fontsjis.cpp 2010-04-17 03:11:54 UTC (rev 48683)
+++ scummvm/trunk/engines/sci/graphics/fontsjis.cpp 2010-04-17 13:31:04 UTC (rev 48684)
@@ -74,12 +74,13 @@
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
- // 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);
+
+ // According to LordHoto the PC98 ROM actually split the screen into 40x25 kanji chars and was only able to place
+ // them there. So removing the lower 4 bits of the horizontal coordinate puts them into the correct position (it seems).
+ // If we don't do this, the characters will be slightly to the right, caused by "GetLongest()" inside GfxText16 that
+ // leaves the last character that is causing a split into 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 & 0xFFC, top, chr, color);
}
} // End of namespace Sci
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list