diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 62f9579b..276d060c 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -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:0x804E8248 + .rodata start:0x804E8218 end:0x804E8228 .data start:0x80524BC8 end:0x80524CD0 .sdata start:0x80572990 end:0x80572998 .sdata2 start:0x8057A060 end:0x8057A078 @@ -1010,6 +1010,7 @@ d/lyt/d_lyt_deposit_box.cpp: d/lyt/d_lyt_boss_gauge.cpp: .text start:0x80158290 end:0x80158E78 align:16 .ctors start:0x804DB790 end:0x804DB794 + .rodata start:0x804E8228 end:0x804E8248 .data start:0x80524CD0 end:0x80524ED0 .sdata start:0x80572998 end:0x805729A0 .sbss start:0x805754F0 end:0x805754F8 @@ -1045,7 +1046,7 @@ d/lyt/d_lyt_pause_disp_01.cpp: d/lyt/d_lyt_pause_info.cpp: .text start:0x80161FA0 end:0x80163568 align:16 .ctors start:0x804DB7A0 end:0x804DB7A4 - .rodata start:0x804E8B30 end:0x804E8B60 + .rodata start:0x804E8B30 end:0x804E8B48 .data start:0x80526610 end:0x80526880 .sdata2 start:0x8057A0F8 end:0x8057A100 .bss start:0x805B19B0 end:0x805B1AB0 @@ -1053,6 +1054,7 @@ d/lyt/d_lyt_pause_info.cpp: d/lyt/d_lyt_pause_text.cpp: .text start:0x80163570 end:0x80164F88 align:16 .ctors start:0x804DB7A4 end:0x804DB7A8 + .rodata start:0x804E8B48 end:0x804E8B60 .data start:0x80526880 end:0x80526D10 .sdata start:0x805729C0 end:0x805729C8 .sdata2 start:0x8057A100 end:0x8057A108 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ed6077a8..d9d60419 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -8949,61 +8949,61 @@ initializeState__32sFStateID_c<17dLytPauseDisp01_c>CFR17dLytPauseDisp01_c = .tex __sinit_\d_lyt_pause_disp_01_cpp = .text:0x80161A00; // type:function size:0x4B0 __dt__32sFStateID_c<17dLytPauseDisp01_c>Fv = .text:0x80161EB0; // type:function size:0x58 isSameName__32sFStateID_c<17dLytPauseDisp01_c>CFPCc = .text:0x80161F10; // type:function size:0x88 -LytPauseInfo__ctor = .text:0x80161FA0; // type:function size:0xCC -fn_80162070 = .text:0x80162070; // type:function size:0xA4 -fn_80162120 = .text:0x80162120; // type:function size:0xA0 -fn_801621C0 = .text:0x801621C0; // type:function size:0x6C -fn_80162230 = .text:0x80162230; // type:function size:0x58 -fn_80162290 = .text:0x80162290; // type:function size:0xEC -fn_80162380 = .text:0x80162380; // type:function size:0x10 -fn_80162390 = .text:0x80162390; // type:function size:0x98 -__dt__17dLytCommonTitle_cFv = .text:0x80162430; // type:function size:0x104 -__dt__56sFStateMgr_c<17dLytCommonTitle_c,20sStateMethodUsr_FI_c>Fv = .text:0x80162540; // type:function size:0xA4 -__dt__86sStateMgr_c<17dLytCommonTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801625F0; // type:function size:0xA0 -__dt__33sFStateFct_c<17dLytCommonTitle_c>Fv = .text:0x80162690; // type:function size:0x6C -__dt__30sFState_c<17dLytCommonTitle_c>Fv = .text:0x80162700; // type:function size:0x58 -fn_80162760 = .text:0x80162760; // type:function size:0xC4 -fn_80162830 = .text:0x80162830; // type:function size:0x10 -fn_80162840 = .text:0x80162840; // type:function size:0x10 -fn_80162850 = .text:0x80162850; // type:function size:0x64 -fn_801628C0 = .text:0x801628C0; // type:function size:0xC -fn_801628D0 = .text:0x801628D0; // type:function size:0xC -fn_801628E0 = .text:0x801628E0; // type:function size:0x80 -fn_80162960 = .text:0x80162960; // type:function size:0x18 -LytPauseInfo__stateNoneEnter = .text:0x80162980; // type:function size:0x48 -LytPauseInfo__stateNoneUpdate = .text:0x801629D0; // type:function size:0x30 -LytPauseInfo__stateNoneLeave = .text:0x80162A00; // type:function size:0x4 -LytPauseInfo__stateInEnter = .text:0x80162A10; // type:function size:0x11C -LytPauseInfo__stateInUpdate = .text:0x80162B30; // type:function size:0x80 -LytPauseInfo__stateInLeave = .text:0x80162BB0; // type:function size:0x4 -LytPauseInfo__stateWaitEnter = .text:0x80162BC0; // type:function size:0xC -LytPauseInfo__stateWaitUpdate = .text:0x80162BD0; // type:function size:0x60 -LytPauseInfo__stateWaitLeave = .text:0x80162C30; // type:function size:0x4 -LytPauseInfo__stateOutEnter = .text:0x80162C40; // type:function size:0x58 -LytPauseInfo__stateOutUpdate = .text:0x80162CA0; // type:function size:0xA8 -LytPauseInfo__stateOutLeave = .text:0x80162D50; // type:function size:0x4 -fn_80162D60 = .text:0x80162D60; // type:function size:0x50 -fn_80162DB0 = .text:0x80162DB0; // type:function size:0x10 -fn_80162DC0 = .text:0x80162DC0; // type:function size:0x64 -fn_80162E30 = .text:0x80162E30; // type:function size:0x70 -fn_80162EA0 = .text:0x80162EA0; // type:function size:0xD8 -fn_80162F80 = .text:0x80162F80; // type:function size:0x60 -fn_80162FE0 = .text:0x80162FE0; // type:function size:0xC -fn_80162FF0 = .text:0x80162FF0; // type:function size:0x1C -fn_80163010 = .text:0x80163010; // type:function size:0x1C -fn_80163030 = .text:0x80163030; // type:function size:0x1C -fn_80163050 = .text:0x80163050; // type:function size:0x10 -fn_80163060 = .text:0x80163060; // type:function size:0x10 -fn_80163070 = .text:0x80163070; // type:function size:0x10 -fn_80163080 = .text:0x80163080; // type:function size:0x10 -fn_80163090 = .text:0x80163090; // type:function size:0x10 -fn_801630A0 = .text:0x801630A0; // type:function size:0x10 -fn_801630B0 = .text:0x801630B0; // type:function size:0x30 -fn_801630E0 = .text:0x801630E0; // type:function size:0x30 -fn_80163110 = .text:0x80163110; // type:function size:0x30 -LytPauseInfo__initStates = .text:0x80163140; // type:function size:0x338 -LytPauseInfo__state_dtor = .text:0x80163480; // type:function size:0x58 -fn_801634E0 = .text:0x801634E0; // type:function size:0x88 +__ct__15dLytPauseInfo_cFv = .text:0x80161FA0; // type:function size:0xCC +__dt__54sFStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c>Fv = .text:0x80162070; // type:function size:0xA4 scope:weak +__dt__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80162120; // type:function size:0xA0 scope:weak +__dt__31sFStateFct_c<15dLytPauseInfo_c>Fv = .text:0x801621C0; // type:function size:0x6C scope:weak +__dt__28sFState_c<15dLytPauseInfo_c>Fv = .text:0x80162230; // type:function size:0x58 scope:weak +build__15dLytPauseInfo_cFv = .text:0x80162290; // type:function size:0xEC +changeState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80162380; // type:function size:0x10 scope:weak +remove__15dLytPauseInfo_cFv = .text:0x80162390; // type:function size:0x98 +__dt__17dLytCommonTitle_cFv = .text:0x80162430; // type:function size:0x104 scope:weak +__dt__56sFStateMgr_c<17dLytCommonTitle_c,20sStateMethodUsr_FI_c>Fv = .text:0x80162540; // type:function size:0xA4 scope:weak +__dt__86sStateMgr_c<17dLytCommonTitle_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801625F0; // type:function size:0xA0 scope:weak +__dt__33sFStateFct_c<17dLytCommonTitle_c>Fv = .text:0x80162690; // type:function size:0x6C scope:weak +__dt__30sFState_c<17dLytCommonTitle_c>Fv = .text:0x80162700; // type:function size:0x58 scope:weak +execute__15dLytPauseInfo_cFv = .text:0x80162760; // type:function size:0xC4 +executeState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80162830; // type:function size:0x10 scope:weak +getStateID__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80162840; // type:function size:0x10 scope:weak +draw__15dLytPauseInfo_cFv = .text:0x80162850; // type:function size:0x64 +requestIn__15dLytPauseInfo_cFv = .text:0x801628C0; // type:function size:0xC +requestOut__15dLytPauseInfo_cFv = .text:0x801628D0; // type:function size:0xC +updateTitle__15dLytPauseInfo_cFv = .text:0x801628E0; // type:function size:0x80 +setInputInOut__15dLytPauseInfo_cFb = .text:0x80162960; // type:function size:0x18 +initializeState_None__15dLytPauseInfo_cFv = .text:0x80162980; // type:function size:0x48 +executeState_None__15dLytPauseInfo_cFv = .text:0x801629D0; // type:function size:0x30 +finalizeState_None__15dLytPauseInfo_cFv = .text:0x80162A00; // type:function size:0x4 +initializeState_In__15dLytPauseInfo_cFv = .text:0x80162A10; // type:function size:0x11C +executeState_In__15dLytPauseInfo_cFv = .text:0x80162B30; // type:function size:0x80 +finalizeState_In__15dLytPauseInfo_cFv = .text:0x80162BB0; // type:function size:0x4 +initializeState_Wait__15dLytPauseInfo_cFv = .text:0x80162BC0; // type:function size:0xC +executeState_Wait__15dLytPauseInfo_cFv = .text:0x80162BD0; // type:function size:0x60 +finalizeState_Wait__15dLytPauseInfo_cFv = .text:0x80162C30; // type:function size:0x4 +initializeState_Out__15dLytPauseInfo_cFv = .text:0x80162C40; // type:function size:0x58 +executeState_Out__15dLytPauseInfo_cFv = .text:0x80162CA0; // type:function size:0xA8 +finalizeState_Out__15dLytPauseInfo_cFv = .text:0x80162D50; // type:function size:0x4 +startAnim__15dLytPauseInfo_cFi = .text:0x80162D60; // type:function size:0x50 +stopAnim__15dLytPauseInfo_cFi = .text:0x80162DB0; // type:function size:0x10 +playBackwards__15dLytPauseInfo_cFRQ23d2d10AnmGroup_c = .text:0x80162DC0; // type:function size:0x64 +updateCaption__15dLytPauseInfo_cFv = .text:0x80162E30; // type:function size:0x70 +__dt__15dLytPauseInfo_cFv = .text:0x80162EA0; // type:function size:0xD8 scope:weak +build__31sFStateFct_c<15dLytPauseInfo_c>FRC12sStateIDIf_c = .text:0x80162F80; // type:function size:0x60 scope:weak +dispose__31sFStateFct_c<15dLytPauseInfo_c>FRP10sStateIf_c = .text:0x80162FE0; // type:function size:0xC scope:weak +initialize__28sFState_c<15dLytPauseInfo_c>Fv = .text:0x80162FF0; // type:function size:0x1C scope:weak +execute__28sFState_c<15dLytPauseInfo_c>Fv = .text:0x80163010; // type:function size:0x1C scope:weak +finalize__28sFState_c<15dLytPauseInfo_c>Fv = .text:0x80163030; // type:function size:0x1C scope:weak +initializeState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80163050; // type:function size:0x10 scope:weak +finalizeState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80163060; // type:function size:0x10 scope:weak +refreshState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80163070; // type:function size:0x10 scope:weak +getState__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80163080; // type:function size:0x10 scope:weak +getNewStateID__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80163090; // type:function size:0x10 scope:weak +getOldStateID__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801630A0; // type:function size:0x10 scope:weak +finalizeState__30sFStateID_c<15dLytPauseInfo_c>CFR15dLytPauseInfo_c = .text:0x801630B0; // type:function size:0x30 scope:weak +executeState__30sFStateID_c<15dLytPauseInfo_c>CFR15dLytPauseInfo_c = .text:0x801630E0; // type:function size:0x30 scope:weak +initializeState__30sFStateID_c<15dLytPauseInfo_c>CFR15dLytPauseInfo_c = .text:0x80163110; // type:function size:0x30 scope:weak +__sinit_\d_lyt_pause_info_cpp = .text:0x80163140; // type:function size:0x338 scope:local +__dt__30sFStateID_c<15dLytPauseInfo_c>Fv = .text:0x80163480; // type:function size:0x58 scope:weak +isSameName__30sFStateID_c<15dLytPauseInfo_c>CFPCc = .text:0x801634E0; // type:function size:0x88 scope:weak LytPauseText__ctor = .text:0x80163570; // type:function size:0x17C fn_801636F0 = .text:0x801636F0; // type:function size:0xA4 fn_801637A0 = .text:0x801637A0; // type:function size:0xA0 @@ -9032,7 +9032,7 @@ LytPauseText__stateOutLeave = .text:0x80163FE0; // type:function size:0x4 fn_80163FF0 = .text:0x80163FF0; // type:function size:0x50 fn_80164040 = .text:0x80164040; // type:function size:0x10 LytPauseText__setupPauseMenuTextMaybe = .text:0x80164050; // type:function size:0x168 -fn_801641C0 = .text:0x801641C0; // type:function size:0x14C +getCurrentPauseLabel__15dLytPauseText_cFR15SizedString<32> = .text:0x801641C0; // type:function size:0x14C fn_80164310 = .text:0x80164310; // type:function size:0xC8 lytPauseDisplayShowItemCaption = .text:0x801643E0; // type:function size:0x394 fn_80164780 = .text:0x80164780; // type:function size:0x54 @@ -9165,7 +9165,7 @@ getDowsingItemIdForIndex__Fl = .text:0x801677C0; // type:function size:0x30 dowsingSlotForIndex__Fl = .text:0x801677F0; // type:function size:0x24 fn_80167820 = .text:0x80167820; // type:function size:0x34 getLytIndexForDowsingIndex__Fl = .text:0x80167860; // type:function size:0x5C -fn_801678C0 = .text:0x801678C0; // type:function size:0x2C +getItemLabel__FlR15SizedString<32> = .text:0x801678C0; // type:function size:0x2C fn_801678F0 = .text:0x801678F0; // type:function size:0x2C fn_80167920 = .text:0x80167920; // type:function size:0x24 fn_80167950 = .text:0x80167950; // type:function size:0x2C @@ -28352,7 +28352,7 @@ lbl_804E8AC8 = .rodata:0x804E8AC8; // type:object size:0x18 lbl_804E8AE0 = .rodata:0x804E8AE0; // type:object size:0x20 lbl_804E8B00 = .rodata:0x804E8B00; // type:object size:0x10 lbl_804E8B10 = .rodata:0x804E8B10; // type:object size:0x20 -lbl_804E8B30 = .rodata:0x804E8B30; // type:object size:0x18 data:4byte +brlanMap = .rodata:0x804E8B30; // type:object size:0x18 scope:local data:4byte lbl_804E8B48 = .rodata:0x804E8B48; // type:object size:0x18 data:4byte brlanMap = .rodata:0x804E8B60; // type:object size:0x48 scope:local data:4byte @LOCAL@updateSaveText__19dLytSaveMsgWindow_cFv@sInts = .rodata:0x804E8BA8; // type:object size:0x10 scope:local @@ -34547,18 +34547,35 @@ __vt__37sFState_c<24dLytCommonIconMaterial_c> = .data:0x80526378; // type:object __vt__29dLytCommonIconMaterialPart2_c = .data:0x80526390; // type:object size:0x18 __vt__29dLytCommonIconMaterialPart1_c = .data:0x805263A8; // type:object size:0x230 lbl_805265D8 = .data:0x805265D8; // type:object size:0x38 -lbl_80526610 = .data:0x80526610; // type:object size:0x18 -lbl_80526628 = .data:0x80526628; // type:object size:0xC -lbl_80526634 = .data:0x80526634; // type:object size:0x18 -lbl_8052664C = .data:0x8052664C; // type:object size:0x1C -lbl_80526668 = .data:0x80526668; // type:object size:0xC -lbl_80526674 = .data:0x80526674; // type:object size:0x14 -lbl_80526688 = .data:0x80526688; // type:object size:0x10 -lbl_80526698 = .data:0x80526698; // type:object size:0x30 -lbl_805266C8 = .data:0x805266C8; // type:object size:0x30 -lbl_805266F8 = .data:0x805266F8; // type:object size:0x18 -lbl_80526710 = .data:0x80526710; // type:object size:0x13C -lbl_8052684C = .data:0x8052684C; // type:object size:0x34 +@17534 = .data:0x80526610; // type:object size:0x16 scope:local data:string +...data.0 = .data:0x80526610; // type:label scope:local +@17535 = .data:0x80526628; // type:object size:0xB scope:local data:string +@17536 = .data:0x80526634; // type:object size:0x17 scope:local data:string +@17537 = .data:0x8052664C; // type:object size:0x19 scope:local data:string +@17538 = .data:0x80526668; // type:object size:0xB scope:local data:string +@18266 = .data:0x80526674; // type:object size:0x13 scope:local data:string +__vt__15dLytPauseInfo_c = .data:0x80526688; // type:object size:0xC scope:weak +__vt__54sFStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c> = .data:0x80526698; // type:object size:0x30 scope:weak +__vt__84sStateMgr_c<15dLytPauseInfo_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805266C8; // type:object size:0x30 scope:weak +__vt__31sFStateFct_c<15dLytPauseInfo_c> = .data:0x805266F8; // type:object size:0x14 scope:weak +__vt__28sFState_c<15dLytPauseInfo_c> = .data:0x80526710; // type:object size:0x18 scope:weak +@18511 = .data:0x80526740; // type:object size:0xC scope:local +@18512 = .data:0x8052674C; // type:object size:0xC scope:local +@18513 = .data:0x80526758; // type:object size:0xC scope:local +@18514 = .data:0x80526764; // type:object size:0xC scope:local +@18515 = .data:0x80526770; // type:object size:0xC scope:local +@18516 = .data:0x8052677C; // type:object size:0xC scope:local +@18517 = .data:0x80526788; // type:object size:0xC scope:local +@18518 = .data:0x80526794; // type:object size:0xC scope:local +@18519 = .data:0x805267A0; // type:object size:0xC scope:local +@18520 = .data:0x805267AC; // type:object size:0xC scope:local +@18521 = .data:0x805267B8; // type:object size:0xC scope:local +@18522 = .data:0x805267C4; // type:object size:0xC scope:local +@18524 = .data:0x805267D0; // type:object size:0x1E scope:local data:string +@18525 = .data:0x805267F0; // type:object size:0x1C scope:local data:string +@18526 = .data:0x8052680C; // type:object size:0x1E scope:local data:string +@18527 = .data:0x8052682C; // type:object size:0x1D scope:local data:string +__vt__30sFStateID_c<15dLytPauseInfo_c> = .data:0x8052684C; // type:object size:0x34 scope:weak lbl_80526880 = .data:0x80526880; // type:object size:0x18 lbl_80526898 = .data:0x80526898; // type:object size:0xC lbl_805268A4 = .data:0x805268A4; // type:object size:0x18 @@ -45157,8 +45174,8 @@ lbl_8057A0E0 = .sdata2:0x8057A0E0; // type:object size:0x4 align:4 data:float lbl_8057A0E4 = .sdata2:0x8057A0E4; // type:object size:0x4 align:4 data:float lbl_8057A0E8 = .sdata2:0x8057A0E8; // type:object size:0x4 align:4 data:float lbl_8057A0F0 = .sdata2:0x8057A0F0; // type:object size:0x8 -lbl_8057A0F8 = .sdata2:0x8057A0F8; // type:object size:0x4 align:4 data:float -lbl_8057A0FC = .sdata2:0x8057A0FC; // type:object size:0x4 align:4 data:float +@18239 = .sdata2:0x8057A0F8; // type:object size:0x4 scope:local align:4 data:float +@18240 = .sdata2:0x8057A0FC; // type:object size:0x4 scope:local align:4 data:float lbl_8057A100 = .sdata2:0x8057A100; // type:object size:0x4 align:4 data:float lbl_8057A104 = .sdata2:0x8057A104; // type:object size:0x4 align:4 data:float @9991 = .sdata2:0x8057A108; // type:object size:0x4 scope:local align:4 data:float @@ -51444,11 +51461,15 @@ LytPauseDisp01__STATE_WAIT = .bss:0x805B18C0; // type:object size:0x40 data:4byt LytPauseDisp01__STATE_SELECT = .bss:0x805B1900; // type:object size:0x40 data:4byte LytPauseDisp01__STATE_GET_DEMO = .bss:0x805B1940; // type:object size:0x40 data:4byte LytPauseDisp01__STATE_OUT = .bss:0x805B1980; // type:object size:0x30 data:4byte -lbl_805B19B0 = .bss:0x805B19B0; // type:object size:0x10 -LytPauseInfo__STATE_NONE = .bss:0x805B19C0; // type:object size:0x40 data:4byte -LytPauseInfo__STATE_IN = .bss:0x805B1A00; // type:object size:0x40 data:4byte -LytPauseInfo__STATE_WAIT = .bss:0x805B1A40; // type:object size:0x40 data:4byte -LytPauseInfo__STATE_OUT = .bss:0x805B1A80; // type:object size:0x30 data:4byte +@17521 = .bss:0x805B19B0; // type:object size:0xC scope:local +...bss.0 = .bss:0x805B19B0; // type:label scope:local +StateID_None__15dLytPauseInfo_c = .bss:0x805B19C0; // type:object size:0x30 data:4byte +@17525 = .bss:0x805B19F0; // type:object size:0xC scope:local +StateID_In__15dLytPauseInfo_c = .bss:0x805B1A00; // type:object size:0x30 data:4byte +@17529 = .bss:0x805B1A30; // type:object size:0xC scope:local +StateID_Wait__15dLytPauseInfo_c = .bss:0x805B1A40; // type:object size:0x30 data:4byte +@17533 = .bss:0x805B1A70; // type:object size:0xC scope:local +StateID_Out__15dLytPauseInfo_c = .bss:0x805B1A80; // type:object size:0x30 data:4byte lbl_805B1AB0 = .bss:0x805B1AB0; // type:object size:0x10 LytPauseText__STATE_NONE = .bss:0x805B1AC0; // type:object size:0x40 data:4byte LytPauseText__STATE_IN = .bss:0x805B1B00; // type:object size:0x40 data:4byte diff --git a/configure.py b/configure.py index 985e446c..cc098464 100644 --- a/configure.py +++ b/configure.py @@ -548,7 +548,7 @@ config.libs = [ 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"), + Object(Matching, "d/lyt/d_lyt_pause_info.cpp"), Object(NonMatching, "d/lyt/d_lyt_pause_text.cpp"), Object(Matching, "d/lyt/d_lyt_save_msg_window.cpp"), Object(NonMatching, "d/lyt/d_lyt_util_items.cpp"), diff --git a/include/d/lyt/d_lyt_common_title.h b/include/d/lyt/d_lyt_common_title.h index 9b2261fd..3e7c5105 100644 --- a/include/d/lyt/d_lyt_common_title.h +++ b/include/d/lyt/d_lyt_common_title.h @@ -16,11 +16,26 @@ public: bool execute(); bool draw(); + enum SetMode_e { + SET_00 = 0, + SET_01 = 1, + SET_CAPTION_IMMEDIATELY = 2, + SET_OUT = 3, + }; + bool set(s32 arg, const char *title, const char *caption); const char *setSubTitle(s32 msgIdx); const char *setSysTitle(s32 msgIdx); const char *setSysCaption(s32 msgIdx); + void setField_0x680(UNKWORD val) { + field_0x680 = val; + } + + void setInputInOut(bool inOut) { + mInputInOut = inOut; + } + private: void gotoStateNone(); void startAnim(int idx); @@ -51,13 +66,13 @@ private: /* 0x660 */ SizedString<0x20> mCaption; /* 0x680 */ UNKWORD field_0x680; - /* 0x680 */ UNKWORD field_0x684; + /* 0x680 */ UNKWORD mSetMode; /* 0x688 */ s32 mStep; /* 0x68C */ bool mChangeRequest; /* 0x68D */ bool field_0x68D; /* 0x68E */ bool mVisible; /* 0x68F */ bool field_0x68F; - /* 0x690 */ bool field_0x690; + /* 0x690 */ bool mInputInOut; }; #endif diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h index 31858c3e..dc552d18 100644 --- a/include/d/lyt/d_lyt_control_game.h +++ b/include/d/lyt/d_lyt_control_game.h @@ -21,6 +21,14 @@ public: return sInstance; } + s32 getField_0x15C2C() const { + return field_0x15C2C; + } + + u16 getItemForPauseDemo() const { + return mItemForPauseDemo; + } + bool getField_0x15C67() const { return field_0x15C67; } @@ -41,7 +49,16 @@ public: private: /* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c); - /* 0x000A4 */ u8 _0x000A4[0x15C67 - 0x000A4]; + /* 0x000A4 */ u8 _0x000A4[0x15C2C - 0x000A4]; + + /* 0x15C2C */ s32 field_0x15C2C; + + /* 0x15C30 */ u8 _0x15C23[0x15C60 - 0x15C30]; + + /* 0x15C60 */ u16 mItemForPauseDemo; + + /* 0x15C62 */ u8 _0x15C62[0x15C67 - 0x15C62]; + /* 0x15C67 */ bool field_0x15C67; static dLytControlGame_c *sInstance; diff --git a/include/d/lyt/d_lyt_pause.h b/include/d/lyt/d_lyt_pause.h index ca02dcc1..7e248b41 100644 --- a/include/d/lyt/d_lyt_pause.h +++ b/include/d/lyt/d_lyt_pause.h @@ -18,6 +18,10 @@ public: return mpBgTexture; } + bool getField_0x083B() const { + return field_0x083B; + } + private: static dLytPauseMgr_c *sInstance; @@ -26,6 +30,10 @@ private: /* 0x0438 */ u8 _0x0438[0x0814 - 0x0438]; /* 0x0814 */ EGG::CpuTexture *mpBgTexture; + + /* 0x0818 */ u8 _0x0818[0x083B - 0x0818]; + + /* 0x083B */ bool field_0x083B; }; #endif diff --git a/include/d/lyt/d_lyt_pause_info.h b/include/d/lyt/d_lyt_pause_info.h new file mode 100644 index 00000000..a07f11a8 --- /dev/null +++ b/include/d/lyt/d_lyt_pause_info.h @@ -0,0 +1,48 @@ +#ifndef D_LYT_PAUSE_INFO_H +#define D_LYT_PAUSE_INFO_H + +#include "d/lyt/d2d.h" +#include "s/s_State.hpp" + +class dLytCommonTitle_c; + +class dLytPauseInfo_c { +public: + dLytPauseInfo_c(); + virtual ~dLytPauseInfo_c() {} + + bool build(); + bool remove(); + bool execute(); + bool draw(); + + void requestIn(); + void requestOut(); + void updateTitle(); + + void setInputInOut(bool inOut); + +private: + void updateCaption(); + void startAnim(int idx); + void stopAnim(int idx); + void playBackwards(d2d::AnmGroup_c &anm); + + STATE_FUNC_DECLARE(dLytPauseInfo_c, None); + STATE_FUNC_DECLARE(dLytPauseInfo_c, In); + STATE_FUNC_DECLARE(dLytPauseInfo_c, Wait); + STATE_FUNC_DECLARE(dLytPauseInfo_c, Out); + + /* 0x004 */ UI_STATE_MGR_DECLARE(dLytPauseInfo_c); + /* 0x040 */ dLytCommonTitle_c *mpTitle; + /* 0x044 */ d2d::LytBase_c mLyt; + /* 0x0D4 */ d2d::AnmGroup_c mAnm[3]; + /* 0x194 */ s32 mStep; + /* 0x198 */ bool mInRequest; + /* 0x199 */ bool mOutRequest; + /* 0x19A */ bool field_0x19A; + /* 0x19B */ bool field_0x19B; + /* 0x19C */ bool mInputInOut; +}; + +#endif diff --git a/include/d/lyt/d_lyt_pause_text.h b/include/d/lyt/d_lyt_pause_text.h new file mode 100644 index 00000000..296f6932 --- /dev/null +++ b/include/d/lyt/d_lyt_pause_text.h @@ -0,0 +1,13 @@ +#ifndef D_LYT_PAUSE_TEXT_H +#define D_LYT_PAUSE_TEXT_H + +#include "sized_string.h" + +class dLytPauseText_c { +public: + static const char *getCurrentPauseLabel(SizedString<32> &buf); + +private: +}; + +#endif diff --git a/include/d/lyt/d_lyt_util_items.h b/include/d/lyt/d_lyt_util_items.h index 7f832a40..2a2c048b 100644 --- a/include/d/lyt/d_lyt_util_items.h +++ b/include/d/lyt/d_lyt_util_items.h @@ -2,8 +2,11 @@ #define D_LYT_UTIL_ITEMS_H #include "common.h" +#include "sized_string.h" #include "toBeSorted/dowsing_target.h" +void getItemLabel(s32 itemId, SizedString<32> &buf); + bool isPouchBocoburinLocked(); u8 getPouchItemForSlot(s32 slot, bool unk); diff --git a/src/d/lyt/d_lyt_common_title.cpp b/src/d/lyt/d_lyt_common_title.cpp index d24eb52d..97ca263b 100644 --- a/src/d/lyt/d_lyt_common_title.cpp +++ b/src/d/lyt/d_lyt_common_title.cpp @@ -52,7 +52,7 @@ bool dLytCommonTitle_c::build() { mStateMgr.changeState(StateID_None); field_0x680 = 0; - field_0x690 = true; + mInputInOut = true; return true; } @@ -69,7 +69,7 @@ bool dLytCommonTitle_c::execute() { mStateMgr.executeState(); if (!(mStateMgr.getStateID()->isEqual(StateID_None))) { mAnm[COMMON_TITLE_ANIM_LOOP].play(); - if (field_0x690 == true) { + if (mInputInOut == true) { playBackwards(mAnm[COMMON_TITLE_ANIM_INPUT]); } else { mAnm[COMMON_TITLE_ANIM_INPUT].play(); @@ -91,7 +91,7 @@ bool dLytCommonTitle_c::set(s32 arg, const char *title, const char *caption) { return false; } - field_0x684 = arg; + mSetMode = arg; if (title != nullptr) { mTitle = title; @@ -151,7 +151,7 @@ void dLytCommonTitle_c::initializeState_None() { mChangeRequest = false; field_0x68D = false; mVisible = false; - field_0x684 = 0; + mSetMode = SET_00; mStep = 0; mTitle.empty(); mCaption.empty(); @@ -250,11 +250,11 @@ void dLytCommonTitle_c::executeState_Wait() { } if (mChangeRequest == true) { - if (field_0x684 == 3) { + if (mSetMode == SET_OUT) { mStateMgr.changeState(StateID_Out); } else if (field_0x680 == 0) { mStateMgr.changeState(StateID_Change); - } else if (field_0x684 == 1) { + } else if (mSetMode == SET_01) { mStateMgr.changeState(StateID_Change); } else { mChangeRequest = false; @@ -293,7 +293,7 @@ void dLytCommonTitle_c::finalizeState_Out() {} void dLytCommonTitle_c::initializeState_Change() { applyTextChange(0); - if (field_0x684 == 1) { + if (mSetMode == SET_01) { startAnim(COMMON_TITLE_ANIM_TITLE_CHANGE); } @@ -312,7 +312,7 @@ void dLytCommonTitle_c::executeState_Change() { mStep++; } anm.play(); - if (field_0x684 == 1) { + if (mSetMode == SET_01) { getAnm(COMMON_TITLE_ANIM_TITLE_CHANGE).play(); } break; @@ -320,7 +320,7 @@ void dLytCommonTitle_c::executeState_Change() { case 1: { applyTextChange(1); getAnm(COMMON_TITLE_ANIM_TEXT_CHANGE).setFrame(0.0f); - if (field_0x684 == 1) { + if (mSetMode == SET_01) { getAnm(COMMON_TITLE_ANIM_TITLE_CHANGE).setFrame(0.0f); } field_0x68D = true; @@ -351,7 +351,7 @@ void dLytCommonTitle_c::executeState_Change() { } void dLytCommonTitle_c::finalizeState_Change() { stopAnim(COMMON_TITLE_ANIM_TEXT_CHANGE); - if (field_0x684 == 1) { + if (mSetMode == SET_01) { stopAnim(COMMON_TITLE_ANIM_TITLE_CHANGE); } } @@ -379,7 +379,7 @@ void dLytCommonTitle_c::playBackwards(d2d::AnmGroup_c &anm) { } void dLytCommonTitle_c::applyText() { - if (field_0x684 == 2) { + if (mSetMode == SET_CAPTION_IMMEDIATELY) { applyCaption(0); } else { applyTitle(0); @@ -390,7 +390,7 @@ void dLytCommonTitle_c::applyText() { void dLytCommonTitle_c::applyTextChange(s32 arg) { switch (arg) { case 0: { - if (field_0x684 == 2) { + if (mSetMode == SET_CAPTION_IMMEDIATELY) { applyCaption(1); } else { applyTitle(1); @@ -399,7 +399,7 @@ void dLytCommonTitle_c::applyTextChange(s32 arg) { break; } case 1: { - if (field_0x684 == 2) { + if (mSetMode == SET_CAPTION_IMMEDIATELY) { applyCaption(2); } else { applyTitle(2); diff --git a/src/d/lyt/d_lyt_pause_info.cpp b/src/d/lyt/d_lyt_pause_info.cpp new file mode 100644 index 00000000..97e294ac --- /dev/null +++ b/src/d/lyt/d_lyt_pause_info.cpp @@ -0,0 +1,245 @@ +#include "d/lyt/d_lyt_pause_info.h" + +#include "common.h" +#include "d/a/d_a_itembase.h" +#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_title.h" +#include "d/lyt/d_lyt_control_game.h" +#include "d/lyt/d_lyt_pause.h" +#include "d/lyt/d_lyt_pause_text.h" +#include "d/lyt/d_lyt_util_items.h" +#include "sized_string.h" + +#include + + +STATE_DEFINE(dLytPauseInfo_c, None); +STATE_DEFINE(dLytPauseInfo_c, In); +STATE_DEFINE(dLytPauseInfo_c, Wait); +STATE_DEFINE(dLytPauseInfo_c, Out); + +static const d2d::LytBrlanMapping brlanMap[] = { + { "pauseInfo_00_in.brlan", "G_inOut_00"}, + { "pauseInfo_00_out.brlan", "G_inOut_00"}, + {"pauseInfo_00_input.brlan", "G_input_00"}, +}; + +#define PAUSE_INFO_ANIM_IN 0 +#define PAUSE_INFO_ANIM_OUT 1 +#define PAUSE_INFO_ANIM_INPUT 2 + +#define PAUSE_INFO_NUM_ANIMS 3 + +dLytPauseInfo_c::dLytPauseInfo_c() : mStateMgr(*this) { + mpTitle = nullptr; +} + +bool dLytPauseInfo_c::build() { + d2d::ResAccIf_c *resAcc = dLytPauseMgr_c::GetInstance()->getResAcc1(); + mLyt.setResAcc(resAcc); + mLyt.build("pauseInfo_00.brlyt", nullptr); + mLyt.setPriority(0x86); + + for (int i = 0; i < PAUSE_INFO_NUM_ANIMS; i++) { + mAnm[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName); + } + + mStateMgr.changeState(StateID_None); + + mpTitle = new dLytCommonTitle_c(); + mpTitle->build(); + mpTitle->setField_0x680(1); + mInputInOut = true; + return true; +} + +bool dLytPauseInfo_c::remove() { + if (mpTitle != nullptr) { + mpTitle->remove(); + delete mpTitle; + mpTitle = nullptr; + } + mLyt.unbindAnims(); + for (int i = 0; i < PAUSE_INFO_NUM_ANIMS; i++) { + mAnm[i].remove(); + } + return true; +} + +bool dLytPauseInfo_c::execute() { + mStateMgr.executeState(); + if (!mStateMgr.getStateID()->isEqual(StateID_None)) { + if (mInputInOut == true) { + playBackwards(mAnm[PAUSE_INFO_ANIM_INPUT]); + } else { + mAnm[PAUSE_INFO_ANIM_INPUT].play(); + } + } + mLyt.calc(); + if (mpTitle != nullptr) { + mpTitle->execute(); + } + return true; +} + +bool dLytPauseInfo_c::draw() { + if (field_0x19B == true) { + if (mpTitle != nullptr) { + mpTitle->draw(); + } + if (!dLytControlGame_c::getInstance()->getField_0x15C67()) { + mLyt.addToDrawList(); + } + } + return true; +} + +void dLytPauseInfo_c::requestIn() { + mInRequest = true; +} + +void dLytPauseInfo_c::requestOut() { + mOutRequest = true; +} + +void dLytPauseInfo_c::updateTitle() { + if (dLytControlGame_c::getInstance()->getField_0x15C2C()) { + // "Gear" + mpTitle->set(dLytCommonTitle_c::SET_01, mpTitle->setSubTitle(1), nullptr); + } else { + // "Collection" + mpTitle->set(dLytCommonTitle_c::SET_01, mpTitle->setSubTitle(2), nullptr); + } +} + +void dLytPauseInfo_c::setInputInOut(bool inOut) { + if (mpTitle == nullptr) { + return; + } + mpTitle->setInputInOut(inOut); + mInputInOut = inOut; +} + +void dLytPauseInfo_c::initializeState_None() { + mLyt.unbindAnims(); + field_0x19A = false; + mInRequest = false; + mOutRequest = false; + field_0x19B = false; + mStep = 0; +} +void dLytPauseInfo_c::executeState_None() { + if (mInRequest == true) { + mInRequest = false; + mStateMgr.changeState(StateID_In); + } +} +void dLytPauseInfo_c::finalizeState_None() {} + +void dLytPauseInfo_c::initializeState_In() { + startAnim(PAUSE_INFO_ANIM_IN); + startAnim(PAUSE_INFO_ANIM_INPUT); + field_0x19B = true; + + s32 msgIdx = 1; // "Gear" + if (dLytControlGame_c::getInstance()->getField_0x15C2C() != 0) { + msgIdx = 2; // "Collection" + } + if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + SizedString<32> label; + if (dLytControlGame_c::getInstance()->getItemForPauseDemo() == ITEM_5_CRYSTALS) { + getItemLabel(ITEM_1_CRYSTAL, label); + } else { + getItemLabel(dLytControlGame_c::getInstance()->getItemForPauseDemo(), label); + } + + if (std::strlen(label) != 0) { + const char *msgLabel = mpTitle->setSubTitle(msgIdx); + mpTitle->set(dLytCommonTitle_c::SET_00, msgLabel, label); + } else { + const char *msgLabel = mpTitle->setSubTitle(msgIdx); + mpTitle->set(dLytCommonTitle_c::SET_00, msgLabel, nullptr); + } + } else { + const char *msgLabel = mpTitle->setSubTitle(msgIdx); + mpTitle->set(dLytCommonTitle_c::SET_00, msgLabel, nullptr); + } +} +void dLytPauseInfo_c::executeState_In() { + d2d::AnmGroup_c &anm = mAnm[PAUSE_INFO_ANIM_IN]; + if (anm.isEndReached() == true) { + mStateMgr.changeState(StateID_Wait); + } else { + anm.play(); + } +} +void dLytPauseInfo_c::finalizeState_In() {} + +void dLytPauseInfo_c::initializeState_Wait() { + field_0x19A = true; +} +void dLytPauseInfo_c::executeState_Wait() { + updateCaption(); + field_0x19A = false; + if (mOutRequest == true) { + mOutRequest = false; + mStateMgr.changeState(StateID_Out); + } +} +void dLytPauseInfo_c::finalizeState_Wait() {} + +void dLytPauseInfo_c::initializeState_Out() { + stopAnim(PAUSE_INFO_ANIM_IN); + startAnim(PAUSE_INFO_ANIM_OUT); + mpTitle->set(dLytCommonTitle_c::SET_OUT, nullptr, nullptr); + mStep = 0; +} +void dLytPauseInfo_c::executeState_Out() { + d2d::AnmGroup_c &anm = mAnm[PAUSE_INFO_ANIM_OUT]; + switch (mStep) { + case 0: { + if (anm.isEndReached() == true) { + mStep = 1; + field_0x19A = true; + } + break; + } + case 1: { + mStateMgr.changeState(StateID_None); + return; + } + } + anm.play(); +} +void dLytPauseInfo_c::finalizeState_Out() {} + +void dLytPauseInfo_c::startAnim(int idx) { + d2d::AnmGroup_c &anm = mAnm[idx]; + anm.bind(false); + anm.setFrame(0.0f); +} + +void dLytPauseInfo_c::stopAnim(int idx) { + d2d::AnmGroup_c &anm = mAnm[idx]; + anm.unbind(); +} + +void dLytPauseInfo_c::playBackwards(d2d::AnmGroup_c &anm) { + f32 frame = anm.getFrame(); + if (frame) { + frame -= 1.0f; + if (frame <= 0.0f) { + frame = 0.0f; + } + anm.setFrame(frame); + } +} + +void dLytPauseInfo_c::updateCaption() { + if (dLytControlGame_c::getInstance()->getField_0x15C67() != true && + dLytPauseMgr_c::GetInstance()->getField_0x083B() == true) { + SizedString<32> buf; + const char *label = dLytPauseText_c::getCurrentPauseLabel(buf); + mpTitle->set(dLytCommonTitle_c::SET_CAPTION_IMMEDIATELY, nullptr, label); + } +}