Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1526,12 +1526,12 @@ def MatchingFor(*versions) -> bool:
ActorRel(MatchingFor("GZ2E01"), "d_a_andsw2"),
ActorRel(NonMatching, "d_a_bd"),
ActorRel(MatchingFor("GZ2E01"), "d_a_canoe"),
ActorRel(NonMatching, "d_a_cstaF"),
ActorRel(MatchingFor("GZ2E01"), "d_a_cstaF"),
ActorRel(NonMatching, "d_a_demo_item"),
ActorRel(MatchingFor("GZ2E01"), "d_a_door_bossL1"),
ActorRel(Equivalent, "d_a_e_dn"), # weak func order
ActorRel(Equivalent, "d_a_e_fm"),
ActorRel(NonMatching, "d_a_e_ga"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_ga"),
ActorRel(NonMatching, "d_a_e_hb"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_nest"),
ActorRel(NonMatching, "d_a_e_rd"),
Expand Down Expand Up @@ -1574,7 +1574,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mgate"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_nameplate"),
ActorRel(NonMatching, "d_a_obj_ornament_cloth"),
ActorRel(NonMatching, "d_a_obj_rope_bridge"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_rope_bridge"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sWallShutter"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_stick"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_stoneMark"),
Expand Down
70 changes: 37 additions & 33 deletions include/d/actor/d_a_cstaF.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,57 +15,61 @@
*/
class daCstaF_c : public dBgS_MoveBgActor {
public:
/* 804DDB48 */ void checkCoverModel();
/* 804DDBB4 */ void create();
/* 804DDB48 */ BOOL checkCoverModel();
/* 804DDBB4 */ int create();
/* 804DE2F8 */ ~daCstaF_c();
/* 804DE558 */ void setRoomInfo();
/* 804DE5F0 */ void setMatrix();
/* 804DE698 */ void posMove();
/* 804DEB60 */ void setCollision();
/* 804DEC14 */ void setAnime();
/* 804DF0D8 */ void initBrk(u16);
/* 804DF0D8 */ BOOL initBrk(u16);
/* 804DF150 */ void initStopBrkBtk();
/* 804DF1A4 */ void initStartBrkBtk();

/* 804DD978 */ virtual int CreateHeap();
/* 804DF37C */ virtual int Execute(f32 (**)[3][4]);
/* 804DF6E4 */ virtual int Draw();

cXyz& getBallPos() { return mBallPos; }
cXyz& getBallPos() { return m_ballPos; }
void onPlayerRide() { m_isPlayerRide = true; }

static u8 const m_bckIdxTable[16];
struct BckTbl {
u16 idx[4];
};
static const BckTbl m_bckIdxTable[];

private:
/* 0x5A0 */ const char* mResName;
/* 0x5A4 */ request_of_phase_process_class mPhase;
/* 0x5AC */ J3DModel* field_0x5ac;
/* 0x5B0 */ mDoExt_McaMorfSO* field_0x5b0;
/* 0x5B4 */ J3DModel* field_0x5b4;
/* 0x5A0 */ const char* m_arcName;
/* 0x5A4 */ request_of_phase_process_class m_phase;
/* 0x5AC */ J3DModel* mp_model;
/* 0x5B0 */ mDoExt_McaMorfSO* mp_modelMorf;
/* 0x5B4 */ J3DModel* mp_coverModel;
/* 0x5B8 */ J3DAnmTextureSRTKey* m_coverBtk;
/* 0x5BC */ J3DAnmTevRegKey* m_coverBrk;
/* 0x5C0 */ mDoExt_btkAnm field_0x5c0;
/* 0x5D8 */ mDoExt_brkAnm field_0x5d8;
/* 0x5F0 */ dBgS_AcchCir mAcchCir[4];
/* 0x6F0 */ dBgS_StatueAcch mAcch;
/* 0x8C8 */ dCcD_Stts mCcStts;
/* 0x904 */ dCcD_Cyl mCylCc;
/* 0xA40 */ Z2Creature mSound;
/* 0xAD0 */ dPaPo_c field_0xad0;
/* 0xB08 */ s8 mReverb;
/* 0xB09 */ u8 field_0xb09;
/* 0xB0A */ u8 field_0xb0a;
/* 0xB0B */ u8 field_0xb0b;
/* 0xB0C */ u8 field_0xb0c;
/* 0xB0D */ u8 mIsPlayerRide;
/* 0xB0E */ u8 field_0xb0e;
/* 0xB0F */ u8 field_0xb0f;
/* 0xB10 */ u8 mCoverVanishFlg;
/* 0xB12 */ s16 field_0xb12;
/* 0xB14 */ u8 field_0xb14[4];
/* 0xB18 */ u32 mShadowKey;
/* 0xB1C */ f32 field_0xb1c;
/* 0xB20 */ cXyz field_0xb20;
/* 0xB2C */ cXyz mBallPos;
/* 0x5C0 */ mDoExt_btkAnm m_btk;
/* 0x5D8 */ mDoExt_brkAnm m_brk;
/* 0x5F0 */ dBgS_AcchCir m_acchCir[4];
/* 0x6F0 */ dBgS_StatueAcch m_acch;
/* 0x8C8 */ dCcD_Stts m_cc_stts;
/* 0x904 */ dCcD_Cyl m_cc_cyl;
/* 0xA40 */ Z2Creature m_sound;
/* 0xAD0 */ dPaPo_c m_poly_eff;
/* 0xB08 */ s8 m_reverb;
/* 0xB09 */ u8 m_type;
/* 0xB0A */ u8 m_action;
/* 0xB0B */ u8 m_swbit;
/* 0xB0C */ u8 m_isStartBrkBtkInit;
/* 0xB0D */ u8 m_isPlayerRide;
/* 0xB0E */ u8 m_mapToolID;
/* 0xB0F */ u8 m_isStop;
/* 0xB10 */ u8 m_coverVanishFlg;
/* 0xB12 */ s16 m_eventId;
/* 0xB14 */ u8 unk_0xb14[4];
/* 0xB18 */ u32 m_shadowKey;
/* 0xB1C */ f32 m_lastGroundH;
/* 0xB20 */ cXyz m_playerPos;
/* 0xB2C */ cXyz m_ballPos;
};

#endif /* D_A_CSTAF_H */
35 changes: 29 additions & 6 deletions include/d/actor/d_a_e_ga.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,19 @@
#include "f_op/f_op_actor_mng.h"

struct ga_s {
/* 804FBAB8 */ ~ga_s();
/* 804FBAF4 */ ga_s();
/* 0x00 */ J3DModel* model;
/* 0x04 */ cXyz position;
/* 0x10 */ cXyz pos_target;
/* 0x1C */ cXyz field_0x1c;
/* 0x28 */ csXyz rotation;
/* 0x2E */ csXyz rot_target;
/* 0x34 */ u8 field_0x34[0x38 - 0x34];
/* 0x38 */ f32 size;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ s8 initialized;
/* 0x41 */ u8 field_0x41[0x44 - 0x41];
/* 0x44 */ s16 field_0x44;
/* 0x46 */ u8 move_timer;
};

/**
Expand All @@ -16,16 +27,28 @@ struct ga_s {
* @details
*
*/
class e_ga_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x4d7c - 0x5ac];
class e_ga_class {
public:
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0568 */ request_of_phase_process_class phase;
/* 0x0570 */ u8 prm0;
/* 0x0571 */ u8 prm1;
/* 0x0572 */ u8 prm2;
/* 0x0574 */ ga_s ga_s[256];
/* 0x4D74 */ int ga_num;
/* 0x4D78 */ u8 HIOInit;
/* 0x4D79 */ u8 initialized;
};

STATIC_ASSERT(sizeof(e_ga_class) == 0x4d7c);

class daE_Ga_HIO_c {
public:
/* 804FB0EC */ daE_Ga_HIO_c();
/* 804FBAF8 */ ~daE_Ga_HIO_c();
/* 804FBAF8 */ virtual ~daE_Ga_HIO_c() {}

/* 0x4 */ s8 id;
/* 0x8 */ f32 base_size;
};


Expand Down
39 changes: 20 additions & 19 deletions include/d/actor/d_a_obj_dust.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,32 @@ class daObjDust_c : public dBgS_MoveBgActor {
/* 80BE24F8 */ int Check_RideOn();
/* 80BE2708 */ void initBaseMtx();
/* 80BE2734 */ void setBaseMtx();
/* 80BE2A70 */ int CreateHeap();

inline int create();
/* 80BE2A70 */ inline int CreateHeap();

/* 80BE2AE8 */ int Create();
/* 80BE2B30 */ int Execute(Mtx**);
/* 80BE2E9C */ int Draw();
/* 80BE2F40 */ int Delete();

inline int create();

/* 0x5a0 */ f32 field_0x5a0;
/* 0x5a4 */ f32 field_0x5a4;
/* 0x5a8 */ f32 field_0x5a8;
/* 0x5ac */ s16 field_0x5ac;
/* 0x5ae */ u8 field_0x5ae[0x5c4 - 0x5ae];
/* 0x5c4 */ s16 field_0x5c4;
/* 0x5c6 */ s16 field_0x5c6;
/* 0x5c8 */ s16 field_0x5c8;
/* 0x5ca */ u8 field_0x5ca[0x5cc - 0x5ca];
/* 0x5cc */ s16 field_0x5cc;
/* 0x5ce */ u8 field_0x5ce[0x5d0 - 0x5ce];
/* 0x5d0 */ f32 field_0x5d0;
/* 0x5d4 */ u8 field_0x5d4[0x5e1 - 0x5d4];
/* 0x5e1 */ bool mYmbFlag;
/* 0x5e4 */ dCcD_Stts mStts;
/* 0x5A0 */ f32 mRideOscillationSpeed;
/* 0x5A4 */ f32 mRideIntensity;
/* 0x5A8 */ f32 mRideBounce;
/* 0x5AC */ s16 mRideAngleAmplitude;
/* 0x5AE */ u8 field_0x5ae[0x5BC - 0x5AE];
/* 0x5BC */ csXyz field_0x5bc;
/* 0x5C2 */ u8 field_0x5c2[0x5C4 - 0x5C2];
/* 0x5C4 */ s16 mRideOscillationPhaseX;
/* 0x5C6 */ s16 mRideOscillationPhaseZ;
/* 0x5C8 */ csXyz mRideAngle;
/* 0x5D0 */ f32 mOffsetY;
/* 0x5D4 */ cXyz field_0x5d4;
/* 0x5E0 */ u8 field_0x5e0;
/* 0x5E1 */ bool mYmbFlag;
/* 0x5E4 */ dCcD_Stts mStts;
/* 0x620 */ J3DModel* mpModel;
/* 0x624 */ u8 field_0x624[4];
/* 0x624 */ u8 field_0x624[0x628 - 0x624];
/* 0x628 */ request_of_phase_process_class mPhaseReq;
/* 0x630 */ bool mRideOnFlag;
/* 0x634 */ dBgS_AcchCir mAcchCir;
Expand Down
52 changes: 41 additions & 11 deletions include/d/actor/d_a_obj_rope_bridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
#define D_A_OBJ_ROPE_BRIDGE_H

#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"

/**
* @ingroup actors-objects
Expand All @@ -11,34 +13,62 @@
* @details
*
*/
class daObjRBridge_c : public fopAc_ac_c {
class daObjRBridge_c : public dBgS_MoveBgActor {
public:
/* 80595E38 */ void initBaseMtx();
/* 80595ED8 */ void setBaseMtx();
/* 80595F84 */ void checkE3Special();
/* 80595F84 */ BOOL checkE3Special();
/* 80595FE0 */ void setStPos();
/* 8059616C */ void initLinePos();
/* 805963C4 */ void setLinePos();
/* 80596768 */ void getLinePosSt(cXyz*);
/* 805967E4 */ void getLinePosBrg(int, cXyz*);
/* 8059689C */ void checkTight();
/* 805969FC */ void Create();
/* 80596B88 */ void CreateHeap();
/* 80596DEC */ void create1st();
/* 80596EBC */ void Execute(f32 (**)[3][4]);
/* 8059689C */ BOOL checkTight();
/* 80596DEC */ int create1st();
/* 80596FA8 */ void action();
/* 8059715C */ void init_wait();
/* 80597170 */ void mode_wait();
/* 805973BC */ void init_cut();
/* 805973E4 */ void mode_cut();
/* 805975E8 */ void init_end();
/* 805975F4 */ void mode_end();
/* 805975F8 */ void Draw();
/* 805977D0 */ void checkHimoCulling();
/* 805978BC */ void Delete();
/* 805977D0 */ BOOL checkHimoCulling();

/* 80596B88 */ virtual int CreateHeap();
/* 805969FC */ virtual int Create();
/* 80596EBC */ virtual int Execute(Mtx**);
/* 805975F8 */ virtual int Draw();
/* 805978BC */ virtual int Delete();

u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getSwbit2() { return fopAcM_GetParamBit(this, 24, 8); }
u8 getType() { return fopAcM_GetParamBit(this, 16, 2); }

private:
/* 0x568 */ u8 field_0x568[0xb6c - 0x568];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ request_of_phase_process_class mRopePhase;
/* 0x5B0 */ J3DModel* mpBrgModel;
/* 0x5B4 */ J3DModel* mpStopModel;
/* 0x5B8 */ dCcD_Stts mCcStts;
/* 0x5F4 */ dCcD_Cps mCcCps[2];
/* 0x87C */ dCcD_Sph mCcSph;
/* 0x9B4 */ dCcD_Sph mCcSph2;
/* 0xAEC */ u8 field_0xAEC[0xAF0 - 0xAEC];
/* 0xAF0 */ u8 mType;
/* 0xAF1 */ u8 mRopeSegmentNum;
/* 0xAF2 */ u8 mMode;
/* 0xAF3 */ s8 mFallTimer;
/* 0xAF4 */ u8 field_0xaf4;
/* 0xAF5 */ u8 mHideRope;
/* 0xAF8 */ f32 field_0xaf8;
/* 0xAFC */ mDoExt_3DlineMat1_c* mpLineMat[2];
/* 0xB04 */ cXyz* field_0xb04;
/* 0xB08 */ u8 field_0xb08[2];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe do the [end - start] for this padding field? 2 is kinda random

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is an actual 2 byte array not padding

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I'm dumb, Didn't expand the correct file when searching for it

/* 0xB0C */ cXyz mStopPos;
/* 0xB18 */ s16 field_0xb18;
/* 0xB1A */ s16 field_0xb1a;
/* 0xB1C */ Mtx mMtx;
/* 0xB4C */ Z2SoundObjSimple mSound;
};

STATIC_ASSERT(sizeof(daObjRBridge_c) == 0xb6c);
Expand Down
3 changes: 2 additions & 1 deletion include/f_op/f_op_actor_mng.h
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ f32 fopAcM_searchActorDistanceXZ2(const fopAc_ac_c* i_actorA, const fopAc_ac_c*

BOOL fopAcM_rollPlayerCrash(fopAc_ac_c const* i_crashActor, f32 i_range, u32 i_flag, f32 i_max_y,
f32 i_min_y, BOOL param_5, f32 param_6);
s32 fopAcM_checkCullingBox(f32[3][4], f32, f32, f32, f32, f32, f32);
bool fopAcM_checkCullingBox(f32[3][4], f32, f32, f32, f32, f32, f32);
s32 fopAcM_cullingCheck(const fopAc_ac_c* i_actor);
s32 fopAcM_orderTalkEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, u16 i_priority, u16 i_flag);
s32 fopAcM_orderTalkItemBtnEvent(u16 i_eventType, fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB,
Expand Down Expand Up @@ -829,6 +829,7 @@ class fopAcM_lc_c {
static dBgS_ObjLinChk* getLineCheck() { return &mLineCheck; }
static bool checkMoveBG() { return dComIfG_Bgsp().ChkMoveBG(mLineCheck); }
static cXyz* getCrossP() { return mLineCheck.GetCrossP(); }
static cXyz& getCross() { return mLineCheck.GetCross(); }
static bool lineCheck(const cXyz*, const cXyz*, const fopAc_ac_c*);
static bool getTriPla(cM3dGPla* o_tri) { return dComIfG_Bgsp().GetTriPla(mLineCheck, o_tri); }
static s32 getWallCode() { return dComIfG_Bgsp().GetWallCode(mLineCheck); }
Expand Down
Loading