diff options
Diffstat (limited to 'engines/cine')
-rw-r--r-- | engines/cine/sound.cpp | 7 | ||||
-rw-r--r-- | engines/cine/unpack.cpp | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/engines/cine/sound.cpp b/engines/cine/sound.cpp index 73add512e8..00b7d27663 100644 --- a/engines/cine/sound.cpp +++ b/engines/cine/sound.cpp @@ -798,12 +798,17 @@ void PaulaSound::loadMusic(const char *name) { void PaulaSound::playMusic() { _mixer->stopHandle(_moduleHandle); if (_moduleStream) { - _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_moduleHandle, _moduleStream); + _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_moduleHandle, _moduleStream, -1, 255, 0, false); } } void PaulaSound::stopMusic() { _mixer->stopHandle(_moduleHandle); + + _mixer->pauseAll(true); + + for(int i = 0;i < NUM_CHANNELS;i++) + _soundChannelsTable[i].data = 0; } void PaulaSound::fadeOutMusic() { diff --git a/engines/cine/unpack.cpp b/engines/cine/unpack.cpp index 254b09313e..4409af4b07 100644 --- a/engines/cine/unpack.cpp +++ b/engines/cine/unpack.cpp @@ -116,7 +116,7 @@ bool delphineUnpack(byte *dst, const byte *src, int len) { unpackHelper2(&uc, 12); } } - } while (uc.datasize > 0); + } while (uc.datasize > 0 && uc.src >= src - 4); return uc.crc == 0; } |