d_lyt_pause_back OK

This commit is contained in:
robojumper
2025-08-03 12:35:45 +02:00
parent e97f2d6a4a
commit b4200519b1
7 changed files with 332 additions and 71 deletions
+2 -1
View File
@@ -1002,7 +1002,7 @@ d/lyt/d_lyt_deposit_stock.cpp:
d/lyt/d_lyt_deposit_box.cpp:
.text start:0x801578B0 end:0x80158288 align:16
.rodata start:0x804E8218 end:0x804E8258
.rodata start:0x804E8218 end:0x804E8248
.data start:0x80524BC8 end:0x80524CD0
.sdata start:0x80572990 end:0x80572998
.sdata2 start:0x8057A060 end:0x8057A078
@@ -1019,6 +1019,7 @@ d/lyt/d_lyt_boss_gauge.cpp:
d/lyt/d_lyt_pause_back.cpp:
.text start:0x80158E80 end:0x80159E78 align:16
.ctors start:0x804DB794 end:0x804DB798
.rodata start:0x804E8248 end:0x804E8258
.data start:0x80524ED0 end:0x80525138
.sdata2 start:0x8057A090 end:0x8057A098
.bss start:0x805B1570 end:0x805B1670
+89 -68
View File
@@ -8733,53 +8733,53 @@ fn_80158940__15dLytBossGauge_cFv = .text:0x80158940; // type:function size:0x108
__sinit_\d_lyt_boss_gauge_cpp = .text:0x80158A50; // type:function size:0x338 scope:local
__dt__30sFStateID_c<15dLytBossGauge_c>Fv = .text:0x80158D90; // type:function size:0x58
isSameName__30sFStateID_c<15dLytBossGauge_c>CFPCc = .text:0x80158DF0; // type:function size:0x88
LytPauseBack__ctor = .text:0x80158E80; // type:function size:0xC0
fn_80158F40 = .text:0x80158F40; // type:function size:0xA4
fn_80158FF0 = .text:0x80158FF0; // type:function size:0xA0
fn_80159090 = .text:0x80159090; // type:function size:0x6C
fn_80159100 = .text:0x80159100; // type:function size:0x58
fn_80159160 = .text:0x80159160; // type:function size:0xC0
fn_80159220 = .text:0x80159220; // type:function size:0x10
fn_80159230 = .text:0x80159230; // type:function size:0x5C
fn_80159290 = .text:0x80159290; // type:function size:0x54
fn_801592F0 = .text:0x801592F0; // type:function size:0x10
fn_80159300 = .text:0x80159300; // type:function size:0x34
fn_80159340 = .text:0x80159340; // type:function size:0xC
fn_80159350 = .text:0x80159350; // type:function size:0xC
fn_80159360 = .text:0x80159360; // type:function size:0x48
fn_801593B0 = .text:0x801593B0; // type:function size:0x30
fn_801593E0 = .text:0x801593E0; // type:function size:0x4
fn_801593F0 = .text:0x801593F0; // type:function size:0xAC
fn_801594A0 = .text:0x801594A0; // type:function size:0x80
fn_80159520 = .text:0x80159520; // type:function size:0x4
fn_80159530 = .text:0x80159530; // type:function size:0xC
fn_80159540 = .text:0x80159540; // type:function size:0x34
fn_80159580 = .text:0x80159580; // type:function size:0x4
fn_80159590 = .text:0x80159590; // type:function size:0x44
fn_801595E0 = .text:0x801595E0; // type:function size:0xA8
fn_80159690 = .text:0x80159690; // type:function size:0x4
fn_801596A0 = .text:0x801596A0; // type:function size:0x50
fn_801596F0 = .text:0x801596F0; // type:function size:0x10
fn_80159700 = .text:0x80159700; // type:function size:0x98
fn_801597A0 = .text:0x801597A0; // type:function size:0xD8
fn_80159880 = .text:0x80159880; // type:function size:0x60
fn_801598E0 = .text:0x801598E0; // type:function size:0xC
fn_801598F0 = .text:0x801598F0; // type:function size:0x1C
fn_80159910 = .text:0x80159910; // type:function size:0x1C
fn_80159930 = .text:0x80159930; // type:function size:0x1C
fn_80159950 = .text:0x80159950; // type:function size:0x10
fn_80159960 = .text:0x80159960; // type:function size:0x10
fn_80159970 = .text:0x80159970; // type:function size:0x10
fn_80159980 = .text:0x80159980; // type:function size:0x10
fn_80159990 = .text:0x80159990; // type:function size:0x10
fn_801599A0 = .text:0x801599A0; // type:function size:0x10
fn_801599B0 = .text:0x801599B0; // type:function size:0x10
fn_801599C0 = .text:0x801599C0; // type:function size:0x30
fn_801599F0 = .text:0x801599F0; // type:function size:0x30
fn_80159A20 = .text:0x80159A20; // type:function size:0x30
LytPauseBack__initStates = .text:0x80159A50; // type:function size:0x338
LytPauseBack__dtor = .text:0x80159D90; // type:function size:0x58
fn_80159DF0 = .text:0x80159DF0; // type:function size:0x88
__ct__15dLytPauseBack_cFv = .text:0x80158E80; // type:function size:0xC0
__dt__54sFStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c>Fv = .text:0x80158F40; // type:function size:0xA4 scope:weak
__dt__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80158FF0; // type:function size:0xA0 scope:weak
__dt__31sFStateFct_c<15dLytPauseBack_c>Fv = .text:0x80159090; // type:function size:0x6C scope:weak
__dt__28sFState_c<15dLytPauseBack_c>Fv = .text:0x80159100; // type:function size:0x58 scope:weak
build__15dLytPauseBack_cFv = .text:0x80159160; // type:function size:0xC0
changeState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80159220; // type:function size:0x10 scope:weak
remove__15dLytPauseBack_cFv = .text:0x80159230; // type:function size:0x5C
execute__15dLytPauseBack_cFv = .text:0x80159290; // type:function size:0x54
executeState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801592F0; // type:function size:0x10 scope:weak
draw__15dLytPauseBack_cFv = .text:0x80159300; // type:function size:0x34
requestIn__15dLytPauseBack_cFv = .text:0x80159340; // type:function size:0xC
requestOut__15dLytPauseBack_cFv = .text:0x80159350; // type:function size:0xC
initializeState_None__15dLytPauseBack_cFv = .text:0x80159360; // type:function size:0x48
executeState_None__15dLytPauseBack_cFv = .text:0x801593B0; // type:function size:0x30
finalizeState_None__15dLytPauseBack_cFv = .text:0x801593E0; // type:function size:0x4
initializeState_In__15dLytPauseBack_cFv = .text:0x801593F0; // type:function size:0xAC
executeState_In__15dLytPauseBack_cFv = .text:0x801594A0; // type:function size:0x80
finalizeState_In__15dLytPauseBack_cFv = .text:0x80159520; // type:function size:0x4
initializeState_Wait__15dLytPauseBack_cFv = .text:0x80159530; // type:function size:0xC
executeState_Wait__15dLytPauseBack_cFv = .text:0x80159540; // type:function size:0x34
finalizeState_Wait__15dLytPauseBack_cFv = .text:0x80159580; // type:function size:0x4
initializeState_Out__15dLytPauseBack_cFv = .text:0x80159590; // type:function size:0x44
executeState_Out__15dLytPauseBack_cFv = .text:0x801595E0; // type:function size:0xA8
finalizeState_Out__15dLytPauseBack_cFv = .text:0x80159690; // type:function size:0x4
startAnim__15dLytPauseBack_cFi = .text:0x801596A0; // type:function size:0x50
stopAnim__15dLytPauseBack_cFi = .text:0x801596F0; // type:function size:0x10
loadBgTexture__15dLytPauseBack_cFv = .text:0x80159700; // type:function size:0x98
__dt__15dLytPauseBack_cFv = .text:0x801597A0; // type:function size:0xD8 scope:weak
build__31sFStateFct_c<15dLytPauseBack_c>FRC12sStateIDIf_c = .text:0x80159880; // type:function size:0x60 scope:weak
dispose__31sFStateFct_c<15dLytPauseBack_c>FRP10sStateIf_c = .text:0x801598E0; // type:function size:0xC scope:weak
initialize__28sFState_c<15dLytPauseBack_c>Fv = .text:0x801598F0; // type:function size:0x1C scope:weak
execute__28sFState_c<15dLytPauseBack_c>Fv = .text:0x80159910; // type:function size:0x1C scope:weak
finalize__28sFState_c<15dLytPauseBack_c>Fv = .text:0x80159930; // type:function size:0x1C scope:weak
initializeState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80159950; // type:function size:0x10 scope:weak
finalizeState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80159960; // type:function size:0x10 scope:weak
refreshState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80159970; // type:function size:0x10 scope:weak
getState__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80159980; // type:function size:0x10 scope:weak
getNewStateID__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80159990; // type:function size:0x10 scope:weak
getStateID__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801599A0; // type:function size:0x10 scope:weak
getOldStateID__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801599B0; // type:function size:0x10 scope:weak
finalizeState__30sFStateID_c<15dLytPauseBack_c>CFR15dLytPauseBack_c = .text:0x801599C0; // type:function size:0x30 scope:weak
executeState__30sFStateID_c<15dLytPauseBack_c>CFR15dLytPauseBack_c = .text:0x801599F0; // type:function size:0x30 scope:weak
initializeState__30sFStateID_c<15dLytPauseBack_c>CFR15dLytPauseBack_c = .text:0x80159A20; // type:function size:0x30 scope:weak
__sinit_\d_lyt_pause_back_cpp = .text:0x80159A50; // type:function size:0x338 scope:local
__dt__30sFStateID_c<15dLytPauseBack_c>Fv = .text:0x80159D90; // type:function size:0x58 scope:weak
isSameName__30sFStateID_c<15dLytPauseBack_c>CFPCc = .text:0x80159DF0; // type:function size:0x88 scope:weak
__ct__17dLytPauseDisp00_cFv = .text:0x80159E80; // type:function size:0x160
__dt__56sFStateMgr_c<17dLytPauseDisp00_c,20sStateMethodUsr_FI_c>Fv = .text:0x80159FE0; // type:function size:0xA4
__dt__86sStateMgr_c<17dLytPauseDisp00_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8015A090; // type:function size:0xA0
@@ -28335,7 +28335,7 @@ brlanMap = .rodata:0x804E8138; // type:object size:0x18 scope:local data:4byte
lbl_804E8150 = .rodata:0x804E8150; // type:object size:0xC8 data:4byte
lbl_804E8218 = .rodata:0x804E8218; // type:object size:0x10 data:4byte
lbl_804E8228 = .rodata:0x804E8228; // type:object size:0x20 data:4byte
lbl_804E8248 = .rodata:0x804E8248; // type:object size:0x10 data:4byte
brlanMap = .rodata:0x804E8248; // type:object size:0x10 scope:local data:4byte
lbl_804E8258 = .rodata:0x804E8258; // type:object size:0x128
lbl_804E8380 = .rodata:0x804E8380; // type:object size:0x128
lbl_804E84A8 = .rodata:0x804E84A8; // type:object size:0x3F0 data:4byte
@@ -34306,18 +34306,35 @@ lbl_80524D60 = .data:0x80524D60; // type:object size:0xC
lbl_80524D6C = .data:0x80524D6C; // type:object size:0xC
lbl_80524D78 = .data:0x80524D78; // type:object size:0x120
__vt__30sFStateID_c<15dLytBossGauge_c> = .data:0x80524E98; // type:object size:0x34
lbl_80524ED0 = .data:0x80524ED0; // type:object size:0x18
lbl_80524EE8 = .data:0x80524EE8; // type:object size:0xC
lbl_80524EF4 = .data:0x80524EF4; // type:object size:0x18
lbl_80524F0C = .data:0x80524F0C; // type:object size:0x14
lbl_80524F20 = .data:0x80524F20; // type:object size:0x10
lbl_80524F30 = .data:0x80524F30; // type:object size:0x10
lbl_80524F40 = .data:0x80524F40; // type:object size:0x10
lbl_80524F50 = .data:0x80524F50; // type:object size:0x30
lbl_80524F80 = .data:0x80524F80; // type:object size:0x30
lbl_80524FB0 = .data:0x80524FB0; // type:object size:0x18
lbl_80524FC8 = .data:0x80524FC8; // type:object size:0x13C
lbl_80525104 = .data:0x80525104; // type:object size:0x34
@20998 = .data:0x80524ED0; // type:object size:0x16 scope:local data:string
...data.0 = .data:0x80524ED0; // type:label scope:local
@20999 = .data:0x80524EE8; // type:object size:0xB scope:local data:string
@21000 = .data:0x80524EF4; // type:object size:0x17 scope:local data:string
@21540 = .data:0x80524F0C; // type:object size:0x13 scope:local data:string
@21588 = .data:0x80524F20; // type:object size:0xD scope:local data:string
@21589 = .data:0x80524F30; // type:object size:0xD scope:local data:string
__vt__15dLytPauseBack_c = .data:0x80524F40; // type:object size:0xC scope:weak
__vt__54sFStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c> = .data:0x80524F50; // type:object size:0x30 scope:weak
__vt__84sStateMgr_c<15dLytPauseBack_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80524F80; // type:object size:0x30 scope:weak
__vt__31sFStateFct_c<15dLytPauseBack_c> = .data:0x80524FB0; // type:object size:0x14 scope:weak
__vt__28sFState_c<15dLytPauseBack_c> = .data:0x80524FC8; // type:object size:0x18 scope:weak
@21697 = .data:0x80524FF8; // type:object size:0xC scope:local
@21698 = .data:0x80525004; // type:object size:0xC scope:local
@21699 = .data:0x80525010; // type:object size:0xC scope:local
@21700 = .data:0x8052501C; // type:object size:0xC scope:local
@21701 = .data:0x80525028; // type:object size:0xC scope:local
@21702 = .data:0x80525034; // type:object size:0xC scope:local
@21703 = .data:0x80525040; // type:object size:0xC scope:local
@21704 = .data:0x8052504C; // type:object size:0xC scope:local
@21705 = .data:0x80525058; // type:object size:0xC scope:local
@21706 = .data:0x80525064; // type:object size:0xC scope:local
@21707 = .data:0x80525070; // type:object size:0xC scope:local
@21708 = .data:0x8052507C; // type:object size:0xC scope:local
@21710 = .data:0x80525088; // type:object size:0x1E scope:local data:string
@21711 = .data:0x805250A8; // type:object size:0x1C scope:local data:string
@21712 = .data:0x805250C4; // type:object size:0x1E scope:local data:string
@21713 = .data:0x805250E4; // type:object size:0x1D scope:local data:string
__vt__30sFStateID_c<15dLytPauseBack_c> = .data:0x80525104; // type:object size:0x34 scope:weak
lbl_80525138 = .data:0x80525138; // type:object size:0x14
lbl_8052514C = .data:0x8052514C; // type:object size:0xC
lbl_80525158 = .data:0x80525158; // type:object size:0x14 data:string
@@ -41900,7 +41917,7 @@ sInstance__12dTgMassObj_c = .sbss:0x80575930; // type:object size:0x4 data:4byte
lbl_80575934 = .sbss:0x80575934; // type:object size:0x4 data:4byte
lbl_80575938 = .sbss:0x80575938; // type:object size:0x4 align:4 data:float
lbl_8057593C = .sbss:0x8057593C; // type:object size:0x4 align:4 data:float
LYT_PAUSE_DISP = .sbss:0x80575940; // type:object size:0x8 data:4byte
sInstance__14dLytPauseMgr_c = .sbss:0x80575940; // type:object size:0x8 data:4byte
sInstance__17dLytGameOverMgr_c = .sbss:0x80575948; // type:object size:0x8 data:4byte
sInstance__13dLytSaveMgr_c = .sbss:0x80575950; // type:object size:0x8 data:4byte
lbl_80575958 = .sbss:0x80575958; // type:object size:0x1 data:byte
@@ -45087,8 +45104,8 @@ lbl_8057A07C = .sdata2:0x8057A07C; // type:object size:0x4 align:4 data:float
lbl_8057A080 = .sdata2:0x8057A080; // type:object size:0x4 align:4 data:float
lbl_8057A084 = .sdata2:0x8057A084; // type:object size:0x4 align:4 data:float
lbl_8057A088 = .sdata2:0x8057A088; // type:object size:0x8 align:8 data:double
lbl_8057A090 = .sdata2:0x8057A090; // type:object size:0x4 align:4 data:float
lbl_8057A094 = .sdata2:0x8057A094; // type:object size:0x4 align:4 data:float
@21516 = .sdata2:0x8057A090; // type:object size:0x4 scope:local align:4 data:float
@21517 = .sdata2:0x8057A094; // type:object size:0x4 scope:local align:4 data:float
lbl_8057A098 = .sdata2:0x8057A098; // type:object size:0x4 align:4 data:float
lbl_8057A09C = .sdata2:0x8057A09C; // type:object size:0x4 align:4 data:float
lbl_8057A0A0 = .sdata2:0x8057A0A0; // type:object size:0x4 align:4 data:float
@@ -51374,11 +51391,15 @@ LytBossGauge__STATE_NONE = .bss:0x805B1480; // type:object size:0x40 data:4byte
LytBossGauge__STATE_IN = .bss:0x805B14C0; // type:object size:0x40 data:4byte
LytBossGauge__STATE_MOVE = .bss:0x805B1500; // type:object size:0x40 data:4byte
LytBossGauge__STATE_OUT = .bss:0x805B1540; // type:object size:0x30 data:4byte
lbl_805B1570 = .bss:0x805B1570; // type:object size:0x10
LytPauseBack__STATE_NONE = .bss:0x805B1580; // type:object size:0x40 data:4byte
LytPauseBack__STATE_IN = .bss:0x805B15C0; // type:object size:0x40 data:4byte
LytPauseBack__STATE_WAIT = .bss:0x805B1600; // type:object size:0x40 data:4byte
LytPauseBack__STATE_OUT = .bss:0x805B1640; // type:object size:0x30 data:4byte
@20985 = .bss:0x805B1570; // type:object size:0xC scope:local
...bss.0 = .bss:0x805B1570; // type:label scope:local
StateID_None__15dLytPauseBack_c = .bss:0x805B1580; // type:object size:0x30 data:4byte
@20989 = .bss:0x805B15B0; // type:object size:0xC scope:local
StateID_In__15dLytPauseBack_c = .bss:0x805B15C0; // type:object size:0x30 data:4byte
@20993 = .bss:0x805B15F0; // type:object size:0xC scope:local
StateID_Wait__15dLytPauseBack_c = .bss:0x805B1600; // type:object size:0x30 data:4byte
@20997 = .bss:0x805B1630; // type:object size:0xC scope:local
StateID_Out__15dLytPauseBack_c = .bss:0x805B1640; // type:object size:0x30 data:4byte
lbl_805B1670 = .bss:0x805B1670; // type:object size:0x10
LytPauseDisp00__STATE_NONE = .bss:0x805B1680; // type:object size:0x40 data:4byte
LytPauseDisp00__STATE_IN = .bss:0x805B16C0; // type:object size:0x40 data:4byte
+1 -1
View File
@@ -545,7 +545,7 @@ config.libs = [
Object(NonMatching, "d/lyt/d_lyt_deposit_stock.cpp"),
Object(NonMatching, "d/lyt/d_lyt_deposit_box.cpp"),
Object(NonMatching, "d/lyt/d_lyt_boss_gauge.cpp"),
Object(NonMatching, "d/lyt/d_lyt_pause_back.cpp"),
Object(Matching, "d/lyt/d_lyt_pause_back.cpp"),
Object(NonMatching, "d/lyt/d_lyt_pause_disp_00.cpp"),
Object(NonMatching, "d/lyt/d_lyt_pause_disp_01.cpp"),
Object(NonMatching, "d/lyt/d_lyt_pause_info.cpp"),
+9 -1
View File
@@ -7,6 +7,7 @@
#include "d/d_bzs_types.h"
#include "d/d_dylink.h"
#include "d/d_fader.h"
#include "egg/gfx/eggCpuTexture.h"
#include "egg/gfx/eggScreen.h"
#include "m/m_allocator.h"
#include "m/m_dvd.h"
@@ -78,6 +79,10 @@ public:
return sInstance;
}
EGG::CpuTexture *getField_0x8898() {
return field_0x8898;
}
bool checkFlag0x88A0(u32 flag) const {
return (field_0x88A0 & flag) != 0;
}
@@ -190,7 +195,10 @@ private:
/* 0x8694 */ dTimeAreaMgr_c mTimeAreaMgr;
// ...
u8 ___[446];
u8 ___[438];
/* 0x8898 */ EGG::CpuTexture *field_0x8898;
u8 _0x889C[4];
/* 0x88A0 */ u32 field_0x88A0;
/* 0x88A4 */ SizedString<16> mDemoName;
+31
View File
@@ -0,0 +1,31 @@
#ifndef D_LYT_PAUSE_H
#define D_LYT_PAUSE_H
#include "d/lyt/d2d.h"
#include "egg/gfx/eggCpuTexture.h"
class dLytPauseMgr_c {
public:
static dLytPauseMgr_c *GetInstance() {
return sInstance;
}
d2d::ResAccIf_c *getResAcc1() {
return &mResAcc1;
}
EGG::CpuTexture *getBgTexture() {
return mpBgTexture;
}
private:
static dLytPauseMgr_c *sInstance;
/* 0x0000 */ u8 _0x0000[0x00C8 - 0x0000];
/* 0x00C8 */ d2d::ResAccIf_c mResAcc1;
/* 0x0438 */ u8 _0x0438[0x0814 - 0x0438];
/* 0x0814 */ EGG::CpuTexture *mpBgTexture;
};
#endif
+41
View File
@@ -0,0 +1,41 @@
#ifndef D_LYT_PAUSE_BACK_H
#define D_LYT_PAUSE_BACK_H
#include "d/lyt/d2d.h"
#include "s/s_State.hpp"
class dLytPauseBack_c {
public:
dLytPauseBack_c();
virtual ~dLytPauseBack_c() {}
bool build();
bool remove();
bool execute();
bool draw();
void loadBgTexture();
void requestIn();
void requestOut();
private:
void startAnim(int idx);
void stopAnim(int idx);
STATE_FUNC_DECLARE(dLytPauseBack_c, None);
STATE_FUNC_DECLARE(dLytPauseBack_c, In);
STATE_FUNC_DECLARE(dLytPauseBack_c, Wait);
STATE_FUNC_DECLARE(dLytPauseBack_c, Out);
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytPauseBack_c);
/* 0x040 */ d2d::LytBase_c mLyt;
/* 0x0D0 */ d2d::AnmGroup_c mAnm[2];
/* 0x150 */ s32 mOutStep;
/* 0x154 */ bool mInRequest;
/* 0x155 */ bool mOutRequest;
/* 0x156 */ bool field_0x156;
/* 0x157 */ bool mVisible;
};
#endif
+159
View File
@@ -0,0 +1,159 @@
#include "d/lyt/d_lyt_pause_back.h"
#include "common.h"
#include "d/d_stage_mgr.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_pause.h"
#include "rvl/GX/GXTexture.h"
STATE_DEFINE(dLytPauseBack_c, None);
STATE_DEFINE(dLytPauseBack_c, In);
STATE_DEFINE(dLytPauseBack_c, Wait);
STATE_DEFINE(dLytPauseBack_c, Out);
static const d2d::LytBrlanMapping brlanMap[] = {
{ "pauseBace_00_in.brlan", "G_inOut_00"},
{"pauseBace_00_out.brlan", "G_inOut_00"},
};
#define PAUSE_BACK_ANIM_IN 0
#define PAUSE_BACK_ANIM_OUT 1
#define PAUSE_BACK_NUM_ANIMS 2
dLytPauseBack_c::dLytPauseBack_c() : mStateMgr(*this) {}
bool dLytPauseBack_c::build() {
d2d::ResAccIf_c *resAcc = dLytPauseMgr_c::GetInstance()->getResAcc1();
mLyt.setResAcc(resAcc);
mLyt.build("pauseBace_00.brlyt", nullptr);
mLyt.setPriority(0x86);
for (int i = 0; i < PAUSE_BACK_NUM_ANIMS; i++) {
mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
}
mStateMgr.changeState(StateID_None);
return true;
}
bool dLytPauseBack_c::remove() {
mLyt.unbindAnims();
for (int i = 0; i < PAUSE_BACK_NUM_ANIMS; i++) {
mAnm[i].remove();
}
return true;
}
bool dLytPauseBack_c::execute() {
mStateMgr.executeState();
mLyt.calc();
return true;
}
bool dLytPauseBack_c::draw() {
if (mVisible == true) {
mLyt.addToDrawList();
}
return true;
}
void dLytPauseBack_c::requestIn() {
mInRequest = true;
}
void dLytPauseBack_c::requestOut() {
mOutRequest = true;
}
void dLytPauseBack_c::initializeState_None() {
mLyt.unbindAnims();
field_0x156 = false;
mInRequest = false;
mOutRequest = false;
mVisible = false;
mOutStep = 0;
}
void dLytPauseBack_c::executeState_None() {
if (mInRequest == true) {
mInRequest = false;
mStateMgr.changeState(StateID_In);
}
}
void dLytPauseBack_c::finalizeState_None() {}
void dLytPauseBack_c::initializeState_In() {
startAnim(PAUSE_BACK_ANIM_IN);
mVisible = true;
if (dStageMgr_c::GetInstance()->getField_0x8898() != nullptr) {
GXTexObj texObj;
dStageMgr_c::GetInstance()->getField_0x8898()->getTexObj(&texObj);
mLyt.findPicture("P_capture_00")->GetMaterial()->GetTexMapAry()->ReplaceImage(texObj);
mLyt.findPicture("P_capture_01")->GetMaterial()->GetTexMapAry()->ReplaceImage(texObj);
}
}
void dLytPauseBack_c::executeState_In() {
d2d::AnmGroup_c &anm = mAnm[PAUSE_BACK_ANIM_IN];
if (anm.isEndReached() == true) {
mStateMgr.changeState(StateID_Wait);
} else {
anm.play();
}
}
void dLytPauseBack_c::finalizeState_In() {}
void dLytPauseBack_c::initializeState_Wait() {
field_0x156 = true;
}
void dLytPauseBack_c::executeState_Wait() {
field_0x156 = false;
if (mOutRequest == true) {
mOutRequest = false;
mStateMgr.changeState(StateID_Out);
}
}
void dLytPauseBack_c::finalizeState_Wait() {}
void dLytPauseBack_c::initializeState_Out() {
stopAnim(PAUSE_BACK_ANIM_IN);
startAnim(PAUSE_BACK_ANIM_OUT);
mOutStep = 0;
}
void dLytPauseBack_c::executeState_Out() {
d2d::AnmGroup_c &anm = mAnm[PAUSE_BACK_ANIM_OUT];
switch (mOutStep) {
case 0: {
if (anm.isEndReached() == true) {
mOutStep = 1;
field_0x156 = true;
}
break;
}
case 1: {
mStateMgr.changeState(StateID_None);
return;
}
}
anm.play();
}
void dLytPauseBack_c::finalizeState_Out() {}
void dLytPauseBack_c::startAnim(int idx) {
d2d::AnmGroup_c &anm = mAnm[idx];
anm.bind(false);
anm.setFrame(0.0f);
}
void dLytPauseBack_c::stopAnim(int idx) {
d2d::AnmGroup_c &anm = mAnm[idx];
anm.unbind();
}
void dLytPauseBack_c::loadBgTexture() {
if (dLytPauseMgr_c::GetInstance()->getBgTexture() != nullptr) {
GXTexObj texObj;
dLytPauseMgr_c::GetInstance()->getBgTexture()->getTexObj(&texObj);
mLyt.findPicture("P_capture_00")->GetMaterial()->GetTexMapAry()->ReplaceImage(texObj);
mLyt.findPicture("P_capture_01")->GetMaterial()->GetTexMapAry()->ReplaceImage(texObj);
}
}