aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-11-15 12:03:38 +0000
committerTravis Howell2005-11-15 12:03:38 +0000
commit4dc368460874c1028f5cc7b105365b1060ec6d15 (patch)
tree3aad6cdeb041a0a2224d7874a802bc6942307cc4
parent987ad29b8088db3a7ef7bb23590dd2a037aecd1d (diff)
downloadscummvm-rg350-4dc368460874c1028f5cc7b105365b1060ec6d15.tar.gz
scummvm-rg350-4dc368460874c1028f5cc7b105365b1060ec6d15.tar.bz2
scummvm-rg350-4dc368460874c1028f5cc7b105365b1060ec6d15.zip
Speech support for FF.
svn-id: r19600
-rw-r--r--simon/sound.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/simon/sound.cpp b/simon/sound.cpp
index fd6c5e1840..160a1a125f 100644
--- a/simon/sound.cpp
+++ b/simon/sound.cpp
@@ -82,6 +82,10 @@ BaseSound::BaseSound(Audio::Mixer *mixer, File *file, uint32 base, bool bigendia
else
size = _file->readUint32LE();
+ // The Feeble Files uses set amount of voice offsets
+ if (size == 0)
+ size = 40000;
+
res = size / sizeof(uint32);
_offsets = (uint32 *)malloc(size + sizeof(uint32));
@@ -447,7 +451,11 @@ void Sound::playVoice(uint sound) {
return;
_mixer->stopHandle(_voiceHandle);
- _voice->playSound(sound, &_voiceHandle, (_vm->getGameId() == GID_SIMON1CD32) ? 0 : Audio::Mixer::FLAG_UNSIGNED);
+ if (_vm->getGameType() == GType_FF || _vm->getGameId() == GID_SIMON1CD32) {
+ _voice->playSound(sound, &_voiceHandle, 0);
+ } else {
+ _voice->playSound(sound, &_voiceHandle, Audio::Mixer::FLAG_UNSIGNED);
+ }
}
void Sound::playSoundData(byte *soundData, uint sound, uint pan, uint vol, bool ambient) {