diff options
author | Gregory Montoir | 2004-10-16 09:59:40 +0000 |
---|---|---|
committer | Gregory Montoir | 2004-10-16 09:59:40 +0000 |
commit | 600a4369fed52a3506b749b2a7f74d7c1f9a9c11 (patch) | |
tree | e67dbce4085cd85a2b9f4bc83fd104a8e95ec12d /scumm | |
parent | 78ddff569dbeea3f26a675a36ee1e40929c3b898 (diff) | |
download | scummvm-rg350-600a4369fed52a3506b749b2a7f74d7c1f9a9c11.tar.gz scummvm-rg350-600a4369fed52a3506b749b2a7f74d7c1f9a9c11.tar.bz2 scummvm-rg350-600a4369fed52a3506b749b2a7f74d7c1f9a9c11.zip |
required for ff5demo
svn-id: r15569
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 84 |
2 files changed, 84 insertions, 1 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 17d5bd1f50..04a73e6fad 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -943,6 +943,7 @@ protected: void o100_unknown27(); void o100_getPaletteData(); void o100_unknown25(); + void o100_unknown29(); }; class ScummEngine_v7 : public ScummEngine_v6 { diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 708d110f73..566024bf0f 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -276,7 +276,7 @@ void ScummEngine_v100he::setupOpcodes() { /* B8 */ OPCODE(o100_unknown27), OPCODE(o6_invalid), - OPCODE(o6_invalid), + OPCODE(o100_unknown29), OPCODE(o6_isActorInBox), /* BC */ OPCODE(o6_isAnyOf), @@ -1600,6 +1600,88 @@ void ScummEngine_v100he::o100_unknown27() { debug(1,"o100_unknown27 stub (%d)", subOp); } +void ScummEngine_v100he::o100_unknown29() { + int state, resId; + uint32 w, h; + int16 x, y; + + byte subOp = fetchScriptByte(); + subOp -= 20; + + switch (subOp) { + case 0: + pop(); + pop(); + pop(); + pop(); + push(0); + warning("o100_unknown29() case 0 unhandled"); + break; + case 6: + pop(); + push(0); + warning("o100_unknown29() case 6 unhandled"); + break; + case 13: + pop(); + pop(); + pop(); + pop(); + push(0); + warning("o100_unknown29() case 13 unhandled"); + break; + case 19: + state = pop(); + resId = pop(); + getWizImageDim(resId, state, w, h); + push(h); + break; + case 34: + pop(); + pop(); + pop(); + push(0); + warning("o100_unknown29() case 34 unhandled"); + break; + case 64: + state = pop(); + resId = pop(); + getWizImageDim(resId, state, w, h); + push(w); + break; + case 65: + state = pop(); + resId = pop(); + loadImgSpot(resId, state, x, y); + push(x); + break; + case 66: + state = pop(); + resId = pop(); + loadImgSpot(resId, state, x, y); + push(y); + break; + case 111: + pop(); + pop(); + push(0); + warning("o100_unknown29() case 111 unhandled"); + break; + case 112: + pop(); + pop(); + pop(); + pop(); + pop(); + pop(); + push(0); + warning("o100_unknown29() case 112 unhandled"); + break; + default: + error("o100_unknown27: Unknown case %d", subOp); + } +} + void ScummEngine_v100he::o100_getPaletteData() { byte subOp = fetchScriptByte(); |