summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-11-09 01:20:51 -0800
committerGitHub <noreply@github.com>2025-11-09 11:20:51 +0200
commit4b5277295ed47d4c83105d06af6df49cfcfafd56 (patch)
tree14c243e4df362ddf63f86a62bf9dc18ce1ade4bb /include/d
parente49519229cd6b3974739f6e789f3bccb7ef302a3 (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.h41
-rw-r--r--include/d/actor/d_a_npc_myna2.h110
-rw-r--r--include/d/d_com_inf_game.h4
-rw-r--r--include/d/d_save.h5
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;