[Scummvm-cvs-logs] scummvm master -> f24bac2d0f79bc49041cfe035a681338850b2e9d

athrxx athrxx at scummvm.org
Sun Jul 10 00:03:04 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f24bac2d0f SCUMM: fix DS compilation


Commit: f24bac2d0f79bc49041cfe035a681338850b2e9d
    https://github.com/scummvm/scummvm/commit/f24bac2d0f79bc49041cfe035a681338850b2e9d
Author: athrxx (athrxx at scummvm.org)
Date: 2011-07-09T14:57:51-07:00

Commit Message:
SCUMM: fix DS compilation

Changed paths:
    engines/scumm/charset.cpp
    engines/scumm/charset.h
    engines/scumm/scumm.cpp
    engines/scumm/scumm.h



diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index bba29bb..33010af 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -49,7 +49,7 @@ void ScummEngine::loadCJKFont() {
 	_newLineCharacter = 0;
 
 	if (_game.version <= 5 && _game.platform == Common::kPlatformFMTowns && _language == Common::JA_JPN) { // FM-TOWNS v3 / v5 Kanji
-#ifdef DISABLE_TOWNS_DUAL_LAYER_MODE
+#if defined(DISABLE_TOWNS_DUAL_LAYER_MODE) || !defined(USE_RGB_COLOR)
 		GUIErrorMessage("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
 		error("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
 #else
@@ -61,6 +61,7 @@ void ScummEngine::loadCJKFont() {
 		_useCJKMode = true;
 #endif
 	} else if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine && _language == Common::JA_JPN) {
+#ifdef USE_RGB_COLOR
 		// use PC-Engine System Card, since game files don't have kanji font resources
 		_cjkFont = Graphics::FontSJIS::createFont(_game.platform);
 		if (!_cjkFont)
@@ -72,7 +73,7 @@ void ScummEngine::loadCJKFont() {
 		_2byteWidth = _cjkFont->getMaxFontWidth();
 		_2byteHeight = _cjkFont->getFontHeight();
 		_useCJKMode = true;		
-
+#endif
 	} else if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && _language == Common::JA_JPN) {
 		int numChar = 1413;
 		_2byteWidth = 16;
@@ -963,18 +964,22 @@ void CharsetRendererTownsV3::enableShadow(bool enable) {
 
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 	_shadowColor = 0x88;
+#ifdef USE_RGB_COLOR
 	if (_vm->_cjkFont)
 		_vm->_cjkFont->setDrawingMode(enable ? Graphics::FontSJIS::kFMTownsShadowMode : Graphics::FontSJIS::kDefaultMode);
 #endif
+#endif
 }
 
 void CharsetRendererTownsV3::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth) {
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+#ifdef USE_RGB_COLOR
 	if (_sjisCurChar) {
 		assert(_vm->_cjkFont);
 		_vm->_cjkFont->drawChar(_vm->_textSurface, _sjisCurChar, _left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier, _color, _shadowColor);
 		return;
 	}
+#endif
 
 	dst = (byte *)_vm->_textSurface.getBasePtr(_left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier);
 	int sfPitch = _vm->_textSurface.pitch;
@@ -1054,18 +1059,22 @@ void CharsetRendererTownsV3::drawBits1(const Graphics::Surface &s, byte *dst, co
 }
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 int CharsetRendererTownsV3::getDrawWidthIntern(uint16 chr) {
+#ifdef USE_RGB_COLOR
 	if (_vm->_useCJKMode && chr > 127) {
 		assert(_vm->_cjkFont);
 		return _vm->_cjkFont->getCharWidth(chr);
 	}
+#endif
 	return CharsetRendererV3::getDrawWidthIntern(chr);
 }
 
 int CharsetRendererTownsV3::getDrawHeightIntern(uint16 chr) {
+#ifdef USE_RGB_COLOR
 	if (_vm->_useCJKMode && chr > 127) {
 		assert(_vm->_cjkFont);
 		return _vm->_cjkFont->getFontHeight();
 	}
+#endif
 	return CharsetRendererV3::getDrawHeightIntern(chr);
 }
 
diff --git a/engines/scumm/charset.h b/engines/scumm/charset.h
index 4a57996..b80db73 100644
--- a/engines/scumm/charset.h
+++ b/engines/scumm/charset.h
@@ -25,6 +25,7 @@
 #include "common/scummsys.h"
 #include "common/rect.h"
 #include "graphics/sjis.h"
+#include "scumm/scumm.h"
 #include "scumm/gfx.h"
 #include "scumm/saveload.h"
 
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 173fb01..5233156 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -283,8 +283,10 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
 	_16BitPalette = NULL;
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 	_townsScreen = 0;
+#ifdef USE_RGB_COLOR
 	_cjkFont = 0;
 #endif
+#endif
 	_shadowPalette = NULL;
 	_shadowPaletteSize = 0;
 	memset(_currentPalette, 0, sizeof(_currentPalette));
@@ -632,8 +634,10 @@ ScummEngine::~ScummEngine() {
 
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 	delete _townsScreen;
+#ifdef USE_RGB_COLOR
 	delete _cjkFont;
 #endif
+#endif
 
 	delete _debugger;
 
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index ed9f650..e503af7 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -1328,13 +1328,17 @@ public:
 	// Exists both in V7 and in V72HE:
 	byte VAR_NUM_GLOBAL_OBJS;
 
+#ifdef USE_RGB_COLOR
+	// FM-Towns / PC-Engine specific
+	Graphics::FontSJIS *_cjkFont;
+#endif
+
 	// FM-Towns specific
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 public:
 	bool towns_isRectInStringBox(int x1, int y1, int x2, int y2);
 	byte _townsPaletteFlags;
-	byte _townsCharsetColorMap[16];
-	Graphics::FontSJIS *_cjkFont;
+	byte _townsCharsetColorMap[16];	
 
 protected:
 	void towns_drawStripToScreen(VirtScreen *vs, int dstX, int dstY, int srcX, int srcY, int w, int h);






More information about the Scummvm-git-logs mailing list