[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.238,2.239 script_v72he.cpp,2.75,2.76 script_v90he.cpp,2.23,2.24
Travis Howell
kirben at users.sourceforge.net
Sat Sep 11 17:50:10 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7251/scumm
Modified Files:
intern.h script_v72he.cpp script_v90he.cpp
Log Message:
Add some HE90+ opcodes
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.238
retrieving revision 2.239
diff -u -d -r2.238 -r2.239
--- intern.h 11 Sep 2004 00:49:22 -0000 2.238
+++ intern.h 12 Sep 2004 00:48:16 -0000 2.239
@@ -814,6 +814,9 @@
virtual const char *getOpcodeDesc(byte i);
/* HE version 90 script opcodes */
+ void o90_getLT();
+ void o90_getGT();
+ void o90_startLocalScript();
void o90_unknown1C();
void o90_unknown25();
void o90_unknown26();
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.75
retrieving revision 2.76
diff -u -d -r2.75 -r2.76
--- script_v72he.cpp 11 Sep 2004 14:14:07 -0000 2.75
+++ script_v72he.cpp 12 Sep 2004 00:48:16 -0000 2.76
@@ -860,7 +860,7 @@
debug(1,"o72_actorOps: case 24 (%d)", k);
break;
case 43:
- // HE 80+
+ // HE 90+
k = pop();
debug(1,"o72_actorOps: case 43 (%d)", k);
break;
@@ -870,6 +870,11 @@
_actorClipOverride.top = pop();
_actorClipOverride.left = pop();
break;
+ case 68:
+ // HE 90+
+ k = pop();
+ debug(1,"o72_actorOps: case 65 (%d)", k);
+ break;
case 76: // SO_COSTUME
a->setActorCostume(pop());
break;
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.23
retrieving revision 2.24
diff -u -d -r2.23 -r2.24
--- script_v90he.cpp 11 Sep 2004 00:49:22 -0000 2.23
+++ script_v90he.cpp 12 Sep 2004 00:48:16 -0000 2.24
@@ -81,8 +81,8 @@
OPCODE(o72_compareStackList),
/* 1C */
OPCODE(o90_unknown1C),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o90_getLT),
+ OPCODE(o90_getGT),
OPCODE(o6_invalid),
/* 20 */
OPCODE(o6_invalid),
@@ -98,7 +98,7 @@
OPCODE(o90_unknown28),
OPCODE(o90_unknown29),
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o90_startLocalScript),
/* 2C */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
@@ -378,6 +378,39 @@
return _opcodesV90he[i].desc;
}
+void ScummEngine_v90he::o90_getLT() {
+ int a = pop();
+ int b = pop();
+
+ if (b < a) {
+ push(b);
+ } else {
+ push(a);
+ }
+}
+
+void ScummEngine_v90he::o90_getGT() {
+ int a = pop();
+ int b = pop();
+
+ if (b > a) {
+ push(b);
+ } else {
+ push(a);
+ }
+}
+
+void ScummEngine_v90he::o90_startLocalScript() {
+ int args[16];
+ int script, entryp;
+ int flags;
+ getStackList(args, ARRAYSIZE(args));
+ entryp = pop();
+ script = pop();
+ flags = fetchScriptByte();
+ runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args);
+}
+
void ScummEngine_v90he::o90_unknown1C() {
// For Pajame Sam 2 demo
// Incomplete
@@ -459,48 +492,98 @@
void ScummEngine_v90he::o90_unknown25() {
int args[16];
int subOp = fetchScriptByte();
+ subOp -= 30;
+
+ debug(1,"o90_unknown25 stub (%d)", subOp);
switch (subOp) {
- case 30:
- case 31:
- case 32:
+ case 0:
+ pop();
+ break;
+ case 1:
+ pop();
+ break;
+ case 2:
+ pop();
+ break;
+ case 3:
+ pop();
+ break;
+ case 4:
+ pop();
+ break;
+ case 5:
+ pop();
+ break;
+ case 6:
+ pop();
+ break;
+ case 7:
+ pop();
+ break;
+ case 8:
+ pop();
+ break;
+ case 9:
+ pop();
+ break;
+ case 12:
+ pop();
+ pop();
+ break;
+ case 13:
+ pop();
+ break;
+ case 15:
+ if (_heversion >= 99) {
+ getStackList(args, ARRAYSIZE(args));
+ pop();
+ pop();
+ pop();
+ pop();
+ } else {
+ pop();
+ pop();
+ pop();
+ }
+ break;
+ case 22:
+ pop();
+ break;
case 33:
- case 34:
- case 35:
- case 36:
- case 37:
+ pop();
+ break;
case 38:
- case 39:
- case 43:
- case 52:
- case 63:
- case 68:
- case 82:
- case 92:
- case 97:
- case 98:
- case 124:
pop();
break;
- case 42:
- case 198:
+ case 52:
pop();
+ break;
+ case 62:
pop();
break;
- case 45:
+ case 67:
pop();
+ break;
+ case 68:
pop();
+ break;
+ case 94:
pop();
break;
- case 125:
+ case 95:
getStackList(args, ARRAYSIZE(args));
pop();
break;
+ case 168:
+ pop();
+ pop();
+ break;
default:
error("o90_unknown25: Unknown case %d", subOp);
}
push(0);
- debug(1,"o90_unknown25 stub (%d)", subOp);
+
}
void ScummEngine_v90he::o90_unknown26() {
More information about the Scummvm-git-logs
mailing list