summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2024-01-25 12:24:38 -0500
committerGitHub <noreply@github.com>2024-01-25 19:24:38 +0200
commit4640b758c9cdb3772028bba345df635292133bf1 (patch)
tree499f7faf0f491a2f7fb8f067abb353d14b975237 /include
parentba44ade90c3f04f5c163278fcadc4361c263acbb (diff)
d_a_obj_cdoor OK, d_a_obj_wchain mostly done, work on d_a_alink_wolf (#2047)
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J3DGraphBase/J3DPacket.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h2
-rw-r--r--include/d/com/d_com_inf_game.h4
-rw-r--r--include/d/d_drawlist.h1
-rw-r--r--include/f_op/f_op_actor_mng.h1
-rw-r--r--include/m_Do/m_Do_audio.h4
-rw-r--r--include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h63
-rw-r--r--include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h84
8 files changed, 157 insertions, 3 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h
index cb853c9c74..e43349aeb8 100644
--- a/include/JSystem/J3DGraphBase/J3DPacket.h
+++ b/include/JSystem/J3DGraphBase/J3DPacket.h
@@ -108,6 +108,7 @@ public:
mpFirstChild = NULL;
}
+ void* getUserArea() { return mpUserData; }
void setUserArea(u32 area) { mpUserData = (void*)area; }
virtual int entry(J3DDrawBuffer*);
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index 06fb45e5b0..e0e23f6379 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -31,7 +31,7 @@ public:
}
/* 0x00 */ J3DLightInfo mInfo;
- /* 0x34 */ u8 field_0x34[64];
+ /* 0x34 */ GXLightObj mLightObj;
}; // Size = 0x74
struct J3DTextureSRTInfo {
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 64b06fdf3b..2848f26ea5 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -3780,6 +3780,10 @@ inline void dComIfGd_setListZxlu() {
g_dComIfG_gameInfo.drawlist.setXluListZxlu();
}
+inline J3DDrawBuffer* dComIfGd_getOpaList() {
+ return g_dComIfG_gameInfo.drawlist.getOpaList();
+}
+
inline J3DDrawBuffer* dComIfGd_getOpaListBG() {
return g_dComIfG_gameInfo.drawlist.getOpaListBG();
}
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index 5be233aa32..9ece698705 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -305,6 +305,7 @@ public:
void setView(view_class* view) { mView = view; }
void setWindow(dDlst_window_c* window) { mWindow = window; }
void setViewport(view_port_class* port) { mViewport = port; }
+ J3DDrawBuffer* getOpaList() { return mDrawBuffers[DB_OPA_LIST]; }
J3DDrawBuffer* getOpaListFilter() { return mDrawBuffers[DB_LIST_FILTER]; }
J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; }
J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; }
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 4835731cbf..0db75df02e 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -75,6 +75,7 @@ class dBgS_RoofChk;
class fopAcM_rc_c {
public:
static dBgS_RoofChk* getRoofCheck() { return (dBgS_RoofChk*)&mRoofCheck; }
+ static f32 getRoofY() { return mRoofY; }
static bool roofCheck(const cXyz*);
static u8 mRoofCheck[80];
static f32 mRoofY;
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index b52fbd7f7b..ad40461c91 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -227,4 +227,8 @@ inline void mDoAud_startLv3WaterSe(s8 i_reverb) {
g_mEnvSeMgr.startLv3WaterSe(i_reverb);
}
+inline void mDoAud_setHyrulSewerOpen(bool i_close) {
+ g_mEnvSeMgr.setHyrulSewerOpen(i_close);
+}
+
#endif /* M_DO_M_DO_AUDIO_H */
diff --git a/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h b/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h
index ad32cfb2ef..cedd0725b8 100644
--- a/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h
+++ b/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h
@@ -1,6 +1,67 @@
#ifndef D_A_OBJ_CDOOR_H
#define D_A_OBJ_CDOOR_H
-#include "dolphin/types.h"
+#include "SSystem/SComponent/c_phase.h"
+#include "d/bg/d_bg_s_movebg_actor.h"
+
+class daObjCdoor_c : public dBgS_MoveBgActor {
+public:
+ enum Mode {
+ /* 0 */ MODE_WAIT,
+ /* 1 */ MODE_OPEN,
+ /* 2 */ MODE_CLOSE,
+ };
+
+ enum Action {
+ /* 0 */ ACT_WAIT,
+ /* 1 */ ACT_ORDER_EVENT,
+ /* 2 */ ACT_EVENT,
+ /* 3 */ ACT_DEAD,
+ };
+
+ /* 80BC729C */ virtual ~daObjCdoor_c();
+ /* 80BC6DB8 */ int CreateHeap();
+ /* 80BC6F30 */ cPhs__Step create();
+ /* 80BC73C0 */ void setMatrix();
+ /* 80BC7424 */ int Execute(Mtx**);
+ /* 80BC7478 */ void execCdoor();
+ /* 80BC7630 */ void execWgate();
+ /* 80BC775C */ void init_modeWait();
+ /* 80BC7768 */ void modeWait();
+ /* 80BC776C */ void init_modeOpen();
+ /* 80BC77BC */ void modeOpen();
+ /* 80BC78B0 */ void init_modeClose();
+ /* 80BC7900 */ void modeClose();
+ /* 80BC7A14 */ void event_proc_call();
+ /* 80BC7AD0 */ void actionWait();
+ /* 80BC7B34 */ void actionOrderEvent();
+ /* 80BC7B9C */ void actionEvent();
+ /* 80BC7BF8 */ void actionDead();
+ /* 80BC7C04 */ int Draw();
+
+ void setAction(u8 i_action) { mAction = i_action; }
+ int getSwitchNum() { return mSw; }
+ void setChainID(u32 i_id) { mChainID = i_id; }
+
+ /* 0x5A0 */ request_of_phase_process_class mPhaseReq;
+ /* 0x5A8 */ J3DModel* mpModel;
+ /* 0x5AC */ bool mEnd;
+ /* 0x5AD */ bool mCamLock;
+ /* 0x5AE */ u8 mType;
+ /* 0x5AF */ u8 field_0x5af;
+ /* 0x5B0 */ u8 mIsOpen;
+ /* 0x5B1 */ u8 field_0x5b1[3];
+ /* 0x5B4 */ s16 mEventID;
+ /* 0x5B6 */ u8 mMapToolID;
+ /* 0x5B7 */ u8 mAction;
+ /* 0x5B8 */ u32 mChainID;
+ /* 0x5BC */ int mSw;
+ /* 0x5C0 */ mDoExt_bckAnm mOpenAnm;
+ /* 0x5DC */ mDoExt_bckAnm mCloseAnm;
+ /* 0x5F8 */ u8 field_0x5f8;
+ /* 0x5F9 */ u8 mMode;
+};
+
+STATIC_ASSERT(sizeof(daObjCdoor_c) == 0x5FC);
#endif /* D_A_OBJ_CDOOR_H */
diff --git a/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h b/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h
index 2b521f14cd..85dd94beb1 100644
--- a/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h
+++ b/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h
@@ -1,6 +1,88 @@
#ifndef D_A_OBJ_WCHAIN_H
#define D_A_OBJ_WCHAIN_H
-#include "dolphin/types.h"
+#include "SSystem/SComponent/c_phase.h"
+#include "f_op/f_op_actor.h"
+
+#ifdef NONMATCHING
+class daObjWchain_shape_c : public J3DPacket {
+public:
+ /* 80D31418 */ void draw();
+ /* 80D318C0 */ ~daObjWchain_shape_c() {}
+};
+#else
+// To avoid duplicating vtables, the inheritance here has been removed until the rest of the TU matches
+class daObjWchain_shape_c {
+public:
+ /* 80D31418 */ void draw();
+ // The destructor should be inline, but it gets put in the wrong place
+ /* 80D318C0 */ ~daObjWchain_shape_c();
+
+ u8 fake[0x10];
+};
+#endif
+
+class daObjWchain_c : public fopAc_ac_c {
+public:
+ /* 80D2FEF8 */ int createHeap();
+ /* 80D2FFBC */ cPhs__Step create();
+ /* 80D30434 */ ~daObjWchain_c();
+ /* 80D30534 */ void setMatrix();
+ /* 80D305E4 */ s16 getChainAngleZ(cXyz*, int);
+ /* 80D3080C */ void setChainPos();
+ /* 80D310AC */ int execute();
+ /* 80D31810 */ int draw();
+
+ GXLightObj* getLightObj() { return &mTevStr.mLightObj.mLightObj; }
+ J3DModelData* getChainModelData() { return mpChainModelData; }
+ cXyz* getChainPos() { return mChainPos; }
+ csXyz* getChainAngle() { return mChainAngle; }
+ s16* getChainAngleZ() { return mChainRotation; }
+ cXyz& getJumpAimPos() { return mEyePos; }
+ cXyz& getTopPos() { return mTopPos; }
+ cXyz& getRoofPos() { return mRoofPos; }
+ f32 getPullLength() { return mPullLength; }
+ void setPullLength(f32 i_length) { mPullLength = i_length; }
+ f32 getInitOutLength() { return mInitOutLength; }
+ f32 getRealRoofY() { return mRealRoofY; }
+ f32 getMoveDisRate() { return mPullLength * 0.01f; }
+ f32 getLastOffset() { return 6.0f; }
+ f32 getDownOffset() { return 100.0f; }
+ f32 getSwitchOffset() { return 94.0f; }
+ u8 getSwitchNum() { return mSw; }
+ void onRide() { mRide = true; }
+ void offRide() { mRide = false; }
+ bool checkRideFlg() { return mRide; }
+ void onEndFlg() { mEnd = true; }
+ bool getEndFlg() { return mEnd; }
+ void onNowSwitchFlg() { mDown = mNowSwitch = true; }
+
+ /* 0x568 */ request_of_phase_process_class mPhaseReq;
+ /* 0x570 */ J3DModel* mpHandleModel;
+ /* 0x574 */ J3DModelData* mpChainModelData;
+ /* 0x578 */ daObjWchain_shape_c mShape;
+ /* 0x588 */ cXyz mTopPos;
+ /* 0x594 */ cXyz mChainPos[0x10];
+ /* 0x654 */ cXyz mChainSpeed[0x10];
+ /* 0x714 */ csXyz mChainAngle[0x10];
+ /* 0x774 */ bool mRide;
+ /* 0x775 */ bool mNowSwitch;
+ /* 0x776 */ bool mEnd;
+ /* 0x777 */ bool mRidePrev;
+ /* 0x778 */ u8 mSw;
+ /* 0x779 */ u8 mRepeatable;
+ /* 0x77A */ bool mReset;
+ /* 0x77B */ bool mDown;
+ /* 0x77C */ s16 mHandleRotation;
+ /* 0x77E */ u16 field_0x77e;
+ /* 0x780 */ s16 mChainRotation[0x10];
+ /* 0x7A0 */ f32 mPullLength;
+ /* 0x7A4 */ f32 mInitOutLength;
+ /* 0x7A8 */ f32 field_0x7a8;
+ /* 0x7AC */ f32 mRealRoofY;
+ /* 0x7B0 */ cXyz mRoofPos;
+};
+
+STATIC_ASSERT(sizeof(daObjWchain_c) == 0x7BC);
#endif /* D_A_OBJ_WCHAIN_H */