diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_bullet.h | 68 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_yousei.h | 57 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 1 |
3 files changed, 95 insertions, 31 deletions
diff --git a/include/d/actor/d_a_bullet.h b/include/d/actor/d_a_bullet.h index ff475943e3..6dde5f7148 100644 --- a/include/d/actor/d_a_bullet.h +++ b/include/d/actor/d_a_bullet.h @@ -1,8 +1,9 @@ #ifndef D_A_BULLET_H #define D_A_BULLET_H -#include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" /** * @ingroup actors-unsorted @@ -12,37 +13,60 @@ * @details * */ -class daBullet_c : public fopEn_enemy_c { +class daBullet_c : public fopAc_ac_c { public: - /* 8065594C */ ~daBullet_c(); - /* 80655B08 */ void create(); - /* 80655E5C */ void CreateHeap(); - /* 80655EDC */ void Delete(); - /* 80655F10 */ void Execute(); - /* 806560FC */ void Draw(); - /* 80656160 */ void createHeapCallBack(fopAc_ac_c*); - /* 80656180 */ void getResName(); - /* 80656198 */ void getBmdName(); - /* 806561B0 */ void getTypeFromParam(); - /* 806561D0 */ void initialize(); - /* 80656378 */ void setProcess(int (daBullet_c::*)(void*)); - /* 80656420 */ void wait(void*); - /* 806564B8 */ void move(void*); + typedef int (daBullet_c::*processFn)(void*); + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel; + /* 0x574 */ dBgS_ObjAcch mAcch; + /* 0x74C */ dCcD_Stts mCcStts; + /* 0x788 */ dBgS_AcchCir mAcchCir; + /* 0x7C8 */ dCcD_Sph mCcSph; + /* 0x900 */ cBgS_GndChk mGndChk; + /* 0x93C */ u8 field_0x93C[0x940 - 0x93C]; + /* 0x940 */ f32 mGroundY; + /* 0x944 */ processFn mProcess; + /* 0x950 */ int mLifetime; + /* 0x954 */ u16 mMode; + /* 0x956 */ u8 mType; + /* 0x957 */ u8 field_0x957; - static u8 const mCcDObjInfo[48]; - static u8 mCcDSph[64]; + /* 8065594C */ virtual ~daBullet_c(); + /* 80655B08 */ int create(); + /* 80655E5C */ BOOL CreateHeap(); + /* 80655EDC */ int Delete(); + /* 80655F10 */ int Execute(); + /* 806560FC */ int Draw(); + /* 80656160 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80656180 */ const char* getResName(); + /* 80656198 */ const char* getBmdName(); + /* 806561B0 */ int getTypeFromParam(); + /* 806561D0 */ void initialize(); + /* 80656378 */ int setProcess(processFn); + /* 80656420 */ int wait(void*); + /* 806564B8 */ int move(void*); -private: - /* 0x5ac */ u8 field_0x5ac[0x95c - 0x5ac]; + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcSph mCcDSph; }; STATIC_ASSERT(sizeof(daBullet_c) == 0x95c); +struct daBullet_HIOParam { + /* 0x00 */ f32 gravity; + /* 0x04 */ f32 weight; + /* 0x08 */ f32 height; + /* 0x0C */ f32 knee_height; + /* 0x10 */ f32 width; + /* 0x14 */ s16 lifetime; +}; + class daBullet_Param_c { public: - /* 806566A8 */ ~daBullet_Param_c(); + /* 806566A8 */ virtual ~daBullet_Param_c() {} - static u8 const m[24]; + static daBullet_HIOParam const m; }; diff --git a/include/d/actor/d_a_obj_yousei.h b/include/d/actor/d_a_obj_yousei.h index b2d0a659e3..edec4b6a87 100644 --- a/include/d/actor/d_a_obj_yousei.h +++ b/include/d/actor/d_a_obj_yousei.h @@ -2,6 +2,7 @@ #define D_A_OBJ_YOUSEI_H #include "f_op/f_op_actor_mng.h" +#include "d/actor/d_a_player.h" /** * @ingroup actors-objects @@ -11,7 +12,7 @@ * @details * */ -class daObjYOUSEI_c : public fopAc_ac_c { +class daObjYOUSEI_c : public fopEn_enemy_c { public: /* 804CE738 */ void InitCcSph(); /* 804CE7A4 */ void SetCcSph(); @@ -21,20 +22,58 @@ public: /* 804CF098 */ void LinkChk(); /* 804CF6C4 */ void WaitAction(); /* 804CFCE8 */ void LinkAction(); - /* 804D057C */ void LinkSearch(); - /* 804D065C */ void WayBgCheck(f32, f32, s16); + /* 804D057C */ bool LinkSearch(); + /* 804D065C */ bool WayBgCheck(f32, f32, s16); /* 804D0780 */ void CareAction(); /* 804D080C */ void CheckGround(); - /* 804D0988 */ void CheckWater(); + /* 804D0988 */ bool CheckWater(); /* 804D0AD0 */ void Action(); /* 804D0CCC */ void ObjHit(); - /* 804D0DF0 */ void Execute(); - /* 804D0F98 */ void Delete(); + /* 804D0DF0 */ int Execute(); + /* 804D0F98 */ int Delete(); /* 804D0FCC */ void setBaseMtx(); - /* 804D111C */ void create(); + /* 804D111C */ int create(); -private: - /* 0x568 */ u8 field_0x568[0xa4c - 0x568]; + inline int CreateHeap(); + inline int Draw(); + + /* 0x5AC */ u8 field_0x5ac; + /* 0x5AD */ u8 field_0x5ad; + /* 0x5AE */ u8 field_0x5ae; + /* 0x5AF */ u8 field_0x5af; + /* 0x5B0 */ cXyz field_0x5b0; + /* 0x5BC */ daPy_boomerangMove_c mBoomerangMove; + /* 0x5C8 */ u8 mPrm; + /* 0x5CA */ s16 mAction; + /* 0x5CC */ s16 mMode; + /* 0x5CE */ s16 mTimers[4]; + /* 0x5D6 */ s16 field_0x5d6; + /* 0x5D8 */ u8 field_0x5D8[0x5DA - 0x5D8]; + /* 0x5DA */ s16 mAngleTarget; + /* 0x5DC */ s16 field_0x5dc; + /* 0x5E0 */ f32 mSpeedVTarget; + /* 0x5E4 */ f32 mSpeedFTarget; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ f32 field_0x5ec; + /* 0x5F0 */ f32 mAnmSpeed; + /* 0x5F4 */ u8 field_0x5F4[0x5F8 - 0x5F4]; + /* 0x5F8 */ cXyz field_0x5f8; + /* 0x604 */ u32 field_0x604; + /* 0x608 */ u32 field_0x608; + /* 0x60C */ u32 field_0x60c; + /* 0x610 */ u32 field_0x610; + /* 0x614 */ f32 mDistToPlayer; + /* 0x618 */ s16 mAngleToPlayer; + /* 0x61A */ s16 field_0x61a; + /* 0x61C */ Z2Creature mSound; + /* 0x6AC */ u8 field_0x6AC[0x6B0 - 0x6AC]; + /* 0x6B0 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x6B4 */ u8 field_0x6B4[0x6BC - 0x6B4]; + /* 0x6BC */ dBgS_AcchCir mAcchCir; + /* 0x6FC */ dBgS_ObjAcch mAcch; + /* 0x8D4 */ dCcD_Stts mCcStts; + /* 0x910 */ dCcD_Sph mCcSph; + /* 0xA48 */ u8 field_0xa48[0xA4C - 0xA48]; }; STATIC_ASSERT(sizeof(daObjYOUSEI_c) == 0xa4c); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 340638859c..78a1434530 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -920,6 +920,7 @@ public: bool checkGrabThrow() const { return checkResetFlg0(RFLG0_GRAB_THROW); } bool checkMidnaAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_ATN_POS); } bool checkMidnaHairAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_HAIR_ATN_POS); } + bool checkAttentionLock() const { return checkResetFlg0(RFLG0_UNK_10000); } void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); } void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); } |
