aboutsummaryrefslogtreecommitdiff
path: root/scumm/sound.cpp
diff options
context:
space:
mode:
authorJonathan Gray2003-05-19 08:04:47 +0000
committerJonathan Gray2003-05-19 08:04:47 +0000
commit6cb61537f4749e83b7bbdd2294a28f07eb6eeb15 (patch)
treebe138c109324aa1a0ebf94c7ee733ac48da87e79 /scumm/sound.cpp
parent29fb3e308f32c853155c9400bc9df7d850c9b9b2 (diff)
downloadscummvm-rg350-6cb61537f4749e83b7bbdd2294a28f07eb6eeb15.tar.gz
scummvm-rg350-6cb61537f4749e83b7bbdd2294a28f07eb6eeb15.tar.bz2
scummvm-rg350-6cb61537f4749e83b7bbdd2294a28f07eb6eeb15.zip
enable midi for non puttdemo humongous games. need to properly return the result of whether music is running though...
svn-id: r7673
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r--scumm/sound.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 7210d989bd..07b93c0486 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -234,7 +234,7 @@ void Sound::playSound(int soundID) {
_scumm->_mixer->playRaw(NULL, sound, size, rate, flags, soundID);
return;
}
- // XMI MIDI
+ // XMIDI
else if ((READ_UINT32_UNALIGNED(ptr) == MKID('MIDI')) && (_scumm->_features & GF_HUMONGOUS)) {
// skip HSHD
ptr += 8 + READ_BE_UINT32_UNALIGNED(ptr+12);
@@ -244,8 +244,8 @@ void Sound::playSound(int soundID) {
size = READ_BE_UINT32_UNALIGNED(ptr+4) - 8;
ptr += 8; // don't need SDAT block anymore
- // XMI playing stuff goes here
- // ptr should be pointing to XMI file in memory
+ // XMIDI playing stuff goes here
+ // ptr should be pointing to XMIDI file in memory
// HACK (Jamieson630): Just to see if it works.
static MidiParser *parser = 0;
@@ -633,6 +633,14 @@ int Sound::isSoundRunning(int sound) {
if (sound == _scumm->current_cd_sound)
return pollCD();
+ if (_scumm->_features & GF_HUMONGOUS) {
+ if (sound == -2) {
+ return isSfxFinished();
+ // FIXME are we playing music?
+ } else if (sound == -1)
+ return 1;
+ }
+
_scumm->_mixer->stopID(sound);
i = _soundQue2Pos;