[Scummvm-cvs-logs] SF.net SVN: scummvm: [29890] scummvm/trunk/engines/scumm

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Dec 16 22:46:34 CET 2007


Revision: 29890
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29890&view=rev
Author:   fingolfin
Date:     2007-12-16 13:46:34 -0800 (Sun, 16 Dec 2007)

Log Message:
-----------
Patch #1851568: INDY3 Mac: Grail Diary Fix

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/charset.cpp
    scummvm/trunk/engines/scumm/string.cpp

Modified: scummvm/trunk/engines/scumm/charset.cpp
===================================================================
--- scummvm/trunk/engines/scumm/charset.cpp	2007-12-16 21:41:10 UTC (rev 29889)
+++ scummvm/trunk/engines/scumm/charset.cpp	2007-12-16 21:46:34 UTC (rev 29890)
@@ -1509,6 +1509,12 @@
 
 
 void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
+	// WORKAROUND for bug #1509509: Indy3 Mac does not show black
+	// characters (such as in the grail diary) if ignoreCharsetMask
+	// is true. See also patch #1851568.
+	if (_vm->_game.id == GID_INDY3 && _vm->_game.platform == Common::kPlatformMacintosh && _color == 0)
+		ignoreCharsetMask = false;
+
 	// Indy3 / Zak256 / Loom
 	int width, height, origWidth = 0, origHeight;
 	VirtScreen *vs;

Modified: scummvm/trunk/engines/scumm/string.cpp
===================================================================
--- scummvm/trunk/engines/scumm/string.cpp	2007-12-16 21:41:10 UTC (rev 29889)
+++ scummvm/trunk/engines/scumm/string.cpp	2007-12-16 21:46:34 UTC (rev 29890)
@@ -856,6 +856,27 @@
 	_charset->_disableOffsX = _charset->_firstChar = true;
 	_charset->setCurID(_string[a].charset);
 
+	// HACK: Correct positions of text in the grail diary in Indy3 Mac.
+	// See also patch #1851568.
+	if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformMacintosh && a == 1) {
+		if (_currentRoom == 75) {
+			if (_charset->_startLeft < 160)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 22;
+			else if (_charset->_startLeft < 200)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 10;
+		} else if (_currentRoom == 69) {
+			if (_charset->_startLeft < 160)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 15;
+			else if (_charset->_startLeft < 200)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 10;
+		} else if (_currentRoom == 90) {
+			if (_charset->_startLeft < 160)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 21;
+			else if (_charset->_startLeft < 200)
+				_charset->_startLeft = _charset->_left = _string[a].xpos - 15;
+		}
+	}
+
 	if (_game.version >= 5)
 		memcpy(_charsetColorMap, _charsetData[_charset->getCurID()], 4);
 


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