mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-09 12:37:18 -04:00
d_a_obj_cdoor OK, d_a_obj_wchain mostly done, work on d_a_alink_wolf (#2047)
This commit is contained in:
@@ -108,6 +108,7 @@ public:
|
||||
mpFirstChild = NULL;
|
||||
}
|
||||
|
||||
void* getUserArea() { return mpUserData; }
|
||||
void setUserArea(u32 area) { mpUserData = (void*)area; }
|
||||
|
||||
virtual int entry(J3DDrawBuffer*);
|
||||
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
}
|
||||
|
||||
/* 0x00 */ J3DLightInfo mInfo;
|
||||
/* 0x34 */ u8 field_0x34[64];
|
||||
/* 0x34 */ GXLightObj mLightObj;
|
||||
}; // Size = 0x74
|
||||
|
||||
struct J3DTextureSRTInfo {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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]; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user