Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_saru.h
Go to the documentation of this file.
1#ifndef D_A_NPC_SARU_H
2#define D_A_NPC_SARU_H
3
4#include "d/actor/d_a_npc.h"
5
17 /* 0x8C */ s16 scared_time; // 怯える時間 - Scared Time
18};
19
21public:
23
24 static const daNpc_Saru_HIOParam m;
25};
26
27#if DEBUG
38
39#define NPC_SARU_HIO_CLASS daNpc_Saru_HIO_c
40#else
41#define NPC_SARU_HIO_CLASS daNpc_Saru_Param_c
42#endif
43
44class daNpc_Saru_c : public daNpcT_c {
45public:
46 typedef int (daNpc_Saru_c::*cutFunc)(int);
47 typedef int (daNpc_Saru_c::*actionFunc)(void*);
48
55
56 enum Joint {
57 /* 0x00 */ JNT_CENTER,
58 /* 0x01 */ JNT_BACKBONE_1,
59 /* 0x02 */ JNT_BACKBONE_2,
60 /* 0x03 */ JNT_NECK,
61 /* 0x04 */ JNT_HEAD,
62 /* 0x05 */ JNT_CHIN,
63 /* 0x06 */ JNT_MOUTH,
64 /* 0x07 */ JNT_SHOULDER_L,
65 /* 0x08 */ JNT_ARM_L_1,
66 /* 0x09 */ JNT_ARM_L_2,
67 /* 0x0A */ JNT_HAND_L,
68 /* 0x0B */ JNT_SHOULDER_R,
69 /* 0x0C */ JNT_ARM_R_1,
70 /* 0x0D */ JNT_ARM_R_2,
71 /* 0x0E */ JNT_HAND_R,
72 /* 0x0F */ JNT_WAIST,
73 /* 0x10 */ JNT_LEG_L_1,
74 /* 0x11 */ JNT_LEG_L_2,
75 /* 0x12 */ JNT_FOOT_L,
76 /* 0x13 */ JNT_LEG_R_1,
77 /* 0x14 */ JNT_LEG_R_2,
78 /* 0x15 */ JNT_FOOR_R,
79 };
80
82 int create();
83 int CreateHeap();
84 int Delete();
85 int Execute();
86 int Draw();
87 static int createHeapCallBack(fopAc_ac_c*);
88 static int ctrlJointCallBack(J3DJoint*, int);
89 static void* srchYm(void*, void*);
90 u8 getType();
91 int isDelete();
92 void reset();
93 void afterJntAnm(int);
95 void setParam();
96 void setAfterTalkMotion();
97 void srchActors();
98 BOOL evtTalk();
100 void action();
101 void beforeMove();
102 void setAttnPos();
103 void setCollision();
104 int drawDbgInfo();
105 void drawOtherMdl();
106 int selectAction();
107 BOOL chkAction(int (daNpc_Saru_c::*)(void*));
108 int setAction(int (daNpc_Saru_c::*)(void*));
109 void setSe();
110 int cutFindMonkey(int);
111 int cutHelpMe(int);
112 int cutYmLook(int);
113 int wait(void*);
114 int talk(void*);
116 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
117 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
118 daNpcT_evtData_c const* param_7, char** param_8) :
119 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
120 {}
124
126 u16 rv = home.angle.x;
127 if (rv == 0xffff) {
128 return -1;
129 }
130 return rv;
131 }
132
133 u8 getPathID() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
134 u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
135
136 static char* mCutNameList[4];
137 static cutFunc mCutList[4];
138private:
139 /* 0xE40 */ NPC_SARU_HIO_CLASS* mpHIO;
140 /* 0xE44 */ J3DModel* mpRoseModels[2];
142 /* 0xF88 */ u8 mType;
144 /* 0xF94 */ daNpcT_Path_c mPath;
147 /* 0xFD4 */ int field_0xfd4;
148 /* 0xFD8 */ u8 field_0xfd8;
149 /* 0xFD9 */ u8 field_0xfd9;
150 /* 0xFDC */ int field_0xfdc;
151};
152
153STATIC_ASSERT(sizeof(daNpc_Saru_c) == 0xfe0);
154
155#endif /* D_A_NPC_SARU_H */
Definition J3DJoint.h:66
Definition J3DModel.h:43
Definition JORMContext.h:128
Definition d_cc_d.h:472
Definition d_a_npc.h:30
Definition d_a_npc.h:145
Definition d_a_npc.h:516
Definition d_a_npc_saru.h:28
daNpc_Saru_HIOParam m
Definition d_a_npc_saru.h:36
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_saru.cpp:282
void genMessage(JORMContext *)
Definition d_a_npc_saru.cpp:286
daNpc_Saru_HIO_c()
Definition d_a_npc_saru.cpp:278
Definition d_a_npc_saru.h:20
static const daNpc_Saru_HIOParam m
Definition d_a_npc_saru.h:230
virtual ~daNpc_Saru_Param_c()
Definition d_a_npc_saru.h:22
Monkey NPC.
Definition d_a_npc_saru.h:44
void reset()
Definition d_a_npc_saru.cpp:485
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_saru.cpp:426
int field_0xfd4
Definition d_a_npc_saru.h:147
dCcD_Cyl field_0xe4c
Definition d_a_npc_saru.h:141
static void * srchYm(void *, void *)
Definition d_a_npc_saru.cpp:436
actionFunc field_0xfbc
Definition d_a_npc_saru.h:145
u32 getFlowNodeNo()
Definition d_a_npc_saru.h:125
void setSe()
Definition d_a_npc_saru.cpp:781
int cutFindMonkey(int)
Definition d_a_npc_saru.cpp:837
u8 mType
Definition d_a_npc_saru.h:142
daNpc_Saru_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_saru.h:115
static cutFunc mCutList[4]
Definition d_a_npc_saru.h:223
int setAction(int(daNpc_Saru_c::*)(void *))
Definition d_a_npc_saru.cpp:766
u8 field_0xfd8
Definition d_a_npc_saru.h:148
actionFunc field_0xfc8
Definition d_a_npc_saru.h:146
int Delete()
Definition d_a_npc_saru.cpp:408
void action()
Definition d_a_npc_saru.cpp:620
BOOL evtCutProc()
Definition d_a_npc_saru.cpp:606
s32 getNeckJointNo()
Definition d_a_npc_saru.h:122
BOOL checkChangeEvt()
Definition d_a_npc_saru.cpp:522
daNpcT_ActorMngr_c mActrMngr[1]
Definition d_a_npc_saru.h:143
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_saru.cpp:421
void beforeMove()
Definition d_a_npc_saru.cpp:648
int(daNpc_Saru_c::*) actionFunc(void *)
Definition d_a_npc_saru.h:47
s32 getHeadJointNo()
Definition d_a_npc_saru.h:121
~daNpc_Saru_c()
Definition d_a_npc_saru.cpp:291
int field_0xfdc
Definition d_a_npc_saru.h:150
int cutHelpMe(int)
Definition d_a_npc_saru.cpp:897
u8 getBitSW()
Definition d_a_npc_saru.h:134
void setAfterTalkMotion()
Definition d_a_npc_saru.cpp:576
u8 field_0xfd9
Definition d_a_npc_saru.h:149
BOOL evtTalk()
Definition d_a_npc_saru.cpp:596
void drawOtherMdl()
Definition d_a_npc_saru.cpp:737
daNpcT_Path_c mPath
Definition d_a_npc_saru.h:144
static char * mCutNameList[4]
Definition d_a_npc_saru.h:216
u8 getPathID()
Definition d_a_npc_saru.h:133
void setCollision()
Definition d_a_npc_saru.cpp:695
s32 getBackboneJointNo()
Definition d_a_npc_saru.h:123
int isDelete()
Definition d_a_npc_saru.cpp:462
int wait(void *)
Definition d_a_npc_saru.cpp:1036
int CreateHeap()
Definition d_a_npc_saru.cpp:364
void setParam()
Definition d_a_npc_saru.cpp:538
void setAttnPos()
Definition d_a_npc_saru.cpp:660
int Execute()
Definition d_a_npc_saru.cpp:413
BOOL chkAction(int(daNpc_Saru_c::*)(void *))
Definition d_a_npc_saru.cpp:762
int Draw()
Definition d_a_npc_saru.cpp:417
u8 getType()
Definition d_a_npc_saru.cpp:446
NPC_SARU_HIO_CLASS * mpHIO
Definition d_a_npc_saru.h:139
Type
Definition d_a_npc_saru.h:49
@ TYPE_0
Definition d_a_npc_saru.h:50
@ TYPE_2
Definition d_a_npc_saru.h:52
@ TYPE_1
Definition d_a_npc_saru.h:51
@ TYPE_3
Definition d_a_npc_saru.h:53
int create()
Definition d_a_npc_saru.cpp:305
J3DModel * mpRoseModels[2]
Definition d_a_npc_saru.h:140
void srchActors()
Definition d_a_npc_saru.cpp:583
Joint
Definition d_a_npc_saru.h:56
@ JNT_WAIST
Definition d_a_npc_saru.h:72
@ JNT_HAND_L
Definition d_a_npc_saru.h:67
@ JNT_ARM_L_2
Definition d_a_npc_saru.h:66
@ JNT_LEG_L_1
Definition d_a_npc_saru.h:73
@ JNT_BACKBONE_1
Definition d_a_npc_saru.h:58
@ JNT_SHOULDER_R
Definition d_a_npc_saru.h:68
@ JNT_ARM_R_2
Definition d_a_npc_saru.h:70
@ JNT_CENTER
Definition d_a_npc_saru.h:57
@ JNT_LEG_L_2
Definition d_a_npc_saru.h:74
@ JNT_BACKBONE_2
Definition d_a_npc_saru.h:59
@ JNT_ARM_L_1
Definition d_a_npc_saru.h:65
@ JNT_ARM_R_1
Definition d_a_npc_saru.h:69
@ JNT_NECK
Definition d_a_npc_saru.h:60
@ JNT_HEAD
Definition d_a_npc_saru.h:61
@ JNT_CHIN
Definition d_a_npc_saru.h:62
@ JNT_LEG_R_1
Definition d_a_npc_saru.h:76
@ JNT_SHOULDER_L
Definition d_a_npc_saru.h:64
@ JNT_FOOR_R
Definition d_a_npc_saru.h:78
@ JNT_MOUTH
Definition d_a_npc_saru.h:63
@ JNT_HAND_R
Definition d_a_npc_saru.h:71
@ JNT_LEG_R_2
Definition d_a_npc_saru.h:77
@ JNT_FOOT_L
Definition d_a_npc_saru.h:75
int selectAction()
Definition d_a_npc_saru.cpp:756
void afterJntAnm(int)
Definition d_a_npc_saru.cpp:512
int drawDbgInfo()
Definition d_a_npc_saru.cpp:733
int(daNpc_Saru_c::*) cutFunc(int)
Definition d_a_npc_saru.h:46
int talk(void *)
Definition d_a_npc_saru.cpp:1165
int cutYmLook(int)
Definition d_a_npc_saru.cpp:939
Definition f_op_actor.h:243
actor_place home
Definition f_op_actor.h:262
Definition m_Do_hostIO.h:26
STATIC_ASSERT(sizeof(daNpc_Saru_c)==0xfe0)
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:204
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition JORReflexible.h:10
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:219
Definition d_a_npc.h:842
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_saru.h:15
daNpcT_HIOParam common
Definition d_a_npc_saru.h:16
s16 scared_time
Definition d_a_npc_saru.h:17