diff options
author | Willem Jan Palenstijn | 2009-07-11 15:00:40 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2009-07-11 15:00:40 +0000 |
commit | 8dd34921945ea0ce7f77e6c71ec5fbafaeb77622 (patch) | |
tree | 268cff1a95d4b1543cf8a474cf574ca26cbee3d5 /engines/sci | |
parent | 1c02b93b7093c436978d8ad8916dabf43cd1591e (diff) | |
download | scummvm-rg350-8dd34921945ea0ce7f77e6c71ec5fbafaeb77622.tar.gz scummvm-rg350-8dd34921945ea0ce7f77e6c71ec5fbafaeb77622.tar.bz2 scummvm-rg350-8dd34921945ea0ce7f77e6c71ec5fbafaeb77622.zip |
SCI: don't let TimerSongIterator loop forever, and don't immediately
signal completion when starting it. This fixes a sync issue with
the departing spaceship at the start of SQ4CD (after the intro).
svn-id: r42385
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/ksound.cpp | 1 | ||||
-rw-r--r-- | engines/sci/sfx/iterator.cpp | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp index 4ba8971397..95c2eaab1d 100644 --- a/engines/sci/engine/ksound.cpp +++ b/engines/sci/engine/ksound.cpp @@ -823,7 +823,6 @@ reg_t kDoSound_SCI1(EngineState *s, int funct_nr, int argc, reg_t *argv) { sampleLen = s->_sound.startAudio(65535, number); // Also create iterator, that will fire SI_FINISHED event, when the sound is done playing s->_sound.sfx_add_song(build_timeriterator(s, sampleLen), 0, handle, number); - PUT_SEL32V(obj, signal, sampleLen); } else { if (!s->resmgr->testResource(ResourceId(kResourceTypeSound, number))) { warning("Could not open song number %d", number); diff --git a/engines/sci/sfx/iterator.cpp b/engines/sci/sfx/iterator.cpp index 6c5706a8c1..dc2979abda 100644 --- a/engines/sci/sfx/iterator.cpp +++ b/engines/sci/sfx/iterator.cpp @@ -1173,7 +1173,9 @@ TimerSongIterator::TimerSongIterator(int delta) int TimerSongIterator::nextCommand(byte *buf, int *result) { if (_delta) { - return _delta; + int d = _delta; + _delta = 0; + return d; } return SI_FINISHED; } |