aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2009-12-30 17:59:31 +0000
committerFilippos Karapetis2009-12-30 17:59:31 +0000
commit1e4a7752411317919f7420009abc59595774b1ab (patch)
treed6625e3838caeb78947c03975b31018ea5d2b3bc /engines
parentbfa0c4e9c3228d40d8ff999c44c47f22b07ac26f (diff)
downloadscummvm-rg350-1e4a7752411317919f7420009abc59595774b1ab.tar.gz
scummvm-rg350-1e4a7752411317919f7420009abc59595774b1ab.tar.bz2
scummvm-rg350-1e4a7752411317919f7420009abc59595774b1ab.zip
SCI/new sound code:
- call cmdDisposeHandle() instead of soundKill when a track is being replaced - Added information about cmdReverb svn-id: r46766
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/sfx/soundcmd.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/sci/sfx/soundcmd.cpp b/engines/sci/sfx/soundcmd.cpp
index 124a93025f..a135d88a2b 100644
--- a/engines/sci/sfx/soundcmd.cpp
+++ b/engines/sci/sfx/soundcmd.cpp
@@ -304,7 +304,7 @@ void SoundCommandParser::cmdInitHandle(reg_t obj, int16 value) {
// Check if a track with the same sound object is already playing
MusicEntry *oldSound = _music->getSlot(obj);
if (oldSound)
- _music->soundKill(oldSound);
+ cmdDisposeHandle(obj, value);
_music->pushBackSlot(newSound);
@@ -804,7 +804,18 @@ void SoundCommandParser::cmdSendMidi(reg_t obj, int16 value) {
void SoundCommandParser::cmdReverb(reg_t obj, int16 value) {
// TODO
- warning("STUB: cmdReverb");
+ // This function has one parameter, enabling the reverb effect
+ // in MT-32 if the parameter is non-zero. This is either the
+ // reverb level, or delay time. The reverb type is probably fixed
+ // to 1 ("room"). I'm not quite sure how and if this works for
+ // Adlib.
+ // Refer to http://www.midi.org/techspecs/midimessages.php
+ // and http://www.youngmonkey.ca/nose/audio_tech/synth/Roland-MT32.html
+ // Also, /sound/softsynth/mt32/synth.h is a good reference
+ // A good test case for this are the first two rooms in Longbow:
+ // reverb is set for the first room (the cave) and is subsequently
+ // cleared when Robin exits the cave
+ warning("STUB: cmdReverb (%d)", obj.toUint16());
}
void SoundCommandParser::cmdHoldHandle(reg_t obj, int16 value) {