diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 4b9f11bb..02776db9 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -9218,7 +9218,7 @@ fn_80168760__17dLytCommonArrow_cFv = .text:0x80168760; // type:function size:0x2 displayElement__17dLytCommonArrow_cFlf = .text:0x80168790; // type:function size:0x68 unbindAt__17dLytCommonArrow_cFl = .text:0x80168800; // type:function size:0x10 tickDown__17dLytCommonArrow_cFPQ23d2d10AnmGroup_c = .text:0x80168810; // type:function size:0x64 -fn_80168880__17dLytCommonArrow_cFv = .text:0x80168880; // type:function size:0xC4 +checkPointAtPane__17dLytCommonArrow_cFv = .text:0x80168880; // type:function size:0xC4 initializeState_None__17dLytCommonArrow_cFv = .text:0x80168950; // type:function size:0x74 executeState_None__17dLytCommonArrow_cFv = .text:0x801689D0; // type:function size:0x28 finalizeState_None__17dLytCommonArrow_cFv = .text:0x80168A00; // type:function size:0x14 @@ -14802,19 +14802,19 @@ fn_8027E950 = .text:0x8027E950; // type:function size:0x30 fn_8027E980 = .text:0x8027E980; // type:function size:0x30 fn_8027E9B0 = .text:0x8027E9B0; // type:function size:0x30 __ct__15dLytPauseMain_cFv = .text:0x8027E9E0; // type:function size:0xB8 -__dt__54sFStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x8027EAA0; // type:function size:0xA4 -__dt__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027EB50; // type:function size:0xA0 -__dt__31sFStateFct_c<15dLytPauseMain_c>Fv = .text:0x8027EBF0; // type:function size:0x6C -__dt__28sFState_c<15dLytPauseMain_c>Fv = .text:0x8027EC60; // type:function size:0x58 +__dt__54sFStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x8027EAA0; // type:function size:0xA4 scope:weak +__dt__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027EB50; // type:function size:0xA0 scope:weak +__dt__31sFStateFct_c<15dLytPauseMain_c>Fv = .text:0x8027EBF0; // type:function size:0x6C scope:weak +__dt__28sFState_c<15dLytPauseMain_c>Fv = .text:0x8027EC60; // type:function size:0x58 scope:weak build__15dLytPauseMain_cFv = .text:0x8027ECC0; // type:function size:0x128 -changeState__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8027EDF0; // type:function size:0x10 +changeState__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8027EDF0; // type:function size:0x10 scope:weak remove__15dLytPauseMain_cFv = .text:0x8027EE00; // type:function size:0x198 execute__15dLytPauseMain_cFv = .text:0x8027EFA0; // type:function size:0x70 -executeState__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027F010; // type:function size:0x10 +executeState__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027F010; // type:function size:0x10 scope:weak draw__15dLytPauseMain_cFv = .text:0x8027F020; // type:function size:0x80 drawDirectly__15dLytPauseMain_cFv = .text:0x8027F0A0; // type:function size:0x24 -fn_8027F0D0 = .text:0x8027F0D0; // type:function size:0x4 -fn_8027F0E0 = .text:0x8027F0E0; // type:function size:0x14 +loadBgTextureUnused__15dLytPauseMain_cFv = .text:0x8027F0D0; // type:function size:0x4 +loadBgTexture__15dLytPauseMain_cFv = .text:0x8027F0E0; // type:function size:0x14 requestIn__15dLytPauseMain_cFv = .text:0x8027F100; // type:function size:0xC requestOut__15dLytPauseMain_cFv = .text:0x8027F110; // type:function size:0xC requestChange__15dLytPauseMain_cFv = .text:0x8027F120; // type:function size:0xC @@ -14848,18 +14848,18 @@ executeState_Out__15dLytPauseMain_cFv = .text:0x8027FB40; // type:function size: finalizeState_Out__15dLytPauseMain_cFv = .text:0x8027FC20; // type:function size:0x4 dLytPauseMgr_c_classInit__Fv = .text:0x8027FC30; // type:function size:0x30 __ct__14dLytPauseMgr_cFv = .text:0x8027FC60; // type:function size:0x124 -__dt__15dLytPauseMain_cFv = .text:0x8027FD90; // type:function size:0xB4 -__dt__27sFState_c<14dLytPauseMgr_c>Fv = .text:0x8027FE50; // type:function size:0x58 -__dt__30sFStateFct_c<14dLytPauseMgr_c>Fv = .text:0x8027FEB0; // type:function size:0x6C -__dt__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027FF20; // type:function size:0xA0 -__dt__53sFStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c>Fv = .text:0x8027FFC0; // type:function size:0xA4 +__dt__15dLytPauseMain_cFv = .text:0x8027FD90; // type:function size:0xB4 scope:weak +__dt__27sFState_c<14dLytPauseMgr_c>Fv = .text:0x8027FE50; // type:function size:0x58 scope:weak +__dt__30sFStateFct_c<14dLytPauseMgr_c>Fv = .text:0x8027FEB0; // type:function size:0x6C scope:weak +__dt__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8027FF20; // type:function size:0xA0 scope:weak +__dt__53sFStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c>Fv = .text:0x8027FFC0; // type:function size:0xA4 scope:weak __dt__14dLytPauseMgr_cFv = .text:0x80280070; // type:function size:0x17C create__14dLytPauseMgr_cFv = .text:0x802801F0; // type:function size:0x64 -changeState__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80280260; // type:function size:0x10 +changeState__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80280260; // type:function size:0x10 scope:weak doDelete__14dLytPauseMgr_cFv = .text:0x80280270; // type:function size:0x78 execute__14dLytPauseMgr_cFv = .text:0x802802F0; // type:function size:0x7C -executeState__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80280370; // type:function size:0x10 -getStateID__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80280380; // type:function size:0x10 +executeState__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80280370; // type:function size:0x10 scope:weak +getStateID__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80280380; // type:function size:0x10 scope:weak draw__14dLytPauseMgr_cFv = .text:0x80280390; // type:function size:0x68 initializeState_None__14dLytPauseMgr_cFv = .text:0x80280400; // type:function size:0x9C executeState_None__14dLytPauseMgr_cFv = .text:0x802804A0; // type:function size:0xC4 @@ -14885,17 +14885,17 @@ finalizeState_GetDemo__14dLytPauseMgr_cFv = .text:0x80280DA0; // type:function s initializeState_Out__14dLytPauseMgr_cFv = .text:0x80280DB0; // type:function size:0x10 executeState_Out__14dLytPauseMgr_cFv = .text:0x80280DC0; // type:function size:0x40 finalizeState_Out__14dLytPauseMgr_cFv = .text:0x80280E00; // type:function size:0x20 -fn_80280E20 = .text:0x80280E20; // type:function size:0x10 +inRequest__14dLytPauseMgr_cFv = .text:0x80280E20; // type:function size:0x10 isStateWait__14dLytPauseMgr_cCFv = .text:0x80280E30; // type:function size:0x44 -fn_80280E80 = .text:0x80280E80; // type:function size:0xB0 -fn_80280F30 = .text:0x80280F30; // type:function size:0x9C +preDrawStage__14dLytPauseMgr_cFv = .text:0x80280E80; // type:function size:0xB0 +postDrawStage__14dLytPauseMgr_cFv = .text:0x80280F30; // type:function size:0x9C getArrowBounding__14dLytPauseMgr_cCFi = .text:0x80280FD0; // type:function size:0x14 -setSelectedArrowBounding__14dLytPauseMgr_cCFi = .text:0x80280FF0; // type:function size:0xC +setSelectedArrowBounding__14dLytPauseMgr_cFi = .text:0x80280FF0; // type:function size:0xC setSelection__14dLytPauseMgr_cFQ214dLytPauseMgr_c15SelectionType_eUsb = .text:0x80281000; // type:function size:0x3C checkSelectRing__14dLytPauseMgr_cFv = .text:0x80281040; // type:function size:0x15C build__14dLytPauseMgr_cFv = .text:0x802811A0; // type:function size:0x74 -checkChangeGesture__14dLytPauseMgr_cFv = .text:0x80281220; // type:function size:0x134 -saveDispFlag__14dLytPauseMgr_cFv = .text:0x80281360; // type:function size:0x68 +checkChangeDisp__14dLytPauseMgr_cFv = .text:0x80281220; // type:function size:0x134 +changeSavedDisp__14dLytPauseMgr_cFv = .text:0x80281360; // type:function size:0x68 saveTabFlag__14dLytPauseMgr_cFv = .text:0x802813D0; // type:function size:0x34 checkRing__14dLytPauseMgr_cFv = .text:0x80281410; // type:function size:0xC8 setSelectHand__14dLytPauseMgr_cFff = .text:0x802814E0; // type:function size:0xC @@ -16846,7 +16846,7 @@ openCollectionScreenDemo__17dLytControlGame_cFv = .text:0x802D02C0; // type:func fn_802D0360 = .text:0x802D0360; // type:function size:0xA0 fn_802D0400 = .text:0x802D0400; // type:function size:0xC fn_802D0410 = .text:0x802D0410; // type:function size:0xD4 -fn_802D04F0 = .text:0x802D04F0; // type:function size:0x10 +fn_802D04F0__17dLytControlGame_cFv = .text:0x802D04F0; // type:function size:0x10 fn_802D0500 = .text:0x802D0500; // type:function size:0x9C fn_802D05A0 = .text:0x802D05A0; // type:function size:0x148 fn_802D06F0 = .text:0x802D06F0; // type:function size:0xC @@ -36218,20 +36218,85 @@ g_profile_NPC_STR = .data:0x80537010; // type:object size:0x10 AcNpcStr__vtable = .data:0x80537020; // type:object size:0x288 lbl_805372A8 = .data:0x805372A8; // type:object size:0x68 g_profile_LYT_PAUSE = .data:0x80537310; // type:object size:0xC -lbl_8053731C = .data:0x8053731C; // type:object size:0xC -lbl_80537328 = .data:0x80537328; // type:object size:0x10 +...data.0 = .data:0x80537310; // type:label scope:local +@39544 = .data:0x8053731C; // type:object size:0xA scope:local data:string +@39546 = .data:0x80537328; // type:object size:0x9 scope:local data:string __vt__14dLytPauseMgr_c = .data:0x80537338; // type:object size:0x50 -__vt__53sFStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c> = .data:0x80537388; // type:object size:0x30 -__vt__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805373B8; // type:object size:0x30 -__vt__30sFStateFct_c<14dLytPauseMgr_c> = .data:0x805373E8; // type:object size:0x18 -__vt__27sFState_c<14dLytPauseMgr_c> = .data:0x80537400; // type:object size:0x18 -__vt__15dLytPauseMain_c = .data:0x80537418; // type:object size:0x10 -__vt__54sFStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c> = .data:0x80537428; // type:object size:0x30 -__vt__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80537458; // type:object size:0x30 -__vt__31sFStateFct_c<15dLytPauseMain_c> = .data:0x80537488; // type:object size:0x18 -__vt__28sFState_c<15dLytPauseMain_c> = .data:0x805374A0; // type:object size:0x464 -__vt__29sFStateID_c<14dLytPauseMgr_c> = .data:0x80537904; // type:object size:0x34 -__vt__30sFStateID_c<15dLytPauseMain_c> = .data:0x80537938; // type:object size:0x38 +__vt__53sFStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c> = .data:0x80537388; // type:object size:0x30 scope:weak +__vt__83sStateMgr_c<14dLytPauseMgr_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x805373B8; // type:object size:0x30 scope:weak +__vt__30sFStateFct_c<14dLytPauseMgr_c> = .data:0x805373E8; // type:object size:0x14 scope:weak +__vt__27sFState_c<14dLytPauseMgr_c> = .data:0x80537400; // type:object size:0x18 scope:weak +__vt__15dLytPauseMain_c = .data:0x80537418; // type:object size:0xC scope:weak +__vt__54sFStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c> = .data:0x80537428; // type:object size:0x30 scope:weak +__vt__84sStateMgr_c<15dLytPauseMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80537458; // type:object size:0x30 scope:weak +__vt__31sFStateFct_c<15dLytPauseMain_c> = .data:0x80537488; // type:object size:0x14 scope:weak +__vt__28sFState_c<15dLytPauseMain_c> = .data:0x805374A0; // type:object size:0x18 scope:weak +@39698 = .data:0x805374CC; // type:object size:0xC scope:local +@39699 = .data:0x805374D8; // type:object size:0xC scope:local +@39700 = .data:0x805374E4; // type:object size:0xC scope:local +@39701 = .data:0x805374F0; // type:object size:0xC scope:local +@39702 = .data:0x805374FC; // type:object size:0xC scope:local +@39703 = .data:0x80537508; // type:object size:0xC scope:local +@39704 = .data:0x80537514; // type:object size:0xC scope:local +@39705 = .data:0x80537520; // type:object size:0xC scope:local +@39706 = .data:0x8053752C; // type:object size:0xC scope:local +@39707 = .data:0x80537538; // type:object size:0xC scope:local +@39708 = .data:0x80537544; // type:object size:0xC scope:local +@39709 = .data:0x80537550; // type:object size:0xC scope:local +@39710 = .data:0x8053755C; // type:object size:0xC scope:local +@39711 = .data:0x80537568; // type:object size:0xC scope:local +@39712 = .data:0x80537574; // type:object size:0xC scope:local +@39713 = .data:0x80537580; // type:object size:0xC scope:local +@39714 = .data:0x8053758C; // type:object size:0xC scope:local +@39715 = .data:0x80537598; // type:object size:0xC scope:local +@39716 = .data:0x805375A4; // type:object size:0xC scope:local +@39717 = .data:0x805375B0; // type:object size:0xC scope:local +@39718 = .data:0x805375BC; // type:object size:0xC scope:local +@39719 = .data:0x805375C8; // type:object size:0xC scope:local +@39720 = .data:0x805375D4; // type:object size:0xC scope:local +@39721 = .data:0x805375E0; // type:object size:0xC scope:local +@39722 = .data:0x805375EC; // type:object size:0xC scope:local +@39723 = .data:0x805375F8; // type:object size:0xC scope:local +@39724 = .data:0x80537604; // type:object size:0xC scope:local +@39725 = .data:0x80537610; // type:object size:0xC scope:local +@39726 = .data:0x8053761C; // type:object size:0xC scope:local +@39727 = .data:0x80537628; // type:object size:0xC scope:local +@39728 = .data:0x80537634; // type:object size:0xC scope:local +@39729 = .data:0x80537640; // type:object size:0xC scope:local +@39730 = .data:0x8053764C; // type:object size:0xC scope:local +@39731 = .data:0x80537658; // type:object size:0xC scope:local +@39732 = .data:0x80537664; // type:object size:0xC scope:local +@39733 = .data:0x80537670; // type:object size:0xC scope:local +@39734 = .data:0x8053767C; // type:object size:0xC scope:local +@39735 = .data:0x80537688; // type:object size:0xC scope:local +@39736 = .data:0x80537694; // type:object size:0xC scope:local +@39737 = .data:0x805376A0; // type:object size:0xC scope:local +@39738 = .data:0x805376AC; // type:object size:0xC scope:local +@39739 = .data:0x805376B8; // type:object size:0xC scope:local +@39740 = .data:0x805376C4; // type:object size:0xC scope:local +@39741 = .data:0x805376D0; // type:object size:0xC scope:local +@39742 = .data:0x805376DC; // type:object size:0xC scope:local +@39743 = .data:0x805376E8; // type:object size:0xC scope:local +@39744 = .data:0x805376F4; // type:object size:0xC scope:local +@39745 = .data:0x80537700; // type:object size:0xC scope:local +@39747 = .data:0x8053770C; // type:object size:0x1E scope:local data:string +@39748 = .data:0x8053772C; // type:object size:0x1C scope:local data:string +@39749 = .data:0x80537748; // type:object size:0x1E scope:local data:string +@39750 = .data:0x80537768; // type:object size:0x20 scope:local data:string +@39751 = .data:0x80537788; // type:object size:0x20 scope:local data:string +@39752 = .data:0x805377A8; // type:object size:0x1E scope:local data:string +@39753 = .data:0x805377C8; // type:object size:0x21 scope:local data:string +@39754 = .data:0x805377EC; // type:object size:0x1D scope:local data:string +@39755 = .data:0x8053780C; // type:object size:0x1D scope:local data:string +@39756 = .data:0x8053782C; // type:object size:0x1B scope:local data:string +@39757 = .data:0x80537848; // type:object size:0x1D scope:local data:string +@39758 = .data:0x80537868; // type:object size:0x1F scope:local data:string +@39759 = .data:0x80537888; // type:object size:0x1F scope:local data:string +@39760 = .data:0x805378A8; // type:object size:0x1D scope:local data:string +@39761 = .data:0x805378C8; // type:object size:0x20 scope:local data:string +@39762 = .data:0x805378E8; // type:object size:0x1C scope:local data:string +__vt__29sFStateID_c<14dLytPauseMgr_c> = .data:0x80537904; // type:object size:0x34 scope:weak +__vt__30sFStateID_c<15dLytPauseMain_c> = .data:0x80537938; // type:object size:0x34 scope:weak lbl_80537970 = .data:0x80537970; // type:object size:0x1C lbl_8053798C = .data:0x8053798C; // type:object size:0x10 lbl_8053799C = .data:0x8053799C; // type:object size:0x18 @@ -40705,8 +40770,8 @@ lbl_80573B28 = .sdata:0x80573B28; // type:object size:0x8 data:string lbl_80573B30 = .sdata:0x80573B30; // type:object size:0x8 lbl_80573B38 = .sdata:0x80573B38; // type:object size:0x8 lbl_80573B40 = .sdata:0x80573B40; // type:object size:0x8 data:4byte -lbl_80573B48 = .sdata:0x80573B48; // type:object size:0x8 -lbl_80573B50 = .sdata:0x80573B50; // type:object size:0x8 +@39260 = .sdata:0x80573B48; // type:object size:0x6 scope:local data:string +@39545 = .sdata:0x80573B50; // type:object size:0x1 scope:local lbl_80573B58 = .sdata:0x80573B58; // type:object size:0x4 data:4byte lbl_80573B5C = .sdata:0x80573B5C; // type:object size:0x4 lbl_80573B60 = .sdata:0x80573B60; // type:object size:0x5 data:string @@ -42036,8 +42101,8 @@ sInstance__12dTgMassObj_c = .sbss:0x80575930; // type:object size:0x4 data:4byte lbl_80575934 = .sbss:0x80575934; // type:object size:0x4 data:4byte sDisp00ArrowRotation__14dLytPauseMgr_c = .sbss:0x80575938; // type:object size:0x4 align:4 data:float sDisp00ArrowLength__14dLytPauseMgr_c = .sbss:0x8057593C; // type:object size:0x4 align:4 data:float -sInstance__14dLytPauseMgr_c = .sbss:0x80575940; // type:object size:0x8 data:4byte -sInstance__17dLytGameOverMgr_c = .sbss:0x80575948; // type:object size:0x8 data:4byte +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 lbl_80575958 = .sbss:0x80575958; // type:object size:0x1 data:byte lbl_80575959 = .sbss:0x80575959; // type:object size:0x1 data:byte @@ -51811,18 +51876,39 @@ lbl_805B5840 = .bss:0x805B5840; // type:object size:0xC AcNpcTke__STATE_WAIT = .bss:0x805B584C; // type:object size:0x74 data:4byte lbl_805B58C0 = .bss:0x805B58C0; // type:object size:0xC AcNpcStr__STATE_WAIT = .bss:0x805B58CC; // type:object size:0x74 data:4byte -lbl_805B5940 = .bss:0x805B5940; // type:object size:0x10 -LytPauseMain__STATE_NONE = .bss:0x805B5950; // type:object size:0x40 data:4byte -LytPauseMain__STATE_IN = .bss:0x805B5990; // type:object size:0x40 data:4byte -LytPauseMain__STATE_WAIT = .bss:0x805B59D0; // type:object size:0x80 data:4byte -LytPauseMain__STATE_SELECT = .bss:0x805B5A50; // type:object size:0x80 data:4byte -LytPauseMain__STATE_GET_DEMO = .bss:0x805B5AD0; // type:object size:0x80 data:4byte -LytPauseMgr__STATE_NONE = .bss:0x805B5B50; // type:object size:0x40 data:4byte -LytPauseMgr__STATE_IN = .bss:0x805B5B90; // type:object size:0x40 data:4byte -LytPauseMgr__STATE_WAIT = .bss:0x805B5BD0; // type:object size:0x80 data:4byte -LytPauseMgr__STATE_SELECT = .bss:0x805B5C50; // type:object size:0x80 data:4byte -LytPauseMgr__STATE_GET_DEMO = .bss:0x805B5CD0; // type:object size:0x40 data:4byte -LytPauseMgr__STATE_OUT = .bss:0x805B5D10; // type:object size:0x30 data:4byte +@31850 = .bss:0x805B5940; // type:object size:0xC scope:local +...bss.0 = .bss:0x805B5940; // type:label scope:local +StateID_None__15dLytPauseMain_c = .bss:0x805B5950; // type:object size:0x30 data:4byte +@31854 = .bss:0x805B5980; // type:object size:0xC scope:local +StateID_In__15dLytPauseMain_c = .bss:0x805B5990; // type:object size:0x30 data:4byte +@31858 = .bss:0x805B59C0; // type:object size:0xC scope:local +StateID_Wait__15dLytPauseMain_c = .bss:0x805B59D0; // type:object size:0x30 data:4byte +@31862 = .bss:0x805B5A00; // type:object size:0xC scope:local +StateID_Change__15dLytPauseMain_c = .bss:0x805B5A10; // type:object size:0x30 scope:global +@31866 = .bss:0x805B5A40; // type:object size:0xC scope:local +StateID_Select__15dLytPauseMain_c = .bss:0x805B5A50; // type:object size:0x30 data:4byte +@31870 = .bss:0x805B5A80; // type:object size:0xC scope:local +StateID_Ring__15dLytPauseMain_c = .bss:0x805B5A90; // type:object size:0x30 scope:global +@31874 = .bss:0x805B5AC0; // type:object size:0xC scope:local +StateID_GetDemo__15dLytPauseMain_c = .bss:0x805B5AD0; // type:object size:0x30 data:4byte +@31878 = .bss:0x805B5B00; // type:object size:0xC scope:local +StateID_Out__15dLytPauseMain_c = .bss:0x805B5B10; // type:object size:0x30 scope:global +@31882 = .bss:0x805B5B40; // type:object size:0xC scope:local +StateID_None__14dLytPauseMgr_c = .bss:0x805B5B50; // type:object size:0x30 data:4byte +@31886 = .bss:0x805B5B80; // type:object size:0xC scope:local +StateID_In__14dLytPauseMgr_c = .bss:0x805B5B90; // type:object size:0x30 data:4byte +@31890 = .bss:0x805B5BC0; // type:object size:0xC scope:local +StateID_Wait__14dLytPauseMgr_c = .bss:0x805B5BD0; // type:object size:0x30 data:4byte +@31894 = .bss:0x805B5C00; // type:object size:0xC scope:local +StateID_Change__14dLytPauseMgr_c = .bss:0x805B5C10; // type:object size:0x30 scope:global +@31898 = .bss:0x805B5C40; // type:object size:0xC scope:local +StateID_Select__14dLytPauseMgr_c = .bss:0x805B5C50; // type:object size:0x30 data:4byte +@31902 = .bss:0x805B5C80; // type:object size:0xC scope:local +StateID_Ring__14dLytPauseMgr_c = .bss:0x805B5C90; // type:object size:0x30 scope:global +@31906 = .bss:0x805B5CC0; // type:object size:0xC scope:local +StateID_GetDemo__14dLytPauseMgr_c = .bss:0x805B5CD0; // type:object size:0x30 data:4byte +@31910 = .bss:0x805B5D00; // type:object size:0xC scope:local +StateID_Out__14dLytPauseMgr_c = .bss:0x805B5D10; // type:object size:0x30 data:4byte lbl_805B5D40 = .bss:0x805B5D40; // type:object size:0x10 LytGameOver__STATE_INIT = .bss:0x805B5D50; // type:object size:0x40 data:4byte LytGameOver__STATE_IN = .bss:0x805B5D90; // type:object size:0x40 data:4byte diff --git a/configure.py b/configure.py index bc7d98a3..566a8346 100644 --- a/configure.py +++ b/configure.py @@ -624,7 +624,7 @@ config.libs = [ Object(NonMatching, "toBeSorted/d_a_npc_inv.cpp"), Object(NonMatching, "toBeSorted/d_a_npc_tke.cpp"), Object(NonMatching, "toBeSorted/d_a_npc_str.cpp"), - Object(NonMatching, "d/lyt/d_lyt_pause.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(NonMatching, "d/lyt/d_lyt_drop_line.cpp"), diff --git a/include/d/d_pad_nav.h b/include/d/d_pad_nav.h index 84b330f8..882ec64e 100644 --- a/include/d/d_pad_nav.h +++ b/include/d/d_pad_nav.h @@ -50,6 +50,18 @@ inline s32 getFSStickNavDirection() { return sFSStickNavDirection; } +inline bool isMplsNavLeftGesture() { + return sIsMplsNavLeftGesture; +} + +inline bool isMplsNavRightGesture() { + return sIsMplsNavRightGesture; +} + +inline bool isMplsNavGesture() { + return isMplsNavLeftGesture() || isMplsNavRightGesture(); +} + void init(); void calc(); void setNavEnabled(bool navEnabled, bool disableAutoReturnToPointerNav); diff --git a/include/d/lyt/d_lyt_common_arrow.h b/include/d/lyt/d_lyt_common_arrow.h index 58cc00a0..ccab07b9 100644 --- a/include/d/lyt/d_lyt_common_arrow.h +++ b/include/d/lyt/d_lyt_common_arrow.h @@ -14,6 +14,12 @@ public: dLytCommonArrow_c(); virtual ~dLytCommonArrow_c() {} + enum Arrow_e { + ARROW_LEFT = 0, + ARROW_RIGHT = 1, + ARROW_NONE = 2, + }; + bool build(); STATE_FUNC_DECLARE(dLytCommonArrow_c, None); @@ -30,20 +36,32 @@ public: bool requestOut(); void unk() { - field_0x6B8 = mTargetedBounding; + field_0x6B8 = mPointedAtArrow; + } + + s32 getField_0x6B8() const { + return field_0x6B8; + } + + nw4r::lyt::Bounding *getArrowBounding(s32 idx) const { + return mpBoundings[idx]; + } + + void setField_0x6B8(s32 v) { + field_0x6B8 = v; } void setBackwards(bool b) { mBackwards = b; } + bool fn_80168760(); private: void setTranslate(const Vec *); - bool fn_80168760(); void displayElement(s32, f32); void unbindAt(s32); void tickDown(d2d::AnmGroup_c *); - void fn_80168880(); + void checkPointAtPane(); /* 0x04 */ UI_STATE_MGR_DECLARE(dLytCommonArrow_c); /* 0x40 */ d2d::LytBase_c mLytBase; @@ -52,14 +70,14 @@ private: dCursorHitCheckLyt_c mCsHitCheck; /* 0x6A8 */ nw4r::lyt::Bounding *mpBoundings[2]; /* 0x6B0 */ s32 mType; - /* 0x6B4 */ s32 mTargetedBounding; + /* 0x6B4 */ s32 mPointedAtArrow; /* 0x6B8 */ s32 field_0x6B8; /* 0x6BC */ s32 field_0x6BC; /* 0x6C0 */ s32 field_0x6C0; /* 0x6C4 */ s32 mTimer; /* 0x6C8 */ bool mInRequested; /* 0x6C9 */ bool mOutRequested; - /* 0x6CA */ u8 field_0x6CA; + /* 0x6CA */ bool mIsChangingState; /* 0x6CB */ bool mVisible; /* 0x6CC */ bool mBackwards; }; diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h index 8948f6a3..52098e3c 100644 --- a/include/d/lyt/d_lyt_control_game.h +++ b/include/d/lyt/d_lyt_control_game.h @@ -16,17 +16,18 @@ public: void somehowRelatedToEnteringLightPillars(s32, s32, s32); void fn_802CCD40(bool); + void fn_802D04F0(); static dLytControlGame_c *getInstance() { return sInstance; } - s32 getField_0x15C2C() const { - return field_0x15C2C; + s32 getCurrentPauseDisp() const { + return mCurrentPauseDisp; } - void setField_0x15C2C(s32 value) { - field_0x15C2C = value; + void setCurrentPauseDisp(s32 value) { + mCurrentPauseDisp = value; } void setPauseDisp00Tab(s32 tab) { @@ -45,12 +46,12 @@ public: return mItemCountForPauseDemo; } - bool getField_0x15C67() const { - return field_0x15C67; + bool isPauseDemo() const { + return mIsPauseDemo; } - bool getField_0x15C68() const { - return field_0x15C68; + u8 getPauseDemoDisp() const { + return mPauseDemoDisp; } STATE_FUNC_DECLARE(dLytControlGame_c, Normal); @@ -71,7 +72,7 @@ private: /* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c); /* 0x000A4 */ u8 _0x000A4[0x15C2C - 0x000A4]; - /* 0x15C2C */ s32 field_0x15C2C; + /* 0x15C2C */ s32 mCurrentPauseDisp; /* 0x15C30 */ s32 mPauseDisp00Tab; /* 0x15C34 */ u8 _0x15C34[0x15C60 - 0x15C34]; @@ -82,8 +83,8 @@ private: /* 0x15C64 */ u16 mItemCountForPauseDemo; /* 0x15C66 */ u8 field_0x15C66; - /* 0x15C67 */ bool field_0x15C67; - /* 0x15C68 */ bool field_0x15C68; + /* 0x15C67 */ bool mIsPauseDemo; + /* 0x15C68 */ u8 mPauseDemoDisp; static dLytControlGame_c *sInstance; }; diff --git a/include/d/lyt/d_lyt_pause.h b/include/d/lyt/d_lyt_pause.h index 0b69a363..033ee400 100644 --- a/include/d/lyt/d_lyt_pause.h +++ b/include/d/lyt/d_lyt_pause.h @@ -27,6 +27,9 @@ public: bool draw(); void drawDirectly(); + void loadBgTextureUnused(); + void loadBgTexture(); + void requestIn(); void requestOut(); void requestChange(); @@ -36,8 +39,12 @@ public: bool hasSelection() const; void updateTitle(); - bool getField_0x63() const { - return field_0x63; + bool isChangingState() const { + return mIsChangingState; + } + + dLytCommonArrow_c *getArrow() const { + return mpArrow; } private: @@ -62,7 +69,7 @@ private: /* 0x60 */ u8 mPartStateChangeFlags; /* 0x61 */ bool mInRequest; /* 0x62 */ bool mOutRequest; - /* 0x63 */ bool field_0x63; + /* 0x63 */ bool mIsChangingState; /* 0x64 */ bool mChangeRequest; /* 0x65 */ bool mSelectRequest; /* 0x66 */ bool mRingToggleRequest; @@ -73,6 +80,21 @@ public: dLytPauseMgr_c(); ~dLytPauseMgr_c(); + enum Disp_e { + DISP_00_INVENTORY = 0, + DISP_01_COLLECTION = 1, + + DISP_MAX, + }; + + enum Tab_e { + TAB_ITEM = 0, + TAB_POUCH = 1, + TAB_DOWSING = 2, + + TAB_MAX = 3, + }; + /* 0x08 */ virtual int create() override; /* 0x14 */ virtual int doDelete() override; /* 0x20 */ virtual int execute() override; @@ -95,8 +117,8 @@ public: return mpBgTexture; } - bool getField_0x0831() const { - return field_0x0831; + bool isNavLeft() const { + return mIsNavLeft; } bool getField_0x0832() const { @@ -184,18 +206,23 @@ public: } nw4r::lyt::Bounding *getArrowBounding(int idx) const; - void setSelectedArrowBounding(int idx) const; + void setSelectedArrowBounding(int idx); static void setSelectHand(f32 rotation, f32 length); + void preDrawStage(); + void postDrawStage(); + + void inRequest(); + static f32 sDisp00ArrowRotation; static f32 sDisp00ArrowLength; private: bool checkSelectRing(); - bool checkChangeGesture(); + bool checkChangeDisp(); bool checkRing(); - void saveDispFlag(); + void changeSavedDisp(); void saveTabFlag(); STATE_FUNC_DECLARE(dLytPauseMgr_c, None); @@ -219,12 +246,12 @@ private: /* 0x0818 */ SelectionType_e mCurrentSelectionType; /* 0x081C */ SelectionType_e mPrevSelectionType; /* 0x0820 */ s32 mCurrentDisp00Tab; - /* 0x0824 */ UNKWORD field_0x0824; - /* 0x0828 */ UNKWORD field_0x0828; + /* 0x0824 */ s32 mCurrentDisp00HeldRing; + /* 0x0828 */ s32 mSavedPauseDisp; /* 0x082C */ u16 mCurrentSelectionId; /* 0x082E */ u16 mPrevSelectionId; /* 0x0830 */ bool mInRequest; - /* 0x0831 */ bool field_0x0831; + /* 0x0831 */ bool mIsNavLeft; /* 0x0832 */ bool field_0x0832; /* 0x0833 */ u8 mCurrentSelectionTab; /* 0x0834 */ u8 mTimer; diff --git a/include/d/lyt/d_lyt_pause_back.h b/include/d/lyt/d_lyt_pause_back.h index 858dcc4e..fc556a73 100644 --- a/include/d/lyt/d_lyt_pause_back.h +++ b/include/d/lyt/d_lyt_pause_back.h @@ -19,8 +19,8 @@ public: void requestIn(); void requestOut(); - bool getField_0x156() const { - return field_0x156; + bool isChangingState() const { + return mIsChangingState; } private: @@ -39,7 +39,7 @@ private: /* 0x150 */ s32 mOutStep; /* 0x154 */ bool mInRequest; /* 0x155 */ bool mOutRequest; - /* 0x156 */ bool field_0x156; + /* 0x156 */ bool mIsChangingState; /* 0x157 */ bool mVisible; }; diff --git a/include/d/lyt/d_lyt_pause_disp_00.h b/include/d/lyt/d_lyt_pause_disp_00.h index 2ed2f451..d0892bb4 100644 --- a/include/d/lyt/d_lyt_pause_disp_00.h +++ b/include/d/lyt/d_lyt_pause_disp_00.h @@ -35,8 +35,12 @@ public: STATE_FUNC_DECLARE(dLytPauseDisp00_c, GetDemo); STATE_FUNC_DECLARE(dLytPauseDisp00_c, Out); - bool getField_0xE36E() const { - return field_0xE36E; + bool isChangingState() const { + return mIsChangingState; + } + + bool hasSelection() const { + return mHasSelection; } private: @@ -94,10 +98,10 @@ private: /* 0xE368 */ s32 mGetDemoTimer; /* 0xE36C */ bool mInRequest; /* 0xE36D */ bool mOutRequest; - /* 0xE36E */ bool field_0xE36E; + /* 0xE36E */ bool mIsChangingState; /* 0xE36F */ bool mIsVisible; /* 0xE370 */ bool mDoScrollAnim; - /* 0xE371 */ bool field_0xE371; + /* 0xE371 */ bool mHasSelection; /* 0xE372 */ bool mSelectToggleRequest; /* 0xE373 */ bool mSelectGuideRequest; /* 0xE374 */ bool mStopCallRequest; diff --git a/include/d/lyt/d_lyt_pause_disp_01.h b/include/d/lyt/d_lyt_pause_disp_01.h index 90567be4..c1c8fe49 100644 --- a/include/d/lyt/d_lyt_pause_disp_01.h +++ b/include/d/lyt/d_lyt_pause_disp_01.h @@ -31,8 +31,12 @@ public: STATE_FUNC_DECLARE(dLytPauseDisp01_c, GetDemo); STATE_FUNC_DECLARE(dLytPauseDisp01_c, Out); - bool getField_0x98CE() const { - return field_0x98CE; + bool isChangingState() const { + return mIsChangingState; + } + + bool hasSelection() const { + return mHasSelection; } private: @@ -74,10 +78,10 @@ private: /* 0x98C8 */ s32 mGetDemoTimer; /* 0x98CC */ bool mInRequest; /* 0x98CD */ bool mOutRequest; - /* 0x98CE */ bool field_0x98CE; + /* 0x98CE */ bool mIsChangingState; /* 0x98CF */ bool mIsVisible; /* 0x98D0 */ bool mDoScrollAnim; - /* 0x98D1 */ bool field_0x98D1; + /* 0x98D1 */ bool mHasSelection; /* 0x98D2 */ bool mSelectToggle; }; diff --git a/include/d/lyt/d_lyt_pause_info.h b/include/d/lyt/d_lyt_pause_info.h index 91cffbc0..eae38963 100644 --- a/include/d/lyt/d_lyt_pause_info.h +++ b/include/d/lyt/d_lyt_pause_info.h @@ -23,8 +23,8 @@ public: void setInputInOut(bool inOut); - bool getField_0x19A() const { - return field_0x19A; + bool isChangingState() const { + return mIsChangingState; } private: @@ -45,7 +45,7 @@ private: /* 0x194 */ s32 mStep; /* 0x198 */ bool mInRequest; /* 0x199 */ bool mOutRequest; - /* 0x19A */ bool field_0x19A; + /* 0x19A */ bool mIsChangingState; /* 0x19B */ bool field_0x19B; /* 0x19C */ bool mInputInOut; }; diff --git a/include/d/lyt/d_lyt_pause_text.h b/include/d/lyt/d_lyt_pause_text.h index 428fa8b8..83961c1e 100644 --- a/include/d/lyt/d_lyt_pause_text.h +++ b/include/d/lyt/d_lyt_pause_text.h @@ -25,8 +25,8 @@ public: void requestIn(); void requestOut(); - bool getField_0x6D7() const { - return field_0x6D7; + bool isChangingState() const { + return mIsChangingState; } private: @@ -54,7 +54,7 @@ private: /* 0x6D4 */ u8 mNumTextLines; /* 0x6D5 */ bool mInRequest; /* 0x6D6 */ bool mOutRequest; - /* 0x6D7 */ bool field_0x6D7; + /* 0x6D7 */ bool mIsChangingState; /* 0x6D8 */ bool field_0x6D8; }; diff --git a/src/d/lyt/d_lyt_common_arrow.cpp b/src/d/lyt/d_lyt_common_arrow.cpp index 138d8b97..8801b033 100644 --- a/src/d/lyt/d_lyt_common_arrow.cpp +++ b/src/d/lyt/d_lyt_common_arrow.cpp @@ -39,10 +39,6 @@ static const d2d::LytBrlanMapping brlanMap[] = { #define NUM_ANIMS 9 -#define PANE_BOUNDING_L 0 -#define PANE_BOUNDING_R 1 -#define PANE_BOUNDING_NONE 2 - dLytCommonArrow_c::dLytCommonArrow_c() : mStateMgr(*this, sStateID::null) {} bool dLytCommonArrow_c::build() { @@ -56,8 +52,8 @@ bool dLytCommonArrow_c::build() { } mCsHitCheck.init(mLytBase.getLayout()->GetRootPane(), 1, 0, 0); dCsMgr_c::GetInstance()->registCursorTarget(&mCsHitCheck); - mpBoundings[PANE_BOUNDING_L] = mLytBase.findBounding("B_arrowL_00"); - mpBoundings[PANE_BOUNDING_R] = mLytBase.findBounding("B_arrowR_00"); + mpBoundings[ARROW_LEFT] = mLytBase.findBounding("B_arrowL_00"); + mpBoundings[ARROW_RIGHT] = mLytBase.findBounding("B_arrowR_00"); mStateMgr.changeState(StateID_None); setState(0); return true; @@ -123,7 +119,7 @@ bool dLytCommonArrow_c::requestOut() { } bool dLytCommonArrow_c::fn_80168760() { - if (field_0x6C0 == 2 && field_0x6B8 != 2) { + if (field_0x6C0 == ARROW_NONE && field_0x6B8 != ARROW_NONE) { field_0x6C0 = field_0x6B8; return true; } @@ -151,26 +147,26 @@ void dLytCommonArrow_c::tickDown(d2d::AnmGroup_c *ctrl) { } } -void dLytCommonArrow_c::fn_80168880() { +void dLytCommonArrow_c::checkPointAtPane() { int i = -1; if (!dPadNav::isPointerVisible()) { - mTargetedBounding = PANE_BOUNDING_NONE; + mPointedAtArrow = ARROW_NONE; return; } dCursorHitCheck_c *d = dCsBase_c::GetInstance()->getHitCheck(); if (d != nullptr && d->getType() == 'lyt ') { - if (static_cast(d)->getHitPane() == mpBoundings[PANE_BOUNDING_L]) { - i = 0; - } else if (static_cast(d)->getHitPane() == mpBoundings[PANE_BOUNDING_R]) { - i = 1; + if (static_cast(d)->getHitPane() == mpBoundings[ARROW_LEFT]) { + i = ARROW_LEFT; + } else if (static_cast(d)->getHitPane() == mpBoundings[ARROW_RIGHT]) { + i = ARROW_RIGHT; } } if (i >= 0) { - mTargetedBounding = i; + mPointedAtArrow = i; } else { - mTargetedBounding = PANE_BOUNDING_NONE; + mPointedAtArrow = ARROW_NONE; } } @@ -178,12 +174,12 @@ void dLytCommonArrow_c::initializeState_None() { mLytBase.unbindAnims(); mInRequested = false; mOutRequested = false; - field_0x6CA = 0; + mIsChangingState = false; mVisible = false; - mTargetedBounding = PANE_BOUNDING_NONE; - field_0x6B8 = 2; - field_0x6BC = 2; - field_0x6C0 = 2; + mPointedAtArrow = ARROW_NONE; + field_0x6B8 = ARROW_NONE; + field_0x6BC = ARROW_NONE; + field_0x6C0 = ARROW_NONE; mTimer = 0; displayElement(ANIM_IN, 0.0f); mBackwards = true; @@ -214,15 +210,15 @@ void dLytCommonArrow_c::executeState_In() { switch (mTimer) { case 0: { d2d::AnmGroup_c *s = &mAnmGroups[ANIM_IN]; - if (s->isEndReached() == 1) { + if (s->isEndReached() == true) { mTimer += 1; - field_0x6CA = 1; + mIsChangingState = true; } else { s->play(); } } break; case 1: - field_0x6CA = 0; + mIsChangingState = false; mStateMgr.changeState(StateID_Wait); break; } @@ -241,12 +237,12 @@ void dLytCommonArrow_c::executeState_Wait() { return; } - fn_80168880(); - if (field_0x6B8 == 0) { + checkPointAtPane(); + if (field_0x6B8 == ARROW_LEFT) { d2d::AnmGroup_c &g = mAnmGroups[ANIM_ONOFF_L]; g.play(); tickDown(&mAnmGroups[ANIM_ONOFF_R]); - } else if (field_0x6B8 == 1) { + } else if (field_0x6B8 == ARROW_RIGHT) { d2d::AnmGroup_c &g = mAnmGroups[ANIM_ONOFF_R]; g.play(); tickDown(&mAnmGroups[ANIM_ONOFF_L]); @@ -264,7 +260,7 @@ void dLytCommonArrow_c::executeState_Wait() { switch (mTimer) { case 0: - if (field_0x6C0 != 2) { + if (field_0x6C0 != ARROW_NONE) { displayElement(field_0x6C0 + ANIM_DECIDE_OFFSET, 0.0f); if (field_0x6C0 == 0) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_SELECT_TURN_PAGE_LEFT); @@ -278,20 +274,20 @@ void dLytCommonArrow_c::executeState_Wait() { d2d::AnmGroup_c &g = mAnmGroups[field_0x6C0 + ANIM_DECIDE_OFFSET]; if (g.isEndReached() == true) { mTimer++; - field_0x6CA = 1; + mIsChangingState = true; } g.play(); } break; case 2: unbindAt(field_0x6C0 + ANIM_DECIDE_OFFSET); mTimer = 0; - field_0x6CA = 0; - field_0x6C0 = 2; + mIsChangingState = false; + field_0x6C0 = ARROW_NONE; break; } - if (field_0x6BC != field_0x6B8 && field_0x6B8 != 2) { - if (field_0x6B8 == 0) { + if (field_0x6BC != field_0x6B8 && field_0x6B8 != ARROW_NONE) { + if (field_0x6B8 == ARROW_LEFT) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_POINT_TURN_PAGE_LEFT); } else { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_POINT_TURN_PAGE_RIGHT); @@ -311,7 +307,7 @@ void dLytCommonArrow_c::executeState_Out() { d2d::AnmGroup_c *s = &mAnmGroups[ANIM_OUT]; if (s->isEndReached() == true) { mTimer = 1; - field_0x6CA = 1; + mIsChangingState = 1; } s->play(); } break; diff --git a/src/d/lyt/d_lyt_common_title.cpp b/src/d/lyt/d_lyt_common_title.cpp index dd1453c0..7dddc626 100644 --- a/src/d/lyt/d_lyt_common_title.cpp +++ b/src/d/lyt/d_lyt_common_title.cpp @@ -156,7 +156,7 @@ void dLytCommonTitle_c::initializeState_None() { mTitle.empty(); mCaption.empty(); field_0x68F = 0; - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { mLyt.findPane("N_next_01")->SetVisible(false); } else { mLyt.findPane("N_next_01")->SetVisible(true); diff --git a/src/d/lyt/d_lyt_pause.cpp b/src/d/lyt/d_lyt_pause.cpp index 626c56cb..e139e48f 100644 --- a/src/d/lyt/d_lyt_pause.cpp +++ b/src/d/lyt/d_lyt_pause.cpp @@ -3,6 +3,8 @@ #include "common.h" #include "d/d_base.h" #include "d/d_cs_game.h" +#include "d/d_d2d.h" +#include "d/d_gfx.h" #include "d/d_heap.h" #include "d/d_pad.h" #include "d/d_pad_nav.h" @@ -22,6 +24,7 @@ #include "d/snd/d_snd_wzsound.h" #include "egg/gfx/eggTextureBuffer.h" #include "m/m_pad.h" +#include "m/m_video.h" #include "toBeSorted/arc_managers/layout_arc_manager.h" STATE_DEFINE(dLytPauseMain_c, None); @@ -42,6 +45,10 @@ STATE_DEFINE(dLytPauseMgr_c, Ring); STATE_DEFINE(dLytPauseMgr_c, GetDemo); STATE_DEFINE(dLytPauseMgr_c, Out); +f32 dLytPauseMgr_c::sDisp00ArrowRotation; +f32 dLytPauseMgr_c::sDisp00ArrowLength; +dLytPauseMgr_c *dLytPauseMgr_c::sInstance; + dLytPauseMain_c::dLytPauseMain_c() : mStateMgr(*this), mpPauseBack(nullptr), @@ -130,7 +137,7 @@ bool dLytPauseMain_c::draw() { if (mpDisp01 != nullptr) { mpDisp01->draw(); } - if (!dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (!dLytControlGame_c::getInstance()->isPauseDemo()) { mpArrow->draw(); } mpPauseText->draw(); @@ -139,13 +146,23 @@ bool dLytPauseMain_c::draw() { } void dLytPauseMain_c::drawDirectly() { - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->drawDirectly(); } else { mpDisp01->drawDirectly(); } } +void dLytPauseMain_c::loadBgTextureUnused() { + // no-op +} + +void dLytPauseMain_c::loadBgTexture() { + if (mpPauseBack != nullptr) { + mpPauseBack->loadBgTexture(); + } +} + void dLytPauseMain_c::requestIn() { mInRequest = true; } @@ -166,8 +183,22 @@ void dLytPauseMain_c::requestRingToggle() { mRingToggleRequest = true; } +bool dLytPauseMain_c::hasSelection() const { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() != dLytPauseMgr_c::DISP_00_INVENTORY) { + return mpDisp01->hasSelection(); + } else { + return mpDisp00->hasSelection(); + } +} + +void dLytPauseMain_c::updateTitle() { + if (mpPauseInfo != nullptr) { + mpPauseInfo->updateTitle(); + } +} + void dLytPauseMain_c::initializeState_None() { - field_0x63 = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; mChangeRequest = false; @@ -181,7 +212,7 @@ void dLytPauseMain_c::executeState_None() { if (mInRequest == true) { mInRequest = false; mpPauseBack->requestIn(); - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestIn(false); } else { mpDisp01->requestIn(false); @@ -202,26 +233,26 @@ void dLytPauseMain_c::executeState_In() { } mTimer++; - if (mpPauseBack->getField_0x156() == true) { + if (mpPauseBack->isChangingState() == true) { mPartStateChangeFlags |= 0x1; } - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { - if (mpDisp00->getField_0xE36E() == true) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { + if (mpDisp00->isChangingState() == true) { mPartStateChangeFlags |= 0x2; } } else { - if (mpDisp01->getField_0x98CE() == true) { + if (mpDisp01->isChangingState() == true) { mPartStateChangeFlags |= 0x2; } } - if (mpPauseInfo->getField_0x19A() == true) { + if (mpPauseInfo->isChangingState() == true) { mPartStateChangeFlags |= 0x4; } if (mPartStateChangeFlags == (0x1 | 0x2 | 0x4)) { - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { mStateMgr.changeState(StateID_GetDemo); } else { mStateMgr.changeState(StateID_Wait); @@ -235,14 +266,14 @@ void dLytPauseMain_c::finalizeState_In() { void dLytPauseMain_c::initializeState_Wait() { mStep = 0; mPartStateChangeFlags = 0; - field_0x63 = true; + mIsChangingState = true; } void dLytPauseMain_c::executeState_Wait() { - field_0x63 = false; + mIsChangingState = false; if (mOutRequest == true) { mOutRequest = false; mpPauseBack->requestOut(); - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestOut(false); } else { mpDisp01->requestOut(false); @@ -266,7 +297,7 @@ void dLytPauseMain_c::finalizeState_Wait() {} void dLytPauseMain_c::initializeState_Change() { mStep = 0; - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp01->requestIn(true); mpDisp00->requestOut(true); } else { @@ -280,12 +311,12 @@ void dLytPauseMain_c::executeState_Change() { } bool change = false; - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { - if (mpDisp01->getField_0x98CE()) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { + if (mpDisp01->isChangingState()) { change = true; } } else { - if (mpDisp00->getField_0xE36E()) { + if (mpDisp00->isChangingState()) { change = true; } } @@ -318,7 +349,7 @@ void dLytPauseMain_c::initializeState_Select() { } else { mpArrow->setBackwards(false); mpPauseInfo->setInputInOut(false); - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestSelect(); dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_P1_SELECT_ITEM); } else { @@ -331,7 +362,7 @@ extern "C" void fn_80059F40(void *); void dLytPauseMain_c::executeState_Select() { switch (mStep) { case 0: { - if (mpPauseText->getField_0x6D7()) { + if (mpPauseText->isChangingState()) { mStep = 1; } break; @@ -344,8 +375,8 @@ void dLytPauseMain_c::executeState_Select() { break; } case 2: { - if (mpPauseText->getField_0x6D7()) { - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (mpPauseText->isChangingState()) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestUnselect(); } else { mpDisp01->requestUnselect(); @@ -355,13 +386,13 @@ void dLytPauseMain_c::executeState_Select() { break; } case 10: { - if (mpDisp00->getField_0xE36E() == true) { + if (mpDisp00->isChangingState() == true) { mStateMgr.changeState(StateID_Wait); } break; } case 100: { - if (mpDisp00->getField_0xE36E() == true) { + if (mpDisp00->isChangingState() == true) { mStateMgr.changeState(StateID_Wait); u8 uiMode = dLytMeter_c::GetMain()->getUiMode() + 1; if (uiMode >= 3) { @@ -376,7 +407,7 @@ void dLytPauseMain_c::executeState_Select() { break; } case 300: { - if (mpDisp00->getField_0xE36E() == true) { + if (mpDisp00->isChangingState() == true) { mStep++; // TODO - dPadManager_c fn_80059F40(dPauseManager_c::GetInstance()); @@ -395,7 +426,7 @@ void dLytPauseMain_c::finalizeState_Select() { } void dLytPauseMain_c::initializeState_Ring() { - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestRingToggle(); } } @@ -404,7 +435,7 @@ void dLytPauseMain_c::executeState_Ring() { mStateMgr.changeState(StateID_Select); } else if (mRingToggleRequest == true) { mRingToggleRequest = false; - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { mpDisp00->requestRingToggle(); } mStateMgr.changeState(StateID_Wait); @@ -413,16 +444,16 @@ void dLytPauseMain_c::executeState_Ring() { void dLytPauseMain_c::finalizeState_Ring() {} void dLytPauseMain_c::initializeState_GetDemo() { - field_0x63 = true; + mIsChangingState = true; } void dLytPauseMain_c::executeState_GetDemo() { - field_0x63 = false; - if (dLytControlGame_c::getInstance()->getField_0x15C68()) { - if (mpDisp01->getField_0x98CE() == true) { + mIsChangingState = false; + if (dLytControlGame_c::getInstance()->getPauseDemoDisp()) { + if (mpDisp01->isChangingState() == true) { mStateMgr.changeState(StateID_Wait); } } else { - if (mpDisp00->getField_0xE36E() == true) { + if (mpDisp00->isChangingState() == true) { mStateMgr.changeState(StateID_Wait); } } @@ -438,25 +469,25 @@ void dLytPauseMain_c::initializeState_Out() { void dLytPauseMain_c::executeState_Out() { switch (mStep) { case 0: { - if (mpPauseBack->getField_0x156() == true) { + if (mpPauseBack->isChangingState() == true) { mPartStateChangeFlags |= 0x1; } - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { - if (mpDisp00->getField_0xE36E() == true) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { + if (mpDisp00->isChangingState() == true) { mPartStateChangeFlags |= 0x2; } } else { - if (mpDisp01->getField_0x98CE() == true) { + if (mpDisp01->isChangingState() == true) { mPartStateChangeFlags |= 0x2; } } - if (mpPauseInfo->getField_0x19A() == true) { + if (mpPauseInfo->isChangingState() == true) { mPartStateChangeFlags |= 0x4; } if (mPartStateChangeFlags == (0x1 | 0x2 | 0x4)) { - field_0x63 = true; + mIsChangingState = true; mStep = 1; } break; @@ -532,14 +563,14 @@ void dLytPauseMgr_c::initializeState_None() { field_0x0836 = false; field_0x0837 = false; field_0x0838 = false; - field_0x0831 = false; + mIsNavLeft = false; field_0x0832 = false; field_0x083E = false; field_0x083F = false; field_0x0840 = false; - mCurrentDisp00Tab = 0; - field_0x0824 = 3; - mCurrentSelectionTab = 0; + mCurrentDisp00Tab = TAB_ITEM; + mCurrentDisp00HeldRing = TAB_MAX; + mCurrentSelectionTab = 0; // "-1 + 1" mCurrentSelectionIsRestricted = false; mTimer = 0; field_0x0835 = 0; @@ -553,9 +584,9 @@ void dLytPauseMgr_c::executeState_None() { dBase_c::s_NextExecuteControlFlags |= 0x1; dLytMeter_c::GetInstance()->setMeterField_0x13750(3); dLytControlGame_c *lytControl = dLytControlGame_c::getInstance(); - if (lytControl->getField_0x15C67()) { - field_0x0828 = lytControl->getField_0x15C2C(); - lytControl->setField_0x15C2C(lytControl->getField_0x15C68()); + if (lytControl->isPauseDemo()) { + mSavedPauseDisp = lytControl->getCurrentPauseDisp(); + lytControl->setCurrentPauseDisp(lytControl->getPauseDemoDisp()); } else { StoryflagManager::sInstance->unsetFlag(571); } @@ -565,8 +596,8 @@ void dLytPauseMgr_c::finalizeState_None() {} void dLytPauseMgr_c::initializeState_In() {} void dLytPauseMgr_c::executeState_In() { - if (mMain.getField_0x63() == true) { - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (mMain.isChangingState() == true) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { mStateMgr.changeState(StateID_GetDemo); } else { mStateMgr.changeState(StateID_Wait); @@ -594,14 +625,16 @@ void dLytPauseMgr_c::executeState_Wait() { field_0x083B = false; mPrevSelectionId = mCurrentSelectionId; mPrevSelectionType = mCurrentSelectionType; - + if (dPad::getDownTrigDown()) { dPad::ex_c::getInstance()->centerCursor(mPad::getCurrentCoreID(), true); } - + dCsGame_c::GetInstance()->setCursorTypePointer(); - - if (dPad::getDownTrig1() || (dLytControlGame_c::getInstance()->getField_0x15C2C() != 0 && dPad::getDownTrigB())) { + + if (dPad::getDownTrig1() || + (dLytControlGame_c::getInstance()->getCurrentPauseDisp() != dLytPauseMgr_c::DISP_00_INVENTORY && + dPad::getDownTrigB())) { dSndPlayerMgr_c::GetInstance()->leaveMenu(); mMain.requestOut(); (void)getLinkPtr(); // yes @@ -609,7 +642,7 @@ void dLytPauseMgr_c::executeState_Wait() { return; } - if (dLytControlGame_c::getInstance()->getField_0x15C2C() == 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() == dLytPauseMgr_c::DISP_00_INVENTORY) { bool b = false; if (!StoryflagManager::sInstance->getFlag(58)) { if (dPad::getDownTrigB()) { @@ -639,7 +672,7 @@ void dLytPauseMgr_c::executeState_Wait() { return; } - if (checkChangeGesture()) { + if (checkChangeDisp()) { mStateMgr.changeState(StateID_Change); return; } @@ -667,7 +700,6 @@ void dLytPauseMgr_c::executeState_Wait() { } else { field_0x0835 = 0; } - } void dLytPauseMgr_c::finalizeState_Wait() { dPadNav::setNavEnabled(false, false); @@ -676,7 +708,7 @@ void dLytPauseMgr_c::finalizeState_Wait() { void dLytPauseMgr_c::initializeState_Change() { mMain.requestChange(); mMain.updateTitle(); - if (field_0x0831) { + if (mIsNavLeft) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_TURN_PAGE_RIGHT); } else { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_TURN_PAGE_LEFT); @@ -687,8 +719,8 @@ void dLytPauseMgr_c::executeState_Change() { dCsGame_c::GetInstance()->setCursorTypePointer(); } - if (mMain.getField_0x63() == true) { - saveDispFlag(); + if (mMain.isChangingState() == true) { + changeSavedDisp(); mStateMgr.changeState(StateID_Wait); } } @@ -699,7 +731,7 @@ void dLytPauseMgr_c::initializeState_Select() { field_0x0838 = field_0x0837; } void dLytPauseMgr_c::executeState_Select() { - if (mMain.getField_0x63() == true) { + if (mMain.isChangingState() == true) { if (field_0x0838) { saveTabFlag(); field_0x0838 = false; @@ -708,13 +740,13 @@ void dLytPauseMgr_c::executeState_Select() { } else if (field_0x0838) { s32 tab = mCurrentDisp00Tab; bool buttonHeld = false; - if (dPad::getDownB() && tab == 0) { + if (dPad::getDownB() && tab == TAB_ITEM) { buttonHeld = true; } - if (dPad::getDownMinus() && tab == 1) { + if (dPad::getDownMinus() && tab == TAB_POUCH) { buttonHeld = true; } - if (dPad::getDownC() && tab == 2) { + if (dPad::getDownC() && tab == TAB_DOWSING) { buttonHeld = true; } @@ -729,12 +761,12 @@ void dLytPauseMgr_c::finalizeState_Select() {} void dLytPauseMgr_c::initializeState_Ring() { s32 controlGameTab = dLytControlGame_c::getInstance()->getPauseDisp00Tab(); - if (controlGameTab == 0) { - field_0x0824 = 0; - } else if (controlGameTab == 1) { - field_0x0824 = 1; + if (controlGameTab == TAB_ITEM) { + mCurrentDisp00HeldRing = TAB_ITEM; + } else if (controlGameTab == TAB_POUCH) { + mCurrentDisp00HeldRing = TAB_POUCH; } else { - field_0x0824 = 2; + mCurrentDisp00HeldRing = TAB_DOWSING; } mMain.requestRingToggle(); } @@ -743,11 +775,11 @@ void dLytPauseMgr_c::executeState_Ring() { mPrevSelectionId = mCurrentSelectionId; mPrevSelectionType = mCurrentSelectionType; bool buttonHeld = false; - if (field_0x0824 == 0) { + if (mCurrentDisp00HeldRing == TAB_ITEM) { if (!dPad::getDownB()) { buttonHeld = true; } - } else if (field_0x0824 == 1) { + } else if (mCurrentDisp00HeldRing == TAB_POUCH) { if (!dPad::getDownMinus()) { buttonHeld = true; } @@ -772,7 +804,7 @@ void dLytPauseMgr_c::finalizeState_Ring() { void dLytPauseMgr_c::initializeState_GetDemo() {} void dLytPauseMgr_c::executeState_GetDemo() { - if (mMain.getField_0x63() == true) { + if (mMain.isChangingState() == true) { dSndPlayerMgr_c::GetInstance()->leaveMenu(); mMain.requestOut(); (void)getLinkPtr(); @@ -785,32 +817,183 @@ void dLytPauseMgr_c::initializeState_Out() { dCsGame_c::GetInstance()->offNextCursor(); } void dLytPauseMgr_c::executeState_Out() { - if (mMain.getField_0x63() == true) { + if (mMain.isChangingState() == true) { dBase_c::s_NextExecuteControlFlags &= ~0x1; dBase_c::s_DrawControlFlags &= ~0x1; mStateMgr.changeState(StateID_None); } } void dLytPauseMgr_c::finalizeState_Out() { - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { - dLytControlGame_c::getInstance()->setField_0x15C2C(field_0x0828); + if (dLytControlGame_c::getInstance()->isPauseDemo()) { + dLytControlGame_c::getInstance()->setCurrentPauseDisp(mSavedPauseDisp); } } +void dLytPauseMgr_c::inRequest() { + mInRequest = true; + field_0x0836 = 1; +} + bool dLytPauseMgr_c::isStateWait() const { return mStateMgr.getStateID()->isEqual(StateID_Wait); } +void dLytPauseMgr_c::preDrawStage() { + if (field_0x0839 == true) { + field_0x0839 = false; + d2d::defaultSet(); + if (mpTexture0x0810 != nullptr) { + mpTexture0x0810->free(); + mpTexture0x0810 = nullptr; + } + mMain.drawDirectly(); + mpTexture0x0810 = EGG::TextureBuffer::alloc( + mVideo::m_video->pRenderMode->fbWidth / 2, dGfx_c::getEFBHeight() / 2, GX_TF_RGBA8 + ); + mpTexture0x0810->capture(0, dGfx_c::getLetterboxAmount(), true, -1); + mMain.loadBgTextureUnused(); + } +} + +void dLytPauseMgr_c::postDrawStage() { + if (field_0x083A == true) { + field_0x083A = false; + d2d::defaultSet(); + if (dLytControlGame_c::getInstance() != nullptr) { + dLytControlGame_c::getInstance()->fn_802D04F0(); + } + mpBgTexture = EGG::TextureBuffer::alloc( + mVideo::m_video->pRenderMode->fbWidth / 2, dGfx_c::getEFBHeight() / 2, GX_TF_RGBA8 + ); + mpBgTexture->capture(0, dGfx_c::getLetterboxAmount(), true, -1); + mMain.loadBgTexture(); + } +} + +nw4r::lyt::Bounding *dLytPauseMgr_c::getArrowBounding(int idx) const { + return mMain.getArrow()->getArrowBounding(idx); +} + +void dLytPauseMgr_c::setSelectedArrowBounding(int idx) { + mMain.getArrow()->setField_0x6B8(idx); +} + +void dLytPauseMgr_c::setSelection(dLytPauseMgr_c::SelectionType_e type, u16 id, bool restricted) { + if (type != mPrevSelectionType || id != getCurrentSelectionId()) { + field_0x083B = true; + } else { + field_0x083B = false; + } + mCurrentSelectionType = type; + mCurrentSelectionId = id; + mCurrentSelectionIsRestricted = restricted; +} + +bool dLytPauseMgr_c::checkSelectRing() { + dLytControlGame_c *lytControl = dLytControlGame_c::getInstance(); + if (lytControl == nullptr) { + mCurrentDisp00Tab = TAB_ITEM; + return false; + } + + if (lytControl->getCurrentPauseDisp() != DISP_00_INVENTORY) { + return false; + } + + s32 tab = lytControl->getPauseDisp00Tab(); + + if (dPad::getDownTrigB()) { + mCurrentDisp00Tab = TAB_ITEM; + if (tab != TAB_ITEM && StoryflagManager::sInstance->getFlag(58)) { + return true; + } else { + return false; + } + } else if (dPad::getDownTrigMinus()) { + mCurrentDisp00Tab = TAB_POUCH; + if (tab != TAB_POUCH && StoryflagManager::sInstance->getFlag(30)) { + return true; + } else { + return false; + } + } else if (dPad::getDownTrigC()) { + mCurrentDisp00Tab = TAB_DOWSING; + if (tab != TAB_DOWSING && StoryflagManager::sInstance->getFlag(789)) { + return true; + } else { + return false; + } + } + + mCurrentDisp00Tab = mCurrentSelectionTab - 1; + return true; +} + bool dLytPauseMgr_c::build() { void *data; data = LayoutArcManager::GetInstance()->getLoadedData("MenuPause"); mResAcc1.attach(data, ""); data = LayoutArcManager::GetInstance()->getLoadedData("DoButton"); mResAcc2.attach(data, ""); - mMain.build(); + mMain.build(); return true; } +bool dLytPauseMgr_c::checkChangeDisp() { + bool nav = false; + if (dPadNav::isMplsNavGesture() == true) { + if (dPadNav::isMplsNavLeftGesture()) { + mIsNavLeft = true; + } else { + mIsNavLeft = false; + } + nav = true; + } + + if (dPad::getDownTrigLeft() | dPad::getDownTrigRight()) { + if (dPad::getDownTrigLeft()) { + mIsNavLeft = true; + } else { + mIsNavLeft = false; + } + nav = true; + } + s32 arrowPane = mMain.getArrow()->getField_0x6B8(); + if (arrowPane != dLytCommonArrow_c::ARROW_NONE && dPad::getDownTrigA() && mMain.getArrow()->fn_80168760()) { + if (arrowPane == dLytCommonArrow_c::ARROW_LEFT) { + mIsNavLeft = true; + } else { + mIsNavLeft = false; + } + + if (!dPadNav::isPointerVisible()) { + field_0x083E = true; + field_0x0832 = mIsNavLeft; + } else { + field_0x0840 = true; + } + nav = true; + } + return nav; +} + +void dLytPauseMgr_c::changeSavedDisp() { + dLytControlGame_c *lytControl = dLytControlGame_c::getInstance(); + if (lytControl == nullptr) { + return; + } + s32 disp = lytControl->getCurrentPauseDisp() + 1; + if (disp >= DISP_MAX) { + disp = 0; + } + lytControl->setCurrentPauseDisp(disp); + if (disp != 0) { + StoryflagManager::sInstance->setFlag(847); + } else { + StoryflagManager::sInstance->unsetFlag(847); + } +} + void dLytPauseMgr_c::saveTabFlag() { dLytControlGame_c::getInstance()->setPauseDisp00Tab(mCurrentDisp00Tab); StoryflagManager::sInstance->setFlagOrCounterToValue(846, mCurrentDisp00Tab); @@ -818,7 +1001,7 @@ void dLytPauseMgr_c::saveTabFlag() { bool dLytPauseMgr_c::checkRing() { dLytControlGame_c *lytControl = dLytControlGame_c::getInstance(); - if (lytControl->getField_0x15C2C() != 0) { + if (lytControl->getCurrentPauseDisp() != DISP_00_INVENTORY) { return false; } if (!StoryflagManager::sInstance->getFlag(30)) { @@ -828,7 +1011,7 @@ bool dLytPauseMgr_c::checkRing() { s32 tab = lytControl->getPauseDisp00Tab(); if (dPad::getDownB() && tab == 0) { - return true; + return true; } else if (dPad::getDownMinus() && tab == 1) { return true; } else if (dPad::getDownC() && tab == 2) { diff --git a/src/d/lyt/d_lyt_pause_back.cpp b/src/d/lyt/d_lyt_pause_back.cpp index c2070a61..5ac365df 100644 --- a/src/d/lyt/d_lyt_pause_back.cpp +++ b/src/d/lyt/d_lyt_pause_back.cpp @@ -68,7 +68,7 @@ void dLytPauseBack_c::requestOut() { void dLytPauseBack_c::initializeState_None() { mLyt.unbindAnims(); - field_0x156 = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; mVisible = false; @@ -103,10 +103,10 @@ void dLytPauseBack_c::executeState_In() { void dLytPauseBack_c::finalizeState_In() {} void dLytPauseBack_c::initializeState_Wait() { - field_0x156 = true; + mIsChangingState = true; } void dLytPauseBack_c::executeState_Wait() { - field_0x156 = false; + mIsChangingState = false; if (mOutRequest == true) { mOutRequest = false; mStateMgr.changeState(StateID_Out); @@ -125,7 +125,7 @@ void dLytPauseBack_c::executeState_Out() { case 0: { if (anm.isEndReached() == true) { mOutStep = 1; - field_0x156 = true; + mIsChangingState = true; } break; } diff --git a/src/d/lyt/d_lyt_pause_disp_00.cpp b/src/d/lyt/d_lyt_pause_disp_00.cpp index 124190c6..c4c43033 100644 --- a/src/d/lyt/d_lyt_pause_disp_00.cpp +++ b/src/d/lyt/d_lyt_pause_disp_00.cpp @@ -488,7 +488,7 @@ bool dLytPauseDisp00_c::remove() { bool dLytPauseDisp00_c::execute() { dLytPauseMgr_c *pause = dLytPauseMgr_c::GetInstance(); - field_0xE371 = false; + mHasSelection = false; pause->setField_0x083C(false); pause->setField_0x083D(false); pause->setField_0x0837(false); @@ -567,11 +567,11 @@ void dLytPauseDisp00_c::initializeState_None() { mAnm[i].unbind(); } - field_0xE36E = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; mIsVisible = false; - field_0xE371 = false; + mHasSelection = false; mStopCallRequest = false; mCallTimerMaybe = 0; @@ -632,14 +632,14 @@ void dLytPauseDisp00_c::initializeState_In() { dLytPauseMgr_c *pause = dLytPauseMgr_c::GetInstance(); setAnm(PAUSE_DISP_00_ANIM_IN, 0.0f); mAnm[PAUSE_DISP_00_ANIM_IN].setFrame(mAnm[PAUSE_DISP_00_ANIM_IN].getAnimDuration()); - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { setAnm(PAUSE_DISP_00_ANIM_SCROLL_L_IN, 0.0f); } else { setAnm(PAUSE_DISP_00_ANIM_SCROLL_R_IN, 0.0f); } if (pause->getField_0x0840()) { - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { mPrevNavTarget = PAUSE_DISP_00_BOUNDING_ARROW_LEFT + 1; } else { mPrevNavTarget = PAUSE_DISP_00_BOUNDING_ARROW_RIGHT + 1; @@ -692,13 +692,13 @@ void dLytPauseDisp00_c::executeState_In() { s32 anim = PAUSE_DISP_00_ANIM_IN; if (mDoScrollAnim == true) { dLytPauseMgr_c *pause = dLytPauseMgr_c::GetInstance(); - anim = pause->getField_0x0831() ? PAUSE_DISP_00_ANIM_SCROLL_L_IN : PAUSE_DISP_00_ANIM_SCROLL_R_IN; + anim = pause->isNavLeft() ? PAUSE_DISP_00_ANIM_SCROLL_L_IN : PAUSE_DISP_00_ANIM_SCROLL_R_IN; } d2d::AnmGroup_c &anm = mAnm[anim]; if (anm.isEndReached() == true) { - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { mStateMgr.changeState(StateID_GetDemo); } else { mStateMgr.changeState(StateID_Wait); @@ -709,7 +709,7 @@ void dLytPauseDisp00_c::executeState_In() { } void dLytPauseDisp00_c::finalizeState_In() { dLytPauseMgr_c *pause = dLytPauseMgr_c::GetInstance(); - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { stopAnm(PAUSE_DISP_00_ANIM_SCROLL_L_IN); } else { stopAnm(PAUSE_DISP_00_ANIM_SCROLL_R_IN); @@ -728,12 +728,12 @@ void dLytPauseDisp00_c::finalizeState_In() { void dLytPauseDisp00_c::initializeState_Wait() { mStep = 0; - field_0xE36E = true; + mIsChangingState = true; } void dLytPauseDisp00_c::executeState_Wait() { d2d::AnmGroup_c *anm; - if (field_0xE36E == true) { - field_0xE36E = false; + if (mIsChangingState == true) { + mIsChangingState = false; } switch (mStep) { case 0: { @@ -769,7 +769,7 @@ void dLytPauseDisp00_c::executeState_Wait() { setAnm(PAUSE_DISP_00_ANIM_DECIDE_CALIB_BTN, 0.0f); dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_P1_SELECT_MPLUS); } else if (updateSelection() != 0) { - field_0xE371 = true; + mHasSelection = true; } break; } @@ -779,7 +779,7 @@ void dLytPauseDisp00_c::executeState_Wait() { mStep = 0; mSelectGuideRequest = false; stopAnm(PAUSE_DISP_00_ANIM_DECIDE_UI_TYPE_BTN); - field_0xE36E = true; + mIsChangingState = true; } else { anm->play(); } @@ -791,7 +791,7 @@ void dLytPauseDisp00_c::executeState_Wait() { mStep = 0; mSelectMplsRequest = false; stopAnm(PAUSE_DISP_00_ANIM_DECIDE_CALIB_BTN); - field_0xE36E = true; + mIsChangingState = true; } else { anm->play(); } @@ -815,9 +815,9 @@ void dLytPauseDisp00_c::initializeState_Select() { // For a given tab index, what's the natural next tab index? static const s32 sNaturalTabOrder[] = { - 1, - 2, - 0, + /* TAB_ITEM -> */ dLytPauseMgr_c::TAB_POUCH, + /* TAB_POUCH -> */ dLytPauseMgr_c::TAB_DOWSING, + /* TAB_DOWSING -> */ dLytPauseMgr_c::TAB_ITEM, }; // For a given tab index, what's the change anim when changing to the natural next tab? @@ -830,7 +830,7 @@ void dLytPauseDisp00_c::initializeState_Select() { // TODO - possibly fakematch, but we need to force a reload. // Note that this is part of a .rodata pool, so it // must be const and in the same file... - + // For a given tab index, what's the change anim when changing to the *other* tab, // in not-natural order? static const volatile s32 sReverseTabChangeAnim[] = { @@ -852,7 +852,7 @@ void dLytPauseDisp00_c::initializeState_Select() { s32 oldTab = dLytControlGame_c::getInstance()->getPauseDisp00Tab(); if (sNaturalTabOrder[oldTab] == pause->getCurrentDisp00Tab()) { - // Natural + // Natural setAnm(sNaturalTabChangeAnim[oldTab], 0.0f); mReverseTabChangeAnim = false; } else { @@ -984,13 +984,13 @@ void dLytPauseDisp00_c::executeState_Ring() { s32 b = PAUSE_DISP_00_BOUNDING_RING_OFFSET + idx; if (mpBoundings[b]->IsVisible()) { s32 tab = dLytControlGame_c::getInstance()->getPauseDisp00Tab(); - if (tab == 1) { + if (tab == dLytPauseMgr_c::TAB_POUCH) { item = getPouchItemIdForIndex(idx, true); if (item == 0) { item = ITEM_POUCH_EXPANSION; } selectionType = dLytPauseMgr_c::SELECT_POUCH; - } else if (tab == 2) { + } else if (tab == dLytPauseMgr_c::TAB_DOWSING) { item = getDowsingItemIdForIndex(idx); selectionType = dLytPauseMgr_c::SELECT_DOWSING; } else { @@ -1000,7 +1000,7 @@ void dLytPauseDisp00_c::executeState_Ring() { pause->setSelection(selectionType, item, false); navTarget = idx + 1; mCurrentNavTarget = navTarget; - field_0xE371 = true; + mHasSelection = true; } else { idx = -1; pause->setSelection(dLytPauseMgr_c::SELECT_NONE, 0, false); @@ -1015,9 +1015,9 @@ void dLytPauseDisp00_c::executeState_Ring() { mPrevNavTarget = navTarget; s32 tab = dLytControlGame_c::getInstance()->getPauseDisp00Tab(); - s32 anmIdx = tab == 1 ? PAUSE_DISP_00_ANIM_ONOFF_POUCH_OFFSET : - tab == 2 ? PAUSE_DISP_00_ANIM_ONOFF_DOWSING_OFFSET : - PAUSE_DISP_00_ANIM_ONOFF_ITEM_OFFSET; + s32 anmIdx = tab == dLytPauseMgr_c::TAB_POUCH ? PAUSE_DISP_00_ANIM_ONOFF_POUCH_OFFSET : + tab == dLytPauseMgr_c::TAB_DOWSING ? PAUSE_DISP_00_ANIM_ONOFF_DOWSING_OFFSET : + PAUSE_DISP_00_ANIM_ONOFF_ITEM_OFFSET; int i; d2d::AnmGroup_c *anm = &mAnm[anmIdx]; @@ -1038,14 +1038,14 @@ void dLytPauseDisp00_c::finalizeState_Ring() { } void dLytPauseDisp00_c::initializeState_GetDemo() { - field_0xE36E = true; + mIsChangingState = true; mStep = 0; mGetDemoTimer = 0; } void dLytPauseDisp00_c::executeState_GetDemo() { switch (mStep) { case 0: { - field_0xE36E = false; + mIsChangingState = false; if (mGetDemoTimer < 2) { mGetDemoTimer++; } else { @@ -1102,7 +1102,7 @@ void dLytPauseDisp00_c::finalizeState_GetDemo() {} void dLytPauseDisp00_c::initializeState_Out() { stopAnm(PAUSE_DISP_00_ANIM_IN); if (mDoScrollAnim == true) { - if (dLytPauseMgr_c::GetInstance()->getField_0x0831()) { + if (dLytPauseMgr_c::GetInstance()->isNavLeft()) { setAnm(PAUSE_DISP_00_ANIM_SCROLL_R_OUT, 0.0f); } else { setAnm(PAUSE_DISP_00_ANIM_SCROLL_L_OUT, 0.0f); @@ -1115,8 +1115,8 @@ void dLytPauseDisp00_c::initializeState_Out() { void dLytPauseDisp00_c::executeState_Out() { s32 anim = PAUSE_DISP_00_ANIM_OUT; if (mDoScrollAnim == true) { - anim = dLytPauseMgr_c::GetInstance()->getField_0x0831() ? PAUSE_DISP_00_ANIM_SCROLL_R_OUT : - PAUSE_DISP_00_ANIM_SCROLL_L_OUT; + anim = dLytPauseMgr_c::GetInstance()->isNavLeft() ? PAUSE_DISP_00_ANIM_SCROLL_R_OUT : + PAUSE_DISP_00_ANIM_SCROLL_L_OUT; } d2d::AnmGroup_c &anm = mAnm[anim]; @@ -1125,7 +1125,7 @@ void dLytPauseDisp00_c::executeState_Out() { case 0: { if (anm.isEndReached() == true) { mStep = 1; - field_0xE36E = true; + mIsChangingState = true; } break; } @@ -1342,7 +1342,7 @@ void dLytPauseDisp00_c::setupWallets() { // the Gear screen to show the demo (dLytControlGame_c::openCollectionScreenDemo), // so we don't have to check that an extra wallets are actually what cause the // demo. - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { walletCount--; if (walletCount == 0) { bVisible = false; @@ -1571,7 +1571,7 @@ void dLytPauseDisp00_c::setupStoneOfTrials() { void dLytPauseDisp00_c::setupRingIcons(s32 tab) { switch (tab) { - case 1: { + case dLytPauseMgr_c::TAB_POUCH: { s32 offset = PAUSE_DISP_00_BOUNDING_RING_OFFSET; for (int i = 0; i < PAUSE_DISP_00_ICONS_NUM_ITEMS_ON_WHEEL; i++) { bool visible = false; @@ -1583,7 +1583,7 @@ void dLytPauseDisp00_c::setupRingIcons(s32 tab) { } break; } - case 2: { + case dLytPauseMgr_c::TAB_DOWSING: { s32 offset = PAUSE_DISP_00_BOUNDING_RING_OFFSET; for (int i = 0; i < PAUSE_DISP_00_ICONS_NUM_ITEMS_ON_WHEEL; i++) { bool visible = false; @@ -1595,8 +1595,8 @@ void dLytPauseDisp00_c::setupRingIcons(s32 tab) { } break; } - case 0: - default: { + case dLytPauseMgr_c::TAB_ITEM: + default: { s32 offset = PAUSE_DISP_00_BOUNDING_RING_OFFSET; for (int i = 0; i < PAUSE_DISP_00_ICONS_NUM_ITEMS_ON_WHEEL; i++) { bool visible = false; @@ -1659,7 +1659,6 @@ s32 dLytPauseDisp00_c::updateSelection() { pause->setSelection(dLytPauseMgr_c::SELECT_NONE, 0, false); } else { u8 tab; - // TODO mode IDs switch (navTargetToBounding(target)) { case PAUSE_DISP_00_BOUNDING_CALIB_BTN_3: pause->setSelection(dLytPauseMgr_c::SELECT_CATEGORY, 5, false); @@ -1680,15 +1679,15 @@ s32 dLytPauseDisp00_c::updateSelection() { pause->setSelectedArrowBounding(navTargetToBounding(target - PAUSE_DISP_00_BOUNDING_ARROW_OFFSET)); break; case PAUSE_DISP_00_BOUNDING_LEFT_TAB: { - tab = 3; + tab = dLytPauseMgr_c::TAB_DOWSING + 1; goto anyTab; } case PAUSE_DISP_00_BOUNDING_CENTER_TAB: { - tab = 2; + tab = dLytPauseMgr_c::TAB_POUCH + 1; goto anyTab; } case PAUSE_DISP_00_BOUNDING_RIGHT_TAB: { - tab = 1; + tab = dLytPauseMgr_c::TAB_ITEM + 1; goto anyTab; } anyTab: { @@ -1706,7 +1705,7 @@ s32 dLytPauseDisp00_c::updateSelection() { u8 pauseTab = pause->getCurrentSelectionTab() - 1; if (pauseTab != lytControl->getPauseDisp00Tab() && mpBoundings[sTabLookup[pauseTab]]->IsVisible()) { pause->setField_0x0837(true); - field_0xE371 = true; + mHasSelection = true; } break; } @@ -1719,7 +1718,7 @@ s32 dLytPauseDisp00_c::updateSelection() { switch (paneIdx) { default: { s32 idx = navTargetToBounding(target) - PAUSE_DISP_00_BOUNDING_RING_OFFSET; - if (lytControl->getPauseDisp00Tab() == 1) { + if (lytControl->getPauseDisp00Tab() == dLytPauseMgr_c::TAB_POUCH) { id = getPouchItemIdForIndex(idx, true); if (id == ITEM_NONE) { id = ITEM_POUCH_EXPANSION; @@ -1728,7 +1727,7 @@ s32 dLytPauseDisp00_c::updateSelection() { if (isPouchBocoburinLocked()) { locked = true; } - } else if (lytControl->getPauseDisp00Tab() == 2) { + } else if (lytControl->getPauseDisp00Tab() == dLytPauseMgr_c::TAB_DOWSING) { id = getDowsingItemIdForIndex(idx); selectionType = dLytPauseMgr_c::SELECT_DOWSING; } else { @@ -1847,9 +1846,9 @@ s32 dLytPauseDisp00_c::updateSelection() { } s32 tab = lytControl->getPauseDisp00Tab(); - s32 anmIdx = tab == 1 ? PAUSE_DISP_00_ANIM_ONOFF_POUCH_OFFSET : - tab == 2 ? PAUSE_DISP_00_ANIM_ONOFF_DOWSING_OFFSET : - PAUSE_DISP_00_ANIM_ONOFF_ITEM_OFFSET; + s32 anmIdx = tab == dLytPauseMgr_c::TAB_POUCH ? PAUSE_DISP_00_ANIM_ONOFF_POUCH_OFFSET : + tab == dLytPauseMgr_c::TAB_DOWSING ? PAUSE_DISP_00_ANIM_ONOFF_DOWSING_OFFSET : + PAUSE_DISP_00_ANIM_ONOFF_ITEM_OFFSET; pAnm = &mAnm[anmIdx]; for (i = PAUSE_DISP_00_BOUNDING_RING_OFFSET; @@ -1896,11 +1895,11 @@ s32 dLytPauseDisp00_c::updateSelection() { } if (target == 0 && isPointingAtRingIcon() == true) { - u16 tab = 1; - if (lytControl->getPauseDisp00Tab() == 1) { - tab = 2; - } else if (lytControl->getPauseDisp00Tab() == 2) { - tab = 3; + u16 tab = dLytPauseMgr_c::TAB_ITEM + 1; + if (lytControl->getPauseDisp00Tab() == dLytPauseMgr_c::TAB_POUCH) { + tab = dLytPauseMgr_c::TAB_POUCH + 1; + } else if (lytControl->getPauseDisp00Tab() == dLytPauseMgr_c::TAB_DOWSING) { + tab = dLytPauseMgr_c::TAB_DOWSING + 1; } pause->setSelection(dLytPauseMgr_c::SELECT_RING, tab, false); } @@ -1923,7 +1922,7 @@ s32 dLytPauseDisp00_c::updateSelection() { if (cM::isZero(mAnm[PAUSE_DISP_00_ANIM_OFF_LEFT_TAB].getFrame())) { soundMgr->playSound(SE_S_MENU_P1_POINT_C); } - if (tab2 == 2) { + if (tab2 == dLytPauseMgr_c::TAB_DOWSING) { rumble = false; } } @@ -1934,7 +1933,7 @@ s32 dLytPauseDisp00_c::updateSelection() { if (cM::isZero(mAnm[PAUSE_DISP_00_ANIM_OFF_CENTER_TAB].getFrame())) { soundMgr->playSound(SE_S_MENU_P1_POINT_MINUS); } - if (tab2 == 1) { + if (tab2 == dLytPauseMgr_c::TAB_POUCH) { rumble = false; } } @@ -1945,7 +1944,7 @@ s32 dLytPauseDisp00_c::updateSelection() { if (cM::isZero(mAnm[PAUSE_DISP_00_ANIM_OFF_RIGHT_TAB].getFrame())) { soundMgr->playSound(SE_S_MENU_P1_POINT_B); } - if (tab2 == 0) { + if (tab2 == dLytPauseMgr_c::TAB_ITEM) { rumble = false; } } @@ -2152,9 +2151,9 @@ void dLytPauseDisp00_c::loadRingText(u32 cmd) { if (cmd == RING_TEXT_CURRENT_TAB) { tab = dLytPauseMgr_c::GetInstance()->getCurrentDisp00Tab(); } - if (tab == 1) { + if (tab == dLytPauseMgr_c::TAB_POUCH) { msgIdx = 2; - } else if (tab == 2) { + } else if (tab == dLytPauseMgr_c::TAB_DOWSING) { msgIdx = 3; } // "Items"/"Pouch"/"Dowsing" diff --git a/src/d/lyt/d_lyt_pause_disp_01.cpp b/src/d/lyt/d_lyt_pause_disp_01.cpp index 0b253a73..84a3b2bf 100644 --- a/src/d/lyt/d_lyt_pause_disp_01.cpp +++ b/src/d/lyt/d_lyt_pause_disp_01.cpp @@ -169,7 +169,7 @@ bool dLytPauseDisp01_c::remove() { } bool dLytPauseDisp01_c::execute() { - field_0x98D1 = false; + mHasSelection = false; mStateMgr.executeState(); for (int i = 0; i < PAUSE_DISP_01_NUM_SUBPANES; i++) { mSubpanes[i].mpLytPane->execute(); @@ -218,11 +218,11 @@ void dLytPauseDisp01_c::initializeState_None() { mAnm[i].unbind(); } - field_0x98CE = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; mIsVisible = false; - field_0x98D1 = false; + mHasSelection = false; mStep = 0; mPrevNavTarget = 0; mCurrentNavTarget = 0; @@ -259,14 +259,14 @@ void dLytPauseDisp01_c::initializeState_In() { if (mDoScrollAnim == true) { setAnm(PAUSE_DISP_01_ANIM_IN, 0.0f); mAnm[PAUSE_DISP_01_ANIM_IN].setFrame(mAnm[PAUSE_DISP_01_ANIM_IN].getAnimDuration()); - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { setAnm(PAUSE_DISP_01_ANIM_SCROLL_L_IN, 0.0f); } else { setAnm(PAUSE_DISP_01_ANIM_SCROLL_R_IN, 0.0f); } if (pause->getField_0x0840()) { - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { mPrevNavTarget = PAUSE_DISP_01_OFFSET_MY_PANES + PAUSE_DISP_01_PANE_LEFT + 1; } else { mPrevNavTarget = PAUSE_DISP_01_OFFSET_MY_PANES + PAUSE_DISP_01_PANE_RIGHT + 1; @@ -283,13 +283,13 @@ void dLytPauseDisp01_c::executeState_In() { s32 anim = PAUSE_DISP_01_ANIM_IN; if (mDoScrollAnim == true) { - anim = pause->getField_0x0831() ? PAUSE_DISP_01_ANIM_SCROLL_L_IN : PAUSE_DISP_01_ANIM_SCROLL_R_IN; + anim = pause->isNavLeft() ? PAUSE_DISP_01_ANIM_SCROLL_L_IN : PAUSE_DISP_01_ANIM_SCROLL_R_IN; } d2d::AnmGroup_c &anm = mAnm[anim]; if (anm.isEndReached() == true) { - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { mStateMgr.changeState(StateID_GetDemo); } else { mStateMgr.changeState(StateID_Wait); @@ -300,7 +300,7 @@ void dLytPauseDisp01_c::executeState_In() { } void dLytPauseDisp01_c::finalizeState_In() { dLytPauseMgr_c *pause = dLytPauseMgr_c::GetInstance(); - if (pause->getField_0x0831()) { + if (pause->isNavLeft()) { stopAnm(PAUSE_DISP_01_ANIM_SCROLL_L_IN); } else { stopAnm(PAUSE_DISP_01_ANIM_SCROLL_R_IN); @@ -318,11 +318,11 @@ void dLytPauseDisp01_c::finalizeState_In() { } void dLytPauseDisp01_c::initializeState_Wait() { - field_0x98CE = true; + mIsChangingState = true; showInsectsAndMaterials(); } void dLytPauseDisp01_c::executeState_Wait() { - field_0x98CE = false; + mIsChangingState = false; if (mOutRequest == true) { mOutRequest = false; hideInsectsAndMaterials(); @@ -341,7 +341,7 @@ void dLytPauseDisp01_c::executeState_Wait() { } } else if (updateSelection() != 0) { - field_0x98D1 = true; + mHasSelection = true; } } void dLytPauseDisp01_c::finalizeState_Wait() {} @@ -359,14 +359,14 @@ void dLytPauseDisp01_c::finalizeState_Select() { } void dLytPauseDisp01_c::initializeState_GetDemo() { - field_0x98CE = true; + mIsChangingState = true; mStep = 0; mGetDemoTimer = 0; } void dLytPauseDisp01_c::executeState_GetDemo() { switch (mStep) { case 0: { - field_0x98CE = false; + mIsChangingState = false; if (mGetDemoTimer < 2) { mGetDemoTimer++; } else { @@ -515,7 +515,7 @@ void dLytPauseDisp01_c::finalizeState_GetDemo() {} void dLytPauseDisp01_c::initializeState_Out() { stopAnm(PAUSE_DISP_01_ANIM_IN); if (mDoScrollAnim == true) { - if (dLytPauseMgr_c::GetInstance()->getField_0x0831()) { + if (dLytPauseMgr_c::GetInstance()->isNavLeft()) { setAnm(PAUSE_DISP_01_ANIM_SCROLL_R_OUT, 0.0f); } else { setAnm(PAUSE_DISP_01_ANIM_SCROLL_L_OUT, 0.0f); @@ -528,8 +528,8 @@ void dLytPauseDisp01_c::initializeState_Out() { void dLytPauseDisp01_c::executeState_Out() { s32 anim = PAUSE_DISP_01_ANIM_OUT; if (mDoScrollAnim == true) { - anim = dLytPauseMgr_c::GetInstance()->getField_0x0831() ? PAUSE_DISP_01_ANIM_SCROLL_R_OUT : - PAUSE_DISP_01_ANIM_SCROLL_L_OUT; + anim = dLytPauseMgr_c::GetInstance()->isNavLeft() ? PAUSE_DISP_01_ANIM_SCROLL_R_OUT : + PAUSE_DISP_01_ANIM_SCROLL_L_OUT; } d2d::AnmGroup_c &anm = mAnm[anim]; @@ -538,7 +538,7 @@ void dLytPauseDisp01_c::executeState_Out() { case 0: { if (anm.isEndReached() == true) { mStep = 1; - field_0x98CE = true; + mIsChangingState = true; } break; } @@ -617,7 +617,7 @@ void dLytPauseDisp01_c::setupDisp() { u32 crystalCount = dAcItem_c::getGratitudeCrystalCount(); if (crystalCount != 0) { bool isDemo = false; - if (lytControl->getField_0x15C67() && (demoItem == ITEM_1_CRYSTAL || demoItem == ITEM_5_CRYSTALS)) { + if (lytControl->isPauseDemo() && (demoItem == ITEM_1_CRYSTAL || demoItem == ITEM_5_CRYSTALS)) { isDemo = true; crystalCount = demoItem == ITEM_1_CRYSTAL ? crystalCount - 1 : crystalCount - 5; } @@ -665,7 +665,7 @@ void dLytPauseDisp01_c::setupInsects() { } s32 count = getInsectCountByIndex(insectIdx); - if (lytControl->getField_0x15C67() && lytControl->getItemForPauseDemo() == getInsectItemId(insectIdx)) { + if (lytControl->isPauseDemo() && lytControl->getItemForPauseDemo() == getInsectItemId(insectIdx)) { count = lytControl->getItemCountForPauseDemo(); } @@ -692,7 +692,7 @@ void dLytPauseDisp01_c::setupMaterials() { } s32 count = getMaterialCountByIndex(materialIdx); - if (lytControl->getField_0x15C67() && lytControl->getItemForPauseDemo() == getMaterialItemId(materialIdx)) { + if (lytControl->isPauseDemo() && lytControl->getItemForPauseDemo() == getMaterialItemId(materialIdx)) { count = lytControl->getItemCountForPauseDemo(); } @@ -945,7 +945,7 @@ void dLytPauseDisp01_c::hideInsectsAndMaterials() { } bool dLytPauseDisp01_c::shouldInsectBeDisplayed(s32 insectIdx) const { - if (dLytControlGame_c::getInstance()->getField_0x15C67() && + if (dLytControlGame_c::getInstance()->isPauseDemo() && dLytControlGame_c::getInstance()->getItemForPauseDemo() == getInsectItemId(insectIdx) && dAcItem_c::isPerformingInitialCollection()) { return false; @@ -989,7 +989,7 @@ u16 dLytPauseDisp01_c::getQuestItemId(s32 questItemIndex) const { } bool dLytPauseDisp01_c::shouldMaterialBeDisplayed(s32 materialIdx) const { - if (dLytControlGame_c::getInstance()->getField_0x15C67() && + if (dLytControlGame_c::getInstance()->isPauseDemo() && dLytControlGame_c::getInstance()->getItemForPauseDemo() == getMaterialItemId(materialIdx) && dAcItem_c::isPerformingInitialCollection()) { return false; diff --git a/src/d/lyt/d_lyt_pause_info.cpp b/src/d/lyt/d_lyt_pause_info.cpp index 4500d9fc..13467f00 100644 --- a/src/d/lyt/d_lyt_pause_info.cpp +++ b/src/d/lyt/d_lyt_pause_info.cpp @@ -84,7 +84,7 @@ bool dLytPauseInfo_c::draw() { if (mpTitle != nullptr) { mpTitle->draw(); } - if (!dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (!dLytControlGame_c::getInstance()->isPauseDemo()) { mLyt.addToDrawList(); } } @@ -100,7 +100,8 @@ void dLytPauseInfo_c::requestOut() { } void dLytPauseInfo_c::updateTitle() { - if (dLytControlGame_c::getInstance()->getField_0x15C2C()) { + // Change the title before the transition is finished, so the logic here is correctly inverted + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() != dLytPauseMgr_c::DISP_00_INVENTORY) { // "Gear" mpTitle->set(dLytCommonTitle_c::SET_01, mpTitle->setSubTitle(1), nullptr); } else { @@ -119,7 +120,7 @@ void dLytPauseInfo_c::setInputInOut(bool inOut) { void dLytPauseInfo_c::initializeState_None() { mLyt.unbindAnims(); - field_0x19A = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; field_0x19B = false; @@ -139,10 +140,10 @@ void dLytPauseInfo_c::initializeState_In() { field_0x19B = true; s32 msgIdx = 1; // "Gear" - if (dLytControlGame_c::getInstance()->getField_0x15C2C() != 0) { + if (dLytControlGame_c::getInstance()->getCurrentPauseDisp() != dLytPauseMgr_c::DISP_00_INVENTORY) { msgIdx = 2; // "Collection" } - if (dLytControlGame_c::getInstance()->getField_0x15C67()) { + if (dLytControlGame_c::getInstance()->isPauseDemo()) { SizedString<32> label; if (dLytControlGame_c::getInstance()->getItemForPauseDemo() == ITEM_5_CRYSTALS) { getItemLabel(ITEM_1_CRYSTAL, label); @@ -173,11 +174,11 @@ void dLytPauseInfo_c::executeState_In() { void dLytPauseInfo_c::finalizeState_In() {} void dLytPauseInfo_c::initializeState_Wait() { - field_0x19A = true; + mIsChangingState = true; } void dLytPauseInfo_c::executeState_Wait() { updateCaption(); - field_0x19A = false; + mIsChangingState = false; if (mOutRequest == true) { mOutRequest = false; mStateMgr.changeState(StateID_Out); @@ -197,7 +198,7 @@ void dLytPauseInfo_c::executeState_Out() { case 0: { if (anm.isEndReached() == true) { mStep = 1; - field_0x19A = true; + mIsChangingState = true; } break; } @@ -233,7 +234,7 @@ void dLytPauseInfo_c::playBackwards(d2d::AnmGroup_c &anm) { } void dLytPauseInfo_c::updateCaption() { - if (dLytControlGame_c::getInstance()->getField_0x15C67() != true && + if (dLytControlGame_c::getInstance()->isPauseDemo() != true && dLytPauseMgr_c::GetInstance()->getField_0x083B() == true) { SizedString<32> buf; const char *label = dLytPauseText_c::getCurrentPauseLabel(buf); diff --git a/src/d/lyt/d_lyt_pause_text.cpp b/src/d/lyt/d_lyt_pause_text.cpp index 0a806bc1..968de4b4 100644 --- a/src/d/lyt/d_lyt_pause_text.cpp +++ b/src/d/lyt/d_lyt_pause_text.cpp @@ -116,7 +116,7 @@ void dLytPauseText_c::requestOut() { void dLytPauseText_c::initializeState_None() { mLyt.unbindAnims(); - field_0x6D7 = false; + mIsChangingState = false; mInRequest = false; mOutRequest = false; field_0x6D8 = false; @@ -152,11 +152,11 @@ void dLytPauseText_c::executeState_In() { void dLytPauseText_c::finalizeState_In() {} void dLytPauseText_c::initializeState_Wait() { - field_0x6D7 = true; + mIsChangingState = true; } void dLytPauseText_c::executeState_Wait() { mAnm[PAUSE_TEXT_ANIM_LOOP].play(); - field_0x6D7 = false; + mIsChangingState = false; if (mOutRequest == true && mABtn.requestOut(false)) { mOutRequest = false; mStateMgr.changeState(StateID_Out); @@ -181,7 +181,7 @@ void dLytPauseText_c::executeState_Out() { case 1: { if (anm.isEndReached() == true) { mStep = 2; - field_0x6D7 = true; + mIsChangingState = true; } break; }