From f05110f3f675a0ceae9c704391610b5896b584a7 Mon Sep 17 00:00:00 2001 From: Florian Kagerer Date: Mon, 18 Oct 2010 23:54:35 +0000 Subject: SCUMM/FM-TOWNS JAPANESE: fix font spacing issues (improves MI1 intro) svn-id: r53597 --- engines/scumm/charset.cpp | 10 +++++----- 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? -- cgit v1.2.3