[Scummvm-cvs-logs] SF.net SVN: scummvm:[51401] scummvm/trunk/engines/sci/engine
mthreepwood at users.sourceforge.net
mthreepwood at users.sourceforge.net
Wed Jul 28 05:54:14 CEST 2010
Revision: 51401
http://scummvm.svn.sourceforge.net/scummvm/?rev=51401&view=rev
Author: mthreepwood
Date: 2010-07-28 03:54:14 +0000 (Wed, 28 Jul 2010)
Log Message:
-----------
SCI: Fix bug #3035720 - SQ1SCI demo: Menu crash
kCelWide and kCelHigh are called with the second two parameters as objects instead of integers. We fake return the real width/height of the view in question to allow the quit menu to work. Values found by examining the view passed as the first parameter.
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-07-28 02:05:17 UTC (rev 51400)
+++ scummvm/trunk/engines/sci/engine/kernel_tables.h 2010-07-28 03:54:14 UTC (rev 51401)
@@ -309,8 +309,8 @@
{ "CantBeHere", kCantBeHere32, SIG_SCI32, SIGFOR_ALL, "ol", NULL, NULL },
#endif
{ MAP_CALL(CantBeHere), SIG_EVERYWHERE, "o(l)", NULL, NULL },
- { MAP_CALL(CelHigh), SIG_EVERYWHERE, "ii(i)", NULL, NULL },
- { MAP_CALL(CelWide), SIG_EVERYWHERE, "ii(i)", NULL, NULL },
+ { MAP_CALL(CelHigh), SIG_EVERYWHERE, "ii(i)", NULL, kCelHigh_workarounds },
+ { MAP_CALL(CelWide), SIG_EVERYWHERE, "ii(i)", NULL, kCelWide_workarounds },
{ MAP_CALL(CheckFreeSpace), SIG_SCI32, SIGFOR_ALL, "r.*", NULL, NULL },
{ MAP_CALL(CheckFreeSpace), SIG_SCI11, SIGFOR_ALL, "r(i)", NULL, NULL },
{ MAP_CALL(CheckFreeSpace), SIG_EVERYWHERE, "r", NULL, NULL },
Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp 2010-07-28 02:05:17 UTC (rev 51400)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp 2010-07-28 03:54:14 UTC (rev 51401)
@@ -123,6 +123,18 @@
};
// gameID, room,script,lvl, object-name, method-name, call,index, workaround
+const SciWorkaroundEntry kCelHigh_workarounds[] = {
+ { GID_SQ1, 1, 255, 0, "DIcon", "setSize", -1, 0, { WORKAROUND_FAKE, 66 } }, // DEMO: Called with 2nd/3rd parameters as objects when clicking on the menu
+ SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+// gameID, room,script,lvl, object-name, method-name, call,index, workaround
+const SciWorkaroundEntry kCelWide_workarounds[] = {
+ { GID_SQ1, 1, 255, 0, "DIcon", "setSize", -1, 0, { WORKAROUND_FAKE, 78 } }, // DEMO: Called with 2nd/3rd parameters as objects when clicking on the menu
+ SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+// gameID, room,script,lvl, object-name, method-name, call,index, workaround
const SciWorkaroundEntry kDisplay_workarounds[] = {
{ GID_ISLANDBRAIN, 300, 300, 0, "geneDude", "show", -1, 0, { WORKAROUND_IGNORE, 0 } }, // when looking at the gene explanation chart - a parameter is an object
{ GID_SQ4, 391, 391, 0, "doCatalog", "mode", 0x84, 0, { WORKAROUND_IGNORE, 0 } }, // clicking on catalog in roboter sale - a parameter is an object
Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h 2010-07-28 02:05:17 UTC (rev 51400)
+++ scummvm/trunk/engines/sci/engine/workarounds.h 2010-07-28 03:54:14 UTC (rev 51401)
@@ -73,6 +73,8 @@
extern const SciWorkaroundEntry opcodeDptoaWorkarounds[];
extern const SciWorkaroundEntry uninitializedReadWorkarounds[];
extern const SciWorkaroundEntry kAbs_workarounds[];
+extern const SciWorkaroundEntry kCelHigh_workarounds[];
+extern const SciWorkaroundEntry kCelWide_workarounds[];
extern const SciWorkaroundEntry kDisplay_workarounds[];
extern const SciWorkaroundEntry kDisposeScript_workarounds[];
extern const SciWorkaroundEntry kDoSoundFade_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