diff options
Diffstat (limited to 'engines/titanic/sound/qmixer.cpp')
-rw-r--r-- | engines/titanic/sound/qmixer.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/engines/titanic/sound/qmixer.cpp b/engines/titanic/sound/qmixer.cpp index b33601d82e..5c511c3cae 100644 --- a/engines/titanic/sound/qmixer.cpp +++ b/engines/titanic/sound/qmixer.cpp @@ -209,11 +209,8 @@ void QMixer::qsWaveMixPump() { SoundEntry &sound = channel._sounds.front(); if (sound._started && !_mixer->isSoundHandleActive(sound._soundHandle)) { if (sound._loops == -1 || sound._loops-- > 0) { - // Need to loop the sound again - sound._waveFile->audioStream()->rewind(); - _mixer->playStream(sound._waveFile->_soundType, - &sound._soundHandle, sound._waveFile->audioStream(), - -1, channel.getRawVolume(), 0, DisposeAfterUse::NO); + // Need to loop (replay) the sound again + sound._soundHandle = sound._waveFile->play(channel.getRawVolume()); } else { // Sound is finished if (sound._callback) @@ -234,10 +231,8 @@ void QMixer::qsWaveMixPump() { if (channel._resetDistance) channel._distance = 0.0; - // Calculate an effective volume based on distance of source - _mixer->playStream(sound._waveFile->_soundType, - &sound._soundHandle, sound._waveFile->audioStream(), - -1, channel.getRawVolume(), 0, DisposeAfterUse::NO); + // Play the wave + sound._soundHandle = sound._waveFile->play(channel.getRawVolume()); sound._started = true; } } |