aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-11-01 18:52:21 +0000
committerTorbjörn Andersson2005-11-01 18:52:21 +0000
commit934fe916205c15eab37ac866c83156609205574e (patch)
tree6459fa55d529f036f6f9cc60a3e50be5bbf101be
parentc3ef43fd6bf00f1285c3ba067e9f686559656eac (diff)
downloadscummvm-rg350-934fe916205c15eab37ac866c83156609205574e.tar.gz
scummvm-rg350-934fe916205c15eab37ac866c83156609205574e.tar.bz2
scummvm-rg350-934fe916205c15eab37ac866c83156609205574e.zip
Clear the sound queue when starting a cutscene. They usually (always?)
herald a change of scene, so it should be ok. And it keeps the crackling fire at the end from playing over the end credits and the End of Game dialog afterwards. (If we change the sound engine to do looping manually, instead of letting the mixer handle it, the looping will not be seamless and we'll still get the crackling fire over the dialog after the credits.) This change is probably safe for 0.8.1, assuming we make one. svn-id: r19387
-rw-r--r--sword1/logic.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/sword1/logic.cpp b/sword1/logic.cpp
index de12a60c1e..886bc59448 100644
--- a/sword1/logic.cpp
+++ b/sword1/logic.cpp
@@ -942,6 +942,10 @@ int Logic::fnSetPaletteToCut(Object *cpt, int32 id, int32 c, int32 d, int32 e, i
int Logic::fnPlaySequence(Object *cpt, int32 id, int32 sequenceId, int32 d, int32 e, int32 f, int32 z, int32 x) {
+ // A cutscene usually (always?) means the room will change. In the
+ // meantime, we don't want any looping sound effects still playing.
+ _sound->quitScreen();
+
if ((SwordEngine::_systemVars.cutscenePackVersion == 1) && (sequenceId == SEQ_CREDITS)) {
CreditsPlayer player(_system, _mixer);
player.play();