[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.280,2.281 script_v90he.cpp,2.67,2.68
Travis Howell
kirben at users.sourceforge.net
Fri Oct 1 18:46:19 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21290/scumm
Modified Files:
intern.h script_v90he.cpp
Log Message:
Add/correct opcode
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.280
retrieving revision 2.281
diff -u -d -r2.280 -r2.281
--- intern.h 2 Oct 2004 01:08:31 -0000 2.280
+++ intern.h 2 Oct 2004 01:40:34 -0000 2.281
@@ -834,6 +834,8 @@
const char *desc;
};
+ int _heObject, _heObjectNum;
+
struct WizParameters {
byte filename[260];
Common::Rect box;
@@ -896,6 +898,7 @@
void o90_unknown36();
void o90_unknown37();
void o90_unknown3A();
+ void o90_unknown44();
void o90_unknown94();
void o90_unknown9E();
void o90_unknownA5();
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.67
retrieving revision 2.68
diff -u -d -r2.67 -r2.68
--- script_v90he.cpp 2 Oct 2004 01:08:31 -0000 2.67
+++ script_v90he.cpp 2 Oct 2004 01:40:34 -0000 2.68
@@ -129,7 +129,7 @@
OPCODE(o6_invalid),
OPCODE(o6_writeWordVar),
/* 44 */
- OPCODE(o6_invalid),
+ OPCODE(o90_unknown44),
OPCODE(o80_unknown45),
OPCODE(o6_invalid),
OPCODE(o6_wordArrayWrite),
@@ -473,7 +473,7 @@
}
- eax = tableUnk[eax * 4];
+ eax = tableUnk[eax];
if (ecx)
push(eax);
@@ -505,7 +505,7 @@
}
- eax = tableUnk[eax * 4];
+ eax = tableUnk[eax];
if (ecx)
push(eax);
@@ -1183,6 +1183,57 @@
debug(1,"o90_unknown3A stub (%d)", subOp);
}
+void ScummEngine_v90he::o90_unknown44() {
+ // Object releated
+ int subOp = fetchScriptByte();
+ subOp -= 32;
+
+ switch (subOp) {
+ case 0:
+ if (_heObjectNum == -1)
+ push(0);
+ else
+ push(_objs[_heObjectNum].width);
+ break;
+ case 1:
+ if (_heObjectNum == -1)
+ push(0);
+ else
+ push(_objs[_heObjectNum].height);
+ break;
+ case 4:
+ push(0);
+ break;
+ case 6:
+ if (_heObjectNum == -1)
+ push(0);
+ else
+ push(_objs[_heObjectNum].x_pos);
+ break;
+ case 7:
+ if (_heObjectNum == -1)
+ push(0);
+ else
+ push(_objs[_heObjectNum].y_pos);
+ break;
+ case 20:
+ push(getState(_heObject));
+ break;
+ case 25:
+ _heObject = pop();
+ _heObjectNum = getObjectIndex(_heObject);
+ break;
+ case 107:
+ // Dummy case
+ pop();
+ push(0);
+ break;
+ default:
+ error("o90_unknown44: Unknown case %d", subOp);
+ }
+ debug(1,"o90_unknown44 stub (%d)", subOp);
+}
+
void ScummEngine_v90he::o90_unknown94() {
int subOp = fetchScriptByte();
subOp -= 45;
More information about the Scummvm-git-logs
mailing list