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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Tue Aug 3 17:51:31 CEST 2010


Revision: 51701
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51701&view=rev
Author:   m_kiewitz
Date:     2010-08-03 15:51:31 +0000 (Tue, 03 Aug 2010)

Log Message:
-----------
SCI: adding workaround for pq3

fixes bug #3037565

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-03 15:34:28 UTC (rev 51700)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-08-03 15:51:31 UTC (rev 51701)
@@ -1215,7 +1215,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, opcodeGeWorkarounds, r_temp, s->r_acc);
 			}
 			break;
 

Modified: scummvm/trunk/engines/sci/engine/workarounds.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-03 15:34:28 UTC (rev 51700)
+++ scummvm/trunk/engines/sci/engine/workarounds.cpp	2010-08-03 15:51:31 UTC (rev 51701)
@@ -38,12 +38,6 @@
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
-//    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
-const SciWorkaroundEntry opcodeOrWorkarounds[] = {
-	{ GID_ECOQUEST2,       100,   0,  0,               "Rain", "points",      0xcc6,    0, { WORKAROUND_FAKE,   0 } }, // when giving the papers to the customs officer, gets called against a pointer instead of a number - bug #3034464
-	SCI_WORKAROUNDENTRY_TERMINATOR
-};
-
 //    gameID,           room,script,lvl,          object-name, method-name,    call, index,            workaround
 const SciWorkaroundEntry opcodeDptoaWorkarounds[] = {
 	{ GID_LSL6,           360,  938,  0,               "ROsc", "cycleDone",      -1,    0, { WORKAROUND_FAKE,   1 } }, // when looking through tile in the shower room initial cycles get set to an object instead of 2, we fix this by setting 1 after decrease
@@ -52,6 +46,18 @@
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
+const SciWorkaroundEntry opcodeGeWorkarounds[] = {
+	{ GID_PQ3,             31,   31,  0,              "rm031", "init",           -1,    0, { WORKAROUND_FAKE,   1 } }, // pq3 english: when exiting the car, while morales is making phonecalls - bug #3037565
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
+//    gameID,           room,script,lvl,          object-name, method-name,    call,index,             workaround
+const SciWorkaroundEntry opcodeOrWorkarounds[] = {
+	{ GID_ECOQUEST2,      100,    0,  0,               "Rain", "points",      0xcc6,    0, { WORKAROUND_FAKE,   0 } }, // when giving the papers to the customs officer, gets called against a pointer instead of a number - bug #3034464
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,  workaround
 const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
 	{ GID_CNICK_KQ,      200,     0,  1,          "Character", "<noname446>",    -1,  504, { WORKAROUND_FAKE,   0 } }, // checkers, like in hoyle 3

Modified: scummvm/trunk/engines/sci/engine/workarounds.h
===================================================================
--- scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-03 15:34:28 UTC (rev 51700)
+++ scummvm/trunk/engines/sci/engine/workarounds.h	2010-08-03 15:51:31 UTC (rev 51701)
@@ -69,8 +69,9 @@
 };
 
 extern const SciWorkaroundEntry opcodeDivWorkarounds[];
+extern const SciWorkaroundEntry opcodeDptoaWorkarounds[];
+extern const SciWorkaroundEntry opcodeGeWorkarounds[];
 extern const SciWorkaroundEntry opcodeOrWorkarounds[];
-extern const SciWorkaroundEntry opcodeDptoaWorkarounds[];
 extern const SciWorkaroundEntry uninitializedReadWorkarounds[];
 extern const SciWorkaroundEntry kAbs_workarounds[];
 extern const SciWorkaroundEntry kCelHigh_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