[Scummvm-cvs-logs] SF.net SVN: scummvm:[51319] scummvm/trunk/engines/sci/engine

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Mon Jul 26 17:40:13 CEST 2010


Revision: 51319
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51319&view=rev
Author:   m_kiewitz
Date:     2010-07-26 15:40:12 +0000 (Mon, 26 Jul 2010)

Log Message:
-----------
SCI: adding workaround for island of dr. brain

room 290 elevator puzzle, solves bug #3034485

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kgraphics.cpp
    scummvm/trunk/engines/sci/engine/workarounds.cpp

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-26 15:03:31 UTC (rev 51318)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-26 15:40:12 UTC (rev 51319)
@@ -260,7 +260,7 @@
 
 reg_t kGraphSaveBox(EngineState *s, int argc, reg_t *argv) {
 	Common::Rect rect = getGraphRect(argv);
-	uint16 screenMask = (argc > 4) ? argv[4].toUint16() : 0;
+	uint16 screenMask = argv[4].toUint16() & GFX_SCREEN_MASK_ALL;
 	return g_sci->_gfxPaint16->kernelGraphSaveBox(rect, screenMask);
 }
 

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-26 15:03:31 UTC (rev 51318)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-26 15:40:12 UTC (rev 51319)
@@ -149,6 +149,8 @@
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kGraphSaveBox_workarounds[] = {
     { GID_CASTLEBRAIN,   420,   427,  0,          "alienIcon", "select",         -1,    0, { WORKAROUND_STILLCALL, 0 } }, // when selecting a card during the alien card game, gets called with 1 extra parameter
+    { GID_ISLANDBRAIN,   290,   291,  0,       "downElevator", "changeState",0x201f,    0, { WORKAROUND_STILLCALL, 0 } }, // when testing in the elevator puzzle, gets called with 1 argument less - 15 is on stack
+    { GID_ISLANDBRAIN,   290,   291,  0,    "correctElevator", "changeState",0x201f,    0, { WORKAROUND_STILLCALL, 0 } }, // see above
     SCI_WORKAROUNDENTRY_TERMINATOR
 };
 


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