Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_midp.h
Go to the documentation of this file.
1#ifndef D_A_NPC_MIDP_H
2#define D_A_NPC_MIDP_H
3
4#include "d/actor/d_a_npc.h"
5
18
22
24public:
26
27 static const daNpc_midP_HIOParam m;
28};
29
30class daNpc_midP_c : public daNpcT_c {
31public:
32 enum Joint {
33 /* 0x00 */ JNT_CENTER,
34 /* 0x01 */ JNT_BACKBONE1,
35 /* 0x02 */ JNT_BACKBONE2,
36 /* 0x03 */ JNT_NECK,
37 /* 0x04 */ JNT_HEAD,
38 /* 0x05 */ JNT_CHIN,
39 /* 0x06 */ JNT_MAYUL,
40 /* 0x07 */ JNT_MAYUR,
41 /* 0x08 */ JNT_MOUTH,
42 /* 0x09 */ JNT_SHOULDERL,
43 /* 0x0A */ JNT_ARML1,
44 /* 0x0B */ JNT_ARML2,
45 /* 0x0C */ JNT_HANDL,
46 /* 0x0D */ JNT_FINGERL1,
47 /* 0x0E */ JNT_FINGERL2,
48 /* 0x0F */ JNT_THAMBL,
49 /* 0x10 */ JNT_MANTL1,
50 /* 0x11 */ JNT_MANTL2,
51 /* 0x12 */ JNT_MANT_ANIMEL1,
52 /* 0x13 */ JNT_SHOULDERR,
53 /* 0x14 */ JNT_ARMR1,
54 /* 0x15 */ JNT_ARMR2,
55 /* 0x16 */ JNT_HANDR,
56 /* 0x17 */ JNT_FINGERR1,
57 /* 0x18 */ JNT_FINGERR2,
58 /* 0x19 */ JNT_THAMBR,
59 /* 0x1A */ JNT_MANTR1,
60 /* 0x1B */ JNT_MANTR2,
61 /* 0x1C */ JNT_MANT_ANIMER1,
62 /* 0x1D */ JNT_WAIST,
63 /* 0x1E */ JNT_LEGL1,
64 /* 0x1F */ JNT_LEGL2,
65 /* 0x20 */ JNT_FOOTL,
66 /* 0x21 */ JNT_TOEL,
67 /* 0x22 */ JNT_LEGR1,
68 /* 0x23 */ JNT_LEGR2,
69 /* 0x24 */ JNT_FOOTR,
70 /* 0x25 */ JNT_TOER,
71 /* 0x26 */ JNT_MANTC1,
72 /* 0x27 */ JNT_MANTC2,
73 /* 0x28 */ JNT_MANT_ANIMEL2,
74 /* 0x29 */ JNT_MANT_ANIMER2,
75 /* 0x2A */ JNT_SKIRTB1,
76 /* 0x2B */ JNT_SKIRTB2,
77 /* 0x2C */ JNT_SKIRTF1,
78 /* 0x2D */ JNT_SKIRTF2,
79 };
80
81 typedef int (daNpc_midP_c::*cutFunc)(int);
82 typedef int (daNpc_midP_c::*actionFunc)(void*);
83
84 enum Type {
87 };
89 int create();
90 int CreateHeap();
91 int Delete();
92 int Execute();
93 int Draw();
94 static int createHeapCallBack(fopAc_ac_c*);
95 static int ctrlJointCallBack(J3DJoint*, int);
96 u8 getType();
97 int isDelete();
98 void reset();
99 void afterJntAnm(int);
100 BOOL ctrlBtk();
101 void setParam();
102 void setAfterTalkMotion();
103 void srchActors();
104 BOOL evtTalk();
106 void action();
107 void beforeMove();
108 void setAttnPos();
109 void setCollision();
110 int drawDbgInfo();
111 void drawGhost();
112 int selectAction();
113 int chkAction(int (daNpc_midP_c::*)(void*));
114 int setAction(int (daNpc_midP_c::*)(void*));
115 int wait(void*);
116 int talk(void*);
118 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
119 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
120 daNpcT_evtData_c const* param_7, char** param_8) :
121 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
127 BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
128 BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
129
131 u16 nodeNo = home.angle.x;
132 if (nodeNo == 0xffff) {
133 return -1;
134 }
135 return nodeNo;
136 }
137
138 static char* mCutNameList;
139 static cutFunc mCutList[1];
140
141private:
142 /* 0xE40 */ u8 field_0xE40[0xe44 - 0xe40];
143 /* 0xE44 */ dCcD_Cyl mCyl;
144 /* 0xF80 */ u8 mType;
145 /* 0xF81 */ u8 field_0xf81[0xf84-0xf81];
148 /* 0xF9C */ int field_0xf9c;
149};
150
151STATIC_ASSERT(sizeof(daNpc_midP_c) == 0xfa0);
152
153#endif /* D_A_NPC_MIDP_H */
Definition J3DJoint.h:63
Definition d_cc_d.h:461
Definition d_a_npc.h:516
Definition d_a_npc_midp.h:19
daNpc_midP_HIOParam param
Definition d_a_npc_midp.h:20
Definition d_a_npc_midp.h:23
static const daNpc_midP_HIOParam m
Definition d_a_npc_midp.h:76
virtual ~daNpc_midP_Param_c()
Definition d_a_npc_midp.h:25
Midna (True Form)
Definition d_a_npc_midp.h:30
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_midp.cpp:234
int CreateHeap()
Definition d_a_npc_midp.cpp:176
int chkAction(int(daNpc_midP_c::*)(void *))
Definition d_a_npc_midp.cpp:490
int drawDbgInfo()
Definition d_a_npc_midp.cpp:473
int Draw()
Definition d_a_npc_midp.cpp:221
static cutFunc mCutList[1]
Definition d_a_npc_midp.h:66
int(daNpc_midP_c::*) actionFunc(void *)
Definition d_a_npc_midp.h:82
void afterJntAnm(int)
Definition d_a_npc_midp.cpp:282
BOOL ctrlBtk()
Definition d_a_npc_midp.cpp:292
u8 mType
Definition d_a_npc_midp.h:144
void action()
Definition d_a_npc_midp.cpp:394
int create()
Definition d_a_npc_midp.cpp:120
s32 getHeadJointNo()
Definition d_a_npc_midp.h:124
int field_0xf9c
Definition d_a_npc_midp.h:148
void srchActors()
Definition d_a_npc_midp.cpp:355
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_midp.cpp:239
actionFunc field_0xf84
Definition d_a_npc_midp.h:146
int getFlowNodeNo()
Definition d_a_npc_midp.h:130
int talk(void *)
Definition d_a_npc_midp.cpp:553
BOOL checkChangeJoint(int i_joint)
Definition d_a_npc_midp.h:127
BOOL evtTalk()
Definition d_a_npc_midp.cpp:359
void setAfterTalkMotion()
Definition d_a_npc_midp.cpp:351
actionFunc field_0xf90
Definition d_a_npc_midp.h:147
BOOL checkRemoveJoint(int i_joint)
Definition d_a_npc_midp.h:128
int selectAction()
Definition d_a_npc_midp.cpp:484
int isDelete()
Definition d_a_npc_midp.cpp:260
u16 getEyeballRMaterialNo()
Definition d_a_npc_midp.h:122
BOOL evtCutProc()
Definition d_a_npc_midp.cpp:380
u8 field_0xf81[0xf84-0xf81]
Definition d_a_npc_midp.h:145
int Execute()
Definition d_a_npc_midp.cpp:217
s32 getBackboneJointNo()
Definition d_a_npc_midp.h:126
void drawGhost()
Definition d_a_npc_midp.cpp:477
Joint
Definition d_a_npc_midp.h:32
@ JNT_SHOULDERL
Definition d_a_npc_midp.h:42
@ JNT_MANT_ANIMEL2
Definition d_a_npc_midp.h:73
@ JNT_TOER
Definition d_a_npc_midp.h:70
@ JNT_ARMR2
Definition d_a_npc_midp.h:54
@ JNT_MANTR2
Definition d_a_npc_midp.h:60
@ JNT_CENTER
Definition d_a_npc_midp.h:33
@ JNT_ARMR1
Definition d_a_npc_midp.h:53
@ JNT_THAMBR
Definition d_a_npc_midp.h:58
@ JNT_MANT_ANIMEL1
Definition d_a_npc_midp.h:51
@ JNT_MAYUR
Definition d_a_npc_midp.h:40
@ JNT_TOEL
Definition d_a_npc_midp.h:66
@ JNT_FINGERR1
Definition d_a_npc_midp.h:56
@ JNT_BACKBONE1
Definition d_a_npc_midp.h:34
@ JNT_MANTL1
Definition d_a_npc_midp.h:49
@ JNT_SKIRTB2
Definition d_a_npc_midp.h:76
@ JNT_MANT_ANIMER1
Definition d_a_npc_midp.h:61
@ JNT_FINGERR2
Definition d_a_npc_midp.h:57
@ JNT_MAYUL
Definition d_a_npc_midp.h:39
@ JNT_MANTR1
Definition d_a_npc_midp.h:59
@ JNT_MANTC2
Definition d_a_npc_midp.h:72
@ JNT_BACKBONE2
Definition d_a_npc_midp.h:35
@ JNT_LEGL1
Definition d_a_npc_midp.h:63
@ JNT_HANDL
Definition d_a_npc_midp.h:45
@ JNT_MANTC1
Definition d_a_npc_midp.h:71
@ JNT_LEGR2
Definition d_a_npc_midp.h:68
@ JNT_NECK
Definition d_a_npc_midp.h:36
@ JNT_SHOULDERR
Definition d_a_npc_midp.h:52
@ JNT_HANDR
Definition d_a_npc_midp.h:55
@ JNT_LEGL2
Definition d_a_npc_midp.h:64
@ JNT_FOOTL
Definition d_a_npc_midp.h:65
@ JNT_CHIN
Definition d_a_npc_midp.h:38
@ JNT_FINGERL1
Definition d_a_npc_midp.h:46
@ JNT_THAMBL
Definition d_a_npc_midp.h:48
@ JNT_MANT_ANIMER2
Definition d_a_npc_midp.h:74
@ JNT_WAIST
Definition d_a_npc_midp.h:62
@ JNT_SKIRTB1
Definition d_a_npc_midp.h:75
@ JNT_FOOTR
Definition d_a_npc_midp.h:69
@ JNT_SKIRTF1
Definition d_a_npc_midp.h:77
@ JNT_MANTL2
Definition d_a_npc_midp.h:50
@ JNT_ARML1
Definition d_a_npc_midp.h:43
@ JNT_MOUTH
Definition d_a_npc_midp.h:41
@ JNT_ARML2
Definition d_a_npc_midp.h:44
@ JNT_SKIRTF2
Definition d_a_npc_midp.h:78
@ JNT_LEGR1
Definition d_a_npc_midp.h:67
@ JNT_HEAD
Definition d_a_npc_midp.h:37
@ JNT_FINGERL2
Definition d_a_npc_midp.h:47
dCcD_Cyl mCyl
Definition d_a_npc_midp.h:143
void setAttnPos()
Definition d_a_npc_midp.cpp:415
u16 getEyeballLMaterialNo()
Definition d_a_npc_midp.h:123
int(daNpc_midP_c::*) cutFunc(int)
Definition d_a_npc_midp.h:81
daNpc_midP_c(daNpcT_faceMotionAnmData_c const *param_1, daNpcT_motionAnmData_c const *param_2, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *param_3, int param_4, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *param_5, int param_6, daNpcT_evtData_c const *param_7, char **param_8)
Definition d_a_npc_midp.h:117
void setCollision()
Definition d_a_npc_midp.cpp:440
u8 field_0xE40[0xe44 - 0xe40]
Definition d_a_npc_midp.h:142
int wait(void *)
Definition d_a_npc_midp.cpp:509
int setAction(int(daNpc_midP_c::*)(void *))
Definition d_a_npc_midp.cpp:494
static char * mCutNameList
Definition d_a_npc_midp.h:138
int Delete()
Definition d_a_npc_midp.cpp:210
void setParam()
Definition d_a_npc_midp.cpp:324
u8 getType()
Definition d_a_npc_midp.cpp:251
Type
Definition d_a_npc_midp.h:84
@ TYPE_1
Definition d_a_npc_midp.h:86
@ TYPE_0
Definition d_a_npc_midp.h:85
void beforeMove()
Definition d_a_npc_midp.cpp:409
void reset()
Definition d_a_npc_midp.cpp:269
s32 getNeckJointNo()
Definition d_a_npc_midp.h:125
~daNpc_midP_c()
Definition d_a_npc_midp.cpp:68
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
Definition m_Do_hostIO.h:27
STATIC_ASSERT(sizeof(daNpc_midP_c)==0xfa0)
int BOOL
Definition types.h:33
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
Definition d_a_npc.h:836
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_midp.h:15
daNpcT_HIOParam common
Definition d_a_npc_midp.h:16