Skip to content

Commit 8a8dcff

Browse files
committed
Initial d_a_npc_saru work
1 parent b1e3ceb commit 8a8dcff

File tree

3 files changed

+420
-316
lines changed

3 files changed

+420
-316
lines changed

include/d/actor/d_a_e_ym.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ class daE_YM_c : public fopEn_enemy_c {
134134
void setFriendFlag(u8 i_flag) { mFriendFlag |= i_flag; }
135135
u8 getFriendFlag() { return mFriendFlag; }
136136
u8 getSwitchBit() { return mSwitchBit; }
137+
u8 isHide() { return mIsHide; }
137138

138139
private:
139140
/* 0x5AC */ request_of_phase_process_class mPhase;

include/d/actor/d_a_npc_saru.h

Lines changed: 110 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,94 @@
1111
* @details
1212
*
1313
*/
14-
class daNpc_Saru_c : public fopAc_ac_c {
14+
15+
#ifdef DEBUG
16+
class daNpc_Saru_HIO_c : public mDoHIO_entry_c {
17+
18+
};
19+
#endif
20+
21+
class daNpc_Saru_Param_c {
22+
public:
23+
/* 80AC448C */ ~daNpc_Saru_Param_c();
24+
25+
struct Data {
26+
/* 0x00 */ f32 field_0x00;
27+
/* 0x04 */ f32 field_0x04;
28+
/* 0x08 */ u32 field_0x08;
29+
/* 0x0C */ u32 field_0x0c;
30+
/* 0x10 */ f32 mWeight;
31+
/* 0x14 */ u32 field_0x14;
32+
/* 0x18 */ u32 field_0x18;
33+
/* 0x1C */ u32 field_0x1c;
34+
/* 0x20 */ u32 field_0x20;
35+
/* 0x24 */ u32 field_0x24;
36+
/* 0x28 */ u32 field_0x28;
37+
/* 0x2C */ u32 field_0x2c;
38+
/* 0x30 */ u32 field_0x30;
39+
/* 0x34 */ u32 field_0x34;
40+
/* 0x38 */ u32 field_0x38;
41+
/* 0x3C */ u32 field_0x3c;
42+
/* 0x40 */ u32 field_0x40;
43+
/* 0x44 */ u32 field_0x44;
44+
/* 0x48 */ u32 field_0x48;
45+
/* 0x4C */ u32 field_0x4c;
46+
/* 0x50 */ u32 field_0x50;
47+
/* 0x54 */ u32 field_0x54;
48+
/* 0x58 */ u32 field_0x58;
49+
/* 0x5C */ u32 field_0x5c;
50+
/* 0x60 */ u32 field_0x60;
51+
/* 0x64 */ u32 field_0x64;
52+
/* 0x68 */ u32 field_0x68;
53+
/* 0x6C */ u32 field_0x6c;
54+
/* 0x70 */ u32 field_0x70;
55+
/* 0x74 */ u32 field_0x74;
56+
/* 0x78 */ u32 field_0x78;
57+
/* 0x7C */ u32 field_0x7c;
58+
/* 0x80 */ u32 field_0x80;
59+
/* 0x84 */ u32 field_0x84;
60+
/* 0x88 */ u32 field_0x88;
61+
/* 0x8C */ u32 field_0x8c;
62+
};
63+
64+
static const Data m;
65+
};
66+
67+
class daNpc_Saru_c : public daNpcT_c {
1568
public:
69+
typedef int (daNpc_Saru_c::*actionFunc)(void*);
70+
71+
enum Type {
72+
TYPE_0,
73+
TYPE_1,
74+
TYPE_2,
75+
TYPE_3,
76+
};
77+
1678
/* 80AC042C */ ~daNpc_Saru_c();
17-
/* 80AC0578 */ void create();
18-
/* 80AC082C */ void CreateHeap();
19-
/* 80AC0A54 */ void Delete();
20-
/* 80AC0A88 */ void Execute();
21-
/* 80AC0AA8 */ void Draw();
22-
/* 80AC0AEC */ void createHeapCallBack(fopAc_ac_c*);
23-
/* 80AC0B0C */ void ctrlJointCallBack(J3DJoint*, int);
24-
/* 80AC0B64 */ void srchYm(void*, void*);
25-
/* 80AC0C0C */ void getType();
26-
/* 80AC0C58 */ void isDelete();
79+
/* 80AC0578 */ int create();
80+
/* 80AC082C */ int CreateHeap();
81+
/* 80AC0A54 */ int Delete();
82+
/* 80AC0A88 */ int Execute();
83+
/* 80AC0AA8 */ int Draw();
84+
/* 80AC0AEC */ static int createHeapCallBack(fopAc_ac_c*);
85+
/* 80AC0B0C */ static int ctrlJointCallBack(J3DJoint*, int);
86+
/* 80AC0B64 */ void* srchYm(void*, void*);
87+
/* 80AC0C0C */ u8 getType();
88+
/* 80AC0C58 */ int isDelete();
2789
/* 80AC0CE8 */ void reset();
2890
/* 80AC0EA4 */ void afterJntAnm(int);
29-
/* 80AC0F28 */ void checkChangeEvt();
91+
/* 80AC0F28 */ BOOL checkChangeEvt();
3092
/* 80AC0FDC */ void setParam();
3193
/* 80AC1110 */ void setAfterTalkMotion();
3294
/* 80AC1170 */ void srchActors();
33-
/* 80AC11D4 */ void evtTalk();
34-
/* 80AC1274 */ void evtCutProc();
95+
/* 80AC11D4 */ BOOL evtTalk();
96+
/* 80AC1274 */ BOOL evtCutProc();
3597
/* 80AC133C */ void action();
3698
/* 80AC14E4 */ void beforeMove();
3799
/* 80AC15B4 */ void setAttnPos();
38100
/* 80AC18A0 */ void setCollision();
39-
/* 80AC1A20 */ bool drawDbgInfo();
101+
/* 80AC1A20 */ int drawDbgInfo();
40102
/* 80AC1A28 */ void drawOtherMdl();
41103
/* 80AC1B30 */ void selectAction();
42104
/* 80AC1B78 */ void chkAction(int (daNpc_Saru_c::*)(void*));
@@ -47,29 +109,48 @@ class daNpc_Saru_c : public fopAc_ac_c {
47109
/* 80AC2598 */ void cutYmLook(int);
48110
/* 80AC28A4 */ void wait(void*);
49111
/* 80AC2FD8 */ void talk(void*);
50-
/* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
51-
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
52-
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
53-
daNpcT_evtData_c const*, char**);
112+
/* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
113+
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
114+
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
115+
daNpcT_evtData_c const* param_7, char** param_8) :
116+
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
117+
{}
54118
/* 80AC4474 */ s32 getHeadJointNo();
55119
/* 80AC447C */ s32 getNeckJointNo();
56-
/* 80AC4484 */ bool getBackboneJointNo();
120+
/* 80AC4484 */ s32 getBackboneJointNo();
121+
122+
u32 getFlowNodeNo() {
123+
u16 rv = home.angle.x;
124+
if (rv == 0xffff) {
125+
return -1;
126+
}
127+
return rv;
128+
}
129+
130+
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
131+
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
57132

58133
static void* mCutNameList[4];
59134
static u8 mCutList[48];
60135

61136
private:
62-
/* 0x568 */ u8 field_0x568[0xfe0 - 0x568];
137+
#ifdef DEBUG
138+
/* 0xE90 */ daNpc_Saru_HIO_c* field_0xe90;
139+
#endif
140+
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
141+
/* 0xE44 */ J3DModel* field_0xe44[2];
142+
/* 0xE4C */ dCcD_Cyl field_0xe4c;
143+
/* 0xF88 */ u8 mType;
144+
/* 0xF89 */ u8 field_0xf89[0xf8c - 0xf89];
145+
/* 0xF8C */ daNpcT_ActorMngr_c field_0xf8c;
146+
/* 0xF94 */ daNpcT_Path_c field_0xf94;
147+
/* 0xFBC */ actionFunc field_0xfbc;
148+
/* 0xFC8 */ u8 field_0xfc8[0xfd9 - 0xfc8];
149+
/* 0xFD9 */ u8 field_0xfd9;
150+
/* 0xFDA */ u8 field_0xfda[0xfdc - 0xfda];
151+
/* 0xFDC */ int field_0xfdc;
63152
};
64153

65154
STATIC_ASSERT(sizeof(daNpc_Saru_c) == 0xfe0);
66155

67-
class daNpc_Saru_Param_c {
68-
public:
69-
/* 80AC448C */ ~daNpc_Saru_Param_c();
70-
71-
static u8 const m[144];
72-
};
73-
74-
75156
#endif /* D_A_NPC_SARU_H */

0 commit comments

Comments
 (0)