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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Thu Aug 19 17:58:40 CEST 2010


Revision: 52213
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52213&view=rev
Author:   thebluegr
Date:     2010-08-19 15:58:39 +0000 (Thu, 19 Aug 2010)

Log Message:
-----------
SCI: Fixed one of the bugs in hoyle3, from bug report #3038837 - "HOYLE3: EGA/VGA Crashes" (that report includes more issues)

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-19 15:13:03 UTC (rev 52212)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-08-19 15:58:39 UTC (rev 52213)
@@ -1319,7 +1319,7 @@
 				if (validate_unsignedInteger(r_temp, compare1) && validate_unsignedInteger(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, opcodeUltWorkarounds, r_temp, s->r_acc);
 			}
 			break;
 

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-19 15:13:03 UTC (rev 52212)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-19 15:58:39 UTC (rev 52213)
@@ -60,6 +60,12 @@
 };
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
+const SciWorkaroundEntry opcodeUltWorkarounds[] = {
+	{ GID_HOYLE3,         400,   0,  1,           "Character", "say",           -1,    0, { WORKAROUND_FAKE,   0 } }, // While playing Pachisi, when any character starts to talk - bug #3038837
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
 const SciWorkaroundEntry opcodeLaiWorkarounds[] = {
 	{ GID_CAMELOT,         92,   92,  0,     "endingCartoon2", "changeState", 0x20d,    0, { WORKAROUND_FAKE,   0 } }, // during the ending, sub gets called with no parameters, uses parameter 1 which is theGrail in this case - bug #3044734
 	SCI_WORKAROUNDENTRY_TERMINATOR

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-19 15:13:03 UTC (rev 52212)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-19 15:58:39 UTC (rev 52213)
@@ -72,6 +72,7 @@
 extern const SciWorkaroundEntry opcodeDptoaWorkarounds[];
 extern const SciWorkaroundEntry opcodeGeWorkarounds[];
 extern const SciWorkaroundEntry opcodeLeWorkarounds[];
+extern const SciWorkaroundEntry opcodeUltWorkarounds[];
 extern const SciWorkaroundEntry opcodeLaiWorkarounds[];
 extern const SciWorkaroundEntry opcodeLsiWorkarounds[];
 extern const SciWorkaroundEntry opcodeMulWorkarounds[];


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