Skip to content

Commit a18a828

Browse files
authored
Fixes and cleanup for d_a_npc_jagar to hit 99% matching (#2318)
1 parent 52b23ad commit a18a828

File tree

3 files changed

+257
-632
lines changed

3 files changed

+257
-632
lines changed

include/d/actor/d_a_npc_bou.h

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,29 @@
3535
/* 0x40 */ f32 field_0x40; // 0.6f
3636
/* 0x44 */ f32 field_0x44; // 12.0f
3737
/* 0x48 */ s16 field_0x48; // 3
38-
/* 0x4C */ s16 field_0x4c; // 6
39-
/* 0x50 */ s16 field_0x50; // 5
40-
/* 0x54 */ s16 field_0x54; // 6
41-
/* 0x58 */ f32 field_0x58; // 110.0f
42-
/* 0x5C */ f32 field_0x5c; // 500.0f
43-
/* 0x60 */ f32 field_0x60; // 300.0f
44-
/* 0x64 */ f32 field_0x64; // -300.0f
45-
/* 0x68 */ s16 field_0x68; // 60
46-
/* 0x6C */ s16 field_0x6c; // 8
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
4750
/* 0x70 */ f32 field_0x70; // 0.0f
4851
/* 0x74 */ f32 field_0x74; // 0.0f
49-
/* 0x78 */ f32 field_0x78; // 4.0f
50-
/* 0x7C */ f32 field_0x7c; // 0.0f
52+
/* 0x78 */ f32 field_0x78; // 0.0f
53+
/* 0x7c */ f32 field_0x7c; // 0.0f
5154
/* 0x80 */ f32 field_0x80; // 0.0f
5255
/* 0x84 */ f32 field_0x84; // 0.0f
5356
/* 0x88 */ f32 field_0x88; // 0.0f
54-
/* 0x8C */ f32 field_0x8c; // 0.0f
55-
/* 0x90 */ f32 field_0x90; // 0.0f
56-
/* 0x94 */ f32 field_0x94; // 0.0f
57-
/* 0x98 */ f32 field_0x98; // 16.0f
58-
/* 0x9C */ f32 field_0x9c; // 1000.0f
59-
/* 0x100 */ f32 field_0x100; // 500.0f
60-
/* 0x104 */ f32 field_0x104; // -500.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
6161
};
6262

6363
static const Data m;
@@ -133,8 +133,27 @@ class daNpc_Bou_c : public daNpcT_c {
133133

134134
BOOL chkFindWolf() {
135135
int iVar1 = daNpcT_getDistTableIdx(field_0xfe0, field_0xfe4);
136-
return daNpcT_c::chkFindWolf(mCurAngle.y, iVar1, field_0xfdc, daNpc_Bou_Param_c::m.field_0x5c,
137-
daNpc_Bou_Param_c::m.field_0x58, daNpc_Bou_Param_c::m.field_0x60, daNpc_Bou_Param_c::m.field_0x100, 1);
136+
return daNpcT_c::chkFindWolf(mCurAngle.y, iVar1, field_0xfdc, daNpc_Bou_Param_c::m.field_0x54,
137+
daNpc_Bou_Param_c::m.field_0x50, daNpc_Bou_Param_c::m.field_0x58, daNpc_Bou_Param_c::m.field_0x5c, 1);
138+
}
139+
140+
int chkCondition(int i_val) {
141+
if (mStagger.checkStagger()) {
142+
return false;
143+
} else if (i_val != 0) {
144+
return true;
145+
} else {
146+
if (mMotionSeqMngr.getNo() == 3 ||
147+
mMotionSeqMngr.getNo() == 2 ||
148+
mMotionSeqMngr.getNo() == 4) {
149+
if (mMotionSeqMngr.getStepNo() > 0) {
150+
return true;
151+
}
152+
} else if (mMotionSeqMngr.getNo() == 1) {
153+
return true;
154+
}
155+
}
156+
return false;
138157
}
139158

140159
BOOL speakTo() {

include/d/actor/d_a_npc_jagar.h

Lines changed: 79 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,59 @@
1212
*
1313
*/
1414

15+
class daNpc_Jagar_Param_c {
16+
public:
17+
/* 80A1A2C4 */ virtual ~daNpc_Jagar_Param_c() {}
18+
19+
struct Data {
20+
/* 0x00 */ f32 field_0x00; // 170.0f
21+
/* 0x04 */ f32 field_0x04; // -3.0f
22+
/* 0x08 */ f32 field_0x08; // 1.0f
23+
/* 0x0C */ f32 field_0x0c; // 400.0f
24+
/* 0x10 */ f32 field_0x10; // 255.0f
25+
/* 0x14 */ f32 field_0x14; // 160.0f
26+
/* 0x18 */ f32 field_0x18; // 35.0f
27+
/* 0x1C */ f32 field_0x1c; // 30.0f
28+
/* 0x20 */ f32 field_0x20; // 0.0f
29+
/* 0x24 */ f32 field_0x24; // 0.0f
30+
/* 0x28 */ f32 field_0x28; // 10.0f
31+
/* 0x2C */ f32 field_0x2c; // -10.0f
32+
/* 0x30 */ f32 field_0x30; // 30.0f
33+
/* 0x34 */ f32 field_0x34; // -10.0f
34+
/* 0x38 */ f32 field_0x38; // 45.0f
35+
/* 0x3C */ f32 field_0x3c; // -45.0f
36+
/* 0x40 */ f32 field_0x40; // 0.6f
37+
/* 0x44 */ f32 field_0x44; // 12.0f
38+
/* 0x48 */ s16 field_0x48;
39+
/* 0x4A */ s16 field_0x4a;
40+
/* 0x4C */ s16 field_0x4c;
41+
/* 0x4E */ s16 field_0x4e;
42+
/* 0x50 */ f32 field_0x50; // 110.0f
43+
/* 0x54 */ f32 field_0x54; // 500.0f
44+
/* 0x58 */ f32 field_0x58; // 300.0f
45+
/* 0x5C */ f32 field_0x5c; // -300.0f
46+
/* 0x60 */ s16 field_0x60; // 60
47+
/* 0x62 */ s16 field_0x62; // 8
48+
/* 0x64 */ f32 field_0x64; // 0.0f
49+
/* 0x68 */ f32 field_0x68; // 0.0f
50+
/* 0x6C */ f32 field_0x6c; // 4.0f
51+
/* 0x70 */ f32 field_0x70; // 0.0f
52+
/* 0x74 */ f32 field_0x74; // 0.0f
53+
/* 0x78 */ f32 field_0x78; // 0.0f
54+
/* 0x7C */ f32 field_0x7c; // 0.0f
55+
/* 0x80 */ f32 field_0x80; // 0.0f
56+
/* 0x84 */ f32 field_0x84; // 0.0f
57+
/* 0x88 */ f32 field_0x88; // 0.0f
58+
/* 0x8C */ f32 field_0x8c; // 1400.0f
59+
/* 0x90 */ f32 field_0x90; // 200.0f
60+
/* 0x94 */ f32 field_0x94; // -800.0f
61+
/* 0x98 */ f32 field_0x98; // 16.0f
62+
/* 0x9C */ f32 field_0x9c; // 1800.0f
63+
};
64+
65+
static const Data m;
66+
};
67+
1568
class daNpc_Jagar_c : public daNpcT_c {
1669
public:
1770
typedef int (daNpc_Jagar_c::*cutFunc)(int);
@@ -87,6 +140,32 @@ class daNpc_Jagar_c : public daNpcT_c {
87140
return nodeNo;
88141
}
89142

143+
BOOL chkFindWolf() {
144+
int uVar3 = (int)daNpcT_getDistTableIdx(field_0xff0, field_0xff4);
145+
return daNpcT_c::chkFindWolf(mCurAngle.y, uVar3, field_0xfec, daNpc_Jagar_Param_c::m.field_0x54,
146+
daNpc_Jagar_Param_c::m.field_0x50, daNpc_Jagar_Param_c::m.field_0x58,
147+
daNpc_Jagar_Param_c::m.field_0x5c, 1);
148+
}
149+
150+
int chkCondition(int i_val) {
151+
if (mStagger.checkStagger()) {
152+
return false;
153+
} else if (i_val != 0) {
154+
return true;
155+
} else {
156+
if (mMotionSeqMngr.getNo() == 7 ||
157+
mMotionSeqMngr.getNo() == 6 ||
158+
mMotionSeqMngr.getNo() == 8) {
159+
if (mMotionSeqMngr.getStepNo() > 0) {
160+
return true;
161+
}
162+
} else if (mMotionSeqMngr.getNo() == 5) {
163+
return true;
164+
}
165+
}
166+
return false;
167+
}
168+
90169
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
91170

92171
static char* mCutNameList[7];
@@ -115,57 +194,4 @@ class daNpc_Jagar_c : public daNpcT_c {
115194

116195
STATIC_ASSERT(sizeof(daNpc_Jagar_c) == 0x100c);
117196

118-
class daNpc_Jagar_Param_c {
119-
public:
120-
/* 80A1A2C4 */ virtual ~daNpc_Jagar_Param_c() {}
121-
122-
struct Data {
123-
/* 0x00 */ f32 field_0x00; // 170.0f
124-
/* 0x04 */ f32 field_0x04; // -3.0f
125-
/* 0x08 */ f32 field_0x08; // 1.0f
126-
/* 0x0C */ f32 field_0x0c; // 400.0f
127-
/* 0x10 */ f32 field_0x10; // 255.0f
128-
/* 0x14 */ f32 field_0x14; // 160.0f
129-
/* 0x18 */ f32 field_0x18; // 35.0f
130-
/* 0x1C */ f32 field_0x1c; // 30.0f
131-
/* 0x20 */ f32 field_0x20; // 0.0f
132-
/* 0x24 */ f32 field_0x24; // 0.0f
133-
/* 0x28 */ f32 field_0x28; // 10.0f
134-
/* 0x2C */ f32 field_0x2c; // -10.0f
135-
/* 0x30 */ f32 field_0x30; // 30.0f
136-
/* 0x34 */ f32 field_0x34; // -10.0f
137-
/* 0x38 */ f32 field_0x38; // 45.0f
138-
/* 0x3C */ f32 field_0x3c; // -45.0f
139-
/* 0x40 */ f32 field_0x40; // 0.6f
140-
/* 0x44 */ f32 field_0x44; // 12.0f
141-
/* 0x48 */ s16 field_0x48;
142-
/* 0x4A */ s16 field_0x4a;
143-
/* 0x4C */ s16 field_0x4c;
144-
/* 0x4E */ s16 field_0x4e;
145-
/* 0x50 */ f32 field_0x50; // 110.0f
146-
/* 0x54 */ f32 field_0x54; // 500.0f
147-
/* 0x58 */ f32 field_0x58; // 300.0f
148-
/* 0x5C */ f32 field_0x5c; // -300.0f
149-
/* 0x60 */ s16 field_0x60; // 60
150-
/* 0x62 */ s16 field_0x62; // 8
151-
/* 0x64 */ f32 field_0x64; // 0.0f
152-
/* 0x68 */ f32 field_0x68; // 0.0f
153-
/* 0x6C */ f32 field_0x6c; // 4.0f
154-
/* 0x70 */ f32 field_0x70; // 0.0f
155-
/* 0x74 */ f32 field_0x74; // 0.0f
156-
/* 0x78 */ f32 field_0x78; // 0.0f
157-
/* 0x7C */ f32 field_0x7c; // 0.0f
158-
/* 0x80 */ f32 field_0x80; // 0.0f
159-
/* 0x84 */ f32 field_0x84; // 0.0f
160-
/* 0x88 */ f32 field_0x88; // 0.0f
161-
/* 0x8C */ f32 field_0x8c; // 1400.0f
162-
/* 0x90 */ f32 field_0x90; // 200.0f
163-
/* 0x94 */ f32 field_0x94; // -800.0f
164-
/* 0x98 */ f32 field_0x98; // 16.0f
165-
/* 0x9C */ f32 field_0x9c; // 1800.0f
166-
};
167-
168-
static const Data m;
169-
};
170-
171197
#endif /* D_A_NPC_JAGAR_H */

0 commit comments

Comments
 (0)