Skip to content

Commit c0e0bba

Browse files
authored
Clean up HIO for TUs using HIOParam/Param_c/HIO_c pattern (#3043)
1 parent 235cb9a commit c0e0bba

File tree

143 files changed

+6206
-4085
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+6206
-4085
lines changed

include/d/actor/d_a_bullet.h

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@
55
#include "d/d_bg_s_acch.h"
66
#include "d/d_cc_d.h"
77

8+
struct daBullet_HIOParam {
9+
/* 0x00 */ f32 gravity;
10+
/* 0x04 */ f32 weight;
11+
/* 0x08 */ f32 height;
12+
/* 0x0C */ f32 knee_height;
13+
/* 0x10 */ f32 width;
14+
/* 0x14 */ s16 lifetime;
15+
};
16+
17+
class daBullet_Param_c {
18+
public:
19+
virtual ~daBullet_Param_c() {}
20+
21+
static daBullet_HIOParam const m;
22+
};
23+
24+
#if DEBUG
25+
class daBullet_HIO_c : public mDoHIO_entry_c {
26+
public:
27+
daBullet_HIO_c();
28+
29+
void listenPropertyEvent(const JORPropertyEvent*);
30+
31+
void genMessage(JORMContext*);
32+
33+
daBullet_HIOParam m;
34+
};
35+
36+
#define BULLET_HIO_CLASS daBullet_HIO_c
37+
#else
38+
#define BULLET_HIO_CLASS daBullet_Param_c
39+
#endif
40+
841
/**
942
* @ingroup actors-unsorted
1043
* @class daBullet_c
@@ -24,7 +57,7 @@ class daBullet_c : public fopAc_ac_c {
2457
/* 0x788 */ dBgS_AcchCir mAcchCir;
2558
/* 0x7C8 */ dCcD_Sph mCcSph;
2659
/* 0x900 */ cBgS_GndChk mGndChk;
27-
/* 0x93C */ u8 field_0x93C[0x940 - 0x93C];
60+
/* 0x93C */ BULLET_HIO_CLASS* mpHIO;
2861
/* 0x940 */ f32 mGroundY;
2962
/* 0x944 */ processFn mProcess;
3063
/* 0x950 */ int mLifetime;
@@ -53,21 +86,4 @@ class daBullet_c : public fopAc_ac_c {
5386

5487
STATIC_ASSERT(sizeof(daBullet_c) == 0x95c);
5588

56-
struct daBullet_HIOParam {
57-
/* 0x00 */ f32 gravity;
58-
/* 0x04 */ f32 weight;
59-
/* 0x08 */ f32 height;
60-
/* 0x0C */ f32 knee_height;
61-
/* 0x10 */ f32 width;
62-
/* 0x14 */ s16 lifetime;
63-
};
64-
65-
class daBullet_Param_c {
66-
public:
67-
virtual ~daBullet_Param_c() {}
68-
69-
static daBullet_HIOParam const m;
70-
};
71-
72-
7389
#endif /* D_A_BULLET_H */

include/d/actor/d_a_npc_aru.h

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,6 @@
33

44
#include "d/actor/d_a_npc.h"
55

6-
/**
7-
* @ingroup actors-npcs
8-
* @class daNpc_Aru_c
9-
* @brief Fado
10-
*
11-
* @details
12-
*
13-
*/
14-
156
struct daNpc_Aru_HIOParam {
167
/* 0x00 */ daNpcT_HIOParam common;
178
/* 0x8C */ f32 warning_range; // 警戒範囲 - Warning Range
@@ -22,18 +13,37 @@ struct daNpc_Aru_HIOParam {
2213
/* 0x9C */ f32 forward_visibility; // 前方視界 - Forward Visibility
2314
};
2415

25-
class daNpc_Aru_HIO_c : public mDoHIO_entry_c {
26-
public:
27-
/* 0x8 */ daNpc_Aru_HIOParam param;
28-
};
29-
3016
class daNpc_Aru_Param_c {
3117
public:
3218
virtual ~daNpc_Aru_Param_c() {}
3319

3420
static daNpc_Aru_HIOParam const m;
3521
};
3622

23+
#if DEBUG
24+
class daNpc_Aru_HIO_c : public mDoHIO_entry_c {
25+
public:
26+
daNpc_Aru_HIO_c();
27+
28+
void listenPropertyEvent(const JORPropertyEvent*);
29+
30+
void genMessage(JORMContext*);
31+
32+
/* 0x8 */ daNpc_Aru_HIOParam m;
33+
};
34+
#define NPC_ARU_HIO_CLASS daNpc_Aru_HIO_c
35+
#else
36+
#define NPC_ARU_HIO_CLASS daNpc_Aru_Param_c
37+
#endif
38+
39+
/**
40+
* @ingroup actors-npcs
41+
* @class daNpc_Aru_c
42+
* @brief Fado
43+
*
44+
* @details
45+
*
46+
*/
3747
class daNpc_Aru_c : public daNpcT_c {
3848
public:
3949
enum Joint {
@@ -168,7 +178,7 @@ class daNpc_Aru_c : public daNpcT_c {
168178
static cutFunc mCutList[7];
169179

170180
private:
171-
/* 0xE40 */ daNpc_Aru_HIO_c* mHIO;
181+
/* 0xE40 */ NPC_ARU_HIO_CLASS* mpHIO;
172182
/* 0xE44 */ dCcD_Cyl mCyl;
173183
/* 0xF80 */ u8 mType;
174184
/* 0xF84 */ daNpcT_ActorMngr_c mActorMngrs[4];

include/d/actor/d_a_npc_besu.h

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,35 @@
66
#endif
77
#include "d/actor/d_a_npc.h"
88

9+
struct daNpc_Besu_HIOParam {
10+
/* 0x00 */ daNpcT_HIOParam common;
11+
/* 0x8C */ f32 field_0x8c;
12+
};
13+
14+
class daNpc_Besu_Param_c {
15+
public:
16+
virtual ~daNpc_Besu_Param_c() {}
17+
18+
static const daNpc_Besu_HIOParam m;
19+
};
20+
21+
#if DEBUG
22+
class daNpc_Besu_HIO_c : public mDoHIO_entry_c {
23+
public:
24+
daNpc_Besu_HIO_c();
25+
26+
void listenPropertyEvent(const JORPropertyEvent*);
27+
28+
void genMessage(JORMContext*);
29+
30+
daNpc_Besu_HIOParam m;
31+
};
32+
33+
#define NPC_BESU_HIO_CLASS daNpc_Besu_HIO_c
34+
#else
35+
#define NPC_BESU_HIO_CLASS daNpc_Besu_Param_c
36+
#endif
37+
938
/**
1039
* @ingroup actors-npcs
1140
* @class daNpc_Besu_c
@@ -116,7 +145,7 @@ class daNpc_Besu_c : public daNpcT_c {
116145

117146
private:
118147
/* 0x0E40 */ mDoExt_McaMorfSO* mpCupModelMorf;
119-
/* 0x0E44 */ u8 field_0xe44[0x0E48 - 0xE44];
148+
/* 0x0E44 */ NPC_BESU_HIO_CLASS* mpHIO;
120149
/* 0x0E48 */ J3DModel* mpClothModel[1];
121150
/* 0x0E4C */ dCcD_Cyl mCyl1;
122151
/* 0x0F88 */ dCcD_Cyl mCyl2;
@@ -140,16 +169,4 @@ class daNpc_Besu_c : public daNpcT_c {
140169

141170
STATIC_ASSERT(sizeof(daNpc_Besu_c) == 0x1138);
142171

143-
struct daNpc_Besu_HIOParam {
144-
/* 0x00 */ daNpcT_HIOParam common;
145-
/* 0x8C */ f32 field_0x8c;
146-
};
147-
148-
class daNpc_Besu_Param_c {
149-
public:
150-
virtual ~daNpc_Besu_Param_c() {}
151-
152-
static const daNpc_Besu_HIOParam m;
153-
};
154-
155172
#endif /* D_A_NPC_BESU_H */

include/d/actor/d_a_npc_blue_ns.h

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,33 @@
55
#include "d/actor/d_a_tag_yami.h"
66
#include "d/actor/d_a_obj_carry.h"
77

8+
struct daNpcBlueNS_HIOParam {
9+
/* 0x00 */ daNpcF_HIOParam common;
10+
/* 0x6C */ f32 field_0x6c;
11+
};
12+
13+
class daNpcBlueNS_Param_c {
14+
public:
15+
virtual ~daNpcBlueNS_Param_c() {}
16+
17+
static const daNpcBlueNS_HIOParam m;
18+
};
19+
20+
#if DEBUG
21+
class daNpcBlueNS_HIO_c : public mDoHIO_entry_c {
22+
public:
23+
daNpcBlueNS_HIO_c();
24+
25+
void genMessage(JORMContext*);
26+
27+
daNpcBlueNS_HIOParam m;
28+
};
29+
30+
#define NPC_BLUE_NS_HIO_CLASS daNpcBlueNS_HIO_c
31+
#else
32+
#define NPC_BLUE_NS_HIO_CLASS daNpcBlueNS_Param_c
33+
#endif
34+
835
/**
936
* @ingroup actors-npcs
1037
* @class daNpcBlueNS_c
@@ -103,7 +130,7 @@ class daNpcBlueNS_c : public daNpcF_c {
103130
/* 0xBD8 */ u8 field_0xBD8[0xBDC - 0xBD8];
104131
/* 0xBDC */ daNpcF_Lookat_c mLookat;
105132
/* 0xC78 */ daNpcF_ActorMngr_c mActorMngr[1];
106-
/* 0xC80 */ u8 field_0xC80[0xC84 - 0xC80];
133+
/* 0xC80 */ NPC_BLUE_NS_HIO_CLASS* mpHIO;
107134
/* 0xC84 */ dCcD_Cyl mCyl;
108135
/* 0xDC0 */ u16 field_0xdc0;
109136
/* 0xDC4 */ int (daNpcBlueNS_c::*mAction)(int);
@@ -130,17 +157,5 @@ class daNpcBlueNS_c : public daNpcF_c {
130157

131158
STATIC_ASSERT(sizeof(daNpcBlueNS_c) == 0xe14);
132159

133-
struct daNpcBlueNS_HIOParam {
134-
/* 0x00 */ daNpcF_HIOParam common;
135-
/* 0x6C */ f32 field_0x6c;
136-
};
137-
138-
class daNpcBlueNS_Param_c {
139-
public:
140-
virtual ~daNpcBlueNS_Param_c() {}
141-
142-
static const daNpcBlueNS_HIOParam m;
143-
};
144-
145160

146161
#endif /* D_A_NPC_BLUE_NS_H */

include/d/actor/d_a_npc_bou.h

Lines changed: 36 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,38 @@
33

44
#include "d/actor/d_a_npc.h"
55

6+
struct daNpc_Bou_HIOParam {
7+
/* 0x00 */ daNpcT_HIOParam common;
8+
/* 0x8C */ f32 field_0x8c; // 16.0f
9+
/* 0x90 */ f32 field_0x90; // 1000.0f
10+
/* 0x94 */ f32 field_0x94; // 500.0f
11+
/* 0x98 */ f32 field_0x98; // -500.0f
12+
};
13+
14+
class daNpc_Bou_Param_c {
15+
public:
16+
virtual ~daNpc_Bou_Param_c() {}
17+
18+
static const daNpc_Bou_HIOParam m;
19+
};
20+
21+
#if DEBUG
22+
class daNpc_Bou_HIO_c : public mDoHIO_entry_c {
23+
public:
24+
daNpc_Bou_HIO_c();
25+
virtual ~daNpc_Bou_HIO_c() {}
26+
27+
void listenPropertyEvent(const JORPropertyEvent*);
28+
29+
void genMessage(JORMContext*);
30+
31+
daNpc_Bou_HIOParam m;
32+
};
33+
#define NPC_BOU_HIO_CLASS daNpc_Bou_HIO_c
34+
#else
35+
#define NPC_BOU_HIO_CLASS daNpc_Bou_Param_c
36+
#endif
37+
638
/**
739
* @ingroup actors-npcs
840
* @class daNpc_Bou_c
@@ -11,58 +43,6 @@
1143
* @details
1244
*
1345
*/
14-
class daNpc_Bou_Param_c {
15-
public:
16-
virtual ~daNpc_Bou_Param_c() {}
17-
18-
struct Data {
19-
/* 0x00 */ f32 field_0x00; // 255.0f
20-
/* 0x04 */ f32 field_0x04; // 3.0f
21-
/* 0x08 */ f32 field_0x08; // 1.0f
22-
/* 0x0C */ f32 field_0x0c; // 600.0f
23-
/* 0x10 */ f32 field_0x10; // 255.0f
24-
/* 0x14 */ f32 field_0x14; // 200.0f
25-
/* 0x18 */ f32 field_0x18; // 35.0f
26-
/* 0x1C */ f32 field_0x1c; // 40.0f
27-
/* 0x20 */ f32 field_0x20; // 0.0f
28-
/* 0x24 */ f32 field_0x24; // 0.0f
29-
/* 0x28 */ f32 field_0x28; // 10.0f
30-
/* 0x2C */ f32 field_0x2c; // -10.0f
31-
/* 0x30 */ f32 field_0x30; // 30.0f
32-
/* 0x34 */ f32 field_0x34; // -10.0f
33-
/* 0x38 */ f32 field_0x38; // 45.0f
34-
/* 0x3C */ f32 field_0x3c; // -45.0f
35-
/* 0x40 */ f32 field_0x40; // 0.6f
36-
/* 0x44 */ f32 field_0x44; // 12.0f
37-
/* 0x48 */ s16 field_0x48; // 3
38-
/* 0x4a */ s16 field_0x4a; // 6
39-
/* 0x4c */ s16 field_0x4c; // 5
40-
/* 0x4e */ s16 field_0x4e; // 6
41-
/* 0x50 */ f32 field_0x50; // 110.0f
42-
/* 0x54 */ f32 field_0x54; // 500.0f
43-
/* 0x58 */ f32 field_0x58; // 300.0f
44-
/* 0x5c */ f32 field_0x5c; // -300.0f
45-
/* 0x60 */ s16 field_0x60; // 60
46-
/* 0x62 */ s16 field_0x62; // 8
47-
/* 0x64 */ f32 field_0x64; // 0.0f
48-
/* 0x68 */ f32 field_0x68; // 0.0f
49-
/* 0x6c */ f32 field_0x6c; // 4.0f
50-
/* 0x70 */ f32 field_0x70; // 0.0f
51-
/* 0x74 */ f32 field_0x74; // 0.0f
52-
/* 0x78 */ f32 field_0x78; // 0.0f
53-
/* 0x7c */ f32 field_0x7c; // 0.0f
54-
/* 0x80 */ f32 field_0x80; // 0.0f
55-
/* 0x84 */ f32 field_0x84; // 0.0f
56-
/* 0x88 */ f32 field_0x88; // 0.0f
57-
/* 0x8c */ f32 field_0x8c; // 16.0f
58-
/* 0x90 */ f32 field_0x90; // 1000.0f
59-
/* 0x94 */ f32 field_0x94; // 500.0f
60-
/* 0x98 */ f32 field_0x98; // -500.0f
61-
};
62-
63-
static const Data m;
64-
};
65-
6646
class daNpc_Bou_c : public daNpcT_c {
6747
public:
6848
typedef int (daNpc_Bou_c::*cutFunc)(int);
@@ -145,8 +125,9 @@ class daNpc_Bou_c : public daNpcT_c {
145125

146126
BOOL chkFindWolf() {
147127
int iVar1 = daNpcT_getDistTableIdx(field_0xfe0, field_0xfe4);
148-
return daNpcT_c::chkFindWolf(mCurAngle.y, iVar1, field_0xfdc, daNpc_Bou_Param_c::m.field_0x54,
149-
daNpc_Bou_Param_c::m.field_0x50, daNpc_Bou_Param_c::m.field_0x58, daNpc_Bou_Param_c::m.field_0x5c, 1);
128+
return daNpcT_c::chkFindWolf(mCurAngle.y, iVar1, field_0xfdc,
129+
mpHIO->m.common.search_distance, mpHIO->m.common.fov,
130+
mpHIO->m.common.search_height, mpHIO->m.common.search_depth, 1);
150131
}
151132

152133
int chkCondition(int i_val) {
@@ -187,7 +168,7 @@ class daNpc_Bou_c : public daNpcT_c {
187168
}
188169

189170
private:
190-
/* 0xE40 */ int field_0xe40;
171+
/* 0xE40 */ NPC_BOU_HIO_CLASS* mpHIO;
191172
/* 0xE44 */ dCcD_Cyl mCyl1;
192173
/* 0xF80 */ u8 mType;
193174
/* 0xF84 */ daNpcT_ActorMngr_c mActorMngr[3];

0 commit comments

Comments
 (0)