diff options
| -rw-r--r-- | engines/hopkins/sound.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index 4fc20540f5..ffb19a9aa2 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -357,12 +357,16 @@ void SoundManager::checkMusic() { return; mwavIndex = Music._mwavIndexes[Music._currentIndex]; - if (mwavIndex != -1) { - int volume = MUSICVOL * 255 / 16; + if (mwavIndex == -1) { + Music._currentIndex = 0; + mwavIndex = Music._mwavIndexes[Music._currentIndex]; + } - _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &Mwav[mwavIndex]._soundHandle, - Mwav[mwavIndex]._audioStream, -1, volume, 0, DisposeAfterUse::NO); - } + int volume = MUSICVOL * 255 / 16; + + Mwav[mwavIndex]._audioStream->rewind(); + _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &Mwav[mwavIndex]._soundHandle, + Mwav[mwavIndex]._audioStream, -1, volume, 0, DisposeAfterUse::NO); } } |
