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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sat Aug 7 03:09:32 CEST 2010


Revision: 51821
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51821&view=rev
Author:   thebluegr
Date:     2010-08-07 01:09:32 +0000 (Sat, 07 Aug 2010)

Log Message:
-----------
SCI: Fixed script bug #3040142 - "PEPPER: Crash on Pugh's office"

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/vm.cpp
    scummvm/trunk/engines/sci/engine/workarounds.cpp
    scummvm/trunk/engines/sci/engine/workarounds.h

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2010-08-07 00:59:40 UTC (rev 51820)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-08-07 01:09:32 UTC (rev 51821)
@@ -1248,7 +1248,7 @@
 				if (validate_signedInteger(r_temp, compare1) && validate_signedInteger(s->r_acc, compare2))
 					s->r_acc = make_reg(0, compare1 <= compare2);
 				else
-					s->r_acc = arithmetic_lookForWorkaround(opcode, NULL, r_temp, s->r_acc);
+					s->r_acc = arithmetic_lookForWorkaround(opcode, opcodeLeWorkarounds, r_temp, s->r_acc);
 			}
 			break;
 

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-07 00:59:40 UTC (rev 51820)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-07 01:09:32 UTC (rev 51821)
@@ -53,6 +53,12 @@
 };
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
+const SciWorkaroundEntry opcodeLeWorkarounds[] = {
+	{ GID_PEPPER,         370,   23,  0,    "eastExitFeature", "onMe",           -1,    0, { WORKAROUND_FAKE,   1 } }, // Pugh's office, when trying to use either the left or right exits, gets called on an integer and a pointer - bug #3040142
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
 const SciWorkaroundEntry opcodeLsiWorkarounds[] = {
 	{ GID_QFG2,           200,  200,  0,              "astro", "messages",       -1,    0, { WORKAROUND_FAKE,   0 } }, // when getting asked for your name by the astrologer bug #3039879
 	SCI_WORKAROUNDENTRY_TERMINATOR

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-07 00:59:40 UTC (rev 51820)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-07 01:09:32 UTC (rev 51821)
@@ -71,6 +71,7 @@
 extern const SciWorkaroundEntry opcodeDivWorkarounds[];
 extern const SciWorkaroundEntry opcodeDptoaWorkarounds[];
 extern const SciWorkaroundEntry opcodeGeWorkarounds[];
+extern const SciWorkaroundEntry opcodeLeWorkarounds[];
 extern const SciWorkaroundEntry opcodeLsiWorkarounds[];
 extern const SciWorkaroundEntry opcodeMulWorkarounds[];
 extern const SciWorkaroundEntry opcodeAndWorkarounds[];


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