From 5870bebd6d4bf659c4a405b3a0be895ff42f93b0 Mon Sep 17 00:00:00 2001 From: Paweł Kołodziejski Date: Mon, 14 Jan 2008 14:48:35 +0000 Subject: fixed setting hookId for music, it doesn't worked before svn-id: r30481 --- engines/scumm/imuse_digi/dimuse.h | 1 + engines/scumm/imuse_digi/dimuse_music.cpp | 4 ++-- engines/scumm/imuse_digi/dimuse_track.cpp | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/engines/scumm/imuse_digi/dimuse.h b/engines/scumm/imuse_digi/dimuse.h index 372bfb7ab4..6abdb80cf7 100644 --- a/engines/scumm/imuse_digi/dimuse.h +++ b/engines/scumm/imuse_digi/dimuse.h @@ -149,6 +149,7 @@ private: int getSoundIdByName(const char *soundName); void fadeOutMusic(int fadeDelay); + void setHookIdForMusic(int hookId); Track *cloneToFadeOutTrack(Track *track, int fadeDelay); void setFtMusicState(int stateId); diff --git a/engines/scumm/imuse_digi/dimuse_music.cpp b/engines/scumm/imuse_digi/dimuse_music.cpp index 9efb86971f..db33f4a355 100644 --- a/engines/scumm/imuse_digi/dimuse_music.cpp +++ b/engines/scumm/imuse_digi/dimuse_music.cpp @@ -298,11 +298,11 @@ void IMuseDigital::playComiMusic(const char *songName, const imuseComiTable *tab case 0: break; case 8: - setHookId(table->soundId, table->hookId); + setHookIdForMusic(table->hookId); break; case 9: _stopingSequence = true; - setHookId(table->soundId, table->hookId); + setHookIdForMusic(table->hookId); break; case 2: if (table->filename[0] == 0) { diff --git a/engines/scumm/imuse_digi/dimuse_track.cpp b/engines/scumm/imuse_digi/dimuse_track.cpp index b2037d83fc..7421244662 100644 --- a/engines/scumm/imuse_digi/dimuse_track.cpp +++ b/engines/scumm/imuse_digi/dimuse_track.cpp @@ -280,6 +280,18 @@ void IMuseDigital::fadeOutMusic(int fadeDelay) { } } +void IMuseDigital::setHookIdForMusic(int hookId) { + Common::StackLock lock(_mutex, "IMuseDigital::setHookIdForMusic()"); + debug(5, "IMuseDigital::setHookIdForMusic"); + + for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { + Track *track = _track[l]; + if (track->used && !track->toBeRemoved && (track->volGroupId == IMUSE_VOLGRP_MUSIC)) { + track->curHookId = hookId; + } + } +} + IMuseDigital::Track *IMuseDigital::cloneToFadeOutTrack(Track *track, int fadeDelay) { assert(track); Track *fadeTrack = 0; -- cgit v1.2.3