aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorGregory Montoir2004-10-16 09:59:40 +0000
committerGregory Montoir2004-10-16 09:59:40 +0000
commit600a4369fed52a3506b749b2a7f74d7c1f9a9c11 (patch)
treee67dbce4085cd85a2b9f4bc83fd104a8e95ec12d /scumm
parent78ddff569dbeea3f26a675a36ee1e40929c3b898 (diff)
downloadscummvm-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.h1
-rw-r--r--scumm/script_v100he.cpp84
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();