[Scummvm-cvs-logs] SF.net SVN: scummvm: [26257] scummvm/trunk/engines/scumm
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Tue Mar 20 20:06:38 CET 2007
Revision: 26257
http://scummvm.svn.sourceforge.net/scummvm/?rev=26257&view=rev
Author: fingolfin
Date: 2007-03-20 12:06:37 -0700 (Tue, 20 Mar 2007)
Log Message:
-----------
Undoing my previous (upon closer review, bogus) change to IMuseDigital::refreshScripts -- the problem is a bit deeper. Sorry for the noise :-(
Modified Paths:
--------------
scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
scummvm/trunk/engines/scumm/scumm.cpp
Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp 2007-03-20 19:04:51 UTC (rev 26256)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp 2007-03-20 19:06:37 UTC (rev 26257)
@@ -189,20 +189,16 @@
}
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);
Modified: scummvm/trunk/engines/scumm/scumm.cpp
===================================================================
--- scummvm/trunk/engines/scumm/scumm.cpp 2007-03-20 19:04:51 UTC (rev 26256)
+++ scummvm/trunk/engines/scumm/scumm.cpp 2007-03-20 19:06:37 UTC (rev 26257)
@@ -2088,6 +2088,7 @@
ScummEngine_v6::scummLoop_handleSound();
if (_imuseDigital) {
_imuseDigital->flushTracks();
+ // In CoMI and the full (non-demo) version of The Dig, also invoke IMuseDigital::refreshScripts
if ( ((_game.id == GID_DIG) && (!(_game.features & GF_DEMO))) || (_game.id == GID_CMI) )
_imuseDigital->refreshScripts();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list