diff options
author | Travis Howell | 2004-10-10 00:24:15 +0000 |
---|---|---|
committer | Travis Howell | 2004-10-10 00:24:15 +0000 |
commit | 873fecd67d854698470654013da1e1797b536923 (patch) | |
tree | 2125441a12fd6248d0ca32083f14e269b73408bb /scumm | |
parent | daff6d40749a0b3c7b9abb8c7c86e276771bbcd0 (diff) | |
download | scummvm-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.h | 2 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 143 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 22 |
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: |