Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_arrow.h
Go to the documentation of this file.
1#ifndef D_A_ARROW_H
2#define D_A_ARROW_H
3
5#include "d/d_cc_d.h"
6#include "d/d_particle.h"
8
17class daArrow_c : public fopAc_ac_c {
18public:
20 ARROW_TYPE_NORMAL = 0, // Needs verification
24 };
25
26 /* 80499C6C */ int createHeap();
27 /* 80499D8C */ void atHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
28 /* 80499FBC */ void decAlphaBlur();
29 /* 8049A04C */ void setBlur();
30 /* 8049A110 */ void setLightArrowHitMark(cXyz const*);
31 /* 8049A1EC */ void setLightChargeEffect(int);
32 /* 8049A370 */ int setArrowWaterNextPos(cXyz*, cXyz*);
33 /* 8049A76C */ void setArrowAt(f32);
34 /* 8049A9CC */ void arrowShooting();
35 /* 8049AC84 */ void setBombArrowExplode(cXyz*);
36 /* 8049ACE0 */ void setRoomInfo();
37 /* 8049AD74 */ void clearNearActorData();
38 /* 8049AD94 */ s16 getVibAngle();
39 /* 8049AE64 */ void setNormalMatrix();
40 /* 8049AF18 */ void setSmokePos();
41 /* 8049AFEC */ void setKeepMatrix();
42 /* 8049B120 */ fopAc_ac_c* setStopActorMatrix();
43 /* 8049B214 */ void setBombMoveEffect();
44 /* 8049B370 */ bool checkReget();
45 /* 8049B45C */ int procWait();
46 /* 8049B764 */ int procMove();
47 /* 8049C700 */ int procReturnInit(int);
48 /* 8049C874 */ int procReturn();
49 /* 8049CB70 */ int procBGStop();
50 /* 8049CC60 */ int procActorStop();
51 /* 8049CCCC */ int procActorControllStop();
52 /* 8049CCF0 */ int procSlingHitInit(cXyz*, dCcD_GObjInf*);
53 /* 8049CE50 */ int procSlingHit();
54 /* 8049CEA0 */ int execute();
55 /* 8049D0CC */ int draw();
56 /* 8049D440 */ cPhs__Step create();
57 /* 8049D98C */ ~daArrow_c();
58
60 bool checkBombArrow() const { return mArrowType == true; }
61 u32 getHitAcID() { return mHitAcID; }
62
63 void setShoot() { fopAcM_SetParam(this, 1); }
64 void setChargeShoot() { fopAcM_SetParam(this, 2); }
65
66 static fopAc_ac_c* makeArrow(fopAc_ac_c* i_actor, u16 param_1) {
68 param_1 << 8,
69 &i_actor->current.pos,
70 fopAcM_GetRoomNo(i_actor),
71 NULL,
72 NULL,
73 -1,
74 NULL,
75 NULL);
76 }
77
78 static fopAc_ac_c* makeSlingStone(fopAc_ac_c* i_actor, cXyz* i_pos) {
80 0x401,
81 i_pos,
82 fopAcM_GetRoomNo(i_actor),
83 NULL,
84 NULL,
85 -1,
86 NULL,
87 NULL);
88 }
89
90private:
91 /* 0x568 */ J3DModel* mpModel;
95 /* 0x688 */ dCcD_Cps field_0x688;
96 /* 0x7CC */ dCcD_Sph field_0x7cc;
98 /* 0x93C */ u8 mArrowType;
99 /* 0x93D */ u8 field_0x93d;
100 /* 0x93E */ s8 field_0x93e;
101 /* 0x93F */ u8 field_0x93f;
102 /* 0x940 */ u8 field_0x940;
103 /* 0x941 */ u8 field_0x941;
104 /* 0x942 */ u8 field_0x942;
105 /* 0x943 */ u8 field_0x943;
106 /* 0x944 */ u8 field_0x944;
107 /* 0x945 */ u8 field_0x945;
108 /* 0x946 */ u8 field_0x946;
109 /* 0x947 */ u8 field_0x947;
110 /* 0x948 */ s8 mReverb;
111 /* 0x949 */ u8 field_0x949[0x94C - 0x949];
112 /* 0x94C */ u16 field_0x94c;
113 /* 0x94E */ s16 field_0x94e;
114 /* 0x950 */ s16 field_0x950;
115 /* 0x952 */ s16 field_0x952;
116 /* 0x954 */ s16 field_0x954;
117 /* 0x956 */ s16 field_0x956;
118 /* 0x958 */ csXyz field_0x958;
119 /* 0x960 */ int field_0x960;
120 /* 0x964 */ u32 field_0x964;
121 /* 0x968 */ u32 field_0x968;
122 /* 0x96C */ u32 field_0x96c[4];
123 /* 0x97C */ u32 field_0x97c[6];
124 /* 0x994 */ u32 mHitAcID;
125 /* 0x998 */ f32 field_0x998;
126 /* 0x99C */ f32 field_0x99c;
127 /* 0x9A0 */ f32 mOutLengthRate;
128 /* 0x9A4 */ f32 mFlyMax;
129 /* 0x9A8 */ cXyz field_0x9a8;
130 /* 0x9B4 */ cXyz field_0x9b4;
131 /* 0x9C0 */ cXyz mStartPos;
132 /* 0x9CC */ cXyz field_0x9cc;
133 /* 0x9D8 */ cXyz field_0x9d8;
134 /* 0x9E4 */ cXyz field_0x9e4;
135 /* 0x9F0 */ cXyz mSmokePos;
136 /* 0x9FC */ cXyz field_0x9fc;
139 /* 0xA28 */ int (daArrow_c::*mProcFunc)();
140
141 static s16 m_count;
142};
143
144STATIC_ASSERT(sizeof(daArrow_c) == 0xA34);
145
146#endif /* D_A_ARROW_H */
cPhs__Step
Definition c_phase.h:8
Definition Z2SoundObject.h:100
Definition d_bg_s_lin_chk.h:41
Definition d_bg_s_lin_chk.h:48
Definition d_cc_d.h:444
Definition d_cc_d.h:432
Definition d_particle.h:24
STATIC_ASSERT(sizeof(daArrow_c)==0xA34)
@ PROC_ARROW
Definition d_procname.h:781
fopAc_ac_c * fopAcM_fastCreate(s16 i_procName, u32 i_parameters, const cXyz *i_pos, int i_roomNo, const csXyz *i_angle, const cXyz *i_scale, s8 i_subtype, createFunc i_createFunc, void *i_createFuncData)
Definition f_op_actor_mng.cpp:181
void fopAcM_SetParam(void *i_actor, u32 param)
Definition f_op_actor_mng.h:174
s8 fopAcM_GetRoomNo(const fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:122
Definition d_a_ep.cpp:155
cXyz pos
Definition f_op_actor.h:170
Definition d_a_hozelda.cpp:20
Definition d_a_ep.cpp:66
Definition d_a_npc_fguard.cpp:81
Definition d_a_npc_fguard.cpp:70
Arrow.
Definition d_a_tag_allmato.cpp:66
void setRoomInfo()
Definition d_a_arrow.cpp:354
static s16 m_count
Definition d_a_arrow.h:141
void setLightChargeEffect(int)
Definition d_a_arrow.cpp:159
cXyz mSmokePos
Definition d_a_arrow.h:135
u16 field_0x94c
Definition d_a_arrow.h:112
u32 field_0x964
Definition d_a_arrow.h:120
dBgS_ArrowLinChk field_0x56c
Definition d_a_arrow.h:92
s16 getVibAngle()
Definition d_a_arrow.cpp:377
static fopAc_ac_c * makeSlingStone(fopAc_ac_c *i_actor, cXyz *i_pos)
Definition d_a_arrow.h:78
int field_0x960
Definition d_a_arrow.h:119
cXyz mStartPos
Definition d_a_arrow.h:131
int procSlingHitInit(cXyz *, dCcD_GObjInf *)
Definition d_a_arrow.cpp:1019
cXyz field_0x9a8
Definition d_a_arrow.h:129
u8 field_0x93f
Definition d_a_arrow.h:101
u8 field_0x947
Definition d_a_arrow.h:109
Z2SoundObjArrow mSoundObjArrow
Definition d_a_arrow.h:97
static fopAc_ac_c * makeArrow(fopAc_ac_c *i_actor, u16 param_1)
Definition d_a_arrow.h:66
u8 field_0x949[0x94C - 0x949]
Definition d_a_arrow.h:111
u8 field_0x946
Definition d_a_arrow.h:108
int procReturnInit(int)
Definition d_a_arrow.cpp:894
dCcD_Cps field_0x688
Definition d_a_arrow.h:95
void atHitCallBack(dCcD_GObjInf *, fopAc_ac_c *, dCcD_GObjInf *)
Definition d_a_arrow.cpp:88
bool checkReget()
Definition d_a_arrow.cpp:500
int procActorStop()
Definition d_a_arrow.cpp:995
void setSmokePos()
dCcD_Stts field_0x64c
Definition d_a_arrow.h:94
void clearNearActorData()
Definition d_a_arrow.cpp:370
cXyz field_0x9cc
Definition d_a_arrow.h:132
f32 field_0x998
Definition d_a_arrow.h:125
csXyz field_0x958
Definition d_a_arrow.h:118
u8 field_0x940
Definition d_a_arrow.h:102
int procBGStop()
Definition d_a_arrow.cpp:966
void setLightArrowHitMark(cXyz const *)
Definition d_a_arrow.cpp:147
void setNormalMatrix()
Definition d_a_arrow.cpp:392
s16 field_0x950
Definition d_a_arrow.h:114
void setBlur()
Definition d_a_arrow.cpp:139
int procReturn()
Definition d_a_arrow.cpp:922
int execute()
Definition d_a_arrow.cpp:1064
u8 field_0x944
Definition d_a_arrow.h:106
int procActorControllStop()
Definition d_a_arrow.cpp:1012
int procSlingHit()
Definition d_a_arrow.cpp:1052
u8 field_0x945
Definition d_a_arrow.h:107
s8 field_0x93e
Definition d_a_arrow.h:100
int createHeap()
Definition d_a_arrow.cpp:19
daPy_actorKeep_c field_0xa08
Definition d_a_arrow.h:137
J3DModel * mpModel
Definition d_a_arrow.h:91
void decAlphaBlur()
Definition d_a_arrow.cpp:123
f32 mFlyMax
Definition d_a_arrow.h:128
int(daArrow_c::* mProcFunc)()
Definition d_a_arrow.h:139
int procMove()
Definition d_a_arrow.cpp:589
~daArrow_c()
Definition d_a_arrow.cpp:1267
cXyz field_0x9b4
Definition d_a_arrow.h:130
bool checkBombArrow() const
Definition d_a_arrow.h:60
f32 mOutLengthRate
Definition d_a_arrow.h:127
u8 field_0x93d
Definition d_a_arrow.h:99
cXyz field_0x9e4
Definition d_a_arrow.h:134
cXyz field_0x9fc
Definition d_a_arrow.h:136
void setBombMoveEffect()
Definition d_a_arrow.cpp:480
dBgS_ObjLinChk field_0x5dc
Definition d_a_arrow.h:93
void setChargeShoot()
Definition d_a_arrow.h:64
u8 field_0x941
Definition d_a_arrow.h:103
u8 field_0x942
Definition d_a_arrow.h:104
dPa_hermiteEcallBack_c field_0xa10
Definition d_a_arrow.h:138
s8 mReverb
Definition d_a_arrow.h:110
u32 field_0x96c[4]
Definition d_a_arrow.h:122
cPhs__Step create()
Definition d_a_arrow.cpp:1199
s16 field_0x94e
Definition d_a_arrow.h:113
void setShoot()
Definition d_a_arrow.h:63
f32 field_0x99c
Definition d_a_arrow.h:126
int procWait()
Definition d_a_arrow.cpp:517
u8 field_0x943
Definition d_a_arrow.h:105
s16 field_0x952
Definition d_a_arrow.h:115
void setKeepMatrix()
Definition d_a_arrow.cpp:434
void setArrowAt(f32)
Definition d_a_arrow.cpp:221
u32 field_0x968
Definition d_a_arrow.h:121
void setBombArrowExplode()
Definition d_a_arrow.h:59
int setArrowWaterNextPos(cXyz *, cXyz *)
Definition d_a_arrow.cpp:182
dCcD_Sph field_0x7cc
Definition d_a_arrow.h:96
cXyz field_0x9d8
Definition d_a_arrow.h:133
s16 field_0x956
Definition d_a_arrow.h:117
fopAc_ac_c * setStopActorMatrix()
Definition d_a_arrow.cpp:458
ArrowType_e
Definition d_a_arrow.h:19
@ ARROW_TYPE_BOMB
Definition d_a_arrow.h:21
@ ARROW_TYPE_SLING
Definition d_a_arrow.h:23
@ ARROW_TYPE_NORMAL
Definition d_a_arrow.h:20
@ ARROW_TYPE_LIGHT
Definition d_a_arrow.h:22
u32 mHitAcID
Definition d_a_arrow.h:124
s16 field_0x954
Definition d_a_arrow.h:116
u32 field_0x97c[6]
Definition d_a_arrow.h:123
void arrowShooting()
Definition d_a_arrow.cpp:275
int draw()
Definition d_a_arrow.cpp:1125
u32 getHitAcID()
Definition d_a_arrow.h:61
u8 mArrowType
Definition d_a_arrow.h:98
Definition d_a_hozelda.cpp:87
Definition d_a_ep.cpp:19
actor_place current
Definition f_op_actor.h:215
signed char s8
Definition types.h:4
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
unsigned char u8
Definition types.h:8