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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Jun 30 13:05:29 CEST 2010


Revision: 50527
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50527&view=rev
Author:   m_kiewitz
Date:     2010-06-30 11:05:29 +0000 (Wed, 30 Jun 2010)

Log Message:
-----------
SCI: changing signature of kUnLoad, adding workaround for sq1 ulence flats bug

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

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2010-06-30 10:42:34 UTC (rev 50526)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2010-06-30 11:05:29 UTC (rev 50527)
@@ -207,6 +207,12 @@
 // .* -> any parameters afterwards (or none)
 
 //    gameID,       scriptNr,lvl,         object-name, method-name,    call,index,replace
+static const SciWorkaroundEntry kUnLoad_workarounds[] = {
+	{ GID_SQ1,           998,  0,               "View", "delete",         -1,    0, { 1,    0 } }, // exiting ulence flats bar - slotGuyBody::dispose calls view::delete resulting in parameter 1 to be a reference
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,       scriptNr,lvl,         object-name, method-name,    call,index,replace
 static const SciWorkaroundEntry kDisposeScript_workarounds[] = {
 	{ GID_QFG1,           64,  0,               "rm64", "dispose",        -1,    0, { 1,    0 } }, // parameter 0 is an object when leaving graveyard
 	SCI_WORKAROUNDENTRY_TERMINATOR
@@ -246,11 +252,9 @@
 //    name,                        version/platform,         signature,              sub-signatures,  workarounds
 static SciKernelMapEntry s_kernelMap[] = {
     { MAP_CALL(Load),              SIG_EVERYWHERE,           "iii*",                 NULL,            NULL },
-    { MAP_CALL(UnLoad),            SIG_EVERYWHERE,           "i.*",                  NULL,            NULL },
-	// ^^ FIXME - Work around SQ1 bug, when exiting the Ulence flats bar
+    { MAP_CALL(UnLoad),            SIG_EVERYWHERE,           "ii*",                  NULL,            kUnLoad_workarounds },
     { MAP_CALL(ScriptID),          SIG_EVERYWHERE,           "Ioi*",                 NULL,            NULL },
     { MAP_CALL(DisposeScript),     SIG_EVERYWHERE,           "ii*",                  NULL,            kDisposeScript_workarounds },
-	// ^^ FIXME - Work around QfG1 bug
     { MAP_CALL(Clone),             SIG_EVERYWHERE,           "o",                    NULL,            NULL },
     { MAP_CALL(DisposeClone),      SIG_EVERYWHERE,           "o",                    NULL,            NULL },
     { MAP_CALL(IsObject),          SIG_EVERYWHERE,           ".",                    NULL,            NULL },


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