Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_boomerang.h
Go to the documentation of this file.
1#ifndef D_A_BOOMERANG_H
2#define D_A_BOOMERANG_H
3
7
9public:
10 /* 8049E0B8 */ int createHeap();
11 /* 8049E36C */ void initialize();
12 /* 8049EB64 */ int playAnime(int, int);
13 /* 8049EDA8 */ void initFrame(int);
14 /* 8049EDE8 */ void copyNumData(int);
15 /* 8049EEC8 */ void setSight(cXyz const*, int);
16 /* 8049EF60 */ void draw();
17
18 /* 804A278C */ virtual ~daBoomerang_sight_c();
19
20 u8 getReserve() const { return mReserve; }
21 u8 getAlpha(int i_index) { return mAlpha[i_index]; }
22 void offRedSight() { mRedSight = false; }
23 void onReserve() { mReserve = 1; }
24 void offReserve() { mReserve = 0; }
25
26private:
27 /* 0x04 */ J2DScreen* field_0x4;
28 /* 0x08 */ J2DPane* field_0x8;
29 /* 0x0C */ J2DPane* field_0xc;
30 /* 0x10 */ J2DPane* field_0x10;
31 /* 0x14 */ J2DPane* field_0x14;
34 /* 0x20 */ J2DScreen* field_0x20;
35 /* 0x24 */ J2DPane* field_0x24;
36 /* 0x28 */ J2DPane* field_0x28;
37 /* 0x2C */ J2DPane* field_0x2c;
38 /* 0x30 */ J2DPane* field_0x30;
41 /* 0x3C */ J2DScreen* field_0x3c;
42 /* 0x40 */ J2DPane* field_0x40;
43 /* 0x44 */ J2DPane* field_0x44;
44 /* 0x48 */ J2DPane* field_0x48;
45 /* 0x4C */ J2DPane* field_0x4c;
50 /* 0x60 */ bool mRedSight;
51 /* 0x61 */ u8 mReserve;
52 /* 0x62 */ u8 mAlpha[6];
53 /* 0x68 */ f32 field_0x68[6];
54 /* 0x80 */ f32 field_0x80[6];
55 /* 0x98 */ f32 field_0x98[6];
56 /* 0xB0 */ f32 field_0xb0[6];
57 /* 0xC8 */ cXyz field_0xc8[6];
58}; // Size: 0x110
59
60class daAlink_c;
61
70class daBoomerang_c : public fopAc_ac_c {
71public:
73 /* 0x001 */ FLG0_1 = 0x001,
74 /* 0x004 */ FLG0_UNK = 0x004,
75 /* 0x010 */ FLG0_10 = 0x010,
76 /* 0x200 */ FLG0_0x200 = 0x200,
77 /* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800,
78 /* 0x080 */ WIND_CATCH = 0x80,
79 };
80
81 /* 8049F280 */ void windModelCallBack();
82 /* 8049F39C */ int draw();
83 /* 8049F5F4 */ void lockLineCallback(fopAc_ac_c*);
84 /* 8049F660 */ void moveLineCallback(fopAc_ac_c*);
85 /* 8049F710 */ void pushLockList(int);
86 /* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*);
87 /* 8049F874 */ void setAimActorBase(fopAc_ac_c*);
88 /* 8049F8B0 */ int setLockActor(fopAc_ac_c*, int);
89 /* 8049F9A4 */ void resetLockActor();
90 /* 8049F9F0 */ void setRoomInfo();
91 /* 8049FAA4 */ void setKeepMatrix();
92 /* 8049FBAC */ void setMoveMatrix();
93 /* 8049FCD0 */ void setRotAngle();
94 /* 8049FD6C */ void setAimPos();
95 /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*);
96 /* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16);
97 /* 804A012C */ void setEffect();
98 /* 804A0874 */ void procWait();
99 /* 804A0F0C */ void procMove();
100 /* 804A1814 */ int execute();
101 /* 804A1BF4 */ ~daBoomerang_c();
102 /* 804A1EE4 */ int createHeap();
103 /* 804A2084 */ int create();
104 /* 804A230C */ daBoomerang_c();
105
109 bool checkForceDelete() const { return mForceDelete; }
110 void onForceDelete() { mForceDelete = true; }
111 bool checkCharge() const { return true; }
112 void setThrow() { fopAcM_SetParam(this, 1); }
113 void setAimActor(fopAc_ac_c* i_actor) { (this->*mpSetAimActorFn)(i_actor); }
115 u8 getLockReserve() const { return mSight.getReserve(); }
116 bool getLockCntMax() { return mLockCnt >= 5; }
118
119private:
120 /* 0x568 */ J3DModel* field_0x568;
121 /* 0x56C */ J3DModel* field_0x56c;
123 /* 0x574 */ mDoExt_bckAnm mBck;
124 /* 0x590 */ J3DModel* field_0x590;
127 /* 0x6A8 */ s32 field_0x6a8;
128 /* 0x6AC */ s32 field_0x6ac[5];
129 /* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points
130 /* 0x6D4 */ u32 field_0x6d4;
133 /* 0x718 */ u8 field_0x718[5];
136 /* 0x918 */ dPaPo_c field_0x918;
137 /* 0x950 */ u8 mLockCnt;
138 /* 0x951 */ u8 field_0x951;
139 /* 0x952 */ u8 field_0x952;
140 /* 0x953 */ u8 field_0x953;
141 /* 0x954 */ u8 field_0x954;
142 /* 0x955 */ u8 field_0x955;
143 /* 0x956 */ bool mForceDelete;
144 /* 0x957 */ u8 field_0x957;
145 /* 0x958 */ s16 field_0x958;
146 /* 0x95A */ s16 field_0x95a;
147 /* 0x95C */ s16 field_0x95c;
148 /* 0x95E */ s16 field_0x95e;
149 /* 0x960 */ s16 field_0x960;
150 /* 0x962 */ s16 field_0x962;
151 /* 0x964 */ u32 mStateFlg0;
152 /* 0x968 */ u32 field_0x968;
153 /* 0x96C */ u32 field_0x96c;
154 /* 0x970 */ u32 field_0x970;
155 /* 0x974 */ u32 field_0x974;
156 /* 0x978 */ u32 field_0x978;
157 /* 0x97C */ u32 field_0x97c;
158 /* 0x980 */ f32 field_0x980;
159 /* 0x984 */ f32 field_0x984;
160 /* 0x988 */ f32 field_0x988;
161 /* 0x98C */ f32 field_0x98c;
162 /* 0x990 */ cXyz field_0x990;
163 /* 0x99C */ cXyz field_0x99c;
164 /* 0x9A8 */ f32 field_0x9a8;
165 /* 0x9AC */ cXyz field_0x9ac;
166 /* 0x9B8 */ cXyz field_0x9b8;
167 /* 0x9C4 */ cXyz field_0x9c4;
174 /* 0xDC0 */ int (daBoomerang_c::*mpProcFn)();
177};
178
179STATIC_ASSERT(sizeof(daBoomerang_c) == 0xDE4);
180
182public:
183 static u16 const m_lockWaitTime;
184 static f32 const m_minCircleR;
185 static f32 const m_middleCircleR;
186 static f32 const m_maxCircleR;
187 static f32 const m_scale;
188 static f32 const m_lockWindScale;
189};
190
191
192#endif /* D_A_BOOMERANG_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
Definition J2DAnimation.h:381
Definition J2DAnimation.h:311
Definition J2DAnimation.h:146
Definition J2DPane.h:51
Definition J2DScreen.h:48
Definition JPAEmitter.h:94
Definition Z2SoundObject.h:34
Definition d_bg_s_lin_chk.h:34
Definition d_bg_s_lin_chk.h:48
Definition d_cc_d.h:444
Definition d_particle_copoly.h:10
Definition d_a_boomerang.h:181
static f32 const m_middleCircleR
Definition d_a_boomerang.h:185
static f32 const m_scale
Definition d_a_boomerang.h:187
static f32 const m_minCircleR
Definition d_a_boomerang.h:184
static u16 const m_lockWaitTime
Definition d_a_boomerang.h:183
static f32 const m_lockWindScale
Definition d_a_boomerang.h:188
static f32 const m_maxCircleR
Definition d_a_boomerang.h:186
Gale Boomerang.
Definition d_a_boomerang.h:70
void lockLineCallback(fopAc_ac_c *)
Definition d_a_boomerang.cpp:888
u32 field_0x970
Definition d_a_boomerang.h:154
s16 field_0x958
Definition d_a_boomerang.h:145
void pushLockList(int)
Definition d_a_boomerang.cpp:932
u32 field_0x974
Definition d_a_boomerang.h:155
void onLockDistanceCancel()
Definition d_a_boomerang.h:117
s32 field_0x6ac[5]
Definition d_a_boomerang.h:128
s16 field_0x95e
Definition d_a_boomerang.h:148
int(daBoomerang_c::* mpProcFn)()
Definition d_a_boomerang.h:174
dCcD_Cps field_0xa0c
Definition d_a_boomerang.h:169
J3DModel * field_0x590
Definition d_a_boomerang.h:124
daBoomerang_FLG0
Definition d_a_boomerang.h:72
@ FLG0_0x200
Definition d_a_boomerang.h:76
@ FLG0_1
Definition d_a_boomerang.h:73
@ FLG0_10
Definition d_a_boomerang.h:75
@ FLG0_UNK
Definition d_a_boomerang.h:74
@ FLG0_LOCK_DIST_CANCEL
Definition d_a_boomerang.h:77
@ WIND_CATCH
Definition d_a_boomerang.h:78
dCcD_Cyl field_0xb50
Definition d_a_boomerang.h:170
u8 field_0x952
Definition d_a_boomerang.h:139
cXyz field_0x9b8
Definition d_a_boomerang.h:166
void(daBoomerang_c::* mpCancelLockActorFn)(fopAc_ac_c *)
Definition d_a_boomerang.h:176
Z2SoundObjSimple field_0x720
Definition d_a_boomerang.h:134
cXyz field_0x9ac
Definition d_a_boomerang.h:165
void setRotAngle()
Definition d_a_boomerang.cpp:1079
s16 field_0x95a
Definition d_a_boomerang.h:146
dCcD_Stts field_0x9d0
Definition d_a_boomerang.h:168
int createHeap()
Definition d_a_boomerang.cpp:1717
bool getLockCntMax()
Definition d_a_boomerang.h:116
void setMoveMatrix()
Definition d_a_boomerang.cpp:1053
u32 field_0x97c
Definition d_a_boomerang.h:157
cXyz mLockActorsPositions[5]
Definition d_a_boomerang.h:132
u8 field_0x957
Definition d_a_boomerang.h:144
void resetLockActor()
Definition d_a_boomerang.cpp:1006
int create()
Definition d_a_boomerang.cpp:1759
void setEffect()
Definition d_a_boomerang.cpp:1577
cXyz field_0x9c4
Definition d_a_boomerang.h:167
void setRoomInfo()
Definition d_a_boomerang.cpp:1018
f32 field_0x984
Definition d_a_boomerang.h:159
void cancelLockActor(fopAc_ac_c *i_actor)
Definition d_a_boomerang.h:114
daBoomerang_sight_c mSight
Definition d_a_boomerang.h:126
f32 field_0x9a8
Definition d_a_boomerang.h:164
bool checkCharge() const
Definition d_a_boomerang.h:111
void setKeepMatrix()
Definition d_a_boomerang.cpp:1035
void onForceDelete()
Definition d_a_boomerang.h:110
s32 field_0x6a8
Definition d_a_boomerang.h:127
mDoExt_bckAnm mBck
Definition d_a_boomerang.h:123
f32 field_0x98c
Definition d_a_boomerang.h:161
dBgS_ObjGndChk field_0xd6c
Definition d_a_boomerang.h:173
void procMove()
Definition d_a_boomerang.cpp:1667
dPaPo_c field_0x918
Definition d_a_boomerang.h:136
cXyz field_0x990
Definition d_a_boomerang.h:162
fopAc_ac_c * field_0x6d8
Definition d_a_boomerang.h:131
void setAimPos()
Definition d_a_boomerang.cpp:1089
~daBoomerang_c()
Definition d_a_boomerang.cpp:1706
dBgS_ObjLinChk field_0xcfc
Definition d_a_boomerang.h:172
u8 field_0x951
Definition d_a_boomerang.h:138
u32 field_0x96c
Definition d_a_boomerang.h:153
s16 field_0x95c
Definition d_a_boomerang.h:147
fopAc_ac_c * mLockActors[5]
Definition d_a_boomerang.h:129
daBoomerang_c()
Definition d_a_boomerang.cpp:1764
void onWindCatch()
Definition d_a_boomerang.h:108
int draw()
Definition d_a_boomerang.cpp:829
void moveLineCallback(fopAc_ac_c *)
Definition d_a_boomerang.cpp:906
void setThrow()
Definition d_a_boomerang.h:112
int setLockActor(fopAc_ac_c *, int)
Definition d_a_boomerang.cpp:978
u8 field_0x718[5]
Definition d_a_boomerang.h:133
JPABaseEmitter * setEffectTraceMatrix(u32 *, u16)
Definition d_a_boomerang.cpp:1161
dBgS_BoomerangLinChk field_0xc8c
Definition d_a_boomerang.h:171
void(daBoomerang_c::* mpSetAimActorFn)(fopAc_ac_c *)
Definition d_a_boomerang.h:175
J3DAnmTextureSRTKey * m_windBtk
Definition d_a_boomerang.h:122
f32 field_0x980
Definition d_a_boomerang.h:158
bool checkForceDelete() const
Definition d_a_boomerang.h:109
J3DAnmTextureSRTKey * m_waitEffBtk
Definition d_a_boomerang.h:125
u8 field_0x954
Definition d_a_boomerang.h:141
u8 getLockReserve() const
Definition d_a_boomerang.h:115
u32 field_0x978
Definition d_a_boomerang.h:156
u8 mLockCnt
Definition d_a_boomerang.h:137
void cancelLockActorBase(fopAc_ac_c *)
Definition d_a_boomerang.cpp:958
int execute()
Definition d_a_boomerang.cpp:1687
dBgS_Acch field_0x740
Definition d_a_boomerang.h:135
u8 field_0x953
Definition d_a_boomerang.h:140
s16 field_0x960
Definition d_a_boomerang.h:149
u32 field_0x6d4
Definition d_a_boomerang.h:130
void procWait()
Definition d_a_boomerang.cpp:1603
f32 field_0x988
Definition d_a_boomerang.h:160
void setAimActor(fopAc_ac_c *i_actor)
Definition d_a_boomerang.h:113
u32 checkStateFlg0(daBoomerang_FLG0 i_flag)
Definition d_a_boomerang.h:106
cXyz field_0x99c
Definition d_a_boomerang.h:163
void checkBgHit(cXyz *, cXyz *)
Definition d_a_boomerang.cpp:1113
u8 field_0x955
Definition d_a_boomerang.h:142
bool mForceDelete
Definition d_a_boomerang.h:143
s16 field_0x962
Definition d_a_boomerang.h:150
J3DModel * field_0x56c
Definition d_a_boomerang.h:121
u32 field_0x968
Definition d_a_boomerang.h:152
void onStateFlg0(daBoomerang_FLG0 flag)
Definition d_a_boomerang.h:107
J3DModel * field_0x568
Definition d_a_boomerang.h:120
void setAimActorBase(fopAc_ac_c *)
Definition d_a_boomerang.cpp:969
u32 mStateFlg0
Definition d_a_boomerang.h:151
void windModelCallBack()
Definition d_a_boomerang.cpp:798
Definition d_a_boomerang.h:8
u8 mReserve
Definition d_a_boomerang.h:51
cXyz field_0xc8[6]
Definition d_a_boomerang.h:57
int playAnime(int, int)
Definition d_a_boomerang.cpp:555
void onReserve()
Definition d_a_boomerang.h:23
f32 field_0x98[6]
Definition d_a_boomerang.h:55
J2DAnmTransform * field_0x5c
Definition d_a_boomerang.h:49
J2DAnmColor * field_0x58
Definition d_a_boomerang.h:48
J2DPane * field_0x44
Definition d_a_boomerang.h:43
u8 mAlpha[6]
Definition d_a_boomerang.h:52
J2DPane * field_0xc
Definition d_a_boomerang.h:29
J2DPane * field_0x14
Definition d_a_boomerang.h:31
J2DAnmTevRegKey * field_0x50
Definition d_a_boomerang.h:46
J2DPane * field_0x48
Definition d_a_boomerang.h:44
J2DScreen * field_0x3c
Definition d_a_boomerang.h:41
J2DAnmTevRegKey * field_0x54
Definition d_a_boomerang.h:47
J2DPane * field_0x28
Definition d_a_boomerang.h:36
f32 field_0x68[6]
Definition d_a_boomerang.h:53
J2DScreen * field_0x20
Definition d_a_boomerang.h:34
J2DPane * field_0x2c
Definition d_a_boomerang.h:37
J2DPane * field_0x10
Definition d_a_boomerang.h:30
J2DPane * field_0x24
Definition d_a_boomerang.h:35
void initialize()
Definition d_a_boomerang.cpp:414
J2DPane * field_0x40
Definition d_a_boomerang.h:42
J2DPane * field_0x4c
Definition d_a_boomerang.h:45
void offRedSight()
Definition d_a_boomerang.h:22
void initFrame(int)
Definition d_a_boomerang.cpp:604
J2DAnmTevRegKey * field_0x18
Definition d_a_boomerang.h:32
J2DAnmTevRegKey * field_0x1c
Definition d_a_boomerang.h:33
J2DAnmTevRegKey * field_0x34
Definition d_a_boomerang.h:39
void setSight(cXyz const *, int)
Definition d_a_boomerang.cpp:636
f32 field_0xb0[6]
Definition d_a_boomerang.h:56
u8 getReserve() const
Definition d_a_boomerang.h:20
virtual ~daBoomerang_sight_c()
f32 field_0x80[6]
Definition d_a_boomerang.h:54
void offReserve()
Definition d_a_boomerang.h:24
J2DAnmTevRegKey * field_0x38
Definition d_a_boomerang.h:40
J2DPane * field_0x30
Definition d_a_boomerang.h:38
u8 getAlpha(int i_index)
Definition d_a_boomerang.h:21
J2DScreen * field_0x4
Definition d_a_boomerang.h:27
bool mRedSight
Definition d_a_boomerang.h:50
void draw()
Definition d_a_boomerang.cpp:734
int createHeap()
Definition d_a_boomerang.cpp:243
J2DPane * field_0x8
Definition d_a_boomerang.h:28
void copyNumData(int)
Definition d_a_boomerang.cpp:615
STATIC_ASSERT(sizeof(daBoomerang_c)==0xDE4)
static volatile BOOL flag
Definition dspproc.cpp:20
void fopAcM_SetParam(void *p_actor, u32 param)
Definition f_op_actor_mng.h:232
Definition d_a_hozelda.cpp:45
Definition d_a_ep.cpp:155
Definition d_a_hozelda.cpp:20
Definition d_a_npc_fguard.cpp:115
Definition d_a_ep.cpp:110
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc_fguard.cpp:70
Definition d_a_ep.cpp:19
Definition d_a_hozelda.cpp:56
unsigned long u32
Definition types.h:10
float f32
Definition types.h:22
signed short s16
Definition types.h:5
unsigned short u16
Definition types.h:9
signed long s32
Definition types.h:6
unsigned char u8
Definition types.h:8