More cases

svn-id: r14936
This commit is contained in:
Travis Howell 2004-09-07 03:42:15 +00:00
parent 98eeb34f27
commit b2ac15afa4
2 changed files with 121 additions and 1 deletions

View File

@ -807,6 +807,7 @@ protected:
void o90_unknown26(); void o90_unknown26();
void o90_unknown27(); void o90_unknown27();
void o90_unknown28(); void o90_unknown28();
void o90_unknown29();
}; };
class ScummEngine_v7 : public ScummEngine_v6 { class ScummEngine_v7 : public ScummEngine_v6 {

View File

@ -96,7 +96,7 @@ void ScummEngine_v90he::setupOpcodes() {
OPCODE(o90_unknown27), OPCODE(o90_unknown27),
/* 28 */ /* 28 */
OPCODE(o90_unknown28), OPCODE(o90_unknown28),
OPCODE(o6_invalid), OPCODE(o90_unknown29),
OPCODE(o6_invalid), OPCODE(o6_invalid),
OPCODE(o6_invalid), OPCODE(o6_invalid),
/* 2C */ /* 2C */
@ -509,18 +509,67 @@ void ScummEngine_v90he::o90_unknown26() {
subOp -= 34; subOp -= 34;
switch (subOp) { switch (subOp) {
case 0:
pop();
break;
case 1:
pop();
break;
case 3:
pop();
break;
case 8:
pop();
pop();
break;
case 9:
pop();
break;
case 10: case 10:
pop(); pop();
pop(); pop();
break; break;
case 18:
pop();
break;
case 19:
pop();
break;
case 23: case 23:
pop(); pop();
break; break;
case 29:
pop();
break;
case 31:
pop();
pop();
break;
case 34:
pop();
break;
case 43:
pop();
pop();
break;
case 48:
pop();
break;
case 90:
pop();
break;
case 124: case 124:
break; break;
case 164:
pop();
pop();
break;
case 183:
break;
default: default:
error("o90_unknown26: Unknown case %d", subOp); error("o90_unknown26: Unknown case %d", subOp);
} }
debug(1,"o90_unknown26 stub (%d)", subOp);
} }
void ScummEngine_v90he::o90_unknown27() { void ScummEngine_v90he::o90_unknown27() {
@ -549,12 +598,82 @@ void ScummEngine_v90he::o90_unknown28() {
subOp -= 37; subOp -= 37;
switch (subOp) { switch (subOp) {
case 6:
pop();
break;
case 7:
pop();
pop();
break;
case 20: case 20:
pop(); pop();
break; break;
case 28:
pop();
pop();
break;
case 30:
pop();
pop();
pop();
pop();
break;
default: default:
error("o90_unknown28: Unknown case %d", subOp); error("o90_unknown28: Unknown case %d", subOp);
} }
debug(1,"o90_unknown28 stub (%d)", subOp);
}
void ScummEngine_v90he::o90_unknown29() {
int subOp = fetchScriptByte();
subOp -= 30;
switch (subOp) {
case 0:
pop();
pop();
break;
case 1:
pop();
pop();
break;
case 2:
pop();
pop();
break;
case 3:
pop();
pop();
break;
case 6:
pop();
break;
case 15:
pop();
pop();
pop();
pop();
break;
case 36:
pop();
pop();
pop();
pop();
break;
case 100:
pop();
pop();
pop();
pop();
pop();
pop();
break;
default:
error("o90_unknown29: Unknown case %d", subOp);
}
push(0);
debug(1,"o90_unknown29 stub (%d)", subOp);
} }
} // End of namespace Scumm } // End of namespace Scumm