Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_obj_flag3.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_FLAG3_H
2#define D_A_OBJ_FLAG3_H
3
4#include "d/d_cc_d.h"
6
8 /* 0x00 */ f32 mGravity;
10 /* 0x08 */ f32 mDecayRate;
12 /* 0x10 */ f32 mTornado;
13};
14
15class FlagCloth2_c : public J3DPacket {
16public:
17 void execute();
18 inline void calcFlagNormal(cXyz*, int);
19 inline static void initCcSphere(fopAc_ac_c*);
20 inline cXyz calcFlagFactor(cXyz*, cXyz*, cXyz*, int);
21 virtual ~FlagCloth2_c();
22 inline void initFlagPos(cXyz*, fopAc_ac_c*);
23 virtual void draw();
24 cXyz getTargetPos() { return mPositions[4]; }
25
27 cXyz* pNormal = getNormal();
28 cXyz* pNormalBack = getNormalBack();
29 for (int i = 0; i < 36; pNormal++, pNormalBack++, i++) {
30 pNormalBack->set(-pNormal->x, -pNormal->y, -pNormal->z);
31 }
32 }
33 cXyz* getPos() { return mPositions; }
34 cXyz* getVec() { return mVecs; }
35 cXyz* getNormal() { return mNormals; }
38 void setSpringRate(f32 rate) { mSpringRate = rate; }
39 void setWindRate(f32 rate) { mWindRate = rate; }
40 void setDecayRate(f32 rate) { mDecayRate = rate; }
41 void setGravity(f32 rate) { mGravity = rate; }
42 void setTornado(f32 tornado) { mTornado = tornado; }
43
44 void initTexCoord() {
45 for (int i = 0; i < 6; i++) {
46 for (int j = 0; j < 6; j++) {
47 mTexCoord[i* 6 + j][0] = j / 5.0f;
48 mTexCoord[i* 6 + j][1] = (5 - i) / 5.0f;
49 }
50 }
51 }
52
53 void calcFlagFactorSub(cXyz* param_1, cXyz* param_2, cXyz* param_3, f32 param_4);
54
55 /* 0x010 */ GXTexObj mTexObj;
56 /* 0x030 */ dKy_tevstr_c mTevStr;
57 /* 0x3B8 */ dCcD_Stts mStts;
58 /* 0x3F4 */ dCcD_Sph mSph;
59 /* 0x52C */ u8 field_0x52c[0x540 - 0x52c];
60 /* 0x540 */ cXyz mPositions[36];
61 /* 0x6F0 */ u8 field_0x6f0[0x700 - 0x6f0];
62 /* 0x700 */ cXyz mNormals[36];
63 /* 0x8B0 */ u8 field_0x8b0[0x8c0 - 0x8b0];
64 /* 0x8C0 */ cXyz mNormalBacks[36];
65 /* 0xA70 */ u8 field_0xa70[0xa80 - 0xa70];
66 /* 0xA70 */ f32 mTexCoord[36][2];
67 /* 0xBA0 */ cXyz mVecs[36];
68 /* 0xD50 */ cXyz* mpFlagPosition;
69 /* 0xD54 */ Mtx mModelMtx;
70 // /* 0xD8C */ void* mpTexCoord;
71 /* 0xD84 */ f32 mSpringRate;
72 /* 0xD88 */ f32 mWindRate;
73 /* 0xD8C */ f32 mDecayRate;
74 /* 0xD90 */ f32 mGravity;
75 /* 0xD94 */ f32 mTornado;
76};
77
86class daObjFlag3_c : public fopAc_ac_c {
87public:
88 int createHeap();
89 int execute();
91 int create();
92 inline void create_init();
93 inline int draw();
94 inline void initBaseMtx();
95
96 static daObjFlag3_Attr_c const M_attr;
97 const daObjFlag3_Attr_c& attr() const { return M_attr; }
98
99private:
100 /* 0x0568 */ J3DModel* mModel;
103 /* 0x057c */ int field_0x57c;
105 /* 0x1318 */ u8 field_0x1318[0x1320 - 0x1318];
106 /* 0x1320 */ cXyz field_0x1320;
107 /* 0x132C */ bool mFlagValid;
108 /* 0x132D */ char mFlagName[19];
109};
110
111STATIC_ASSERT(sizeof(daObjFlag3_c) == 0x1340);
112
113#endif /* D_A_OBJ_FLAG3_H */
Definition d_a_obj_flag3.h:15
cXyz calcFlagFactor(cXyz *, cXyz *, cXyz *, int)
Definition d_a_obj_flag3.cpp:59
void setSpringRate(f32 rate)
Definition d_a_obj_flag3.h:38
f32 mTornado
Definition d_a_obj_flag3.h:75
void setTornado(f32 tornado)
Definition d_a_obj_flag3.h:42
void setWindRate(f32 rate)
Definition d_a_obj_flag3.h:39
f32 mDecayRate
Definition d_a_obj_flag3.h:73
void calcFlagNormal(cXyz *, int)
Definition d_a_obj_flag3.cpp:140
void execute()
Definition d_a_obj_flag3.cpp:369
void setDecayRate(f32 rate)
Definition d_a_obj_flag3.h:40
f32 mWindRate
Definition d_a_obj_flag3.h:72
f32 mGravity
Definition d_a_obj_flag3.h:74
void calcFlagNormalBack()
Definition d_a_obj_flag3.h:26
virtual ~FlagCloth2_c()
Definition d_a_obj_flag3.cpp:421
cXyz * mpFlagPosition
Definition d_a_obj_flag3.h:68
cXyz mNormals[36]
Definition d_a_obj_flag3.h:62
cXyz * getNormalBack()
Definition d_a_obj_flag3.h:36
cXyz getTargetPos()
Definition d_a_obj_flag3.h:24
GXTexObj mTexObj
Definition d_a_obj_flag3.h:55
void initFlagPos(cXyz *, fopAc_ac_c *)
Definition d_a_obj_flag3.cpp:453
void initTexCoord()
Definition d_a_obj_flag3.h:44
dCcD_Stts mStts
Definition d_a_obj_flag3.h:57
GXTexObj * getImageTexObj()
Definition d_a_obj_flag3.h:37
u8 field_0x52c[0x540 - 0x52c]
Definition d_a_obj_flag3.h:59
void setGravity(f32 rate)
Definition d_a_obj_flag3.h:41
cXyz * getPos()
Definition d_a_obj_flag3.h:33
u8 field_0xa70[0xa80 - 0xa70]
Definition d_a_obj_flag3.h:65
dKy_tevstr_c mTevStr
Definition d_a_obj_flag3.h:56
u8 field_0x6f0[0x700 - 0x6f0]
Definition d_a_obj_flag3.h:61
f32 mTexCoord[36][2]
Definition d_a_obj_flag3.h:66
cXyz * getNormal()
Definition d_a_obj_flag3.h:35
cXyz mPositions[36]
Definition d_a_obj_flag3.h:60
cXyz * getVec()
Definition d_a_obj_flag3.h:34
virtual void draw()
Definition d_a_obj_flag3.cpp:225
f32 mSpringRate
Definition d_a_obj_flag3.h:71
cXyz mVecs[36]
Definition d_a_obj_flag3.h:67
static void initCcSphere(fopAc_ac_c *)
Definition d_a_obj_flag3.cpp:211
void calcFlagFactorSub(cXyz *param_1, cXyz *param_2, cXyz *param_3, f32 param_4)
Definition d_a_obj_flag3.cpp:131
Mtx mModelMtx
Definition d_a_obj_flag3.h:69
dCcD_Sph mSph
Definition d_a_obj_flag3.h:58
u8 field_0x8b0[0x8c0 - 0x8b0]
Definition d_a_obj_flag3.h:63
cXyz mNormalBacks[36]
Definition d_a_obj_flag3.h:64
Definition J3DModel.h:43
Definition J3DPacket.h:139
Definition d_cc_d.h:473
Definition d_cc_d.h:269
Definition d_kankyo_tev_str.h:7
Flag 3.
Definition d_a_obj_flag3.h:86
int createHeap()
Definition d_a_obj_flag3.cpp:301
request_of_phase_process_class mFlagPhase
Definition d_a_obj_flag3.h:101
int create()
Definition d_a_obj_flag3.cpp:485
void initBaseMtx()
Definition d_a_obj_flag3.cpp:428
const daObjFlag3_Attr_c & attr() const
Definition d_a_obj_flag3.h:97
cXyz field_0x1320
Definition d_a_obj_flag3.h:106
char mFlagName[19]
Definition d_a_obj_flag3.h:108
static daObjFlag3_Attr_c const M_attr
Definition d_a_obj_flag3.h:55
int field_0x57c
Definition d_a_obj_flag3.h:103
void create_init()
Definition d_a_obj_flag3.cpp:434
int draw()
Definition d_a_obj_flag3.cpp:330
request_of_phase_process_class mArcPhase
Definition d_a_obj_flag3.h:102
int execute()
Definition d_a_obj_flag3.cpp:350
bool mFlagValid
Definition d_a_obj_flag3.h:107
u8 field_0x1318[0x1320 - 0x1318]
Definition d_a_obj_flag3.h:105
~daObjFlag3_c()
Definition d_a_obj_flag3.cpp:410
FlagCloth2_c mFlagCloth
Definition d_a_obj_flag3.h:104
J3DModel * mModel
Definition d_a_obj_flag3.h:100
Definition f_op_actor.h:230
STATIC_ASSERT(sizeof(daObjFlag3_c)==0x1340)
f32 Mtx[3][4]
Definition mtx.h:25
float f32
Definition types.h:25
unsigned char u8
Definition types.h:8
int i
Definition e_pow.c:165
int j
Definition e_pow.c:165
f32 z
Definition mtx.h:14
f32 x
Definition mtx.h:14
f32 y
Definition mtx.h:14
Definition GXStruct.h:38
Definition c_xyz.h:7
void set(f32 pX, f32 pY, f32 pZ)
Definition c_xyz.h:97
Definition d_a_obj_flag3.h:7
f32 mSpringCoeeficient
Definition d_a_obj_flag3.h:9
f32 mDecayRate
Definition d_a_obj_flag3.h:10
f32 mTornado
Definition d_a_obj_flag3.h:12
f32 mWindCoefficient
Definition d_a_obj_flag3.h:11
f32 mGravity
Definition d_a_obj_flag3.h:8
Definition c_phase.h:17