aboutsummaryrefslogtreecommitdiff
path: root/scumm/sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r--scumm/sound.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 2c945e2de8..60d183bf47 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -682,8 +682,14 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, SoundHandle *handl
if (_vm->_features & GF_HUMONGOUS) {
_sfxMode |= mode;
- // Skip the TALK (8) and HSHD (24) chunks
- _sfxFile->seek(offset + 32, SEEK_SET);
+ _sfxFile->seek(offset, SEEK_SET);
+ if (_sfxFile->readUint32LE() == TO_LE_32(MKID('WSOU'))) {
+ debug(1, "IMA ADPCM compression not supported");
+ return;
+ } else {
+ // Skip the TALK (8) and HSHD (24) chunks
+ _sfxFile->seek(28, SEEK_CUR);
+ }
if (_sfxFile->readUint32LE() == TO_LE_32(MKID('SBNG'))) {
// Skip the SBNG, so we end up at the SDAT chunk