summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-04-12 23:53:55 +0200
committerrobojumper <robojumper@gmail.com>2025-04-21 21:51:02 +0200
commit27c8a5dac5f9d2299be461649fa344a955c298bf (patch)
tree1ad482efc4905e28a6c065362e9ca30b7b03cab8 /include
parentd76002aaf5d3e7176033c590f43dcec42c662479 (diff)
d_lyt_meter_cross_btn OK
Diffstat (limited to 'include')
-rw-r--r--include/d/a/d_a_player.h7
-rw-r--r--include/d/d_message.h8
-rw-r--r--include/d/lyt/d_lyt_unknowns.h8
-rw-r--r--include/d/lyt/meter/d_lyt_meter.h2
-rw-r--r--include/d/lyt/meter/d_lyt_meter_cross_btn.h82
-rw-r--r--include/d/lyt/meter/d_lyt_meter_minus_btn.h2
-rw-r--r--include/d/lyt/meter/d_lyt_meter_plus_btn.h4
-rw-r--r--include/s/s_State.hpp2
8 files changed, 97 insertions, 18 deletions
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index d3b88a9b..2adfe26a 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -5,6 +5,7 @@
#include "d/a/d_a_base.h"
#include "d/a/d_a_itembase.h"
#include "d/a/obj/d_a_obj_base.h"
+#include "m/m3d/m_anmmatclr.h"
#include "m/m_allocator.h"
#include "m/m_angle.h"
#include "m/m_mtx.h"
@@ -248,6 +249,12 @@ public:
/* 0x36C */ int mCurrentAction; // TODO (Document Enum)
/* 0x370 */ u8 _370[0x3C8 - 0x370];
/* 0x3C8 */ nw4r::g3d::ResFile mSwordRes;
+ /* 0x3CC */ u8 _0x3CC[0x5B4 - 0x3CC];
+ /* 0x5B4 */ m3d::anmMatClr_c mAnmMatClr;
+
+ f32 getAnmMatClrFrame() const {
+ return mAnmMatClr.getFrame(0);
+ }
inline bool checkFlags0x340(u32 mask) const {
return (someFlags_0x340 & mask) != 0;
diff --git a/include/d/d_message.h b/include/d/d_message.h
index cd075bb0..b7ec7bc4 100644
--- a/include/d/d_message.h
+++ b/include/d/d_message.h
@@ -36,6 +36,10 @@ public:
return field_0x329;
}
+ s32 getField_0x32C() const {
+ return field_0x32C;
+ }
+
void setField_0x329(bool v) {
field_0x329 = v;
}
@@ -107,7 +111,9 @@ private:
/* 0x329 */ bool field_0x329;
/* 0x32A */ bool field_0x32A;
- /* 0x32B */ u8 _0x32B[0x334 - 0x32B];
+ /* 0x32B */ u8 field_0x32B;
+ /* 0x32C */ s32 field_0x32C;
+ /* 0x330 */ u8 _0x330[0x334 - 0x330];
/* 0x334 */ u32 mMinigameResultPoints;
/* 0x338 */ u32 mMinigameTime;
diff --git a/include/d/lyt/d_lyt_unknowns.h b/include/d/lyt/d_lyt_unknowns.h
index 11c3bb90..7763b4e5 100644
--- a/include/d/lyt/d_lyt_unknowns.h
+++ b/include/d/lyt/d_lyt_unknowns.h
@@ -36,6 +36,11 @@ public:
DO_BUTTON_REMOCON_BG = 5,
DO_BUTTON_NUN_BG = 6,
+ DO_BUTTON_CROSS_T = 7,
+ DO_BUTTON_CROSS_D = 8,
+ DO_BUTTON_CROSS_L = 9,
+ DO_BUTTON_CROSS_R = 10,
+
DO_BUTTON_PLUS = 11,
};
@@ -73,6 +78,9 @@ public:
}
static Action_e convertDoButton(s32);
+
+ static void fn_8010EC10(Action_e, bool);
+ static void fn_8010ED50(Action_e, bool);
private:
diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h
index dadff933..4a68fb4a 100644
--- a/include/d/lyt/meter/d_lyt_meter.h
+++ b/include/d/lyt/meter/d_lyt_meter.h
@@ -188,7 +188,7 @@ public:
}
}
- static bool getItemSelect0x75B2() {
+ static bool getItemSelect0x75A2() {
if (sInstance != nullptr) {
return sInstance->mMeter.mItemSelect.getField_0x57A2();
} else {
diff --git a/include/d/lyt/meter/d_lyt_meter_cross_btn.h b/include/d/lyt/meter/d_lyt_meter_cross_btn.h
index f12c5f3a..571de597 100644
--- a/include/d/lyt/meter/d_lyt_meter_cross_btn.h
+++ b/include/d/lyt/meter/d_lyt_meter_cross_btn.h
@@ -2,23 +2,53 @@
#define D_LYT_METER_CROSS_BTN_H
#include "d/lyt/d2d.h"
+#include "d/lyt/d_textbox.h"
+#include "d/lyt/d_window.h"
+#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"
-#include "s/s_StateMgr.hpp"
// Size 0x80
class dLytMeterCrossBtnParts_c {
+ friend class dLytMeterCrossBtn_c;
+
public:
- dLytMeterCrossBtnParts_c(): mStateMgr(*this, sStateID::null) {}
+ dLytMeterCrossBtnParts_c() : mStateMgr(*this, sStateID::null) {}
~dLytMeterCrossBtnParts_c() {}
+
+ void init();
+ void execute(bool bIsVisible);
+
+ bool isActive() const {
+ return *mStateMgr.getStateID() == StateID_Active;
+ }
+
private:
+ void setMessage(s32 id);
+
STATE_FUNC_DECLARE(dLytMeterCrossBtnParts_c, Wait);
STATE_FUNC_DECLARE(dLytMeterCrossBtnParts_c, On);
STATE_FUNC_DECLARE(dLytMeterCrossBtnParts_c, Active);
STATE_FUNC_DECLARE(dLytMeterCrossBtnParts_c, Off);
-
+
+ STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterCrossBtnParts_c);
+
/* 0x00 */ UI_STATE_MGR_DECLARE(dLytMeterCrossBtnParts_c);
- /* 0x3C */ u32 padding[17];
+ /* 0x3C */ d2d::LytBase_c *mpLyt;
+ /* 0x40 */ d2d::AnmGroup_c *mpAnm[2];
+ /* 0x48 */ dTextBox_c *mpTextBoxes[2];
+ /* 0x50 */ dWindow_c *mpWindow;
+ /* 0x54 */ dTextBox_c *mpSizeBox;
+ /* 0x58 */ nw4r::lyt::Pane *mpOwnerPane;
+ /* 0x5C */ s32 mIndex;
+ /* 0x60 */ s32 field_0x60;
+ /* 0x64 */ s32 field_0x64;
+ /* 0x68 */ s32 field_0x68;
+ /* 0x6C */ s32 field_0x6C;
+ /* 0x70 */ s32 field_0x70;
+ /* 0x74 */ s32 field_0x74;
+ /* 0x78 */ s32 mOnDelay;
+ /* 0x7C */ u8 field_0x7C;
};
class dLytMeterCrossBtn_c : public d2d::dSubPane {
@@ -27,28 +57,56 @@ public:
virtual bool build(d2d::ResAccIf_c *resAcc) override;
virtual bool remove() override;
virtual bool execute() override;
- virtual nw4r::lyt::Pane *getPane() override;
- virtual d2d::LytBase_c *getLyt() override;
- virtual const char *getName() const override;
+ virtual nw4r::lyt::Pane *getPane() override {
+ return mLyt.getLayout()->GetRootPane();
+ }
+ virtual d2d::LytBase_c *getLyt() override {
+ return &mLyt;
+ }
+ virtual const char *getName() const override {
+ return mLyt.getName();
+ }
virtual ~dLytMeterCrossBtn_c() {}
s32 getField_0x620() const {
return field_0x620;
}
+
+ void setOwnerPane(nw4r::lyt::Pane *pane);
+ bool fn_800FA730() const;
+
private:
STATE_FUNC_DECLARE(dLytMeterCrossBtn_c, Wait);
STATE_FUNC_DECLARE(dLytMeterCrossBtn_c, ToUse);
STATE_FUNC_DECLARE(dLytMeterCrossBtn_c, ToUnuse);
STATE_FUNC_DECLARE(dLytMeterCrossBtn_c, Unuse);
- /* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterCrossBtn_c);
- /* 0x040 */ d2d::dLytSub mLyt;
- /* 0x0D8 */ d2d::AnmGroup_c mAnmGroups[12];
- /* 0x3D8 */ u8 field_0x3D8[0x420 - 0x3D8];
+ STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterMinusBtn_c);
+
+ /* 0x00C */ UI_STATE_MGR_DECLARE(dLytMeterCrossBtn_c);
+ /* 0x044 */ d2d::dLytSub mLyt;
+ /* 0x0D8 */ d2d::AnmGroup_c mAnm[12];
+ /* 0x3D8 */ nw4r::lyt::Pane *mpPane;
+ /* 0x3DC */ nw4r::lyt::Pane *mpOwnerPane;
+ /* 0x3E0 */ dTextBox_c *mpTextboxes[8];
+ /* 0x400 */ dWindow_c *mpWindows[4];
+ /* 0x410 */ dTextBox_c *mpSizeBoxes[4];
/* 0x420 */ dLytMeterCrossBtnParts_c mParts[4];
/* 0x620 */ s32 field_0x620;
- /* 0x624 */ u8 padding[0x640 - 0x624];
+ /* 0x624 */ s32 field_0x624;
+ /* 0x628 */ u16 field_0x628;
+ /* 0x62C */ s32 mCallCount0;
+ /* 0x630 */ s32 mCallCount1;
+ /* 0x634 */ u8 field_0x634;
+ /* 0x635 */ u8 field_0x635;
+ /* 0x636 */ u8 field_0x636;
+ /* 0x637 */ u8 field_0x637;
+ /* 0x638 */ u8 field_0x638;
+ /* 0x639 */ u8 field_0x639;
+ /* 0x63A */ u8 field_0x63A;
+ /* 0x63B */ u8 field_0x63B;
+ /* 0x63C */ u8 field_0x63C;
};
#endif
diff --git a/include/d/lyt/meter/d_lyt_meter_minus_btn.h b/include/d/lyt/meter/d_lyt_meter_minus_btn.h
index 40a697a6..2e1a2e1a 100644
--- a/include/d/lyt/meter/d_lyt_meter_minus_btn.h
+++ b/include/d/lyt/meter/d_lyt_meter_minus_btn.h
@@ -147,7 +147,7 @@ private:
STATE_FUNC_DECLARE(dLytMeterMinusBtn_c, DemoMove);
STATE_FUNC_DECLARE(dLytMeterMinusBtn_c, DemoOut);
- STATE_MGR_DECLARE_UTIL_ISSTATE(dLytMeterMinusBtn_c);
+ STATE_MGR_DEFINE_UTIL_ISSTATE(dLytMeterMinusBtn_c);
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterMinusBtn_c);
/* 0x0008 */ dLytMeterMinusBtnMenuIcon_c mIcon[8];
diff --git a/include/d/lyt/meter/d_lyt_meter_plus_btn.h b/include/d/lyt/meter/d_lyt_meter_plus_btn.h
index 111a3f0c..29e03ede 100644
--- a/include/d/lyt/meter/d_lyt_meter_plus_btn.h
+++ b/include/d/lyt/meter/d_lyt_meter_plus_btn.h
@@ -39,8 +39,8 @@ private:
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dLytMeterPlusBtn_c);
- /* 0x004 */ UI_STATE_MGR_DECLARE(dLytMeterPlusBtn_c);
- /* 0x040 */ d2d::dLytSub mLyt;
+ /* 0x00C */ UI_STATE_MGR_DECLARE(dLytMeterPlusBtn_c);
+ /* 0x044 */ d2d::dLytSub mLyt;
/* 0x0D8 */ d2d::AnmGroup_c mAnm[3];
/* 0x198 */ nw4r::lyt::Pane *mpPane[1];
/* 0x19C */ nw4r::lyt::Pane *mpOwnerPane;
diff --git a/include/s/s_State.hpp b/include/s/s_State.hpp
index 8e68ed91..58a198d2 100644
--- a/include/s/s_State.hpp
+++ b/include/s/s_State.hpp
@@ -39,7 +39,7 @@
mStateMgr.changeState(value); \
}
-#define STATE_MGR_DECLARE_UTIL_ISSTATE(class_name) \
+#define STATE_MGR_DEFINE_UTIL_ISSTATE(class_name) \
bool isState(const sFStateID_c<class_name> &value) const { \
return *mStateMgr.getStateID() == value; \
}