aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/smush
diff options
context:
space:
mode:
authorPaweł Kołodziejski2006-10-08 18:22:51 +0000
committerPaweł Kołodziejski2006-10-08 18:22:51 +0000
commitce100c8e930fde6d9cb9d70fcae201dfee10f407 (patch)
tree04a444e3ae546aa3d9d5ef685c781fa6c53ddc71 /engines/scumm/smush
parent3a81941981a6ca5fab229ff9aeb6b05b94a444bc (diff)
downloadscummvm-rg350-ce100c8e930fde6d9cb9d70fcae201dfee10f407.tar.gz
scummvm-rg350-ce100c8e930fde6d9cb9d70fcae201dfee10f407.tar.bz2
scummvm-rg350-ce100c8e930fde6d9cb9d70fcae201dfee10f407.zip
small unify handleIACT function
svn-id: r24214
Diffstat (limited to 'engines/scumm/smush')
-rw-r--r--engines/scumm/smush/smush_player.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp
index 7bdc70450d..6980274592 100644
--- a/engines/scumm/smush/smush_player.cpp
+++ b/engines/scumm/smush/smush_player.cpp
@@ -432,13 +432,22 @@ void SmushPlayer::handleFetch(Chunk &b) {
void SmushPlayer::handleIACT(Chunk &b) {
checkBlock(b, TYPE_IACT, 8);
- debugC(DEBUG_SMUSH, "SmushPlayer::handleImuseAction()");
+ debugC(DEBUG_SMUSH, "SmushPlayer::IACT()");
- /* int code = */ b.getWord();
+ int code = b.getWord();
int flags = b.getWord();
int unknown = b.getShort();
int track_flags = b.getWord();
+ if ((code != 8) && (flags != 46)) {
+ _vm->_insane->procIACT(_dst, 0, 0, 0, b, 0, 0, code, flags, unknown, track_flags);
+ return;
+ }
+
+ if (_compressedFileMode) {
+ return;
+ }
+
assert(flags == 46 && unknown == 0);
int track_id = b.getWord();
int index = b.getWord();
@@ -973,13 +982,7 @@ void SmushPlayer::handleFrame(Chunk &b) {
handleDeltaPalette(*sub);
break;
case TYPE_IACT:
- // FIXME: check parameters
- if (_insanity)
- _vm->_insane->procIACT(_dst, 0, 0, 0, *sub, 0, 0);
- else {
- if (!_compressedFileMode)
- handleIACT(*sub);
- }
+ handleIACT(*sub);
break;
case TYPE_STOR:
handleStore(*sub);