diff options
-rw-r--r-- | engines/gob/mult_v2.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/gob/mult_v2.cpp b/engines/gob/mult_v2.cpp index 38810e8c05..f57d5ecb0c 100644 --- a/engines/gob/mult_v2.cpp +++ b/engines/gob/mult_v2.cpp @@ -1044,12 +1044,15 @@ void Mult_v2::playImd(const char *imdFile, Mult::Mult_ImdKey &key, int16 dir, if ((palFrame != -1) && (lastFrame != -1)) if ((lastFrame - palFrame) < startFrame) if (!(key.flags & 0x4000)) { + _vm->_game->_preventScroll = false; _vm->_imdPlayer->closeImd(); return; } - if (!_vm->_imdPlayer->openImd(imdFile, x, y, 0, flags)) + if (!_vm->_imdPlayer->openImd(imdFile, x, y, 0, flags)) { + _vm->_game->_preventScroll = false; return; + } if (palFrame == -1) palFrame = 0; @@ -1064,6 +1067,7 @@ void Mult_v2::playImd(const char *imdFile, Mult::Mult_ImdKey &key, int16 dir, void Mult_v2::advanceObjects(int16 index) { int16 frame; bool stop = false; + bool hasImds = false; frame = _multData->animKeysFrames[index]; if (frame == -1) @@ -1165,10 +1169,14 @@ void Mult_v2::advanceObjects(int16 index) { if ((dir != 1) && (--startFrame > 0)) startFrame = 0; + hasImds = true; playImd(imdFile, key, dir, startFrame); } } + if (!hasImds && (_vm->_draw->_showCursor == 3)) + _vm->_game->_preventScroll = false; + doSoundAnim(stop, frame); WRITE_VAR(22, frame); |