diff options
author | Paul Gilbert | 2018-03-11 18:11:51 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-03-11 18:11:51 -0400 |
commit | a7ee4ea4aec4f5fd2443d20f2654a464eb980c98 (patch) | |
tree | b624e2033a9fbe3b4ee7ce4721a38778b52580de /engines/xeen | |
parent | 31bf086186e3bd1747f9cff1e974a22513cadbab (diff) | |
download | scummvm-rg350-a7ee4ea4aec4f5fd2443d20f2654a464eb980c98.tar.gz scummvm-rg350-a7ee4ea4aec4f5fd2443d20f2654a464eb980c98.tar.bz2 scummvm-rg350-a7ee4ea4aec4f5fd2443d20f2654a464eb980c98.zip |
XEEN: Subtitle fixes for Clouds ending
Diffstat (limited to 'engines/xeen')
-rw-r--r-- | engines/xeen/worldofxeen/clouds_cutscenes.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/engines/xeen/worldofxeen/clouds_cutscenes.cpp b/engines/xeen/worldofxeen/clouds_cutscenes.cpp index 6ec66d70af..78e85ba62e 100644 --- a/engines/xeen/worldofxeen/clouds_cutscenes.cpp +++ b/engines/xeen/worldofxeen/clouds_cutscenes.cpp @@ -375,7 +375,10 @@ bool CloudsCutscenes::showCloudsIntroInner() { void CloudsCutscenes::showCloudsEnding(uint finalScore) { EventsManager &events = *g_vm->_events; + FileManager &files = *g_vm->_files; Sound &sound = *g_vm->_sound; + + files.setGameCc(0); _mirror.load("mirror.end"); _mirrBack.load("mirrback.end"); _mergeX = 0; @@ -537,9 +540,10 @@ bool CloudsCutscenes::showCloudsEnding1() { WAIT(3); } sound.setMusicPercent(60); + _subtitles.setLine(11); // Alamar's monologue - for (int idx = 0; idx < 3; ++idx) { + for (int idx = 0; idx < (sound._subtitles ? 4 : 3); ++idx) { switch (idx) { case 0: // You have defeated my general, Lord Xeen @@ -553,6 +557,11 @@ bool CloudsCutscenes::showCloudsEnding1() { // But the Dark Side will always be mine sound.playSound("dark3.voc"); break; + default: + // Laugh + sound.playSound("darklaff.voc"); + sound.setMusicPercent(75); + break; } do { @@ -578,12 +587,14 @@ bool CloudsCutscenes::showCloudsEnding1() { _subtitles.show(); WAIT(3); - } while (sound.isSoundPlaying() || _subtitles.active()); + } while (sound.isSoundPlaying() || (idx == 3 && _subtitles.active())); } - // Laugh - sound.playSound("darklaff.voc"); - sound.setMusicPercent(75); + if (!sound._subtitles) { + // Laugh + sound.playSound("darklaff.voc"); + sound.setMusicPercent(75); + } // Alamar fade out for (int idx = 12; idx >= 0; --idx) { @@ -685,7 +696,7 @@ bool CloudsCutscenes::showCloudsEnding2() { // Congratulations adventurers const char *const VOC_NAMES[3] = { "king1.voc", "king2.voc", "king3.voc" }; - _subtitles.setLine(0); + _subtitles.setLine(12); for (int idx = 0; idx < 3; ++idx) { sound.playSound(VOC_NAMES[idx]); @@ -699,7 +710,7 @@ bool CloudsCutscenes::showCloudsEnding2() { _subtitles.show(); WAIT(3); - } while (sound.isSoundPlaying() || _subtitles.active()); + } while (sound.isSoundPlaying() || (idx == 2 && _subtitles.active())); king.draw(0, 0, Common::Point(0, 0)); king.draw(0, 1, Common::Point(160, 0)); @@ -969,6 +980,7 @@ bool CloudsCutscenes::showCloudsEnding5() { king.draw(0, 0, Common::Point(0, 0)); king.draw(0, 1, Common::Point(160, 0)); screen.fadeIn(); + _subtitles.setLine(13); sound.playSound("king4.voc"); do { @@ -978,7 +990,6 @@ bool CloudsCutscenes::showCloudsEnding5() { if (frame > 1) king.draw(0, frame); - _subtitles.show(); WAIT(3); } while (sound.isSoundPlaying() || _subtitles.active()); |