diff options
| author | Trueffeloot <geiloking135@gmail.com> | 2023-08-03 23:13:13 +0200 |
|---|---|---|
| committer | Trueffeloot <geiloking135@gmail.com> | 2023-08-03 23:13:13 +0200 |
| commit | dcec25478857bcff764a5a7feec00d57a55da008 (patch) | |
| tree | 4fb09323e27914503ba24918c3a36fab51c03be2 /include | |
| parent | 0300993e11bfca04d8f60911b60330f8c1c83251 (diff) | |
work on d_a_boomerang
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_math.h | 4 | ||||
| -rw-r--r-- | include/d/bg/d_bg_s.h | 1 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_boomerang/d_a_boomerang.h | 55 |
3 files changed, 41 insertions, 19 deletions
diff --git a/include/SSystem/SComponent/c_math.h b/include/SSystem/SComponent/c_math.h index 767f1ddfc0..7348052c9d 100644 --- a/include/SSystem/SComponent/c_math.h +++ b/include/SSystem/SComponent/c_math.h @@ -33,6 +33,10 @@ inline s16 i_cM_deg2s(f32 deg) { return deg; } +inline f32 cM_fcos(f32 x) { + return JMASCos(cM_rad2s(x)); +} + inline f32 cM_fsin(f32 x) { return JMASSin(cM_rad2s(x)); } diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 9bfb83b528..c3fa6032eb 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -111,6 +111,7 @@ public: }; // Size: 0x1404 bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); +bool dBgS_CheckBRoofPoly(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); diff --git a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h index 7b3cb99789..8b66ed79d7 100644 --- a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h +++ b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h @@ -11,9 +11,9 @@ class daBoomerang_sight_c { public: - /* 8049E0B8 */ void createHeap(); + /* 8049E0B8 */ int createHeap(); /* 8049E36C */ void initialize(); - /* 8049EB64 */ void playAnime(int, int); + /* 8049EB64 */ int playAnime(int, int); /* 8049EDA8 */ void initFrame(int); /* 8049EDE8 */ void copyNumData(int); /* 8049EEC8 */ void setSight(cXyz const*, int); @@ -22,6 +22,10 @@ public: /* 804A278C */ virtual ~daBoomerang_sight_c(); u8 getReserve() const { return mReserve; } + u8 getAlpha(int i_index) { return mAlpha[i_index]; } + void offRedSight() { mRedSight = false; } + void onReserve() { mReserve = 1; } + void offReserve() { mReserve = 0; } private: /* 0x04 */ J2DScreen* field_0x4; @@ -29,24 +33,24 @@ private: /* 0x0C */ J2DPane* field_0xc; /* 0x10 */ J2DPane* field_0x10; /* 0x14 */ J2DPane* field_0x14; - /* 0x18 */ J2DAnmBase* field_0x18; - /* 0x1C */ J2DAnmBase* field_0x1c; + /* 0x18 */ J2DAnmTevRegKey* field_0x18; + /* 0x1C */ J2DAnmTevRegKey* field_0x1c; /* 0x20 */ J2DScreen* field_0x20; /* 0x24 */ J2DPane* field_0x24; /* 0x28 */ J2DPane* field_0x28; /* 0x2C */ J2DPane* field_0x2c; /* 0x30 */ J2DPane* field_0x30; - /* 0x34 */ J2DAnmBase* field_0x34; - /* 0x38 */ J2DAnmBase* field_0x38; + /* 0x34 */ J2DAnmTevRegKey* field_0x34; + /* 0x38 */ J2DAnmTevRegKey* field_0x38; /* 0x3C */ J2DScreen* field_0x3c; /* 0x40 */ J2DPane* field_0x40; /* 0x44 */ J2DPane* field_0x44; /* 0x48 */ J2DPane* field_0x48; /* 0x4C */ J2DPane* field_0x4c; - /* 0x50 */ J2DAnmBase* field_0x50; - /* 0x54 */ J2DAnmBase* field_0x54; - /* 0x58 */ J2DAnmBase* field_0x58; - /* 0x5C */ J2DAnmBase* field_0x5c; + /* 0x50 */ J2DAnmTevRegKey* field_0x50; + /* 0x54 */ J2DAnmTevRegKey* field_0x54; + /* 0x58 */ J2DAnmColor* field_0x58; + /* 0x5C */ J2DAnmTransform* field_0x5c; /* 0x60 */ bool mRedSight; /* 0x61 */ u8 mReserve; /* 0x62 */ u8 mAlpha[6]; @@ -62,7 +66,10 @@ class daAlink_c; class daBoomerang_c : public fopAc_ac_c { public: enum daBoomerang_FLG0 { + /* 0x001 */ FLG0_1 = 0x001, /* 0x004 */ FLG0_UNK = 0x004, + /* 0x010 */ FLG0_10 = 0x010, + /* 0x200 */ FLG0_0x200 = 0x200, /* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800, /* 0x080 */ WIND_CATCH = 0x80, }; @@ -74,7 +81,7 @@ public: /* 8049F710 */ void pushLockList(int); /* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*); /* 8049F874 */ void setAimActorBase(fopAc_ac_c*); - /* 8049F8B0 */ void setLockActor(fopAc_ac_c*, int); + /* 8049F8B0 */ int setLockActor(fopAc_ac_c*, int); /* 8049F9A4 */ void resetLockActor(); /* 8049F9F0 */ void setRoomInfo(); /* 8049FAA4 */ void setKeepMatrix(); @@ -82,7 +89,7 @@ public: /* 8049FCD0 */ void setRotAngle(); /* 8049FD6C */ void setAimPos(); /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*); - /* 804A006C */ void setEffectTraceMatrix(u32*, u16); + /* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16); /* 804A012C */ void setEffect(); /* 804A0874 */ void procWait(); /* 804A0F0C */ void procMove(); @@ -92,6 +99,7 @@ public: /* 804A2084 */ int create(); /* 804A230C */ daBoomerang_c(); + u32 checkStateFlg0(daBoomerang_FLG0 i_flag) { return mStateFlg0 & i_flag; } void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; } void onWindCatch() { onStateFlg0(WIND_CATCH); } bool checkForceDelete() const { return mForceDelete; } @@ -108,16 +116,16 @@ private: /* 0x568 */ J3DModel* field_0x568; /* 0x56C */ J3DModel* field_0x56c; /* 0x570 */ J3DAnmTextureSRTKey* m_windBtk; - /* 0x574 */ mDoExt_bckAnm field_0x574; + /* 0x574 */ mDoExt_bckAnm mBck; /* 0x590 */ J3DModel* field_0x590; /* 0x594 */ J3DAnmTextureSRTKey* m_waitEffBtk; /* 0x598 */ daBoomerang_sight_c mSight; - /* 0x6A8 */ u32 field_0x6a8; - /* 0x6AC */ u32 field_0x6ac[5]; + /* 0x6A8 */ s32 field_0x6a8; + /* 0x6AC */ s32 field_0x6ac[5]; /* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points - /* 0x6D4 */ fopAc_ac_c* field_0x6d4; - /* 0x6D8 */ u8 field_0x6d8[4]; - /* 0x6DC */ cXyz field_0x6dc[5]; + /* 0x6D4 */ u32 field_0x6d4; + /* 0x6D8 */ fopAc_ac_c* field_0x6d8; + /* 0x6DC */ cXyz mLockActorsPositions[5]; /* 0x718 */ u8 field_0x718[5]; /* 0x720 */ Z2SoundObjSimple field_0x720; /* 0x740 */ dBgS_Acch field_0x740; @@ -137,7 +145,16 @@ private: /* 0x960 */ s16 field_0x960; /* 0x962 */ s16 field_0x962; /* 0x964 */ u32 mStateFlg0; - /* 0x968 */ u8 field_0x968[0x990 - 0x968]; + /* 0x968 */ u32 field_0x968; + /* 0x96C */ u32 field_0x96c; + /* 0x970 */ u32 field_0x970; + /* 0x974 */ u32 field_0x974; + /* 0x978 */ u32 field_0x978; + /* 0x97C */ u32 field_0x97c; + /* 0x980 */ f32 field_0x980; + /* 0x984 */ f32 field_0x984; + /* 0x988 */ f32 field_0x988; + /* 0x98C */ f32 field_0x98c; /* 0x990 */ cXyz field_0x990; /* 0x99C */ cXyz field_0x99c; /* 0x9A8 */ f32 field_0x9a8; |
