diff options
-rw-r--r-- | engines/scumm/charset.cpp | 10 | ||||
-rw-r--r-- | engines/scumm/string.cpp | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp index 3c76773a70..c77c77857a 100644 --- a/engines/scumm/charset.cpp +++ b/engines/scumm/charset.cpp @@ -365,7 +365,7 @@ void CharsetRendererV3::setCurID(int32 id) { int CharsetRendererCommon::getFontHeight() { if (_vm->_useCJKMode) { if (_vm->_game.platform == Common::kPlatformFMTowns) { - static const uint8 sjisFontHeightM1[] = { 0, 8, 10, 9, 10, 9, 10, 0, 0 }; + static const uint8 sjisFontHeightM1[] = { 0, 8, 9, 8, 9, 8, 9, 0, 0, 0 }; static const uint8 sjisFontHeightM2[] = { 0, 8, 9, 9, 9, 8, 9, 9, 9, 8 }; static const uint8 sjisFontHeightI4[] = { 0, 8, 9, 9, 9, 8, 8, 8, 8, 8 }; const uint8 *htbl = (_vm->_game.id == GID_MONKEY) ? sjisFontHeightM1 : ((_vm->_game.id == GID_INDY4) ? sjisFontHeightI4 : sjisFontHeightM2); @@ -381,7 +381,7 @@ int CharsetRendererCommon::getFontHeight() { int CharsetRendererClassic::getCharWidth(uint16 chr) { int spacing = 0; - if (_vm->_useCJKMode) { + if (_vm->_useCJKMode) { if (_vm->_game.platform == Common::kPlatformFMTowns) { if ((chr & 0x00ff) == 0x00fd) { chr >>= 8; @@ -394,8 +394,8 @@ int CharsetRendererClassic::getCharWidth(uint16 chr) { if (spacing) { if (_vm->_game.id == GID_MONKEY) { spacing++; - if (_curId == 2) - spacing++; + //if (_curId == 2) + // spacing++; } else if (_vm->_game.id != GID_INDY4 && _curId == 1) { spacing++; } @@ -669,7 +669,7 @@ void CharsetRendererCommon::enableShadow(bool enable) { if (_vm->_game.id == GID_MONKEY) { _vm->_cjkFont->setShadowMode((_curId == 2 || _curId == 4 || _curId == 6) ? Graphics::FontSJIS::kShadowTypeOutline : Graphics::FontSJIS::kShadowTypeNone); } else if (_vm->_game.id == GID_MONKEY2) { - _vm->_cjkFont->setShadowMode((_curId != 1 && _curId != 3 && _curId != 5) ? Graphics::FontSJIS::kShadowTypeOutline : Graphics::FontSJIS::kShadowTypeNone); + _vm->_cjkFont->setShadowMode((_curId != 1 && _curId != 5 && _curId != 9) ? Graphics::FontSJIS::kShadowTypeOutline : Graphics::FontSJIS::kShadowTypeNone); } else if (_vm->_game.id == GID_INDY4) { _vm->_cjkFont->setShadowMode((_curId == 2 || _curId == 3 || _curId == 4) ? Graphics::FontSJIS::kShadowTypeOutline : Graphics::FontSJIS::kShadowTypeNone); } diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp index 92e6ef2f9e..4b09547c8c 100644 --- a/engines/scumm/string.cpp +++ b/engines/scumm/string.cpp @@ -601,7 +601,12 @@ void ScummEngine::CHARSET_1() { } else if (!(_game.platform == Common::kPlatformFMTowns) && _string[0].height) { _nextTop += _string[0].height; } else { + bool useCJK = _useCJKMode; + // SCUMM5 FM-Towns doesn't use the height of the ROM font here. + if (_game.platform == Common::kPlatformFMTowns && _game.version == 5) + _useCJKMode = false; _nextTop += _charset->getFontHeight(); + _useCJKMode = useCJK; } if (_game.version > 3) { // FIXME: is this really needed? |