aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Kagerer2010-10-18 23:54:35 +0000
committerFlorian Kagerer2010-10-18 23:54:35 +0000
commitf05110f3f675a0ceae9c704391610b5896b584a7 (patch)
treea74c573f4118a75855e1ea0e313008e3677cea52
parentf82ee445d33de5d40fa34222080d3d7ffd165768 (diff)
downloadscummvm-rg350-f05110f3f675a0ceae9c704391610b5896b584a7.tar.gz
scummvm-rg350-f05110f3f675a0ceae9c704391610b5896b584a7.tar.bz2
scummvm-rg350-f05110f3f675a0ceae9c704391610b5896b584a7.zip
SCUMM/FM-TOWNS JAPANESE: fix font spacing issues
(improves MI1 intro) svn-id: r53597
-rw-r--r--engines/scumm/charset.cpp10
-rw-r--r--engines/scumm/string.cpp5
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?