aboutsummaryrefslogtreecommitdiff
path: root/engines/lure/scripts.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2007-11-18 05:11:38 +0000
committerPaul Gilbert2007-11-18 05:11:38 +0000
commiteadb5b7292dc2d62e79e01834ec671ac13ed5d57 (patch)
treec7ae3fc0891fcda8b7e46ac9f8d52a8265f9d092 /engines/lure/scripts.cpp
parent4d214711550eb51114c70b06a96d725c671ed204 (diff)
downloadscummvm-rg350-eadb5b7292dc2d62e79e01834ec671ac13ed5d57.tar.gz
scummvm-rg350-eadb5b7292dc2d62e79e01834ec671ac13ed5d57.tar.bz2
scummvm-rg350-eadb5b7292dc2d62e79e01834ec671ac13ed5d57.zip
Added sounds to endgame animation sequence
svn-id: r29548
Diffstat (limited to 'engines/lure/scripts.cpp')
-rw-r--r--engines/lure/scripts.cpp34
1 files changed, 26 insertions, 8 deletions
diff --git a/engines/lure/scripts.cpp b/engines/lure/scripts.cpp
index 796c169369..49dfb76433 100644
--- a/engines/lure/scripts.cpp
+++ b/engines/lure/scripts.cpp
@@ -46,6 +46,13 @@ static const uint16 dealloc_list_3[] = {0x3EF, 0x3E9, 0x3EB, 0x3EC, 0x3ED, 0x3EE
static const uint16 *hotspot_dealloc_set[4] = {&dealloc_list_1[0], &dealloc_list_2[0],
&dealloc_list_3[1], &dealloc_list_3[0]};
+// Details used for co-ordination of sounds during the endgame sequence
+static const AnimSoundSequence soundList[] = {
+ {9, 2, 0}, {27, 5, 0}, {24, 3, 0}, {24, 1, 0}, {3, 1, 1}, {3, 1, 2}, {3, 1, 3},
+ {3, 1, 4}, {4, 1, 5}, {7, 4, 6}, {31, 6, 0},
+ {0, 0, 0}
+};
+
/*------------------------------------------------------------------------*/
/*- Script Method List -*/
/*- -*/
@@ -188,25 +195,36 @@ void Script::endgameSequence(uint16 v1, uint16 v2, uint16 v3) {
Events &events = Events::getReference();
AnimationSequence *anim;
-// screen.paletteFadeOut();
+ screen.paletteFadeOut();
Sound.killSounds();
+ Sound.loadSection(0xFF10);
mouse.cursorOff();
Palette p(ENDGAME_PALETTE_ID);
- anim = new AnimationSequence(screen, *g_system, ENDGAME_ANIM_ID, p, false);
+ anim = new AnimationSequence(ENDGAME_ANIM_ID, p, true, 9, soundList);
anim->show();
delete anim;
- anim = new AnimationSequence(screen, *g_system, ENDGAME_ANIM_ID + 2, p, false);
+ Sound.killSounds();
+ Sound.musicInterface_Play(6, 0);
+
+ anim = new AnimationSequence(ENDGAME_ANIM_ID + 2, p, false);
anim->show();
- events.interruptableDelay(8000);
+ events.interruptableDelay(13000);
delete anim;
- anim = new AnimationSequence(screen, *g_system, ENDGAME_ANIM_ID + 4, p, false);
+ anim = new AnimationSequence(ENDGAME_ANIM_ID + 4, p, false);
anim->show();
- events.interruptableDelay(30000);
- delete anim;
-
+ if (!events.interruptableDelay(30000)) {
+ // No key yet pressed, so keep waiting
+ while (Sound.musicInterface_CheckPlaying(6) && !events.quitFlag) {
+ if (events.interruptableDelay(20))
+ break;
+ }
+ }
+ delete anim;
+
+ screen.paletteFadeOut();
events.quitFlag = true;
}