diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/xeen/worldofxeen/clouds_cutscenes.cpp | 65 | ||||
-rw-r--r-- | engines/xeen/worldofxeen/darkside_cutscenes.cpp | 3 | ||||
-rw-r--r-- | engines/xeen/worldofxeen/worldofxeen.cpp | 2 |
3 files changed, 69 insertions, 1 deletions
diff --git a/engines/xeen/worldofxeen/clouds_cutscenes.cpp b/engines/xeen/worldofxeen/clouds_cutscenes.cpp index 4328b7bf42..29442da5fa 100644 --- a/engines/xeen/worldofxeen/clouds_cutscenes.cpp +++ b/engines/xeen/worldofxeen/clouds_cutscenes.cpp @@ -92,6 +92,7 @@ bool CloudsCutscenes::showCloudsIntro() { wizTower2("wiztwer2.vga"), lake2("lake2.vga"), lake3("lake3.vga"), xeen1("xeen1.vga"); _subtitles.load("special.bin", GAME_ARCHIVE); + _vm->_files->_isDarkCc = false; // Show the production splash screen sound.playSong("mm4theme.m"); @@ -334,7 +335,71 @@ bool CloudsCutscenes::showCloudsIntro() { } bool CloudsCutscenes::showCloudsEnding() { + EventsManager &events = *_vm->_events; + FileManager &files = *_vm->_files; + Screen &screen = *_vm->_screen; + Sound &sound = *_vm->_sound; + + files._isDarkCc = false; + File::setCurrentArchive(GAME_ARCHIVE); + + // Show the castle with swirling clouds and lightning + SpriteResource prec[42]; + prec[0].load("prec.end"); + for (int idx = 1; idx < 42; ++idx) + prec[idx].load(Common::String::format("prec00%02u.frm", idx)); + + screen.loadBackground("blank.raw"); + screen.loadPalette("mm4e.pal"); + prec[0].draw(screen, 0); + prec[0].draw(screen, 1, Common::Point(160, 0)); + screen.update(); + screen.fadeIn(); + WAIT(15); + + sound.playFX(1); + sound.playFX(34); + + for (int idx = 1; idx < 42; ++idx) { + prec[idx].draw(screen, 0); + prec[idx].draw(screen, 1, Common::Point(160, 0)); + screen.update(); + + switch (idx) { + case 8: + case 18: + case 21: + sound.playFX(33); + break; + + case 19: + case 25: + sound.playFX(34); + break; + + default: + break; + } + + WAIT(3); + } + + for (int idx = 0; idx < 42; ++idx) + prec[idx].clear(); + + // Closeup of castle + SpriteResource vort[21], cast[6], darkLord[4]; + for (int idx = 1; idx < 21; ++idx) + vort[idx].load(Common::String::format("vort%02u.frm", idx)); + for (int idx = 1; idx < 7; ++idx) + cast[idx - 1].load(Common::String::format("cast%02u.end", idx)); + for (int idx = 1; idx < 4; ++idx) + darkLord[idx].load(Common::String::format("darklrd%d.end", idx)); + + + // TODO + WAIT(5000); return true; } diff --git a/engines/xeen/worldofxeen/darkside_cutscenes.cpp b/engines/xeen/worldofxeen/darkside_cutscenes.cpp index bfe560ed15..bde5ff3826 100644 --- a/engines/xeen/worldofxeen/darkside_cutscenes.cpp +++ b/engines/xeen/worldofxeen/darkside_cutscenes.cpp @@ -41,6 +41,7 @@ bool DarkSideCutscenes::showDarkSideTitle() { EventsManager &events = *_vm->_events; Screen &screen = *_vm->_screen; Sound &sound = *_vm->_sound; + _vm->_files->_isDarkCc = true; screen.loadPalette("dark.pal"); SpriteResource nwc[4] = { @@ -152,6 +153,7 @@ bool DarkSideCutscenes::showDarkSideIntro() { 160, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 98, 90, 82 }; + _vm->_files->_isDarkCc = true; _subtitles.load("special.bin"); screen.fadeOut(8); screen.loadPalette("dark.pal"); @@ -327,6 +329,7 @@ bool DarkSideCutscenes::showDarkSideEnding() { EventsManager &events = *_vm->_events; Screen &screen = *_vm->_screen; Sound &sound = *_vm->_sound; + _vm->_files->_isDarkCc = true; sound.playSong("dngon3.m"); screen.loadBackground("scene1.raw"); diff --git a/engines/xeen/worldofxeen/worldofxeen.cpp b/engines/xeen/worldofxeen/worldofxeen.cpp index 6df07d9a8a..81922d8740 100644 --- a/engines/xeen/worldofxeen/worldofxeen.cpp +++ b/engines/xeen/worldofxeen/worldofxeen.cpp @@ -40,7 +40,7 @@ void WorldOfXeenEngine::showIntro() { if (gDebugLevel == 0) return; - showCloudsIntro(); + showCloudsEnding(); /* bool completed = showDarkSideTitle(); if (!_seenDarkSideIntro && completed) |