[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