diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-09 01:20:51 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-09 11:20:51 +0200 |
| commit | 4b5277295ed47d4c83105d06af6df49cfcfafd56 (patch) | |
| tree | 14c243e4df362ddf63f86a62bf9dc18ce1ade4bb /include/d | |
| parent | e49519229cd6b3974739f6e789f3bccb7ef302a3 (diff) | |
npcinko / myna2 done (#2780)
* npcinko done
* myna2 done
* Use sound enum
* Use FALSE instead of false when returning BOOL
* Use look mode enum
* TRUE instead of true when returning bool
---------
Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/actor/d_a_npc_inko.h | 41 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_myna2.h | 110 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 4 | ||||
| -rw-r--r-- | include/d/d_save.h | 5 |
4 files changed, 116 insertions, 44 deletions
diff --git a/include/d/actor/d_a_npc_inko.h b/include/d/actor/d_a_npc_inko.h index ae0991908c..3b5358f1f2 100644 --- a/include/d/actor/d_a_npc_inko.h +++ b/include/d/actor/d_a_npc_inko.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_INKO_H #define D_A_NPC_INKO_H -#include "d/actor/d_a_npc.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_msg_flow.h" /** * @ingroup actors-npcs @@ -11,9 +12,41 @@ * @details * */ -class npc_inko_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x648 - 0x568]; +class npc_inko_class { +public: + /* 0x000 */ fopAc_ac_c actor; + /* 0x568 */ request_of_phase_process_class phase; + /* 0x570 */ u8 field_0x570; + /* 0x574 */ Z2SoundObjSimple sound; + /* 0x594 */ u8 field_0x594[0x596 - 0x594]; + /* 0x596 */ s16 field_0x596; + /* 0x598 */ s8 field_0x598; + /* 0x59A */ s16 field_0x59a; + /* 0x59C */ s16 field_0x59c[4]; + /* 0x5A4 */ int anmId; + /* 0x5A8 */ f32 field_0x5a8; + /* 0x5AC */ f32 field_0x5ac; + /* 0x5B0 */ f32 field_0x5b0; + /* 0x5B4 */ cXyz field_0x5b4; + /* 0x5C0 */ csXyz field_0x5c0; + /* 0x5C6 */ s8 field_0x5c6; + /* 0x5C8 */ csXyz field_0x5c8; + /* 0x5CE */ csXyz field_0x5ce; + /* 0x5D4 */ s16 field_0x5d4[2]; + /* 0x5D8 */ s16 field_0x5d8[2]; + /* 0x5DC */ s8 field_0x5dc[2]; + /* 0x5DE */ u8 field_0x5DE[0x5E0 - 0x5DE]; + /* 0x5E0 */ s16 field_0x5e0; + /* 0x5E2 */ s16 field_0x5e2; + /* 0x5E4 */ s8 field_0x5e4; + /* 0x5E6 */ s16 field_0x5e6; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ s16 field_0x5ec; + /* 0x5F0 */ mDoExt_McaMorf* anm_p; + /* 0x5F4 */ u8 field_0x5f4; + /* 0x5F5 */ u8 field_0x5f5; + /* 0x5F8 */ dMsgFlow_c msgflow; + /* 0x644 */ u8 field_0x644[0x648 - 0x644]; }; STATIC_ASSERT(sizeof(npc_inko_class) == 0x648); diff --git a/include/d/actor/d_a_npc_myna2.h b/include/d/actor/d_a_npc_myna2.h index 01dc6db10f..2c47c65aa6 100644 --- a/include/d/actor/d_a_npc_myna2.h +++ b/include/d/actor/d_a_npc_myna2.h @@ -6,65 +6,99 @@ /** * @ingroup actors-npcs * @class daNpc_myna2_c - * @brief PLumm + * @brief Plumm * * @details * */ -class daNpc_myna2_c : public fopAc_ac_c { +class daNpc_myna2_c : public daNpcF_c { public: + typedef BOOL (daNpc_myna2_c::*ActionFn)(void*); + typedef BOOL (daNpc_myna2_c::*EventFn)(int); + /* 80A83E8C */ daNpc_myna2_c(); - /* 80A840A0 */ ~daNpc_myna2_c(); - /* 80A842C8 */ void create(); - /* 80A845AC */ void CreateHeap(); - /* 80A846E0 */ void Delete(); - /* 80A84714 */ void Execute(); - /* 80A84734 */ void Draw(); - /* 80A847A8 */ void createHeapCallBack(fopAc_ac_c*); - /* 80A847C8 */ void setParam(); - /* 80A848B4 */ void main(); - /* 80A84B64 */ void setAttnPos(); - /* 80A84DAC */ void setExpressionBtp(int); - /* 80A84EAC */ bool setMotionAnm(int, f32); - /* 80A84FEC */ void setMotion(int, f32, int); - /* 80A85030 */ bool drawDbgInfo(); - /* 80A85038 */ void drawOtherMdls(); - /* 80A8503C */ void getTypeFromParam(); - /* 80A85094 */ void isDelete(); + /* 80A840A0 */ virtual ~daNpc_myna2_c(); + /* 80A842C8 */ int create(); + /* 80A845AC */ int CreateHeap(); + /* 80A846E0 */ int Delete(); + /* 80A84714 */ int Execute(); + /* 80A84734 */ int Draw(); + /* 80A847A8 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A8503C */ u8 getTypeFromParam(); + /* 80A85094 */ int isDelete(); /* 80A85160 */ void reset(); /* 80A85358 */ void playMotion(); - /* 80A855E8 */ void chkAction(int (daNpc_myna2_c::*)(void*)); - /* 80A85614 */ void setAction(int (daNpc_myna2_c::*)(void*)); - /* 80A856BC */ void selectAction(); + /* 80A855E8 */ int chkAction(int (daNpc_myna2_c::*)(void*)); + /* 80A85614 */ int setAction(int (daNpc_myna2_c::*)(void*)); + /* 80A856BC */ int selectAction(); /* 80A857B0 */ void doNormalAction(int); - /* 80A85894 */ void doEvent(); + /* 80A85894 */ BOOL doEvent(); /* 80A85BA4 */ void setLookMode(int); - /* 80A85BC8 */ void wait(void*); - /* 80A85C60 */ void waitHovering(void*); - /* 80A86194 */ void waitFailure(void*); - /* 80A862BC */ void waitGoal(void*); - /* 80A86400 */ void talk(void*); - /* 80A865FC */ void test(void*); - /* 80A866B0 */ void ECut_firstTalk(int); - /* 80A8684C */ void ECut_gameFailure(int); - /* 80A86A0C */ void ECut_gameGoal(int); - /* 80A86BEC */ void ECut_gameGoalSuccess(int); + /* 80A85BC8 */ int wait(void*); + /* 80A85C60 */ int waitHovering(void*); + /* 80A86194 */ int waitFailure(void*); + /* 80A862BC */ int waitGoal(void*); + /* 80A86400 */ int talk(void*); + /* 80A865FC */ int test(void*); + /* 80A866B0 */ int ECut_firstTalk(int); + /* 80A8684C */ int ECut_gameFailure(int); + /* 80A86A0C */ int ECut_gameGoal(int); + /* 80A86BEC */ int ECut_gameGoalSuccess(int); /* 80A86E8C */ void calcHovering(int, int); + /* 80A847C8 */ virtual void setParam(); + /* 80A848B4 */ virtual BOOL main(); + /* 80A84B64 */ virtual void setAttnPos(); + /* 80A84DAC */ virtual bool setExpressionBtp(int); + /* 80A84EAC */ virtual void setMotionAnm(int, f32); + /* 80A84FEC */ virtual void setMotion(int, f32, int); + /* 80A85030 */ virtual BOOL drawDbgInfo(); + /* 80A85038 */ virtual void drawOtherMdls(); + + int getType() { return mType; } + static char* mEvtCutNameList[5]; - static u8 mEvtCutList[60]; + static EventFn mEvtCutList[]; -private: - /* 0x568 */ u8 field_0x568[0xe34 - 0x568]; + /* 0xB48 */ u8 field_0xB48[0xB4C - 0xB48]; + /* 0xB4C */ daNpcF_Lookat_c mLookat; + /* 0xBE8 */ Z2CreatureSumomo mSound; + /* 0xC78 */ daNpcF_ActorMngr_c mActorMgrs[1]; + /* 0xC80 */ u8 field_0xC80[0xC84 - 0xC80]; + /* 0xC84 */ dCcD_Cyl mCyl; + /* 0xDC0 */ ActionFn mNextAction; + /* 0xDCC */ ActionFn mAction; + /* 0xDD8 */ request_of_phase_process_class mPhase[3]; + /* 0xDF0 */ fpc_ProcID mItemPid; + /* 0xDF4 */ int field_0xdf4; + /* 0xDF8 */ int field_0xdf8; + /* 0xDFC */ int field_0xdfc; + /* 0xE00 */ int field_0xe00; + /* 0xE04 */ int field_0xe04; + /* 0xE08 */ s16 mLookMode; + /* 0xE0A */ u16 mMode; + /* 0xE0C */ u8 mType; + /* 0xE0D */ u8 field_0xe0d; + /* 0xE10 */ cXyz field_0xe10; + /* 0xE1C */ cXyz field_0xe1c; + /* 0xE28 */ int field_0xe28; + /* 0xE2C */ int field_0xe2c; + /* 0xE30 */ f32 field_0xe30; }; STATIC_ASSERT(sizeof(daNpc_myna2_c) == 0xe34); +struct daNpc_myna2_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ f32 field_0x70; +}; + class daNpc_myna2_Param_c { public: - /* 80A883C8 */ ~daNpc_myna2_Param_c(); + /* 80A883C8 */ virtual ~daNpc_myna2_Param_c() {} - static u8 const m[116]; + static const daNpc_myna2_HIOParam m; }; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 5401dfdb45..448495a1d8 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1784,6 +1784,10 @@ inline u32 dComIfGs_getBalloonScore() { return g_dComIfG_gameInfo.info.getMiniGame().getBalloonScore(); } +inline void dComIfGs_setBalloonScore(u32 i_score) { + g_dComIfG_gameInfo.info.getMiniGame().setBalloonScore(i_score); +} + inline u8 dComIfGs_getTransformStatus() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getTransformStatus(); } diff --git a/include/d/d_save.h b/include/d/d_save.h index d83a7e35d9..bd1b360abb 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -674,11 +674,12 @@ class dSv_MiniGame_c { public: void init(); + void setBalloonScore(u32 i_score) { mBalloonScore = i_score; } + void setRaceGameTime(u32 i_time) { mRaceGameTime = i_time; } + u32 getRaceGameTime() const { return mRaceGameTime; } u32 getBalloonScore() const { return mBalloonScore; } - void setRaceGameTime(u32 i_time) { mRaceGameTime = i_time; } - private: /* 0x00 */ u8 unk0[1][4]; /* 0x04 */ u32 mStarTime; |
