diff options
Diffstat (limited to 'engines/touche/resource.cpp')
-rw-r--r-- | engines/touche/resource.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/touche/resource.cpp b/engines/touche/resource.cpp index 6df6fc0e5f..0790d726b7 100644 --- a/engines/touche/resource.cpp +++ b/engines/touche/resource.cpp @@ -590,8 +590,14 @@ void ToucheEngine::res_loadSound(int priority, int num) { if (priority >= 0) { uint32 size; const uint32 offs = res_getDataOffset(kResourceTypeSound, num, &size); - _fData.seek(offs); - Audio::AudioStream *stream = Audio::makeVOCStream(&_fData, Audio::FLAG_UNSIGNED); + Common::SeekableReadStream *datastream = SearchMan.createReadStreamForMember("TOUCHE.DAT"); + if (!datastream) { + warning("res_loadSound: Could not open TOUCHE.DAT"); + return; + } + + datastream->seek(offs); + Audio::AudioStream *stream = Audio::makeVOCStream(datastream, Audio::FLAG_UNSIGNED, DisposeAfterUse::YES); if (stream) { _mixer->playStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, stream); } |