diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/imuse_digi/dimuse.cpp | 3 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse.h | 1 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse_script.cpp | 3 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse_sndmgr.h | 2 | ||||
-rw-r--r-- | scumm/smush/smush_player.cpp | 3 |
5 files changed, 8 insertions, 4 deletions
diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp index 73beb1a9d2..48c4f51213 100644 --- a/scumm/imuse_digi/dimuse.cpp +++ b/scumm/imuse_digi/dimuse.cpp @@ -106,7 +106,7 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { MKLINE(Track, started, sleByte, VER(31)), MKLINE(Track, priority, sleInt32, VER(31)), MKLINE(Track, regionOffset, sleInt32, VER(31)), - MKLINE(Track, trackOffset, sleInt32, VER(31)), + MK_OBSOLETE(Track, trackOffset, sleInt32, VER(31), VER(31)), MKLINE(Track, dataOffset, sleInt32, VER(31)), MKLINE(Track, curRegion, sleInt32, VER(31)), MKLINE(Track, curHookId, sleInt32, VER(31)), @@ -125,6 +125,7 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { ser->_load_ref = NULL; ser->saveLoadEntries(this, mainEntries); + for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) { Track *track = _track[l]; ser->saveLoadEntries(track, trackEntries); diff --git a/scumm/imuse_digi/dimuse.h b/scumm/imuse_digi/dimuse.h index c73c6abd13..4c214e3e8b 100644 --- a/scumm/imuse_digi/dimuse.h +++ b/scumm/imuse_digi/dimuse.h @@ -62,7 +62,6 @@ private: bool souStream; int32 priority; int32 regionOffset; - int32 trackOffset; int32 dataOffset; int32 curRegion; int32 curHookId; diff --git a/scumm/imuse_digi/dimuse_script.cpp b/scumm/imuse_digi/dimuse_script.cpp index 72e77d655c..c372c9c034 100644 --- a/scumm/imuse_digi/dimuse_script.cpp +++ b/scumm/imuse_digi/dimuse_script.cpp @@ -160,6 +160,7 @@ void IMuseDigital::parseScriptCmds(int a, int b, int c, int d, int e, int f, int } void IMuseDigital::flushTracks() { + debug(5, "flushTracks()"); for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) { Track *track = _track[l]; if (track->used && track->readyToRemove) { @@ -180,6 +181,7 @@ void IMuseDigital::flushTracks() { } void IMuseDigital::refreshScripts() { + debug(5, "refreshScripts()"); bool found = false; for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { Track *track = _track[l]; @@ -189,6 +191,7 @@ void IMuseDigital::refreshScripts() { } if (!found && (_curMusicSeq != 0)) { + debug(5, "refreshScripts() Start Sequence"); parseScriptCmds(0x1001, 0, 0, 0, 0, 0, 0, 0); } } diff --git a/scumm/imuse_digi/dimuse_sndmgr.h b/scumm/imuse_digi/dimuse_sndmgr.h index e4043fb56c..732615dce9 100644 --- a/scumm/imuse_digi/dimuse_sndmgr.h +++ b/scumm/imuse_digi/dimuse_sndmgr.h @@ -34,7 +34,7 @@ class BundleMgr; class ImuseDigiSndMgr { public: -#define MAX_IMUSE_SOUNDS 10 +#define MAX_IMUSE_SOUNDS 24 #define IMUSE_RESOURCE 1 #define IMUSE_BUNDLE 2 diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index 08c2e5c84f..b20aac5322 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -1134,7 +1134,7 @@ void SmushPlayer::play(const char *filename, const char *directory, int32 offset _middleAudio = true; } - while (true) { + for (;;) { _vm->parseEvents(); _vm->processKbd(true); if (_updateNeeded) { @@ -1156,6 +1156,7 @@ void SmushPlayer::play(const char *filename, const char *directory, int32 offset if (_vm->_videoFinished || _vm->_quit || _vm->_saveLoadFlag) break; _vm->_system->delay_msecs(10); + _vm->_imuseDigital->flushTracks(); }; release(); |