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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Fri Jul 30 17:26:30 CEST 2010


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

Log Message:
-----------
SCI: adding workaround for kSetCursor kq5cd

adding comments as well

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

Modified: scummvm/trunk/engines/sci/engine/kernel_tables.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel_tables.h	2010-07-30 15:19:21 UTC (rev 51509)
+++ scummvm/trunk/engines/sci/engine/kernel_tables.h	2010-07-30 15:26:30 UTC (rev 51510)
@@ -419,7 +419,7 @@
     { MAP_CALL(SetCursor),         SIG_SCI21, SIGFOR_ALL,    "i(i)([io])(i*)",        NULL,            NULL },
     // TODO: SCI2.1 may supply an object optionally (mother goose sci21 right on startup) - find out why
     { MAP_CALL(SetCursor),         SIG_SCI11, SIGFOR_ALL,    "i(i)(i)(i)(iiiiii)",    NULL,            NULL },
-    { MAP_CALL(SetCursor),         SIG_EVERYWHERE,           "i(i)(i)(i)(i)",         NULL,            NULL },
+    { MAP_CALL(SetCursor),         SIG_EVERYWHERE,           "i(i)(i)(i)(i)",         NULL,            kSetCursor_workarounds },
     { MAP_CALL(SetDebug),          SIG_EVERYWHERE,           "(i*)",                  NULL,            NULL },
     { MAP_CALL(SetJump),           SIG_EVERYWHERE,           "oiii",                  NULL,            NULL },
     { MAP_CALL(SetMenu),           SIG_EVERYWHERE,           "i(.*)",                 NULL,            NULL },

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-30 15:19:21 UTC (rev 51509)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2010-07-30 15:26:30 UTC (rev 51510)
@@ -172,6 +172,7 @@
 		}
 		break;
 	}
+	case 9: // case for kq5cd, we are getting calling with 4 additional 900d parameters
 	case 5:
 		hotspot = new Common::Point(argv[3].toSint16(), argv[4].toSint16());
 		// Fallthrough

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-30 15:19:21 UTC (rev 51509)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-30 15:26:30 UTC (rev 51510)
@@ -254,6 +254,12 @@
 };
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
+const SciWorkaroundEntry kSetCursor_workarounds[] = {
+	{ GID_KQ5,            -1,   768,  0,           "KQCursor", "init",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // CD: gets called with 4 additional "900d" parameters
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kSetPort_workarounds[] = {
 	{ GID_LSL6,          740,   740,  0,              "rm740", "drawPic",        -1,    0, { WORKAROUND_IGNORE,    0 } }, // ending scene, is called with additional 3 (!) parameters
 	SCI_WORKAROUNDENTRY_TERMINATOR

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-07-30 15:19:21 UTC (rev 51509)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-07-30 15:26:30 UTC (rev 51510)
@@ -90,6 +90,7 @@
 extern const SciWorkaroundEntry kMemory_workarounds[];
 extern const SciWorkaroundEntry kNewWindow_workarounds[];
 extern const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[];
+extern const SciWorkaroundEntry kSetCursor_workarounds[];
 extern const SciWorkaroundEntry kSetPort_workarounds[];
 extern const SciWorkaroundEntry kUnLoad_workarounds[];
 


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