From 72b8b1865fbbb81e918c5add5de7c076424e375e Mon Sep 17 00:00:00 2001 From: robojumper Date: Thu, 25 Dec 2025 19:46:37 +0100 Subject: [PATCH] d_lyt_deposit OK --- config/SOUE01/symbols.txt | 533 ++++++++++++++--------- configure.py | 2 +- include/d/lyt/d_lyt_common_arrow.h | 26 +- include/d/lyt/d_lyt_deposit.h | 57 ++- include/d/lyt/d_lyt_deposit_box_cursor.h | 8 +- include/d/lyt/d_lyt_deposit_stock.h | 20 +- src/d/lyt/d_lyt_common_arrow.cpp | 34 +- src/d/lyt/d_lyt_deposit.cpp | 352 +++++++++++++-- src/d/lyt/d_lyt_deposit_box_cursor.cpp | 16 +- src/d/lyt/d_lyt_deposit_stock.cpp | 27 +- src/d/lyt/d_lyt_pause.cpp | 8 +- src/d/lyt/d_lyt_pause_disp_00.cpp | 13 +- 12 files changed, 751 insertions(+), 345 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 1ba0db63..c2b85185 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -8700,7 +8700,7 @@ initIcon__22dLytDepositBoxCursor_cFv = .text:0x80157B70; // type:function size:0 realizeNav__22dLytDepositBoxCursor_cFv = .text:0x80157CC0; // type:function size:0x210 init__22dLytDepositBoxCursor_cFlllb = .text:0x80157ED0; // type:function size:0x17C updateSlot__22dLytDepositBoxCursor_cFlllb = .text:0x80158050; // type:function size:0x44 -fn_801580A0__22dLytDepositBoxCursor_cFv = .text:0x801580A0; // type:function size:0xC +activateSell__22dLytDepositBoxCursor_cFv = .text:0x801580A0; // type:function size:0xC __dt__22dLytDepositBoxCursor_cFv = .text:0x801580B0; // type:function size:0x1A8 scope:weak getName__22dLytDepositBoxCursor_cCFv = .text:0x80158260; // type:function size:0x8 scope:weak getLyt__22dLytDepositBoxCursor_cFv = .text:0x80158270; // type:function size:0x8 scope:weak @@ -9207,7 +9207,7 @@ setState__17dLytCommonArrow_cFl = .text:0x80168610; // type:function size:0x24 setTranslate__17dLytCommonArrow_cFPC7mVec2_c = .text:0x80168640; // type:function size:0x34 requestIn__17dLytCommonArrow_cFv = .text:0x80168680; // type:function size:0x70 requestOut__17dLytCommonArrow_cFv = .text:0x801686F0; // type:function size:0x70 -fn_80168760__17dLytCommonArrow_cFv = .text:0x80168760; // type:function size:0x2C +triggerArrowPress__17dLytCommonArrow_cFv = .text:0x80168760; // type:function size:0x2C 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 @@ -15997,18 +15997,18 @@ initializeState_ModeOut__17dLytDepositMain_cFv = .text:0x802A8DF0; // type:funct executeState_ModeOut__17dLytDepositMain_cFv = .text:0x802A8E00; // type:function size:0x68 finalizeState_ModeOut__17dLytDepositMain_cFv = .text:0x802A8E70; // type:function size:0x4 __ct__17dLytDepositMain_cFv = .text:0x802A8E80; // type:function size:0x428 -__dt__56sFStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x802A92B0; // type:function size:0xA4 -__dt__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802A9360; // type:function size:0xA0 -__dt__33sFStateFct_c<17dLytDepositMain_c>Fv = .text:0x802A9400; // type:function size:0x6C -__dt__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802A9470; // type:function size:0x58 -__ct__18dLytDepositStock_cFv = .text:0x802A94D0; // type:function size:0x138 +__dt__56sFStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x802A92B0; // type:function size:0xA4 scope:weak +__dt__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802A9360; // type:function size:0xA0 scope:weak +__dt__33sFStateFct_c<17dLytDepositMain_c>Fv = .text:0x802A9400; // type:function size:0x6C scope:weak +__dt__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802A9470; // type:function size:0x58 scope:weak +__ct__18dLytDepositStock_cFv = .text:0x802A94D0; // type:function size:0x138 scope:weak build__17dLytDepositMain_cFPQ23d2d10ResAccIf_c = .text:0x802A9610; // type:function size:0x468 execute__17dLytDepositMain_cFv = .text:0x802A9A80; // type:function size:0x1EC -executeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802A9C70; // type:function size:0x10 +executeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802A9C70; // type:function size:0x10 scope:weak draw__17dLytDepositMain_cFv = .text:0x802A9C80; // type:function size:0x4C remove__17dLytDepositMain_cFv = .text:0x802A9CD0; // type:function size:0x1A8 setModeNone__17dLytDepositMain_cFv = .text:0x802A9E80; // type:function size:0x50 -changeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802A9ED0; // type:function size:0x10 +changeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802A9ED0; // type:function size:0x10 scope:weak setModeIn__17dLytDepositMain_cFv = .text:0x802A9EE0; // type:function size:0x19C setModeCheck__17dLytDepositMain_cFv = .text:0x802AA080; // type:function size:0x84 setModeChange__17dLytDepositMain_cFb = .text:0x802AA110; // type:function size:0xE4 @@ -16018,36 +16018,36 @@ setModeScroll__17dLytDepositMain_cFbb = .text:0x802AA3D0; // type:function size: setModeRecycle__17dLytDepositMain_cFv = .text:0x802AA4D0; // type:function size:0xEC setModeArrangementOut__17dLytDepositMain_cFv = .text:0x802AA5C0; // type:function size:0xB0 setModeOut__17dLytDepositMain_cFv = .text:0x802AA670; // type:function size:0xF8 -getStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AA770; // type:function size:0x10 +getStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AA770; // type:function size:0x10 scope:weak loadStockItems__17dLytDepositMain_cFl = .text:0x802AA780; // type:function size:0x5C buildSubpanes__17dLytDepositMain_cFv = .text:0x802AA7E0; // type:function size:0x348 loadInitialState__17dLytDepositMain_cFv = .text:0x802AAB30; // type:function size:0x388 loadPouchItem__17dLytDepositMain_cFl = .text:0x802AAEC0; // type:function size:0xF8 checkPointToStock__17dLytDepositMain_cFv = .text:0x802AAFC0; // type:function size:0xB4 checkPointToPouch__17dLytDepositMain_cFv = .text:0x802AB080; // type:function size:0x188 -handleNavOrPoint__17dLytDepositMain_cFv = .text:0x802AB210; // type:function size:0x474 +checkPouchItems__17dLytDepositMain_cFv = .text:0x802AB210; // type:function size:0x474 navigateOffIcon__17dLytDepositMain_cFv = .text:0x802AB690; // type:function size:0xB8 checkNav__17dLytDepositMain_cFv = .text:0x802AB750; // type:function size:0x2E8 loadItemText__17dLytDepositMain_cFll = .text:0x802ABA40; // type:function size:0x114 checkSellOrFinish__17dLytDepositMain_cFv = .text:0x802ABB60; // type:function size:0x580 selectPouchSlot__17dLytDepositMain_cFl = .text:0x802AC0E0; // type:function size:0x1A8 -fn_802AC290__17dLytDepositMain_cFl = .text:0x802AC290; // type:function size:0xC4 +returnCursorAfterCancellingSell__17dLytDepositMain_cFl = .text:0x802AC290; // type:function size:0xC4 calcNumDigits__17dLytDepositMain_cFl = .text:0x802AC360; // type:function size:0x58 -fn_802AC3C0__17dLytDepositMain_cFv = .text:0x802AC3C0; // type:function size:0x234 -fn_802AC600 = .text:0x802AC600; // type:function size:0x64 -fn_802AC670__17dLytDepositMain_cFv = .text:0x802AC670; // type:function size:0x304 -fn_802AC980__17dLytDepositMain_cFv = .text:0x802AC980; // type:function size:0x54 -fn_802AC9E0 = .text:0x802AC9E0; // type:function size:0x90 +checkSort__17dLytDepositMain_cFv = .text:0x802AC3C0; // type:function size:0x234 +returnCursorAfterCancellingSort__17dLytDepositMain_cFl = .text:0x802AC600; // type:function size:0x64 +checkArrows__17dLytDepositMain_cFv = .text:0x802AC670; // type:function size:0x304 +loadCursor__17dLytDepositMain_cFv = .text:0x802AC980; // type:function size:0x54 +returnCursorAfterCancellingArrow__17dLytDepositMain_cFl = .text:0x802AC9E0; // type:function size:0x90 setPouchItemsVisible__17dLytDepositMain_cFb = .text:0x802ACA70; // type:function size:0x80 checkForItemPickupOrDrop__17dLytDepositMain_cFv = .text:0x802ACAF0; // type:function size:0x85C getItemSellValueFrame__17dLytDepositMain_cFl = .text:0x802AD350; // type:function size:0x18 -fn_802AD370__17dLytDepositMain_cFv = .text:0x802AD370; // type:function size:0x8C -fn_802AD400__17dLytDepositMain_cFv = .text:0x802AD400; // type:function size:0x5C -fn_802AD460__17dLytDepositMain_cFv = .text:0x802AD460; // type:function size:0x60 -fn_802AD4C0__17dLytDepositMain_cFv = .text:0x802AD4C0; // type:function size:0x5C +loadPageText__17dLytDepositMain_cFv = .text:0x802AD370; // type:function size:0x8C +hideCursor__17dLytDepositMain_cFv = .text:0x802AD400; // type:function size:0x5C +showCursor__17dLytDepositMain_cFv = .text:0x802AD460; // type:function size:0x60 +updateStockCursor__17dLytDepositMain_cFv = .text:0x802AD4C0; // type:function size:0x5C initializeState_None__13dLytDeposit_cFv = .text:0x802AD520; // type:function size:0x4 executeState_None__13dLytDeposit_cFv = .text:0x802AD530; // type:function size:0x68 -changeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802AD5A0; // type:function size:0x10 +changeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x802AD5A0; // type:function size:0x10 scope:weak finalizeState_None__13dLytDeposit_cFv = .text:0x802AD5B0; // type:function size:0x4 initializeState_In__13dLytDeposit_cFv = .text:0x802AD5C0; // type:function size:0x4 executeState_In__13dLytDeposit_cFv = .text:0x802AD5D0; // type:function size:0xBC @@ -16077,66 +16077,66 @@ initializeState_Out__13dLytDeposit_cFv = .text:0x802ADD30; // type:function size executeState_Out__13dLytDeposit_cFv = .text:0x802ADD40; // type:function size:0x80 finalizeState_Out__13dLytDeposit_cFv = .text:0x802ADDC0; // type:function size:0x4 dLytDeposit_c_classInit__Fv = .text:0x802ADDD0; // type:function size:0xF8 -__dt__26sFState_c<13dLytDeposit_c>Fv = .text:0x802ADED0; // type:function size:0x58 -__dt__29sFStateFct_c<13dLytDeposit_c>Fv = .text:0x802ADF30; // type:function size:0x6C -__dt__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802ADFA0; // type:function size:0xA0 -__dt__52sFStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c>Fv = .text:0x802AE040; // type:function size:0xA4 -__dt__17dLytDepositMain_cFv = .text:0x802AE0F0; // type:function size:0x390 +__dt__26sFState_c<13dLytDeposit_c>Fv = .text:0x802ADED0; // type:function size:0x58 scope:weak +__dt__29sFStateFct_c<13dLytDeposit_c>Fv = .text:0x802ADF30; // type:function size:0x6C scope:weak +__dt__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802ADFA0; // type:function size:0xA0 scope:weak +__dt__52sFStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c>Fv = .text:0x802AE040; // type:function size:0xA4 scope:weak +__dt__17dLytDepositMain_cFv = .text:0x802AE0F0; // type:function size:0x390 scope:weak build__13dLytDeposit_cFv = .text:0x802AE480; // type:function size:0x54 create__13dLytDeposit_cFv = .text:0x802AE4E0; // type:function size:0x70 execute__13dLytDeposit_cFv = .text:0x802AE550; // type:function size:0xB0 -getStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AE600; // type:function size:0x10 -executeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AE610; // type:function size:0x10 +getStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AE600; // type:function size:0x10 scope:weak +executeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AE610; // type:function size:0x10 scope:weak draw__13dLytDeposit_cFv = .text:0x802AE620; // type:function size:0x78 doDelete__13dLytDeposit_cFv = .text:0x802AE6A0; // type:function size:0x50 checkForNavRight__13dLytDeposit_cFv = .text:0x802AE6F0; // type:function size:0xE0 checkForNavLeft__13dLytDeposit_cFv = .text:0x802AE7D0; // type:function size:0x10C -__dt__13dLytDeposit_cFv = .text:0x802AE8E0; // type:function size:0x434 -build__29sFStateFct_c<13dLytDeposit_c>FRC12sStateIDIf_c = .text:0x802AED20; // type:function size:0x60 -dispose__29sFStateFct_c<13dLytDeposit_c>FRP10sStateIf_c = .text:0x802AED80; // type:function size:0xC -build__33sFStateFct_c<17dLytDepositMain_c>FRC12sStateIDIf_c = .text:0x802AED90; // type:function size:0x60 -dispose__33sFStateFct_c<17dLytDepositMain_c>FRP10sStateIf_c = .text:0x802AEDF0; // type:function size:0xC -build__34sFStateFct_c<18dLytDepositStock_c>FRC12sStateIDIf_c = .text:0x802AEE00; // type:function size:0x60 -dispose__34sFStateFct_c<18dLytDepositStock_c>FRP10sStateIf_c = .text:0x802AEE60; // type:function size:0xC -initialize__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEE70; // type:function size:0x1C -execute__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEE90; // type:function size:0x1C -finalize__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEEB0; // type:function size:0x1C -initialize__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEED0; // type:function size:0x1C -execute__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEEF0; // type:function size:0x1C -finalize__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEF10; // type:function size:0x1C -initialize__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF30; // type:function size:0x1C -execute__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF50; // type:function size:0x1C -finalize__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF70; // type:function size:0x1C -initializeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEF90; // type:function size:0x10 -finalizeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFA0; // type:function size:0x10 -refreshState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFB0; // type:function size:0x10 -getState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFC0; // type:function size:0x10 -getNewStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFD0; // type:function size:0x10 -getOldStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFE0; // type:function size:0x10 -initializeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFF0; // type:function size:0x10 -finalizeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF000; // type:function size:0x10 -refreshState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF010; // type:function size:0x10 -getState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF020; // type:function size:0x10 -getNewStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF030; // type:function size:0x10 -getOldStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF040; // type:function size:0x10 -initializeState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF050; // type:function size:0x10 -finalizeState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF060; // type:function size:0x10 -refreshState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF070; // type:function size:0x10 -getState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF080; // type:function size:0x10 -getNewStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF090; // type:function size:0x10 -getStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF0A0; // type:function size:0x10 -getOldStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF0B0; // type:function size:0x10 -finalizeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF0C0; // type:function size:0x30 -executeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF0F0; // type:function size:0x30 -initializeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF120; // type:function size:0x30 -finalizeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF150; // type:function size:0x30 -executeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF180; // type:function size:0x30 -initializeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF1B0; // type:function size:0x30 -__sinit_\d_lyt_deposit_cpp = .text:0x802AF1E0; // type:function size:0xF04 -__dt__32sFStateID_c<17dLytDepositMain_c>Fv = .text:0x802B00F0; // type:function size:0x58 -__dt__28sFStateID_c<13dLytDeposit_c>Fv = .text:0x802B0150; // type:function size:0x58 -isSameName__28sFStateID_c<13dLytDeposit_c>CFPCc = .text:0x802B01B0; // type:function size:0x88 -isSameName__32sFStateID_c<17dLytDepositMain_c>CFPCc = .text:0x802B0240; // type:function size:0x88 +__dt__13dLytDeposit_cFv = .text:0x802AE8E0; // type:function size:0x434 scope:weak +build__29sFStateFct_c<13dLytDeposit_c>FRC12sStateIDIf_c = .text:0x802AED20; // type:function size:0x60 scope:weak +dispose__29sFStateFct_c<13dLytDeposit_c>FRP10sStateIf_c = .text:0x802AED80; // type:function size:0xC scope:weak +build__33sFStateFct_c<17dLytDepositMain_c>FRC12sStateIDIf_c = .text:0x802AED90; // type:function size:0x60 scope:weak +dispose__33sFStateFct_c<17dLytDepositMain_c>FRP10sStateIf_c = .text:0x802AEDF0; // type:function size:0xC scope:weak +build__34sFStateFct_c<18dLytDepositStock_c>FRC12sStateIDIf_c = .text:0x802AEE00; // type:function size:0x60 scope:weak +dispose__34sFStateFct_c<18dLytDepositStock_c>FRP10sStateIf_c = .text:0x802AEE60; // type:function size:0xC scope:weak +initialize__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEE70; // type:function size:0x1C scope:weak +execute__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEE90; // type:function size:0x1C scope:weak +finalize__26sFState_c<13dLytDeposit_c>Fv = .text:0x802AEEB0; // type:function size:0x1C scope:weak +initialize__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEED0; // type:function size:0x1C scope:weak +execute__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEEF0; // type:function size:0x1C scope:weak +finalize__30sFState_c<17dLytDepositMain_c>Fv = .text:0x802AEF10; // type:function size:0x1C scope:weak +initialize__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF30; // type:function size:0x1C scope:weak +execute__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF50; // type:function size:0x1C scope:weak +finalize__31sFState_c<18dLytDepositStock_c>Fv = .text:0x802AEF70; // type:function size:0x1C scope:weak +initializeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEF90; // type:function size:0x10 scope:weak +finalizeState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFA0; // type:function size:0x10 scope:weak +refreshState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFB0; // type:function size:0x10 scope:weak +getState__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFC0; // type:function size:0x10 scope:weak +getNewStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFD0; // type:function size:0x10 scope:weak +getOldStateID__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AEFE0; // type:function size:0x10 scope:weak +initializeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AEFF0; // type:function size:0x10 scope:weak +finalizeState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF000; // type:function size:0x10 scope:weak +refreshState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF010; // type:function size:0x10 scope:weak +getState__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF020; // type:function size:0x10 scope:weak +getNewStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF030; // type:function size:0x10 scope:weak +getOldStateID__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF040; // type:function size:0x10 scope:weak +initializeState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF050; // type:function size:0x10 scope:weak +finalizeState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF060; // type:function size:0x10 scope:weak +refreshState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x802AF070; // type:function size:0x10 scope:weak +getState__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF080; // type:function size:0x10 scope:weak +getNewStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF090; // type:function size:0x10 scope:weak +getStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF0A0; // type:function size:0x10 scope:weak +getOldStateID__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x802AF0B0; // type:function size:0x10 scope:weak +finalizeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF0C0; // type:function size:0x30 scope:weak +executeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF0F0; // type:function size:0x30 scope:weak +initializeState__32sFStateID_c<17dLytDepositMain_c>CFR17dLytDepositMain_c = .text:0x802AF120; // type:function size:0x30 scope:weak +finalizeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF150; // type:function size:0x30 scope:weak +executeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF180; // type:function size:0x30 scope:weak +initializeState__28sFStateID_c<13dLytDeposit_c>CFR13dLytDeposit_c = .text:0x802AF1B0; // type:function size:0x30 scope:weak +__sinit_\d_lyt_deposit_cpp = .text:0x802AF1E0; // type:function size:0xF04 scope:local +__dt__32sFStateID_c<17dLytDepositMain_c>Fv = .text:0x802B00F0; // type:function size:0x58 scope:weak +__dt__28sFStateID_c<13dLytDeposit_c>Fv = .text:0x802B0150; // type:function size:0x58 scope:weak +isSameName__28sFStateID_c<13dLytDeposit_c>CFPCc = .text:0x802B01B0; // type:function size:0x88 scope:weak +isSameName__32sFStateID_c<17dLytDepositMain_c>CFPCc = .text:0x802B0240; // type:function size:0x88 scope:weak fn_802B02D0 = .text:0x802B02D0; // type:function size:0x4 fn_802B02E0 = .text:0x802B02E0; // type:function size:0xC fn_802B02F0 = .text:0x802B02F0; // type:function size:0x4 @@ -28679,8 +28679,8 @@ dLytShop__UpgradeEntryArray1 = .rodata:0x804EF358; // type:object size:0x418 dat lbl_804EF770 = .rodata:0x804EF770; // type:object size:0x10 data:4byte lbl_804EF780 = .rodata:0x804EF780; // type:object size:0x68 lbl_804EF7E8 = .rodata:0x804EF7E8; // type:object size:0xC8 -lbl_804EF8B0 = .rodata:0x804EF8B0; // type:object size:0xC0 data:byte -lbl_804EF970 = .rodata:0x804EF970; // type:object size:0x120 data:4byte +sItemData = .rodata:0x804EF8B0; // type:object size:0xBC scope:local data:byte +brlanMap = .rodata:0x804EF970; // type:object size:0x120 scope:local data:4byte lbl_804EFA90 = .rodata:0x804EFA90; // type:object size:0x10 data:4byte lbl_804EFAA0 = .rodata:0x804EFAA0; // type:object size:0x18 data:4byte lbl_804EFAB8 = .rodata:0x804EFAB8; // type:object size:0x18 data:4byte @@ -37376,104 +37376,200 @@ lbl_8053C868 = .data:0x8053C868; // type:object size:0x18 lbl_8053C880 = .data:0x8053C880; // type:object size:0x6E0 lbl_8053CF60 = .data:0x8053CF60; // type:object size:0x34 lbl_8053CF94 = .data:0x8053CF94; // type:object size:0x34 -lbl_8053CFC8 = .data:0x8053CFC8; // type:object size:0x17 data:string -lbl_8053CFE0 = .data:0x8053CFE0; // type:object size:0xB data:string -lbl_8053CFEC = .data:0x8053CFEC; // type:object size:0x1A data:string -lbl_8053D008 = .data:0x8053D008; // type:object size:0xB data:string -lbl_8053D014 = .data:0x8053D014; // type:object size:0x1B data:string -lbl_8053D030 = .data:0x8053D030; // type:object size:0xC data:string -lbl_8053D03C = .data:0x8053D03C; // type:object size:0x1D data:string -lbl_8053D05C = .data:0x8053D05C; // type:object size:0xE data:string -lbl_8053D070 = .data:0x8053D070; // type:object size:0x10 data:string -lbl_8053D080 = .data:0x8053D080; // type:object size:0x1A data:string -lbl_8053D0A0 = .data:0x8053D0A0; // type:object size:0x10 data:string -lbl_8053D0B0 = .data:0x8053D0B0; // type:object size:0x10 data:string -lbl_8053D0C0 = .data:0x8053D0C0; // type:object size:0x10 data:string -lbl_8053D0D0 = .data:0x8053D0D0; // type:object size:0x10 data:string -lbl_8053D0E0 = .data:0x8053D0E0; // type:object size:0x10 data:string -lbl_8053D0F0 = .data:0x8053D0F0; // type:object size:0x10 data:string -lbl_8053D100 = .data:0x8053D100; // type:object size:0x10 data:string -lbl_8053D110 = .data:0x8053D110; // type:object size:0x10 data:string -lbl_8053D120 = .data:0x8053D120; // type:object size:0x1C data:string -lbl_8053D13C = .data:0x8053D13C; // type:object size:0xC data:string -lbl_8053D148 = .data:0x8053D148; // type:object size:0x1C data:string -lbl_8053D164 = .data:0x8053D164; // type:object size:0x1E data:string -lbl_8053D184 = .data:0x8053D184; // type:object size:0x9 data:string -lbl_8053D190 = .data:0x8053D190; // type:object size:0x9 data:string -lbl_8053D19C = .data:0x8053D19C; // type:object size:0x9 data:string -lbl_8053D1A8 = .data:0x8053D1A8; // type:object size:0x18 data:string -lbl_8053D1C0 = .data:0x8053D1C0; // type:object size:0x1D data:string -lbl_8053D1E0 = .data:0x8053D1E0; // type:object size:0x1C data:string -lbl_8053D1FC = .data:0x8053D1FC; // type:object size:0xD data:string -lbl_8053D20C = .data:0x8053D20C; // type:object size:0x1A data:string -lbl_8053D228 = .data:0x8053D228; // type:object size:0xB data:string -lbl_8053D234 = .data:0x8053D234; // type:object size:0xB data:string -lbl_8053D240 = .data:0x8053D240; // type:object size:0x1E data:string -lbl_8053D260 = .data:0x8053D260; // type:object size:0xF data:string -lbl_8053D270 = .data:0x8053D270; // type:object size:0x1C data:string -lbl_8053D28C = .data:0x8053D28C; // type:object size:0xD data:string -lbl_8053D29C = .data:0x8053D29C; // type:object size:0x19 data:string -lbl_8053D2B8 = .data:0x8053D2B8; // type:object size:0xA data:string -lbl_8053D2C4 = .data:0x8053D2C4; // type:object size:0x19 data:string -lbl_8053D2E0 = .data:0x8053D2E0; // type:object size:0xB data:string -lbl_8053D2EC = .data:0x8053D2EC; // type:object size:0xB data:string -lbl_8053D2F8 = .data:0x8053D2F8; // type:object size:0xB data:string -lbl_8053D304 = .data:0x8053D304; // type:object size:0xB data:string -lbl_8053D310 = .data:0x8053D310; // type:object size:0xB data:string -lbl_8053D31C = .data:0x8053D31C; // type:object size:0xB data:string -lbl_8053D328 = .data:0x8053D328; // type:object size:0xB data:string -lbl_8053D334 = .data:0x8053D334; // type:object size:0xB data:string -lbl_8053D340 = .data:0x8053D340; // type:object size:0x19 data:string -lbl_8053D35C = .data:0x8053D35C; // type:object size:0xA data:string -lbl_8053D368 = .data:0x8053D368; // type:object size:0xB data:string -lbl_8053D374 = .data:0x8053D374; // type:object size:0xB data:string -lbl_8053D380 = .data:0x8053D380; // type:object size:0xB data:string -lbl_8053D38C = .data:0x8053D38C; // type:object size:0xB data:string -lbl_8053D398 = .data:0x8053D398; // type:object size:0xB data:string -lbl_8053D3A4 = .data:0x8053D3A4; // type:object size:0xB data:string -lbl_8053D3B0 = .data:0x8053D3B0; // type:object size:0xB data:string -lbl_8053D3BC = .data:0x8053D3BC; // type:object size:0x2C -lbl_8053D3E8 = .data:0x8053D3E8; // type:object size:0xA data:string -lbl_8053D3F4 = .data:0x8053D3F4; // type:object size:0xA data:string -lbl_8053D400 = .data:0x8053D400; // type:object size:0xA data:string -lbl_8053D40C = .data:0x8053D40C; // type:object size:0xA data:string -lbl_8053D418 = .data:0x8053D418; // type:object size:0xA data:string -lbl_8053D424 = .data:0x8053D424; // type:object size:0xA data:string -lbl_8053D430 = .data:0x8053D430; // type:object size:0xA data:string -lbl_8053D43C = .data:0x8053D43C; // type:object size:0xA data:string -lbl_8053D448 = .data:0x8053D448; // type:object size:0xA data:string -lbl_8053D454 = .data:0x8053D454; // type:object size:0xA data:string -lbl_8053D460 = .data:0x8053D460; // type:object size:0xA data:string -lbl_8053D46C = .data:0x8053D46C; // type:object size:0x3C -lbl_8053D4A8 = .data:0x8053D4A8; // type:object size:0x9 data:string -lbl_8053D4B4 = .data:0x8053D4B4; // type:object size:0x9 data:string -lbl_8053D4C0 = .data:0x8053D4C0; // type:object size:0x78 -lbl_8053D538 = .data:0x8053D538; // type:object size:0x9 data:string -lbl_8053D544 = .data:0x8053D544; // type:object size:0x9 data:string -lbl_8053D550 = .data:0x8053D550; // type:object size:0xF data:string -jumptable_8053D560 = .data:0x8053D560; // type:object size:0x24 scope:local -lbl_8053D584 = .data:0x8053D584; // type:object size:0x44 -lbl_8053D5C8 = .data:0x8053D5C8; // type:object size:0xD data:string -lbl_8053D5D8 = .data:0x8053D5D8; // type:object size:0xE data:string -lbl_8053D5E8 = .data:0x8053D5E8; // type:object size:0x24 +@24934 = .data:0x8053CFC8; // type:object size:0x17 scope:local data:string +...data.0 = .data:0x8053CFC8; // type:label scope:local +@24935 = .data:0x8053CFE0; // type:object size:0xB scope:local data:string +@24936 = .data:0x8053CFEC; // type:object size:0x1A scope:local data:string +@24937 = .data:0x8053D008; // type:object size:0xB scope:local data:string +@24938 = .data:0x8053D014; // type:object size:0x1B scope:local data:string +@24939 = .data:0x8053D030; // type:object size:0xC scope:local data:string +@24940 = .data:0x8053D03C; // type:object size:0x1D scope:local data:string +@24941 = .data:0x8053D05C; // type:object size:0xE scope:local data:string +@24942 = .data:0x8053D070; // type:object size:0x10 scope:local data:string +@24943 = .data:0x8053D080; // type:object size:0x1A scope:local data:string +@24944 = .data:0x8053D0A0; // type:object size:0x10 scope:local data:string +@24945 = .data:0x8053D0B0; // type:object size:0x10 scope:local data:string +@24946 = .data:0x8053D0C0; // type:object size:0x10 scope:local data:string +@24947 = .data:0x8053D0D0; // type:object size:0x10 scope:local data:string +@24948 = .data:0x8053D0E0; // type:object size:0x10 scope:local data:string +@24949 = .data:0x8053D0F0; // type:object size:0x10 scope:local data:string +@24950 = .data:0x8053D100; // type:object size:0x10 scope:local data:string +@24951 = .data:0x8053D110; // type:object size:0x10 scope:local data:string +@24952 = .data:0x8053D120; // type:object size:0x1C scope:local data:string +@24953 = .data:0x8053D13C; // type:object size:0xC scope:local data:string +@24954 = .data:0x8053D148; // type:object size:0x1C scope:local data:string +@24955 = .data:0x8053D164; // type:object size:0x1E scope:local data:string +@24956 = .data:0x8053D184; // type:object size:0x9 scope:local data:string +@24957 = .data:0x8053D190; // type:object size:0x9 scope:local data:string +@24958 = .data:0x8053D19C; // type:object size:0x9 scope:local data:string +@24959 = .data:0x8053D1A8; // type:object size:0x18 scope:local data:string +@24960 = .data:0x8053D1C0; // type:object size:0x1D scope:local data:string +@24961 = .data:0x8053D1E0; // type:object size:0x1C scope:local data:string +@24962 = .data:0x8053D1FC; // type:object size:0xD scope:local data:string +@24963 = .data:0x8053D20C; // type:object size:0x1A scope:local data:string +@24964 = .data:0x8053D228; // type:object size:0xB scope:local data:string +@24965 = .data:0x8053D234; // type:object size:0xB scope:local data:string +@24966 = .data:0x8053D240; // type:object size:0x1E scope:local data:string +@24967 = .data:0x8053D260; // type:object size:0xF scope:local data:string +@24968 = .data:0x8053D270; // type:object size:0x1C scope:local data:string +@24969 = .data:0x8053D28C; // type:object size:0xD scope:local data:string +@24970 = .data:0x8053D29C; // type:object size:0x19 scope:local data:string +@24971 = .data:0x8053D2B8; // type:object size:0xA scope:local data:string +@24972 = .data:0x8053D2C4; // type:object size:0x19 scope:local data:string +@24973 = .data:0x8053D2E0; // type:object size:0xB scope:local data:string +@24974 = .data:0x8053D2EC; // type:object size:0xB scope:local data:string +@24975 = .data:0x8053D2F8; // type:object size:0xB scope:local data:string +@24976 = .data:0x8053D304; // type:object size:0xB scope:local data:string +@24977 = .data:0x8053D310; // type:object size:0xB scope:local data:string +@24978 = .data:0x8053D31C; // type:object size:0xB scope:local data:string +@24979 = .data:0x8053D328; // type:object size:0xB scope:local data:string +@24980 = .data:0x8053D334; // type:object size:0xB scope:local data:string +@24981 = .data:0x8053D340; // type:object size:0x19 scope:local data:string +@24982 = .data:0x8053D35C; // type:object size:0xA scope:local data:string +@24983 = .data:0x8053D368; // type:object size:0xB scope:local data:string +@24984 = .data:0x8053D374; // type:object size:0xB scope:local data:string +@24985 = .data:0x8053D380; // type:object size:0xB scope:local data:string +@24986 = .data:0x8053D38C; // type:object size:0xB scope:local data:string +@24987 = .data:0x8053D398; // type:object size:0xB scope:local data:string +@24988 = .data:0x8053D3A4; // type:object size:0xB scope:local data:string +@24989 = .data:0x8053D3B0; // type:object size:0xB scope:local data:string +@24990 = .data:0x8053D3BC; // type:object size:0xB scope:local data:string +sRingBoundingNames = .data:0x8053D3C8; // type:object size:0x20 scope:local +@24991 = .data:0x8053D3E8; // type:object size:0xA scope:local data:string +@24992 = .data:0x8053D3F4; // type:object size:0xA scope:local data:string +@24993 = .data:0x8053D400; // type:object size:0xA scope:local data:string +@24994 = .data:0x8053D40C; // type:object size:0xA scope:local data:string +@24995 = .data:0x8053D418; // type:object size:0xA scope:local data:string +@24996 = .data:0x8053D424; // type:object size:0xA scope:local data:string +@24997 = .data:0x8053D430; // type:object size:0xA scope:local data:string +@24998 = .data:0x8053D43C; // type:object size:0xA scope:local data:string +@24999 = .data:0x8053D448; // type:object size:0xA scope:local data:string +@25000 = .data:0x8053D454; // type:object size:0xA scope:local data:string +@25001 = .data:0x8053D460; // type:object size:0xA scope:local data:string +@25002 = .data:0x8053D46C; // type:object size:0xA scope:local data:string +sItemBoundingNames = .data:0x8053D478; // type:object size:0x30 scope:local +@25003 = .data:0x8053D4A8; // type:object size:0x9 scope:local data:string +@25004 = .data:0x8053D4B4; // type:object size:0x9 scope:local data:string +@30689 = .data:0x8053D4C0; // type:object size:0x14 scope:local data:string +@30690 = .data:0x8053D4D4; // type:object size:0x9 scope:local data:string +@30691 = .data:0x8053D4E0; // type:object size:0xD scope:local data:string +@30692 = .data:0x8053D4F0; // type:object size:0xD scope:local data:string +@30693 = .data:0x8053D500; // type:object size:0xA scope:local data:string +@30694 = .data:0x8053D50C; // type:object size:0xA scope:local data:string +@30695 = .data:0x8053D518; // type:object size:0xB scope:local data:string +@30696 = .data:0x8053D524; // type:object size:0x11 scope:local data:string +@25293 = .data:0x8053D538; // type:object size:0x9 scope:local data:string +@31055 = .data:0x8053D544; // type:object size:0x9 scope:local data:string +@31161 = .data:0x8053D550; // type:object size:0xF scope:local data:string +@31336 = .data:0x8053D560; // type:object size:0x24 scope:local +@31344 = .data:0x8053D584; // type:object size:0xD scope:local data:string +@31345 = .data:0x8053D594; // type:object size:0xE scope:local data:string +@31346 = .data:0x8053D5A4; // type:object size:0xF scope:local data:string +@31347 = .data:0x8053D5B4; // type:object size:0x12 scope:local data:string +@31435 = .data:0x8053D5C8; // type:object size:0xD scope:local data:string +@31436 = .data:0x8053D5D8; // type:object size:0xE scope:local data:string +@31783 = .data:0x8053D5E8; // type:object size:0xC scope:local data:wstring +@31784 = .data:0x8053D5F4; // type:object size:0xA scope:local data:string +@31785 = .data:0x8053D600; // type:object size:0xB scope:local data:string g_profile_LYT_DEPOSIT = .data:0x8053D60C; // type:object size:0xC -lbl_8053D618 = .data:0x8053D618; // type:object size:0x1B data:string +@32022 = .data:0x8053D618; // type:object size:0x1B scope:local data:string __vt__13dLytDeposit_c = .data:0x8053D638; // type:object size:0x50 -__vt__52sFStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c> = .data:0x8053D688; // type:object size:0x30 -__vt__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D6B8; // type:object size:0x30 -__vt__29sFStateFct_c<13dLytDeposit_c> = .data:0x8053D6E8; // type:object size:0x18 -__vt__26sFState_c<13dLytDeposit_c> = .data:0x8053D700; // type:object size:0x18 -__vt__17dLytDepositMain_c = .data:0x8053D718; // type:object size:0x10 -__vt__56sFStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c> = .data:0x8053D728; // type:object size:0x30 -__vt__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D758; // type:object size:0x30 -__vt__33sFStateFct_c<17dLytDepositMain_c> = .data:0x8053D788; // type:object size:0x18 -__vt__30sFState_c<17dLytDepositMain_c> = .data:0x8053D7A0; // type:object size:0x18 -__vt__57sFStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c> = .data:0x8053D7B8; // type:object size:0x30 -__vt__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D7E8; // type:object size:0x30 -__vt__34sFStateFct_c<18dLytDepositStock_c> = .data:0x8053D818; // type:object size:0x18 -__vt__31sFState_c<18dLytDepositStock_c> = .data:0x8053D830; // type:object size:0x72C -__vt__32sFStateID_c<17dLytDepositMain_c> = .data:0x8053DF5C; // type:object size:0x34 -__vt__28sFStateID_c<13dLytDeposit_c> = .data:0x8053DF90; // type:object size:0x38 +__vt__52sFStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c> = .data:0x8053D688; // type:object size:0x30 scope:weak +__vt__82sStateMgr_c<13dLytDeposit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D6B8; // type:object size:0x30 scope:weak +__vt__29sFStateFct_c<13dLytDeposit_c> = .data:0x8053D6E8; // type:object size:0x14 scope:weak +__vt__26sFState_c<13dLytDeposit_c> = .data:0x8053D700; // type:object size:0x18 scope:weak +__vt__17dLytDepositMain_c = .data:0x8053D718; // type:object size:0xC scope:weak +__vt__56sFStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c> = .data:0x8053D728; // type:object size:0x30 scope:weak +__vt__86sStateMgr_c<17dLytDepositMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D758; // type:object size:0x30 scope:weak +__vt__33sFStateFct_c<17dLytDepositMain_c> = .data:0x8053D788; // type:object size:0x14 scope:weak +__vt__30sFState_c<17dLytDepositMain_c> = .data:0x8053D7A0; // type:object size:0x18 scope:weak +__vt__57sFStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c> = .data:0x8053D7B8; // type:object size:0x30 scope:weak +__vt__87sStateMgr_c<18dLytDepositStock_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8053D7E8; // type:object size:0x30 scope:weak +__vt__34sFStateFct_c<18dLytDepositStock_c> = .data:0x8053D818; // type:object size:0x14 scope:weak +__vt__31sFState_c<18dLytDepositStock_c> = .data:0x8053D830; // type:object size:0x18 scope:weak +lbl_8053D848 = .data:0x8053D848; // type:object size:0x164 +@32336 = .data:0x8053D9AC; // type:object size:0xC scope:local +@32337 = .data:0x8053D9B8; // type:object size:0xC scope:local +@32338 = .data:0x8053D9C4; // type:object size:0xC scope:local +@32339 = .data:0x8053D9D0; // type:object size:0xC scope:local +@32340 = .data:0x8053D9DC; // type:object size:0xC scope:local +@32341 = .data:0x8053D9E8; // type:object size:0xC scope:local +@32342 = .data:0x8053D9F4; // type:object size:0xC scope:local +@32343 = .data:0x8053DA00; // type:object size:0xC scope:local +@32344 = .data:0x8053DA0C; // type:object size:0xC scope:local +@32345 = .data:0x8053DA18; // type:object size:0xC scope:local +@32346 = .data:0x8053DA24; // type:object size:0xC scope:local +@32347 = .data:0x8053DA30; // type:object size:0xC scope:local +@32348 = .data:0x8053DA3C; // type:object size:0xC scope:local +@32349 = .data:0x8053DA48; // type:object size:0xC scope:local +@32350 = .data:0x8053DA54; // type:object size:0xC scope:local +@32351 = .data:0x8053DA60; // type:object size:0xC scope:local +@32352 = .data:0x8053DA6C; // type:object size:0xC scope:local +@32353 = .data:0x8053DA78; // type:object size:0xC scope:local +@32354 = .data:0x8053DA84; // type:object size:0xC scope:local +@32355 = .data:0x8053DA90; // type:object size:0xC scope:local +@32356 = .data:0x8053DA9C; // type:object size:0xC scope:local +@32357 = .data:0x8053DAA8; // type:object size:0xC scope:local +@32358 = .data:0x8053DAB4; // type:object size:0xC scope:local +@32359 = .data:0x8053DAC0; // type:object size:0xC scope:local +@32360 = .data:0x8053DACC; // type:object size:0xC scope:local +@32361 = .data:0x8053DAD8; // type:object size:0xC scope:local +@32362 = .data:0x8053DAE4; // type:object size:0xC scope:local +@32363 = .data:0x8053DAF0; // type:object size:0xC scope:local +@32364 = .data:0x8053DAFC; // type:object size:0xC scope:local +@32365 = .data:0x8053DB08; // type:object size:0xC scope:local +@32366 = .data:0x8053DB14; // type:object size:0xC scope:local +@32367 = .data:0x8053DB20; // type:object size:0xC scope:local +@32368 = .data:0x8053DB2C; // type:object size:0xC scope:local +@32369 = .data:0x8053DB38; // type:object size:0xC scope:local +@32370 = .data:0x8053DB44; // type:object size:0xC scope:local +@32371 = .data:0x8053DB50; // type:object size:0xC scope:local +@32372 = .data:0x8053DB5C; // type:object size:0xC scope:local +@32373 = .data:0x8053DB68; // type:object size:0xC scope:local +@32374 = .data:0x8053DB74; // type:object size:0xC scope:local +@32375 = .data:0x8053DB80; // type:object size:0xC scope:local +@32376 = .data:0x8053DB8C; // type:object size:0xC scope:local +@32377 = .data:0x8053DB98; // type:object size:0xC scope:local +@32378 = .data:0x8053DBA4; // type:object size:0xC scope:local +@32379 = .data:0x8053DBB0; // type:object size:0xC scope:local +@32380 = .data:0x8053DBBC; // type:object size:0xC scope:local +@32381 = .data:0x8053DBC8; // type:object size:0xC scope:local +@32382 = .data:0x8053DBD4; // type:object size:0xC scope:local +@32383 = .data:0x8053DBE0; // type:object size:0xC scope:local +@32384 = .data:0x8053DBEC; // type:object size:0xC scope:local +@32385 = .data:0x8053DBF8; // type:object size:0xC scope:local +@32386 = .data:0x8053DC04; // type:object size:0xC scope:local +@32387 = .data:0x8053DC10; // type:object size:0xC scope:local +@32388 = .data:0x8053DC1C; // type:object size:0xC scope:local +@32389 = .data:0x8053DC28; // type:object size:0xC scope:local +@32390 = .data:0x8053DC34; // type:object size:0xC scope:local +@32391 = .data:0x8053DC40; // type:object size:0xC scope:local +@32392 = .data:0x8053DC4C; // type:object size:0xC scope:local +@32393 = .data:0x8053DC58; // type:object size:0xC scope:local +@32394 = .data:0x8053DC64; // type:object size:0xC scope:local +@32395 = .data:0x8053DC70; // type:object size:0xC scope:local +@32397 = .data:0x8053DC7C; // type:object size:0x24 scope:local data:string +@32398 = .data:0x8053DCA0; // type:object size:0x22 scope:local data:string +@32399 = .data:0x8053DCC4; // type:object size:0x25 scope:local data:string +@32400 = .data:0x8053DCEC; // type:object size:0x26 scope:local data:string +@32401 = .data:0x8053DD14; // type:object size:0x2B scope:local data:string +@32402 = .data:0x8053DD40; // type:object size:0x2D scope:local data:string +@32403 = .data:0x8053DD70; // type:object size:0x26 scope:local data:string +@32404 = .data:0x8053DD98; // type:object size:0x27 scope:local data:string +@32405 = .data:0x8053DDC0; // type:object size:0x2E scope:local data:string +@32406 = .data:0x8053DDF0; // type:object size:0x23 scope:local data:string +@32407 = .data:0x8053DE14; // type:object size:0x1C scope:local data:string +@32408 = .data:0x8053DE30; // type:object size:0x1A scope:local data:string +@32409 = .data:0x8053DE4C; // type:object size:0x1D scope:local data:string +@32410 = .data:0x8053DE6C; // type:object size:0x1E scope:local data:string +@32411 = .data:0x8053DE8C; // type:object size:0x23 scope:local data:string +@32412 = .data:0x8053DEB0; // type:object size:0x25 scope:local data:string +@32413 = .data:0x8053DED8; // type:object size:0x1E scope:local data:string +@32414 = .data:0x8053DEF8; // type:object size:0x1F scope:local data:string +@32415 = .data:0x8053DF18; // type:object size:0x26 scope:local data:string +@32416 = .data:0x8053DF40; // type:object size:0x1B scope:local data:string +__vt__32sFStateID_c<17dLytDepositMain_c> = .data:0x8053DF5C; // type:object size:0x34 scope:weak +__vt__28sFStateID_c<13dLytDeposit_c> = .data:0x8053DF90; // type:object size:0x34 scope:weak lbl_8053DFC8 = .data:0x8053DFC8; // type:object size:0x16 data:string lbl_8053DFE0 = .data:0x8053DFE0; // type:object size:0xB data:string lbl_8053DFEC = .data:0x8053DFEC; // type:object size:0x17 data:string @@ -38232,7 +38328,7 @@ __vt__22cCcD_GAtTgCoCommonBase = .data:0x80547644; // type:object size:0xC __vt__15cCcD_DivideArea = .data:0x80547650; // type:object size:0xC __vt__15cCcD_DivideInfo = .data:0x8054765C; // type:object size:0xC __vt__8cM2dGCir = .data:0x80547668; // type:object size:0xC -__vt__8cM3dGUnk = .data:0x80547678; // type:object size:0xC +__vt__8cM3dGUnk = .data:0x80547678; // type:object size:0xC scope:weak __vt__10cPartition = .data:0x80547688; // type:object size:0xC lbl_80547698 = .data:0x80547698; // type:object size:0x7C data:4byte LiquidTextures = .data:0x80547714; // type:object size:0x14 data:4byte @@ -41175,11 +41271,11 @@ lbl_80573BF4 = .sdata:0x80573BF4; // type:object size:0x4 lbl_80573BF8 = .sdata:0x80573BF8; // type:object size:0x6 data:wstring lbl_80573C00 = .sdata:0x80573C00; // type:object size:0x8 data:string lbl_80573C08 = .sdata:0x80573C08; // type:object size:0x5 data:string -lbl_80573C10 = .sdata:0x80573C10; // type:object size:0x8 data:4byte -lbl_80573C18 = .sdata:0x80573C18; // type:object size:0x4 data:4byte -lbl_80573C1C = .sdata:0x80573C1C; // type:object size:0x4 -lbl_80573C20 = .sdata:0x80573C20; // type:object size:0x5 data:string -lbl_80573C28 = .sdata:0x80573C28; // type:object size:0x6 data:wstring +sWindowNames = .sdata:0x80573C10; // type:object size:0x8 scope:local data:4byte +sGroupName = .sdata:0x80573C18; // type:object size:0x4 scope:local data:4byte +@31056 = .sdata:0x80573C1C; // type:object size:0x1 scope:local +@31057 = .sdata:0x80573C20; // type:object size:0x5 scope:local data:string +@31437 = .sdata:0x80573C28; // type:object size:0x6 scope:local data:wstring lbl_80573C30 = .sdata:0x80573C30; // type:object size:0x8 lbl_80573C38 = .sdata:0x80573C38; // type:object size:0x3 data:string lbl_80573C3C = .sdata:0x80573C3C; // type:object size:0x5 data:string @@ -42495,9 +42591,9 @@ BOSS_CAPTION_PTR = .sbss:0x805759A0; // type:object size:0x8 data:4byte sInstance__17dLytDemoDowsing_c = .sbss:0x805759A8; // type:object size:0x8 data:4byte lbl_805759B0 = .sbss:0x805759B0; // type:object size:0x2 data:2byte sInstance__10dLytShop_c = .sbss:0x805759B4; // type:object size:0x4 data:4byte -lbl_805759B8 = .sbss:0x805759B8; // type:object size:0x8 -lbl_805759C0 = .sbss:0x805759C0; // type:object size:0x8 -sInstance__13dLytDeposit_c = .sbss:0x805759C8; // type:object size:0x8 data:4byte +@LOCAL@loadItemText__17dLytDepositMain_cFll@empty = .sbss:0x805759B8; // type:object size:0x2 scope:local +@LOCAL@loadPageText__17dLytDepositMain_cFv@buf = .sbss:0x805759C0; // type:object size:0x8 scope:local +sInstance__13dLytDeposit_c = .sbss:0x805759C8; // type:object size:0x4 data:4byte lbl_805759D0 = .sbss:0x805759D0; // type:object size:0x8 data:4byte LYT_END_ROLL_PTR = .sbss:0x805759D8; // type:object size:0x8 data:4byte GLOBAL_FI_POINTER = .sbss:0x805759E0; // type:object size:0x4 data:4byte @@ -48468,14 +48564,13 @@ lbl_8057C7AC = .sdata2:0x8057C7AC; // type:object size:0x4 align:4 data:float lbl_8057C7B0 = .sdata2:0x8057C7B0; // type:object size:0x4 align:4 data:float lbl_8057C7B4 = .sdata2:0x8057C7B4; // type:object size:0x4 align:4 data:float lbl_8057C7B8 = .sdata2:0x8057C7B8; // type:object size:0x8 align:8 data:double -lbl_8057C7C0 = .sdata2:0x8057C7C0; // type:object size:0x4 align:4 data:float -lbl_8057C7C4 = .sdata2:0x8057C7C4; // type:object size:0x4 align:4 data:float -lbl_8057C7C8 = .sdata2:0x8057C7C8; // type:object size:0x4 align:4 data:float -lbl_8057C7CC = .sdata2:0x8057C7CC; // type:object size:0x4 align:4 data:float -lbl_8057C7D0 = .sdata2:0x8057C7D0; // type:object size:0x1 data:byte -lbl_8057C7D1 = .sdata2:0x8057C7D1; // type:object size:0x3 -lbl_8057C7D4 = .sdata2:0x8057C7D4; // type:object size:0x4 align:4 data:float -lbl_8057C7D8 = .sdata2:0x8057C7D8; // type:object size:0x8 align:8 data:double +@30148 = .sdata2:0x8057C7C0; // type:object size:0x4 scope:local align:4 data:float +@30281 = .sdata2:0x8057C7C4; // type:object size:0x4 scope:local align:4 data:float +@30282 = .sdata2:0x8057C7C8; // type:object size:0x4 scope:local align:4 data:float +@30697 = .sdata2:0x8057C7CC; // type:object size:0x4 scope:local align:4 data:float +@LOCAL@buildSubpanes__17dLytDepositMain_cFv@sInitialPageIndices = .sdata2:0x8057C7D0; // type:object size:0x3 scope:local data:byte +@31162 = .sdata2:0x8057C7D4; // type:object size:0x4 scope:local align:4 data:float +@31777 = .sdata2:0x8057C7D8; // type:object size:0x8 scope:local align:8 data:double lbl_8057C7E0 = .sdata2:0x8057C7E0; // type:object size:0x4 align:4 data:float lbl_8057C7E4 = .sdata2:0x8057C7E4; // type:object size:0x4 align:4 data:float lbl_8057C7E8 = .sdata2:0x8057C7E8; // type:object size:0x4 align:4 data:float @@ -52415,22 +52510,48 @@ dLytShop__STATE_MATERIAL_CHECK = .bss:0x805B6B28; // type:object size:0x40 data: dLytShop__STATE_OUT = .bss:0x805B6B68; // type:object size:0x40 data:4byte dLytShop__STATE_IN_OUT = .bss:0x805B6BA8; // type:object size:0x40 data:4byte dLytShop__STATE_END = .bss:0x805B6BE8; // type:object size:0x30 data:4byte -lbl_805B6C18 = .bss:0x805B6C18; // type:object size:0x10 -LytDepositMain__STATE_MODE_NONE = .bss:0x805B6C28; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_IN = .bss:0x805B6C68; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_CHECK = .bss:0x805B6CA8; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_CHANGE = .bss:0x805B6CE8; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_ARRANGEMENT = .bss:0x805B6D28; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_REVERSE_CHANGE = .bss:0x805B6D68; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_SCROLL = .bss:0x805B6DA8; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_RECYCLE = .bss:0x805B6DE8; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_ARRANGEMENT_OUT = .bss:0x805B6E28; // type:object size:0x40 data:4byte -LytDepositMain__STATE_MODE_OUT = .bss:0x805B6E68; // type:object size:0x30 data:4byte -lbl_805B6E98 = .bss:0x805B6E98; // type:object size:0x18 -LytDeposit__STATE_NONE = .bss:0x805B6EB0; // type:object size:0x40 data:4byte -LytDeposit__STATE_IN = .bss:0x805B6EF0; // type:object size:0x40 data:4byte -LytDeposit__STATE_CHECK = .bss:0x805B6F30; // type:object size:0x40 data:4byte -LytDeposit__STATE_CHANGE = .bss:0x805B6F70; // type:object size:0x1B0 data:4byte +@24626 = .bss:0x805B6C18; // type:object size:0xC scope:local +...bss.0 = .bss:0x805B6C18; // type:label scope:local +StateID_ModeNone__17dLytDepositMain_c = .bss:0x805B6C28; // type:object size:0x30 data:4byte +@24630 = .bss:0x805B6C58; // type:object size:0xC scope:local +StateID_ModeIn__17dLytDepositMain_c = .bss:0x805B6C68; // type:object size:0x30 data:4byte +@24634 = .bss:0x805B6C98; // type:object size:0xC scope:local +StateID_ModeCheck__17dLytDepositMain_c = .bss:0x805B6CA8; // type:object size:0x30 data:4byte +@24638 = .bss:0x805B6CD8; // type:object size:0xC scope:local +StateID_ModeChange__17dLytDepositMain_c = .bss:0x805B6CE8; // type:object size:0x30 data:4byte +@24642 = .bss:0x805B6D18; // type:object size:0xC scope:local +StateID_ModeArrangement__17dLytDepositMain_c = .bss:0x805B6D28; // type:object size:0x30 data:4byte +@24646 = .bss:0x805B6D58; // type:object size:0xC scope:local +StateID_ModeReverseChange__17dLytDepositMain_c = .bss:0x805B6D68; // type:object size:0x30 data:4byte +@24650 = .bss:0x805B6D98; // type:object size:0xC scope:local +StateID_ModeScroll__17dLytDepositMain_c = .bss:0x805B6DA8; // type:object size:0x30 data:4byte +@24654 = .bss:0x805B6DD8; // type:object size:0xC scope:local +StateID_ModeRecycle__17dLytDepositMain_c = .bss:0x805B6DE8; // type:object size:0x30 data:4byte +@24658 = .bss:0x805B6E18; // type:object size:0xC scope:local +StateID_ModeArrangementOut__17dLytDepositMain_c = .bss:0x805B6E28; // type:object size:0x30 data:4byte +@24662 = .bss:0x805B6E58; // type:object size:0xC scope:local +StateID_ModeOut__17dLytDepositMain_c = .bss:0x805B6E68; // type:object size:0x30 data:4byte +@LOCAL@checkSellOrFinish__17dLytDepositMain_cFv@buf = .bss:0x805B6E98; // type:object size:0xA scope:local +@26111 = .bss:0x805B6EA4; // type:object size:0xC scope:local +StateID_None__13dLytDeposit_c = .bss:0x805B6EB0; // type:object size:0x30 data:4byte +@26115 = .bss:0x805B6EE0; // type:object size:0xC scope:local +StateID_In__13dLytDeposit_c = .bss:0x805B6EF0; // type:object size:0x30 data:4byte +@26119 = .bss:0x805B6F20; // type:object size:0xC scope:local +StateID_Check__13dLytDeposit_c = .bss:0x805B6F30; // type:object size:0x30 data:4byte +@26123 = .bss:0x805B6F60; // type:object size:0xC scope:local +StateID_Change__13dLytDeposit_c = .bss:0x805B6F70; // type:object size:0x30 data:4byte +@26127 = .bss:0x805B6FA0; // type:object size:0xC scope:local +StateID_Arrangement__13dLytDeposit_c = .bss:0x805B6FB0; // type:object size:0x30 scope:global +@26131 = .bss:0x805B6FE0; // type:object size:0xC scope:local +StateID_ReverseChange__13dLytDeposit_c = .bss:0x805B6FF0; // type:object size:0x30 scope:global +@26135 = .bss:0x805B7020; // type:object size:0xC scope:local +StateID_Scroll__13dLytDeposit_c = .bss:0x805B7030; // type:object size:0x30 scope:global +@26139 = .bss:0x805B7060; // type:object size:0xC scope:local +StateID_Recycle__13dLytDeposit_c = .bss:0x805B7070; // type:object size:0x30 scope:global +@26143 = .bss:0x805B70A0; // type:object size:0xC scope:local +StateID_ArrangementOut__13dLytDeposit_c = .bss:0x805B70B0; // type:object size:0x30 scope:global +@26147 = .bss:0x805B70E0; // type:object size:0xC scope:local +StateID_Out__13dLytDeposit_c = .bss:0x805B70F0; // type:object size:0x30 scope:global lbl_805B7120 = .bss:0x805B7120; // type:object size:0x10 LytDemoTitleMain__STATE_MODE_NONE = .bss:0x805B7130; // type:object size:0x40 data:4byte LytDemoTitleMain__STATE_MODE_IN = .bss:0x805B7170; // type:object size:0x40 data:4byte diff --git a/configure.py b/configure.py index bb2a6003..49b5eb3c 100644 --- a/configure.py +++ b/configure.py @@ -656,7 +656,7 @@ config.libs = [ Object(NonMatching, "d/lyt/d_lyt_boss_caption.cpp"), Object(NonMatching, "d/lyt/d_lyt_demo_dowsing.cpp"), Object(NonMatching, "d/lyt/d_lyt_shop.cpp"), - Object(NonMatching, "d/lyt/d_lyt_deposit.cpp"), + Object(Matching, "d/lyt/d_lyt_deposit.cpp"), Object(NonMatching, "d/lyt/d_lyt_demo_title.cpp"), Object(NonMatching, "d/lyt/d_lyt_end_roll.cpp"), Object(NonMatching, "toBeSorted/d_a_bullet.cpp"), diff --git a/include/d/lyt/d_lyt_common_arrow.h b/include/d/lyt/d_lyt_common_arrow.h index 21a65fb7..5fd61236 100644 --- a/include/d/lyt/d_lyt_common_arrow.h +++ b/include/d/lyt/d_lyt_common_arrow.h @@ -36,12 +36,8 @@ public: bool requestIn(); bool requestOut(); - void unk() { - field_0x6B8 = mPointedAtArrow; - } - - s32 getField_0x6B8() const { - return field_0x6B8; + s32 getPointedAtArrow() const { + return mPointedAtArrow; } bool isChangingState() const { @@ -52,14 +48,18 @@ public: return mpBoundings[idx]; } - void setField_0x6B8(s32 v) { - field_0x6B8 = v; + s32 getActiveArrow() const { + return mActiveArrow; + } + + void setActiveArrow(s32 v) { + mActiveArrow = v; } void setBackwards(bool b) { mBackwards = b; } - bool fn_80168760(); + bool triggerArrowPress(); void setTranslate(const mVec2_c *); private: @@ -67,7 +67,7 @@ private: void unbindAt(s32); void tickDown(d2d::AnmGroup_c *); void checkPointAtPane(); - + /* 0x04 */ UI_STATE_MGR_DECLARE(dLytCommonArrow_c); /* 0x40 */ d2d::LytBase_c mLytBase; d2d::ResAccIf_c mResAcc; @@ -76,9 +76,9 @@ private: /* 0x6A8 */ nw4r::lyt::Bounding *mpBoundings[2]; /* 0x6B0 */ s32 mType; /* 0x6B4 */ s32 mPointedAtArrow; - /* 0x6B8 */ s32 field_0x6B8; - /* 0x6BC */ s32 field_0x6BC; - /* 0x6C0 */ s32 field_0x6C0; + /* 0x6B8 */ s32 mActiveArrow; + /* 0x6BC */ s32 mLastActiveArrow; + /* 0x6C0 */ s32 mTriggeredArrow; /* 0x6C4 */ s32 mTimer; /* 0x6C8 */ bool mInRequested; /* 0x6C9 */ bool mOutRequested; diff --git a/include/d/lyt/d_lyt_deposit.h b/include/d/lyt/d_lyt_deposit.h index 1ce62261..8596ac43 100644 --- a/include/d/lyt/d_lyt_deposit.h +++ b/include/d/lyt/d_lyt_deposit.h @@ -72,7 +72,7 @@ public: } bool getField_0x19525() const { - return field_0x19525; + return mIsSortActive; } bool getField_0x1952B() const { @@ -94,33 +94,39 @@ private: static const s32 NUM_ICONS_PER_PAGE = 12; static const s32 NUM_PAGES = 5; - void setPouchItemsVisible(bool visible); void buildSubpanes(); - void fn_802AD370(); - + void loadInitialState(); + + void checkPouchItems(); void checkPointToStock(); - void handleNavOrPoint(); void checkForItemPickupOrDrop(); void checkSellOrFinish(); - void checkPointToPouch(); - void fn_802AC3C0(); - void fn_802AD4C0(); - void loadItemText(s32 itemId, s32 where); - void fn_802AC670(); - void returnCursorAfterCancellingSell(s32 targetSlot); - void fn_802AD460(); - void loadStockItems(s32 hiddenSlot); - s32 getItemSellValueFrame(s32 value); - void selectPouchSlot(s32 slot); - void loadPouchItem(s32 slot); - void fn_8018ADA0(s32); - void loadInitialState(); - void fn_802AD400(); - void navigateOffIcon(); + void checkSort(); + void checkArrows(); s32 checkNav(); - void fn_802AC980(); - s32 calcNumDigits(s32); + + void loadItemText(s32 itemId, s32 where); + void loadStockItems(s32 hiddenSlot); + void loadPouchItem(s32 slot); + void loadPageText(); + + void setPouchItemsVisible(bool visible); + + void selectPouchSlot(s32 slot); + void navigateOffIcon(); + + void updateStockCursor(); + void showCursor(); + void hideCursor(); + void loadCursor(); + + void returnCursorAfterCancellingSell(s32 idx); + void returnCursorAfterCancellingSort(s32 idx); + void returnCursorAfterCancellingArrow(s32 idx); + + s32 getItemSellValueFrame(s32 value); + s32 calcNumDigits(s32 value); STATE_FUNC_DECLARE(dLytDepositMain_c, ModeNone); STATE_FUNC_DECLARE(dLytDepositMain_c, ModeIn); @@ -133,6 +139,8 @@ private: STATE_FUNC_DECLARE(dLytDepositMain_c, ModeArrangementOut); STATE_FUNC_DECLARE(dLytDepositMain_c, ModeOut); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytDepositMain_c); + /* 0x00004 */ UI_STATE_MGR_DECLARE(dLytDepositMain_c); /* 0x00040 */ d2d::LytBase_c mLyt; /* 0x000D0 */ d2d::AnmGroup_c mAnm[36]; @@ -163,7 +171,7 @@ private: /* 0x19522 */ bool mIsPointingAtToPouchBounding; /* 0x19523 */ bool mIsFinishActive; /* 0x19524 */ bool mIsSellActive; - /* 0x19525 */ bool field_0x19525; + /* 0x19525 */ bool mIsSortActive; /* 0x19526 */ bool field_0x19526; /* 0x19527 */ bool field_0x19527; /* 0x19528 */ bool field_0x19528; @@ -218,6 +226,9 @@ private: STATE_FUNC_DECLARE(dLytDeposit_c, ArrangementOut); STATE_FUNC_DECLARE(dLytDeposit_c, Out); + STATE_MGR_DEFINE_UTIL_ISSTATE(dLytDeposit_c); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytDeposit_c); + /* 0x08C */ UI_STATE_MGR_DECLARE(dLytDeposit_c); /* 0x0C8 */ d2d::ResAccIf_c mResAcc; /* 0x438 */ dLytDepositMain_c mMain; diff --git a/include/d/lyt/d_lyt_deposit_box_cursor.h b/include/d/lyt/d_lyt_deposit_box_cursor.h index 65cdf154..67aced0d 100644 --- a/include/d/lyt/d_lyt_deposit_box_cursor.h +++ b/include/d/lyt/d_lyt_deposit_box_cursor.h @@ -32,9 +32,9 @@ public: bool draw(); - void init(s32 location, s32 slot, s32 item, bool unk); - void updateSlot(s32 location, s32 slot, s32 item, bool unk2); - void fn_801580A0(); + void init(s32 location, s32 slot, s32 item, bool isSell); + void updateSlot(s32 location, s32 slot, s32 item, bool isSell); + void activateSell(); bool isVisible() const { return mIsVisible; @@ -56,7 +56,7 @@ private: /* 0x930 */ d2d::SubPaneList mSubpaneList; /* 0x938 */ d2d::SubPaneListNode mNode; /* 0x948 */ bool mIsVisible; - /* 0x948 */ bool field_0x949; + /* 0x948 */ bool mIsSellMode; /* 0x94C */ s32 mSlot; /* 0x950 */ s32 mItem; /* 0x954 */ s32 mItemLocation; diff --git a/include/d/lyt/d_lyt_deposit_stock.h b/include/d/lyt/d_lyt_deposit_stock.h index 90f2c061..4948c250 100644 --- a/include/d/lyt/d_lyt_deposit_stock.h +++ b/include/d/lyt/d_lyt_deposit_stock.h @@ -2,19 +2,13 @@ #define D_LYT_DEPOSIT_STOCK_H #include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_arrow.h" #include "d/lyt/d_lyt_common_icon_item.h" #include "nw4r/lyt/lyt_pane.h" #include "s/s_State.hpp" class dLytDepositStock_c : public d2d::dSubPane { public: - enum ArrowDirection_e { - ARROW_LEFT, - ARROW_RIGHT, - - ARROW_NONE, - }; - enum NavMode_e { NAV_ITEM, NAV_SELL, @@ -104,14 +98,14 @@ public: mIsModeSell = false; mIsModeSort = false; mIsModePouch = false; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } void disableSpecialModes() { mIsModeSell = false; mIsModeFinish = false; mIsModeSort = false; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } u8 getItem(s32 idx) const { @@ -142,6 +136,14 @@ public: return mArrowDirection; } + s32 getSavedArrowDirection() const { + return mSavedArrowDirection; + } + + void setSavedArrowDirection(s32 dir) { + mSavedArrowDirection = dir; + } + void setMainStock(bool b) { mIsMainStock = b; } diff --git a/src/d/lyt/d_lyt_common_arrow.cpp b/src/d/lyt/d_lyt_common_arrow.cpp index f328cd12..b65815a2 100644 --- a/src/d/lyt/d_lyt_common_arrow.cpp +++ b/src/d/lyt/d_lyt_common_arrow.cpp @@ -77,7 +77,7 @@ bool dLytCommonArrow_c::execute() { mLytBase.calc(); mCsHitCheck.resetCachedHitboxes(); mCsHitCheck.execute(); - field_0x6BC = field_0x6B8; + mLastActiveArrow = mActiveArrow; return true; } @@ -121,9 +121,9 @@ bool dLytCommonArrow_c::requestOut() { return true; } -bool dLytCommonArrow_c::fn_80168760() { - if (field_0x6C0 == ARROW_NONE && field_0x6B8 != ARROW_NONE) { - field_0x6C0 = field_0x6B8; +bool dLytCommonArrow_c::triggerArrowPress() { + if (mTriggeredArrow == ARROW_NONE && mActiveArrow != ARROW_NONE) { + mTriggeredArrow = mActiveArrow; return true; } return false; @@ -180,9 +180,9 @@ void dLytCommonArrow_c::initializeState_None() { mIsChangingState = false; mVisible = false; mPointedAtArrow = ARROW_NONE; - field_0x6B8 = ARROW_NONE; - field_0x6BC = ARROW_NONE; - field_0x6C0 = ARROW_NONE; + mActiveArrow = ARROW_NONE; + mLastActiveArrow = ARROW_NONE; + mTriggeredArrow = ARROW_NONE; mTimer = 0; displayElement(ANIM_IN, 0.0f); mBackwards = true; @@ -241,11 +241,11 @@ void dLytCommonArrow_c::executeState_Wait() { } checkPointAtPane(); - if (field_0x6B8 == ARROW_LEFT) { + if (mActiveArrow == ARROW_LEFT) { d2d::AnmGroup_c &g = mAnmGroups[ANIM_ONOFF_L]; g.play(); tickDown(&mAnmGroups[ANIM_ONOFF_R]); - } else if (field_0x6B8 == ARROW_RIGHT) { + } else if (mActiveArrow == ARROW_RIGHT) { d2d::AnmGroup_c &g = mAnmGroups[ANIM_ONOFF_R]; g.play(); tickDown(&mAnmGroups[ANIM_ONOFF_L]); @@ -263,9 +263,9 @@ void dLytCommonArrow_c::executeState_Wait() { switch (mTimer) { case 0: - if (field_0x6C0 != ARROW_NONE) { - displayElement(field_0x6C0 + ANIM_DECIDE_OFFSET, 0.0f); - if (field_0x6C0 == 0) { + if (mTriggeredArrow != ARROW_NONE) { + displayElement(mTriggeredArrow + ANIM_DECIDE_OFFSET, 0.0f); + if (mTriggeredArrow == ARROW_LEFT) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_SELECT_TURN_PAGE_LEFT); } else { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MENU_SELECT_TURN_PAGE_RIGHT); @@ -274,7 +274,7 @@ void dLytCommonArrow_c::executeState_Wait() { } break; case 1: { - d2d::AnmGroup_c &g = mAnmGroups[field_0x6C0 + ANIM_DECIDE_OFFSET]; + d2d::AnmGroup_c &g = mAnmGroups[mTriggeredArrow + ANIM_DECIDE_OFFSET]; if (g.isEndReached() == true) { mTimer++; mIsChangingState = true; @@ -282,15 +282,15 @@ void dLytCommonArrow_c::executeState_Wait() { g.play(); } break; case 2: - unbindAt(field_0x6C0 + ANIM_DECIDE_OFFSET); + unbindAt(mTriggeredArrow + ANIM_DECIDE_OFFSET); mTimer = 0; mIsChangingState = false; - field_0x6C0 = ARROW_NONE; + mTriggeredArrow = ARROW_NONE; break; } - if (field_0x6BC != field_0x6B8 && field_0x6B8 != ARROW_NONE) { - if (field_0x6B8 == ARROW_LEFT) { + if (mLastActiveArrow != mActiveArrow && mActiveArrow != ARROW_NONE) { + if (mActiveArrow == 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); diff --git a/src/d/lyt/d_lyt_deposit.cpp b/src/d/lyt/d_lyt_deposit.cpp index 0a43b1d8..96735737 100644 --- a/src/d/lyt/d_lyt_deposit.cpp +++ b/src/d/lyt/d_lyt_deposit.cpp @@ -1,3 +1,8 @@ +// clang-format off +// need this vtable order so that stripped vtable alignment gaps work out +#include "d/lyt/d2d.h" +// clang-format on + #include "d/lyt/d_lyt_deposit.h" #include "common.h" @@ -10,7 +15,7 @@ #include "d/d_pouch.h" #include "d/d_rumble.h" #include "d/flag/storyflag_manager.h" -#include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_arrow.h" #include "d/lyt/d_lyt_common_icon_item.h" #include "d/lyt/d_lyt_common_icon_item_maps.h" #include "d/lyt/d_lyt_deposit_box_cursor.h" @@ -193,7 +198,7 @@ void dLytDepositMain_c::initializeState_ModeCheck() { } void dLytDepositMain_c::executeState_ModeCheck() { checkPointToStock(); - handleNavOrPoint(); + checkPouchItems(); checkForItemPickupOrDrop(); checkSellOrFinish(); mIsIdle = true; @@ -206,7 +211,7 @@ void dLytDepositMain_c::initializeState_ModeChange() { } void dLytDepositMain_c::executeState_ModeChange() { if (mIsIdle) { - fn_802AC3C0(); + checkSort(); checkPointToPouch(); if (field_0x19550 != 0) { field_0x19550--; @@ -232,7 +237,7 @@ void dLytDepositMain_c::executeState_ModeChange() { dCsBase_c::GetInstance()->setCursorStickTargetPane( mpItemBoundings[mStock[STOCK_ACTIVE].getCurrentNavTarget()] ); - fn_802AD4C0(); + updateStockCursor(); } s32 slot = mStock[STOCK_ACTIVE].getCurrentSlot(); s32 v; @@ -254,7 +259,7 @@ void dLytDepositMain_c::executeState_ModeChange() { } loadItemText(v, dLytDepositBoxCursor_c::LOC_STOCK); checkSellOrFinish(); - fn_802AC670(); + checkArrows(); } else { if (mAnm[DEPOSIT_ANIM_CHANGE].isStop() && mArrow.isChangingState()) { mAnm[DEPOSIT_ANIM_CHANGE].setAnimEnable(false); @@ -273,8 +278,8 @@ void dLytDepositMain_c::executeState_ModeChange() { if (!dPadNav::isPointerVisible()) { returnCursorAfterCancellingSell(target); } - fn_802AD460(); - fn_802AD4C0(); + showCursor(); + updateStockCursor(); field_0x19550 = 1; mIsIdle = true; } @@ -310,7 +315,7 @@ void dLytDepositMain_c::executeState_ModeReverseChange() { mStateStep = 1; } } else { - fn_802AD460(); + showCursor(); selectPouchSlot(4); mIsIdle = true; } @@ -332,10 +337,10 @@ void dLytDepositMain_c::executeState_ModeScroll() { } mStock[STOCK_ACTIVE].fn_80156530(true); field_0x1954C = 1; - fn_802AD370(); - fn_802AD460(); - if (mStock[STOCK_ACTIVE].getArrowDirection() >= dLytDepositStock_c::ARROW_NONE) { - fn_802AD4C0(); + loadPageText(); + showCursor(); + if (mStock[STOCK_ACTIVE].getArrowDirection() >= dLytCommonArrow_c::ARROW_NONE) { + updateStockCursor(); } field_0x1952C = true; mIsIdle = true; @@ -358,10 +363,10 @@ void dLytDepositMain_c::executeState_ModeScroll() { } mStock[STOCK_ACTIVE].fn_80156530(true); field_0x1954C = 1; - fn_802AD370(); - fn_802AD460(); - if (mStock[STOCK_ACTIVE].getArrowDirection() >= dLytDepositStock_c::ARROW_NONE) { - fn_802AD4C0(); + loadPageText(); + showCursor(); + if (mStock[STOCK_ACTIVE].getArrowDirection() >= dLytCommonArrow_c::ARROW_NONE) { + updateStockCursor(); } field_0x1952C = true; mIsIdle = true; @@ -577,7 +582,7 @@ bool dLytDepositMain_c::build(d2d::ResAccIf_c *resAcc) { buildSubpanes(); mCsHitCheck.init(mLyt.getLayout()->GetRootPane(), 0x1, 0, 0); dCsMgr_c::GetInstance()->registCursorTarget(&mCsHitCheck); - fn_802AD370(); + loadPageText(); mCursor.build(resAcc); @@ -590,7 +595,7 @@ bool dLytDepositMain_c::build(d2d::ResAccIf_c *resAcc) { mIsPointingAtToPouchBounding = false; mIsFinishActive = false; mIsSellActive = false; - field_0x19525 = false; + mIsSortActive = false; field_0x19526 = false; field_0x19527 = false; field_0x19528 = false; @@ -761,7 +766,7 @@ void dLytDepositMain_c::setModeCheck() { slot += RING_NUM_ITEMS; } dCsBase_c::GetInstance()->setCursorStickTargetPane(mpRingBoundings[slot]); - fn_802AD460(); + showCursor(); mStateMgr.changeState(StateID_ModeCheck); mIsIdle = false; } @@ -778,7 +783,7 @@ void dLytDepositMain_c::setModeChange(bool unk) { mLyt.calc(); mIsIdle = false; - fn_802AD400(); + hideCursor(); mArrow.requestIn(); mStateStep = 0; } @@ -810,7 +815,7 @@ void dLytDepositMain_c::setModeReverseChange() { mStock[STOCK_ACTIVE].navigateToItem(); mStock[STOCK_ACTIVE].returnToNoneMode(); mCurrentPouchNavTarget = -4; - fn_802AD400(); + hideCursor(); mArrow.requestOut(); dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_SHOP_STK_CHANGE_POUCH); mStateStep = 0; @@ -831,9 +836,9 @@ void dLytDepositMain_c::setModeScroll(bool leftRight, bool viaButton) { mStock[STOCK_ACTIVE].field_0x684B = true; mStock[STOCK_ACTIVE].fn_80156530(false); if (viaButton) { - mArrow.fn_80168760(); + mArrow.triggerArrowPress(); } - fn_802AD400(); + hideCursor(); mHasScrolledOtherStocks = false; mStateMgr.changeState(StateID_ModeScroll); mIsIdle = false; @@ -877,7 +882,7 @@ void dLytDepositMain_c::setModeOut() { mAnm[DEPOSIT_ANIM_BTN_DECIDE_00].setFrame(0.0f); mLyt.calc(); - if (*mStateMgr.getStateID() == StateID_ModeChange) { + if (*mStateMgr.getStateID() == StateID_ModeCheck) { navigateOffIcon(); } else { mStock[STOCK_ACTIVE].navigateOffIcon(); @@ -1018,7 +1023,7 @@ void dLytDepositMain_c::loadInitialState() { mIsPointingAtToPouchBounding = false; mIsFinishActive = false; mIsSellActive = false; - field_0x19525 = false; + mIsSortActive = false; field_0x19526 = false; field_0x19527 = false; field_0x19528 = false; @@ -1076,9 +1081,11 @@ void dLytDepositMain_c::checkPointToPouch() { nw4r::math::MTX34 mtx = p->GetGlobalMtx(); mVec3_c v(0.0f, 0.0f, 0.0f); MTXMultVec(mtx, v, v); - // TODO I hate vectors - mVec2_c pos = mVec2_c(v.x, v.y); - if (pos.squareDistanceTo(mCsPosition) < radius) { + // TODO maybe fake + mVec2_c pos2 = mVec2_c(v.x, v.y); + mVec2_c dist = pos2; + dist -= mCsPosition; + if (dist.squaredLength() < radius) { // TODO: field_0x19522 is always false at this point if (!mIsPointingAtToPouchBounding) { dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); @@ -1088,7 +1095,7 @@ void dLytDepositMain_c::checkPointToPouch() { } } -void dLytDepositMain_c::handleNavOrPoint() { +void dLytDepositMain_c::checkPouchItems() { bool selectIcon = false; s32 nextTarget = 0; if (dPadNav::isPointerVisible()) { @@ -1148,7 +1155,7 @@ void dLytDepositMain_c::handleNavOrPoint() { case dPadNav::FS_STICK_DOWN_LEFT: nextTarget = -1; mStock[STOCK_ACTIVE].navigateToSell(); - fn_802AC980(); + loadCursor(); break; case dPadNav::FS_STICK_LEFT: nextTarget = mCurrentPouchNavTarget - 1; @@ -1434,8 +1441,8 @@ void dLytDepositMain_c::checkSellOrFinish() { case dPadNav::FS_STICK_UP: case dPadNav::FS_STICK_UP_RIGHT: { mStock[STOCK_ACTIVE].disableModeFinish(); - mArrow.setField_0x6B8(1); - mStock[STOCK_ACTIVE].navigateToArrow(dLytDepositStock_c::ARROW_RIGHT); + mArrow.setActiveArrow(1); + mStock[STOCK_ACTIVE].navigateToArrow(dLytCommonArrow_c::ARROW_RIGHT); dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); mStock[STOCK_ACTIVE].saveArrowDirection(); break; @@ -1456,7 +1463,7 @@ void dLytDepositMain_c::checkSellOrFinish() { } else if (mStock[STOCK_ACTIVE].isModeSell()) { if (!mIsSellActive || field_0x1952A) { dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingItem12); - mCursor.fn_801580A0(); + mCursor.activateSell(); updateFlags = 2; } else if (field_0x1954C == 0) { switch (direction) { @@ -1482,8 +1489,8 @@ void dLytDepositMain_c::checkSellOrFinish() { switch (direction) { case dPadNav::FS_STICK_UP: { mStock[STOCK_ACTIVE].disableModeSell(); - mArrow.setField_0x6B8(0); - mStock[STOCK_ACTIVE].navigateToArrow(dLytDepositStock_c::ARROW_LEFT); + mArrow.setActiveArrow(0); + mStock[STOCK_ACTIVE].navigateToArrow(dLytCommonArrow_c::ARROW_LEFT); dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); break; } @@ -1581,12 +1588,12 @@ void dLytDepositMain_c::selectPouchSlot(s32 slot) { mAnm[mCurrentPouchNavTarget + DEPOSIT_ANIM_FLASH_OFFSET].setAnimEnable(false); } -void dLytDepositMain_c::returnCursorAfterCancellingSell(s32 targetSlot) { +void dLytDepositMain_c::returnCursorAfterCancellingSell(s32 idx) { mStock[STOCK_ACTIVE].disableModeSell(); if (dPadNav::isPointerVisible()) { - targetSlot -= 12; + idx -= 12; } - mStock[STOCK_ACTIVE].selectNavTarget(targetSlot); + mStock[STOCK_ACTIVE].selectNavTarget(idx); mStock[STOCK_ACTIVE].navigateToItem(); s32 navTarget = mStock[STOCK_ACTIVE].getCurrentNavTarget(); if (navTarget >= 0) { @@ -1613,6 +1620,212 @@ s32 dLytDepositMain_c::calcNumDigits(s32 value) { return i; } +void dLytDepositMain_c::checkSort() { + bool b = false; + dCursorHitCheck_c *d = dCsBase_c::GetInstance()->getHitCheck(); + if (dPadNav::isPointerVisible()) { + if (d != nullptr && d->getType() == 'lyt ') { + if (static_cast(d)->getHitPane() == mpBoundingCleanUp && + mCurrentlyHoldingItemSlot < 0) { + mStock[STOCK_ACTIVE].navigateToSort(); + mStock[STOCK_ACTIVE].disableModeSell(); + mStock[STOCK_ACTIVE].disableModeFinish(); + b = true; + } + } + } else { + if (mStock[STOCK_ACTIVE].isModeSort()) { + if (!mIsSortActive || field_0x1952A) { + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingCleanUp); + b = true; + } else { + switch (dPadNav::getFSStickNavDirection()) { + case dPadNav::FS_STICK_UP: + case dPadNav::FS_STICK_UP_RIGHT: + mStock[STOCK_ACTIVE].disableModeSort(); + returnCursorAfterCancellingSort(11); + break; + case dPadNav::FS_STICK_RIGHT: + case dPadNav::FS_STICK_DOWN_RIGHT: + case dPadNav::FS_STICK_DOWN: + mStock[STOCK_ACTIVE].disableModeSort(); + mStock[STOCK_ACTIVE].navigateToFinish(); + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingChoices); + break; + case dPadNav::FS_STICK_LEFT: + case dPadNav::FS_STICK_UP_LEFT: + mStock[STOCK_ACTIVE].disableModeSort(); + returnCursorAfterCancellingSort(10); + break; + case dPadNav::FS_STICK_NONE: + case dPadNav::FS_STICK_DOWN_LEFT: + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingCleanUp); + b = true; + break; + } + } + } + } + + if (b) { + if (!mIsSortActive) { + mAnm[DEPOSIT_ANIM_BTN_ON_OFF_01].setAnimEnable(true); + mAnm[DEPOSIT_ANIM_BTN_ON_OFF_01].setFrame(0.0f); + mAnm[DEPOSIT_ANIM_BTN_ON_OFF_01].setForwardOnce(); + dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); + } + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingCleanUp); + mIsSortActive = true; + } else if (mIsSortActive) { + mAnm[DEPOSIT_ANIM_BTN_ON_OFF_01].setAnimEnable(true); + mAnm[DEPOSIT_ANIM_BTN_ON_OFF_01].setBackwardsOnce(); + mStock[STOCK_ACTIVE].disableModeSort(); + mIsSortActive = false; + } +} + +void dLytDepositMain_c::returnCursorAfterCancellingSort(s32 idx) { + mStock[STOCK_ACTIVE].selectNavTarget(idx); + s32 target = mStock[STOCK_ACTIVE].getCurrentNavTarget(); + mStock[STOCK_ACTIVE].navigateToItem(); + if (target >= 0) { + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpItemBoundings[target]); + } +} + +void dLytDepositMain_c::checkArrows() { + if (dPadNav::isPointerVisible()) { + s32 pointArrow = mArrow.getPointedAtArrow(); + if (pointArrow < dLytCommonArrow_c::ARROW_NONE) { + if (pointArrow != mStock[STOCK_ACTIVE].getArrowDirection()) { + mArrow.setActiveArrow(pointArrow); + dCsBase_c::GetInstance()->setCursorStickTargetPane(mArrow.getArrowBounding(pointArrow)); + dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); + mStock[STOCK_ACTIVE].navigateToArrow(pointArrow); + mStock[STOCK_ACTIVE].saveArrowDirection(); + } + } else if (mStock[STOCK_ACTIVE].getArrowDirection() < dLytCommonArrow_c::ARROW_NONE) { + mStock[STOCK_ACTIVE].navigateToArrow(pointArrow); + mArrow.setActiveArrow(mArrow.getPointedAtArrow()); + } + + } else { + if (field_0x1952A && mStock[STOCK_ACTIVE].getSavedArrowDirection() < dLytCommonArrow_c::ARROW_NONE) { + s32 dir = mStock[STOCK_ACTIVE].restoreArrowDirection(); + if (mStock[STOCK_ACTIVE].getArrowDirection() >= dLytCommonArrow_c::ARROW_NONE) { + mArrow.setActiveArrow(dir); + dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); + } + dCsBase_c::GetInstance()->setCursorStickTargetPane(mArrow.getArrowBounding(dir)); + if (mCurrentlyHoldingItemSlot >= 0) { + s32 slot = mCurrentlyHoldingItemSlot; + s32 loc; + if (slot < SLOT_STOCK_OFFSET) { + loc = dLytDepositBoxCursor_c::LOC_POUCH; + } else { + loc = dLytDepositBoxCursor_c::LOC_STOCK; + slot -= SLOT_STOCK_OFFSET; + } + mCursor.updateSlot(loc, slot, LYT_CMN_PouchPotionHealthPlusPlusHalf, false); + } + } else if (mStock[STOCK_ACTIVE].getSavedArrowDirection() < dLytCommonArrow_c::ARROW_NONE) { + s32 dir = mStock[STOCK_ACTIVE].restoreArrowDirection(); + dCsBase_c::GetInstance()->setCursorStickTargetPane(mArrow.getArrowBounding(dir)); + if (mCurrentlyHoldingItemSlot >= 0) { + s32 slot = mCurrentlyHoldingItemSlot; + s32 loc; + if (slot < SLOT_STOCK_OFFSET) { + loc = dLytDepositBoxCursor_c::LOC_POUCH; + } else { + loc = dLytDepositBoxCursor_c::LOC_STOCK; + slot -= SLOT_STOCK_OFFSET; + } + mCursor.updateSlot(loc, slot, LYT_CMN_PouchPotionHealthPlusPlusHalf, false); + } + mArrow.setActiveArrow(dir); + if (!field_0x1952A) { + switch (dPadNav::getFSStickNavDirection()) { + case dPadNav::FS_STICK_UP_RIGHT: + case dPadNav::FS_STICK_RIGHT: + if (dir == dLytCommonArrow_c::ARROW_LEFT) { + returnCursorAfterCancellingArrow(0); + } + break; + case dPadNav::FS_STICK_DOWN_RIGHT: + if (dir == dLytCommonArrow_c::ARROW_LEFT) { + returnCursorAfterCancellingArrow(6); + } + break; + case dPadNav::FS_STICK_DOWN: + if (dir == dLytCommonArrow_c::ARROW_LEFT) { + if (mItemSellValue != 0) { + mArrow.setActiveArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToSell(); + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpBoundingItem12); + loadCursor(); + } + } else if (mCurrentlyHoldingItemSlot < 0) { + mArrow.setActiveArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToFinish(); + loadCursor(); + } + break; + case dPadNav::FS_STICK_LEFT: + case dPadNav::FS_STICK_UP_LEFT: + if (dir == dLytCommonArrow_c::ARROW_RIGHT) { + returnCursorAfterCancellingArrow(5); + } + break; + case dPadNav::FS_STICK_DOWN_LEFT: + if (dir == dLytCommonArrow_c::ARROW_RIGHT) { + returnCursorAfterCancellingArrow(11); + } + break; + } + } + } + } +} + +void dLytDepositMain_c::loadCursor() { + if (mCurrentlyHoldingItemSlot >= 0) { + s32 slot; + s32 loc; + s32 item; + if (mCurrentlyHoldingItemSlot < SLOT_STOCK_OFFSET) { + slot = mCurrentlyHoldingItemSlot; + item = mPouchItemIds[mCurrentlyHoldingItemSlot]; + loc = dLytDepositBoxCursor_c::LOC_POUCH; + } else { + slot = mCurrentlyHoldingItemSlot - SLOT_STOCK_OFFSET; + item = mStock[STOCK_ACTIVE].getActiveItem(); + loc = dLytDepositBoxCursor_c::LOC_STOCK; + } + mCursor.updateSlot(loc, slot, item, mStock[STOCK_ACTIVE].isModeSell()); + } +} + +void dLytDepositMain_c::returnCursorAfterCancellingArrow(s32 idx) { + mArrow.setActiveArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToArrow(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].selectNavTarget(idx); + mStock[STOCK_ACTIVE].setSavedArrowDirection(dLytCommonArrow_c::ARROW_NONE); + mStock[STOCK_ACTIVE].navigateToItem(); + if (mStock[STOCK_ACTIVE].getCurrentNavTarget() >= 0) { + dCsBase_c::GetInstance()->setCursorStickTargetPane(mpItemBoundings[mStock[STOCK_ACTIVE].getCurrentNavTarget()]); + } +} + +void dLytDepositMain_c::setPouchItemsVisible(bool visible) { + for (int i = 0; i < RING_NUM_ITEMS; i++) { + if (mPouchItemIds[i] < LYT_CMN_PouchPotionHealthPlusPlusHalf) { + mPouchItems[i].setVisible(visible); + } + } +} + void dLytDepositMain_c::checkForItemPickupOrDrop() { bool anyPickup = false; @@ -1621,8 +1834,8 @@ void dLytDepositMain_c::checkForItemPickupOrDrop() { if (mCurrentlyHoldingItemSlot < 0) { // Not holding an item... if (mCurrentPouchNavTarget >= 0 && mPouchItemIds[mCurrentPouchNavTarget] != LYT_CMN_PouchBlank4 && - // ... and picking up an item from the pouch mPouchItemIds[mCurrentPouchNavTarget] != LYT_CMN_PouchPotionHealthPlusPlusHalf) { + // ... and picking up an item from the pouch mCursorLocation = dLytDepositBoxCursor_c::LOC_POUCH; field_0x19540 = convertLytPouchSlot2(mCurrentPouchNavTarget); item = getPouchItemIdForIndex(mCurrentPouchNavTarget, false); @@ -1803,7 +2016,9 @@ void dLytDepositMain_c::checkForItemPickupOrDrop() { mStock[STOCK_ACTIVE].getPage()) { returnCursorAfterCancellingSell(0); } else { - returnCursorAfterCancellingSell((mCurrentlyHoldingItemSlot - SLOT_STOCK_OFFSET) % NUM_ICONS_PER_PAGE); + returnCursorAfterCancellingSell( + (mCurrentlyHoldingItemSlot - SLOT_STOCK_OFFSET) % NUM_ICONS_PER_PAGE + ); } } } @@ -1829,6 +2044,57 @@ void dLytDepositMain_c::checkForItemPickupOrDrop() { } } +s32 dLytDepositMain_c::getItemSellValueFrame(s32 value) { + if (value >= 100) { + return 1; + } else { + return 0; + } +} + +void dLytDepositMain_c::loadPageText() { + static wchar_t buf[4]; + swprintf(buf, ARRAY_LENGTH(buf), L"%1d/5", mStock[STOCK_ACTIVE].getPage() + 1); + mLyt.getTextBox("T_page_00")->setTextWithGlobalTextProcessor(buf, nullptr); + mLyt.getTextBox("T_pageS_00")->setTextWithGlobalTextProcessor(buf, nullptr); +} + +void dLytDepositMain_c::hideCursor() { + if (!dPadNav::isPointerVisible()) { + dPadNav::setCursorStickInvisible(); + dCsBase_c::GetInstance()->setCursorStickVisible(false); + if (mCurrentlyHoldingItemSlot >= 0) { + mCursor.setVisible(false); + } + } +} + +void dLytDepositMain_c::showCursor() { + if (!dPadNav::isPointerVisible()) { + dCsBase_c::GetInstance()->setCursorStickVisible(true); + } + dPadNav::setCursorStickVisible(); + if (mCurrentlyHoldingItemSlot >= 0) { + mCursor.setVisible(true); + } +} + +void dLytDepositMain_c::updateStockCursor() { + s32 navTarget = mStock[STOCK_ACTIVE].getCurrentNavTarget(); + if (navTarget < 0) { + navTarget += 12; + } + s32 slot = navTarget + mStock[STOCK_ACTIVE].getPage() * NUM_ICONS_PER_PAGE; + s32 item; + item = mStock[STOCK_ACTIVE].getActiveItem(); + if (mCurrentlyHoldingItemSlot >= 0 && slot == mCurrentlyHoldingItemSlot - SLOT_STOCK_OFFSET) { + item = LYT_CMN_PouchBlank4; + } else { + item = mStock[STOCK_ACTIVE].getItem(navTarget); + } + mCursor.updateSlot(dLytDepositBoxCursor_c::LOC_STOCK, slot, item, false); +} + STATE_DEFINE(dLytDeposit_c, None); STATE_DEFINE(dLytDeposit_c, In); STATE_DEFINE(dLytDeposit_c, Check); @@ -1985,6 +2251,8 @@ void dLytDeposit_c::finalizeState_Out() {} SPECIAL_BASE_PROFILE(LYT_DEPOSIT, dLytDeposit_c, fProfile::LYT_DEPOSIT, 0x2B9, 0); +dLytDeposit_c *dLytDeposit_c::sInstance; + bool dLytDeposit_c::build() { void *data = LayoutArcManager::GetInstance()->getLoadedData("Shop"); mResAcc.attach(data, ""); @@ -2039,7 +2307,7 @@ bool dLytDeposit_c::checkForNavRight() { } } - if (dPad::getDownTrigA() && mMain.getArrowDirection() == dLytDepositStock_c::ARROW_RIGHT) { + if (dPad::getDownTrigA() && mMain.getArrowDirection() == dLytCommonArrow_c::ARROW_RIGHT) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_SHOP_STK_STOCK_SELECT_TURN_PAGE_RIGHT); mScrollViaArrowButton = true; return true; @@ -2060,7 +2328,7 @@ bool dLytDeposit_c::checkForNavLeft() { } } - if (dPad::getDownTrigA() && mMain.getArrowDirection() == dLytDepositStock_c::ARROW_LEFT) { + if (dPad::getDownTrigA() && mMain.getArrowDirection() == dLytCommonArrow_c::ARROW_LEFT) { dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_SHOP_STK_STOCK_SELECT_TURN_PAGE_LEFT); mScrollViaArrowButton = true; return true; diff --git a/src/d/lyt/d_lyt_deposit_box_cursor.cpp b/src/d/lyt/d_lyt_deposit_box_cursor.cpp index 5471b3aa..f337a068 100644 --- a/src/d/lyt/d_lyt_deposit_box_cursor.cpp +++ b/src/d/lyt/d_lyt_deposit_box_cursor.cpp @@ -42,7 +42,7 @@ bool dLytDepositBoxCursor_c::build(d2d::ResAccIf_c *resAcc) { mpGetIconPane = mLyt.findPane("N_getIcon_00"); initIcon(); mIsVisible = false; - field_0x949 = false; + mIsSellMode = false; return true; } @@ -117,7 +117,7 @@ void dLytDepositBoxCursor_c::realizeNav() { s = 4; } else if (mItem == LYT_CMN_PouchPotionHealthPlusPlusHalf) { s = 5; - } else if (field_0x949) { + } else if (mIsSellMode) { s = 6; } else if (mItemLocation == LOC_POUCH) { // Flip the cursor for pouch slot 0 so that it's not above the screen edge @@ -148,9 +148,9 @@ void dLytDepositBoxCursor_c::realizeNav() { mAnm[DEPOSIT_BOX_CURSOR_ANIM_STICK_CURSOR].setAnimEnable(false); } -void dLytDepositBoxCursor_c::init(s32 location, s32 slot, s32 item, bool unk) { +void dLytDepositBoxCursor_c::init(s32 location, s32 slot, s32 item, bool isSell) { mItemLocation = location; - field_0x949 = unk; + mIsSellMode = isSell; s32 number; f32 durability; @@ -188,10 +188,10 @@ void dLytDepositBoxCursor_c::init(s32 location, s32 slot, s32 item, bool unk) { mIsVisible = true; } -void dLytDepositBoxCursor_c::updateSlot(s32 location, s32 slot, s32 item, bool unk2) { +void dLytDepositBoxCursor_c::updateSlot(s32 location, s32 slot, s32 item, bool isSell) { mItem = item; mItemLocation = location; - field_0x949 = unk2; + mIsSellMode = isSell; if (mItemLocation == LOC_POUCH) { mSlot = slot; } else { @@ -199,7 +199,7 @@ void dLytDepositBoxCursor_c::updateSlot(s32 location, s32 slot, s32 item, bool u } } -void dLytDepositBoxCursor_c::fn_801580A0() { - field_0x949 = true; +void dLytDepositBoxCursor_c::activateSell() { + mIsSellMode = true; realizeNav(); } diff --git a/src/d/lyt/d_lyt_deposit_stock.cpp b/src/d/lyt/d_lyt_deposit_stock.cpp index fc00aaa5..8702be8d 100644 --- a/src/d/lyt/d_lyt_deposit_stock.cpp +++ b/src/d/lyt/d_lyt_deposit_stock.cpp @@ -4,6 +4,7 @@ #include "d/d_pad_nav.h" #include "d/d_rumble.h" #include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_arrow.h" #include "d/lyt/d_lyt_common_icon_item.h" #include "d/lyt/d_lyt_common_icon_item_maps.h" #include "d/lyt/d_lyt_util_items.h" @@ -99,14 +100,14 @@ bool dLytDepositStock_c::build(d2d::ResAccIf_c *resAcc) { field_0x684C = true; field_0x684E = false; - mArrowDirection = ARROW_NONE; + mArrowDirection = dLytCommonArrow_c::ARROW_NONE; mIsModePouch = false; mIsModeSell = false; mIsModeSort = false; mIsModeFinish = false; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; navigateToItem(); @@ -278,7 +279,7 @@ void dLytDepositStock_c::fn_80156530(bool unk) { mIsModeSort = false; } mIsModeFinish = false; - if (mArrowDirection >= ARROW_NONE) { + if (mArrowDirection >= dLytCommonArrow_c::ARROW_NONE) { handleSpecialNavMode(); } } @@ -324,7 +325,7 @@ void dLytDepositStock_c::handleNavOrPoint() { break; case dPadNav::FS_STICK_RIGHT: if (target % 6 == 5) { - navigateToArrow(ARROW_RIGHT); + navigateToArrow(dLytCommonArrow_c::ARROW_RIGHT); saveArrowDirection(); dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); } else { @@ -352,7 +353,7 @@ void dLytDepositStock_c::handleNavOrPoint() { break; case dPadNav::FS_STICK_LEFT: if (target % 6 == 0) { - navigateToArrow(ARROW_LEFT); + navigateToArrow(dLytCommonArrow_c::ARROW_LEFT); saveArrowDirection(); dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0); } else { @@ -374,7 +375,7 @@ void dLytDepositStock_c::handleNavOrPoint() { } if (selectIcon) { - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; if (mCurrentNavTarget != nextTarget) { if (mCurrentNavTarget >= 0) { mIcons[mCurrentNavTarget].setOff(); @@ -612,7 +613,7 @@ void dLytDepositStock_c::pickUpItem(s32 slot, bool unk) { void dLytDepositStock_c::navigateToPouch() { mIsModePouch = true; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } void dLytDepositStock_c::navigateToSell() { @@ -621,7 +622,7 @@ void dLytDepositStock_c::navigateToSell() { } mIsModeSell = true; mNavMode = NAV_SELL; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } void dLytDepositStock_c::navigateToSort() { @@ -630,7 +631,7 @@ void dLytDepositStock_c::navigateToSort() { } mIsModeSort = true; mNavMode = NAV_SORT; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } void dLytDepositStock_c::navigateToFinish() { @@ -639,7 +640,7 @@ void dLytDepositStock_c::navigateToFinish() { } mIsModeFinish = true; mNavMode = NAV_FINISH; - mSavedArrowDirection = ARROW_NONE; + mSavedArrowDirection = dLytCommonArrow_c::ARROW_NONE; } void dLytDepositStock_c::saveArrowDirection() { @@ -648,13 +649,13 @@ void dLytDepositStock_c::saveArrowDirection() { void dLytDepositStock_c::navigateToArrow(s32 arrowDirection) { mArrowDirection = arrowDirection; - if (mArrowDirection < ARROW_NONE) { + if (mArrowDirection < dLytCommonArrow_c::ARROW_NONE) { mNavMode = NAV_ARROW; } } s32 dLytDepositStock_c::restoreArrowDirection() { - if (mSavedArrowDirection < ARROW_NONE && mArrowDirection >= ARROW_NONE) { + if (mSavedArrowDirection < dLytCommonArrow_c::ARROW_NONE && mArrowDirection >= dLytCommonArrow_c::ARROW_NONE) { navigateToArrow(mSavedArrowDirection); } return mArrowDirection; @@ -670,7 +671,7 @@ void dLytDepositStock_c::handleSpecialNavMode() { case NAV_SORT: navigateToSort(); break; case NAV_FINISH: navigateToFinish(); break; case NAV_ARROW: - if (mArrowDirection < ARROW_NONE) { + if (mArrowDirection < dLytCommonArrow_c::ARROW_NONE) { saveArrowDirection(); } break; diff --git a/src/d/lyt/d_lyt_pause.cpp b/src/d/lyt/d_lyt_pause.cpp index 9c541073..f4577177 100644 --- a/src/d/lyt/d_lyt_pause.cpp +++ b/src/d/lyt/d_lyt_pause.cpp @@ -290,7 +290,7 @@ void dLytPauseMain_c::executeState_Wait() { mRingToggleRequest = false; mStateMgr.changeState(StateID_Ring); } - mpArrow->unk(); + mpArrow->setActiveArrow(mpArrow->getPointedAtArrow()); } } void dLytPauseMain_c::finalizeState_Wait() {} @@ -874,7 +874,7 @@ nw4r::lyt::Bounding *dLytPauseMgr_c::getArrowBounding(int idx) const { } void dLytPauseMgr_c::setSelectedArrowBounding(int idx) { - mMain.getArrow()->setField_0x6B8(idx); + mMain.getArrow()->setActiveArrow(idx); } void dLytPauseMgr_c::setSelection(dLytPauseMgr_c::SelectionType_e type, u16 id, bool restricted) { @@ -957,8 +957,8 @@ bool dLytPauseMgr_c::checkChangeDisp() { } nav = true; } - s32 arrowPane = mMain.getArrow()->getField_0x6B8(); - if (arrowPane != dLytCommonArrow_c::ARROW_NONE && dPad::getDownTrigA() && mMain.getArrow()->fn_80168760()) { + s32 arrowPane = mMain.getArrow()->getActiveArrow(); + if (arrowPane != dLytCommonArrow_c::ARROW_NONE && dPad::getDownTrigA() && mMain.getArrow()->triggerArrowPress()) { if (arrowPane == dLytCommonArrow_c::ARROW_LEFT) { mIsNavLeft = true; } else { diff --git a/src/d/lyt/d_lyt_pause_disp_00.cpp b/src/d/lyt/d_lyt_pause_disp_00.cpp index 29c68db2..97f09055 100644 --- a/src/d/lyt/d_lyt_pause_disp_00.cpp +++ b/src/d/lyt/d_lyt_pause_disp_00.cpp @@ -10,6 +10,7 @@ #include "d/flag/itemflag_manager.h" #include "d/flag/storyflag_manager.h" #include "d/lyt/d2d.h" +#include "d/lyt/d_lyt_common_arrow.h" #include "d/lyt/d_lyt_common_icon_item_maps.h" #include "d/lyt/d_lyt_control_game.h" #include "d/lyt/d_lyt_pause.h" @@ -427,8 +428,8 @@ bool dLytPauseDisp00_c::build() { } } - mpBoundings[PAUSE_DISP_00_BOUNDING_ARROW_LEFT] = pauseMgr->getArrowBounding(0); - mpBoundings[PAUSE_DISP_00_BOUNDING_ARROW_RIGHT] = pauseMgr->getArrowBounding(1); + mpBoundings[PAUSE_DISP_00_BOUNDING_ARROW_LEFT] = pauseMgr->getArrowBounding(dLytCommonArrow_c::ARROW_LEFT); + mpBoundings[PAUSE_DISP_00_BOUNDING_ARROW_RIGHT] = pauseMgr->getArrowBounding(dLytCommonArrow_c::ARROW_RIGHT); u8 songLifetreeStatus = getSongLifeTreeStatus(); if (songLifetreeStatus == SONG_LIFETREE_HAS_SOTH) { @@ -2010,9 +2011,11 @@ bool dLytPauseDisp00_c::isPointingAtRingIcon() { nw4r::math::MTX34 mtx = mLyt.findPane("N_ringIcon_00")->GetGlobalMtx(); nw4r::math::VEC3 v(0.0f, 0.0f, 0.0f); MTXMultVec(mtx, v, v); - // TODO I hate vectors - mVec2_c pos(v.x, v.y); - if (pos.squareDistanceTo(csPos) < radiusSq) { + // TODO maybe fake + mVec2_c pos2 = mVec2_c(v.x, v.y); + mVec2_c dist = pos2; + dist -= csPos; + if (dist.squaredLength() < radiusSq) { ret = true; }