diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | engines/sword1/control.cpp | 5 | ||||
-rw-r--r-- | engines/sword1/sound.cpp | 10 |
3 files changed, 17 insertions, 1 deletions
@@ -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) { |