d_lyt_save_mgr OK

This commit is contained in:
robojumper
2025-09-25 20:49:36 +02:00
parent e8fea3ebe5
commit cf47974f6a
11 changed files with 856 additions and 102 deletions
+1
View File
@@ -1571,6 +1571,7 @@ d/lyt/d_lyt_save_mgr.cpp:
.ctors start:0x804DB864 end:0x804DB868
.rodata start:0x804EE778 end:0x804EE790
.data start:0x80538160 end:0x80538498
.sdata start:0x80573B80 end:0x80573B88
.sbss start:0x80575950 end:0x80575958
.bss start:0x805B5F00 end:0x805B6000
+101 -74
View File
@@ -15022,54 +15022,53 @@ __dt__29sFStateID_c<14dLytGameOver_c>Fv = .text:0x80284DD0; // type:function siz
__dt__32sFStateID_c<17dLytGameOverMgr_c>Fv = .text:0x80284E30; // type:function size:0x58
isSameName__32sFStateID_c<17dLytGameOverMgr_c>CFPCc = .text:0x80284E90; // type:function size:0x88
isSameName__29sFStateID_c<14dLytGameOver_c>CFPCc = .text:0x80284F20; // type:function size:0x88
LytSaveMgr__ctor = .text:0x80284FB0; // type:function size:0x30
LytSaveMgr__ctorCont = .text:0x80284FE0; // type:function size:0xB0
fn_80285090 = .text:0x80285090; // type:function size:0x58
fn_802850F0 = .text:0x802850F0; // type:function size:0x6C
fn_80285160 = .text:0x80285160; // type:function size:0xA0
fn_80285200 = .text:0x80285200; // type:function size:0xA4
fn_802852B0 = .text:0x802852B0; // type:function size:0x23C
LytSaveMgr__init = .text:0x802854F0; // type:function size:0x54
fn_80285550 = .text:0x80285550; // type:function size:0x10
fn_80285560 = .text:0x80285560; // type:function size:0x28
LytSaveMgr__update = .text:0x80285590; // type:function size:0x30
fn_802855C0 = .text:0x802855C0; // type:function size:0x10
LytSaveMgr__draw = .text:0x802855D0; // type:function size:0x28
fn_80285600 = .text:0x80285600; // type:function size:0x18
fn_80285620 = .text:0x80285620; // type:function size:0x1C
fn_80285640 = .text:0x80285640; // type:function size:0x10
fn_80285650__13dLytSaveMgr_cCFv = .text:0x80285650; // type:function size:0x4C
LytSaveMgr__stateInitEnter = .text:0x802856A0; // type:function size:0x14
LytSaveMgr__stateInitUpdate = .text:0x802856C0; // type:function size:0x28
LytSaveMgr__stateInitLeave = .text:0x802856F0; // type:function size:0x4
LytSaveMgr__stateFadeOutEnter = .text:0x80285700; // type:function size:0x74
LytSaveMgr__stateFadeOutUpdate = .text:0x80285780; // type:function size:0xC4
LytSaveMgr__stateFadeOutLeave = .text:0x80285850; // type:function size:0x4
LytSaveMgr__stateSelectEnter = .text:0x80285860; // type:function size:0x4C
LytSaveMgr__stateSelectUpdate = .text:0x802858B0; // type:function size:0xD18
LytSaveMgr__stateSelectLeave = .text:0x802865D0; // type:function size:0x4
fn_802865E0 = .text:0x802865E0; // type:function size:0x30
fn_80286610 = .text:0x80286610; // type:function size:0x40
fn_80286650 = .text:0x80286650; // type:function size:0x4
fn_80286660 = .text:0x80286660; // type:function size:0x4
fn_80286670 = .text:0x80286670; // type:function size:0x28
fn_802866A0 = .text:0x802866A0; // type:function size:0x60
fn_80286700 = .text:0x80286700; // type:function size:0xC
fn_80286710 = .text:0x80286710; // type:function size:0x1C
fn_80286730 = .text:0x80286730; // type:function size:0x1C
fn_80286750 = .text:0x80286750; // type:function size:0x1C
fn_80286770 = .text:0x80286770; // type:function size:0x10
fn_80286780 = .text:0x80286780; // type:function size:0x10
fn_80286790 = .text:0x80286790; // type:function size:0x10
fn_802867A0 = .text:0x802867A0; // type:function size:0x10
fn_802867B0 = .text:0x802867B0; // type:function size:0x10
fn_802867C0 = .text:0x802867C0; // type:function size:0x10
fn_802867D0 = .text:0x802867D0; // type:function size:0x30
fn_80286800 = .text:0x80286800; // type:function size:0x30
fn_80286830 = .text:0x80286830; // type:function size:0x30
LytSaveMgr__initStates = .text:0x80286860; // type:function size:0x338
LytSaveMgr__ActorState__dtor = .text:0x80286BA0; // type:function size:0x58
fn_80286C00 = .text:0x80286C00; // type:function size:0x88
dLytSaveMgr_c_classInit__Fv = .text:0x80284FB0; // type:function size:0x30
__ct__13dLytSaveMgr_cFv = .text:0x80284FE0; // type:function size:0xB0
__dt__26sFState_c<13dLytSaveMgr_c>Fv = .text:0x80285090; // type:function size:0x58 scope:weak
__dt__29sFStateFct_c<13dLytSaveMgr_c>Fv = .text:0x802850F0; // type:function size:0x6C scope:weak
__dt__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80285160; // type:function size:0xA0 scope:weak
__dt__52sFStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c>Fv = .text:0x80285200; // type:function size:0xA4 scope:weak
__dt__13dLytSaveMgr_cFv = .text:0x802852B0; // type:function size:0x23C
create__13dLytSaveMgr_cFv = .text:0x802854F0; // type:function size:0x54
changeState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80285550; // type:function size:0x10 scope:weak
doDelete__13dLytSaveMgr_cFv = .text:0x80285560; // type:function size:0x28
execute__13dLytSaveMgr_cFv = .text:0x80285590; // type:function size:0x30
executeState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802855C0; // type:function size:0x10 scope:weak
draw__13dLytSaveMgr_cFv = .text:0x802855D0; // type:function size:0x28
setPrompt__13dLytSaveMgr_cFlb = .text:0x80285600; // type:function size:0x18
setSaveobjPrompt__13dLytSaveMgr_cFlUcb = .text:0x80285620; // type:function size:0x1C
getStateID__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80285640; // type:function size:0x10 scope:weak
isBusy__13dLytSaveMgr_cCFv = .text:0x80285650; // type:function size:0x4C
initializeState_Init__13dLytSaveMgr_cFv = .text:0x802856A0; // type:function size:0x14
executeState_Init__13dLytSaveMgr_cFv = .text:0x802856C0; // type:function size:0x28
finalizeState_Init__13dLytSaveMgr_cFv = .text:0x802856F0; // type:function size:0x4
initializeState_FadeOut__13dLytSaveMgr_cFv = .text:0x80285700; // type:function size:0x74
executeState_FadeOut__13dLytSaveMgr_cFv = .text:0x80285780; // type:function size:0xC4
finalizeState_FadeOut__13dLytSaveMgr_cFv = .text:0x80285850; // type:function size:0x4
initializeState_Select__13dLytSaveMgr_cFv = .text:0x80285860; // type:function size:0x4C
executeState_Select__13dLytSaveMgr_cFv = .text:0x802858B0; // type:function size:0xD18
finalizeState_Select__13dLytSaveMgr_cFv = .text:0x802865D0; // type:function size:0x4
initializeState_FadeIn__13dLytSaveMgr_cFv = .text:0x802865E0; // type:function size:0x30
executeState_FadeIn__13dLytSaveMgr_cFv = .text:0x80286610; // type:function size:0x44
finalizeState_FadeIn__13dLytSaveMgr_cFv = .text:0x80286660; // type:function size:0x4
init__13dLytSaveMgr_cFv = .text:0x80286670; // type:function size:0x28
build__29sFStateFct_c<13dLytSaveMgr_c>FRC12sStateIDIf_c = .text:0x802866A0; // type:function size:0x60 scope:weak
dispose__29sFStateFct_c<13dLytSaveMgr_c>FRP10sStateIf_c = .text:0x80286700; // type:function size:0xC scope:weak
initialize__26sFState_c<13dLytSaveMgr_c>Fv = .text:0x80286710; // type:function size:0x1C scope:weak
execute__26sFState_c<13dLytSaveMgr_c>Fv = .text:0x80286730; // type:function size:0x1C scope:weak
finalize__26sFState_c<13dLytSaveMgr_c>Fv = .text:0x80286750; // type:function size:0x1C scope:weak
initializeState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80286770; // type:function size:0x10 scope:weak
finalizeState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80286780; // type:function size:0x10 scope:weak
refreshState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80286790; // type:function size:0x10 scope:weak
getState__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802867A0; // type:function size:0x10 scope:weak
getNewStateID__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802867B0; // type:function size:0x10 scope:weak
getOldStateID__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802867C0; // type:function size:0x10 scope:weak
finalizeState__28sFStateID_c<13dLytSaveMgr_c>CFR13dLytSaveMgr_c = .text:0x802867D0; // type:function size:0x30 scope:weak
executeState__28sFStateID_c<13dLytSaveMgr_c>CFR13dLytSaveMgr_c = .text:0x80286800; // type:function size:0x30 scope:weak
initializeState__28sFStateID_c<13dLytSaveMgr_c>CFR13dLytSaveMgr_c = .text:0x80286830; // type:function size:0x30 scope:weak
__sinit_\d_lyt_save_mgr_cpp = .text:0x80286860; // type:function size:0x338 scope:local
__dt__28sFStateID_c<13dLytSaveMgr_c>Fv = .text:0x80286BA0; // type:function size:0x58 scope:weak
isSameName__28sFStateID_c<13dLytSaveMgr_c>CFPCc = .text:0x80286C00; // type:function size:0x88 scope:weak
fn_80286C90 = .text:0x80286C90; // type:function size:0x28
fn_80286CC0 = .text:0x80286CC0; // type:function size:0x40
fn_80286D00 = .text:0x80286D00; // type:function size:0x58
@@ -28674,7 +28673,7 @@ lbl_804EE6C0 = .rodata:0x804EE6C0; // type:object size:0x40 data:4byte
lbl_804EE700 = .rodata:0x804EE700; // type:object size:0x28 data:4byte
lbl_804EE728 = .rodata:0x804EE728; // type:object size:0x28
lbl_804EE750 = .rodata:0x804EE750; // type:object size:0x28
lbl_804EE778 = .rodata:0x804EE778; // type:object size:0x18
@LOCAL@executeState_FadeOut__13dLytSaveMgr_cFv@sFadeOutModes@0 = .rodata:0x804EE778; // type:object size:0x18 scope:local
lbl_804EE790 = .rodata:0x804EE790; // type:object size:0x48
lbl_804EE7D8 = .rodata:0x804EE7D8; // type:object size:0x18 data:4byte
lbl_804EE7F0 = .rodata:0x804EE7F0; // type:object size:0x150 data:4byte
@@ -36437,24 +36436,48 @@ __vt__27sFState_c<14dLytGameOver_c> = .data:0x80537D68; // type:object size:0x39
__vt__32sFStateID_c<17dLytGameOverMgr_c> = .data:0x805380F8; // type:object size:0x34
__vt__29sFStateID_c<14dLytGameOver_c> = .data:0x8053812C; // type:object size:0x34
g_profile_LYT_SAVE_MGR = .data:0x80538160; // type:object size:0xC
lbl_8053816C = .data:0x8053816C; // type:object size:0xC data:string
lbl_80538178 = .data:0x80538178; // type:object size:0xC data:string
lbl_80538184 = .data:0x80538184; // type:object size:0xC data:string
lbl_80538190 = .data:0x80538190; // type:object size:0xC data:string
lbl_8053819C = .data:0x8053819C; // type:object size:0xC data:string
lbl_805381A8 = .data:0x805381A8; // type:object size:0x10
lbl_805381B8 = .data:0x805381B8; // type:object size:0x18
lbl_805381D0 = .data:0x805381D0; // type:object size:0xC data:string
lbl_805381DC = .data:0x805381DC; // type:object size:0xC data:string
lbl_805381E8 = .data:0x805381E8; // type:object size:0xC data:string
lbl_805381F4 = .data:0x805381F4; // type:object size:0xC data:string
lbl_80538200 = .data:0x80538200; // type:object size:0x78
vtable = .data:0x80538278; // type:object size:0x50
lbl_805382C8 = .data:0x805382C8; // type:object size:0x30
lbl_805382F8 = .data:0x805382F8; // type:object size:0x30
lbl_80538328 = .data:0x80538328; // type:object size:0x18
lbl_80538340 = .data:0x80538340; // type:object size:0x124
lbl_80538464 = .data:0x80538464; // type:object size:0x34
...data.0 = .data:0x80538160; // type:label scope:local
@25212 = .data:0x8053816C; // type:object size:0xC scope:local data:string
@25213 = .data:0x80538178; // type:object size:0xC scope:local data:string
@25214 = .data:0x80538184; // type:object size:0xC scope:local data:string
@25215 = .data:0x80538190; // type:object size:0xC scope:local data:string
@25216 = .data:0x8053819C; // type:object size:0xC scope:local data:string
@25217 = .data:0x805381A8; // type:object size:0xC scope:local data:string
@LOCAL@executeState_FadeOut__13dLytSaveMgr_cFv@sFadeOutTexts = .data:0x805381B8; // type:object size:0x18 scope:local
@25241 = .data:0x805381D0; // type:object size:0xC scope:local data:string
@25242 = .data:0x805381DC; // type:object size:0xC scope:local data:string
@25243 = .data:0x805381E8; // type:object size:0xC scope:local data:string
@25244 = .data:0x805381F4; // type:object size:0xC scope:local data:string
@25245 = .data:0x80538200; // type:object size:0xC scope:local data:string
@LOCAL@executeState_Select__13dLytSaveMgr_cFv@sConfirmTexts = .data:0x80538210; // type:object size:0x18 scope:local
@27092 = .data:0x80538228; // type:object size:0xC scope:local data:string
@27093 = .data:0x80538238; // type:object size:0x10 scope:local data:string
@27094 = .data:0x80538248; // type:object size:0xC scope:local data:string
@27095 = .data:0x80538254; // type:object size:0xC scope:local data:string
@27096 = .data:0x80538260; // type:object size:0xC scope:local data:string
@27097 = .data:0x8053826C; // type:object size:0xC scope:local data:string
__vt__13dLytSaveMgr_c = .data:0x80538278; // type:object size:0x4C
__vt__52sFStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c> = .data:0x805382C8; // type:object size:0x30 scope:weak
__vt__82sStateMgr_c<13dLytSaveMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805382F8; // type:object size:0x30 scope:weak
__vt__29sFStateFct_c<13dLytSaveMgr_c> = .data:0x80538328; // type:object size:0x14 scope:weak
__vt__26sFState_c<13dLytSaveMgr_c> = .data:0x80538340; // type:object size:0x18 scope:weak
@27154 = .data:0x80538358; // type:object size:0xC scope:local
@27155 = .data:0x80538364; // type:object size:0xC scope:local
@27156 = .data:0x80538370; // type:object size:0xC scope:local
@27157 = .data:0x8053837C; // type:object size:0xC scope:local
@27158 = .data:0x80538388; // type:object size:0xC scope:local
@27159 = .data:0x80538394; // type:object size:0xC scope:local
@27160 = .data:0x805383A0; // type:object size:0xC scope:local
@27161 = .data:0x805383AC; // type:object size:0xC scope:local
@27162 = .data:0x805383B8; // type:object size:0xC scope:local
@27163 = .data:0x805383C4; // type:object size:0xC scope:local
@27164 = .data:0x805383D0; // type:object size:0xC scope:local
@27165 = .data:0x805383DC; // type:object size:0xC scope:local
@27167 = .data:0x805383E8; // type:object size:0x1C scope:local data:string
@27168 = .data:0x80538404; // type:object size:0x1F scope:local data:string
@27169 = .data:0x80538424; // type:object size:0x1E scope:local data:string
@27170 = .data:0x80538444; // type:object size:0x1E scope:local data:string
__vt__28sFStateID_c<13dLytSaveMgr_c> = .data:0x80538464; // type:object size:0x34 scope:weak
g_profile_LYT_DROP_LINE = .data:0x80538498; // type:object size:0xC
lbl_805384A4 = .data:0x805384A4; // type:object size:0xC
lbl_805384B0 = .data:0x805384B0; // type:object size:0x50
@@ -40875,7 +40898,7 @@ lbl_80573B60 = .sdata:0x80573B60; // type:object size:0x5 data:string
lbl_80573B68 = .sdata:0x80573B68; // type:object size:0x5 data:string
lbl_80573B70 = .sdata:0x80573B70; // type:object size:0x5 data:string
lbl_80573B78 = .sdata:0x80573B78; // type:object size:0x5 data:string
lbl_80573B80 = .sdata:0x80573B80; // type:object size:0x8
@27091 = .sdata:0x80573B80; // type:object size:0x5 scope:local data:string
lbl_80573B88 = .sdata:0x80573B88; // type:object size:0x8 data:string
lbl_80573B90 = .sdata:0x80573B90; // type:object size:0x4 data:4byte
lbl_80573B94 = .sdata:0x80573B94; // type:object size:0x4 data:4byte
@@ -42200,7 +42223,7 @@ sDisp00ArrowRotation__14dLytPauseMgr_c = .sbss:0x80575938; // type:object size:0
sDisp00ArrowLength__14dLytPauseMgr_c = .sbss:0x8057593C; // type:object size:0x4 align:4 data:float
sInstance__14dLytPauseMgr_c = .sbss:0x80575940; // type:object size:0x4 data:4byte
sInstance__17dLytGameOverMgr_c = .sbss:0x80575948; // type:object size:0x4 data:4byte
sInstance__13dLytSaveMgr_c = .sbss:0x80575950; // type:object size:0x8 data:4byte
sInstance__13dLytSaveMgr_c = .sbss:0x80575950; // type:object size:0x4 data:4byte
lbl_80575958 = .sbss:0x80575958; // type:object size:0x1 data:byte
lbl_80575959 = .sbss:0x80575959; // type:object size:0x1 data:byte
lbl_8057595C = .sbss:0x8057595C; // type:object size:0x4 data:4byte
@@ -52031,11 +52054,15 @@ LytGameOver__STATE_OUT = .bss:0x805B5E10; // type:object size:0x40 data:4byte
LytGameOverMgr__STATE_INIT = .bss:0x805B5E50; // type:object size:0x40 data:4byte
LytGameOverMgr__STATE_FADE_OUT = .bss:0x805B5E90; // type:object size:0x40 data:4byte
LytGameOverMgr__STATE_SELECT = .bss:0x805B5ED0; // type:object size:0x30 data:4byte
lbl_805B5F00 = .bss:0x805B5F00; // type:object size:0x10
LytSaveMgr__STATE_INIT = .bss:0x805B5F10; // type:object size:0x40 data:4byte
LytSaveMgr__STATE_FADE_OUT = .bss:0x805B5F50; // type:object size:0x40 data:4byte
LytSaveMgr__STATE_SELECT = .bss:0x805B5F90; // type:object size:0x40 data:4byte
LytSaveMgr__STATE_FADE_IN = .bss:0x805B5FD0; // type:object size:0x30 data:4byte
@25076 = .bss:0x805B5F00; // type:object size:0xC scope:local
...bss.0 = .bss:0x805B5F00; // type:label scope:local
StateID_Init__13dLytSaveMgr_c = .bss:0x805B5F10; // type:object size:0x30 data:4byte
@25080 = .bss:0x805B5F40; // type:object size:0xC scope:local
StateID_FadeOut__13dLytSaveMgr_c = .bss:0x805B5F50; // type:object size:0x30 data:4byte
@25084 = .bss:0x805B5F80; // type:object size:0xC scope:local
StateID_Select__13dLytSaveMgr_c = .bss:0x805B5F90; // type:object size:0x30 data:4byte
@25088 = .bss:0x805B5FC0; // type:object size:0xC scope:local
StateID_FadeIn__13dLytSaveMgr_c = .bss:0x805B5FD0; // type:object size:0x30 data:4byte
lbl_805B6000 = .bss:0x805B6000; // type:object size:0x10
lbl_805B6010 = .bss:0x805B6010; // type:object size:0x20
LytDropLineParts__STATE_WAIT = .bss:0x805B6030; // type:object size:0x40 data:4byte
+1 -1
View File
@@ -627,7 +627,7 @@ config.libs = [
Object(NonMatching, "toBeSorted/d_a_npc_str.cpp"),
Object(Matching, "d/lyt/d_lyt_pause.cpp"),
Object(NonMatching, "d/lyt/d_lyt_game_over.cpp"),
Object(NonMatching, "d/lyt/d_lyt_save_mgr.cpp"),
Object(Matching, "d/lyt/d_lyt_save_mgr.cpp"),
Object(NonMatching, "d/lyt/d_lyt_drop_line.cpp"),
Object(NonMatching, "d/lyt/d_lyt_force_line.cpp"),
Object(NonMatching, "d/lyt/d_lyt_enemy_icon.cpp"),
+1 -1
View File
@@ -2,7 +2,7 @@
#define D_FLAG_STORYFLAG_MANAGER_H
#include "d/flag/baseflag_manager.h"
#include "d/flag/storyflag_map.h"
#include "d/flag/storyflag_map.h" // IWYU pragma: export
#include "toBeSorted/file_manager.h"
class StoryflagManager : public ItemStoryManagerBase {
+2 -2
View File
@@ -197,7 +197,7 @@ enum StoryFlags_e {
* Sealed Grounds layer 1 / Behind The Temple layer 1 / Goddess Statue layers 2&3)] Story Flag #36 (0x0024) - JP
* 805ACD5D 0x10 / US 805A9ADD 0x10
*/
STORYFLAG_36,
STORYFLAG_HEROS_TUNIC_FI,
/** [Horwell Z-target tutorial]
* Story Flag #37 (0x0025) - JP 805ACD65 0x08 / US 805A9AE5 0x08
@@ -1150,7 +1150,7 @@ enum StoryFlags_e {
/** [Hero Mode]
* Story Flag #226 (0x00E2) - JP 805ACD72 0x08 / US 805A9AF2 0x08
*/
STORYFLAG_226,
STORYFLAG_HERO_MODE,
/** [First Goddess Cube (Unlocks ability to skyward strike Goddess Cubes)]
* Story Flag #227 (0x00E3) - JP 805ACD72 0x20 / US 805A9AF2 0x20
+60 -4
View File
@@ -1,17 +1,73 @@
#ifndef D_LYT_SAVE_MGR_H
#define D_LYT_SAVE_MGR_H
class dLytSaveMgr_c {
public:
#include "d/d_base.h"
#include "d/lyt/d_lyt_save_msg_window.h"
#include "s/s_State.hpp"
static dLytSaveMgr_c* GetInstance() {
class dLytSaveMgr_c : public dBase_c {
public:
dLytSaveMgr_c();
virtual ~dLytSaveMgr_c();
virtual int create() override;
virtual int doDelete() override;
virtual int execute() override;
virtual int draw() override;
static dLytSaveMgr_c *GetInstance() {
return sInstance;
}
bool fn_80285650() const;
void init();
enum FadeInPrompt_e {
PROMPT_SAVEOBJ_NORMAL,
PROMPT_SAVEOBJ_TOSKY,
PROMPT_SAVEOBJ_DUNGEON,
PROMPT_SAVE_NORMAL,
PROMPT_HERO_MODE,
PROMPT_HERO_MODE_CONFIRM,
PROMPT_MAX,
PROMPT_SAVEOBJ_NUM = PROMPT_SAVEOBJ_DUNGEON + 1,
};
bool setPrompt(s32 prompt, bool setTempflag2);
bool setSaveobjPrompt(s32 prompt, u8 saveobjId, bool setTempflag2);
bool unused_weakfnorder();
bool isBusy() const;
enum Action_e {
ACTION_0,
ACTION_1,
ACTION_2,
ACTION_3,
ACTION_MAX,
};
private:
static dLytSaveMgr_c *sInstance;
STATE_FUNC_DECLARE(dLytSaveMgr_c, Init);
STATE_FUNC_DECLARE(dLytSaveMgr_c, FadeOut);
STATE_FUNC_DECLARE(dLytSaveMgr_c, Select);
STATE_FUNC_DECLARE(dLytSaveMgr_c, FadeIn);
/* 0x0068 */ UI_STATE_MGR_DECLARE(dLytSaveMgr_c);
/* 0x00A4 */ dLytSaveMsgWindow_c mWindow;
/* 0x1184 */ s32 mSavePrompt;
/* 0x1188 */ s32 mStep;
/* 0x118C */ s32 mChosenAction;
/* 0x1190 */ u8 _0x1190[0x119A - 0x1190];
/* 0x119A */ u8 mSaveobjId;
/* 0x119B */ bool mFadeOutRequested;
/* 0x119C */ bool mIsFinishedFadingIn;
/* 0x119D */ bool mShouldSetTempflag2;
};
#endif
+31
View File
@@ -11,6 +11,13 @@ public:
dLytSaveMsgWindow_c();
virtual ~dLytSaveMsgWindow_c() {}
enum Mode_e {
MODE_NONE,
MODE_2_BUTTONS,
MODE_3_BUTTONS,
MODE_4_BUTTONS,
};
bool build(bool);
bool remove();
bool execute();
@@ -28,6 +35,30 @@ public:
return mWillFinishOut;
}
void setField0x10B8(s32 val) {
field_0x10B8 = val;
}
void setField0x10BC(s32 val) {
field_0x10BC = val;
}
s32 getField0x10C4() const {
return field_0x10C4;
}
s32 getField0x10C8() const {
return field_0x10C8;
}
void setField0x10DC(u8 val) {
field_0x10DC = val;
}
void setSaveObjId(s32 id) {
mSaveobjId = id;
}
private:
void resetProperties();
void setupSaveTextMaybe();
+8 -2
View File
@@ -124,9 +124,15 @@ public:
return sInstance;
}
bool isIdle() const {
return mIsIdle;
}
bool getField_0x83D() const {
return field_0x83D;
}
void setField_0x83D(bool v) {
field_0x83D = v;
}
bool getField_0x83F() const {
return field_0x83F;
}
@@ -226,14 +232,14 @@ private:
/* 0x830 */ s32 mDelayTimer;
/* 0x834 */ u8 mCopyToFile;
/* 0x835 */ u8 mCopyFromFile;
/* 0x836 */ u8 field_0x836;
/* 0x836 */ bool mIsIdle;
/* 0x837 */ u8 field_0x837;
/* 0x838 */ u8 field_0x838;
/* 0x839 */ u8 field_0x839;
/* 0x83A */ u8 field_0x83A;
/* 0x83B */ u8 field_0x83B;
/* 0x83C */ u8 field_0x83C;
/* 0x83D */ u8 field_0x83D;
/* 0x83D */ bool field_0x83D;
/* 0x83E */ u8 field_0x83E;
/* 0x83F */ u8 field_0x83F;
+633
View File
@@ -0,0 +1,633 @@
#include "d/lyt/d_lyt_save_mgr.h"
#include "common.h"
#include "d/a/d_a_player.h"
#include "d/d_base.h"
#include "d/d_player.h"
#include "d/d_sc_game.h"
#include "d/d_sc_title.h"
#include "d/d_stage.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
#include "d/lyt/d_lyt_save_msg_window.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/save_manager.h"
SPECIAL_BASE_PROFILE(LYT_SAVE_MGR, dLytSaveMgr_c, fProfile::LYT_SAVE_MGR, 0x2AD, 1);
STATE_DEFINE(dLytSaveMgr_c, Init);
STATE_DEFINE(dLytSaveMgr_c, FadeOut);
STATE_DEFINE(dLytSaveMgr_c, Select);
STATE_DEFINE(dLytSaveMgr_c, FadeIn);
dLytSaveMgr_c *dLytSaveMgr_c::sInstance;
dLytSaveMgr_c::dLytSaveMgr_c() : mStateMgr(*this) {
sInstance = this;
init();
}
dLytSaveMgr_c::~dLytSaveMgr_c() {
sInstance = nullptr;
}
int dLytSaveMgr_c::create() {
mWindow.build(true);
mStateMgr.changeState(StateID_Init);
return SUCCEEDED;
}
int dLytSaveMgr_c::doDelete() {
mWindow.remove();
return SUCCEEDED;
}
int dLytSaveMgr_c::execute() {
mStateMgr.executeState();
return SUCCEEDED;
}
int dLytSaveMgr_c::draw() {
mWindow.draw();
return SUCCEEDED;
}
bool dLytSaveMgr_c::setPrompt(s32 prompt, bool setTempflag2) {
mSavePrompt = prompt;
mShouldSetTempflag2 = setTempflag2;
mFadeOutRequested = true;
return true;
}
bool dLytSaveMgr_c::setSaveobjPrompt(s32 prompt, u8 saveobjId, bool setTempflag2) {
mSavePrompt = prompt;
mSaveobjId = saveobjId;
mShouldSetTempflag2 = setTempflag2;
mFadeOutRequested = true;
return true;
}
bool dLytSaveMgr_c::unused_weakfnorder() {
return mStateMgr.getStateID()->isEqual(StateID_Init);
}
bool dLytSaveMgr_c::isBusy() const {
return !mStateMgr.getStateID()->isEqual(StateID_Init);
}
void dLytSaveMgr_c::initializeState_Init() {
mStep = 0;
mFadeOutRequested = false;
mIsFinishedFadingIn = false;
}
void dLytSaveMgr_c::executeState_Init() {
if (mFadeOutRequested == true) {
mStateMgr.changeState(StateID_FadeOut);
}
}
void dLytSaveMgr_c::finalizeState_Init() {}
void dLytSaveMgr_c::initializeState_FadeOut() {
if (mSavePrompt == PROMPT_HERO_MODE) {
StoryflagManager::sInstance->setFlag(STORYFLAG_490);
if (StoryflagManager::sInstance->getFlag(STORYFLAG_HERO_MODE)) {
// Skip hero mode prompt if we were in hero mode
mSavePrompt = PROMPT_HERO_MODE_CONFIRM;
}
}
}
void dLytSaveMgr_c::executeState_FadeOut() {
static const char *sFadeOutTexts[] = {
"SYS_SAVE_03", // "[1]Save[2]Save and quit[3-]Cancel"
"SYS_SAVE_05", // "[1]Save[2]Save and quit[3]To the sky[4-]Cancel"
"SYS_SAVE_07", // "[1]Save[2]Save and quit[3]Go outside[4-]Cancel"
"SYS_SAVE_09", // "Do you want to save your progress? [1]Save[2]Save and quit[3-]Cancel"
"SYS_SAVE_16", // "You can play again in Hero Mode using this save data. Do you want to continue? [1]Yes[2-]No"
"SYS_SAVE_14", // "Your progress up to this point will be deleted. Are you sure you want to play Hero Mode?
// [1]Bring it on[2-]No, thanks"
};
static const s32 sFadeOutModes[] = {
dLytSaveMsgWindow_c::MODE_3_BUTTONS, dLytSaveMsgWindow_c::MODE_4_BUTTONS, dLytSaveMsgWindow_c::MODE_4_BUTTONS,
dLytSaveMsgWindow_c::MODE_3_BUTTONS, dLytSaveMsgWindow_c::MODE_2_BUTTONS, dLytSaveMsgWindow_c::MODE_2_BUTTONS,
};
if (mWindow.setProperties(sFadeOutTexts[mSavePrompt], sFadeOutModes[mSavePrompt], 0, 1)) {
mWindow.setField0x10DC(1);
mWindow.setField0x10B8(0);
mStateMgr.changeState(StateID_Select);
if (mSavePrompt < PROMPT_SAVEOBJ_NUM) {
mWindow.setSaveObjId(mSaveobjId);
}
}
if (mSavePrompt == PROMPT_SAVE_NORMAL) {
dBase_c::s_NextExecuteControlFlags |= 1;
dBase_c::s_DrawControlFlags |= 1;
}
}
void dLytSaveMgr_c::finalizeState_FadeOut() {}
void dLytSaveMgr_c::initializeState_Select() {
mStep = 0;
if (mSavePrompt == PROMPT_HERO_MODE) {
mStep = 200;
} else if (mSavePrompt == PROMPT_HERO_MODE_CONFIRM) {
mStep = 300;
StoryflagManager::sInstance->setFlag(STORYFLAG_HEROS_TUNIC_FI);
}
}
void dLytSaveMgr_c::executeState_Select() {
static const char *sConfirmTexts[] = {
"SYS_SAVE_04", // "Are you sure you want to quit? [1]Yes[2-]No"
"SYS_SAVE_06", // "Do you want to return to the sky? [1]Yes[2-]No"
"SYS_SAVE_08", // "Leave the area? [1]Leave[2-]Stay"
"SYS_SAVE_04", // "Are you sure you want to quit? [1]Yes[2-]No"
"SYS_SAVE_17", // "Your progress up to this point will be deleted. Are you sure you want to play Hero Mode?
// [1]Bring it on[2-]No, thanks"
"SYS_SAVE_15", // "Are you sure you want to return to the title screen without saving? [1]Don't save[2-]Save"
};
mWindow.execute();
switch (mStep) {
case 0: {
if (mWindow.getField0x10C8() == 0 || mWindow.getField0x10C8() == 1) {
SaveMgr::GetInstance()->setField_0x83D(true);
}
s32 confirmedButton = mWindow.getField0x10C4();
if (confirmedButton >= 0) {
mWindow.checkIsWait();
mStep = 1;
if (confirmedButton == 0 || confirmedButton == 1) {
mWindow.setField0x10BC(1);
} else if (mSavePrompt == PROMPT_SAVEOBJ_TOSKY || mSavePrompt == PROMPT_SAVEOBJ_DUNGEON) {
if (confirmedButton == 2) {
mWindow.setField0x10BC(1);
} else {
mWindow.setField0x10BC(0);
}
} else {
mWindow.setField0x10BC(0);
}
}
break;
}
case 1: {
if (mWindow.getWillFinishOut() == true) {
s32 confirmedButton = mWindow.getField0x10C4();
if (confirmedButton == 0) {
mChosenAction = ACTION_0;
mStep = 20;
if (mShouldSetTempflag2 == true) {
mShouldSetTempflag2 = false;
if (FileManager::GetInstance()->get_0xA84C() == 0) {
SceneflagManager::sInstance->setTempflag_i(dStage_c::GetInstance()->getCurrRoomId(), 0x2);
}
}
} else if (confirmedButton == 1) {
mChosenAction = ACTION_3;
mStep = 20;
} else if (mSavePrompt == PROMPT_SAVEOBJ_NORMAL || mSavePrompt == PROMPT_SAVE_NORMAL) {
mChosenAction = ACTION_0;
mStep = 100;
} else if (mSavePrompt == PROMPT_SAVEOBJ_TOSKY) {
if (confirmedButton == 2) {
mStep = 10;
mChosenAction = ACTION_1;
} else {
mChosenAction = ACTION_0;
mStep = 100;
}
} else {
if (confirmedButton == 2) {
mChosenAction = ACTION_1;
mStep = 10;
} else {
mChosenAction = ACTION_0;
mStep = 100;
}
}
if (mStep == 20 &&
(FileManager::GetInstance()->get_0xA84C() != 0 || !FileManager::GetInstance()->checkRegionCode())) {
mStep = 30;
SaveMgr::GetInstance()->setField_0x83D(false);
}
}
break;
}
case 10: {
if (mWindow.setProperties(sConfirmTexts[mSavePrompt], dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep = 11;
break;
}
// fall-through
}
case 11: {
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(0);
mStep = 12;
}
break;
}
case 12: {
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() == 0) {
FileManager::GetInstance()->setPlayerInfoFileA();
} else {
mChosenAction = ACTION_0;
}
mStep = 100;
}
break;
}
case 20: {
bool b = false;
if (mSavePrompt == PROMPT_SAVE_NORMAL) {
b = true;
}
if (mSavePrompt != PROMPT_SAVE_NORMAL && mSavePrompt != PROMPT_HERO_MODE) {
dAcPy_c *link = getLinkPtr();
if (link != nullptr && !dScGame_c::isCurrentStage("F202")) {
// not Boko Base
FileManager::GetInstance()->setT3Info(link->mPosition, link->mAngle);
StoryflagManager::sInstance->setFlag(STORYFLAG_RESPAWN_AT_STATUE);
}
}
FileManager::GetInstance()->fn_8000CBD0(b);
mStep = 29;
break;
}
case 29: {
bool t1Flag = false;
if (mSavePrompt == PROMPT_SAVE_NORMAL) {
t1Flag = true;
}
if (SaveMgr::GetInstance()->save(t1Flag, true) == true) {
mStep = 21;
}
break;
}
case 21: {
if (SaveMgr::GetInstance()->isIdle() == true) {
if (mChosenAction == ACTION_3) {
mStep = 22;
} else {
mStep = 40;
}
}
break;
}
case 22: {
if (mWindow.setProperties(
sConfirmTexts[PROMPT_SAVEOBJ_NORMAL], dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1
)) {
mWindow.setField0x10B8(1);
mStep = 23;
}
break;
}
case 23: {
s32 confirmedButton = mWindow.getField0x10C4();
if (confirmedButton >= 0) {
if (confirmedButton != 0) {
mWindow.checkIsWait();
mStep = 24;
mWindow.setField0x10BC(0);
} else {
mStep = 25;
}
}
break;
}
case 24: {
if (mWindow.getWillFinishOut() == true) {
mChosenAction = ACTION_0;
mStep = 100;
}
break;
}
case 25: {
dScTitle_c::loadTitleScreen(1);
mStep = 1000;
break;
}
case 30: {
// "It is not possible to save. Continue your adventure anyway? [1]Continue[2]Quit"
if (mWindow.setProperties("SYS_SAVE_11", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mWindow.setNumLines(2);
mStep++;
}
break;
}
case 31: {
s32 confirmedButton = mWindow.getField0x10C4();
if (confirmedButton >= 0) {
mWindow.checkIsWait();
if (confirmedButton != 0) {
mWindow.setField0x10BC(1);
} else {
mWindow.setField0x10BC(0);
}
mStep++;
}
break;
}
case 32: {
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4()) {
mStep = 50;
} else {
mChosenAction = ACTION_0;
mStep = 100;
}
}
break;
}
case 40:
if (mWindow.checkIsWait()) {
mWindow.setField0x10BC(2);
mStep++;
}
break;
case 41:
if (mWindow.getWillFinishOut() == true) {
mStep = 100;
}
break;
case 50:
// "Are you sure you want to quit? [1]Quit[2-]Cancel"
if (mWindow.setProperties("SYS_GAMEOVER_03", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep++;
}
break;
case 51:
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(0);
mStep++;
}
break;
case 52:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() == 0) {
dScTitle_c::loadTitleScreen(0);
mStep = 1000;
} else {
mChosenAction = ACTION_0;
mStep = 100;
}
}
break;
case 60:
if (mWindow.setProperties(sConfirmTexts[mSavePrompt], dLytSaveMsgWindow_c::MODE_3_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep = 61;
}
break;
case 61:
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(0);
mStep = 62;
}
break;
case 62:
if (mWindow.getWillFinishOut() == true) {
s32 confirmedButton = mWindow.getField0x10C4();
if (confirmedButton == 0) {
mChosenAction = ACTION_1;
FileManager::GetInstance()->setPlayerInfoFileA();
} else if (confirmedButton == 1) {
mChosenAction = ACTION_2;
FileManager::GetInstance()->setPlayerInfoFileA();
} else {
mChosenAction = ACTION_0;
}
mStep = 100;
}
break;
case 100: {
mStateMgr.changeState(StateID_FadeIn);
break;
}
case 200:
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(1);
mStep++;
}
break;
case 201:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() != 0) {
mStep = 230;
} else {
mStep = 210;
}
}
break;
case 210:
// "Your progress up to this point will be deleted. Are you sure you want to play Hero Mode? [1]Bring it on[2-]No, thanks"
if (mWindow.setProperties("SYS_SAVE_17", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep++;
}
break;
case 211:
if (mWindow.getField0x10C8() == 0) {
SaveMgr::GetInstance()->setField_0x83D(true);
}
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(1);
mStep++;
}
break;
case 212:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() != 0) {
mWindow.setField0x10BC(1);
mStep = 230;
} else {
mWindow.setField0x10BC(1);
mStep++;
}
}
break;
case 213:
FileManager::GetInstance()->fn_8000CBD0(true);
if (SaveMgr::GetInstance()->saveAfterCredits() == true) {
mStep++;
}
break;
case 214:
if (SaveMgr::GetInstance()->isIdle() == true) {
mStep = 40;
}
break;
case 230:
// "Are you sure you want to return to the title screen without saving? [1]Don't save[2-]Save"
if (mWindow.setProperties("SYS_SAVE_15", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep++;
}
break;
case 231: {
s32 tmp = mWindow.getField0x10C4();
if (tmp >= 0) {
mWindow.checkIsWait();
if (tmp != 0) {
mWindow.setField0x10BC(1);
} else {
mWindow.setField0x10BC(0);
}
mStep++;
}
break;
}
case 232:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() != 0) {
mStep++;
} else {
mStep = 100;
}
}
break;
case 233:
// "You can play again in Hero Mode using this save data. Do you want to continue? [1]Yes[2-]No"
if (mWindow.setProperties("SYS_SAVE_16", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep = 200;
}
break;
case 300:
if (mWindow.getField0x10C8() == 0) {
SaveMgr::GetInstance()->setField_0x83D(true);
}
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(1);
mStep++;
}
break;
case 301:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() != 0) {
mStep = 320;
} else if (FileManager::GetInstance()->get_0xA84C()) {
mStep = 330;
SaveMgr::GetInstance()->setField_0x83D(false);
} else {
mStep = 310;
}
}
break;
case 310:
FileManager::GetInstance()->fn_8000CBD0(true);
if (SaveMgr::GetInstance()->saveAfterCredits() == true) {
mStep++;
}
break;
case 311:
if (SaveMgr::GetInstance()->isIdle() == true) {
mStep = 40;
}
break;
case 320:
if (mWindow.setProperties(sConfirmTexts[mSavePrompt], dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep++;
}
break;
case 321: {
s32 tmp = mWindow.getField0x10C4();
if (tmp >= 0) {
mWindow.checkIsWait();
if (tmp != 0) {
mWindow.setField0x10BC(1);
} else {
mWindow.setField0x10BC(0);
}
mStep++;
}
break;
}
case 322:
if (mWindow.getWillFinishOut() == true) {
if (mWindow.getField0x10C4() != 0) {
mStep++;
} else {
mStep = 100;
}
}
break;
case 323:
// "You have conquered Hero Mode! Congratulations! Do you want to create a save just before the final
// battle? [1]Save[2-]Don't save"
if (mWindow.setProperties("SYS_SAVE_14", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mStep = 300;
}
break;
case 330:
// "It is not possible to save. Continue your adventure anyway? [1]Continue[2]Quit"
if (mWindow.setProperties("SYS_SAVE_11", dLytSaveMsgWindow_c::MODE_2_BUTTONS, 0, 1)) {
mWindow.setField0x10B8(1);
mWindow.setNumLines(2);
mStep++;
}
break;
case 331:
if (mWindow.getField0x10C4() >= 0) {
mWindow.checkIsWait();
mWindow.setField0x10BC(0);
mStep++;
}
break;
case 332:
if (mWindow.getWillFinishOut() == true) {
mStep = 100;
}
break;
}
}
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;
}
}
void dLytSaveMgr_c::executeState_FadeIn() {
switch (mStep) {
case 0: {
mIsFinishedFadingIn = true;
mStep = 1;
break;
}
case 1: {
mStateMgr.changeState(StateID_Init);
break;
}
}
}
void dLytSaveMgr_c::finalizeState_FadeIn() {}
void dLytSaveMgr_c::init() {
mStep = 0;
mChosenAction = ACTION_MAX;
mSavePrompt = PROMPT_MAX;
mFadeOutRequested = false;
mIsFinishedFadingIn = false;
mSaveobjId = 0;
}
+1 -1
View File
@@ -1079,7 +1079,7 @@ bool dLytMeterMain_c::fn_800D5680() {
}
bool dLytMeterMain_c::fn_800D56B0() {
if (dLytSaveMgr_c::GetInstance() != nullptr && dLytSaveMgr_c::GetInstance()->fn_80285650()) {
if (dLytSaveMgr_c::GetInstance() != nullptr && dLytSaveMgr_c::GetInstance()->isBusy()) {
return true;
}
+17 -17
View File
@@ -69,14 +69,14 @@ void SaveMgr::init() {
mCheckForFreeSpaceResult = 0;
mCopyToFile = 0;
mCopyFromFile = 0;
field_0x836 = 0;
mIsIdle = false;
field_0x837 = 0;
field_0x838 = 0;
field_0x839 = 0;
field_0x83A = 0;
field_0x83B = 0;
field_0x83C = 0;
field_0x83D = 0;
field_0x83D = false;
field_0x83E = 0;
mDelayTimer = 0;
FileManager::GetInstance()->setField0xA840(1);
@@ -116,7 +116,7 @@ bool SaveMgr::checkForSave() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeCheckForSave();
return true;
}
@@ -125,7 +125,7 @@ bool SaveMgr::checkForFreeSpace() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeCheckForFreeSpace();
return true;
}
@@ -134,7 +134,7 @@ bool SaveMgr::createFiles() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeCreateFiles();
return true;
}
@@ -143,7 +143,7 @@ bool SaveMgr::loadSave() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeLoadSave();
return true;
}
@@ -155,7 +155,7 @@ bool SaveMgr::save(bool entranceT1LoadFlag, bool full) {
if (FileManager::GetInstance()->get_0xA84C()) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
if (full == 1) {
FileManager::GetInstance()->saveT1SaveInfo(entranceT1LoadFlag);
} else {
@@ -174,7 +174,7 @@ bool SaveMgr::saveAfterCredits() {
if (FileManager::GetInstance()->get_0xA84C()) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
dDvdUnk::FontUnk::GetInstance()->setNeedsPad(true);
FileManager::GetInstance()->setFileTimes();
FileManager::GetInstance()->saveAfterCredits();
@@ -187,7 +187,7 @@ bool SaveMgr::writeSkipDat() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeWriteSkipDat();
return true;
}
@@ -196,7 +196,7 @@ bool SaveMgr::copySave(u8 to, u8 from) {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
mCopyToFile = to;
mCopyFromFile = from;
initializeCopySave();
@@ -208,7 +208,7 @@ bool SaveMgr::clearSelectedFile() {
if (mCurrentState != STATE_MAX) {
return false;
}
field_0x836 = 0;
mIsIdle = false;
initializeClearSelectedFile();
field_0x83F = 0;
return true;
@@ -723,7 +723,7 @@ void SaveMgr::initializeWriteSave() {
mDelayTimer = 0;
dDvdUnk::FontUnk::GetInstance()->setNeedsPad(false);
FileManager::GetInstance()->setField0xA84D(1);
field_0x83D = 1;
field_0x83D = true;
}
void SaveMgr::executeWriteSave() {
@@ -1216,7 +1216,7 @@ void SaveMgr::executeDeleteAllData() {
void SaveMgr::initializeError() {
FileManager::GetInstance()->setField0xA84D(0);
field_0x83D = 0;
field_0x83D = false;
beginState(STATE_ERROR);
dDvdUnk::FontUnk::GetInstance()->setNeedsPad(true);
field_0x83F = 0;
@@ -1371,7 +1371,7 @@ void SaveMgr::executeError() {
void SaveMgr::initializeNandError() {
FileManager::GetInstance()->setField0xA84D(0);
field_0x83D = 0;
field_0x83D = false;
dDvdUnk::FontUnk::GetInstance()->setNeedsPad(true);
beginState(STATE_NAND_ERROR);
}
@@ -1458,7 +1458,7 @@ void SaveMgr::executeNandError() {
dCsBase_c::GetInstance()->setDrawDirectly(false);
dReset::Manage_c::GetInstance()->SetInteriorReturnDataManager();
endState();
field_0x836 = 0;
mIsIdle = false;
}
break;
}
@@ -1519,9 +1519,9 @@ void SaveMgr::beginState(SaveMgrState_e state) {
}
void SaveMgr::endState() {
field_0x836 = 1;
mIsIdle = true;
FileManager::GetInstance()->setField0xA840(1);
field_0x83D = 0;
field_0x83D = false;
dDvdUnk::FontUnk::GetInstance()->setNeedsPad(true);
field_0x83B = 0;
field_0x83C = 0;