[Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.105,1.106

Max Horn fingolfin at users.sourceforge.net
Fri May 30 15:43:03 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv26300

Modified Files:
	script_v5.cpp 
Log Message:
Workaround for bug #746349

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -d -r1.105 -r1.106
--- script_v5.cpp	30 May 2003 14:33:05 -0000	1.105
+++ script_v5.cpp	30 May 2003 22:22:51 -0000	1.106
@@ -940,6 +940,15 @@
 void Scumm_v5::o5_getActorRoom() {
 	getResultPos();
 	int act = getVarOrDirectByte(0x80);
+	// FIXME: Workaround for bug #746349. This is a really odd bu
+	//in either the script or in our script engine. Might be a good
+	// idea to investigate this further by e.g. looking at the FOA
+	// engine a bit closer.
+	if (_gameId == GID_INDY4 && _roomResource == 94 && vm.slot[_currentScript].number == 206 && act > _numActors) {
+		setResult(0);
+		return;
+	}
+	
 	Actor *a = derefActor(act, "o5_getActorRoom");
 	setResult(a->room);
 }
@@ -1049,7 +1058,7 @@
 	o2 = getVarOrDirectWord(0x40);
 	r = getObjActToObjActDist(o1, o2);
 
-	// FIXME: MI2 race workaround, see bug 597022
+	// FIXME: MI2 race workaround, see bug #597022
 	if (_gameId == GID_MONKEY2 && vm.slot[_currentScript].number == 40 && r < 60) 
 		r = 60; 
 
@@ -2011,20 +2020,13 @@
 void Scumm_v5::o5_startScript() {
 	int op, script;
 	int data[16];
-	int a, b;
 
 	op = _opcode;
 	script = getVarOrDirectByte(0x80);
 
 	getWordVararg(data);
 
-	a = b = 0;
-	if (op & 0x40)
-		b = 1;
-	if (op & 0x20)
-		a = 1;
-
-	runScript(script, a != 0, b != 0, data);
+	runScript(script, (op & 0x20) != 0, (op & 0x40) != 0, data);
 }
 
 void Scumm_v5::o5_stopObjectCode() {





More information about the Scummvm-git-logs mailing list