aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound
diff options
context:
space:
mode:
authormd52011-02-25 21:45:39 +0200
committermd52011-02-25 21:45:39 +0200
commit8024f406387a748718496e9592ffccb3a6a51d26 (patch)
tree5addeb4614e453fbe60d28b1354a8f7993efe288 /engines/sci/sound
parent63cc9de1df7326bf92da3df7d2e38f86a43be506 (diff)
downloadscummvm-rg350-8024f406387a748718496e9592ffccb3a6a51d26.tar.gz
scummvm-rg350-8024f406387a748718496e9592ffccb3a6a51d26.tar.bz2
scummvm-rg350-8024f406387a748718496e9592ffccb3a6a51d26.zip
SCI: Changed the fix for the intro of Longbow (bug #3044844) into a hack for that scene. Fixes the freeze in LSL6 (bug #3192166). Fading in KQ5 is unaffected by this.
Diffstat (limited to 'engines/sci/sound')
-rw-r--r--engines/sci/sound/soundcmd.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index 0017fe0c0b..1e6d0aef87 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -445,13 +445,17 @@ void SoundCommandParser::processUpdateCues(reg_t obj) {
if (musicSlot->fadeCompleted) {
musicSlot->fadeCompleted = false;
- if (_soundVersion <= SCI_VERSION_0_LATE) {
- // We need signal for sci0 at least in iceman as well (room 14, fireworks)
- // Note: We should not set the signal here when fading is done in later
- // games. This fixes the dialog boxes disappearing too quickly in the
- // intro of Longbow (bug #3044844). It also fixes the music not fading out
- // when the bandits leave the temple in KQ5 (bug #3037594).
+ // We need signal for sci0 at least in iceman as well (room 14,
+ // fireworks).
+ // It is also needed in other games, e.g. LSL6 when talking to the
+ // receptionist (bug #3192166).
+ if (g_sci->getGameId() == GID_LONGBOW && g_sci->getEngineState()->currentRoomNumber() == 95) {
+ // HACK: Don't set a signal here in the intro of Longbow, as that makes some dialog
+ // boxes disappear too soon (bug #3044844).
+ } else {
writeSelectorValue(_segMan, obj, SELECTOR(signal), SIGNAL_OFFSET);
+ }
+ if (_soundVersion <= SCI_VERSION_0_LATE) {
processStopSound(obj, false);
} else {
if (musicSlot->stopAfterFading)