diff options
| -rw-r--r-- | engines/sword2/sound.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/engines/sword2/sound.cpp b/engines/sword2/sound.cpp index ed27622000..c5212d20c2 100644 --- a/engines/sword2/sound.cpp +++ b/engines/sword2/sound.cpp @@ -331,25 +331,17 @@ int32 Sound::playFx(Audio::SoundHandle *handle, byte *data, uint32 len, uint8 vo return RDERR_FXALREADYOPEN; Common::MemoryReadStream *stream = new Common::MemoryReadStream(data, len); - int rate, size; - byte flags; + Audio::AudioStream *input = 0; if (Sword2Engine::isPsx()) { - _vm->_mixer->playInputStream(soundType, handle, new Audio::VagStream(stream, loop), -1, vol, pan, true, false, isReverseStereo()); + input = new Audio::VagStream(stream, loop); } else { - if (!Audio::loadWAVFromStream(*stream, size, rate, flags)) { - warning("playFX: Not a valid WAV file"); - return RDERR_INVALIDWAV; - } - - if (isReverseStereo()) - flags |= Audio::Mixer::FLAG_REVERSE_STEREO; + input = Audio::makeWAVStream(stream, true, loop); + } - if (loop) - flags |= Audio::Mixer::FLAG_LOOP; + assert(input); - _vm->_mixer->playRaw(soundType, handle, data + stream->pos(), size, rate, flags, -1, vol, pan, 0, 0); - } + _vm->_mixer->playInputStream(soundType, handle, input, -1, vol, pan, true, false, isReverseStereo()); return RD_OK; } |
