mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-23 12:44:02 +00:00
XEEN: Fixes returning to main menus after viewing intro/end cutscenes
This commit is contained in:
parent
d48275970a
commit
b04f038fb6
@ -538,7 +538,6 @@ int Party::subtract(ConsumableType consumableId, uint amount, PartyBank whereId,
|
||||
}
|
||||
|
||||
void Party::notEnough(ConsumableType consumableId, PartyBank whereId, bool mode, MessageWaitType wait) {
|
||||
assert(consumableId < 4 && whereId < 2);
|
||||
Common::String msg = Common::String::format(
|
||||
mode ? Res.NO_X_IN_THE_Y : Res.NOT_ENOUGH_X_IN_THE_Y,
|
||||
Res.CONSUMABLE_NAMES[consumableId], Res.WHERE_NAMES[whereId]);
|
||||
|
@ -360,6 +360,8 @@ bool CloudsCutscenes::showCloudsIntroInner() {
|
||||
}
|
||||
|
||||
void CloudsCutscenes::showCloudsEnding(uint finalScore) {
|
||||
EventsManager &events = *g_vm->_events;
|
||||
Sound &sound = *g_vm->_sound;
|
||||
_mirror.load("mirror.end");
|
||||
_mirrBack.load("mirrback.end");
|
||||
_mergeX = 0;
|
||||
@ -369,8 +371,13 @@ void CloudsCutscenes::showCloudsEnding(uint finalScore) {
|
||||
if (showCloudsEnding2())
|
||||
if (showCloudsEnding3())
|
||||
if (showCloudsEnding4(finalScore))
|
||||
if (showCloudsEnding5())
|
||||
doScroll(true, false);
|
||||
showCloudsEnding5();
|
||||
|
||||
events.clearEvents();
|
||||
sound.stopAllAudio();
|
||||
|
||||
if (!g_vm->shouldExit())
|
||||
doScroll(true, false);
|
||||
}
|
||||
|
||||
bool CloudsCutscenes::showCloudsEnding1() {
|
||||
|
@ -869,10 +869,13 @@ bool DarkSideCutscenes::showWorldOfXeenLogo() {
|
||||
}
|
||||
|
||||
void DarkSideCutscenes::showDarkSideEnding(uint endingScore) {
|
||||
_vm->_files->setGameCc(1);
|
||||
_vm->_files->_isDarkCc = true;
|
||||
_vm->_sound->_musicSide = 1;
|
||||
_vm->_screen->fadeOut();
|
||||
FileManager &files = *g_vm->_files;
|
||||
Screen &screen = *g_vm->_screen;
|
||||
Sound &sound = *g_vm->_sound;
|
||||
files.setGameCc(1);
|
||||
files._isDarkCc = true;
|
||||
sound._musicSide = 1;
|
||||
screen.fadeOut();
|
||||
|
||||
if (showDarkSideEnding1())
|
||||
if (showDarkSideEnding2())
|
||||
@ -880,7 +883,10 @@ void DarkSideCutscenes::showDarkSideEnding(uint endingScore) {
|
||||
showDarkSideEnding4();
|
||||
|
||||
showDarkSideScore(endingScore);
|
||||
_vm->_screen->fadeOut();
|
||||
|
||||
_claw.clear();
|
||||
_dragon1.clear();
|
||||
screen.fadeOut();
|
||||
}
|
||||
|
||||
bool DarkSideCutscenes::showDarkSideEnding1() {
|
||||
@ -1736,24 +1742,27 @@ void DarkSideCutscenes::showDarkSideScore(uint endingScore) {
|
||||
Sound &sound = *_vm->_sound;
|
||||
|
||||
sound.stopAllAudio();
|
||||
sound.playSong("outday3.m");
|
||||
|
||||
Common::String str = Common::String::format(Res.DARKSIDE_ENDING1, endingScore);
|
||||
showPharaohEndText(str.c_str(), Res.DARKSIDE_ENDING2);
|
||||
if (_vm->shouldExit()) {
|
||||
sound.playSong("outday3.m");
|
||||
|
||||
if (!_vm->shouldExit())
|
||||
saves.saveGame();
|
||||
Common::String str = Common::String::format(Res.DARKSIDE_ENDING1, endingScore);
|
||||
showPharaohEndText(str.c_str(), Res.DARKSIDE_ENDING2);
|
||||
|
||||
if (!_vm->shouldExit())
|
||||
saves.saveGame();
|
||||
}
|
||||
}
|
||||
|
||||
bool DarkSideCutscenes::showPharaohEndText(const char *msg1, const char *msg2, const char *msg3) {
|
||||
Screen &screen = *_vm->_screen;
|
||||
EventsManager &events = *_vm->_events;
|
||||
Windows &windows = *_vm->_windows;
|
||||
SpriteResource claw("claw.int");
|
||||
SpriteResource dragon1("dragon1.int");
|
||||
int numPages = 0 + (msg1 ? 1 : 0) + (msg2 ? 1 : 0) + (msg3 ? 1 : 0);
|
||||
const char *const text[3] = { msg1, msg2, msg3 };
|
||||
|
||||
_claw.load("claw.int");
|
||||
_dragon1.load("dragon1.int");
|
||||
screen.loadBackground("3room.raw");
|
||||
screen.saveBackground();
|
||||
screen.loadPalette("dark.pal");
|
||||
@ -1785,6 +1794,8 @@ bool DarkSideCutscenes::showPharaohEndText(const char *msg1, const char *msg2, c
|
||||
events.clearEvents();
|
||||
}
|
||||
|
||||
_claw.clear();
|
||||
_dragon1.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -89,8 +89,8 @@ void MainMenuContainer::execute() {
|
||||
|
||||
// Fade/scroll in screen if first frame showing screen
|
||||
if (!showFlag) {
|
||||
loadBackground();
|
||||
screen.doScroll(false, false);
|
||||
display();
|
||||
screen.doScroll(false, true);
|
||||
showFlag = true;
|
||||
}
|
||||
|
||||
@ -125,14 +125,22 @@ void MainMenuContainer::execute() {
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
CloudsMainMenuContainer::CloudsMainMenuContainer() : MainMenuContainer("intro.vga", 9) {
|
||||
g_vm->_sound->playSong("inn.m");
|
||||
}
|
||||
|
||||
void CloudsMainMenuContainer::loadBackground() {
|
||||
void CloudsMainMenuContainer::display() {
|
||||
FileManager &files = *g_vm->_files;
|
||||
Screen &screen = *g_vm->_screen;
|
||||
Sound &sound = *g_vm->_sound;
|
||||
|
||||
sound._musicSide = 0;
|
||||
files.setGameCc(0);
|
||||
|
||||
screen.loadPalette("mm4.pal");
|
||||
screen.loadBackground("intro.raw");
|
||||
screen.saveBackground();
|
||||
|
||||
if (!sound.isMusicPlaying())
|
||||
sound.playSong("inn.m");
|
||||
}
|
||||
|
||||
void CloudsMainMenuContainer::showMenuDialog() {
|
||||
@ -153,13 +161,22 @@ DarkSideMainMenuContainer::DarkSideMainMenuContainer() : MainMenuContainer("titl
|
||||
_background.load("title2.int");
|
||||
}
|
||||
|
||||
void DarkSideMainMenuContainer::loadBackground() {
|
||||
void DarkSideMainMenuContainer::display() {
|
||||
FileManager &files = *g_vm->_files;
|
||||
Screen &screen = *g_vm->_screen;
|
||||
Sound &sound = *g_vm->_sound;
|
||||
|
||||
_background.draw(0, 0, Common::Point(0, 0));
|
||||
_background.draw(0, 1, Common::Point(160, 0));
|
||||
|
||||
sound._musicSide = 1;
|
||||
files.setGameCc(1);
|
||||
|
||||
screen.loadPalette("dark.pal");
|
||||
screen.saveBackground();
|
||||
|
||||
if (!sound.isMusicPlaying())
|
||||
sound.playSong("newbrigh.m");
|
||||
}
|
||||
|
||||
void DarkSideMainMenuContainer::showMenuDialog() {
|
||||
@ -169,16 +186,22 @@ void DarkSideMainMenuContainer::showMenuDialog() {
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
WorldOfXeenMainMenuContainer::WorldOfXeenMainMenuContainer() : MainMenuContainer("world.int", 5) {
|
||||
Sound &sound = *g_vm->_sound;
|
||||
sound._musicSide = 1;
|
||||
sound.playSong("newbrigh.m");
|
||||
}
|
||||
|
||||
void WorldOfXeenMainMenuContainer::loadBackground() {
|
||||
void WorldOfXeenMainMenuContainer::display() {
|
||||
FileManager &files = *g_vm->_files;
|
||||
Screen &screen = *g_vm->_screen;
|
||||
Sound &sound = *g_vm->_sound;
|
||||
|
||||
sound._musicSide = 1;
|
||||
files.setGameCc(1);
|
||||
|
||||
screen.loadPalette("dark.pal");
|
||||
screen.loadBackground("world.raw");
|
||||
screen.saveBackground();
|
||||
|
||||
if (!sound.isMusicPlaying())
|
||||
sound.playSong("newbrigh.m");
|
||||
}
|
||||
|
||||
void WorldOfXeenMainMenuContainer::showMenuDialog() {
|
||||
|
@ -44,9 +44,9 @@ protected:
|
||||
void draw();
|
||||
|
||||
/**
|
||||
* Load the background
|
||||
* Called when the menu screen is first shown
|
||||
*/
|
||||
virtual void loadBackground() = 0;
|
||||
virtual void display() = 0;
|
||||
|
||||
/**
|
||||
* Shows the main menu dialog
|
||||
@ -84,9 +84,9 @@ public:
|
||||
class CloudsMainMenuContainer : public MainMenuContainer {
|
||||
protected:
|
||||
/**
|
||||
* Load the background
|
||||
* Called when the menu screen is first shown
|
||||
*/
|
||||
virtual void loadBackground();
|
||||
virtual void display();
|
||||
|
||||
/**
|
||||
* Shows the main menu dialog
|
||||
@ -101,9 +101,9 @@ private:
|
||||
SpriteResource _background;
|
||||
protected:
|
||||
/**
|
||||
* Load the background
|
||||
* Called when the menu screen is first shown
|
||||
*/
|
||||
virtual void loadBackground();
|
||||
virtual void display();
|
||||
|
||||
/**
|
||||
* Shows the main menu dialog
|
||||
@ -116,9 +116,9 @@ public:
|
||||
class WorldOfXeenMainMenuContainer : public MainMenuContainer {
|
||||
protected:
|
||||
/**
|
||||
* Load the background
|
||||
* Called when the menu screen is first shown
|
||||
*/
|
||||
virtual void loadBackground();
|
||||
virtual void display();
|
||||
|
||||
/**
|
||||
* Shows the main menu dialog
|
||||
|
Loading…
x
Reference in New Issue
Block a user