summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/koopatlas/pathmanager.cpp2
-rw-r--r--src/palaceDude.cpp12
2 files changed, 8 insertions, 6 deletions
diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp
index dd08a3a..19762c1 100644
--- a/src/koopatlas/pathmanager.cpp
+++ b/src/koopatlas/pathmanager.cpp
@@ -41,6 +41,7 @@ void dWMPathManager_c::setup() {
reverseThroughPath = false;
shouldRequestSave = ((wm->settings & 0x80000) != 0);
+ checkedForMoveAfterEndLevel = ((wm->settings & 0x40000) != 0);
pathLayer = wm->mapData.pathLayer;
@@ -1421,6 +1422,7 @@ void dWMPathManager_c::moveThroughPath(int pressedDir) {
dScKoopatlas_c::instance->keepMusicPlaying = true;
ActivateWipe(to->transition);
u32 saveFlag = (shouldRequestSave ? 0x80000 : 0);
+ saveFlag |= (checkedForMoveAfterEndLevel ? 0x40000 : 0);
DoSceneChange(WORLD_MAP, 0x10000000 | (to->foreignID << 20) | saveFlag, 0);
} else if (reallyStop) {
diff --git a/src/palaceDude.cpp b/src/palaceDude.cpp
index 4714e79..bb8ec20 100644
--- a/src/palaceDude.cpp
+++ b/src/palaceDude.cpp
@@ -31,18 +31,18 @@ int dPalaceDude_c::onExecute() {
int delay;
if (!(settings & 0xF000000)) {
delay = 270;
- StopBGMMusic(); }
- else {
- delay = 1020; }
+ StopBGMMusic();
+ SaveBlock *save = GetSaveFile()->GetBlock(-1);
+ GameMgrP->switchPalaceFlag |= (1 << (settings >> 28));
+ } else {
+ delay = 1020;
+ }
dMsgBoxManager_c::instance->showMessage(
settings & 0xFFFFFF, // message ID
false, // cannot cancel
delay // delay
);
-
- SaveBlock *save = GetSaveFile()->GetBlock(-1);
- GameMgrP->switchPalaceFlag |= (1 << (settings >> 28));
}
}