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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Sat Jul 17 21:52:19 CEST 2010


Revision: 50967
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50967&view=rev
Author:   m_kiewitz
Date:     2010-07-17 19:52:19 +0000 (Sat, 17 Jul 2010)

Log Message:
-----------
SCI: removing kSetPort 4 argument support from r44938, which was wrong - adding workaround for lsl6 ending - fixes lsl6 ending

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

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2010-07-17 19:11:59 UTC (rev 50966)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2010-07-17 19:52:19 UTC (rev 50967)
@@ -264,6 +264,12 @@
 };
 
 //    gameID,       scriptNr,lvl,         object-name, method-name,    call, index,   replace
+static const SciWorkaroundEntry kSetPort_workarounds[] = {
+    { GID_LSL6,          740,  0,              "rm740", "drawPic",        -1,    0, { 1,    0 } }, // ending scene, is called with additional 3 (!) parameters
+    SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,       scriptNr,lvl,         object-name, method-name,    call, index,   replace
 static const SciWorkaroundEntry kUnLoad_workarounds[] = {
     { GID_LSL6,          130,  0,    "recruitLarryScr", "changeState",    -1,    0, { 1,    0 } }, // during intro, a 3rd parameter is passed by accident
     { GID_LSL6,          740,  0,        "showCartoon", "changeState",    -1,    0, { 1,    0 } }, // during ending, 4 additional parameters are passed by accident
@@ -656,7 +662,7 @@
     { MAP_CALL(SetJump),           SIG_EVERYWHERE,           "oiii",                  NULL,            NULL },
     { MAP_CALL(SetMenu),           SIG_EVERYWHERE,           "i(.*)",                 NULL,            NULL },
     { MAP_CALL(SetNowSeen),        SIG_EVERYWHERE,           "o(i)",                  NULL,            NULL },
-    { MAP_CALL(SetPort),           SIG_EVERYWHERE,           "i(iii)(i)(i)(i)",       NULL,            NULL },
+    { MAP_CALL(SetPort),           SIG_EVERYWHERE,           "i(iiiii)(i)",           NULL,            kSetPort_workarounds },
     { MAP_CALL(SetQuitStr),        SIG_EVERYWHERE,           "r",                     NULL,            NULL },
     { MAP_CALL(SetSynonyms),       SIG_EVERYWHERE,           "o",                     NULL,            NULL },
     { MAP_CALL(SetVideoMode),      SIG_EVERYWHERE,           "i",                     NULL,            NULL },

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-17 19:11:59 UTC (rev 50966)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-17 19:52:19 UTC (rev 50967)
@@ -965,14 +965,13 @@
 
 	case 7:
 		initPriorityBandsFlag = true;
-	case 4:
 	case 6:
 		picRect.top = argv[0].toSint16();
 		picRect.left = argv[1].toSint16();
 		picRect.bottom = argv[2].toSint16();
 		picRect.right = argv[3].toSint16();
-		picTop = (argc >= 6) ? argv[4].toSint16() : 0;
-		picLeft = (argc >= 6) ? argv[5].toSint16() : 0;
+		picTop = argv[4].toSint16();
+		picLeft = argv[5].toSint16();
 		g_sci->_gfxPorts->kernelSetPicWindow(picRect, picTop, picLeft, initPriorityBandsFlag);
 		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