aboutsummaryrefslogtreecommitdiff
path: root/scumm/imuse_digi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/imuse_digi.cpp')
-rw-r--r--scumm/imuse_digi.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/scumm/imuse_digi.cpp b/scumm/imuse_digi.cpp
index 472b85a70c..2eaaf4739f 100644
--- a/scumm/imuse_digi.cpp
+++ b/scumm/imuse_digi.cpp
@@ -1407,7 +1407,11 @@ void IMuseDigital::bundleMusicHandler() {
return;
}
- _bundleSongPosInMs = (_bundleMusicPosition * 5) / (_outputMixerSize / 200);
+ // Compute the position in the song in milliseconds (in brief: _outputMixerSize
+ // gives the number of bytes used for one second, so if we compute the value of
+ // (_bundleMusicPosition / _outputMixerSize), that is an offset in seconds;
+ // multiplying that by 1000 gives milliseconds).
+ _bundleSongPosInMs = 1000 * _bundleMusicPosition / _outputMixerSize;
_bundleMusicPosition += final_size;
if (!_bundleMusicTrack.isActive())
_scumm->_mixer->newStream(&_bundleMusicTrack, rate, SoundMixer::FLAG_16BITS | SoundMixer::FLAG_STEREO, 300000);