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
62 void setShoot() { fopAcM_SetParam(this, 1); }
63 void setChargeShoot() { fopAcM_SetParam(this, 2); }
64
65 static fopAc_ac_c* makeArrow(fopAc_ac_c* i_actor, u16 param_1) {
67 param_1 << 8,
68 &i_actor->current.pos,
69 fopAcM_GetRoomNo(i_actor),
70 NULL,
71 NULL,
72 -1,
73 NULL,
74 NULL);
75 }
76
77 static fopAc_ac_c* makeSlingStone(fopAc_ac_c* i_actor, cXyz* i_pos) {
79 0x401,
80 i_pos,
81 fopAcM_GetRoomNo(i_actor),
82 NULL,
83 NULL,
84 -1,
85 NULL,
86 NULL);
87 }
88
89private:
90 /* 0x568 */ J3DModel* mpModel;
94 /* 0x688 */ dCcD_Cps field_0x688;
95 /* 0x7CC */ dCcD_Sph field_0x7cc;
97 /* 0x93C */ u8 mArrowType;
98 /* 0x93D */ u8 field_0x93d;
99 /* 0x93E */ s8 field_0x93e;
100 /* 0x93F */ u8 field_0x93f;
101 /* 0x940 */ u8 field_0x940;
102 /* 0x941 */ u8 field_0x941;
103 /* 0x942 */ u8 field_0x942;
104 /* 0x943 */ u8 field_0x943;
105 /* 0x944 */ u8 field_0x944;
106 /* 0x945 */ u8 field_0x945;
107 /* 0x946 */ u8 field_0x946;
108 /* 0x947 */ u8 field_0x947;
109 /* 0x948 */ s8 mReverb;
110 /* 0x949 */ u8 field_0x949[0x94C - 0x949];
111 /* 0x94C */ u16 field_0x94c;
112 /* 0x94E */ s16 field_0x94e;
113 /* 0x950 */ s16 field_0x950;
114 /* 0x952 */ s16 field_0x952;
115 /* 0x954 */ s16 field_0x954;
116 /* 0x956 */ s16 field_0x956;
117 /* 0x958 */ csXyz field_0x958;
118 /* 0x960 */ int field_0x960;
119 /* 0x964 */ u32 field_0x964;
120 /* 0x968 */ u32 field_0x968;
121 /* 0x96C */ u32 field_0x96c[4];
122 /* 0x97C */ u32 field_0x97c[6];
123 /* 0x994 */ u32 mHitAcID;
124 /* 0x998 */ f32 field_0x998;
125 /* 0x99C */ f32 field_0x99c;
126 /* 0x9A0 */ f32 mOutLengthRate;
127 /* 0x9A4 */ f32 mFlyMax;
128 /* 0x9A8 */ cXyz field_0x9a8;
129 /* 0x9B4 */ cXyz field_0x9b4;
130 /* 0x9C0 */ cXyz mStartPos;
131 /* 0x9CC */ cXyz field_0x9cc;
132 /* 0x9D8 */ cXyz field_0x9d8;
133 /* 0x9E4 */ cXyz field_0x9e4;
134 /* 0x9F0 */ cXyz mSmokePos;
135 /* 0x9FC */ cXyz field_0x9fc;
138 /* 0xA28 */ int (daArrow_c::*mProcFunc)();
139
140 static s16 m_count;
141};
142
143STATIC_ASSERT(sizeof(daArrow_c) == 0xA34);
144
145#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
void * 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:182
void fopAcM_SetParam(void *p_actor, u32 param)
Definition f_op_actor_mng.h:232
s8 fopAcM_GetRoomNo(const fopAc_ac_c *pActor)
Definition f_op_actor_mng.h:180
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:140
void setLightChargeEffect(int)
Definition d_a_arrow.cpp:159
cXyz mSmokePos
Definition d_a_arrow.h:134
u16 field_0x94c
Definition d_a_arrow.h:111
u32 field_0x964
Definition d_a_arrow.h:119
dBgS_ArrowLinChk field_0x56c
Definition d_a_arrow.h:91
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:77
int field_0x960
Definition d_a_arrow.h:118
cXyz mStartPos
Definition d_a_arrow.h:130
int procSlingHitInit(cXyz *, dCcD_GObjInf *)
Definition d_a_arrow.cpp:1019
cXyz field_0x9a8
Definition d_a_arrow.h:128
u8 field_0x93f
Definition d_a_arrow.h:100
u8 field_0x947
Definition d_a_arrow.h:108
Z2SoundObjArrow mSoundObjArrow
Definition d_a_arrow.h:96
static fopAc_ac_c * makeArrow(fopAc_ac_c *i_actor, u16 param_1)
Definition d_a_arrow.h:65
u8 field_0x949[0x94C - 0x949]
Definition d_a_arrow.h:110
u8 field_0x946
Definition d_a_arrow.h:107
int procReturnInit(int)
Definition d_a_arrow.cpp:894
dCcD_Cps field_0x688
Definition d_a_arrow.h:94
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:93
void clearNearActorData()
Definition d_a_arrow.cpp:370
cXyz field_0x9cc
Definition d_a_arrow.h:131
f32 field_0x998
Definition d_a_arrow.h:124
csXyz field_0x958
Definition d_a_arrow.h:117
u8 field_0x940
Definition d_a_arrow.h:101
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:113
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:105
int procActorControllStop()
Definition d_a_arrow.cpp:1012
int procSlingHit()
Definition d_a_arrow.cpp:1052
u8 field_0x945
Definition d_a_arrow.h:106
s8 field_0x93e
Definition d_a_arrow.h:99
int createHeap()
Definition d_a_arrow.cpp:19
daPy_actorKeep_c field_0xa08
Definition d_a_arrow.h:136
J3DModel * mpModel
Definition d_a_arrow.h:90
void decAlphaBlur()
Definition d_a_arrow.cpp:123
f32 mFlyMax
Definition d_a_arrow.h:127
int(daArrow_c::* mProcFunc)()
Definition d_a_arrow.h:138
int procMove()
Definition d_a_arrow.cpp:589
~daArrow_c()
Definition d_a_arrow.cpp:1267
cXyz field_0x9b4
Definition d_a_arrow.h:129
bool checkBombArrow() const
Definition d_a_arrow.h:60
f32 mOutLengthRate
Definition d_a_arrow.h:126
u8 field_0x93d
Definition d_a_arrow.h:98
cXyz field_0x9e4
Definition d_a_arrow.h:133
cXyz field_0x9fc
Definition d_a_arrow.h:135
void setBombMoveEffect()
Definition d_a_arrow.cpp:480
dBgS_ObjLinChk field_0x5dc
Definition d_a_arrow.h:92
void setChargeShoot()
Definition d_a_arrow.h:63
u8 field_0x941
Definition d_a_arrow.h:102
u8 field_0x942
Definition d_a_arrow.h:103
dPa_hermiteEcallBack_c field_0xa10
Definition d_a_arrow.h:137
s8 mReverb
Definition d_a_arrow.h:109
u32 field_0x96c[4]
Definition d_a_arrow.h:121
cPhs__Step create()
Definition d_a_arrow.cpp:1199
s16 field_0x94e
Definition d_a_arrow.h:112
void setShoot()
Definition d_a_arrow.h:62
f32 field_0x99c
Definition d_a_arrow.h:125
int procWait()
Definition d_a_arrow.cpp:517
u8 field_0x943
Definition d_a_arrow.h:104
s16 field_0x952
Definition d_a_arrow.h:114
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:120
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:95
cXyz field_0x9d8
Definition d_a_arrow.h:132
s16 field_0x956
Definition d_a_arrow.h:116
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:123
s16 field_0x954
Definition d_a_arrow.h:115
u32 field_0x97c[6]
Definition d_a_arrow.h:122
void arrowShooting()
Definition d_a_arrow.cpp:275
int draw()
Definition d_a_arrow.cpp:1125
u8 mArrowType
Definition d_a_arrow.h:97
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