diff options
author | Paweł Kołodziejski | 2003-01-26 14:26:03 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2003-01-26 14:26:03 +0000 |
commit | dc7a8761363b348a5bc06102678d94628f2c9126 (patch) | |
tree | b9a80932ac80a43728ad965b46fd93ebe26b7edc | |
parent | 00f7e562fd9f7b17701d5ab22aa57bb0174f8549 (diff) | |
download | scummvm-rg350-dc7a8761363b348a5bc06102678d94628f2c9126.tar.gz scummvm-rg350-dc7a8761363b348a5bc06102678d94628f2c9126.tar.bz2 scummvm-rg350-dc7a8761363b348a5bc06102678d94628f2c9126.zip |
added "implementation" of imGetMusicPosition
svn-id: r6550
-rw-r--r-- | scumm/script_v8.cpp | 3 | ||||
-rw-r--r-- | scumm/sound.cpp | 4 | ||||
-rw-r--r-- | scumm/sound.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index 2fd6a1e31f..ce30b23b7d 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1661,7 +1661,8 @@ void Scumm_v8::o8_kernelGetFunctions() break; case 0xE1: // imGetMusicPosition warning("o8_kernelGetFunctions: imGetMusicPosition(stub)\n"); - push(0xFFFFF); + // FIXME - get this stuff to be properly implemented + push(_sound->_bundleMusicPosition); break; case 0xE2: // musicLipSyncWidth case 0xE3: // musicLipSyncHeight diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 4223c5623d..5d4282e5b8 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -987,6 +987,7 @@ void Sound::playBundleMusic(char * song) { _currentSampleBundleMusic = 0; _offsetSampleBundleMusic = 0; _offsetBufBundleMusic = 0; + _bundleMusicPosition = 0; _pauseBundleMusic = false; _musicBundleToBeRemoved = false; _musicBundleToBeChanged = false; @@ -1045,6 +1046,7 @@ void Sound::bundleMusicHandler(Scumm * scumm) { _offsetSampleBundleMusic = 0; _offsetBufBundleMusic = 0; _musicBundleToBeChanged = false; + _bundleMusicPosition = 0; } ptr = _musicBundleBufOutput; @@ -1110,6 +1112,7 @@ void Sound::bundleMusicHandler(Scumm * scumm) { _currentSampleBundleMusic = 0; _offsetSampleBundleMusic = 0; _offsetBufBundleMusic = 0; + _bundleMusicPosition = 0; } ptr = _musicBundleBufFinal; @@ -1127,6 +1130,7 @@ void Sound::bundleMusicHandler(Scumm * scumm) { return; } + _bundleMusicPosition += final_size; if (_bundleMusicTrack == -1) { _bundleMusicTrack = _scumm->_mixer->playStream(NULL, _scumm->_mixer->_beginSlots - 1, buffer, final_size, rate, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_16BITS | SoundMixer::FLAG_STEREO, -1, 2000000); diff --git a/scumm/sound.h b/scumm/sound.h index 7ef1a9538f..db759c316c 100644 --- a/scumm/sound.h +++ b/scumm/sound.h @@ -130,6 +130,7 @@ enum { public: int _current_cache; + int32 _bundleMusicPosition; int _talkChannel; /* Mixer channel actor is talking on */ int _cd_timer_value; |