Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_e_wb.h
Go to the documentation of this file.
1#ifndef D_A_E_WB_H
2#define D_A_E_WB_H
3
5#include "d/actor/d_a_horse.h"
7#include "d/d_cc_uty.h"
8
9// copypasta, fix when actual names known
29
31 /* 0x00 */ ACT_WAIT,
32 /* 0x01 */ ACT_WAIT2,
33 /* 0x04 */ ACT_RIDE = 0x04,
34 /* 0x05 */ ACT_F_WAIT,
35 /* 0x06 */ ACT_C_F_RUN,
36 /* 0x07 */ ACT_A_RUN,
37 /* 0x08 */ ACT_B_WAIT,
38 /* 0x09 */ ACT_B_WAIT2,
39 /* 0x0A */ ACT_B_RUN,
40 /* 0x0B */ ACT_B_RUN2,
41 /* 0x0F */ ACT_B_IKKI = 0x0F,
42 /* 0x10 */ ACT_B_IKKI_END,
43 /* 0x11 */ ACT_B_IKKI2,
44 /* 0x12 */ ACT_B_IKKI2_END,
45 /* 0x13 */ ACT_B_LV9_END,
46 /* 0x15 */ ACT_S_DAMAGE = 0x15,
47 /* 0x16 */ ACT_DAMAGE,
48 /* 0x17 */ ACT_BG_DAMAGE,
49 /* 0x18 */ ACT_LR_DAMAGE,
50 /* 0x1E */ ACT_KIBA_START = 0x1E,
51 /* 0x1F */ ACT_KIBA_END,
52 /* 0x32 */ ACT_EVENT = 0x32,
53 /* 0x65 */ ACT_PL_RIDE = 0x65,
54 /* 0x66 */ ACT_PL_RIDE2,
55 /* 0x67 */ ACT_PL_RIDE_NOW,
56 /* 0x6E */ ACT_CRV_WAIT = 0x6E,
57};
58
59struct himo_s {
60 /* 0x0 */ cXyz node[16];
61};
62
63
73public:
74 BOOL checkWait();
75 void setPlayerRideNow();
76 void setPlayerRide();
77 void getOff();
78 BOOL checkDownDamage();
79 BOOL checkNormalRideMode() const;
80 void setRunRideMode();
81
82 MtxP getRideMtx() { return anm_p->getModel()->getAnmMtx(15); }
83 f32 nowAnimeFrame() const { return anm_p->getFrame(); }
84 s16 getWaitRollAngle() const { return wait_roll_angle; }
85 BOOL checkGetOff() const { return enemy.speedF < 3.0f; }
86 f32 rideSpeedRate() const { return enemy.speedF / ride_speed_max; }
88 BOOL checkAnmLoopFrame() { return anm_p->checkFrame(0.0f); }
89
90 J3DModel* getModel() {
91 if (anm_p != NULL) {
92 return anm_p->getModel();
93 }
94
95 return NULL;
96 }
97
98public:
99 /* 0x0000 */ fopEn_enemy_c enemy;
101 /* 0x05B4 */ s16 ride_mode;
102 /* 0x05B8 */ char* resName;
103 /* 0x05BC */ u8 arg0;
104 /* 0x05BD */ u8 arg1;
105 /* 0x05BE */ u8 field_0x5be;
106 /* 0x05BF */ bool no_draw;
107 /* 0x05C0 */ u8 field_0x5c0;
108 /* 0x05C4 */ cXyz eye;
109 /* 0x05D0 */ cXyz field_0x5d0;
110 /* 0x05DC */ s16 target_ya;
111 /* 0x05DE */ s16 field_0x5de;
112 /* 0x05E0 */ mDoExt_McaMorfSO* anm_p;
113 /* 0x05E4 */ f32 anm_spd;
114 /* 0x05E8 */ int anmID;
115 /* 0x05EC */ Z2CreatureRide sound;
116 /* 0x0688 */ int field_0x688;
117 /* 0x068C */ s8 path_set;
118 /* 0x068E */ s16 counter;
119 /* 0x0690 */ s16 action;
120 /* 0x0692 */ s16 old_action;
121 /* 0x0694 */ int shadow_key;
122 /* 0x0698 */ s16 timer[4];
123 /* 0x06A0 */ s16 wait_timer;
124 /* 0x06A2 */ u8 field_0x6a2[0x6ae - 0x6a2];
125 /* 0x06AE */ csXyz rotation;
126 /* 0x06B4 */ csXyz rotation_spd;
127 /* 0x06BA */ s16 damage_timer;
128 /* 0x06BC */ u8 field_0x6bc;
129 /* 0x06BD */ s8 pursuit_flg;
130 /* 0x06BE */ u16 status_flag;
131 /* 0x06C0 */ s8 field_0x6c0;
132 /* 0x06C4 */ f32 x_check;
133 /* 0x06C8 */ int path_ten;
134 /* 0x06CC */ int dir;
135 /* 0x06D0 */ s16 range;
136 /* 0x06D2 */ s16 turn_step;
137 /* 0x06D4 */ s16 field_0x6d4;
138 /* 0x06D6 */ s16 field_0x6d6;
139 /* 0x06D8 */ s16 field_0x6d8;
140 /* 0x06DA */ s16 field_0x6da;
141 /* 0x06DC */ s16 field_0x6dc;
142 /* 0x06DE */ csXyz field_0x6de;
143 /* 0x06E4 */ s8 field_0x6e4;
144 /* 0x06E5 */ u8 field_0x6e5[0x6ec - 0x6e5];
145 /* 0x06EC */ csXyz field_0x6ec[29];
146 /* 0x079A */ s16 body_angle;
147 /* 0x079C */ u8 start_timer;
148 /* 0x079D */ s8 leader;
149 /* 0x079E */ s8 lap_num;
150 /* 0x079F */ s8 path_adjust_count;
151 /* 0x07A0 */ s16 dodge_angle;
152 /* 0x07A2 */ s8 kiba;
153 /* 0x07A4 */ s16 field_0x7a4;
154 /* 0x07A6 */ s8 field_0x7a6;
155 /* 0x07A7 */ s8 field_0x7a7;
156 /* 0x07A8 */ f32 pass;
157 /* 0x07AC */ dBgS_AcchCir AcchCir;
158 /* 0x07EC */ dBgS_ObjAcch Bgc;
159 /* 0x09C4 */ dCcD_Stts Stts;
160 /* 0x0A00 */ dCcD_Sph cc_sph[7];
161 /* 0x1288 */ dCcD_Sph at_sph;
162 /* 0x13C0 */ dCcU_AtInfo at_info;
163 /* 0x13E4 */ u8 field_0x13e4;
164 /* 0x13E8 */ u32 field_0x13e8[2];
165 /* 0x13F0 */ u32 field_0x13f0;
166 /* 0x13F4 */ u32 field_0x13f4;
167 /* 0x13F8 */ u32 field_0x13f8;
168 /* 0x13FC */ u32 field_0x13fc;
169 /* 0x1400 */ u32 field_0x1400;
170 /* 0x1404 */ u32 field_0x1404;
171 /* 0x1408 */ u32 field_0x1408[2];
172 /* 0x1410 */ u32 field_0x1410;
173 /* 0x1414 */ u32 field_0x1414;
174 /* 0x1418 */ u32 field_0x1418;
175 /* 0x141C */ u32 field_0x141c;
176 /* 0x1420 */ u32 w_eff_id[3];
177 /* 0x142C */ u8 movement_type;
178 /* 0x142D */ u8 collision_flg;
179 /* 0x142E */ u8 landing_flag;
180 /* 0x142F */ s8 gake_flg;
181 /* 0x1430 */ s8 demo_stop;
182 /* 0x1432 */ s16 dash_timer;
183 /* 0x1434 */ fpc_ProcID rd_id; // Rider actor ID? ///< @brief Process ID of rider actor.
184 /* 0x1438 */ cXyz rein_hand_pos[2];
185 /* 0x1450 */ himo_s himo[2];
188 /* 0x1684 */ f32 anm_time;
189 /* 0x1688 */ s16 field_0x1688;
190 /* 0x168A */ s16 field_0x168a;
191 /* 0x168C */ f32 rein_spd;
192 /* 0x1690 */ f32 acceleration;
193 /* 0x1694 */ u8 field_0x1694[0x169e - 0x1694];
194 /* 0x169E */ s16 demo_mode;
195 /* 0x16A0 */ s16 demo_timer;
196 /* 0x16A4 */ cXyz demo_cam_eye;
197 /* 0x16B0 */ cXyz demo_cam_eye_mae;
198 /* 0x16BC */ cXyz demo_cam_ctr;
199 /* 0x16C8 */ cXyz demo_cam_ctr_mae;
200 /* 0x16D4 */ cXyz demo_cam_target;
201 /* 0x16E0 */ cXyz demo_cam_way;
202 /* 0x16EC */ cXyz demo_cam_eye_spd;
203 /* 0x16F8 */ cXyz demo_cam_way_spd;
204 /* 0x1704 */ s16 demo_cam_ya;
205 /* 0x1708 */ f32 demo_cam_eye_z;
206 /* 0x170C */ f32 demo_cam_eye_x;
207 /* 0x1710 */ f32 demo_cam_morf;
208 /* 0x1714 */ f32 demo_cam_zoom;
209 /* 0x1718 */ f32 field_0x1718;
210 /* 0x171C */ f32 field_0x171c;
211 /* 0x1720 */ s8 field_0x1720;
212 /* 0x1721 */ s8 field_0x1721;
213 /* 0x1722 */ s8 saku_burn;
214 /* 0x1723 */ u8 field_0x1723[0x17c4 - 0x1723];
215 /* 0x17C4 */ u32 anm_se_eff;
216 /* 0x17C8 */ u8 field_0x17c8[0x17D0 - 0x17C8];
217 /* 0x17D0 */ u32 w_eff_id2[4];
218 /* 0x17E0 */ u8 field_0x17e0;
219 /* 0x17E1 */ u8 field_0x17e1;
220 /* 0x17E2 */ s16 wait_roll_angle;
221 /* 0x17E4 */ u8 field_0x17e4[0x17e8 - 0x17e4];
222 /* 0x17E8 */ f32 ride_speed_max;
223};
224
225STATIC_ASSERT(sizeof(e_wb_class) == 0x17EC);
226
227
228#endif /* D_A_E_WB_H */
Definition Z2LinkMgr.h:115
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:15
Definition d_bg_s_acch.h:244
Definition d_cc_d.h:487
Definition d_cc_d.h:273
Bullbo (Wild Boar)
Definition d_a_e_wb.h:72
f32 anm_spd
Animation playback speed.
Definition d_a_e_wb.h:113
cXyz demo_cam_eye_mae
Definition d_a_e_wb.h:197
u32 field_0x13f0
Definition d_a_e_wb.h:165
u32 anm_se_eff
Definition d_a_e_wb.h:215
s16 dodge_angle
Definition d_a_e_wb.h:151
s16 demo_timer
Definition d_a_e_wb.h:195
dCcU_AtInfo at_info
Definition d_a_e_wb.h:162
mDoExt_McaMorfSO * anm_p
Pointer to model morph animator.
Definition d_a_e_wb.h:112
u8 field_0x17e4[0x17e8 - 0x17e4]
Definition d_a_e_wb.h:221
fopEn_enemy_c enemy
Base enemy class instance.
Definition d_a_e_wb.h:99
u8 arg1
Creation parameter 2.
Definition d_a_e_wb.h:104
s16 dash_timer
Definition d_a_e_wb.h:182
void setRunRideMode()
Definition d_a_horse_static.cpp:45
f32 pass
Definition d_a_e_wb.h:156
s8 gake_flg
Definition d_a_e_wb.h:180
u32 field_0x13fc
Definition d_a_e_wb.h:168
u32 field_0x1414
Definition d_a_e_wb.h:173
s16 demo_mode
Definition d_a_e_wb.h:194
s16 action
High-level action ID.
Definition d_a_e_wb.h:119
cXyz demo_cam_way
Definition d_a_e_wb.h:201
f32 rideSpeedRate() const
Definition d_a_e_wb.h:86
void setPlayerRide()
Definition d_a_horse_static.cpp:17
u32 field_0x1418
Definition d_a_e_wb.h:174
cXyz demo_cam_ctr_mae
Definition d_a_e_wb.h:199
cXyz demo_cam_way_spd
Definition d_a_e_wb.h:203
s8 field_0x6e4
Definition d_a_e_wb.h:143
u8 field_0x1694[0x169e - 0x1694]
Definition d_a_e_wb.h:193
s8 field_0x7a7
Definition d_a_e_wb.h:155
u32 field_0x13f8
Definition d_a_e_wb.h:167
s16 counter
Definition d_a_e_wb.h:118
s16 body_angle
Body tilt angle based on turning.
Definition d_a_e_wb.h:146
s16 field_0x168a
Definition d_a_e_wb.h:190
BOOL checkAnmLoopFrame()
Definition d_a_e_wb.h:88
u32 field_0x1404
Definition d_a_e_wb.h:170
BOOL checkWait()
Definition d_a_horse_static.cpp:7
cXyz field_0x5d0
Definition d_a_e_wb.h:109
s8 path_adjust_count
Counter for periodic path adjustment.
Definition d_a_e_wb.h:150
s8 kiba
Definition d_a_e_wb.h:152
s16 field_0x6da
Definition d_a_e_wb.h:140
Z2CreatureRide sound
Z2 sound creature for ride effects.
Definition d_a_e_wb.h:115
s16 field_0x6d4
Definition d_a_e_wb.h:137
s16 demo_cam_ya
Definition d_a_e_wb.h:204
MtxP getRideMtx()
Definition d_a_e_wb.h:82
s8 field_0x7a6
Definition d_a_e_wb.h:154
BOOL checkDownDamage()
Definition d_a_horse_static.cpp:37
f32 field_0x1718
Definition d_a_e_wb.h:209
csXyz field_0x6ec[29]
Definition d_a_e_wb.h:145
u8 field_0x1723[0x17c4 - 0x1723]
Definition d_a_e_wb.h:214
dCcD_Sph at_sph
Definition d_a_e_wb.h:161
mDoExt_3DlineMat1_c himo_mat[2]
Definition d_a_e_wb.h:186
s16 field_0x6d6
Definition d_a_e_wb.h:138
u8 field_0x17e1
Definition d_a_e_wb.h:219
s16 field_0x5de
Definition d_a_e_wb.h:111
s16 damage_timer
Definition d_a_e_wb.h:127
f32 getAnimeFrameRate()
Definition d_a_e_wb.h:87
f32 demo_cam_zoom
Definition d_a_e_wb.h:208
cXyz rein_hand_pos[2]
Definition d_a_e_wb.h:184
s8 demo_stop
Definition d_a_e_wb.h:181
u8 landing_flag
Flag for landing after jump.
Definition d_a_e_wb.h:179
s16 wait_timer
Definition d_a_e_wb.h:123
u32 field_0x1410
Definition d_a_e_wb.h:172
s16 target_ya
Target facing angle for turning towards path point.
Definition d_a_e_wb.h:110
J3DModel * getModel()
Definition d_a_e_wb.h:90
char * resName
Resource name for loading models/animations.
Definition d_a_e_wb.h:102
s16 getWaitRollAngle() const
Definition d_a_e_wb.h:84
u8 field_0x6e5[0x6ec - 0x6e5]
Definition d_a_e_wb.h:144
u8 field_0x5be
Definition d_a_e_wb.h:105
u8 field_0x13e4
Definition d_a_e_wb.h:163
int shadow_key
Shadow drawing key.
Definition d_a_e_wb.h:121
u8 collision_flg
Flags for collision states.
Definition d_a_e_wb.h:178
s16 field_0x6dc
Definition d_a_e_wb.h:141
s16 old_action
Definition d_a_e_wb.h:120
u32 field_0x141c
Definition d_a_e_wb.h:175
f32 acceleration
Definition d_a_e_wb.h:192
s8 path_set
Flag indicating if path has been initialized.
Definition d_a_e_wb.h:117
mDoExt_3DlineMat1_c himo_tex
Definition d_a_e_wb.h:187
u16 status_flag
Bitfield for various status flags.
Definition d_a_e_wb.h:130
f32 field_0x171c
Definition d_a_e_wb.h:210
u8 field_0x17e0
Definition d_a_e_wb.h:218
u8 field_0x6a2[0x6ae - 0x6a2]
Definition d_a_e_wb.h:124
u32 w_eff_id2[4]
Definition d_a_e_wb.h:217
s16 field_0x7a4
Definition d_a_e_wb.h:153
int dir
Direction to iterate path points (+1 or -1).
Definition d_a_e_wb.h:134
u32 field_0x13e8[2]
Definition d_a_e_wb.h:164
u8 arg0
Creation parameter 1.
Definition d_a_e_wb.h:103
s8 field_0x1721
Definition d_a_e_wb.h:212
s16 field_0x1688
Definition d_a_e_wb.h:189
f32 demo_cam_morf
Definition d_a_e_wb.h:207
f32 x_check
Definition d_a_e_wb.h:132
u8 field_0x17c8[0x17D0 - 0x17C8]
Definition d_a_e_wb.h:216
s16 range
Definition d_a_e_wb.h:135
int field_0x688
Definition d_a_e_wb.h:116
u8 field_0x6bc
Definition d_a_e_wb.h:128
void getOff()
Definition d_a_horse_static.cpp:25
void setPlayerRideNow()
Definition d_a_horse_static.cpp:11
int anmID
Current animation ID.
Definition d_a_e_wb.h:114
s8 field_0x1720
Definition d_a_e_wb.h:211
u32 field_0x1400
Definition d_a_e_wb.h:169
f32 rein_spd
Definition d_a_e_wb.h:191
u8 movement_type
Type of movement (1 for normal, 2 for faster).
Definition d_a_e_wb.h:177
int path_ten
Current index in the path points array.
Definition d_a_e_wb.h:133
cXyz demo_cam_eye
Definition d_a_e_wb.h:196
bool no_draw
Definition d_a_e_wb.h:106
u32 field_0x13f4
Definition d_a_e_wb.h:166
u32 w_eff_id[3]
Definition d_a_e_wb.h:176
s16 turn_step
Step value for turning angle adjustment.
Definition d_a_e_wb.h:136
himo_s himo[2]
Definition d_a_e_wb.h:185
u8 start_timer
Definition d_a_e_wb.h:147
cXyz demo_cam_target
Definition d_a_e_wb.h:200
cXyz demo_cam_eye_spd
Definition d_a_e_wb.h:202
csXyz rotation_spd
Definition d_a_e_wb.h:126
BOOL checkGetOff() const
Definition d_a_e_wb.h:85
dCcD_Sph cc_sph[7]
Definition d_a_e_wb.h:160
f32 ride_speed_max
Speed rate for riding calculations.
Definition d_a_e_wb.h:222
dBgS_ObjAcch Bgc
Definition d_a_e_wb.h:158
dBgS_AcchCir AcchCir
Definition d_a_e_wb.h:157
f32 demo_cam_eye_x
Definition d_a_e_wb.h:206
s16 timer[4]
Definition d_a_e_wb.h:122
BOOL checkNormalRideMode() const
Definition d_a_horse_static.cpp:41
cXyz eye
Definition d_a_e_wb.h:108
u32 field_0x1408[2]
Definition d_a_e_wb.h:171
s8 leader
Definition d_a_e_wb.h:148
fpc_ProcID rd_id
Definition d_a_e_wb.h:183
s16 field_0x6d8
Definition d_a_e_wb.h:139
s16 ride_mode
Current sub-action mode within the run action.
Definition d_a_e_wb.h:101
u8 field_0x5c0
Definition d_a_e_wb.h:107
s8 field_0x6c0
Definition d_a_e_wb.h:131
s8 pursuit_flg
Flag indicating pursuit mode.
Definition d_a_e_wb.h:129
csXyz field_0x6de
Definition d_a_e_wb.h:142
f32 demo_cam_eye_z
Definition d_a_e_wb.h:205
s8 saku_burn
Definition d_a_e_wb.h:213
cXyz demo_cam_ctr
Definition d_a_e_wb.h:198
s16 wait_roll_angle
Roll angle during wait state.
Definition d_a_e_wb.h:220
dCcD_Stts Stts
Definition d_a_e_wb.h:159
request_of_phase_process_class phase
Phase process request handler.
Definition d_a_e_wb.h:100
csXyz rotation
Definition d_a_e_wb.h:125
f32 nowAnimeFrame() const
Definition d_a_e_wb.h:83
f32 anm_time
Duration or timer for animation.
Definition d_a_e_wb.h:188
s8 lap_num
Lap or progress count affecting path generation.
Definition d_a_e_wb.h:149
f32 speedF
Definition f_op_actor.h:304
Definition f_op_actor.h:327
Definition m_Do_ext.h:589
Definition m_Do_ext.h:408
J3DModel * getModel()
Definition m_Do_ext.h:427
BOOL checkFrame(f32 frame)
Definition m_Do_ext.h:366
f32 getFrame()
Definition m_Do_ext.h:363
f32 getEndFrame()
Definition m_Do_ext.h:357
daE_WB_ACT
Definition d_a_e_wb.h:30
@ ACT_S_DAMAGE
Definition d_a_e_wb.h:46
@ ACT_BG_DAMAGE
Definition d_a_e_wb.h:48
@ ACT_EVENT
Definition d_a_e_wb.h:52
@ ACT_B_RUN
Definition d_a_e_wb.h:39
@ ACT_PL_RIDE2
Definition d_a_e_wb.h:54
@ ACT_B_IKKI2
Definition d_a_e_wb.h:43
@ ACT_RIDE
Definition d_a_e_wb.h:33
@ ACT_KIBA_END
Definition d_a_e_wb.h:51
@ ACT_CRV_WAIT
Definition d_a_e_wb.h:56
@ ACT_B_WAIT2
Definition d_a_e_wb.h:38
@ ACT_KIBA_START
Definition d_a_e_wb.h:50
@ ACT_F_WAIT
Definition d_a_e_wb.h:34
@ ACT_B_RUN2
Definition d_a_e_wb.h:40
@ ACT_C_F_RUN
Definition d_a_e_wb.h:35
@ ACT_PL_RIDE
Definition d_a_e_wb.h:53
@ ACT_B_IKKI
Definition d_a_e_wb.h:41
@ ACT_B_WAIT
Definition d_a_e_wb.h:37
@ ACT_LR_DAMAGE
Definition d_a_e_wb.h:49
@ ACT_B_IKKI_END
Definition d_a_e_wb.h:42
@ ACT_PL_RIDE_NOW
Definition d_a_e_wb.h:55
@ ACT_A_RUN
Definition d_a_e_wb.h:36
@ ACT_B_LV9_END
Definition d_a_e_wb.h:45
@ ACT_WAIT
Definition d_a_e_wb.h:31
@ ACT_DAMAGE
Definition d_a_e_wb.h:47
@ ACT_B_IKKI2_END
Definition d_a_e_wb.h:44
@ ACT_WAIT2
Definition d_a_e_wb.h:32
STATIC_ASSERT(sizeof(e_wb_class)==0x17EC)
daE_WB_ANM
Definition d_a_e_wb.h:10
@ ANM_APPEAR
Definition d_a_e_wb.h:11
@ ANM_RUNAWAY
Definition d_a_e_wb.h:24
@ ANM_ATTACK
Definition d_a_e_wb.h:12
@ ANM_ATTACK_B
Definition d_a_e_wb.h:14
@ ANM_TODOME
Definition d_a_e_wb.h:26
@ ANM_RETURN_02
Definition d_a_e_wb.h:23
@ ANM_BOMB_DAMAGE
Definition d_a_e_wb.h:16
@ ANM_NO_DAMAGE
Definition d_a_e_wb.h:21
@ ANM_ATTACK_A
Definition d_a_e_wb.h:13
@ ANM_LOOK_M
Definition d_a_e_wb.h:20
@ ANM_DEAD
Definition d_a_e_wb.h:19
@ ANM_RETURN_01
Definition d_a_e_wb.h:22
@ ANM_WAIT_01
Definition d_a_e_wb.h:27
@ ANM_ATTACK_C
Definition d_a_e_wb.h:15
@ ANM_TEST_MOTION
Definition d_a_e_wb.h:25
@ ANM_CORE_DAMAGE
Definition d_a_e_wb.h:17
@ ANM_DAMAGE_WAIT
Definition d_a_e_wb.h:18
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition c_xyz.h:7
Definition d_cc_uty.h:20
Definition d_a_e_wb.h:59
cXyz node[16]
Definition d_a_e_wb.h:60
Definition c_phase.h:19