[Scummvm-cvs-logs] SF.net SVN: scummvm:[51208] scummvm/trunk/engines/sci/graphics/paint16.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Fri Jul 23 15:57:45 CEST 2010


Revision: 51208
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51208&view=rev
Author:   m_kiewitz
Date:     2010-07-23 13:57:45 +0000 (Fri, 23 Jul 2010)

Log Message:
-----------
SCI: adding workaround for sq4/room 391

kDisplay is called with an object as opcode, we simply skip over it

Modified Paths:
--------------
    scummvm/trunk/engines/sci/graphics/paint16.cpp

Modified: scummvm/trunk/engines/sci/graphics/paint16.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-07-23 13:47:00 UTC (rev 51207)
+++ scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-07-23 13:57:45 UTC (rev 51208)
@@ -480,7 +480,10 @@
 	_ports->textGreyedOutput(false);
 	// processing codes in argv
 	while (argc > 0) {
-		displayArg = argv[0].toUint16();
+		if (argv[0].segment)
+			displayArg = 0xFFFF;
+		else
+			displayArg = argv[0].toUint16();
 		argc--; argv++;
 		switch (displayArg) {
 		case SCI_DISPLAY_MOVEPEN:
@@ -543,6 +546,8 @@
 		default:
 			if ((g_sci->getGameId() == GID_ISLANDBRAIN) && (g_sci->getEngineState()->currentRoomNumber() == 300))
 				break; // WORKAROUND: we are called there with an forwarded 0 as additional parameter (script bug)
+			if ((g_sci->getGameId() == GID_SQ4) && (g_sci->getEngineState()->currentRoomNumber() == 391))
+				break; // WORKAROUND: we get a pointer as parameter, skip it (sub 84h)
 			error("Unknown kDisplay argument %X", displayArg);
 			break;
 		}


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