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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Jul 27 11:40:31 CEST 2010


Revision: 51354
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51354&view=rev
Author:   thebluegr
Date:     2010-07-27 09:40:29 +0000 (Tue, 27 Jul 2010)

Log Message:
-----------
SCI: Fixed bug #3035057 - "ECOQUEST demo: Crashing menu". EcoQuest 1 demo is using an in between SCI1-SCI1.1 interpreter. It's SCI1.1, but it calls kNewWindow with the SCI1 semantics.

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-27 09:38:04 UTC (rev 51353)
+++ scummvm/trunk/engines/sci/engine/kernel_tables.h	2010-07-27 09:40:29 UTC (rev 51354)
@@ -393,7 +393,7 @@
     { MAP_CALL(NewWindow),         SIG_SCIALL, SIGFOR_MAC,   ".*",                    NULL,            NULL },
     { MAP_CALL(NewWindow),         SIG_SCI0, SIGFOR_ALL,     "iiii[r0]i(i)(i)(i)",    NULL,            NULL },
     { MAP_CALL(NewWindow),         SIG_SCI1, SIGFOR_ALL,     "iiii[ir]i(i)(i)([ir])(i)(i)(i)(i)", NULL, NULL },
-    { MAP_CALL(NewWindow),         SIG_SCI11, SIGFOR_ALL,    "iiiiiiii[r0]i(i)(i)(i)", NULL,          NULL },
+    { MAP_CALL(NewWindow),         SIG_SCI11, SIGFOR_ALL,    "iiiiiiii[r0]i(i)(i)(i)", NULL,           kNewWindow_workarounds },
     { MAP_CALL(NextNode),          SIG_EVERYWHERE,           "n",                     NULL,            NULL },
     { MAP_CALL(NodeValue),         SIG_EVERYWHERE,           "[n0]",                  NULL,            NULL },
     { MAP_CALL(NumCels),           SIG_EVERYWHERE,           "o",                     NULL,            NULL },

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-27 09:38:04 UTC (rev 51353)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-07-27 09:40:29 UTC (rev 51354)
@@ -202,6 +202,12 @@
 };
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
+const SciWorkaroundEntry kNewWindow_workarounds[] = {
+    { GID_ECOQUEST,      -1,    981,  0,           "SysWindow", "<noname 178>",   -1,    0, { WORKAROUND_STILLCALL, 0 } }, // EcoQuest 1 demo uses an in-between interpreter from SCI1 to SCI1.1. It's SCI1.1, but uses the SCI1 semantics for this call.
+    SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[] = {
     { GID_QFG4,     100,   100,  0,                 "doMovie", "<noname 144>",   -1,    0, { WORKAROUND_IGNORE,    0 } }, // after the Sierra logo, no flags are passed, thus the call is meaningless
     SCI_WORKAROUNDENTRY_TERMINATOR

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-07-27 09:38:04 UTC (rev 51353)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-07-27 09:40:29 UTC (rev 51354)
@@ -84,6 +84,7 @@
 extern const SciWorkaroundEntry kGraphRedrawBox_workarounds[];
 extern const SciWorkaroundEntry kIsObject_workarounds[];
 extern const SciWorkaroundEntry kMemory_workarounds[];
+extern const SciWorkaroundEntry kNewWindow_workarounds[];
 extern const SciWorkaroundEntry kPaletteUnsetFlag_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