aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/vga.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-05-28 11:22:53 +0000
committerTravis Howell2007-05-28 11:22:53 +0000
commit9d041cc0598212bb2ef95584f0213aa4d286e2a6 (patch)
tree6e46d52bf8521f66ff811981bbb425de6d8edc20 /engines/agos/vga.cpp
parent0d789e074e6ff1ed76e75619eae9d337d3faad29 (diff)
downloadscummvm-rg350-9d041cc0598212bb2ef95584f0213aa4d286e2a6.tar.gz
scummvm-rg350-9d041cc0598212bb2ef95584f0213aa4d286e2a6.tar.bz2
scummvm-rg350-9d041cc0598212bb2ef95584f0213aa4d286e2a6.zip
Add sound effects code for Amiga and AtariST versions of Elvira 2.
svn-id: r26989
Diffstat (limited to 'engines/agos/vga.cpp')
-rw-r--r--engines/agos/vga.cpp33
1 files changed, 5 insertions, 28 deletions
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index be76b69c64..ee3881ac52 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -1072,37 +1072,14 @@ void AGOSEngine::vc27_resetSprite() {
}
void AGOSEngine::vc28_playSFX() {
- byte *dst;
- uint sound, channels, frequency, flags;
- uint offs, size;
+ uint16 sound = vcReadNextWord();
+ uint16 channels = vcReadNextWord();
+ uint16 frequency = vcReadNextWord();
+ uint16 flags = vcReadNextWord();
- sound = vcReadNextWord();
- channels = vcReadNextWord();
- frequency = vcReadNextWord();
- flags = vcReadNextWord();
+ loadSound(sound);
debug(0, "vc28_playSFX: (%d, %d, %d, %d)", sound, channels, frequency, flags);
-
- if (_curSfxFile == NULL)
- return;
-
- dst = _curSfxFile;
- if (getGameType() == GType_WW) {
- uint tmp = sound;
- while (tmp--)
- dst += READ_LE_UINT16(dst) + 4;
-
- size = READ_LE_UINT16(dst);
- offs = 4;
- } else {
- while (READ_BE_UINT16(dst + 6) != sound)
- dst += 12;
-
- size = READ_BE_UINT16(dst + 2);
- offs = READ_BE_UINT32(dst + 8);
- }
-
- _sound->playRawData(dst + offs, sound, size);
}
void AGOSEngine::vc29_stopAllSounds() {