[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