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 /* 0x8E */ s16 field_0x8e;
19};
20
22public:
24
25#if DEBUG
27#endif
28
29 static const daNpc_Saru_HIOParam m;
30};
31
36
37class daNpc_Saru_c : public daNpcT_c {
38public:
39 typedef int (daNpc_Saru_c::*cutFunc)(int);
40 typedef int (daNpc_Saru_c::*actionFunc)(void*);
41
48
49 enum Joint {
50 /* 0x00 */ JNT_CENTER,
51 /* 0x01 */ JNT_BACKBONE_1,
52 /* 0x02 */ JNT_BACKBONE_2,
53 /* 0x03 */ JNT_NECK,
54 /* 0x04 */ JNT_HEAD,
55 /* 0x05 */ JNT_CHIN,
56 /* 0x06 */ JNT_MOUTH,
57 /* 0x07 */ JNT_SHOULDER_L,
58 /* 0x08 */ JNT_ARM_L_1,
59 /* 0x09 */ JNT_ARM_L_2,
60 /* 0x0A */ JNT_HAND_L,
61 /* 0x0B */ JNT_SHOULDER_R,
62 /* 0x0C */ JNT_ARM_R_1,
63 /* 0x0D */ JNT_ARM_R_2,
64 /* 0x0E */ JNT_HAND_R,
65 /* 0x0F */ JNT_WAIST,
66 /* 0x10 */ JNT_LEG_L_1,
67 /* 0x11 */ JNT_LEG_L_2,
68 /* 0x12 */ JNT_FOOT_L,
69 /* 0x13 */ JNT_LEG_R_1,
70 /* 0x14 */ JNT_LEG_R_2,
71 /* 0x15 */ JNT_FOOR_R,
72 };
73
75 int create();
76 int CreateHeap();
77 int Delete();
78 int Execute();
79 int Draw();
80 static int createHeapCallBack(fopAc_ac_c*);
81 static int ctrlJointCallBack(J3DJoint*, int);
82 static void* srchYm(void*, void*);
83 u8 getType();
84 int isDelete();
85 void reset();
86 void afterJntAnm(int);
88 void setParam();
89 void setAfterTalkMotion();
90 void srchActors();
91 BOOL evtTalk();
93 void action();
94 void beforeMove();
95 void setAttnPos();
96 void setCollision();
97 int drawDbgInfo();
98 void drawOtherMdl();
99 int selectAction();
100 BOOL chkAction(int (daNpc_Saru_c::*)(void*));
101 int setAction(int (daNpc_Saru_c::*)(void*));
102 void setSe();
103 int cutFindMonkey(int);
104 int cutHelpMe(int);
105 int cutYmLook(int);
106 int wait(void*);
107 int talk(void*);
109 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
110 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
111 daNpcT_evtData_c const* param_7, char** param_8) :
112 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
113 {}
117
119 u16 rv = home.angle.x;
120 if (rv == 0xffff) {
121 return -1;
122 }
123 return rv;
124 }
125
126 u8 getPathID() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
127 u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
128
129 static char* mCutNameList[4];
130 static cutFunc mCutList[4];
131private:
132 #if DEBUG
134 #endif
135 /* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
136 /* 0xE44 */ J3DModel* mpRoseModels[2];
138 /* 0xF88 */ u8 mType;
140 /* 0xF94 */ daNpcT_Path_c mPath;
143 /* 0xFD4 */ int field_0xfd4;
144 /* 0xFD8 */ u8 field_0xfd8;
145 /* 0xFD9 */ u8 field_0xfd9;
146 /* 0xFDC */ int field_0xfdc;
147};
148
149STATIC_ASSERT(sizeof(daNpc_Saru_c) == 0xfe0);
150
151#endif /* D_A_NPC_SARU_H */
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition JORReflexible.h:43
Definition d_cc_d.h:461
Definition d_a_npc.h:30
Definition d_a_npc.h:145
Definition d_a_npc.h:516
Definition d_a_npc_saru.h:32
daNpc_Saru_HIOParam param
Definition d_a_npc_saru.h:34
Definition d_a_npc_saru.h:21
void genMessage(JORMContext *)
static const daNpc_Saru_HIOParam m
Definition d_a_npc_saru.h:238
virtual ~daNpc_Saru_Param_c()
Definition d_a_npc_saru.h:23
Monkey NPC.
Definition d_a_npc_saru.h:37
void reset()
Definition d_a_npc_saru.cpp:463
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_saru.cpp:404
int field_0xfd4
Definition d_a_npc_saru.h:143
dCcD_Cyl field_0xe4c
Definition d_a_npc_saru.h:137
static void * srchYm(void *, void *)
Definition d_a_npc_saru.cpp:414
actionFunc field_0xfbc
Definition d_a_npc_saru.h:141
u32 getFlowNodeNo()
Definition d_a_npc_saru.h:118
void setSe()
Definition d_a_npc_saru.cpp:759
int cutFindMonkey(int)
Definition d_a_npc_saru.cpp:815
u8 mType
Definition d_a_npc_saru.h:138
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:108
static cutFunc mCutList[4]
Definition d_a_npc_saru.h:223
int setAction(int(daNpc_Saru_c::*)(void *))
Definition d_a_npc_saru.cpp:744
u8 field_0xfd8
Definition d_a_npc_saru.h:144
actionFunc field_0xfc8
Definition d_a_npc_saru.h:142
int Delete()
Definition d_a_npc_saru.cpp:386
void action()
Definition d_a_npc_saru.cpp:598
BOOL evtCutProc()
Definition d_a_npc_saru.cpp:584
s32 getNeckJointNo()
Definition d_a_npc_saru.h:115
BOOL checkChangeEvt()
Definition d_a_npc_saru.cpp:500
daNpcT_ActorMngr_c mActrMngr[1]
Definition d_a_npc_saru.h:139
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_saru.cpp:399
void beforeMove()
Definition d_a_npc_saru.cpp:626
int(daNpc_Saru_c::*) actionFunc(void *)
Definition d_a_npc_saru.h:40
s32 getHeadJointNo()
Definition d_a_npc_saru.h:114
~daNpc_Saru_c()
Definition d_a_npc_saru.cpp:230
int field_0xfdc
Definition d_a_npc_saru.h:146
int cutHelpMe(int)
Definition d_a_npc_saru.cpp:875
u8 getBitSW()
Definition d_a_npc_saru.h:127
void setAfterTalkMotion()
Definition d_a_npc_saru.cpp:554
u8 field_0xfd9
Definition d_a_npc_saru.h:145
BOOL evtTalk()
Definition d_a_npc_saru.cpp:574
void drawOtherMdl()
Definition d_a_npc_saru.cpp:715
daNpcT_Path_c mPath
Definition d_a_npc_saru.h:140
static char * mCutNameList[4]
Definition d_a_npc_saru.h:216
daNpc_Saru_HIO_c * field_0xe90
Definition d_a_npc_saru.h:133
u8 getPathID()
Definition d_a_npc_saru.h:126
void setCollision()
Definition d_a_npc_saru.cpp:673
s32 getBackboneJointNo()
Definition d_a_npc_saru.h:116
int isDelete()
Definition d_a_npc_saru.cpp:440
int wait(void *)
Definition d_a_npc_saru.cpp:1014
int CreateHeap()
Definition d_a_npc_saru.cpp:342
void setParam()
Definition d_a_npc_saru.cpp:516
u8 field_0xe40[0xe44 - 0xe40]
Definition d_a_npc_saru.h:135
void setAttnPos()
Definition d_a_npc_saru.cpp:638
int Execute()
Definition d_a_npc_saru.cpp:391
BOOL chkAction(int(daNpc_Saru_c::*)(void *))
Definition d_a_npc_saru.cpp:740
int Draw()
Definition d_a_npc_saru.cpp:395
u8 getType()
Definition d_a_npc_saru.cpp:424
Type
Definition d_a_npc_saru.h:42
@ TYPE_0
Definition d_a_npc_saru.h:43
@ TYPE_2
Definition d_a_npc_saru.h:45
@ TYPE_1
Definition d_a_npc_saru.h:44
@ TYPE_3
Definition d_a_npc_saru.h:46
int create()
Definition d_a_npc_saru.cpp:284
J3DModel * mpRoseModels[2]
Definition d_a_npc_saru.h:136
void srchActors()
Definition d_a_npc_saru.cpp:561
Joint
Definition d_a_npc_saru.h:49
@ JNT_WAIST
Definition d_a_npc_saru.h:65
@ JNT_HAND_L
Definition d_a_npc_saru.h:60
@ JNT_ARM_L_2
Definition d_a_npc_saru.h:59
@ JNT_LEG_L_1
Definition d_a_npc_saru.h:66
@ JNT_BACKBONE_1
Definition d_a_npc_saru.h:51
@ JNT_SHOULDER_R
Definition d_a_npc_saru.h:61
@ JNT_ARM_R_2
Definition d_a_npc_saru.h:63
@ JNT_CENTER
Definition d_a_npc_saru.h:50
@ JNT_LEG_L_2
Definition d_a_npc_saru.h:67
@ JNT_BACKBONE_2
Definition d_a_npc_saru.h:52
@ JNT_ARM_L_1
Definition d_a_npc_saru.h:58
@ JNT_ARM_R_1
Definition d_a_npc_saru.h:62
@ JNT_NECK
Definition d_a_npc_saru.h:53
@ JNT_HEAD
Definition d_a_npc_saru.h:54
@ JNT_CHIN
Definition d_a_npc_saru.h:55
@ JNT_LEG_R_1
Definition d_a_npc_saru.h:69
@ JNT_SHOULDER_L
Definition d_a_npc_saru.h:57
@ JNT_FOOR_R
Definition d_a_npc_saru.h:71
@ JNT_MOUTH
Definition d_a_npc_saru.h:56
@ JNT_HAND_R
Definition d_a_npc_saru.h:64
@ JNT_LEG_R_2
Definition d_a_npc_saru.h:70
@ JNT_FOOT_L
Definition d_a_npc_saru.h:68
int selectAction()
Definition d_a_npc_saru.cpp:734
void afterJntAnm(int)
Definition d_a_npc_saru.cpp:490
int drawDbgInfo()
Definition d_a_npc_saru.cpp:711
int(daNpc_Saru_c::*) cutFunc(int)
Definition d_a_npc_saru.h:39
int talk(void *)
Definition d_a_npc_saru.cpp:1143
int cutYmLook(int)
Definition d_a_npc_saru.cpp:917
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_Saru_c)==0xfe0)
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
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
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_saru.h:15
s16 field_0x8e
Definition d_a_npc_saru.h:18
daNpcT_HIOParam common
Definition d_a_npc_saru.h:16
s16 scared_time
Definition d_a_npc_saru.h:17