[Scummvm-git-logs] scummvm master -> 010c47bfe8aef1234407eda4fb9174627683bb09

dreammaster dreammaster at scummvm.org
Sat Mar 3 01:29:00 CET 2018


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
010c47bfe8 XEEN: Add World of Xeen logo to end of Dark Side intro


Commit: 010c47bfe8aef1234407eda4fb9174627683bb09
    https://github.com/scummvm/scummvm/commit/010c47bfe8aef1234407eda4fb9174627683bb09
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-03-02T19:28:47-05:00

Commit Message:
XEEN: Add World of Xeen logo to end of Dark Side intro

Changed paths:
    engines/xeen/worldofxeen/darkside_cutscenes.cpp
    engines/xeen/worldofxeen/darkside_cutscenes.h
    engines/xeen/worldofxeen/worldofxeen.cpp


diff --git a/engines/xeen/worldofxeen/darkside_cutscenes.cpp b/engines/xeen/worldofxeen/darkside_cutscenes.cpp
index abd8d69..4a0489c 100644
--- a/engines/xeen/worldofxeen/darkside_cutscenes.cpp
+++ b/engines/xeen/worldofxeen/darkside_cutscenes.cpp
@@ -69,7 +69,7 @@ const int LEFT_CLAW_IDLE_Y[32] = {
 };
 
 
-bool DarkSideCutscenes::showDarkSideTitle() {
+bool DarkSideCutscenes::showDarkSideTitle(bool seenIntro) {
 	EventsManager &events = *_vm->_events;
 	Screen &screen = *_vm->_screen;
 	Sound &sound = *_vm->_sound;
@@ -162,7 +162,7 @@ bool DarkSideCutscenes::showDarkSideTitle() {
 	return true;
 }
 
-bool DarkSideCutscenes::showDarkSideIntro() {
+bool DarkSideCutscenes::showDarkSideIntro(bool seenIntro) {
 	FileManager &files = *g_vm->_files;
 	Screen &screen = *g_vm->_screen;
 	Sound &sound = *g_vm->_sound;
@@ -170,20 +170,31 @@ bool DarkSideCutscenes::showDarkSideIntro() {
 	files._isDarkCc = true;
 	files.setGameCc(1);
 
-	_ball.load("ball.int");
-	_dragon1.load("dragon1.int");
-	_claw.load("claw.int");
+	if (showDarkSideTitle(seenIntro)) {
+		if (seenIntro) {
+			if (g_vm->getGameID() == GType_WorldOfXeen)
+				seenIntro = showWorldOfXeenLogo();
+		} else {
+			_ball.load("ball.int");
+			_dragon1.load("dragon1.int");
+			_claw.load("claw.int");
+
+			seenIntro = showDarkSideIntro1() && showDarkSideIntro2() && showDarkSideIntro3();
+
+			_ball.clear();
+			_dragon1.clear();
+			_claw.clear();
 
-	bool result = showDarkSideIntro1() && showDarkSideIntro2() && showDarkSideIntro3();
+			if (seenIntro && g_vm->getGameID() == GType_WorldOfXeen)
+				seenIntro = showWorldOfXeenLogo();
+		}
+	}
 
 	sound.stopAllAudio();
 	sound.setMusicVolume(100);
 	screen.freePages();
-	_ball.clear();
-	_dragon1.clear();
-	_claw.clear();
 
-	return result;
+	return seenIntro;
 }
 
 bool DarkSideCutscenes::rubCrystalBall(bool fadeIn) {
@@ -799,6 +810,61 @@ bool DarkSideCutscenes::showDarkSideIntro3() {
 		WAIT(2);
 	}
 
+	screen.fadeOut();
+	return true;
+}
+
+bool DarkSideCutscenes::showWorldOfXeenLogo() {
+	EventsManager &events = *_vm->_events;
+	Screen &screen = *_vm->_screen;
+	Sound &sound = *_vm->_sound;
+	SpriteResource fizzle("fizzle.int");
+	SpriteResource wfire[7];
+	for (uint idx = 0; idx < 7; ++idx)
+		wfire[idx].load(Common::String::format("wfire%u.int", idx + 1));
+
+	screen.loadBackground("firemain.raw");
+	screen.loadPalette("firemain.pal");
+	screen.saveBackground();
+	screen.fadeIn();
+	WAIT(10);
+
+	for (int idx = 0; idx < 28; ++idx) {
+		if (idx == 17)
+			sound.playSound("explosio.voc");
+		if (!sound.isSoundPlaying() && idx < 17)
+			sound.playSound("rumble.voc");
+
+		screen.restoreBackground();
+		wfire[idx / 5].draw(0, idx % 5, Common::Point(0, 45));
+		WAIT(2);
+	}
+
+	screen.saveBackground();
+
+	for (int loopCtr = 0; loopCtr < 2; ++loopCtr) {
+		for (int idx = 0; idx < 21; ++idx) {
+			screen.restoreBackground();
+			wfire[6].draw(0, idx, Common::Point(0, 45));
+			
+			switch (idx) {
+			case 0:
+			case 11:
+				sound.playSound("thud.voc");
+				break;
+			case 3:
+				sound.playFX(60);
+				break;
+			default:
+				break;
+			}
+
+			WAIT(2);
+		}
+	}
+
+	WAIT(10);
+	screen.fadeOut();
 	return true;
 }
 
diff --git a/engines/xeen/worldofxeen/darkside_cutscenes.h b/engines/xeen/worldofxeen/darkside_cutscenes.h
index 8a01379..f3e8fd8 100644
--- a/engines/xeen/worldofxeen/darkside_cutscenes.h
+++ b/engines/xeen/worldofxeen/darkside_cutscenes.h
@@ -48,6 +48,11 @@ private:
 	void animatePharoah(int frame);
 
 	/**
+	 * Shows the Dark Side of Xeen title screen
+	 */
+	bool showDarkSideTitle(bool seenIntro);
+
+	/**
 	 * Shows part 1 of the Dark Side intro - up to the point where
 	 * Dragon Pharoah ends "contact the Queen"
 	 */
@@ -64,6 +69,11 @@ private:
 	bool showDarkSideIntro3();
 
 	/**
+	 * Shows the World of Xeen logo from the end of the Dark Side intro
+	 */
+	bool showWorldOfXeenLogo();
+
+	/**
 	 * Shows part 1 of the Dark Side ending, everything up to Corak appearing
 	 */
 	bool showDarkSideEnding1();
@@ -96,14 +106,9 @@ public:
 	DarkSideCutscenes(XeenEngine *vm) : Cutscenes(vm) {}
 
 	/**
-	 * Shows the Dark Side of Xeen title screen
-	 */
-	bool showDarkSideTitle();
-
-	/**
 	 * Shows the Dark Side of Xeen intro sequence
 	 */
-	bool showDarkSideIntro();
+	bool showDarkSideIntro(bool seenIntro);
 
 	/**
 	 * Shows the Dark Side of Xeen ending sequence
diff --git a/engines/xeen/worldofxeen/worldofxeen.cpp b/engines/xeen/worldofxeen/worldofxeen.cpp
index 61552eb..88ab3d3 100644
--- a/engines/xeen/worldofxeen/worldofxeen.cpp
+++ b/engines/xeen/worldofxeen/worldofxeen.cpp
@@ -161,14 +161,6 @@ void WorldOfXeenEngine::showCutscene(const Common::String &name, int status, uin
 		showDarkSideEnding(score);
 	else if (name == "WORLDEND")
 		showWorldOfXeenEnding((GooberState)status, score);
-	else if (name == "CLOUDS_TITLE")
-		showCloudsTitle();
-	else if (name == "CLOUDS_INTRO")
-		showCloudsIntro();
-	else if (name == "DARKSIDE_TITLE")
-		showDarkSideTitle();
-	else if (name == "DARKSIDE_INTRO")
-		showDarkSideIntro();
 
 	_screen->freePages();
 	_sound->stopAllAudio();
@@ -178,25 +170,16 @@ void WorldOfXeenEngine::showCutscene(const Common::String &name, int status, uin
 
 void WorldOfXeenEngine::showStartup() {
 	bool seenIntro = ConfMan.hasKey("seen_intro") && ConfMan.getBool("seen_intro");
+	bool completedIntro;
 
-	// Show the title animation
-	bool completedTitle = true;
-	//(getGameID() == GType_Clouds) ?
-	//	showCloudsTitle() : showDarkSideTitle();
-	_sound->stopAllAudio();
+	if (getGameID() == GType_Clouds)
+		completedIntro = showCloudsIntro();
+	else
+		completedIntro = showDarkSideIntro(seenIntro);
 
-	// Unless user aborted the title, go
-	if (completedTitle && !seenIntro) {
-		if (getGameID() == GType_Clouds)
-			seenIntro = showCloudsIntro();
-		else
-			seenIntro = showDarkSideIntro();
-
-		seenIntro = false;//****DEBUG****
-		if (seenIntro) {
-			ConfMan.setBool("seen_intro", true);
-			ConfMan.flushToDisk();
-		}
+	if (!seenIntro && completedIntro) {
+		ConfMan.setBool("seen_intro", true);
+		ConfMan.flushToDisk();
 	}
 
 	_gameMode = GMODE_MENU;





More information about the Scummvm-git-logs mailing list