aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-02-16 06:00:46 +0000
committerTravis Howell2006-02-16 06:00:46 +0000
commit448ea4f16e314e9204f21a18e5f9e114478c7e88 (patch)
treee72f048bc78cbfaea4284766cd613c6b5ba0cbc2
parent5f72260f201a6b63223a3cefb2829f91a9c11324 (diff)
downloadscummvm-rg350-448ea4f16e314e9204f21a18e5f9e114478c7e88.tar.gz
scummvm-rg350-448ea4f16e314e9204f21a18e5f9e114478c7e88.tar.bz2
scummvm-rg350-448ea4f16e314e9204f21a18e5f9e114478c7e88.zip
Only DOS & Macintosh versions of HE60/61 games require XMIDI support
svn-id: r20720
-rw-r--r--engines/scumm/scumm.cpp6
-rw-r--r--engines/scumm/sound.cpp21
2 files changed, 12 insertions, 15 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 7781a11df2..337261ee45 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -2318,15 +2318,15 @@ void ScummEngine::setupMusic(int midi) {
_musicEngine = new Player_V2A(this);
} else if ((_platform == Common::kPlatformAmiga) && (_version == 3)) {
_musicEngine = new Player_V3A(this);
- } else if ((_platform == Common::kPlatformAmiga) && (_version < 5)) {
+ } else if ((_platform == Common::kPlatformAmiga) && (_version <= 4)) {
_musicEngine = NULL;
} else if (_gameId == GID_MANIAC && (_version == 1)) {
_musicEngine = new Player_V1(this, midiDriver != MD_PCSPK);
} else if (_version <= 2) {
_musicEngine = new Player_V2(this, midiDriver != MD_PCSPK);
- } else if ((_musicType == MDT_PCSPK) && ((_version > 2) && (_version < 5))) {
+ } else if ((_musicType == MDT_PCSPK) && ((_version > 2) && (_version <= 4))) {
_musicEngine = new Player_V2(this, midiDriver != MD_PCSPK);
- } else if (_version > 2 && _heversion <= 61) {
+ } else if (_version >= 3 && _heversion <= 61 && _platform != Common::kPlatform3DO) {
MidiDriver *nativeMidiDriver = 0;
MidiDriver *adlibMidiDriver = 0;
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 9be09e7b38..9b69f2f015 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -732,14 +732,14 @@ int Sound::isSoundRunning(int sound) const {
}
} else if (_vm->_heversion >= 60) {
if (sound == -2) {
- return !isSfxFinished();
+ return _vm->_mixer->getSoundID(_heSoundChannels[0]);
} else if (sound == -1) {
- // getSoundStatus(), with a -1, will return the
- // ID number of the first active music it finds.
- if (_currentMusic)
- return (_vm->_mixer->isSoundIDActive(_currentMusic) ? _currentMusic : 0);
- else if (_vm->_imuse)
- return (_vm->_imuse->getSoundStatus(sound));
+ if (_vm->_platform == Common::kPlatform3DO) {
+ return _vm->_mixer->isSoundIDActive(_currentMusic);
+ } else {
+ if (_vm->_imuse)
+ return _vm->_imuse->getSoundStatus(_currentMusic);
+ }
}
}
@@ -825,12 +825,9 @@ void Sound::stopSound(int sound) {
}
} else if (_vm->_heversion >= 60) {
if (sound == -2) {
+ sound = _heChannel[0].sound;
} else if (sound == -1) {
- // Stop current music
- if (_currentMusic)
- _vm->_mixer->stopID(_currentMusic);
- else if (_vm->_imuse)
- _vm->_imuse->stopSound(_vm->_imuse->getSoundStatus(-1));
+ sound = _currentMusic;
}
}