Skip to content

Commit bbbda2b

Browse files
committed
npc_zero matching and some other npcts cleaned and linked
1 parent 4b729b0 commit bbbda2b

File tree

9 files changed

+883
-1368
lines changed

9 files changed

+883
-1368
lines changed

configure.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1856,7 +1856,7 @@ def MatchingFor(*versions) -> bool:
18561856
ActorRel(NonMatching, "d_a_npc_len"),
18571857
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_lf"),
18581858
ActorRel(NonMatching, "d_a_npc_lud"),
1859-
ActorRel(NonMatching, "d_a_npc_midp"),
1859+
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_midp"),
18601860
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_mk"),
18611861
ActorRel(NonMatching, "d_a_npc_moi"),
18621862
ActorRel(NonMatching, "d_a_npc_moir", extra_cflags=[DANPCF_C_HACK]),
@@ -1873,7 +1873,7 @@ def MatchingFor(*versions) -> bool:
18731873
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_prayer", extra_cflags=[DANPCF_C_HACK]),
18741874
ActorRel(NonMatching, "d_a_npc_raca"),
18751875
ActorRel(NonMatching, "d_a_npc_rafrel"),
1876-
ActorRel(NonMatching, "d_a_npc_saru"),
1876+
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_saru"),
18771877
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_seib"),
18781878
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_seic"),
18791879
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_seid"),
@@ -1908,8 +1908,8 @@ def MatchingFor(*versions) -> bool:
19081908
ActorRel(NonMatching, "d_a_npc_ykw"),
19091909
ActorRel(NonMatching, "d_a_npc_zanb"),
19101910
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zant"),
1911-
ActorRel(NonMatching, "d_a_npc_zelR"),
1912-
ActorRel(NonMatching, "d_a_npc_zelRo"),
1911+
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zelR"),
1912+
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zelRo"),
19131913
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelda"),
19141914
ActorRel(Equivalent, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]), # regalloc
19151915
ActorRel(NonMatching, "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]),

include/d/actor/d_a_npc_midp.h

Lines changed: 73 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,74 @@
1010
*
1111
* @details
1212
*
13-
*/
13+
*/
14+
15+
struct daNpc_midP_HIOParam {
16+
/* 0x0 */ daNpcT_HIOParam common;
17+
};
18+
19+
class daNpc_midP_HIO_c : public mDoHIO_entry_c {
20+
/* 0x8 */ daNpc_midP_HIOParam param;
21+
};
22+
23+
class daNpc_midP_Param_c {
24+
public:
25+
/* 80A73954 */ virtual ~daNpc_midP_Param_c() {}
26+
27+
static const daNpc_midP_HIOParam m;
28+
};
29+
1430
class daNpc_midP_c : public daNpcT_c {
1531
public:
32+
enum Joint {
33+
/* 0x00 */ JNT_CENTER,
34+
/* 0x01 */ JNT_BACKBONE1,
35+
/* 0x02 */ JNT_BACKBONE2,
36+
/* 0x03 */ JNT_NECK,
37+
/* 0x04 */ JNT_HEAD,
38+
/* 0x05 */ JNT_CHIN,
39+
/* 0x06 */ JNT_MAYUL,
40+
/* 0x07 */ JNT_MAYUR,
41+
/* 0x08 */ JNT_MOUTH,
42+
/* 0x09 */ JNT_SHOULDERL,
43+
/* 0x0A */ JNT_ARML1,
44+
/* 0x0B */ JNT_ARML2,
45+
/* 0x0C */ JNT_HANDL,
46+
/* 0x0D */ JNT_FINGERL1,
47+
/* 0x0E */ JNT_FINGERL2,
48+
/* 0x0F */ JNT_THAMBL,
49+
/* 0x10 */ JNT_MANTL1,
50+
/* 0x11 */ JNT_MANTL2,
51+
/* 0x12 */ JNT_MANT_ANIMEL1,
52+
/* 0x13 */ JNT_SHOULDERR,
53+
/* 0x14 */ JNT_ARMR1,
54+
/* 0x15 */ JNT_ARMR2,
55+
/* 0x16 */ JNT_HANDR,
56+
/* 0x17 */ JNT_FINGERR1,
57+
/* 0x18 */ JNT_FINGERR2,
58+
/* 0x19 */ JNT_THAMBR,
59+
/* 0x1A */ JNT_MANTR1,
60+
/* 0x1B */ JNT_MANTR2,
61+
/* 0x1C */ JNT_MANT_ANIMER1,
62+
/* 0x1D */ JNT_WAIST,
63+
/* 0x1E */ JNT_LEGL1,
64+
/* 0x1F */ JNT_LEGL2,
65+
/* 0x20 */ JNT_FOOTL,
66+
/* 0x21 */ JNT_TOEL,
67+
/* 0x22 */ JNT_LEGR1,
68+
/* 0x23 */ JNT_LEGR2,
69+
/* 0x24 */ JNT_FOOTR,
70+
/* 0x25 */ JNT_TOER,
71+
/* 0x26 */ JNT_MANTC1,
72+
/* 0x27 */ JNT_MANTC2,
73+
/* 0x28 */ JNT_MANT_ANIMEL2,
74+
/* 0x29 */ JNT_MANT_ANIMER2,
75+
/* 0x2A */ JNT_SKIRTB1,
76+
/* 0x2B */ JNT_SKIRTB2,
77+
/* 0x2C */ JNT_SKIRTF1,
78+
/* 0x2D */ JNT_SKIRTF2,
79+
};
80+
1681
typedef int (daNpc_midP_c::*cutFunc)(int);
1782
typedef int (daNpc_midP_c::*actionFunc)(void*);
1883

@@ -55,13 +120,13 @@ class daNpc_midP_c : public daNpcT_c {
55120
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
56121
daNpcT_evtData_c const* param_7, char** param_8) :
57122
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
58-
/* 80A7390C */ u16 getEyeballRMaterialNo();
59-
/* 80A73914 */ u16 getEyeballLMaterialNo();
60-
/* 80A7391C */ s32 getHeadJointNo();
61-
/* 80A73924 */ s32 getNeckJointNo();
62-
/* 80A7392C */ s32 getBackboneJointNo();
63-
/* 80A73934 */ BOOL checkChangeJoint(int);
64-
/* 80A73944 */ BOOL checkRemoveJoint(int);
123+
/* 80A7390C */ u16 getEyeballRMaterialNo() { return 3; }
124+
/* 80A73914 */ u16 getEyeballLMaterialNo() { return 2; }
125+
/* 80A7391C */ s32 getHeadJointNo() { return JNT_HEAD; }
126+
/* 80A73924 */ s32 getNeckJointNo() { return JNT_NECK; }
127+
/* 80A7392C */ s32 getBackboneJointNo() { return JNT_BACKBONE2; }
128+
/* 80A73934 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
129+
/* 80A73944 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
65130

66131
int getFlowNodeNo() {
67132
u16 nodeNo = home.angle.x;
@@ -86,53 +151,4 @@ class daNpc_midP_c : public daNpcT_c {
86151

87152
STATIC_ASSERT(sizeof(daNpc_midP_c) == 0xfa0);
88153

89-
class daNpc_midP_Param_c {
90-
public:
91-
/* 80A73954 */ ~daNpc_midP_Param_c();
92-
93-
struct Data {
94-
/* 0x00 */ f32 field_0x00;
95-
/* 0x04 */ f32 mGravity;
96-
/* 0x08 */ f32 mScale;
97-
/* 0x0C */ f32 field_0x0c;
98-
/* 0x10 */ f32 mWeight;
99-
/* 0x14 */ f32 mCylH;
100-
/* 0x18 */ f32 mWallH;
101-
/* 0x1C */ f32 mWallR;
102-
/* 0x20 */ f32 field_0x20;
103-
/* 0x24 */ f32 field_0x24;
104-
/* 0x28 */ f32 field_0x28;
105-
/* 0x2C */ f32 field_0x2c;
106-
/* 0x30 */ f32 field_0x30;
107-
/* 0x34 */ f32 field_0x34;
108-
/* 0x38 */ f32 field_0x38;
109-
/* 0x3C */ f32 field_0x3c;
110-
/* 0x40 */ f32 field_0x40;
111-
/* 0x44 */ f32 mMorfFrames;
112-
/* 0x48 */ s16 field_0x48;
113-
/* 0x4A */ s16 field_0x4a;
114-
/* 0x4C */ s16 field_0x4c;
115-
/* 0x4E */ s16 field_0x4e;
116-
/* 0x50 */ f32 mAttnFovY;
117-
/* 0x54 */ f32 field_0x54;
118-
/* 0x58 */ f32 field_0x58;
119-
/* 0x5C */ f32 field_0x5c;
120-
/* 0x60 */ s16 field_0x60;
121-
/* 0x62 */ s16 field_0x62;
122-
/* 0x64 */ int field_0x64;
123-
/* 0x68 */ int field_0x68;
124-
/* 0x6C */ f32 field_0x6c;
125-
/* 0x70 */ f32 field_0x70;
126-
/* 0x74 */ f32 field_0x74;
127-
/* 0x78 */ f32 field_0x78;
128-
/* 0x7C */ f32 field_0x7c;
129-
/* 0x80 */ f32 field_0x80;
130-
/* 0x84 */ f32 field_0x84;
131-
/* 0x88 */ f32 field_0x88;
132-
};
133-
134-
static const Data m;
135-
};
136-
137-
138154
#endif /* D_A_NPC_MIDP_H */

include/d/actor/d_a_npc_saru.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,9 @@
1010
*
1111
* @details
1212
*
13-
*/
14-
15-
struct daNpc_Saru_HIOParam
16-
{
13+
*/
1714

15+
struct daNpc_Saru_HIOParam {
1816
/* 0x00 */ daNpcT_HIOParam common;
1917
/* 0x8C */ s16 scared_time; // 怯える時間 - Scared Time
2018
/* 0x8E */ s16 field_0x8e;

include/d/actor/d_a_npc_zelR.h

Lines changed: 21 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,23 @@
1010
*
1111
* @details
1212
*
13-
*/
13+
*/
14+
15+
struct daNpc_ZelR_HIOParam {
16+
/* 0x0 */ daNpcT_HIOParam common;
17+
};
18+
19+
class daNpc_ZelR_HIO_c : public mDoHIO_entry_c {
20+
/* 0x8 */ daNpc_ZelR_HIOParam param;
21+
};
22+
23+
class daNpc_ZelR_Param_c {
24+
public:
25+
/* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {};
26+
27+
static const daNpc_ZelR_HIOParam m;
28+
};
29+
1430
class daNpc_ZelR_c : public daNpcT_c {
1531
public:
1632
typedef BOOL (daNpc_ZelR_c::*ActionFn)(void*);
@@ -57,10 +73,10 @@ class daNpc_ZelR_c : public daNpcT_c {
5773
daNpcT_evtData_c const* param_7, char** param_8) :
5874
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
5975
{}
60-
/* 80B71A34 */ u16 getEyeballRMaterialNo();
61-
/* 80B71A3C */ u16 getEyeballLMaterialNo();
62-
/* 80B71A44 */ s32 getHeadJointNo();
63-
/* 80B71A4C */ s32 getBackboneJointNo();
76+
/* 80B71A34 */ u16 getEyeballRMaterialNo() { return 3; }
77+
/* 80B71A3C */ u16 getEyeballLMaterialNo() { return 2; }
78+
/* 80B71A44 */ s32 getHeadJointNo() { return 3; }
79+
/* 80B71A4C */ s32 getBackboneJointNo() { return 1; }
6480
/* 80B71A54 */ BOOL checkChangeJoint(int param_1) { return param_1 == 3; };
6581
/* 80B71A64 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 13; };
6682

@@ -71,7 +87,6 @@ class daNpc_ZelR_c : public daNpcT_c {
7187
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
7288
/* 0xE44 */ dCcD_Cyl mCyl;
7389
/* 0xF80 */ u8 mType;
74-
/* 0xF81 */ u8 field_0xf81[0xf84 - 0xf81];
7590
/* 0xF84 */ ActionFn field_0xf84;
7691
/* 0xF90 */ ActionFn field_0xf90;
7792
/* 0xF9C */ daNpcT_Path_c mPath;
@@ -80,53 +95,5 @@ class daNpc_ZelR_c : public daNpcT_c {
8095

8196
STATIC_ASSERT(sizeof(daNpc_ZelR_c) == 0xfc8);
8297

83-
class daNpc_ZelR_Param_c {
84-
public:
85-
/* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {};
86-
87-
struct Data {
88-
/* 0x00 */ f32 field_0x0;
89-
/* 0x04 */ f32 mGravity;
90-
/* 0x08 */ f32 field_0x8;
91-
/* 0x0C */ f32 field_0xc;
92-
/* 0x10 */ f32 mWeight;
93-
/* 0x14 */ f32 mCylH;
94-
/* 0x18 */ f32 mWallH;
95-
/* 0x1C */ f32 mWallR;
96-
/* 0x20 */ f32 field_0x20;
97-
/* 0x24 */ f32 field_0x24;
98-
/* 0x28 */ f32 field_0x28;
99-
/* 0x2C */ f32 field_0x2c;
100-
/* 0x30 */ f32 field_0x30;
101-
/* 0x34 */ f32 field_0x34;
102-
/* 0x38 */ f32 field_0x38;
103-
/* 0x3C */ f32 field_0x3c;
104-
/* 0x40 */ f32 field_0x40;
105-
/* 0x44 */ f32 mMorfFrames;
106-
/* 0x48 */ s16 field_0x48;
107-
/* 0x4A */ s16 field_0x4a;
108-
/* 0x4C */ s16 field_0x4c;
109-
/* 0x4E */ s16 field_0x4e;
110-
/* 0x50 */ f32 field_0x50;
111-
/* 0x54 */ f32 field_0x54;
112-
/* 0x58 */ f32 field_0x58;
113-
/* 0x5C */ f32 field_0x5c;
114-
/* 0x60 */ s16 field_0x60;
115-
/* 0x62 */ s16 field_0x62;
116-
/* 0x64 */ f32 field_0x64;
117-
/* 0x68 */ f32 field_0x68;
118-
/* 0x6C */ f32 field_0x6c;
119-
/* 0x70 */ f32 field_0x70;
120-
/* 0x74 */ f32 field_0x74;
121-
/* 0x78 */ f32 field_0x78;
122-
/* 0x7C */ f32 field_0x7c;
123-
/* 0x80 */ f32 field_0x80;
124-
/* 0x84 */ f32 field_0x84;
125-
/* 0x88 */ f32 field_0x88;
126-
};
127-
128-
static const Data m;
129-
};
130-
13198

13299
#endif /* D_A_NPC_ZELR_H */

0 commit comments

Comments
 (0)