aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse_digi
diff options
context:
space:
mode:
authorMax Horn2007-03-20 19:06:37 +0000
committerMax Horn2007-03-20 19:06:37 +0000
commitd0c30bfd9ab8a9411d3c86ee0a3fce0714f6c993 (patch)
tree770a2c84277dfc31fcbc07d7156c92ef857c374d /engines/scumm/imuse_digi
parent2c0f341ef8164ea9da2788762a3f727fe20c4375 (diff)
downloadscummvm-rg350-d0c30bfd9ab8a9411d3c86ee0a3fce0714f6c993.tar.gz
scummvm-rg350-d0c30bfd9ab8a9411d3c86ee0a3fce0714f6c993.tar.bz2
scummvm-rg350-d0c30bfd9ab8a9411d3c86ee0a3fce0714f6c993.zip
Undoing my previous (upon closer review, bogus) change to IMuseDigital::refreshScripts -- the problem is a bit deeper. Sorry for the noise :-(
svn-id: r26257
Diffstat (limited to 'engines/scumm/imuse_digi')
-rw-r--r--engines/scumm/imuse_digi/dimuse_script.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/engines/scumm/imuse_digi/dimuse_script.cpp b/engines/scumm/imuse_digi/dimuse_script.cpp
index 4da854ad19..1a257c905f 100644
--- a/engines/scumm/imuse_digi/dimuse_script.cpp
+++ b/engines/scumm/imuse_digi/dimuse_script.cpp
@@ -189,20 +189,16 @@ void IMuseDigital::flushTracks() {
}
void IMuseDigital::refreshScripts() {
- bool found = false;
+ Common::StackLock lock(_mutex, "IMuseDigital::refreshScripts()");
debug(5, "refreshScripts()");
- {
- Common::StackLock lock(_mutex, "IMuseDigital::refreshScripts()");
- for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
- Track *track = _track[l];
- if (track->used && !track->toBeRemoved && (track->volGroupId == IMUSE_VOLGRP_MUSIC)) {
- found = true;
- }
+ bool found = false;
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ Track *track = _track[l];
+ if (track->used && !track->toBeRemoved && (track->volGroupId == IMUSE_VOLGRP_MUSIC)) {
+ found = true;
}
}
-
- // Make sure parseScriptCmds is *not* called while the mutex is locked
- // (else race conditions can occur).
+
if (!found && (_curMusicSeq != 0)) {
debug(5, "refreshScripts() Start Sequence");
parseScriptCmds(0x1001, 0, 0, 0, 0, 0, 0, 0);