Skip to content

Commit 773c0ad

Browse files
d_a_npc_cd work (#2429)
* Work on create function * General work * Pull request cleanup * Remove unnecessary semicolon --------- Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
1 parent efcf241 commit 773c0ad

File tree

2 files changed

+461
-414
lines changed

2 files changed

+461
-414
lines changed

include/d/actor/d_a_npc_cd.h

Lines changed: 112 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,128 @@
44
#include "Z2AudioLib/Z2Creature.h"
55
#include "d/d_com_inf_game.h"
66

7+
struct daNpcCd_HIO_Jnt_c : public JORReflexible {
8+
/* 80157810 */ virtual ~daNpcCd_HIO_Jnt_c() {}
9+
/* 801578B0 */ daNpcCd_HIO_Jnt_c() {}
10+
11+
void genMessage(JORMContext*);
12+
13+
/* 0x04 */ cXyz jntT;
14+
/* 0x10 */ csXyz jntR;
15+
};
16+
17+
struct daNpcCd_HIO_Child_c {
18+
/* 801577A0 */ virtual ~daNpcCd_HIO_Child_c() {}
19+
/* 80157858 */ daNpcCd_HIO_Child_c() {}
20+
21+
/* 0x004 */ daNpcCd_HIO_Jnt_c field_0x4[12];
22+
/* 0x128 */ s16 mAtn;
23+
};
24+
25+
struct daNpcCd_HIO_c : public fOpAcm_HIO_entry_c {
26+
/* 80157600 */ daNpcCd_HIO_c();
27+
/* 801577A0 */ virtual ~daNpcCd_HIO_c() {}
28+
29+
void genMessage(JORMContext*);
30+
31+
/* 0x0004 */ daNpcCd_HIO_Child_c field_0x0004[16];
32+
/* 0x1648 */ daNpcCd_HIO_Child_c field_0x1648[14];
33+
};
34+
35+
extern daNpcCd_HIO_c l_Cd_HIO;
36+
37+
inline s16 HIO_atnOfs(int param_1) {
38+
s16 rv;
39+
if (param_1 < 16) {
40+
rv = l_Cd_HIO.field_0x0004[param_1].mAtn;
41+
} else {
42+
rv = l_Cd_HIO.field_0x0004[param_1 - 16].mAtn;
43+
}
44+
return rv;
45+
}
46+
47+
inline s16 HIO_jntRX(int param_1, int param_2) {
48+
s16 rv;
49+
if (param_1 < 16) {
50+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.x;
51+
} else {
52+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.x;
53+
}
54+
return 182.04444885253906f * rv;
55+
}
56+
57+
inline s16 HIO_jntRY(int param_1, int param_2) {
58+
s16 rv;
59+
if (param_1 < 16) {
60+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.y;
61+
} else {
62+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.y;
63+
}
64+
return 182.04444885253906f * rv;
65+
}
66+
67+
inline s16 HIO_jntRZ(int param_1, int param_2) {
68+
s16 rv;
69+
if (param_1 < 16) {
70+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.z;
71+
} else {
72+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.z;
73+
}
74+
return 182.04444885253906f * rv;
75+
}
76+
77+
static inline f32 HIO_jntTX(int param_1, int param_2) {
78+
f32 rv;
79+
if (param_1 < 16) {
80+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.x;
81+
} else {
82+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.x;
83+
}
84+
return 10.0f * rv;
85+
}
86+
87+
static inline f32 HIO_jntTY(int param_1, int param_2) {
88+
f32 rv;
89+
if (param_1 < 16) {
90+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.y;
91+
} else {
92+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.y;
93+
}
94+
return 10.0f * rv;
95+
}
96+
97+
static inline f32 HIO_jntTZ(int param_1, int param_2) {
98+
f32 rv;
99+
if (param_1 < 16) {
100+
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.z;
101+
} else {
102+
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.z;
103+
}
104+
return 10.0f * rv;
105+
}
106+
7107
class daNpcCd_c : public fopAc_ac_c {
8108
public:
9109
/* 8015605C */ int NpcCreate(int);
10110
/* 801561E8 */ J3DModel* ObjCreate(int);
11-
/* 80156228 */ void isM_();
12-
/* 80156248 */ void getAnmP(int, int);
13-
/* 801563C8 */ void setAttention(int);
111+
/* 80156228 */ BOOL isM_();
112+
/* 80156248 */ J3DAnmTransform* getAnmP(int, int);
113+
/* 801563C8 */ int setAttention(int);
14114
/* 80156B4C */ int loadResrc(int, int);
15115
/* 80156C50 */ int removeResrc(int, int);
16116
/* 80156D1C */ void setEnvTevCol();
17117
/* 80156D78 */ void setRoomNo();
18118
/* 80156DBC */ void animation();
19119
/* 80156E20 */ void setAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
20-
/* 80156E8C */ void drawObj(int, J3DModel*, f32);
21-
/* 80156F74 */ void drawNpc();
22-
/* 80157084 */ void jntNodeCB(J3DJoint*, J3DModel*);
120+
/* 80156E8C */ int drawObj(int, J3DModel*, f32);
121+
/* 80156F74 */ int drawNpc();
122+
/* 80157084 */ int jntNodeCB(J3DJoint*, J3DModel*);
23123
/* 8015736C */ void setHitodamaParticle();
24124
/* 80157524 */ J3DModelData* getNpcMdlDataP(int);
25125
/* 80157588 */ J3DModelData* getObjMdlDataP(int);
26126
/* 80AA8694 */ virtual ~daNpcCd_c();
27127

28-
static u8 const m_cylDat[68];
128+
static dCcD_SrcCyl const m_cylDat;
29129

30130
/* 0x56C */ request_of_phase_process_class mPhase1;
31131
/* 0x574 */ request_of_phase_process_class mPhase2;
@@ -37,13 +137,14 @@ class daNpcCd_c : public fopAc_ac_c {
37137
/* 0x80C */ dBgS_AcchCir mAcchCir;
38138
/* 0x84C */ dCcD_Stts mStts;
39139
/* 0x888 */ dCcD_Cyl mCyl;
40-
/* 0x9C4 */ u32 field_0x9c4;
140+
/* 0x9C4 */ int field_0x9c4;
41141
/* 0x9C8 */ int field_0x9c8;
42-
/* 0x9CC */ int field_0x9cc[3];
142+
/* 0x9CC */ int mHitodamaEmitters[2];
143+
/* 0x9D4 */ int field_0x9d4;
43144
/* 0x9D8 */ cXyz field_0x9d8;
44-
/* 0x9E4 */ u16 field_0x9e4;
145+
/* 0x9E4 */ s16 field_0x9e4;
45146
/* 0x9E6 */ s16 field_0x9e6;
46-
/* 0x9E8 */ bool field_0x9e8;
147+
/* 0x9E8 */ bool mIsDarkWorld;
47148
};
48149

49150
#endif /* A_NPC_D_A_NPC_CD_H */

0 commit comments

Comments
 (0)