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+
7107class daNpcCd_c : public fopAc_ac_c {
8108public:
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