aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--engines/sword1/control.cpp5
-rw-r--r--engines/sword1/sound.cpp10
3 files changed, 17 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index f2779f7ddb..5563f71398 100644
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,9 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
- Added support for music and sound effects in the the Amiga version of
The Secret of Monkey Island.
+ Broken Sword 1:
+ - Fixed missing background sound effects in some rooms.
+
1.0.0 (2009-10-XX)
New Ports:
- Added MotoEZX and MotoMAGX ports.
diff --git a/engines/sword1/control.cpp b/engines/sword1/control.cpp
index 09d2197f2a..e5f3b9a04c 100644
--- a/engines/sword1/control.cpp
+++ b/engines/sword1/control.cpp
@@ -416,7 +416,10 @@ uint8 Control::runPanel(void) {
_system->copyRectToScreen(_screenBuf, 640, 0, 0, 640, 480);
free(_screenBuf);
_mouse->controlPanel(false);
- _music->startMusic(Logic::_scriptVars[CURRENT_MUSIC], 1);
+ if (retVal == CONTROL_NOTHING_DONE) {
+ _music->startMusic(Logic::_scriptVars[CURRENT_MUSIC], 1);
+ _sound->newScreen(Logic::_scriptVars[SCREEN]);
+ }
_panelShown = false;
return retVal;
}
diff --git a/engines/sword1/sound.cpp b/engines/sword1/sound.cpp
index 6ad946b28d..69db0ca40f 100644
--- a/engines/sword1/sound.cpp
+++ b/engines/sword1/sound.cpp
@@ -226,6 +226,16 @@ void Sound::newScreen(uint32 screen) {
closeCowSystem();
initCowSystem();
}
+
+ // Start the room's looping sounds.
+ for (uint16 cnt = 0; cnt < TOTAL_FX_PER_ROOM; cnt++) {
+ uint16 fxNo = _roomsFixedFx[screen][cnt];
+ if (fxNo) {
+ if (_fxList[fxNo].type == FX_LOOP)
+ addToQueue(fxNo);
+ } else
+ break;
+ }
}
void Sound::quitScreen(void) {