aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/worldofxeen
diff options
context:
space:
mode:
authorPaul Gilbert2016-09-21 22:53:37 -0400
committerPaul Gilbert2016-09-21 22:53:37 -0400
commitb5fa38ddac56c004ea263aa38c5007dc66251d0b (patch)
tree239f14e966f862c66ae30ddaf0b05b65efb9fb61 /engines/xeen/worldofxeen
parent254f931f2f5db13374fb93d8b0bb0b856c39a630 (diff)
downloadscummvm-rg350-b5fa38ddac56c004ea263aa38c5007dc66251d0b.tar.gz
scummvm-rg350-b5fa38ddac56c004ea263aa38c5007dc66251d0b.tar.bz2
scummvm-rg350-b5fa38ddac56c004ea263aa38c5007dc66251d0b.zip
XEEN: Beginnings of Clouds ending
Diffstat (limited to 'engines/xeen/worldofxeen')
-rw-r--r--engines/xeen/worldofxeen/clouds_cutscenes.cpp65
-rw-r--r--engines/xeen/worldofxeen/darkside_cutscenes.cpp3
-rw-r--r--engines/xeen/worldofxeen/worldofxeen.cpp2
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)