diff options
Diffstat (limited to 'engines/lab/anim.cpp')
-rw-r--r-- | engines/lab/anim.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/lab/anim.cpp b/engines/lab/anim.cpp index 1190f0323b..2dc580735e 100644 --- a/engines/lab/anim.cpp +++ b/engines/lab/anim.cpp @@ -208,6 +208,8 @@ void Anim::diffNextFrame(bool onlyDiffData) { _vm->updateEvents(); _vm->waitTOF(); } + + _waitForEffect = false; } _size -= 8; @@ -217,7 +219,9 @@ void Anim::diffNextFrame(bool onlyDiffData) { _diffFile->skip(2); // Sound effects embedded in animations are started here. These are - // usually animation-specific, like door opening sounds, and are not looped + // usually animation-specific, like door opening sounds, and are not looped. + // The engine should wait for all such sounds to end. + _waitForEffect = true; _vm->_music->playSoundEffect(_sampleSpeed, _size, false, _diffFile); break; @@ -233,6 +237,8 @@ void Anim::diffNextFrame(bool onlyDiffData) { if (drawOnScreen) didTOF = true; } + + _waitForEffect = false; } _isPlaying = false; |