d_a_obj_cdoor OK, d_a_obj_wchain mostly done, work on d_a_alink_wolf (#2047)

This commit is contained in:
Caroline Madsen
2024-01-25 12:24:38 -05:00
committed by GitHub
parent 84ceaf33a0
commit 28d580da8c
43 changed files with 961 additions and 1923 deletions
+1
View File
@@ -108,6 +108,7 @@ public:
mpFirstChild = NULL;
}
void* getUserArea() { return mpUserData; }
void setUserArea(u32 area) { mpUserData = (void*)area; }
virtual int entry(J3DDrawBuffer*);
+1 -1
View File
@@ -31,7 +31,7 @@ public:
}
/* 0x00 */ J3DLightInfo mInfo;
/* 0x34 */ u8 field_0x34[64];
/* 0x34 */ GXLightObj mLightObj;
}; // Size = 0x74
struct J3DTextureSRTInfo {
+4
View File
@@ -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();
}
+1
View File
@@ -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]; }
+1
View File
@@ -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;
+4
View File
@@ -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 */
@@ -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 */
@@ -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 */