diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/koopatlas/pathmanager.cpp | 2 | ||||
-rw-r--r-- | src/palaceDude.cpp | 12 |
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)); } } |