aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-04-09 07:25:41 +0000
committerTravis Howell2005-04-09 07:25:41 +0000
commit4f085516437369eccf22c96d84362f4d39c1448b (patch)
tree2c6c6495bb796d00b3505f16540587e10cac9e87 /scumm
parent73d1d63f1502a94eb27fc3186b8e012e342de87d (diff)
downloadscummvm-rg350-4f085516437369eccf22c96d84362f4d39c1448b.tar.gz
scummvm-rg350-4f085516437369eccf22c96d84362f4d39c1448b.tar.bz2
scummvm-rg350-4f085516437369eccf22c96d84362f4d39c1448b.zip
Add comment to TODO
Check that string pointer exists, before reading data. Don't attempt to play speech in soccer2004, since it uses compression. svn-id: r17470
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v72he.cpp6
-rw-r--r--scumm/sound.cpp10
2 files changed, 12 insertions, 4 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index c6feadd0c9..9b3b014080 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -572,8 +572,10 @@ void ScummEngine_v72he::decodeScriptString(byte *dst, bool scriptString) {
break;
case 's':
src = getStringAddress(args[val--]);
- while (*src != 0)
- *dst++ = *src++;
+ if (src) {
+ while (*src != 0)
+ *dst++ = *src++;
+ }
break;
case 'x':
dst += sprintf((char *)dst, "%x", args[val--]);
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