aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp20
-rw-r--r--simon/vga.cpp6
2 files changed, 20 insertions, 6 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 34cbd2b045..096a8310f1 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -486,6 +486,26 @@ void Sound::playSound(int soundID) {
return;
}
+ if ((_scumm->_features & GF_AMIGA) && (_scumm->_version == 3))
+ {
+ // experimental support for Indy3 Amiga sound effects
+ if (READ_BE_UINT16(ptr + 26) == 0x00FF) // looped sound
+ // TODO: support looping sounds
+ // ptr + 14 seems to be looping duration
+ flags = 0;
+ else if (READ_BE_UINT16(ptr + 26) == 0x0001) // nonlooped sound
+ flags = 0; //
+ else if (READ_BE_UINT16(ptr + 26) == 0x0101) // background music
+ // TODO: support music
+ return;
+ else
+ debug(3,"Unknown sound type detected!");
+ size = READ_BE_UINT16(ptr + 12);
+ rate = 11000;
+ _scumm->_mixer->playRaw(NULL, ptr + 28, size, rate, flags, soundID);
+ return;
+ }
+
if (_scumm->_features & GF_OLD_BUNDLE) {
//TODO: support maniac v1 sounds
if ((_scumm->_version == 1) && (_scumm->_gameId == GID_MANIAC))
diff --git a/simon/vga.cpp b/simon/vga.cpp
index 4c58c164e9..a828273ed5 100644
--- a/simon/vga.cpp
+++ b/simon/vga.cpp
@@ -1122,12 +1122,6 @@ void SimonEngine::vc_23_set_sprite_priority() {
uint16 pri = vc_read_next_word();
VgaSprite bak;
- if (vsp->id == 0) {
- if (_debugMode)
- warning("tried to set pri for unknown id %d", _vga_cur_sprite_id);
- return;
- }
-
memcpy(&bak, vsp, sizeof(bak));
bak.priority = pri;
bak.unk6 |= 0x8000;