aboutsummaryrefslogtreecommitdiff
path: root/engines/simon/res.cpp
diff options
context:
space:
mode:
authorTravis Howell2006-04-14 05:13:59 +0000
committerTravis Howell2006-04-14 05:13:59 +0000
commit1a6849de91ce2b36a37482c027268889893515bb (patch)
tree6aeedcadda568b5c23540dfef1ce1b70be274177 /engines/simon/res.cpp
parentde0dd94c9cbf44f5dae72c69467fb7d24872eca5 (diff)
downloadscummvm-rg350-1a6849de91ce2b36a37482c027268889893515bb.tar.gz
scummvm-rg350-1a6849de91ce2b36a37482c027268889893515bb.tar.bz2
scummvm-rg350-1a6849de91ce2b36a37482c027268889893515bb.zip
Add speech support for Amiga verison of FF
svn-id: r21871
Diffstat (limited to 'engines/simon/res.cpp')
-rw-r--r--engines/simon/res.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/simon/res.cpp b/engines/simon/res.cpp
index c9ddd6a27b..a09f6d6b10 100644
--- a/engines/simon/res.cpp
+++ b/engines/simon/res.cpp
@@ -706,4 +706,28 @@ void SimonEngine::loadSound(uint sound, uint pan, uint vol, bool ambient) {
}
}
+void SimonEngine::loadVoice(uint speechId) {
+ if (getFeatures() & GF_ZLIBCOMP) {
+ char filename[15];
+
+ uint32 file, offset, srcSize, dstSize;
+ if (getPlatform() == Common::kPlatformAmiga) {
+ loadOffsets((const char*)"spindex.dat", speechId, file, offset, srcSize, dstSize);
+ } else {
+ loadOffsets((const char*)"speech.wav", speechId, file, offset, srcSize, dstSize);
+ }
+
+ if (getPlatform() == Common::kPlatformAmiga)
+ sprintf(filename, "sp%d.wav", file);
+ else
+ sprintf(filename, "speech.wav");
+
+ byte *dst = (byte *)malloc(dstSize);
+ decompressData(filename, dst, offset, srcSize, dstSize);
+ _sound->playVoiceData(dst, speechId);
+ } else {
+ _sound->playVoice(speechId);
+ }
+}
+
} // End of namespace Simon