Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_pouya.h
Go to the documentation of this file.
1#ifndef D_A_NPC_POUYA_H
2#define D_A_NPC_POUYA_H
3
4#include "d/actor/d_a_npc.h"
5
9
11public:
13
14 static const daNpc_Pouya_HIOParam m;
15};
16
17#if DEBUG
27
28#define NPC_POUYA_HIO_CLASS daNpc_Pouya_HIO_c
29#else
30#define NPC_POUYA_HIO_CLASS daNpc_Pouya_Param_c
31#endif
32
41class daNpc_Pouya_c : public daNpcT_c {
42public:
43 typedef int (daNpc_Pouya_c::*cutFunc)(int);
44 typedef int (daNpc_Pouya_c::*actionFunc)(void*);
45
54
56 /* 0x00 */ FACE_MOT_UNK_0 = 0,
57 /* 0x01 */ FACE_MOT_UNK_1 = 1,
58 /* 0x02 */ FACE_MOT_UNK_2 = 2,
59 /* 0x03 */ FACE_MOT_UNK_3 = 3,
60 /* 0x04 */ FACE_MOT_UNK_4 = 4,
61 /* 0x05 */ FACE_MOT_UNK_5 = 5,
62 /* 0x06 */ FACE_MOT_UNK_6 = 6,
63 /* 0x07 */ FACE_MOT_UNK_7 = 7,
64 /* 0x08 */ FACE_MOT_UNK_8 = 8,
65 /* 0x09 */ FACE_MOT_UNK_9 = 9,
66 /* 0x0A */ FACE_MOT_UNK_10 = 10,
67 /* 0x0B */ FACE_MOT_UNK_11 = 11,
68 /* 0x0C */ FACE_MOT_UNK_12 = 12,
69 /* 0x0D */ FACE_MOT_UNK_13 = 13,
70 /* 0x0E */ FACE_MOT_UNK_14 = 14,
71 /* 0x0F */ FACE_MOT_UNK_15 = 15,
72 /* 0x10 */ FACE_MOT_UNK_16 = 16,
73 /* 0x11 */ FACE_MOT_UNK_17 = 17,
74 };
75
76 enum Motion {
77 /* 0x00 */ MOT_UNK_0 = 0,
78 /* 0x01 */ MOT_UNK_1 = 1,
79 /* 0x04 */ MOT_UNK_4 = 4,
80 /* 0x08 */ MOT_UNK_8 = 8,
81 /* 0x0A */ MOT_UNK_10 = 10,
82 /* 0x0F */ MOT_UNK_15 = 15,
83 };
84
86 int create();
87 int CreateHeap();
88 int Delete();
89 int Execute();
90 int Draw();
91 static int createHeapCallBack(fopAc_ac_c*);
92 static int ctrlJointCallBack(J3DJoint*, int);
93 u8 getType();
94 BOOL isDelete();
95 void reset();
96 void ctrlSubFaceMotion(int);
97 void afterJntAnm(int);
98 void setParam();
100 void setAfterTalkMotion();
101 void srchActors();
102 BOOL evtTalk();
104 void action();
105 void beforeMove();
106 void setAttnPos();
107 void setCollision();
108 int drawDbgInfo();
109 void drawOtherMdl();
110 bool afterSetMotionAnm(int, int, f32, int);
111 int selectAction();
112 BOOL chkAction(int (daNpc_Pouya_c::*)(void*));
113 int setAction(int (daNpc_Pouya_c::*)(void*));
114 void setPrtcls();
115 int cutHaveFavorToAsk(int);
116 int wait(void*);
117 int talk(void*);
119 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
120 daNpcT_motionAnmData_c const* i_motionAnmData,
121 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
122 int i_faceMotionStepNum,
123 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
124 daNpcT_evtData_c const* i_evtData, char** i_arcNames)
125 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
126 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
127 i_arcNames) {}
128 u16 getEyeballMaterialNo() { return 1; }
129 s32 getHeadJointNo() { return 4; }
130 s32 getNeckJointNo() { return 3; }
131 s32 getBackboneJointNo() { return 1; }
132 BOOL checkChangeJoint(int i_joint) { return i_joint == 4; }
133 BOOL checkRemoveJoint(int i_joint) { return i_joint == 8; }
134
135 u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
136
138 u16 nodeNo = home.angle.x;
139 if (nodeNo == 0xffff) {
140 return -1;
141 }
142 return nodeNo;
143 }
144
145 BOOL chkPouyaB() { return (mType == TYPE_2 || mType == TYPE_3 || mType == TYPE_4); }
146
147 MtxP getHeadMtx() { return mpMorf[0]->getModel()->getAnmMtx(4); }
148
149 static char* mCutNameList[3];
150 static cutFunc mCutList[3];
151
152private:
153 /* 0xE40 */ NPC_POUYA_HIO_CLASS* mpHIO;
154 /* 0xE44 */ J3DModel* mpModel[1];
155 /* 0xE48 */ dCcD_Cyl mCyl;
156 /* 0xF84 */ u8 mType;
157 /* 0xF88 */ daNpcT_Path_c mPath;
159 /* 0xFBC */ actionFunc mAction;
160 /* 0xFC8 */ u32 field_0xfc8;
161 /* 0xFCC */ s8 field_0xfcc;
162 /* 0xFCD */ s8 field_0xfcd;
163 /* 0xFCE */ u8 field_0xfce;
164 /* 0xFCF */ u8 field_0xfcf;
165 /* 0xFD0 */ u8 field_0xfd0;
166};
167
168STATIC_ASSERT(sizeof(daNpc_Pouya_c) == 0xfd4);
169
170#endif /* D_A_NPC_POUYA_H */
Definition J3DJoint.h:63
Definition J3DModel.h:43
MtxP getAnmMtx(int jointNo)
Definition J3DModel.h:105
Definition JORMContext.h:120
Definition d_cc_d.h:461
Definition d_a_npc.h:145
Definition d_a_npc.h:516
mDoExt_McaMorfSO * mpMorf[2]
Definition d_a_npc.h:522
Definition d_a_npc_pouya.h:18
void genMessage(JORMContext *)
Definition d_a_npc_pouya.cpp:63
daNpc_Pouya_HIO_c()
Definition d_a_npc_pouya.cpp:55
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_pouya.cpp:59
daNpc_Pouya_HIOParam m
Definition d_a_npc_pouya.h:25
Definition d_a_npc_pouya.h:10
virtual ~daNpc_Pouya_Param_c()
Definition d_a_npc_pouya.h:12
static const daNpc_Pouya_HIOParam m
Definition d_a_npc_pouya.h:10
Poe Merchant (Jovani?)
Definition d_a_npc_pouya.h:41
u8 getType()
Definition d_a_npc_pouya.cpp:318
MtxP getHeadMtx()
Definition d_a_npc_pouya.h:147
u8 field_0xfd0
Definition d_a_npc_pouya.h:165
void setPrtcls()
Definition d_a_npc_pouya.cpp:832
actionFunc mAction
Definition d_a_npc_pouya.h:159
int Execute()
Definition d_a_npc_pouya.cpp:289
Type
Definition d_a_npc_pouya.h:46
@ TYPE_3
Definition d_a_npc_pouya.h:50
@ TYPE_2
Definition d_a_npc_pouya.h:49
@ TYPE_1
Definition d_a_npc_pouya.h:48
@ TYPE_5
Definition d_a_npc_pouya.h:52
@ TYPE_4
Definition d_a_npc_pouya.h:51
@ TYPE_0
Definition d_a_npc_pouya.h:47
void reset()
Definition d_a_npc_pouya.cpp:353
daNpcT_Path_c mPath
Definition d_a_npc_pouya.h:157
J3DModel * mpModel[1]
Definition d_a_npc_pouya.h:154
u8 mType
Definition d_a_npc_pouya.h:156
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_pouya.cpp:301
BOOL chkPouyaB()
Definition d_a_npc_pouya.h:145
int(daNpc_Pouya_c::*) cutFunc(int)
Definition d_a_npc_pouya.h:43
int setAction(int(daNpc_Pouya_c::*)(void *))
Definition d_a_npc_pouya.cpp:817
void action()
Definition d_a_npc_pouya.cpp:642
BOOL isDelete()
Definition d_a_npc_pouya.cpp:334
daNpc_Pouya_c(daNpcT_faceMotionAnmData_c const *i_faceMotionAnmData, daNpcT_motionAnmData_c const *i_motionAnmData, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_faceMotionSequenceData, int i_faceMotionStepNum, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_motionSequenceData, int i_motionStepNum, daNpcT_evtData_c const *i_evtData, char **i_arcNames)
Definition d_a_npc_pouya.h:118
void setParam()
Definition d_a_npc_pouya.cpp:484
s32 getHeadJointNo()
Definition d_a_npc_pouya.h:129
void beforeMove()
Definition d_a_npc_pouya.cpp:669
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_pouya.cpp:305
void setCollision()
Definition d_a_npc_pouya.cpp:723
s32 getBackboneJointNo()
Definition d_a_npc_pouya.h:131
void setAttnPos()
Definition d_a_npc_pouya.cpp:679
~daNpc_Pouya_c()
Definition d_a_npc_pouya.cpp:161
u8 getBitSW()
Definition d_a_npc_pouya.h:135
u8 field_0xfce
Definition d_a_npc_pouya.h:163
u8 field_0xfcf
Definition d_a_npc_pouya.h:164
int drawDbgInfo()
Definition d_a_npc_pouya.cpp:766
FaceMotion
Definition d_a_npc_pouya.h:55
@ FACE_MOT_UNK_3
Definition d_a_npc_pouya.h:59
@ FACE_MOT_UNK_12
Definition d_a_npc_pouya.h:68
@ FACE_MOT_UNK_10
Definition d_a_npc_pouya.h:66
@ FACE_MOT_UNK_2
Definition d_a_npc_pouya.h:58
@ FACE_MOT_UNK_7
Definition d_a_npc_pouya.h:63
@ FACE_MOT_UNK_14
Definition d_a_npc_pouya.h:70
@ FACE_MOT_UNK_1
Definition d_a_npc_pouya.h:57
@ FACE_MOT_UNK_15
Definition d_a_npc_pouya.h:71
@ FACE_MOT_UNK_17
Definition d_a_npc_pouya.h:73
@ FACE_MOT_UNK_4
Definition d_a_npc_pouya.h:60
@ FACE_MOT_UNK_8
Definition d_a_npc_pouya.h:64
@ FACE_MOT_UNK_9
Definition d_a_npc_pouya.h:65
@ FACE_MOT_UNK_0
Definition d_a_npc_pouya.h:56
@ FACE_MOT_UNK_6
Definition d_a_npc_pouya.h:62
@ FACE_MOT_UNK_16
Definition d_a_npc_pouya.h:72
@ FACE_MOT_UNK_13
Definition d_a_npc_pouya.h:69
@ FACE_MOT_UNK_11
Definition d_a_npc_pouya.h:67
@ FACE_MOT_UNK_5
Definition d_a_npc_pouya.h:61
void drawOtherMdl()
Definition d_a_npc_pouya.cpp:770
NPC_POUYA_HIO_CLASS * mpHIO
Definition d_a_npc_pouya.h:153
int Draw()
Definition d_a_npc_pouya.cpp:293
bool afterSetMotionAnm(int, int, f32, int)
Definition d_a_npc_pouya.cpp:790
s8 field_0xfcc
Definition d_a_npc_pouya.h:161
int cutHaveFavorToAsk(int)
Definition d_a_npc_pouya.cpp:851
BOOL evtCutProc()
Definition d_a_npc_pouya.cpp:628
BOOL chkAction(int(daNpc_Pouya_c::*)(void *))
Definition d_a_npc_pouya.cpp:813
static char * mCutNameList[3]
Definition d_a_npc_pouya.h:149
BOOL checkRemoveJoint(int i_joint)
Definition d_a_npc_pouya.h:133
actionFunc field_0xfb0
Definition d_a_npc_pouya.h:158
BOOL checkChangeJoint(int i_joint)
Definition d_a_npc_pouya.h:132
s8 field_0xfcd
Definition d_a_npc_pouya.h:162
int Delete()
Definition d_a_npc_pouya.cpp:283
BOOL evtTalk()
Definition d_a_npc_pouya.cpp:619
void ctrlSubFaceMotion(int)
Definition d_a_npc_pouya.cpp:392
dCcD_Cyl mCyl
Definition d_a_npc_pouya.h:155
int getFlowNodeNo()
Definition d_a_npc_pouya.h:137
BOOL checkChangeEvt()
Definition d_a_npc_pouya.cpp:533
s32 getNeckJointNo()
Definition d_a_npc_pouya.h:130
int wait(void *)
Definition d_a_npc_pouya.cpp:1019
int talk(void *)
Definition d_a_npc_pouya.cpp:1116
void srchActors()
Definition d_a_npc_pouya.cpp:617
int(daNpc_Pouya_c::*) actionFunc(void *)
Definition d_a_npc_pouya.h:44
void setAfterTalkMotion()
Definition d_a_npc_pouya.cpp:588
void afterJntAnm(int)
Definition d_a_npc_pouya.cpp:474
static cutFunc mCutList[3]
Definition d_a_npc_pouya.h:155
u16 getEyeballMaterialNo()
Definition d_a_npc_pouya.h:128
u32 field_0xfc8
Definition d_a_npc_pouya.h:160
int CreateHeap()
Definition d_a_npc_pouya.cpp:217
int create()
Definition d_a_npc_pouya.cpp:169
int selectAction()
Definition d_a_npc_pouya.cpp:802
Motion
Definition d_a_npc_pouya.h:76
@ MOT_UNK_8
Definition d_a_npc_pouya.h:80
@ MOT_UNK_0
Definition d_a_npc_pouya.h:77
@ MOT_UNK_15
Definition d_a_npc_pouya.h:82
@ MOT_UNK_1
Definition d_a_npc_pouya.h:78
@ MOT_UNK_10
Definition d_a_npc_pouya.h:81
@ MOT_UNK_4
Definition d_a_npc_pouya.h:79
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
J3DModel * getModel()
Definition m_Do_ext.h:350
Definition m_Do_hostIO.h:27
STATIC_ASSERT(sizeof(daNpc_Pouya_c)==0xfd4)
f32(* MtxP)[4]
Definition mtx.h:38
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
Definition JORReflexible.h:10
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_pouya.h:6
daNpcT_HIOParam common
Definition d_a_npc_pouya.h:7