Skip to content

Commit 0f141c2

Browse files
authored
d_a_npc_jagar - ~94% (#2309)
* Began work on d_a_npc_jagar * Major work on daNpc_Jagar_c::create() * Jagar create() - 11% * Continued work on daNpc_Jagar_c * Jagar create() - 87% * Continues work on Jagar * Work on Jagar.checkChangeEvt() * Working on Jagar.talk() * Work on Jagar.changeBtp() * Jagar.checkChangeJoint() & checkRemoveJoint() * Jagar.chkAction() & setAction() * Jagar.chkChuMotion() * Jagar.chkSitMotion() & chkSitMotion2() * Jagar.chkToMotion() * Jagar.CreateHeap() * Jagar.createHeapCallBack() & ctrlJointCallBack() * Jagar.cuAnger() * Jagar.cutClimbUp() - 92% * Jagar.setAttnPos() - 85% * Jagar.cutConversationWithBou() - 48% * Jagar work and daNpcT_c::getActorDistance - 83% * Jagar setParam work and daNpcT_c::getActorDistance - 85% * Prep Jagar push to main * little cleanup * Fixed return type discrepancy * Fixed *other* return type issues & variable names for Jagar * Jagar talkWithBou work * Work on Jagar talk * Data & function cleanup * I dont remember what i added this time lol * Finished some functions * Reworking Jagar talk() * Finished some functions * Attempting to rework cutNeedYourHelp * Almost(ish) done with Jaggle * Almost done with Jaggle * Took out inline assembly in Jagar.chkToMotion() * Cleanup * Minor variable initialization change * Small cleanup * Hopefully fixed d_a_npc_bou compilation error
1 parent 53ae95c commit 0f141c2

File tree

5 files changed

+1729
-1567
lines changed

5 files changed

+1729
-1567
lines changed

include/d/actor/d_a_npc_bou.h

Lines changed: 75 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,70 @@
1111
* @details
1212
*
1313
*/
14+
class daNpc_Bou_Param_c {
15+
public:
16+
/* 809727F4 */ ~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+
/* 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
47+
/* 0x70 */ f32 field_0x70; // 0.0f
48+
/* 0x74 */ f32 field_0x74; // 0.0f
49+
/* 0x78 */ f32 field_0x78; // 4.0f
50+
/* 0x7C */ f32 field_0x7c; // 0.0f
51+
/* 0x80 */ f32 field_0x80; // 0.0f
52+
/* 0x84 */ f32 field_0x84; // 0.0f
53+
/* 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
61+
};
62+
63+
static const Data m;
64+
};
65+
1466
class daNpc_Bou_c : public daNpcT_c {
1567
public:
68+
69+
enum Type {
70+
TYPE_0,
71+
TYPE_1,
72+
TYPE_2,
73+
TYPE_3,
74+
TYPE_4,
75+
TYPE_5,
76+
};
77+
1678
/* 8096CF8C */ ~daNpc_Bou_c();
1779
/* 8096D0D8 */ void create();
1880
/* 8096D38C */ void CreateHeap();
@@ -23,7 +85,7 @@ class daNpc_Bou_c : public daNpcT_c {
2385
/* 8096D8C0 */ void ctrlJointCallBack(J3DJoint*, int);
2486
/* 8096D918 */ void srchCow(void*, void*);
2587
/* 8096D9B4 */ void getCowP();
26-
/* 8096DA78 */ void getType();
88+
/* 8096DA78 */ u8 getType();
2789
/* 8096DADC */ void isDelete();
2890
/* 8096DBBC */ void reset();
2991
/* 8096E18C */ void srchActors();
@@ -69,6 +131,12 @@ class daNpc_Bou_c : public daNpcT_c {
69131
static void* mCutNameList[9];
70132
static u8 mCutList[108];
71133

134+
BOOL chkFindWolf() {
135+
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);
138+
}
139+
72140
BOOL speakTo() {
73141
if (field_0xf80 == 4) {
74142
if (current.pos.absXZ(daPy_getPlayerActorClass()->current.pos) < 1100.0f && strlen(mpEvtData[5].eventName) != 0) {
@@ -88,22 +156,19 @@ class daNpc_Bou_c : public daNpcT_c {
88156
}
89157

90158
private:
91-
/* 0xE40 */ u8 field_0xE40[0xE44 - 0xE40];
159+
/* 0xE40 */ int field_0xe40;
92160
/* 0xE44 */ dCcD_Cyl field_0xe44;
93161
/* 0xF80 */ u8 field_0xf80;
94162
/* 0xF84 */ daNpcT_ActorMngr_c field_0xf84[3];
95163
/* 0xF9C */ daNpcT_Path_c field_0xf9c;
96-
/* 0xFC4 */ u8 field_0xfc4[0xFFC - 0xFC4];
164+
/* 0xFC4 */ u8 field_0xfc4[0xFDC - 0xFC4];
165+
/* 0xFDC */ int field_0xfdc;
166+
/* 0xFE0 */ int field_0xfe0;
167+
/* 0xFE4 */ int field_0xfe4;
168+
/* 0xFE8 */ u8 field_0xfe8[0xFFC - 0xFE8];
97169
};
98170

99171
STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc);
100172

101-
class daNpc_Bou_Param_c {
102-
public:
103-
/* 809727F4 */ ~daNpc_Bou_Param_c();
104-
105-
static u8 const m[156];
106-
};
107-
108173

109174
#endif /* D_A_NPC_BOU_H */

include/d/actor/d_a_npc_jagar.h

Lines changed: 128 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -11,75 +11,161 @@
1111
* @details
1212
*
1313
*/
14-
class daNpc_Jagar_c : public fopAc_ac_c {
14+
15+
class daNpc_Jagar_c : public daNpcT_c {
1516
public:
17+
typedef int (daNpc_Jagar_c::*cutFunc)(int);
18+
typedef int (daNpc_Jagar_c::*actionFunc)(void*);
19+
20+
enum Type {
21+
TYPE_0,
22+
TYPE_1,
23+
TYPE_2,
24+
TYPE_3,
25+
};
26+
1627
/* 80A1470C */ ~daNpc_Jagar_c();
17-
/* 80A14858 */ void create();
18-
/* 80A14B20 */ void CreateHeap();
19-
/* 80A14F4C */ void Delete();
20-
/* 80A14F80 */ void Execute();
21-
/* 80A14FA0 */ void Draw();
22-
/* 80A15034 */ void createHeapCallBack(fopAc_ac_c*);
23-
/* 80A15054 */ void ctrlJointCallBack(J3DJoint*, int);
24-
/* 80A150AC */ void getType();
25-
/* 80A150F8 */ void isDelete();
28+
/* 80A14858 */ int create();
29+
/* 80A14B20 */ int CreateHeap();
30+
/* 80A14F4C */ int Delete();
31+
/* 80A14F80 */ int Execute();
32+
/* 80A14FA0 */ int Draw();
33+
/* 80A15034 */ static int createHeapCallBack(fopAc_ac_c*);
34+
/* 80A15054 */ static int ctrlJointCallBack(J3DJoint*, int);
35+
/* 80A150AC */ u8 getType();
36+
/* 80A150F8 */ int isDelete();
2637
/* 80A15198 */ void reset();
2738
/* 80A15364 */ void afterJntAnm(int);
2839
/* 80A153E8 */ void setParam();
29-
/* 80A155E4 */ void checkChangeEvt();
40+
/* 80A155E4 */ BOOL checkChangeEvt();
3041
/* 80A15714 */ void setAfterTalkMotion();
3142
/* 80A157B4 */ void srchActors();
32-
/* 80A158A0 */ void evtTalk();
33-
/* 80A15940 */ void evtCutProc();
43+
/* 80A158A0 */ BOOL evtTalk();
44+
/* 80A15940 */ BOOL evtCutProc();
3445
/* 80A15A08 */ void action();
3546
/* 80A15CA4 */ void beforeMove();
3647
/* 80A15D68 */ void setAttnPos();
3748
/* 80A1607C */ void setCollision();
38-
/* 80A161EC */ bool drawDbgInfo();
49+
/* 80A161EC */ int drawDbgInfo();
3950
/* 80A161F4 */ void changeBtp(int*, int*);
40-
/* 80A16234 */ void selectAction();
41-
/* 80A162B0 */ void chkAction(int (daNpc_Jagar_c::*)(void*));
42-
/* 80A162DC */ void setAction(int (daNpc_Jagar_c::*)(void*));
43-
/* 80A16384 */ void cutClimbUp(int);
44-
/* 80A16544 */ void cutNeedYourHelp(int);
45-
/* 80A16CD8 */ void cutAnger(int);
46-
/* 80A16EFC */ void cutConversationWithBou(int);
47-
/* 80A1705C */ void cutConfidentialConversation(int);
48-
/* 80A173D8 */ void cutFindWolf(int);
49-
/* 80A17898 */ void chkSitMotion();
50-
/* 80A17924 */ void chkSitMotion2();
51-
/* 80A17984 */ void chkChuMotion();
52-
/* 80A179F8 */ void chkToMotion();
53-
/* 80A17A2C */ void wait(void*);
54-
/* 80A1856C */ void talkwithBou(void*);
55-
/* 80A18B74 */ void talk(void*);
56-
/* 80A1A194 */ daNpc_Jagar_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
57-
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
58-
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
59-
daNpcT_evtData_c const*, char**);
51+
/* 80A16234 */ int selectAction();
52+
/* 80A162B0 */ int chkAction(int (daNpc_Jagar_c::*)(void*));
53+
/* 80A162DC */ int setAction(int (daNpc_Jagar_c::*)(void*));
54+
/* 80A16384 */ int cutClimbUp(int);
55+
/* 80A16544 */ int cutNeedYourHelp(int);
56+
/* 80A16CD8 */ int cutAnger(int);
57+
/* 80A16EFC */ int cutConversationWithBou(int);
58+
/* 80A1705C */ int cutConfidentialConversation(int);
59+
/* 80A173D8 */ int cutFindWolf(int);
60+
/* 80A17898 */ int chkSitMotion();
61+
/* 80A17924 */ int chkSitMotion2();
62+
/* 80A17984 */ int chkChuMotion();
63+
/* 80A179F8 */ int chkToMotion();
64+
/* 80A17A2C */ int wait(void*);
65+
/* 80A1856C */ int talkwithBou(void*);
66+
/* 80A18B74 */ int talk(void*);
67+
/* 80A1A194 */ daNpc_Jagar_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
68+
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
69+
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
70+
daNpcT_evtData_c const* param_7, char** param_8) :
71+
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
72+
{}
6073
/* 80A1A274 */ s32 getEyeballMaterialNo();
6174
/* 80A1A27C */ s32 getHeadJointNo();
6275
/* 80A1A284 */ s32 getNeckJointNo();
63-
/* 80A1A28C */ bool getBackboneJointNo();
64-
/* 80A1A294 */ void checkChangeJoint(int);
65-
/* 80A1A2A4 */ void checkRemoveJoint(int);
76+
/* 80A1A28C */ s32 getBackboneJointNo();
77+
/* 80A1A294 */ BOOL checkChangeJoint(int param_1) { return param_1 == 4; }
78+
/* 80A1A2A4 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 8; }
6679
/* 80A1A2B4 */ s32 getFootLJointNo();
6780
/* 80A1A2BC */ s32 getFootRJointNo();
6881

69-
static void* mCutNameList[7];
70-
static u8 mCutList[84];
82+
int getFlowNodeNo() {
83+
u16 nodeNo = home.angle.x;
84+
if (nodeNo == 0xffff) {
85+
return -1;
86+
}
87+
return nodeNo;
88+
}
89+
90+
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
7191

92+
static char* mCutNameList[7];
93+
static cutFunc mCutList[7];
7294
private:
73-
/* 0x568 */ u8 field_0x568[0x100c - 0x568];
95+
/* 0x0E40 */ int field_0xe40;
96+
/* 0x0E44 */ dCcD_Cyl mCyl1;
97+
/* 0x0F80 */ u8 mType;
98+
/* 0x0F84 */ daNpcT_ActorMngr_c mActorMngr[5];
99+
/* 0x0FAC */ daNpcT_Path_c field_0xfac;
100+
/* 0x0FD4 */ actionFunc field_0xfd4;
101+
/* 0x0FE0 */ actionFunc field_0xfe0;
102+
/* 0x0FEC */ int field_0xfec;
103+
/* 0x0FF0 */ int field_0xff0;
104+
/* 0x0FF4 */ int field_0xff4;
105+
/* 0x0FF8 */ int field_0xff8;
106+
/* 0x0FFC */ u8 field_0xffc[0x1000 - 0xffc];
107+
/* 0x1000 */ u8 field_0x1000;
108+
/* 0x1001 */ u8 field_0x1001;
109+
/* 0x1002 */ u8 field_0x1002;
110+
/* 0x1003 */ u8 field_0x1003;
111+
/* 0x1004 */ u8 field_0x1004;
112+
/* 0x1005 */ u8 field_0x1005;
113+
/* 0x1008 */ int field_0x1008;
74114
};
75115

76116
STATIC_ASSERT(sizeof(daNpc_Jagar_c) == 0x100c);
77117

78118
class daNpc_Jagar_Param_c {
79119
public:
80-
/* 80A1A2C4 */ ~daNpc_Jagar_Param_c();
120+
/* 80A1A2C4 */ virtual ~daNpc_Jagar_Param_c() {}
81121

82-
static u8 const m[160];
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;
83169
};
84170

85171
#endif /* D_A_NPC_JAGAR_H */

include/d/actor/d_a_player.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,6 +1102,8 @@ class daPy_py_c : public fopAc_ac_c {
11021102
onNoResetFlg3(FLG3_UNK_200000);
11031103
}
11041104

1105+
BOOL checkClimbEndHang() { return checkResetFlg0(RFLG0_UNK_40000); }
1106+
11051107
static daMidna_c* m_midnaActor;
11061108
};
11071109

src/d/actor/d_a_npc_bou.cpp

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -883,17 +883,12 @@ daNpc_Bou_c::~daNpc_Bou_c() {
883883

884884
/* ############################################################################################## */
885885
/* 80972860-809728FC 000000 009C+00 13/13 0/0 1/1 .rodata m__17daNpc_Bou_Param_c */
886-
SECTION_RODATA u8 const daNpc_Bou_Param_c::m[156] = {
887-
0x43, 0x52, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00,
888-
0x43, 0x7F, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
889-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
890-
0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00,
891-
0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06,
892-
0x42, 0xDC, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
893-
0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00,
894-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
895-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00,
896-
0x44, 0x7A, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00,
886+
daNpc_Bou_Param_c::Data const daNpc_Bou_Param_c::m= {
887+
255.0f, -3.0f, 1.0f, 600.0f, 255.0f, 200.0f, 35.0f, 40.0f,
888+
0.0f, 0.0f, 10.0f, -10.0f, 30.0f, -10.0f, 45.0f, -45.0f,
889+
0.6f, 12.0f, 3, 6, 5, 6, 110.0f, 500.0f, 300.0f, -300.0f,
890+
60, 8, 0.0f, 0.0f, 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
891+
0.0f, 0.0f, 16.0f, 1000.0f, 500.0f, -500.0f,
897892
};
898893
COMPILER_STRIP_GATE(0x80972860, &daNpc_Bou_Param_c::m);
899894

@@ -1088,8 +1083,21 @@ void daNpc_Bou_c::getCowP() {
10881083
}
10891084

10901085
/* 8096DA78-8096DADC 000BD8 0064+00 1/1 0/0 2/2 .text getType__11daNpc_Bou_cFv */
1091-
void daNpc_Bou_c::getType() {
1092-
// NONMATCHING
1086+
u8 daNpc_Bou_c::getType() {
1087+
switch ((u8)fopAcM_GetParam(this)) {
1088+
case 0:
1089+
return TYPE_0;
1090+
case 1:
1091+
return TYPE_1;
1092+
case 2:
1093+
return TYPE_2;
1094+
case 3:
1095+
return TYPE_3;
1096+
case 4:
1097+
return TYPE_4;
1098+
default:
1099+
return TYPE_5;
1100+
}
10931101
}
10941102

10951103
/* 8096DADC-8096DBBC 000C3C 00E0+00 1/1 0/0 0/0 .text isDelete__11daNpc_Bou_cFv */

0 commit comments

Comments
 (0)