diff options
| -rw-r--r-- | scumm/imuse_digi/dimuse_track.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scumm/imuse_digi/dimuse_track.cpp b/scumm/imuse_digi/dimuse_track.cpp index 38de38fd72..7e8711f6c0 100644 --- a/scumm/imuse_digi/dimuse_track.cpp +++ b/scumm/imuse_digi/dimuse_track.cpp @@ -75,8 +75,11 @@ void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, } Track *track = _track[l]; - flushTracks(); - assert(!track->used); + while (track->used) { + // The designated track is not yet available. So, we call flushTracks() + // to get it processed (and thus made ready for us). + flushTracks(); + } track->pan = 64; track->vol = volume * 1000; track->volFadeDest = 0; |
