diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2023-08-27 01:39:15 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-27 11:39:15 +0300 |
| commit | d369e2908cbe20165b5a2aaf6875807ffcc5da6c (patch) | |
| tree | 6140870345fef8d79bfe2e0e1fccca192478c243 /include | |
| parent | 73cdbf549582522f293c45462322e3ec3ed33bf6 (diff) | |
obj_master_sword wip, fmobj mostly done, obj_usaku OK, some BG doc (#1897)
* obj_master_sword work, fix tag_chgrestart
* fmobj mostly done
* some bg documentation
* d_a_obj_usaku OK
* remove asm
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/bg/d_bg_s_movebg_actor.h | 7 | ||||
| -rw-r--r-- | include/d/bg/d_bg_w.h | 104 | ||||
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 1 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_bg_obj/d_a_bg_obj.h | 2 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h | 17 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h | 2 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h | 14 | ||||
| -rw-r--r-- | include/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h | 2 |
8 files changed, 96 insertions, 53 deletions
diff --git a/include/d/bg/d_bg_s_movebg_actor.h b/include/d/bg/d_bg_s_movebg_actor.h index af76e7b194..8ae508d0d3 100644 --- a/include/d/bg/d_bg_s_movebg_actor.h +++ b/include/d/bg/d_bg_s_movebg_actor.h @@ -9,12 +9,13 @@ typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo const&, bool, cX class dBgS_MoveBgActor : public fopAc_ac_c { public: - /* 0x568 */ dBgW* field_0x568; - /* 0x56C */ Mtx field_0x56c; + /* 0x568 */ dBgW* mpBgW; + /* 0x56C */ Mtx mBgMtx; /* 80078624 */ dBgS_MoveBgActor(); /* 800786C8 */ int MoveBGCreateHeap(); - /* 800787BC */ int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32, Mtx*); + /* 800787BC */ int MoveBGCreate(char const* i_arcName, int i_dzb_id, + MoveBGActor_SetFunc i_setFunc, u32 i_heapSize, Mtx* i_bgMtx); /* 800788DC */ int MoveBGDelete(); /* 80078950 */ int MoveBGExecute(); diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index 11551e1dd8..88d1bb33a6 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -2,6 +2,8 @@ #define D_BG_D_BG_W_H #include "SSystem/SComponent/c_m3d_g_aab.h" +#include "SSystem/SComponent/c_xyz.h" +#include "SSystem/SComponent/c_sxyz.h" #include "d/bg/d_bg_w_base.h" #include "dolphin/mtx/mtx.h" #include "dolphin/types.h" @@ -24,7 +26,7 @@ public: class cBgW_RwgElm { public: - /* 0x0 */ u16 field_0x0; + /* 0x0 */ u16 m_next; /* 800791C4 */ cBgW_RwgElm(); /* 800791D4 */ virtual ~cBgW_RwgElm(); @@ -46,66 +48,78 @@ public: /* 0x4 */ cM3dGAab m_aab; }; -struct cBgW_unk_b_data { - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u16 field_0x2; - /* 0x4 */ u16 field_0x4; +struct cBgW_BlkElm { + /* 0x0 */ u16 m_roof_idx; + /* 0x2 */ u16 m_wall_idx; + /* 0x4 */ u16 m_gnd_idx; }; // Size: 0x6 -struct dzb_tri_data { - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u16 field_0x2; - /* 0x4 */ u16 field_0x4; +struct cBgD_Tri_t { + /* 0x0 */ u16 m_vtx_idx0; + /* 0x2 */ u16 m_vtx_idx1; + /* 0x4 */ u16 m_vtx_idx2; /* 0x6 */ u16 m_id; /* 0x8 */ u16 m_grp; }; // Size: 0xA -struct dzb_ti_data { +struct cBgD_Ti_t { /* 0x0 */ u32 m_info0; /* 0x4 */ u32 m_info1; /* 0x8 */ u32 m_info2; - /* 0xC */ u8 field_0xc[0x10 - 0xC]; + /* 0xC */ u32 m_passFlag; }; -struct dzb_b_data { +struct cBgD_Blk_t { /* 0x0 */ u16 field_0x0; }; -struct dzb_tree_data { - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u16 field_0x2; +struct cBgD_Tree_t { + /* 0x0 */ u16 m_flag; + /* 0x2 */ u16 m_parent_id; /* 0x4 */ u16 m_id[8]; }; // Size: 0x14 -struct dzb_g_data { - /* 0x00 */ u8 field_0x0[0x24 - 0x0]; - /* 0x24 */ u16 field_0x24; - /* 0x26 */ u16 field_0x26; - /* 0x28 */ u16 field_0x28; - /* 0x2A */ u16 field_0x2a; - /* 0x2C */ u8 field_0x2c[0x2E - 0x2C]; - /* 0x2E */ u16 field_0x2e; +struct cBgD_Grp_t { + /* 0x00 */ char* m_name; + /* 0x04 */ cXyz m_scale; + /* 0x10 */ csXyz m_rotation; + /* 0x18 */ cXyz m_translation; + /* 0x24 */ u16 m_parent; + /* 0x26 */ u16 m_next_sibling; + /* 0x28 */ u16 m_first_child; + /* 0x2A */ u16 m_room_id; + /* 0x2C */ u16 m_first_vtx_idx; + /* 0x2E */ u16 m_tree_idx; /* 0x30 */ u32 m_info; }; // Size: 0x34 struct cBgD_t { /* 0x00 */ int m_v_num; // vertex num - /* 0x04 */ Vec* m_v_tbl; // vertex table + /* 0x04 */ cBgD_Vtx_t* m_v_tbl; // vertex table /* 0x08 */ int m_t_num; // triangle num - /* 0x0C */ dzb_tri_data* m_t_tbl; // triangle table - /* 0x10 */ int m_b_num; // spatial? - /* 0x14 */ dzb_b_data* m_b_tbl; - /* 0x18 */ int m_tree_num; // face group? - /* 0x1C */ dzb_tree_data* m_tree_tbl; - /* 0x20 */ int m_g_num; // string group? - /* 0x24 */ dzb_g_data* m_g_tbl; - /* 0x28 */ int m_ti_num; // surface property? - /* 0x2C */ dzb_ti_data* m_ti_tbl; - /* 0x30 */ int field_0x30; + /* 0x0C */ cBgD_Tri_t* m_t_tbl; // triangle table + /* 0x10 */ int m_b_num; + /* 0x14 */ cBgD_Blk_t* m_b_tbl; + /* 0x18 */ int m_tree_num; + /* 0x1C */ cBgD_Tree_t* m_tree_tbl; + /* 0x20 */ int m_g_num; + /* 0x24 */ cBgD_Grp_t* m_g_tbl; + /* 0x28 */ int m_ti_num; + /* 0x2C */ cBgD_Ti_t* m_ti_tbl; + /* 0x30 */ int mFlags; }; class cBgW : public dBgW_Base { public: + enum Flags_e { + MOVE_BG_e = 0x1, + NO_CALC_VTX_e = 0x2, + NO_VTX_TBL_e = 0x10, + GLOBAL_e = 0x20, + CBGW_UNK_FLAG_40 = 0x40, + LOCK_e = 0x80, + }; + /* 80079294 */ cBgW(); /* 800793A4 */ void FreeArea(); /* 800793C4 */ void GlobalVtx(); @@ -118,7 +132,7 @@ public: /* 80079BDC */ void MakeNodeTreeRp(int); /* 80079CC4 */ void MakeNodeTreeGrpRp(int); /* 80079DF0 */ void MakeNodeTree(); - /* 80079F38 */ bool Set(cBgD_t*, u32, f32 (*)[3][4]); + /* 80079F38 */ bool Set(cBgD_t* pdzb, u32 flags, Mtx* pbase_mtx); /* 8007A200 */ bool RwgLineCheck(u16, cBgS_LinChk*); /* 8007A3A0 */ bool LineCheckRp(cBgS_LinChk*, int); /* 8007A52C */ bool LineCheckGrpRp(cBgS_LinChk*, int, int); @@ -204,27 +218,27 @@ public: u32 GetOldInvMtx(Mtx m) { return PSMTXInverse(m_inv_mtx, m); } MtxP GetBaseMtxP() { return pm_base; } - bool ChkNoCalcVtx() { return field_0x88 & 2; } + bool ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; } bool ChkFlush() { return field_0x91 & 8; } - void SetLock() { field_0x88 |= 0x80; } + void SetLock() { mFlags |= LOCK_e; } bool ChkRoofRegist() { return field_0x91 & 4;} public: - /* 0x18 */ MtxP pm_base; + /* 0x18 */ MtxP pm_base; // Model Matrix /* 0x1C */ Mtx m_inv_mtx; - /* 0x4C */ Mtx field_0x4c; - /* 0x7C */ cXyz field_0x7c; - /* 0x88 */ u8 field_0x88; - /* 0x89 */ u8 field_0x89; + /* 0x4C */ Mtx m_mtx; + /* 0x7C */ cXyz mTransVel; + /* 0x88 */ u8 mFlags; + /* 0x89 */ u8 mNeedsFullTransform; /* 0x8A */ u8 field_0x8a[6]; - /* 0x90 */ u8 field_0x90; + /* 0x90 */ u8 mMoveCounter; /* 0x91 */ u8 field_0x91; - /* 0x92 */ u16 field_0x92; + /* 0x92 */ u16 m_rootGrpIdx; /* 0x94 */ cBgW_TriElm* pm_tri; /* 0x98 */ cBgW_RwgElm* pm_rwg; /* 0x9C */ cBgD_Vtx_t* pm_vtx_tbl; /* 0xA0 */ cBgD_t* pm_bgd; - /* 0xA4 */ cBgW_unk_b_data* field_0xa4; + /* 0xA4 */ cBgW_BlkElm* pm_blk; /* 0xA8 */ cBgW_GrpElm* pm_grp; /* 0xAC */ cBgW_NodeTree* pm_node_tree; }; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 31a9823092..f4518266cb 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -140,6 +140,7 @@ enum fopAcM_CARRY { /* 0x04 */ fopAcM_CARRY_SIDE = 4, /* 0x08 */ fopAcM_CARRY_TYPE_8 = 8, /* 0x10 */ fopAcM_CARRY_LIGHT = 16, // guess based on context + /* 0x30 */ fopAcM_CARRY_UNK_30 = 0x30, }; inline u32 fopAcM_CheckCarryType(fopAc_ac_c* actor, fopAcM_CARRY type) { diff --git a/include/rel/d/a/d_a_bg_obj/d_a_bg_obj.h b/include/rel/d/a/d_a_bg_obj/d_a_bg_obj.h index add0773ce6..8f2852e80b 100644 --- a/include/rel/d/a/d_a_bg_obj/d_a_bg_obj.h +++ b/include/rel/d/a/d_a_bg_obj/d_a_bg_obj.h @@ -90,7 +90,7 @@ public: /* 0x5A8 */ J3DModel* field_0x5a8[2][2]; /* 0x5B8 */ mDoExt_btkAnm* field_0x5b8[2][2]; /* 0x5C8 */ mDoExt_brkAnm* field_0x5c8[2][2]; - /* 0x5D8 */ dBgW* mpBgW; + /* 0x5D8 */ dBgW* mpBgW2; /* 0x5DC */ dCcD_Stts mStts; /* 0x618 */ dCcD_Tri mTris[4]; /* 0xB88 */ dCcD_Cyl mCyl; diff --git a/include/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h b/include/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h index 2ca1f07ff8..18474ac383 100644 --- a/include/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h +++ b/include/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h @@ -1,6 +1,21 @@ #ifndef D_A_OBJ_FMOBJ_H #define D_A_OBJ_FMOBJ_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class dBgW; + +class obj_fmobj_class : public fopAc_ac_c { +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ u8 field_0x570; + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ s16 field_0x578; + /* 0x57A */ u8 field_0x57A[0x57E - 0x57A]; + /* 0x57E */ s16 field_0x57e[2]; + /* 0x582 */ u8 field_0x582[0x588 - 0x582]; + /* 0x588 */ Mtx mBgMtx; + /* 0x5B8 */ dBgW* mpBgW; +}; #endif /* D_A_OBJ_FMOBJ_H */ diff --git a/include/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h b/include/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h index e0d1572d43..0822de6541 100644 --- a/include/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h +++ b/include/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h @@ -1,6 +1,6 @@ #ifndef D_A_OBJ_MASTER_SWORD_H #define D_A_OBJ_MASTER_SWORD_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" #endif /* D_A_OBJ_MASTER_SWORD_H */ diff --git a/include/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h b/include/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h index a9a72fd416..3a2b658320 100644 --- a/include/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h +++ b/include/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h @@ -1,6 +1,18 @@ #ifndef D_A_OBJ_USAKU_H #define D_A_OBJ_USAKU_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class dBgW; + +class obj_usaku_class : public fopAc_ac_c { +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ u8 field_0x570; + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ u8 field_0x578[0x580 - 0x578]; + /* 0x580 */ Mtx mBgMtx; + /* 0x5B0 */ dBgW* mpBgW; +}; #endif /* D_A_OBJ_USAKU_H */ diff --git a/include/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h b/include/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h index a00f154155..a64afb0f26 100644 --- a/include/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h +++ b/include/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h @@ -12,7 +12,7 @@ public: /* 80D568B8 */ s32 execute(); /* 80D56A84 */ s32 _delete(); - /* 0x0568 */ cXyz field_0x568[4]; + /* 0x0568 */ cXyz mVertices[4]; }; STATIC_ASSERT(sizeof(daTagChgRestart_c) == 0x598); |
