aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-10-10 00:24:15 +0000
committerTravis Howell2004-10-10 00:24:15 +0000
commit873fecd67d854698470654013da1e1797b536923 (patch)
tree2125441a12fd6248d0ca32083f14e269b73408bb /scumm
parentdaff6d40749a0b3c7b9abb8c7c86e276771bbcd0 (diff)
downloadscummvm-rg350-873fecd67d854698470654013da1e1797b536923.tar.gz
scummvm-rg350-873fecd67d854698470654013da1e1797b536923.tar.bz2
scummvm-rg350-873fecd67d854698470654013da1e1797b536923.zip
Complete stub cases.
svn-id: r15493
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v100he.cpp143
-rw-r--r--scumm/script_v90he.cpp22
3 files changed, 150 insertions, 17 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index ea27c5b412..6d36f711f5 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -938,6 +938,8 @@ protected:
void o100_quitPauseRestart();
void o100_cursorCommand();
void o100_wait();
+ void o100_unknown27();
+ void o100_getPaletteData();
void o100_unknown25();
};
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index cf2a74e05f..79b6e617c9 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -221,8 +221,8 @@ void ScummEngine_v100he::setupOpcodes() {
/* 8C */
OPCODE(o6_invalid),
OPCODE(o100_wait),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o6_walkActorToObj),
+ OPCODE(o6_walkActorTo),
/* 90 */
OPCODE(o60_writeFile),
OPCODE(o72_writeINI),
@@ -274,7 +274,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o72_checkGlobQueue),
OPCODE(o72_getResourceSize),
/* B8 */
- OPCODE(o6_invalid),
+ OPCODE(o100_unknown27),
OPCODE(o6_invalid),
OPCODE(o6_invalid),
OPCODE(o6_isActorInBox),
@@ -294,7 +294,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o6_invalid),
OPCODE(o6_getOwner),
/* C8 */
- OPCODE(o90_getPaletteData),
+ OPCODE(o100_getPaletteData),
OPCODE(o6_pickOneOf),
OPCODE(o6_pickOneOfDefault),
OPCODE(o80_pickVarRandom),
@@ -980,6 +980,15 @@ void ScummEngine_v100he::o100_wizImageOps() {
_wizParams.processFlags |= 0x10000;
pop();
break;
+ case 138:
+ _wizParams.processFlags |= 0x60000;
+ _wizParams.processMode = 9;
+ pop();
+ pop();
+ pop();
+ pop();
+ pop();
+ break;
default:
error("o100_wizImageOps: Unknown case %d", subOp);
}
@@ -1174,7 +1183,6 @@ void ScummEngine_v100he::o100_startSound() {
byte op;
op = fetchScriptByte();
- debug(0, "o100_startSound invalid case %d", op);
switch (op) {
case 6:
_heSndLoop |= 16;
@@ -1220,8 +1228,9 @@ void ScummEngine_v100he::o100_startSound() {
}
void ScummEngine_v100he::o100_unknown26() {
- // Incomplete
int args[16];
+ byte string[80];
+
byte subOp = fetchScriptByte();
switch (subOp) {
@@ -1229,24 +1238,50 @@ void ScummEngine_v100he::o100_unknown26() {
pop();
pop();
break;
+ case 2:
+ pop();
+ break;
case 3:
pop();
break;
+ case 4:
+ pop();
+ break;
case 6:
pop();
pop();
break;
+ case 7:
+ pop();
+ break;
case 16:
getStackList(args, ARRAYSIZE(args));
break;
+ case 32:
+ pop();
+ break;
case 38:
pop();
break;
case 40:
pop();
break;
+ case 48:
+ pop();
+ break;
+ case 49:
+ pop();
+ pop();
+ break;
+ case 52:
+ copyScriptString(string);
+ break;
case 53:
break;
+ case 54:
+ pop();
+ pop();
+ break;
case 57:
pop();
break;
@@ -1259,12 +1294,37 @@ void ScummEngine_v100he::o100_unknown26() {
break;
case 61:
break;
+ case 65:
+ pop();
+ break;
+ case 70:
+ pop();
+ break;
case 73:
pop();
break;
+ case 74:
+ pop();
+ pop();
+ break;
+ case 75:
+ pop();
+ break;
+ case 76:
+ pop();
+ break;
case 82:
pop();
break;
+ case 83:
+ pop();
+ pop();
+ break;
+ case 88:
+ pop();
+ break;
+ case 89:
+ break;
default:
error("o100_unknown26: Unknown case %d", subOp);
}
@@ -1389,6 +1449,77 @@ void ScummEngine_v100he::o100_wait() {
o6_breakHere();
}
+void ScummEngine_v100he::o100_unknown27() {
+ byte subOp = fetchScriptByte();
+ switch (subOp) {
+ case 5:
+ pop();
+ break;
+ case 48:
+ pop();
+ break;
+ case 54:
+ pop();
+ pop();
+ break;
+ case 59:
+ pop();
+ break;
+ case 60:
+ pop();
+ pop();
+ break;
+ case 85:
+ pop();
+ break;
+ case 86:
+ pop();
+ break;
+ default:
+ error("o100_unknown27: Unknown case %d", subOp);
+ }
+ push(0);
+
+ debug(1,"o100_unknown27 stub (%d)", subOp);
+}
+
+void ScummEngine_v100he::o100_getPaletteData() {
+ byte subOp = fetchScriptByte();
+
+ switch (subOp) {
+ case 13:
+ pop();
+ pop();
+ break;
+ case 20:
+ pop();
+ pop();
+ break;
+ case 33:
+ pop();
+ pop();
+ pop();
+ pop();
+ pop();
+ pop();
+ break;
+ case 53:
+ pop();
+ pop();
+ pop();
+ break;
+ case 73:
+ pop();
+ pop();
+ pop();
+ break;
+ default:
+ error("o100_getPaletteData: Unknown case %d", subOp);
+ }
+ push(0);
+ debug(1,"o100_getPaletteData stub (%d)", subOp);
+}
+
void ScummEngine_v100he::o100_unknown25() {
int args[16];
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index 16150f8b6b..ce917e4834 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -629,7 +629,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
void ScummEngine_v90he::o90_wizImageOps() {
int a, b;
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 46;
switch (subOp) {
@@ -811,7 +811,7 @@ void ScummEngine_v90he::o90_wizImageOps() {
void ScummEngine_v90he::o90_unknown25() {
int args[16];
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 30;
debug(1,"o90_unknown25 stub (%d)", subOp);
@@ -914,7 +914,7 @@ void ScummEngine_v90he::o90_unknown25() {
void ScummEngine_v90he::o90_unknown26() {
// Incomplete
int args[16];
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 34;
switch (subOp) {
@@ -1006,7 +1006,7 @@ void ScummEngine_v90he::o90_unknown26() {
}
void ScummEngine_v90he::o90_unknown27() {
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
switch (subOp) {
case 8: // HE 99+
pop();
@@ -1041,7 +1041,7 @@ void ScummEngine_v90he::o90_unknown27() {
void ScummEngine_v90he::o90_unknown28() {
// Incomplete
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 37;
switch (subOp) {
@@ -1078,7 +1078,7 @@ void ScummEngine_v90he::o90_unknown29() {
uint32 w, h;
int16 x, y;
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 30;
switch (subOp) {
@@ -1141,7 +1141,7 @@ void ScummEngine_v90he::o90_unknown29() {
}
void ScummEngine_v90he::o90_unknown2F() {
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 54;
switch (subOp) {
@@ -1351,7 +1351,7 @@ void ScummEngine_v90he::o90_dim2dim2Array() {
void ScummEngine_v90he::o90_sortArray() {
// Sorts array via qsort
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
switch (subOp) {
case 129:
@@ -1370,7 +1370,7 @@ void ScummEngine_v90he::o90_sortArray() {
void ScummEngine_v90he::o90_getObjectData() {
// Object releated
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 32;
switch (subOp) {
@@ -1420,7 +1420,7 @@ void ScummEngine_v90he::o90_getObjectData() {
}
void ScummEngine_v90he::o90_getPaletteData() {
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
subOp -= 45;
switch (subOp) {
@@ -1515,7 +1515,7 @@ void ScummEngine_v90he::o90_unknownA5() {
byte string[80];
int a;
- int subOp = fetchScriptByte();
+ byte subOp = fetchScriptByte();
switch (subOp) {
case 42: