[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.283,2.284 script_v90he.cpp,2.69,2.70
Travis Howell
kirben at users.sourceforge.net
Sat Oct 2 22:42:46 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22718/scumm
Modified Files:
intern.h script_v90he.cpp
Log Message:
Add missing code for opcode.
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.283
retrieving revision 2.284
diff -u -d -r2.283 -r2.284
--- intern.h 2 Oct 2004 22:26:34 -0000 2.283
+++ intern.h 3 Oct 2004 05:29:31 -0000 2.284
@@ -879,7 +879,7 @@
void o90_mod();
void o90_unknown31();
void o90_unknown32();
- void o90_unknown34();
+ void o90_findAllObjectsWithClassOf();
void o90_unknown35();
void o90_unknown36();
void o90_unknown37();
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.69
retrieving revision 2.70
diff -u -d -r2.69 -r2.70
--- script_v90he.cpp 2 Oct 2004 07:46:06 -0000 2.69
+++ script_v90he.cpp 3 Oct 2004 05:29:31 -0000 2.70
@@ -109,7 +109,7 @@
OPCODE(o90_unknown32),
OPCODE(o6_invalid),
/* 34 */
- OPCODE(o90_unknown34),
+ OPCODE(o90_findAllObjectsWithClassOf),
OPCODE(o90_unknown35),
OPCODE(o90_unknown36),
OPCODE(o90_unknown37),
@@ -1065,24 +1065,36 @@
push(pop() % a);
}
-void ScummEngine_v90he::o90_unknown34() {
- // Incomplete
+void ScummEngine_v90he::o90_findAllObjectsWithClassOf() {
int args[16];
+ int num, cls, tmp;
+ bool b;
+ int cond = 1;
- getStackList(args, ARRAYSIZE(args));
+ num = getStackList(args, ARRAYSIZE(args));
int room = pop();
int i = 1;
if (room != _currentRoom)
- warning("o72_findAllObjects: current room is not %d", room);
+ warning("o90_findAllObjectsWithClassOf: current room is not %d", room);
writeVar(0, 0);
defineArray(0, kDwordArray, 0, 0, 0, _numLocalObjects + 1);
- writeArray(0, 0, 0, _numLocalObjects);
-
+
while (i < _numLocalObjects) {
- writeArray(0, 0, i, _objs[i].obj_nr);
+ cond = 1;
+ tmp = num;
+ while (--tmp >= 0) {
+ cls = args[tmp];
+ b = getClass(i, cls);
+ if ((cls & 0x80 && !b) || (!(cls & 0x80) && b))
+ cond = 0;
+ }
+
+ if (cond)
+ writeArray(0, 0, i, _objs[i].obj_nr);
i++;
}
+ writeArray(0, 0, 0, i);
push(readVar(0));
}
More information about the Scummvm-git-logs
mailing list