diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2023-01-15 11:10:23 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-15 12:10:23 -0700 |
| commit | 5e05ae38f8541fddd79341bdcf75488b07ca9122 (patch) | |
| tree | 57e2806b6e48586e0d9bbde6d221236888137d04 /include | |
| parent | c90f9dfde9a3ee5dfa13475e2199ee491671507b (diff) | |
d_a_b_oh2 / d_a_obj_web0 / d_a_obj_web1 (#243)
* d_a_obj_web0 / d_a_obj_web1
* remove asm
* d_a_set_bgobj
* d_cc_s work
* remove asm
* build fix
* fix tp.py progress check and rel sha1 check
* clean up some bg files
Diffstat (limited to 'include')
28 files changed, 421 insertions, 120 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index a6537a1bf2..2211663f84 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -80,6 +80,7 @@ public: void setUserArea(u32 area) { mUserArea = area; } u32 getUserArea() const { return mUserArea; } Vec* getBaseScale() { return &mBaseScale; } + void setAnmMtx(int i, Mtx m) { mMtxBuffer->setAnmMtx(i, m); } // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } diff --git a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h index ee49731289..c709985d7c 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h +++ b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h @@ -25,6 +25,7 @@ public: /* 80326EF0 */ void calcBBoardMtx(); MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; } + void setAnmMtx(int i, Mtx m) { PSMTXCopy(m, (MtxP)mpAnmMtx[i]); } void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; } u32* getCurrentViewNoPtr() { return &mCurrentViewNo; } diff --git a/include/SSystem/SComponent/c_bg_w.h b/include/SSystem/SComponent/c_bg_w.h index 4e755a9cee..54f9682c01 100644 --- a/include/SSystem/SComponent/c_bg_w.h +++ b/include/SSystem/SComponent/c_bg_w.h @@ -13,7 +13,7 @@ public: /* 802681D4 */ bool ChkUsed() const; /* 802681C0 */ void Regist(int); - /* 8007E5F8 */ virtual ~cBgW_BgId(); + /* 8007E5F8 */ virtual ~cBgW_BgId() {} cBgW_BgId() { Ct(); } void Ct() { m_id = 0x100; } diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 40c9f774a1..581025392e 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -30,7 +30,10 @@ enum cCcD_ObjAtType { /* 0x00000010 */ AT_TYPE_SHIELD_ATTACK = (1 << 4), /* 0x00000020 */ AT_TYPE_BOMB = (1 << 5), /* 0x00000080 */ AT_TYPE_SLINGSHOT = (1 << 7), + /* 0x00000200 */ AT_TYPE_LANTERN_SWING = (1 << 9), /* 0x00000400 */ AT_TYPE_CSTATUE_SWING = (1 << 10), + /* 0x00000800 */ AT_TYPE_800 = (1 << 11), + /* 0x00001000 */ AT_TYPE_1000 = (1 << 12), /* 0x00002000 */ AT_TYPE_ARROW = (1 << 13), /* 0x00004000 */ AT_TYPE_HOOKSHOT = (1 << 14), /* 0x00010000 */ AT_TYPE_BOOMERANG = (1 << 16), @@ -41,6 +44,7 @@ enum cCcD_ObjAtType { /* 0x00800000 */ AT_TYPE_COPY_ROD = (1 << 23), /* 0x04000000 */ AT_TYPE_MASTER_SWORD = (1 << 26), /* 0x08000000 */ AT_TYPE_MIDNA_LOCK = (1 << 27), + /* 0x10000000 */ AT_TYPE_10000000 = (1 << 28), /* 0x40000000 */ AT_TYPE_WOLF_CUT_TURN = (1 << 30), /* 0x80000000 */ AT_TYPE_WOLF_ATTACK = (1 << 31), }; @@ -53,7 +57,7 @@ public: struct Shape { /* 80167BBC */ ~Shape(); - /* 0x00 */ u32 _0; + /* 0x00 */ int _0; /* 0x04 */ f32 _4; /* 0x08 */ f32 _8; /* 0x0C */ f32 _C; @@ -146,9 +150,15 @@ public: STATIC_ASSERT(0x40 == sizeof(cCcD_CpsAttr)); +class cCcD_SrcSphAttr : public cM3dGSphS {}; + class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph { public: cCcD_SphAttr() {} + void Set(const cCcD_SrcSphAttr& src) { + cM3dGSph::Set(src); + } + /* 8008721C */ virtual ~cCcD_SphAttr() {} /* 80084B44 */ virtual const cXyz& GetCoCP() const { return mCenter; } /* 80037A54 */ virtual cXyz& GetCoCP() { return mCenter; } @@ -248,26 +258,26 @@ public: STATIC_ASSERT(0x40 == sizeof(cCcD_DivideArea)); struct cCcD_SrcObjTg { - s32 mType; - s32 mSPrm; -}; + /* 0x0 */ s32 mType; + /* 0x4 */ s32 mSPrm; +}; // Size: 0x8 struct cCcD_SrcObjAt { - s32 mType; - u8 mAtp; - s32 mSPrm; -}; + /* 0x0 */ s32 mType; + /* 0x4 */ u8 mAtp; + /* 0x8 */ s32 mSPrm; +}; // Size: 0xC struct cCcD_SrcObjHitInf { - cCcD_SrcObjAt mObjAt; - cCcD_SrcObjTg mObjTg; - s32 mSPrm; -}; + /* 0x00 */ cCcD_SrcObjAt mObjAt; + /* 0x0C */ cCcD_SrcObjTg mObjTg; + /* 0x14 */ s32 mSPrm; +}; // Size: 0x18 struct cCcD_SrcObj { - int field_0x0; - cCcD_SrcObjHitInf mSrcObjHitInf; -}; + /* 0x0 */ int field_0x0; + /* 0x4 */ cCcD_SrcObjHitInf mSrcObjHitInf; +}; // Size: 0x1C class cCcD_GStts { public: @@ -299,11 +309,14 @@ public: /* 80263984 */ f32 GetWeightF() const; /* 802649E8 vt[7] */ virtual void ClrAt() {} /* 802649EC vt[8] */ virtual void ClrTg() { mTg = 0; } + u8 GetWeightUc() const { return mWeight; } void SetWeight(u8 weight) { mWeight = weight; } fopAc_ac_c* GetAc() { return mActor; } + fopAc_ac_c* GetActor() const { return mActor; } void SetActor(void* ac) { mActor = (fopAc_ac_c*)ac; } cXyz* GetCCMoveP() { return &mXyz; } + unsigned int GetApid() const { return mApid; } }; // Size = 0x1C STATIC_ASSERT(0x1C == sizeof(cCcD_Stts)); @@ -409,7 +422,7 @@ public: u32 GetAtGrp() const { return mObjAt.GetGrp(); } u32 GetCoGrp() const { return mObjCo.GetGrp(); } int GetTgType() const { return mObjTg.GetType(); } - int GetAtType() const { return mObjAt.GetType(); } + u32 GetAtType() const { return mObjAt.GetType(); } bool ChkTgSet() const { return mObjTg.ChkSet(); } bool ChkAtSet() const { return mObjAt.ChkSet(); } bool ChkCoSet() const { return mObjCo.ChkSet(); } @@ -463,6 +476,7 @@ public: cCcD_Stts* GetStts() { return mStts; } void SetStts(cCcD_Stts* stts) { mStts = stts; } cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; } + cCcD_DivideInfo* GetPDivideInfo() { return &mDivideInfo; } int ChkBsRevHit() const { return field_0x40 & 2; } private: diff --git a/include/SSystem/SComponent/c_cc_s.h b/include/SSystem/SComponent/c_cc_s.h index 7f65a3a121..32c0cc8fb6 100644 --- a/include/SSystem/SComponent/c_cc_s.h +++ b/include/SSystem/SComponent/c_cc_s.h @@ -11,7 +11,7 @@ enum WeightType { }; class cCcS { -private: +public: /* 0x0000 */ cCcD_Obj* mpObjAt[0x100]; /* 0x0400 */ cCcD_Obj* mpObjTg[0x300]; /* 0x1000 */ cCcD_Obj* mpObjCo[0x100]; @@ -23,7 +23,6 @@ private: /* 0x2808 */ cCcD_DivideArea mDivideArea; /* 0x2848 vtable */ -public: /* 80264A6C */ cCcS(); /* 80264A94 */ void Ct(); /* 80264B60 */ void Dt(); diff --git a/include/SSystem/SComponent/c_m3d_g_cps.h b/include/SSystem/SComponent/c_m3d_g_cps.h index 14315a9fc3..20104043da 100644 --- a/include/SSystem/SComponent/c_m3d_g_cps.h +++ b/include/SSystem/SComponent/c_m3d_g_cps.h @@ -7,10 +7,10 @@ #include "dolphin/types.h" struct cM3dGCpsS { - Vec mStart; - Vec mEnd; - f32 mRadius; -}; + /* 0x00 */ Vec mStart; + /* 0x0C */ Vec mEnd; + /* 0x18 */ f32 mRadius; +}; // Size: 0x1C class cM3dGCps : public cM3dGLin { public: diff --git a/include/SSystem/SComponent/c_m3d_g_sph.h b/include/SSystem/SComponent/c_m3d_g_sph.h index de48572064..cc00a53c8b 100644 --- a/include/SSystem/SComponent/c_m3d_g_sph.h +++ b/include/SSystem/SComponent/c_m3d_g_sph.h @@ -7,9 +7,9 @@ #include "dolphin/types.h" struct cM3dGSphS { - Vec mCenter; - f32 mRadius; -}; + /* 0x0 */ Vec mCenter; + /* 0xC */ f32 mRadius; +}; // Size: 0x10 class cM3dGSph { private: diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index b875f06b23..ada8df1193 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -136,6 +136,7 @@ struct cXyz : Vec { f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); } f32 getDotProduct(const Vec& other) const { return PSVECDotProduct(this, &other); } + f32 inprod(const Vec& other) const { return getDotProduct(other); } }; #endif /* C_XYZ_H */ diff --git a/include/Z2AudioLib/Z2Creature.h b/include/Z2AudioLib/Z2Creature.h index 64e2a8e7f9..39bde53427 100644 --- a/include/Z2AudioLib/Z2Creature.h +++ b/include/Z2AudioLib/Z2Creature.h @@ -143,6 +143,13 @@ public: /* 802C1A14 */ virtual void startCollisionSE(u32, u32); /* 802C1B7C */ void setLinkSearch(bool); /* 802C1B90 */ void setEnemyName(char const*); -}; + +private: + /* 0x90 */ JSULink<Z2CreatureEnemy> mLink; + /* 0xA0 */ u8 mEnemyID; + /* 0xA1 */ u8 field_0xa1; + /* 0xA2 */ bool mLinkSearch; + /* 0xA3 */ u8 field_0xa3; +}; // Size: 0xA4 #endif /* Z2CREATURE_H */ diff --git a/include/c/c_damagereaction.h b/include/c/c_damagereaction.h index 0f417fa274..57f932fd25 100644 --- a/include/c/c_damagereaction.h +++ b/include/c/c_damagereaction.h @@ -3,4 +3,8 @@ #include "dolphin/types.h" +BOOL cDmrNowMidnaTalk(); + +extern u8 cDmr_SkipInfo; + #endif /* C_C_DAMAGEREACTION_H */ diff --git a/include/d/a/d_a_item_static.h b/include/d/a/d_a_item_static.h index 51296740f8..16b521d874 100644 --- a/include/d/a/d_a_item_static.h +++ b/include/d/a/d_a_item_static.h @@ -112,13 +112,13 @@ public: static u8 mFuncPtr[120]; //static procFunc mFuncPtr[9]; - static u8 m_cyl_src[68]; + static dCcD_SrcCyl m_cyl_src; static s32 m_timer_max; /* 0x92C */ s16 field_0x92c; /* 0x92E */ u16 field_0x92e; /* 0x930 */ cXyz field_0x930; - /* 0x93C */ u32 field_0x93c; + /* 0x93C */ int field_0x93c; /* 0x940 */ u16 field_0x940; /* 0x942 */ s16 field_0x942; /* 0x944 */ s16 field_0x944; diff --git a/include/d/a/d_a_obj_item.h b/include/d/a/d_a_obj_item.h index 77e766fe3c..26c732b92e 100644 --- a/include/d/a/d_a_obj_item.h +++ b/include/d/a/d_a_obj_item.h @@ -20,6 +20,14 @@ namespace daItem_prm { static inline u8 checkInWater(daItem_c* item) { return fopAcM_GetParamBit(item, 0x1C, 4); } + + static inline u8 getType(daItem_c* item) { + return (fopAcM_GetParam(item) >> 0x18) & 0xF; + } + + static inline u8 getSwitchNo(daItem_c* item) { + return (fopAcM_GetParam(item) >> 0x10) & 0xFF; + } }; #endif /* A_OBJ_D_A_OBJ_ITEM_H */ diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index dabaf3030e..f48e1abd10 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -63,9 +63,9 @@ public: HEAP_TYPE_5, }; - /* 80140DCC */ void __defctor(); // supposed to be the ctor? + /* 80140DCC */ void __defctor(); // compiler generated due to ctor with default param - daPy_anmHeap_c(u32); + daPy_anmHeap_c(u32 param_0 = 0); ~daPy_anmHeap_c(); void initData(); void* mallocBuffer(); @@ -350,6 +350,7 @@ public: RFLG0_UNK_8000000 = 0x8000000, RFLG0_UNK_4000000 = 0x4000000, RFLG0_UNK_4000 = 0x4000, + RFLG0_FRONT_ROLL_CRASH = 0x2000, RFLG0_ENEMY_ATTN_LOCK = 0x1000, RFLG0_UNK_400 = 0x400, RFLG0_UNK_80 = 0x80, @@ -692,6 +693,7 @@ public: u16 getSwordAtUpTime() const { return mSwordUpTimer; } bool checkWaterInMove() const { return i_checkNoResetFlg0(FLG0_UNDERWATER); } bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(FLG2_SCN_CHG_START); } + bool checkFrontRollCrash() const { return i_checkResetFlg0(RFLG0_FRONT_ROLL_CRASH); } void offGoronSideMove() { if (i_checkGoronSideMove()) { diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 7c53bf3373..93680c27b9 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -109,5 +109,7 @@ public: bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); bool dBgS_CheckBWallPoly(cBgS_PolyInfo const&); +void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2, + bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6); #endif /* D_BG_D_BG_S_H */ diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index a2eb1be880..e1b161626c 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -312,6 +312,7 @@ public: /* 8007E3D8 */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int); void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; } + void SetRideCallback(dBgW_RideCallback func) { m_ride_callback = func; } void OnMoveFlag() { m_flags |= 1; } private: diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 53f5cad807..1105b7c0e8 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -4,51 +4,88 @@ #include "SSystem/SComponent/c_cc_d.h" #include "dolphin/types.h" -struct dCcD_SrcGAtTgCoCommonBase { - /* 0x00 */ u32 mGFlag; +enum dCcD_hitSe { + /* 0 */ dCcD_SE_NONE, + /* 1 */ dCcD_SE_SWORD, + /* 2 */ dCcD_SE_SHIELD_ATTACK, + /* 3 */ dCcD_SE_WOLF_KICK, + /* 4 */ dCcD_SE_WOLF_BITE, + /* 5 */ dCcD_SE_WOOD, + /* 6 */ dCcD_SE_HAMMER, + /* 7 */ dCcD_SE_ARROW_STICK, + /* 8 */ dCcD_SE_HOOKSHOT_STICK, + /* 9 */ dCcD_SE_METAL, + /* 10 */ dCcD_SE_STONE, + /* 11 */ dCcD_SE_HARD_BODY, + /* 12 */ dCcD_SE_SOFT_BODY, + /* 13 */ dCcD_SE_13, + /* 14 */ dCcD_SE_SWORD_STAB, + /* 15 */ dCcD_SE_15, + /* 16 */ dCcD_SE_SWORD_RUN, + /* 17 */ dCcD_SE_17, + /* 18 */ dCcD_SE_THROW_OBJ, + /* 19 */ dCcD_SE_SPINNER, + /* 20 */ dCcD_SE_COPYROD, + /* 21 */ dCcD_SE_STATUE_HAMMER, + /* 22 */ dCcD_SE_PACHINKO, + /* 23 */ dCcD_SE_23, }; -struct dCcD_SrcGObjAt { - u8 mSe; - u8 mHitMark; - u8 mSpl; - u8 mMtrl; - dCcD_SrcGAtTgCoCommonBase mBase; +enum dCcG_At_Spl { + /* 0x0 */ dCcG_At_Spl_UNK_0, + /* 0x1 */ dCcG_At_Spl_UNK_1, }; -struct dCcD_SrcGObjTg { - u8 mSe; - u8 mHitMark; - u8 mSpl; - u8 mMtrl; - dCcD_SrcGAtTgCoCommonBase mBase; +enum dCcG_Tg_Spl { + /* 0x0 */ dCcG_Tg_Spl_UNK_0, + /* 0x1 */ dCcG_Tg_Spl_UNK_1, }; +struct dCcD_SrcGAtTgCoCommonBase { + /* 0x0 */ u32 mGFlag; +}; // Size: 0x4 + +struct dCcD_SrcGObjAt { + /* 0x0 */ u8 mSe; // Sound Effect ID + /* 0x1 */ u8 mHitMark; // Hit Mark particle ID + /* 0x2 */ u8 mSpl; + /* 0x3 */ u8 mMtrl; + /* 0x4 */ dCcD_SrcGAtTgCoCommonBase mBase; +}; // Size: 0x8 + +struct dCcD_SrcGObjTg { + /* 0x0 */ u8 mSe; // Sound Effect ID + /* 0x1 */ u8 mHitMark; // Hit Mark particle ID + /* 0x2 */ u8 mSpl; + /* 0x3 */ u8 mMtrl; + /* 0x4 */ dCcD_SrcGAtTgCoCommonBase mBase; +}; // Size: 0x8 + struct dCcD_SrcGObjInf { - cCcD_SrcObj mObj; - dCcD_SrcGObjAt mGObjAt; - dCcD_SrcGObjTg mGObjTg; - dCcD_SrcGAtTgCoCommonBase mGObjCo; -}; + /* 0x00 */ cCcD_SrcObj mObj; + /* 0x1C */ dCcD_SrcGObjAt mGObjAt; + /* 0x24 */ dCcD_SrcGObjTg mGObjTg; + /* 0x2C */ dCcD_SrcGAtTgCoCommonBase mGObjCo; +}; // Size: 0x30 struct dCcD_SrcSph { - dCcD_SrcGObjInf mObjInf; - cM3dGSphS mSph; -}; + /* 0x00 */ dCcD_SrcGObjInf mObjInf; + /* 0x30 */ cM3dGSphS mSph; +}; // Size: 0x40 struct dCcD_SrcTri { - dCcD_SrcGObjInf mObjInf; -}; + /* 0x00 */ dCcD_SrcGObjInf mObjInf; +}; // Size: 0x30 struct dCcD_SrcCyl { - dCcD_SrcGObjInf mObjInf; - cM3dGCylS mCyl; -}; + /* 0x00 */ dCcD_SrcGObjInf mObjInf; + /* 0x30 */ cM3dGCylS mCyl; +}; // Size: 0x44 struct dCcD_SrcCps { - dCcD_SrcGObjInf mObjInf; - cM3dGCpsS mCps; -}; + /* 0x00 */ dCcD_SrcGObjInf mObjInf; + /* 0x30 */ cM3dGCpsS mCps; +}; // Size: 0x4C class dCcD_GStts : public cCcD_GStts { public: @@ -58,8 +95,17 @@ public: /* 8008523C */ virtual ~dCcD_GStts() {} void ClrTg() { mTg = 0; } void SetAtApid(unsigned int id) { mAtApid = id; } + void SetTgApid(unsigned int id) { mTgApid = id; } u8 GetRoomId() { return mRoomId; } void SetRoomId(int id) { mRoomId = id; } + unsigned int GetAtOldApid() { return mAtOldApid; } + unsigned int GetTgOldApid() { return mTgOldApid; } + bool ChkNoActor() { return field_0x1C & 1;} + bool ChkNoneActorPerfTblId() { return field_0x08 == 0xFFFF; } + dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mAt; } + void SetAtSpl(dCcG_At_Spl spl) { mAt = spl; } + dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTg; } + void SetTgSpl(dCcG_Tg_Spl spl) { mTg = spl; } // private: /* 0x04 */ u8 mAt; @@ -85,11 +131,6 @@ public: }; // Size = 0x3C -enum dCcG_At_Spl { - /* 0x0 */ dCcG_At_Spl_UNK_0, - /* 0x1 */ dCcG_At_Spl_UNK_1, -}; - class dCcD_GObjInf; typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); @@ -115,6 +156,7 @@ public: /* 80083724 */ void SubtractEffCounter(); /* 80083748 */ bool ChkEffCounter(); /* 80083CA0 */ virtual ~dCcD_GAtTgCoCommonBase() {} + void ResetEffCounter() { mEffCounter = 0; } u32 GetGFlag() const { return mGFlag; } u32 GetRPrm() const { return mRPrm; } @@ -122,9 +164,11 @@ public: u32 MskRPrm(u32 mask) const { return mRPrm & mask; } bool ChkSPrm(u32 mask) const { return MskSPrm(mask); } void OnSPrm(u32 flag) { mGFlag |= flag; } + void OnRPrm(u32 flag) { mRPrm |= flag; } void OffSPrm(u32 flag) { mGFlag &= ~flag; } bool ChkRPrm(u32 flag) const { return MskRPrm(flag); } void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; } + dCcD_HitCallback GetHitCallback() { return mHitCallback; } }; // Size = 0x1C class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase { @@ -141,6 +185,9 @@ public: u8 GetSe() { return mSe; } u8 GetSpl() { return mSpl; } u8 GetMtrl() { return mMtrl; } + u8 GetHitMark() { return mHitMark; } + void SetRVec(cXyz& vec) { mRVec = vec; } + void SetHitPos(cXyz& pos) { mHitPos = pos; } // private: /* 0x1C */ u8 mSe; @@ -160,7 +207,15 @@ public: cXyz& GetVec() { return mVec; } void SetShieldFrontRangeYAngle(s16* angle) { mShieldFrontRangeYAngle = angle; } void SetMtrl(u8 mtrl) { mMtrl = mtrl; } + u8 GetMtrl() { return mMtrl; } void SetHitMark(CcG_Tg_HitMark mark) { mHitMark = mark; } + s16* GetShieldFrontRangeYAngle() { return mShieldFrontRangeYAngle; } + s16 GetShieldRange() { return mShieldRange; } + u8 GetSpl() { return mSpl; } + u8 GetHitMark() { return mHitMark; } + void SetRVec(cXyz& vec) { mRVec = vec; } + cXyz* GetVecP() { return &mVec; } + void SetHitPos(cXyz& pos) { mHitPos = pos; } private: /* 0x1C */ u8 mSe; @@ -220,13 +275,15 @@ public: fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); } bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); } cXyz* GetAtVecP() { return mGObjAt.GetVecP(); } + cXyz* GetTgVecP() { return mGObjTg.GetVecP(); } void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); } void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); } void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); } void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); } u8 GetAtSe() { return mGObjAt.GetSe(); } - s32 GetAtSpl() { return mGObjAt.GetSpl(); } + dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mGObjAt.GetSpl(); } u8 GetAtMtrl() { return mGObjAt.GetMtrl(); } + u8 GetTgMtrl() { return mGObjTg.GetMtrl(); } fopAc_ac_c* GetTgHitAc() { return mGObjTg.GetAc(); } void SetTgShieldFrontRangeYAngle(s16* angle) { mGObjTg.SetShieldFrontRangeYAngle(angle); } void OffTgWolfSpNoDamage() { mGObjTg.OffSPrm(0x800); } @@ -239,6 +296,44 @@ public: void OnTgShieldFrontRange() { mGObjTg.OnSPrm(0x8); } void OffTgShieldFrontRange() { mGObjTg.OffSPrm(0x8); } bool ChkTgIronBallRebound() { return mGObjTg.ChkSPrm(0x100); } + s16* GetTgShieldFrontRangeYAngle() { return mGObjTg.GetShieldFrontRangeYAngle(); } + s16 GetTgShieldRange() { return mGObjTg.GetShieldRange(); } + bool ChkTgShield() { return mGObjTg.ChkSPrm(1); } + bool ChkTgSpShield() { return mGObjTg.ChkSPrm(0x40); } + bool ChkTgSmallShield() { return mGObjTg.ChkSPrm(0x10); } + bool ChkTgShieldFrontRange() { return mGObjTg.ChkSPrm(8); } + bool ChkAtNoConHit() { return mGObjAt.ChkSPrm(1); } + bool ChkAtStopNoConHit() { return mGObjAt.ChkSPrm(0x4); } + bool ChkTgNoConHit() { return mGObjTg.ChkSPrm(2); } + bool ChkTgStopNoConHit() { return mGObjTg.ChkSPrm(0x2000); } + bool ChkCoNoCamHit() { return mGObjCo.ChkSPrm(2); } + dCcD_HitCallback GetCoHitCallback() { return mGObjCo.GetHitCallback(); } + dCcD_HitCallback GetAtHitCallback() { return mGObjAt.GetHitCallback(); } + dCcD_HitCallback GetTgHitCallback() { return mGObjTg.GetHitCallback(); } + void SetCoHitApid(unsigned int apid) { mGObjCo.SetHitApid(apid); } + void SetAtHitApid(unsigned int apid) { mGObjAt.SetHitApid(apid); } + void SetTgHitApid(unsigned int apid) { mGObjTg.SetHitApid(apid); } + void OnCoHitNoActor() { mGObjCo.OnRPrm(1); } + void OnAtHitNoActor() { mGObjAt.OnRPrm(2); } + void OnTgHitNoActor() { mGObjTg.OnRPrm(1); } + bool ChkTgWolfSpNoDamage() { return mGObjTg.ChkSPrm(0x800); } + bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(2); } + bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(4); } + bool ChkTgHookShotNoHitMark() { return mGObjTg.ChkSPrm(0x400); } + bool ChkTgArrowNoHitMark() { return mGObjTg.ChkSPrm(0x1000); } + dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mGObjTg.GetSpl(); } + int GetTgHitMark() { return mGObjTg.GetHitMark(); } + int GetAtHitMark() { return mGObjAt.GetHitMark(); } + bool ChkAtEffCounter() { return mGObjAt.ChkEffCounter(); } + bool ChkTgEffCounter() { return mGObjTg.ChkEffCounter(); } + void SetAtEffCounterTimer() { mGObjAt.SetEffCounterTimer(); } + void SetTgEffCounterTimer() { mGObjTg.SetEffCounterTimer(); } + void OnTgShieldHit() { mGObjTg.OnRPrm(2); } + void OnAtShieldHit() { mGObjAt.OnRPrm(1); } + void SetTgRVec(cXyz& vec) { mGObjTg.SetRVec(vec); } + void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); } + void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } + void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } static u32 const m_hitSeID[24]; diff --git a/include/d/cc/d_cc_s.h b/include/d/cc/d_cc_s.h index 55874fcae1..7ad3000abe 100644 --- a/include/d/cc/d_cc_s.h +++ b/include/d/cc/d_cc_s.h @@ -11,21 +11,21 @@ public: dCcS() {} /* 80085ED4 */ void Ct(); /* 80085F08 */ void Dt(); - /* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*); - /* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*); + /* 80085F28 */ bool ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*); + /* 800860F8 */ bool ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*); /* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*); - /* 80086360 */ void GetRank(u8); + /* 80086360 */ int GetRank(u8); /* 8008685C */ void ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*, dCcD_GStts*, cXyz*, bool); - /* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*); - /* 80086FBC */ void chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*, + /* 80086D8C */ bool ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*); + /* 80086FBC */ bool chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*, fopAc_ac_c*); /* 800872AC */ void DrawAfter(); /* 800872B0 */ void Move(); /* 800872D0 */ void Draw(); /* 8008730C */ void MassClear(); - /* 80087330 */ void ChkAtTgMtrlHit(u8, u8); + /* 80087330 */ int ChkAtTgMtrlHit(u8, u8); /* 8008640C */ virtual void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32); /* 80086240 */ virtual void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*, diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index b6187c81c0..7b23faf7e8 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -388,7 +388,9 @@ public: } void setCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus = flag; } void onCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus |= flag; } - void offCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus &= ~flag; } + void offCameraAttentionStatus(int i, u32 flag) { + mCameraInfo[i].mCameraAttentionStatus &= ~flag; + } void setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) { mCameraInfo[camIdx].mCamera = p_cam; mCameraInfo[camIdx].field_0x4 = param_2; @@ -932,7 +934,8 @@ inline void dComIfGs_setEmptyBombBagItemIn(u8 i_newBomb, bool i_setNum) { } inline void dComIfGs_setEmptyBombBagItemIn(u8 i_newBomb, u8 i_bombNum, bool i_setNum) { - g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(i_newBomb, i_bombNum, i_setNum); + g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(i_newBomb, i_bombNum, + i_setNum); } inline void dComIfGs_setEmptyBottle() { @@ -1374,10 +1377,10 @@ inline bool dComIfGs_isPlayerFieldLastStayFieldDataExistFlag() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().isFieldDataExistFlag(); } -inline void dComIfGs_setPlayerFieldLastStayInfo(const char* i_stage, cXyz& i_pos, s16 i_angle, s8 i_point, - u8 i_region) { - g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().set(i_stage, i_pos, i_angle, i_point, - i_region); +inline void dComIfGs_setPlayerFieldLastStayInfo(const char* i_stage, cXyz& i_pos, s16 i_angle, + s8 i_point, u8 i_region) { + g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().set(i_stage, i_pos, i_angle, + i_point, i_region); } inline void dComIfGs_setStartPoint(s16 i_point) { @@ -1528,7 +1531,6 @@ inline int dComIfGs_createZone(int roomNo) { return g_dComIfG_gameInfo.info.createZone(roomNo); } - void dComIfGp_setSelectItem(int index); s32 dComIfGp_offHeapLockFlag(int flag); void dComIfGp_createSubExpHeap2D(); @@ -2350,6 +2352,12 @@ inline void dComIfGp_createSimpleModel() { g_dComIfG_gameInfo.play.createSimpleModel(); } +inline void i_dComIfGp_setHitMark(u16 i_hitmark, fopAc_ac_c* param_1, const cXyz* param_2, + const csXyz* param_3, const cXyz* param_4, u32 i_atType) { + g_dComIfG_gameInfo.play.getParticle()->setHitMark(i_hitmark, param_1, param_2, param_3, param_4, + i_atType); +} + inline s32 dComIfGp_roomControl_getStayNo() { return dStage_roomControl_c::getStayNo(); } @@ -2626,36 +2634,42 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, param_9, param_10, 1.0f); } -inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3) { - return dComIfGp_particle_set(param_0,param_1,param_2,param_3,0,0,0xFF,0,0xFFFFFFFF,0,0,0); +inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, + const dKy_tevstr_c* param_3) { + return dComIfGp_particle_set(param_0, param_1, param_2, param_3, 0, 0, 0xFF, 0, 0xFFFFFFFF, 0, + 0, 0); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, - const csXyz* param_4, const cXyz* param_5, u8 param_6, - dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, - const GXColor* param_10, const cXyz* param_11) { +inline JPABaseEmitter* dComIfGp_particle_set(u16 param_1, const cXyz* param_2, + const dKy_tevstr_c* param_3, const csXyz* param_4, + const cXyz* param_5, u8 param_6, + dPa_levelEcallBack* param_7, s8 param_8, + const GXColor* param_9, const GXColor* param_10, + const cXyz* param_11) { return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, 1.0f); } inline JPABaseEmitter* dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const csXyz* param_3, - const cXyz* param_4, u8 param_5, dPa_levelEcallBack* param_6, - s8 param_7, const GXColor* param_8, const GXColor* param_9, - const cXyz* param_10) { + const cXyz* param_4, u8 param_5, + dPa_levelEcallBack* param_6, s8 param_7, + const GXColor* param_8, const GXColor* param_9, + const cXyz* param_10) { return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, NULL, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, 1.0f); } inline JPABaseEmitter* dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz* param_2, - const cXyz* param_3) { + const cXyz* param_3) { return dComIfGp_particle_set(param_0, param_1, NULL, param_2, param_3, 0xFF, NULL, -1, NULL, NULL, NULL); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const dKy_tevstr_c* param_2, - const csXyz* param_3, const cXyz* param_4) { +inline JPABaseEmitter* dComIfGp_particle_set(u16 param_0, const cXyz* param_1, + const dKy_tevstr_c* param_2, const csXyz* param_3, + const cXyz* param_4) { return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL, NULL, NULL); } @@ -2666,28 +2680,34 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, NULL, NULL); } -inline u32 dComIfGp_particle_setColor(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, - const GXColor* param_4, const GXColor* param_5, f32 param_6, u8 param_7, - const csXyz* param_8, const cXyz* param_9, dPa_levelEcallBack* param_10, - s8 param_11, const cXyz* param_12) { - return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_0, param_1, param_2, param_3, - param_8, param_9, param_7, param_10, - param_11, param_4, param_5, param_12, - param_6); +inline u32 dComIfGp_particle_setColor(u32 param_0, u16 param_1, const cXyz* param_2, + const dKy_tevstr_c* param_3, const GXColor* param_4, + const GXColor* param_5, f32 param_6, u8 param_7, + const csXyz* param_8, const cXyz* param_9, + dPa_levelEcallBack* param_10, s8 param_11, + const cXyz* param_12) { + return g_dComIfG_gameInfo.play.getParticle()->setNormal( + param_0, param_1, param_2, param_3, param_8, param_9, param_7, param_10, param_11, param_4, + param_5, param_12, param_6); } -inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* param_1, const dKy_tevstr_c* param_2, - const GXColor* param_3, const GXColor* param_4, f32 param_5, u8 param_6, - const csXyz* param_7, const cXyz* param_8, dPa_levelEcallBack* param_9, +inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* param_1, + const dKy_tevstr_c* param_2, + const GXColor* param_3, const GXColor* param_4, + f32 param_5, u8 param_6, const csXyz* param_7, + const cXyz* param_8, dPa_levelEcallBack* param_9, s8 param_10, const cXyz* param_11) { return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_0, param_1, param_2, param_7, param_8, param_6, param_9, param_10, param_3, param_4, param_11, param_5); } -inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* param_1, const dKy_tevstr_c* param_2, - const GXColor* param_3, const GXColor* param_4, f32 param_5, u8 param_6) { - return dComIfGp_particle_setColor(param_0, param_1, param_2, param_3, param_4, param_5, param_6, NULL, NULL, NULL, -1, NULL); +inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* param_1, + const dKy_tevstr_c* param_2, + const GXColor* param_3, const GXColor* param_4, + f32 param_5, u8 param_6) { + return dComIfGp_particle_setColor(param_0, param_1, param_2, param_3, param_4, param_5, param_6, + NULL, NULL, NULL, -1, NULL); } inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) { diff --git a/include/d/d_item_data.h b/include/d/d_item_data.h index 7ae58debf3..b7158748af 100644 --- a/include/d/d_item_data.h +++ b/include/d/d_item_data.h @@ -76,9 +76,9 @@ struct dItem_data { static u8 getShadowSize(u8 index) { return item_info[index].mShadowSize; } - static u8 getH(u8 index) { return item_info[index].mH; } + static const u8 getH(u8 index) { return item_info[index].mH; } - static u8 getR(u8 index) { return item_info[index].mR; } + static const u8 getR(u8 index) { return item_info[index].mR; } static u16 getFieldHeapSize(u8 index) { return field_item_res[index].mHeapSize; } diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h index 9d7dfc39c0..ff512aed58 100644 --- a/include/d/d_jnt_col.h +++ b/include/d/d_jnt_col.h @@ -6,7 +6,12 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" -class dJntColData_c {}; +class dJntColData_c { +public: + u8 field_0x0; + s8 mType; + u8 field_0x2[0xC - 0x2]; +}; class dJntCol_c { public: @@ -15,12 +20,15 @@ public: /* 80035CC8 */ void setNowLine(cM3dGLin*, cXyz const*, csXyz const*, cXyz*); /* 80035DC8 */ void searchNearPos(cM3dGLin const*, cXyz const*, cXyz*, int) const; /* 80036AEC */ void getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const; - /* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const; + /* 80036C44 */ int getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const; /* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*); bool checkPassNum(int bit) { return field_0xc & (1 << bit); } void onPassNum(int num) { field_0xc |= (1 << num); } void offPassNum(int num) { field_0xc &= ~(1 << num); } + bool checkShieldType(int i) { return getType(i) == 3; } + + s8 getType(int i) { return mData[i].mType; } /* 0x00 */ dJntColData_c* mData; /* 0x04 */ J3DModel* mModel; diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 2224e4a00f..6a3846f1e8 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -67,6 +67,7 @@ public: /* 8004974C */ virtual void end(); void remove() { end(); } + JPABaseEmitter* getEmitter() { return mpEmitter; } /* 0x04 */ JPABaseEmitter* mpEmitter; /* 0x08 */ const cXyz* field_0x8; diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index eb8e47bafc..978639b8ad 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -73,6 +73,10 @@ inline void GXPosition1x16(u16 x) { GFX_FIFO(u16) = x; } +inline void GXPosition1x8(u8 x) { + GFX_FIFO(u8) = x; +} + inline void GXPosition3s8(s8 x, s8 y, s8 z) { GFX_FIFO(s8) = x; GFX_FIFO(s8) = y; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 78c3c07c2d..bfadd5f5a7 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -286,6 +286,10 @@ inline const cXyz& fopAcM_GetPosition_p(const fopAc_ac_c* p_actor) { return p_actor->current.pos; } +inline dJntCol_c* fopAcM_GetJntCol(fopAc_ac_c* i_actor) { + return i_actor->mJntCol; +} + inline void dComIfGs_onSwitch(int i_no, int i_roomNo); inline void dComIfGs_offSwitch(int i_no, int i_roomNo); inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo); @@ -544,6 +548,10 @@ inline f32 fopAcM_searchPlayerDistanceXZ2(const fopAc_ac_c* actor) { return fopAcM_searchActorDistanceXZ2(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); } +inline f32 fopAcM_searchPlayerDistanceXZ(const fopAc_ac_c* actor) { + return fopAcM_searchActorDistanceXZ(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); +} + inline f32 fopAcM_searchPlayerDistance(const fopAc_ac_c* actor) { return fopAcM_searchActorDistance(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); } @@ -555,6 +563,16 @@ inline void fopAcM_seStartCurrent(const fopAc_ac_c* actor, u32 sfxID, u32 param_ mDoAud_seStart(sfxID, &actor->current.pos, param_2, dComIfGp_getReverb(roomNo)); } +inline void fopAcM_seStart(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) { + s8 roomNo = fopAcM_GetRoomNo(actor); + mDoAud_seStart(sfxID, &actor->mEyePos, param_2, dComIfGp_getReverb(roomNo)); +} + +inline void fopAcM_seStartLevel(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) { + s8 roomNo = fopAcM_GetRoomNo(actor); + i_mDoAud_seStartLevel(sfxID, &actor->mEyePos, param_2, dComIfGp_getReverb(roomNo)); +} + extern "C" { void fopAcM_initManager__Fv(void); void fopAcM_CreateAppend__Fv(void); diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 9d344948f8..642cf2fdbe 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -20,6 +20,7 @@ void mDoMtx_YrotM(Mtx, s16); void mDoMtx_MtxToRot(CMtxP, csXyz*); void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3); void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]); +void mDoMtx_ZrotM(Mtx mtx, s16 z); inline void mDoMtx_multVecSR(Mtx m, const Vec* src, Vec* dst) { PSMTXMultVecSR(m, src, dst); @@ -37,6 +38,12 @@ inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) { PSMTXTrans(m,x,y,z); } +inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { + param_1->x = param_0[0][3]; + param_1->y = param_0[1][3]; + param_1->z = param_0[2][3]; +} + class mDoMtx_stack_c { public: /* 8000CCC8 */ static bool push(); @@ -59,6 +66,7 @@ public: static void scaleS(f32 x, f32 y, f32 z) { PSMTXScale(now, x, y, z); } static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); } static void multVecSR(const Vec* a, Vec* b) { PSMTXMultVecSR(now, a, b); } + static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); } static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); } static void XYZrotM(s16 x, s16 y, s16 z) { mDoMtx_XYZrotM(now, x, y, z); } static void ZXYrotS(s16 x, s16 y, s16 z) { mDoMtx_ZXYrotS(now, x, y, z); } @@ -66,8 +74,10 @@ public: static void YrotM(s16 y) { mDoMtx_YrotM(now, y); } static void YrotS(s16 y) { mDoMtx_YrotS(now, y); } static void XrotM(s16 x) { mDoMtx_XrotM(now, x); } + static void ZrotM(s16 z) { mDoMtx_ZrotM(now, z); } static void inverse() { PSMTXInverse(now, now); } static void concat(const Mtx m) { PSMTXConcat(now, m, now); } + static void revConcat(const Mtx m) { PSMTXConcat(m, now, now); } static void copy(const Mtx m) { PSMTXCopy(m, now); } static Mtx now; @@ -91,10 +101,4 @@ public: /* 0x118 */ mDoMtx_quatStack_c* field_0x118; }; // Size: 0x11C -inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { - param_1->x = param_0[0][3]; - param_1->y = param_0[1][3]; - param_1->z = param_0[2][3]; -} - #endif /* M_DO_M_DO_MTX_H */ diff --git a/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h b/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h index 97db1a0e0f..9dae6051e7 100644 --- a/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h +++ b/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h @@ -1,6 +1,43 @@ #ifndef D_A_B_OH2_H #define D_A_B_OH2_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + +// fix/move to d_a_b_ob later +class b_ob_class : public fopEn_enemy_c { +public: + /* 0x05AC */ u8 field_0x5ac[0x5c0 - 0x5ac]; + /* 0x05C0 */ mDoExt_McaMorf* field_0x5c0; + /* 0x05C4 */ u8 field_0x5c4[0x4752 - 0x5c4]; + /* 0x4752 */ s16 field_0x4752; + /* 0x4754 */ u8 field_0x4754[0x47a0 - 0x4754]; + /* 0x47A0 */ f32 field_0x47a0; + /* 0x47A4 */ u8 field_0x47a4[0x5d04 - 0x47a4]; + /* 0x5D04 */ f32 field_0x5d04; +}; + +class b_oh2_class : public fopEn_enemy_c { +public: + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ mDoExt_McaMorfSO* mpMorf; + /* 0x5B8 */ mDoExt_invisibleModel mInvisModel; + /* 0x5C0 */ mDoExt_btkAnm* mpBtk; + /* 0x5C4 */ mDoExt_brkAnm* mpBrk; + /* 0x5C8 */ int field_0x5c8; + /* 0x5CC */ s16 field_0x5cc; + /* 0x5CE */ s16 field_0x5ce; + /* 0x5D0 */ u8 field_0x5d0; + /* 0x5D2 */ s16 field_0x5d2[4]; + /* 0x5DA */ s16 field_0x5da; + /* 0x5DC */ s16 field_0x5dc; + /* 0x5E0 */ f32 field_0x5e0; + /* 0x5E4 */ f32 field_0x5e4; + /* 0x5E8 */ f32 field_0x5e8[30]; + /* 0x660 */ cXyz field_0x660[31]; + /* 0x7D4 */ csXyz field_0x7d4[31]; + /* 0x88E */ u8 field_0x88e[0x898 - 0x88e]; + /* 0x898 */ Z2CreatureEnemy mZ2Enemy; + /* 0x93C */ u8 field_0x93c[0x948 - 0x93C]; +}; #endif /* D_A_B_OH2_H */ diff --git a/include/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h b/include/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h index debd03f284..da1aa2f64e 100644 --- a/include/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h +++ b/include/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h @@ -1,6 +1,17 @@ #ifndef D_A_SET_BGOBJ_H #define D_A_SET_BGOBJ_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + +class daSetBgObj_c : public fopAc_ac_c { +public: + /* 80031870 */ static const char* getArcName(fopAc_ac_c*); + /* 80485D78 */ int CreateInit(); + /* 80485DFC */ int create(); + /* 80485E88 */ int Delete(); + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ const char mArcName[16]; +}; #endif /* D_A_SET_BGOBJ_H */ diff --git a/include/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.h b/include/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.h index 1c34e122af..0bebd778e9 100644 --- a/include/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.h +++ b/include/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.h @@ -1,6 +1,35 @@ #ifndef D_A_OBJ_WEB0_H #define D_A_OBJ_WEB0_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + +class obj_web0_class : public fopAc_ac_c { +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ u8 mPrm0; + /* 0x571 */ u8 mScaleXY; + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ mDoExt_brkAnm* mpBrk; + /* 0x57C */ s16 field_0x57c; + /* 0x57E */ u8 field_0x57e[0x582 - 0x57e]; + /* 0x582 */ s16 mReboundTimer; + /* 0x584 */ s16 field_0x584[2]; + /* 0x588 */ s16 mHitTimer; + /* 0x58A */ u8 field_0x58a[0x590 - 0x58a]; + /* 0x590 */ Mtx mMtx; + /* 0x5C0 */ dBgW* mpBgW; + /* 0x5C4 */ dCcD_Stts mStts; + /* 0x600 */ dCcD_Sph mSphCc; + /* 0x738 */ u8 mDeleteTimer; + /* 0x739 */ u8 field_0x739; +}; // Size: 0x73C + +class daObj_Web0_HIO_c { +public: + /* 80D3452C */ daObj_Web0_HIO_c(); + /* 80D350E4 */ virtual ~daObj_Web0_HIO_c() {} + + /* 0x4 */ s8 field_0x4; +}; #endif /* D_A_OBJ_WEB0_H */ diff --git a/include/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1.h b/include/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1.h index f343cdd036..54f73702cc 100644 --- a/include/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1.h +++ b/include/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1.h @@ -1,6 +1,40 @@ #ifndef D_A_OBJ_WEB1_H #define D_A_OBJ_WEB1_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + +class obj_web1_class : public fopAc_ac_c { +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ u8 mPrm0; + /* 0x571 */ u8 mScaleX; + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ mDoExt_brkAnm* mpBrk; + /* 0x57C */ Z2SoundObjSimple mZ2SoundObj; + /* 0x59C */ s16 field_0x59c; + /* 0x59E */ s16 mActionMode; + /* 0x5A0 */ u8 field_0x5a0[2]; + /* 0x5A2 */ s16 field_0x5a2[2]; + /* 0x5A6 */ s16 mHitTimer; + /* 0x5A8 */ s16 mReboundTimer; + /* 0x5AA */ s16 field_0x5aa; + /* 0x5AC */ f32 mDistToActor; + /* 0x5B0 */ f32 field_0x5b0; + /* 0x5B4 */ s8 mDeleteTimer; + /* 0x5B5 */ u8 field_0x5b5[0x5C0 - 0x5B5]; + /* 0x5C0 */ Mtx mMtx; + /* 0x5F0 */ dBgW* mpBgW; + /* 0x5F4 */ dCcD_Stts mStts; + /* 0x630 */ dCcD_Cyl mCylCc; + /* 0x76C */ u8 field_0x76c; +}; // Size: 0x770 + +class daObj_Web1_HIO_c { +public: + /* 80D353AC */ daObj_Web1_HIO_c(); + /* 80D36028 */ virtual ~daObj_Web1_HIO_c() {} + + /* 0x4 */ s8 field_0x4; +}; #endif /* D_A_OBJ_WEB1_H */ |
