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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Aug 18 07:27:15 CEST 2010


Revision: 52180
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52180&view=rev
Author:   thebluegr
Date:     2010-08-18 05:27:13 +0000 (Wed, 18 Aug 2010)

Log Message:
-----------
SCI: Fixed bug #3042964 - "KQ4: Signature Mismatch"

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kernel_tables.h
    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-08-18 00:04:21 UTC (rev 52179)
+++ scummvm/trunk/engines/sci/engine/kernel_tables.h	2010-08-18 05:27:13 UTC (rev 52180)
@@ -323,7 +323,7 @@
     { MAP_CALL(Display),           SIG_EVERYWHERE,           "[ir]([ir!]*)",          NULL,            kDisplay_workarounds },
     // ^ we allow invalid references here, because kDisplay gets called with those in e.g. pq3 during intro
     //    restoreBits() checks and skips invalid handles, so that's fine. Sierra SCI behaved the same
-    { MAP_CALL(DirLoop),           SIG_EVERYWHERE,           "oi",                    NULL,            NULL },
+    { MAP_CALL(DirLoop),           SIG_EVERYWHERE,           "oi",                    NULL,            kDirLoop_workarounds },
     { MAP_CALL(DisposeClone),      SIG_EVERYWHERE,           "o",                     NULL,            NULL },
     { MAP_CALL(DisposeList),       SIG_EVERYWHERE,           "l",                     NULL,            NULL },
     { MAP_CALL(DisposeScript),     SIG_EVERYWHERE,           "i(i*)",                 NULL,            kDisposeScript_workarounds },

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-18 00:04:21 UTC (rev 52179)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-18 05:27:13 UTC (rev 52180)
@@ -236,6 +236,11 @@
 };
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
+const SciWorkaroundEntry kDirLoop_workarounds[] = {
+	{ GID_KQ4,             4,   992,  0,              "Avoid", "doit",           -1,    0, { WORKAROUND_IGNORE,    0 } }, // when the ogre catches you in front of his house, second parameter points to the same object as the first parameter, instead of being an integer (the angle) - bug #3042964
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kDisposeScript_workarounds[] = {
 	{ GID_LAURABOW,      777,   777,  0,             "myStab", "changeState",    -1,    0, { WORKAROUND_IGNORE,    0 } }, // DEMO: after the will is signed, parameter 0 is an object - bug #3034907
 	{ GID_QFG1,           -1,    64,  0,               "rm64", "dispose",        -1,    0, { WORKAROUND_IGNORE,    0 } }, // when leaving graveyard, parameter 0 is an object

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-18 00:04:21 UTC (rev 52179)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-18 05:27:13 UTC (rev 52180)
@@ -83,6 +83,7 @@
 extern const SciWorkaroundEntry kCelWide_workarounds[];
 extern const SciWorkaroundEntry kDeviceInfo_workarounds[];
 extern const SciWorkaroundEntry kDisplay_workarounds[];
+extern const SciWorkaroundEntry kDirLoop_workarounds[];
 extern const SciWorkaroundEntry kDisposeScript_workarounds[];
 extern const SciWorkaroundEntry kDoSoundFade_workarounds[];
 extern const SciWorkaroundEntry kFindKey_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