diff options
Diffstat (limited to 'src/palaceDude.cpp')
-rw-r--r-- | src/palaceDude.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/palaceDude.cpp b/src/palaceDude.cpp index 19f7255..7aa0ccc 100644 --- a/src/palaceDude.cpp +++ b/src/palaceDude.cpp @@ -2,6 +2,8 @@ #include <stage.h> #include "msgbox.h" +const char *PalaceDudeFileList[] = {"OpeningScene", 0}; + class dPalaceDude_c : public dStageActor_c { public: static dPalaceDude_c *build(); @@ -26,12 +28,17 @@ int dPalaceDude_c::onExecute() { // OSReport("Activating Palace Dude\n"); hasBeenActivated = true; - StopBGMMusic(); + if (!(settings & 0xF000000)) + StopBGMMusic(); - dMsgBoxManager_c::instance->showMessage(settings & 0xFFFFFFF); + dMsgBoxManager_c::instance->showMessage( + settings & 0xFFFFFF, // message ID + false, // cannot cancel + (settings & 0xF000000) ? 270 : 840 // delay + ); SaveBlock *save = GetSaveFile()->GetBlock(-1); - GameMgrP->switchPalaceFlag|= (1 << (settings >> 28)); + GameMgrP->switchPalaceFlag |= (1 << (settings >> 28)); } } @@ -41,7 +48,9 @@ int dPalaceDude_c::onExecute() { // OSReport("Palace Dude is activated, %d\n", dMsgBoxManager_c::instance->visible); if (!dMsgBoxManager_c::instance->visible) { // OSReport("Exiting\n"); - ExitStage(WORLD_MAP, 0, BEAT_LEVEL, MARIO_WIPE); + if (settings & 0xF000000) + SaveGame(0, false); + ExitStage(WORLD_MAP, 0x80000000, BEAT_LEVEL, MARIO_WIPE); hasExitedStage = true; } } |