This commit is contained in:
robojumper
2025-09-27 12:25:35 +02:00
parent cf47974f6a
commit 819dc7f5d5
4 changed files with 15 additions and 13 deletions
+1 -1
View File
@@ -2472,7 +2472,7 @@ enum StoryFlags_e {
/** [Skip last cutscene during credits (Groose appears in the Groosenator, re-enables groosenator to lanayru after
* sky keep)] Story Flag #490 (0x01EA) - JP 805ACD93 0x01 / US 805A9B13 0x01
*/
STORYFLAG_490,
STORYFLAG_GAME_COMPLETE,
/** [sets after finishing request for gorko at goddess wall (or S&Q) (unsets after getting new request)]
* Story Flag #491 (0x01EB) - JP 805ACD93 0x02 / US 805A9B13 0x02
+4
View File
@@ -48,6 +48,10 @@ public:
ACTION_MAX,
};
bool isFinishedFadingIn() const {
return mIsFinishedFadingIn;
}
private:
static dLytSaveMgr_c *sInstance;
+5 -7
View File
@@ -9,6 +9,7 @@
#include "d/d_stage_parse.h"
#include "d/d_sys.h"
#include "d/flag/flag_managers.h"
#include "d/lyt/d_lyt_save_mgr.h"
#include "d/snd/d_snd_state_mgr.h"
#include "f/f_base.h"
#include "f/f_profile_name.h"
@@ -229,21 +230,18 @@ void dStageMgr_c::finalizeState_ReadObjectSound() {
dLast_c::setExecuteCallback(lastExecuteCallback);
}
extern "C" void *LYT_SAVE_MGR;
extern "C" void fn_80285600(void *, int, int);
void dStageMgr_c::initializeState_SceneChangeSave() {
dScGame_c::GetInstance()->setSavePromptFlag(false);
if (LYT_SAVE_MGR != nullptr) {
fn_80285600(LYT_SAVE_MGR, 3, 0);
if (dLytSaveMgr_c::GetInstance() != nullptr) {
dLytSaveMgr_c::GetInstance()->setPrompt(dLytSaveMgr_c::PROMPT_SAVE_NORMAL, false);
}
dBase_c::s_NextExecuteControlFlags |= BASE_PROP_0x1;
dSys_c::setFrameRate(2);
}
void dStageMgr_c::executeState_SceneChangeSave() {
if (LYT_SAVE_MGR != nullptr) {
// "isNotSaving???"
if (((u8 *)LYT_SAVE_MGR)[0x119C] == true) {
if (dLytSaveMgr_c::GetInstance() != nullptr) {
if (dLytSaveMgr_c::GetInstance()->isFinishedFadingIn() == true) {
mStateMgr.changeState(StateID_RestartSceneWait);
}
} else {
+5 -5
View File
@@ -89,7 +89,7 @@ void dLytSaveMgr_c::finalizeState_Init() {}
void dLytSaveMgr_c::initializeState_FadeOut() {
if (mSavePrompt == PROMPT_HERO_MODE) {
StoryflagManager::sInstance->setFlag(STORYFLAG_490);
StoryflagManager::sInstance->setFlag(STORYFLAG_GAME_COMPLETE);
if (StoryflagManager::sInstance->getFlag(STORYFLAG_HERO_MODE)) {
// Skip hero mode prompt if we were in hero mode
mSavePrompt = PROMPT_HERO_MODE_CONFIRM;
@@ -123,8 +123,8 @@ void dLytSaveMgr_c::executeState_FadeOut() {
}
if (mSavePrompt == PROMPT_SAVE_NORMAL) {
dBase_c::s_NextExecuteControlFlags |= 1;
dBase_c::s_DrawControlFlags |= 1;
dBase_c::s_NextExecuteControlFlags |= dBase_c::BASE_PROP_0x1;
dBase_c::s_DrawControlFlags |= dBase_c::BASE_PROP_0x1;
}
}
void dLytSaveMgr_c::finalizeState_FadeOut() {}
@@ -604,8 +604,8 @@ void dLytSaveMgr_c::finalizeState_Select() {}
void dLytSaveMgr_c::initializeState_FadeIn() {
mStep = 0;
if (mSavePrompt == PROMPT_SAVE_NORMAL) {
dBase_c::s_NextExecuteControlFlags &= ~1;
dBase_c::s_DrawControlFlags &= ~1;
dBase_c::s_NextExecuteControlFlags &= ~dBase_c::BASE_PROP_0x1;
dBase_c::s_DrawControlFlags &= ~dBase_c::BASE_PROP_0x1;
}
}
void dLytSaveMgr_c::executeState_FadeIn() {