Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_obj_sekizoa.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_SEKIZOA_H
2#define D_A_OBJ_SEKIZOA_H
3
4#include "d/actor/d_a_npc.h"
6
15class daObj_Sekizoa_c : public daNpcT_c {
16public:
17 typedef int (daObj_Sekizoa_c::*cutFunc)(int);
18 typedef int (daObj_Sekizoa_c::*actionFunc)(void*);
19
29
58
60 int create();
61 int CreateHeap();
62 int Delete();
63 int Execute();
64 int Draw();
65 static int createHeapCallBack(fopAc_ac_c*);
66 static void* srchSekizoa(void*, void*);
69 int isDelete();
70 void reset();
71 void srchActors();
72 int setYariAnm(int, int, f32);
73 int selectAction();
74 int chkAction(actionFunc i_action);
75 int setAction(actionFunc i_action);
77 int getWaitMotionNo();
78 int getGameMotionNo();
80 int getHitMotionNo();
81 int getStepMotionNo();
82 void jump();
83 void landing();
84 int cutStart(int);
85 int cutTurn(int);
86 int cutJump(int);
87 int cutGoal(int);
88 int cutExit(int);
89 int cutFree(int);
90 int cutExtinction(int);
91 int wait(void*);
92 int puzzle(void*);
93 int talk(void*);
95 daNpcT_motionAnmData_c const* param_2,
97 int param_4,
99 int param_6, daNpcT_evtData_c const* param_7, char** param_8)
100 : daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
102 daTag_EvtArea_c* evt_area_A = (daTag_EvtArea_c*)mActorMngrs[5].getActorP();
103 if (evt_area_A->chkPointInArea(current.pos)) {
104 return true;
105 }
106
107 daTag_EvtArea_c* evt_area_B = (daTag_EvtArea_c*)mActorMngrs[6].getActorP();
108 if (evt_area_B->chkPointInArea(current.pos)) {
110 return true;
111 }
112 return false;
113 }
114
115 s32 getBackboneJointNo() { return 1; }
116 s32 getHeadJointNo() { return 3; }
117 void afterJntAnm(int);
118 void setParam();
120 BOOL evtTalk();
122 void setAfterTalkMotion();
123 void action();
124 void beforeMove();
125 void setAttnPos();
126 void setCollision();
127 int drawDbgInfo();
128 void drawOtherMdl();
129 void drawGhost();
130 bool afterSetMotionAnm(int, int, f32, int);
131
133 if (mType != 0) {
134 fopAc_ac_c* actor_p = mActorMngrs[3].getActorP();
135 JUT_ASSERT(0x1A3, NULL != actor_p);
136
137 ((daObj_Sekizoa_c*)actor_p)->setWolfHowling();
138 } else {
139 mSetWolfHowling = 1;
140 }
141 }
142
144 if (mType == 2 || mType == 3) {
145 if (mType == 2) {
146 mMotionSeqMngr.setNo(2, 0.0f, 1, 0);
148 }
149 if (mType == 3) {
150 mMotionSeqMngr.setNo(13, 0.0f, 1, 0);
152 }
153 mFadeLightOn = true;
154 field_0x1178 = true;
155 }
156 }
157
159 int prm = fopAcM_GetParam(this) >> 0x1C;
160
161 u8 type;
162 switch (argument) {
163 case 0:
164 switch (prm) {
165 case 1:
166 type = 2;
167 break;
168 case 2:
169 type = 4;
170 break;
171 case 3:
172 type = 6;
173 break;
174 default:
175 type = 0;
176 break;
177 }
178 break;
179 case 1:
180 switch (prm) {
181 case 1:
182 type = 3;
183 break;
184 case 2:
185 type = 5;
186 break;
187 default:
188 type = 1;
189 break;
190 }
191 break;
192 default:
193 type = 0;
194 break;
195 }
196
197 return type;
198 }
199
200 u8 getBitSW() { return fopAcM_GetParam(this) & 0xff; }
201
202 u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
203
205 return chkPointInArea(dComIfGp_getPlayer(0)->current.pos, current.pos, 100.0f, 300.0f,
206 -300.0f, 0);
207 }
208
209 static char* mCutNameList[9];
210 static cutFunc mCutList[9];
211
214 /* 0x0E4C */ u8 field_0x0E4C[4]; // Padding
215 /* 0x0E50 */ dCcD_Cyl mCyl;
216 /* 0x0F8C */ dCcD_Cyl mCyl2;
217 /* 0x10C8 */ u8 mType;
218
229 /* 0x110C */ actionFunc mInitFunc;
231 /* 0x1124 */ daNpcT_Path_c mPath;
232 /* 0x114C */ cXyz mCXyzJump;
233 /* 0x1158 */ int mLatencyTime;
234 /* 0x115C */ float mJumpHeight;
235 /* 0x1160 */ float mJumpSpeed;
236 /* 0x1164 */ float mColsetBlend;
237 /* 0x1168 */ float mGoalStatueTurnSpeed;
238 /* 0x116C */ float mGoalStatueAngle;
239 /* 0x1170 */ s16 mPlayerDirection;
240 /* 0x1172 */ u8 mReset;
241 /* 0x1173 */ u8 mSetWolfHowling;
242 /* 0x1174 */ u8 mJump;
243 /* 0x1175 */ u8 mTurnPlayer;
244 /* 0x1176 */ bool mFadeLightOn;
245 /* 0x1177 */ bool field_0x1177;
246 /* 0x1178 */ bool field_0x1178;
247 /* 0x1179 */ u8 field_0x1179;
248 /* 0x117A */ u8 mReverseStatues; // Flag if statue B is on goal tile A at end of puzzle
249 /* 0x117B */ u8 field_0x117B; // Padding
250 /* 0x117C */ u8 field_0x117C;
251};
252
255
256 struct Data {
257 /* 0x00 */ f32 field_0x00;
258 /* 0x04 */ f32 field_0x04;
259 /* 0x08 */ f32 field_0x08;
260 /* 0x0C */ f32 field_0x0C;
261 /* 0x10 */ f32 field_0x10;
262 /* 0x14 */ f32 field_0x14;
263 /* 0x18 */ f32 field_0x18;
264 /* 0x1C */ f32 field_0x1C;
265 /* 0x20 */ f32 field_0x20;
266 /* 0x24 */ f32 field_0x24;
267 /* 0x28 */ f32 field_0x28;
268 /* 0x2C */ f32 field_0x2C;
269 /* 0x30 */ f32 field_0x30;
270 /* 0x34 */ f32 field_0x34;
271 /* 0x38 */ f32 field_0x38;
272 /* 0x3C */ f32 field_0x3C;
273 /* 0x40 */ f32 field_0x40;
274 /* 0x44 */ f32 field_0x44;
275 /* 0x48 */ s16 field_0x48;
276 /* 0x4A */ s16 field_0x4A;
277 /* 0x4C */ s16 field_0x4C;
278 /* 0x4E */ s16 field_0x4E;
279 /* 0x50 */ f32 field_0x50;
280 /* 0x54 */ f32 field_0x54;
281 /* 0x58 */ f32 field_0x58;
282 /* 0x5C */ f32 field_0x5C;
283 /* 0x60 */ int field_0x60;
284 /* 0x64 */ f32 field_0x64;
285 /* 0x68 */ f32 field_0x68;
286 /* 0x6C */ f32 field_0x6C;
287 /* 0x70 */ f32 field_0x70;
288 /* 0x74 */ f32 field_0x74;
289 /* 0x78 */ f32 field_0x78;
290 /* 0x7C */ f32 field_0x7C;
291 /* 0x80 */ f32 field_0x80;
292 /* 0x84 */ f32 field_0x84;
293 /* 0x88 */ f32 field_0x88;
294 /* 0x8C */ f32 field_0x8C;
295 /* 0x90 */ f32 field_0x90;
296 /* 0x94 */ f32 field_0x94;
297 /* 0x98 */ s16 field_0x98;
298 };
299
300 static Data const m;
301};
302
303#endif /* D_A_OBJ_SEKIZOA_H */
@ Z2SE_SEKI_END_DEMO_2
Definition Z2SeMgr.h:1891
virtual Z2SoundHandlePool * startCreatureSound(JAISoundID soundID, u32 mapinfo, s8 reverb)
Definition Z2Creature.cpp:159
Definition d_cc_d.h:461
Definition d_a_npc.h:30
fopAc_ac_c * getActorP()
Definition d_a_npc.cpp:298
void setNo(int i_index, f32 i_morf, BOOL i_reset, int i_offset)
Definition d_a_npc.h:90
Definition d_a_npc.h:145
Definition d_a_npc.h:516
BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16)
Definition d_a_npc.cpp:2312
Z2Creature mSound
Definition d_a_npc.h:523
daNpcT_MotionSeqMngr_c mMotionSeqMngr
Definition d_a_npc.h:546
Stone Guardian Statue(s)
Definition d_a_obj_sekizoa.h:15
float mJumpHeight
Definition d_a_obj_sekizoa.h:234
daNpcT_Path_c mPath
Definition d_a_obj_sekizoa.h:231
s32 getHeadJointNo()
Definition d_a_obj_sekizoa.h:116
dCcD_Cyl mCyl
Definition d_a_obj_sekizoa.h:215
bool mFadeLightOn
Definition d_a_obj_sekizoa.h:244
fopAc_ac_c * getSekizoaP(int)
Definition d_a_obj_sekizoa.cpp:326
mDoExt_invisibleModel mInvModel
Definition d_a_obj_sekizoa.h:213
~daObj_Sekizoa_c()
Definition d_a_obj_sekizoa.cpp:124
u8 field_0x1179
Definition d_a_obj_sekizoa.h:247
float mColsetBlend
Definition d_a_obj_sekizoa.h:236
void setAfterTalkMotion()
Definition d_a_obj_sekizoa.cpp:545
int cutJump(int)
Definition d_a_obj_sekizoa.cpp:1734
dCcD_Cyl mCyl2
Definition d_a_obj_sekizoa.h:216
void reset()
Definition d_a_obj_sekizoa.cpp:388
int wait(void *)
Definition d_a_obj_sekizoa.cpp:2234
u8 mReset
Definition d_a_obj_sekizoa.h:240
int CreateHeap()
Definition d_a_obj_sekizoa.cpp:197
void srchActors()
Definition d_a_obj_sekizoa.cpp:549
int cutTurn(int)
Definition d_a_obj_sekizoa.cpp:1694
void drawOtherMdl()
Definition d_a_obj_sekizoa.cpp:804
Animation
Definition d_a_obj_sekizoa.h:30
@ ANM_SEKI_WAIT_A
Definition d_a_obj_sekizoa.h:44
@ ANM_SEKI_WAIT_GAME_R
Definition d_a_obj_sekizoa.h:46
@ ANM_SEKI_HIT_L
Definition d_a_obj_sekizoa.h:31
@ ANM_SEKI_WAIT_L
Definition d_a_obj_sekizoa.h:47
@ ANM_SEKI_R_DEMO
Definition d_a_obj_sekizoa.h:37
@ ANM_SEKIL_JUMP
Definition d_a_obj_sekizoa.h:49
@ ANM_SEKI_L_DEMO
Definition d_a_obj_sekizoa.h:33
@ ANM_SEKI_L_LASTDEMO
Definition d_a_obj_sekizoa.h:34
@ ANM_YARIB_GAME
Definition d_a_obj_sekizoa.h:55
@ ANM_YARIB_STILL_R
Definition d_a_obj_sekizoa.h:56
@ ANM_YARIA_GAME
Definition d_a_obj_sekizoa.h:52
@ ANM_SEKI_NO_JUMP_R
Definition d_a_obj_sekizoa.h:36
@ ANM_SEKI_WAIT_GAME_L
Definition d_a_obj_sekizoa.h:45
@ ANM_YARIA_STILL_L
Definition d_a_obj_sekizoa.h:53
@ ANM_SEKI_NO_JUMP_L
Definition d_a_obj_sekizoa.h:35
@ ANM_YARIB_DEMO
Definition d_a_obj_sekizoa.h:54
@ ANM_SEKI_STILL_L
Definition d_a_obj_sekizoa.h:42
@ ANM_SEKI_WAIT_R
Definition d_a_obj_sekizoa.h:48
@ ANM_SEKI_STEP_L
Definition d_a_obj_sekizoa.h:40
@ ANM_SEKI_HIT_R
Definition d_a_obj_sekizoa.h:32
@ ANM_SEKI_STEP
Definition d_a_obj_sekizoa.h:39
@ ANM_SEKIR_JUMP
Definition d_a_obj_sekizoa.h:50
@ ANM_SEKI_STEP_R
Definition d_a_obj_sekizoa.h:41
@ ANM_SEKI_R_LASTDEMO
Definition d_a_obj_sekizoa.h:38
@ ANM_YARIA_DEMO
Definition d_a_obj_sekizoa.h:51
@ ANM_SEKI_STILL_R
Definition d_a_obj_sekizoa.h:43
BOOL chkPressPlayer()
Definition d_a_obj_sekizoa.h:204
actionFunc mExecuteFunc
Definition d_a_obj_sekizoa.h:230
void setWolfHowling()
Definition d_a_obj_sekizoa.h:132
u8 mSetWolfHowling
Definition d_a_obj_sekizoa.h:241
u8 mType
Definition d_a_obj_sekizoa.h:217
int getNoJumpMotionNo()
Definition d_a_obj_sekizoa.cpp:1124
void setParam()
Definition d_a_obj_sekizoa.cpp:451
u8 getType()
Definition d_a_obj_sekizoa.h:158
void afterJntAnm(int)
Definition d_a_obj_sekizoa.cpp:440
int getGameMotionNo()
Definition d_a_obj_sekizoa.cpp:1112
bool afterSetMotionAnm(int, int, f32, int)
Definition d_a_obj_sekizoa.cpp:897
void setCollision()
Definition d_a_obj_sekizoa.cpp:727
float mGoalStatueTurnSpeed
Definition d_a_obj_sekizoa.h:237
float mJumpSpeed
Definition d_a_obj_sekizoa.h:235
u8 getBitSW()
Definition d_a_obj_sekizoa.h:200
int selectAction()
Definition d_a_obj_sekizoa.cpp:1036
int cutGoal(int)
Definition d_a_obj_sekizoa.cpp:1796
int cutStart(int)
Definition d_a_obj_sekizoa.cpp:1284
u8 getBitSW2()
Definition d_a_obj_sekizoa.h:202
int Delete()
Definition d_a_obj_sekizoa.cpp:286
BOOL evtCutProc()
Definition d_a_obj_sekizoa.cpp:636
cXyz mCXyzJump
Definition d_a_obj_sekizoa.h:232
u8 field_0x117B
Definition d_a_obj_sekizoa.h:249
static void * srchSekizoa(void *, void *)
Definition d_a_obj_sekizoa.cpp:315
bool field_0x1178
Definition d_a_obj_sekizoa.h:246
float mGoalStatueAngle
Definition d_a_obj_sekizoa.h:238
int cutExit(int)
Definition d_a_obj_sekizoa.cpp:2026
mDoExt_McaMorfSO * mpMcaMorf
Definition d_a_obj_sekizoa.h:212
s16 mPlayerDirection
Definition d_a_obj_sekizoa.h:239
u8 field_0x117C
Definition d_a_obj_sekizoa.h:250
BOOL evtTalk()
Definition d_a_obj_sekizoa.cpp:617
u8 mTurnPlayer
Definition d_a_obj_sekizoa.h:243
int talk(void *)
Definition d_a_obj_sekizoa.cpp:2360
int getStepMotionNo()
Definition d_a_obj_sekizoa.cpp:1144
void setFadeLightOff()
Definition d_a_obj_sekizoa.h:143
BOOL chkGoal()
Definition d_a_obj_sekizoa.h:101
int puzzle(void *)
Definition d_a_obj_sekizoa.cpp:2285
int isDelete()
Definition d_a_obj_sekizoa.cpp:355
u8 field_0x0E4C[4]
Definition d_a_obj_sekizoa.h:214
int cutExtinction(int)
Definition d_a_obj_sekizoa.cpp:2153
u8 mJump
Definition d_a_obj_sekizoa.h:242
int(daObj_Sekizoa_c::*) cutFunc(int)
Definition d_a_obj_sekizoa.h:17
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_obj_sekizoa.cpp:311
fopAc_ac_c * getKMsgTagP()
Definition d_a_obj_sekizoa.cpp:343
daObj_Sekizoa_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_obj_sekizoa.h:94
int getHitMotionNo()
Definition d_a_obj_sekizoa.cpp:1134
int cutFree(int)
Definition d_a_obj_sekizoa.cpp:2076
int mLatencyTime
Definition d_a_obj_sekizoa.h:233
static char * mCutNameList[9]
Definition d_a_obj_sekizoa.h:98
bool field_0x1177
Definition d_a_obj_sekizoa.h:245
int Draw()
Definition d_a_obj_sekizoa.cpp:295
int drawDbgInfo()
Definition d_a_obj_sekizoa.cpp:800
void beforeMove()
Definition d_a_obj_sekizoa.cpp:674
void setAttnPos()
Definition d_a_obj_sekizoa.cpp:681
int getWaitMotionNo()
Definition d_a_obj_sekizoa.cpp:1100
int(daObj_Sekizoa_c::*) actionFunc(void *)
Definition d_a_obj_sekizoa.h:18
int checkMoveDirection()
Definition d_a_obj_sekizoa.cpp:1069
int create()
Definition d_a_obj_sekizoa.cpp:143
int Execute()
Definition d_a_obj_sekizoa.cpp:291
int setYariAnm(int, int, f32)
Definition d_a_obj_sekizoa.cpp:834
int setAction(actionFunc i_action)
Definition d_a_obj_sekizoa.cpp:1054
void action()
Definition d_a_obj_sekizoa.cpp:653
void landing()
Definition d_a_obj_sekizoa.cpp:1266
s32 getBackboneJointNo()
Definition d_a_obj_sekizoa.h:115
daNpcT_ActorMngr_c mActorMngrs[8]
Definition d_a_obj_sekizoa.h:228
actionFunc mInitFunc
Definition d_a_obj_sekizoa.h:229
void jump()
Definition d_a_obj_sekizoa.cpp:1155
BOOL checkChangeEvt()
Definition d_a_obj_sekizoa.cpp:528
static cutFunc mCutList[9]
Definition d_a_obj_sekizoa.h:102
u8 mReverseStatues
Definition d_a_obj_sekizoa.h:248
int chkAction(actionFunc i_action)
Definition d_a_obj_sekizoa.cpp:1050
void drawGhost()
Definition d_a_obj_sekizoa.cpp:882
Type
Definition d_a_obj_sekizoa.h:20
@ TYPE_0
Definition d_a_obj_sekizoa.h:21
@ TYPE_3
Definition d_a_obj_sekizoa.h:24
@ TYPE_6
Definition d_a_obj_sekizoa.h:27
@ TYPE_1
Definition d_a_obj_sekizoa.h:22
@ TYPE_5
Definition d_a_obj_sekizoa.h:26
@ TYPE_4
Definition d_a_obj_sekizoa.h:25
@ TYPE_2
Definition d_a_obj_sekizoa.h:23
Definition d_a_tag_evtarea.h:6
BOOL chkPointInArea(cXyz, cXyz)
Definition d_a_tag_evtarea.cpp:151
Definition f_op_actor.h:230
s8 argument
Definition f_op_actor.h:244
actor_place current
Definition f_op_actor.h:251
Definition m_Do_ext.h:331
Definition m_Do_ext.h:265
fopAc_ac_c * dComIfGp_getPlayer(int idx)
Definition d_com_inf_game.h:2339
int BOOL
Definition types.h:33
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
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
cXyz pos
Definition f_op_actor.h:205
Definition c_xyz.h:7
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_obj_sekizoa.h:256
f32 field_0x7C
Definition d_a_obj_sekizoa.h:290
f32 field_0x00
Definition d_a_obj_sekizoa.h:257
f32 field_0x8C
Definition d_a_obj_sekizoa.h:294
f32 field_0x2C
Definition d_a_obj_sekizoa.h:268
f32 field_0x64
Definition d_a_obj_sekizoa.h:284
f32 field_0x04
Definition d_a_obj_sekizoa.h:258
f32 field_0x78
Definition d_a_obj_sekizoa.h:289
int field_0x60
Definition d_a_obj_sekizoa.h:283
f32 field_0x90
Definition d_a_obj_sekizoa.h:295
f32 field_0x0C
Definition d_a_obj_sekizoa.h:260
f32 field_0x50
Definition d_a_obj_sekizoa.h:279
f32 field_0x24
Definition d_a_obj_sekizoa.h:266
f32 field_0x70
Definition d_a_obj_sekizoa.h:287
f32 field_0x30
Definition d_a_obj_sekizoa.h:269
f32 field_0x34
Definition d_a_obj_sekizoa.h:270
f32 field_0x5C
Definition d_a_obj_sekizoa.h:282
s16 field_0x48
Definition d_a_obj_sekizoa.h:275
s16 field_0x4C
Definition d_a_obj_sekizoa.h:277
f32 field_0x1C
Definition d_a_obj_sekizoa.h:264
f32 field_0x40
Definition d_a_obj_sekizoa.h:273
f32 field_0x08
Definition d_a_obj_sekizoa.h:259
f32 field_0x38
Definition d_a_obj_sekizoa.h:271
f32 field_0x6C
Definition d_a_obj_sekizoa.h:286
f32 field_0x54
Definition d_a_obj_sekizoa.h:280
f32 field_0x44
Definition d_a_obj_sekizoa.h:274
f32 field_0x28
Definition d_a_obj_sekizoa.h:267
s16 field_0x4E
Definition d_a_obj_sekizoa.h:278
f32 field_0x88
Definition d_a_obj_sekizoa.h:293
s16 field_0x98
Definition d_a_obj_sekizoa.h:297
f32 field_0x74
Definition d_a_obj_sekizoa.h:288
f32 field_0x68
Definition d_a_obj_sekizoa.h:285
f32 field_0x10
Definition d_a_obj_sekizoa.h:261
f32 field_0x80
Definition d_a_obj_sekizoa.h:291
f32 field_0x20
Definition d_a_obj_sekizoa.h:265
f32 field_0x94
Definition d_a_obj_sekizoa.h:296
f32 field_0x3C
Definition d_a_obj_sekizoa.h:272
f32 field_0x14
Definition d_a_obj_sekizoa.h:262
f32 field_0x58
Definition d_a_obj_sekizoa.h:281
f32 field_0x84
Definition d_a_obj_sekizoa.h:292
s16 field_0x4A
Definition d_a_obj_sekizoa.h:276
f32 field_0x18
Definition d_a_obj_sekizoa.h:263
Definition d_a_obj_sekizoa.h:253
virtual ~daObj_Sekizoa_Param_c()
Definition d_a_obj_sekizoa.h:254
static Data const m
Definition d_a_obj_sekizoa.h:118