aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-09-07 16:32:23 +0000
committerMax Horn2003-09-07 16:32:23 +0000
commit38402315d5cb34b610db2eaf9025c307ed8ba374 (patch)
treeaba197a37ce66abbd704aa6e220680f92b6f6410
parent17b4ce1c59b9b671aee55b953810874e33539be9 (diff)
downloadscummvm-rg350-38402315d5cb34b610db2eaf9025c307ed8ba374.tar.gz
scummvm-rg350-38402315d5cb34b610db2eaf9025c307ed8ba374.tar.bz2
scummvm-rg350-38402315d5cb34b610db2eaf9025c307ed8ba374.zip
make some first use of Scumm::_musicEngine; cleanup; also some changes which *might* cause some breakage, but if they don't, we can build on them to simplify Sound::playSound a little (mainly by removing lots of 'return' statements)
svn-id: r10068
-rw-r--r--scumm/sound.cpp54
1 files changed, 19 insertions, 35 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index fb393f0683..740bcea770 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -258,6 +258,7 @@ void Sound::playSound(int soundID) {
return;
}
+/*
// XMIDI
else if ((READ_UINT32(ptr) == MKID('MIDI')) && (_scumm->_features & GF_HUMONGOUS)) {
// Pass XMIDI on to IMuse unprocessed.
@@ -267,6 +268,7 @@ void Sound::playSound(int soundID) {
// played as MIDI, just to make perhaps the later use
// of WA possible (see "else if" with GF_OLD256 below)
}
+*/
// Support for sampled sound effects in Monkey Island 1 and 2
else if (READ_UINT32(ptr) == MKID('SBL ')) {
debug(2, "Using SBL sound effect");
@@ -325,7 +327,8 @@ void Sound::playSound(int soundID) {
memcpy(sound, ptr + 33, size);
_scumm->_mixer->playRaw(NULL, sound, size, rate, flags, soundID);
return;
- } else if (_scumm->_features & GF_FMTOWNS) {
+ }
+ else if (_scumm->_features & GF_FMTOWNS) {
size = READ_LE_UINT32(ptr);
rate = 11025;
int type = *(ptr + 0x0D);
@@ -405,8 +408,7 @@ void Sound::playSound(int soundID) {
}
return;
}
-
- if ((_scumm->_gameId == GID_LOOM) && (_scumm->_features & GF_MACINTOSH)) {
+ else if ((_scumm->_gameId == GID_LOOM) && (_scumm->_features & GF_MACINTOSH)) {
// Mac version of Loom uses yet another sound format
/*
playSound #9 (room 70)
@@ -430,21 +432,16 @@ void Sound::playSound(int soundID) {
*/
return;
}
-
-
- if ((_scumm->_features & GF_MACINTOSH) && (_scumm->_gameId == GID_INDY3)) {
- if (ptr[26] == 00) {
- size = READ_BE_UINT16(ptr + 12);
- rate = 3579545 / READ_BE_UINT16(ptr + 20);
- sound = (char *)malloc(size);
- int vol = ptr[24] * 4;
- memcpy(sound,ptr + READ_BE_UINT16(ptr + 8), size);
- _scumm->_mixer->playRaw(NULL, sound, size, rate, SoundMixer::FLAG_AUTOFREE, soundID, vol, 0);
- return;
- }
+ else if ((_scumm->_features & GF_MACINTOSH) && (_scumm->_gameId == GID_INDY3) && (ptr[26] == 0)) {
+ size = READ_BE_UINT16(ptr + 12);
+ rate = 3579545 / READ_BE_UINT16(ptr + 20);
+ sound = (char *)malloc(size);
+ int vol = ptr[24] * 4;
+ memcpy(sound,ptr + READ_BE_UINT16(ptr + 8), size);
+ _scumm->_mixer->playRaw(NULL, sound, size, rate, SoundMixer::FLAG_AUTOFREE, soundID, vol, 0);
+ return;
}
-
- if ((_scumm->_features & GF_AMIGA) && (_scumm->_version <= 2) && READ_BE_UINT16(ptr + 14) == 0x0880) {
+ else if ((_scumm->_features & GF_AMIGA) && (_scumm->_version <= 2) && READ_BE_UINT16(ptr + 14) == 0x0880) {
size = READ_BE_UINT16(ptr + 6);
int start = READ_BE_UINT16(ptr + 8);
start += 10;
@@ -467,7 +464,7 @@ void Sound::playSound(int soundID) {
_scumm->_mixer->playRaw(NULL, sound, size, rate, SoundMixer::FLAG_AUTOFREE, soundID, vol, 0);
return;
}
-
+
if (_scumm->_gameId == GID_MONKEY_VGA || _scumm->_gameId == GID_MONKEY_EGA) {
// Sound is currently not supported at all in the amiga versions of these games
if (_scumm->_features & GF_AMIGA)
@@ -483,15 +480,8 @@ void Sound::playSound(int soundID) {
}
}
- if (_scumm->_playerV2) {
- _scumm->_playerV2->startSound(soundID);
- }
-
- if (_scumm->_playerV3A)
- _scumm->_playerV3A->startSound(soundID);
-
- if (_scumm->_imuse) {
- _scumm->_imuse->startSound(soundID);
+ if (_scumm->_musicEngine) {
+ _scumm->_musicEngine->startSound(soundID);
}
}
@@ -759,14 +749,8 @@ void Sound::stopSound(int a) {
if (_scumm->_features & GF_FMTOWNS) {
_scumm->_mixer->stopID(a);
- } else if (_scumm->_imuseDigital) {
- _scumm->_imuseDigital->stopSound(a);
- } else if (_scumm->_imuse) {
- _scumm->_imuse->stopSound(a);
- } else if (_scumm->_playerV2) {
- _scumm->_playerV2->stopSound (a);
- } else if (_scumm->_playerV3A) {
- _scumm->_playerV3A->stopSound(a);
+ } else if (_scumm->_musicEngine) {
+ _scumm->_musicEngine->stopSound(a);
}
for (i = 0; i < 10; i++)