d_lyt_deposit (main) wip

This commit is contained in:
robojumper
2025-12-23 09:40:44 +01:00
parent b6f53bad32
commit f31f539b7b
7 changed files with 617 additions and 144 deletions
+4
View File
@@ -43,6 +43,10 @@ public:
return field_0x6B8;
}
bool isChangingState() const {
return mIsChangingState;
}
nw4r::lyt::Bounding *getArrowBounding(s32 idx) const {
return mpBoundings[idx];
}
+116 -1
View File
@@ -1,14 +1,129 @@
#ifndef D_LYT_DEPOSIT_H
#define D_LYT_DEPOSIT_H
class dLytDeposit_c {
#include "d/d_cursor_hit_check.h"
#include "d/d_pad_nav.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_base.h"
#include "d/lyt/d_lyt_common_arrow.h"
#include "d/lyt/d_lyt_common_icon_item.h"
#include "d/lyt/d_lyt_deposit_box_cursor.h"
#include "d/lyt/d_lyt_deposit_stock.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
#include "nw4r/lyt/lyt_bounding.h"
#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"
class dLytDepositMain_c {
public:
dLytDepositMain_c();
virtual ~dLytDepositMain_c() {
dPadNav::setNavEnabled(false, false);
}
bool build(d2d::ResAccIf_c *resAcc);
private:
void setPouchItemsVisible(bool visible);
void fn_802AA7E0();
void fn_802AD370();
void fn_802A9E80();
void fn_802AAFC0();
void fn_802AB210();
void fn_802ACAF0();
void fn_802ABB60();
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeNone);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeIn);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeCheck);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeChange);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeArrangement);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeReverseChange);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeScroll);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeRecycle);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeArrangementOut);
STATE_FUNC_DECLARE(dLytDepositMain_c, ModeOut);
/* 0x00004 */ UI_STATE_MGR_DECLARE(dLytDepositMain_c);
/* 0x00040 */ d2d::LytBase_c mLyt;
/* 0x000D0 */ d2d::AnmGroup_c mAnm[36];
/* 0x009D0 */ nw4r::lyt::Bounding *mpBoundingBox;
/* 0x009D4 */ nw4r::lyt::Bounding *mpBoundingChoices;
/* 0x009D8 */ nw4r::lyt::Bounding *mpBoundingCleanUp;
/* 0x009DC */ nw4r::lyt::Bounding *mpBoundingItem12;
/* 0x009E0 */ nw4r::lyt::Bounding *mpItemBoundings[12];
/* 0x00A10 */ nw4r::lyt::Bounding *mpRingBoundings[8];
/* 0x00A30 */ nw4r::lyt::Pane *mpPaneABtn;
/* 0x00A34 */ nw4r::lyt::Pane *mpPanePrice;
/* 0x00A38 */ nw4r::lyt::Pane *mpPaneCommonArrow;
/* 0x00A3C */ dWindow_c *mpWindows[2];
/* 0x00A44 */ dTextBox_c *mpSizeBoxes[2];
/* 0x00A4C */ dCursorHitCheckLyt_c mCsHitCheck;
u8 _0x00002[0x8];
/* 0x00A7C */ dLytDepositStock_c mStock[3];
/* 0x143F0 */ dLytDepositBoxCursor_c mCursor;
/* 0x14D48 */ dLytCommonIconItem_c mPouchItems[8];
/* 0x18D88 */ dLytCommonArrow_c mArrow;
/* 0x19458 */ d2d::SubPaneList mSubpaneList1;
/* 0x19464 */ d2d::SubPaneListNode mNodes1[3];
/* 0x19494 */ d2d::SubPaneList mSubpaneList2;
/* 0x194A0 */ d2d::SubPaneListNode mNodes2[8];
/* 0x19520 */ bool field_0x19520;
/* 0x19521 */ bool field_0x19521;
/* 0x19522 */ bool field_0x19522;
/* 0x19523 */ bool field_0x19523;
/* 0x19524 */ bool field_0x19524;
/* 0x19525 */ bool field_0x19525;
/* 0x19526 */ bool field_0x19526;
/* 0x19527 */ bool field_0x19527;
/* 0x19528 */ bool field_0x19528;
/* 0x19529 */ bool field_0x19529;
/* 0x1952A */ bool field_0x1952A;
/* 0x1952B */ bool field_0x1952B;
/* 0x1952C */ bool field_0x1952C;
/* 0x19530 */ UNKWORD field_0x19530;
/* 0x19534 */ UNKWORD field_0x19534;
/* 0x19538 */ UNKWORD field_0x19538;
/* 0x1953C */ UNKWORD field_0x1953C;
/* 0x19540 */ UNKWORD field_0x19540;
/* 0x19544 */ UNKWORD field_0x19544;
/* 0x19548 */ UNKWORD field_0x19548;
/* 0x1954C */ UNKWORD field_0x1954C;
/* 0x19550 */ UNKWORD field_0x19550;
/* 0x19554 */ UNKWORD field_0x19554;
/* 0x19558 */ u8 mPouchItemIds[8];
};
class dLytDeposit_c : public dLytBase_c {
public:
dLytDeposit_c() : mStateMgr(*this) {}
static dLytDeposit_c *GetInstance() {
return sInstance;
}
private:
static dLytDeposit_c *sInstance;
STATE_FUNC_DECLARE(dLytDeposit_c, None);
STATE_FUNC_DECLARE(dLytDeposit_c, In);
STATE_FUNC_DECLARE(dLytDeposit_c, Check);
STATE_FUNC_DECLARE(dLytDeposit_c, Change);
STATE_FUNC_DECLARE(dLytDeposit_c, Arrangement);
STATE_FUNC_DECLARE(dLytDeposit_c, ReverseChange);
STATE_FUNC_DECLARE(dLytDeposit_c, Scroll);
STATE_FUNC_DECLARE(dLytDeposit_c, Recycle);
STATE_FUNC_DECLARE(dLytDeposit_c, ArrangementOut);
STATE_FUNC_DECLARE(dLytDeposit_c, Out);
/* 0x08C */ UI_STATE_MGR_DECLARE(dLytDeposit_c);
/* 0x0C8 */ d2d::ResAccIf_c mResAcc;
/* 0x438 */ dLytDepositMain_c mMain;
};
#endif
+2
View File
@@ -5,6 +5,7 @@
#include "d/lyt/d_lyt_common_icon_item.h"
#include "nw4r/lyt/lyt_pane.h"
// made up name
class dLytDepositBoxCursor_c : public d2d::dSubPane {
public:
enum ItemLocation_e {
@@ -13,6 +14,7 @@ public:
};
public:
dLytDepositBoxCursor_c() : mSlot(-1), field_0x950(0), mItemLocation(0) {}
/* vt 0x0C */ virtual bool build(d2d::ResAccIf_c *resAcc) override;
/* vt 0x10 */ virtual bool remove() override;
/* vt 0x14 */ virtual bool execute() override;
+6 -2
View File
@@ -43,7 +43,8 @@ public:
void nextPage(bool unk);
void prevPage(bool unk);
void fn_80156530(bool unk);
void navigateToItem();
void navigateToSell();
void navigateToSort();
void navigateToFinish();
@@ -62,12 +63,15 @@ public:
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dLytDepositStock_c);
s32 getCurrentNavTarget() const {
return mCurrentNavTarget;
}
private:
static const s32 NUM_ICONS_PER_PAGE = 12;
static const s32 NUM_PAGES = 5;
void initIcons();
void navigateToItem();
void loadItems(s32 hiddenSlot);
void loadIcon(s32 idx);
void navigateToPouch();