aboutsummaryrefslogtreecommitdiff
path: root/scumm/sound.cpp
diff options
context:
space:
mode:
authorJames Brown2002-12-27 11:47:00 +0000
committerJames Brown2002-12-27 11:47:00 +0000
commitd3ade5b23e253c006eb5deca143a02e502e2cd7c (patch)
tree14c9d75698cca6783301a3a202a74f50a760eebc /scumm/sound.cpp
parent56b6b10301f56a06d0e5d84df5a952b7581f06dc (diff)
downloadscummvm-rg350-d3ade5b23e253c006eb5deca143a02e502e2cd7c.tar.gz
scummvm-rg350-d3ade5b23e253c006eb5deca143a02e502e2cd7c.tar.bz2
scummvm-rg350-d3ade5b23e253c006eb5deca143a02e502e2cd7c.zip
Add skeleton music support for CMI (but codec not implemented)
svn-id: r6193
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r--scumm/sound.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 9f23554205..d12e1bfd4d 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -961,10 +961,14 @@ void Sound::playBundleMusic(char * song) {
if (_nameBundleMusic == NULL) {
// FIXME: we have MUSDISK1.BUN and MUSDISK2.BUN in COMI.
- if (_scumm->_bundle->openMusicFile("digmusic.bun", _scumm->getGameDataPath()) == false) {
- return;
+ if (_scumm->_gameId == GID_CMI) {
+ printf("Opening bundle\n");
+ if (_scumm->_bundle->openMusicFile("musdisk1.bun", _scumm->getGameDataPath()) == false)
+ return;
+ } else {
+ if (_scumm->_bundle->openMusicFile("digmusic.bun", _scumm->getGameDataPath()) == false)
+ return;
}
-
_musicBundleBufFinal = (byte*)malloc(OUTPUT_SIZE);
_musicBundleBufOutput = (byte*)malloc(10 * 0x2000);
_currentSampleBundleMusic = 0;
@@ -974,7 +978,7 @@ void Sound::playBundleMusic(char * song) {
_musicBundleToBeRemoved = false;
_musicBundleToBeChanged = false;
_bundleMusicTrack = -1;
- _numberSamplesBundleMusic = _scumm->_bundle->getNumberOfMusicSamplesByName(song);
+ _numberSamplesBundleMusic = _scumm->_bundle->getNumberOfMusicSamplesByName(song, (_scumm->_gameId == GID_CMI));
_nameBundleMusic = song;
_scumm->_timer->installProcedure(&music_handler, 1000);
return;
@@ -1023,7 +1027,7 @@ void Sound::bundleMusicHandler(Scumm * scumm) {
if (_musicBundleToBeChanged == true) {
_nameBundleMusic = _newNameBundleMusic;
- _numberSamplesBundleMusic = _scumm->_bundle->getNumberOfMusicSamplesByName(_nameBundleMusic);
+ _numberSamplesBundleMusic = _scumm->_bundle->getNumberOfMusicSamplesByName(_nameBundleMusic, (_scumm->_gameId == GID_CMI));
_currentSampleBundleMusic = 0;
_offsetSampleBundleMusic = 0;
_offsetBufBundleMusic = 0;
@@ -1033,7 +1037,7 @@ void Sound::bundleMusicHandler(Scumm * scumm) {
ptr = _musicBundleBufOutput;
for (k = 0, l = _currentSampleBundleMusic; l < num; k++) {
- length = _scumm->_bundle->decompressMusicSampleByName(_nameBundleMusic, l, (_musicBundleBufOutput + ((k * 0x2000) + _offsetBufBundleMusic)));
+ length = _scumm->_bundle->decompressMusicSampleByName(_nameBundleMusic, l, (_musicBundleBufOutput + ((k * 0x2000) + _offsetBufBundleMusic)), (_scumm->_gameId == GID_CMI));
_offsetSampleBundleMusic += length;
if (l == 0) {