diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-01-25 12:24:38 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-25 19:24:38 +0200 |
| commit | 4640b758c9cdb3772028bba345df635292133bf1 (patch) | |
| tree | 499f7faf0f491a2f7fb8f067abb353d14b975237 /include | |
| parent | ba44ade90c3f04f5c163278fcadc4361c263acbb (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.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DStruct.h | 2 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 4 | ||||
| -rw-r--r-- | include/d/d_drawlist.h | 1 | ||||
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 1 | ||||
| -rw-r--r-- | include/m_Do/m_Do_audio.h | 4 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h | 63 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h | 84 |
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 */ |
