From 3632305c6c2f86cae41aea21aaab65df659296e5 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Wed, 2 Jun 2004 13:32:16 +0000 Subject: Ignore imuse control code in HE games Add missing code for o6_stampobject (From diasm.) svn-id: r13924 --- scumm/imuse_player.cpp | 3 +++ scumm/intern.h | 1 - scumm/script_v6.cpp | 24 +++++++++++++++--------- scumm/script_v6he.cpp | 19 ------------------- 4 files changed, 18 insertions(+), 29 deletions(-) (limited to 'scumm') diff --git a/scumm/imuse_player.cpp b/scumm/imuse_player.cpp index c63e42311c..39cba34369 100644 --- a/scumm/imuse_player.cpp +++ b/scumm/imuse_player.cpp @@ -299,6 +299,9 @@ void Player::send(uint32 b) { case 93: // Chorus Level part->chorusLevel(param2); break; + case 116: // Unknown + // FIXME: Often used in puttmoon + break; case 123: // All Notes Off part->allNotesOff(); break; diff --git a/scumm/intern.h b/scumm/intern.h index 56f0a844e0..a8cc8ed556 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -591,7 +591,6 @@ protected: void o6_dummy(); void o6_kernelSetFunctions(); void o6_kernelGetFunctions(); - void o6_stampObject(); void o6_openFile(); void o6_closeFile(); void o6_deleteFile(); diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 743c75038d..d7487ca41e 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -2850,7 +2850,7 @@ void ScummEngine_v6::o6_stampObject() { int object, x, y, state; // dummy opcode in tentacle - if (_version == 6) + if (_gameId == GID_TENTACLE) return; // V7 version @@ -2858,10 +2858,10 @@ void ScummEngine_v6::o6_stampObject() { y = pop(); x = pop(); object = pop(); - if (object < 30) { - if (state == 0) { + if (_version >= 7 && object < 30) { + if (state == 0) state = 255; - } + debug(6, "o6_stampObject: (%d at (%d,%d) scale %d)", object, x, y, state); Actor *a = derefActor(object, "o6_stampObject"); a->scalex = state; @@ -2873,15 +2873,21 @@ void ScummEngine_v6::o6_stampObject() { return; } - if (object == 0) { + if (state == 0) state = 1; - } + + int objnum = getObjectIndex(object); + if (objnum == 0) + return; if (x != -1) { - setObjectState(object, state, x, y); - drawObject(getObjectIndex(object), 0); - warning("o6_stampObject: (%d at (%d,%d) state %d)", object, x, y, state); + _objs[objnum].x_pos = x * 8; + _objs[objnum].y_pos = y * 8; } + + putState(object, state); + drawObject(objnum, 0); + debug(6, "o6_stampObject: (%d at (%d,%d) state %d)", object, x, y, state); } void ScummEngine_v6::o6_stopTalking() { diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index 393edc2504..b723db98ef 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -1083,25 +1083,6 @@ void ScummEngine_v6he::virtScreenSavePackByte(vsPackCtx *ctx, uint8 *&dst, int l ++ctx->size; } -void ScummEngine_v6he::o6_stampObject() { - int object, x, y, state; - - state = pop(); - if (state == 0) { - state = 1; - } - y = pop(); - x = pop(); - object = pop(); - int objnum = getObjectIndex(object); - if (objnum == -1) - return; - _objs[objnum].x_pos = x * 8; - _objs[objnum].y_pos = y * 8; - putState(object, state); - drawObject(objnum, 0); -} - void ScummEngine_v6he::o6_openFile() { int mode, len, slot, l, r; byte filename[100]; -- cgit v1.2.3