Loading [MathJax]/extensions/MathMenu.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_obj_flag.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_FLAG_H
2#define D_A_OBJ_FLAG_H
3
5#include "d/d_com_inf_game.h"
7
9static int nodeCallBack(J3DJoint*, int);
10
12public:
13 /* 80BEC3BC */ ~FlagJoint_c();
14 /* 80BEC4E0 */ FlagJoint_c();
15
20};
21
30class daObjFlag_c : public fopAc_ac_c {
31private:
32 /* 0x568 */ J3DModel* mpModel1;
33 /* 0x56c */ J3DModel* mpModel2;
36 /* 0x580 */ FlagJoint_c mFlagJoints[4];
37 /* 0x5d0 */ cXyz mPos;
38 /* 0x5dc */ f32 field_0x5dc;
39 /* 0x5e0 */ s16 field_0x5e0;
40 /* 0x5e2 */ s16 field_0x5e2;
41 /* 0x5e4 */ s16 field_0x5e4;
42 /* 0x5e6 */ s16 field_0x5e6;
43 /* 0x5e8 */ s16 field_0x5e8;
44 /* 0x5ea */ u8 field_0x568[0x5ec - 0x5ea];
45
46public:
47 /* 80BEB778 */ void create_init();
48 /* 80BEB8F0 */ void initBaseMtx();
49 /* 80BEB984 */ void getJointAngle(csXyz*, int);
50 /* 80BEB9AC */ void calcJointAngle();
51 /* 80BEBC58 */ void calcAngleSwingZ(FlagJoint_c*, f32);
52 /* 80BEBDAC */ void calcAngleSwingX(FlagJoint_c*, f32);
53 /* 80BEBE64 */ f32 getSwingY(f32);
54
56 dComIfG_resDelete(&this->mPhase, "FlagObj");
57 dComIfG_resDelete(&this->mPhase2, daSetBgObj_c::getArcName(this));
58 }
59
60 int create() {
61 fopAcM_SetupActor(this, daObjFlag_c);
62
63 int phase_state = dComIfG_resLoad(&mPhase, "FlagObj");
64 if (phase_state != cPhs_COMPLEATE_e) {
65 return phase_state;
66 }
67
69 if(phase_state == cPhs_COMPLEATE_e) {
70 if(!fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000)) {
71 return cPhs_ERROR_e;
72 }
73
75 }
76
77 return phase_state;
78 }
79
80 int execute() {
81 if (mpModel1 == NULL) {
82 return 1;
83 }
84
86 return 1;
87 }
88
89 int draw() {
90 g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
92 g_env_light.setLightTevColorType_MAJI(mpModel2, &tevStr);
94
95 if(mpModel1 != NULL) {
96 g_env_light.setLightTevColorType_MAJI(mpModel1, &tevStr);
98 }
99
101
102 return 1;
103 }
104
106 bool tmp = 0;
109 tmp = false;
110 }
111 else {
112 tmp = true;
113
114 char resName[12];
115 sprintf(resName, "flag%02d.bmd");
116
119
120 J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("FlagObj", resName);
121 mpModel1 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
122
123 for(u8 i = 0; i < 5; i += 1) {
125 if(nodePtr != NULL) {
126 nodePtr->setCallBack(nodeCallBack);
127 mpModel1->setUserArea((u64)this);
128 }
129 }
130 }
131
132 mpModel2 = mDoExt_J3DModel__create((J3DModelData *)dComIfG_getObjectRes(daSetBgObj_c::getArcName(this), "model0.bmd"), 0x80000, 0x11000084);
133 if(mpModel2 == NULL && tmp && mpModel1 == NULL) {
134 return 0;
135 }
136
137 return 1;
138 }
139
140 struct M_attrs {
141 /* 0x00 */ f32 field_0x00;
142 /* 0x04 */ f32 field_0x04;
143 /* 0x08 */ f32 field_0x08;
144 /* 0x0c */ s16 field_0x0c;
145 /* 0x0e */ s16 field_0x0e;
146 /* 0x10 */ s16 fielx_0x10;
147 /* 0x12 */ s16 fielx_0x12;
148 /* 0x14 */ s16 field_0x14;
149 /* 0x16 */ s16 field_0x16;
150 /* 0x18 */ s16 field_0x18;
151 /* 0x1a */ s16 field_0x1a;
152 /* 0x1c */ s16 field_0x1c;
153 /* 0x1e */ s16 field_0x1e;
154 /* 0x20 */ s16 field_0x20;
155 /* 0x22 */ s16 field_0x22;
156 /* 0x24 */ u8 field_0x24;
157 /* 0x25 */ u8 field_0x25;
158 /* 0x26 */ u8 field_0x26;
159 /* 0x28 */ f32 field_0x28;
160 /* 0x2c */ f32 field_0x2c;
161 /* 0x30 */ f32 field_0x30;
162 };
163
164 static M_attrs const M_attr;
165 static M_attrs const& attr() { return M_attr; }
166};
167
168STATIC_ASSERT(sizeof(daObjFlag_c) == 0x5ec);
169
170
171#endif /* D_A_OBJ_FLAG_H */
@ cPhs_COMPLEATE_e
Definition c_phase.h:13
@ cPhs_ERROR_e
Definition c_phase.h:14
Definition d_a_obj_flag.h:11
csXyz mJoint1
Definition d_a_obj_flag.h:16
FlagJoint_c()
Definition d_a_obj_flag.cpp:242
~FlagJoint_c()
Definition d_a_obj_flag.cpp:234
csXyz mJoint3
Definition d_a_obj_flag.h:18
s16 mRv
Definition d_a_obj_flag.h:19
csXyz mJoint2
Definition d_a_obj_flag.h:17
Flag 1.
Definition d_a_obj_flag.h:30
s16 field_0x5e4
Definition d_a_obj_flag.h:41
s16 field_0x5e6
Definition d_a_obj_flag.h:42
void calcAngleSwingX(FlagJoint_c *, f32)
Definition d_a_obj_flag.cpp:127
void calcAngleSwingZ(FlagJoint_c *, f32)
Definition d_a_obj_flag.cpp:106
void getJointAngle(csXyz *, int)
Definition d_a_obj_flag.cpp:58
int create()
Definition d_a_obj_flag.h:60
static M_attrs const M_attr
Definition d_a_obj_flag.h:12
s16 field_0x5e2
Definition d_a_obj_flag.h:40
s16 field_0x5e8
Definition d_a_obj_flag.h:43
J3DModel * mpModel1
Definition d_a_obj_flag.h:32
f32 field_0x5dc
Definition d_a_obj_flag.h:38
request_of_phase_process_class mPhase
Definition d_a_obj_flag.h:34
u8 field_0x568[0x5ec - 0x5ea]
Definition d_a_obj_flag.h:44
void initBaseMtx()
Definition d_a_obj_flag.cpp:45
request_of_phase_process_class mPhase2
Definition d_a_obj_flag.h:35
int draw()
Definition d_a_obj_flag.h:89
~daObjFlag_c()
Definition d_a_obj_flag.h:55
int createHeap()
Definition d_a_obj_flag.h:105
int execute()
Definition d_a_obj_flag.h:80
FlagJoint_c mFlagJoints[4]
Definition d_a_obj_flag.h:36
J3DModel * mpModel2
Definition d_a_obj_flag.h:33
f32 getSwingY(f32)
Definition d_a_obj_flag.cpp:142
void calcJointAngle()
Definition d_a_obj_flag.cpp:64
void create_init()
Definition d_a_obj_flag.cpp:28
s16 field_0x5e0
Definition d_a_obj_flag.h:39
cXyz mPos
Definition d_a_obj_flag.h:37
static M_attrs const & attr()
Definition d_a_obj_flag.h:165
static const char * getArcName(fopAc_ac_c *)
Definition d_com_static.cpp:300
u8 g_env_light[4880]
Definition d_kankyo.cpp:452
STATIC_ASSERT(sizeof(daObjFlag_c)==0x5ec)
static int nodeCallBack(J3DJoint *, int)
static int createSolidHeap(fopAc_ac_c *)
static u8 angle[2+2]
Definition d_a_obj_kago.cpp:845
int dComIfG_resLoad(request_of_phase_process_class *i_phase, char const *i_arcName)
Definition d_com_inf_game.cpp:1051
int dComIfG_resDelete(request_of_phase_process_class *i_phase, char const *i_resName)
Definition d_com_inf_game.cpp:1123
void * dComIfG_getObjectRes(const char *i_arcName, const char *i_resName)
Definition d_com_inf_game.h:958
void dComIfGd_setListBG()
Definition d_com_inf_game.h:4098
void dComIfGd_setList()
Definition d_com_inf_game.h:4075
int i
Definition e_pow.c:165
bool fopAcM_entrySolidHeap(fopAc_ac_c *i_actor, heapCallbackFunc i_heapCallback, u32 i_size)
Definition f_op_actor_mng.cpp:427
J3DModel * mDoExt_J3DModel__create(J3DModelData *i_modelData, u32 i_modelFlag, u32 i_differedDlistFlag)
Definition m_Do_ext.cpp:2668
void mDoExt_modelUpdateDL(J3DModel *i_model)
Definition m_Do_ext.cpp:337
int sprintf(char *s, const char *format,...)
Definition printf.c:1261
Definition d_a_hozelda.cpp:239
void setCallBack(J3DJointCallBack callback)
Definition J3DJoint.h:61
Definition d_a_hozelda.cpp:52
J3DJoint * getJointNodePointer(u16 idx) const
Definition J3DModelData.h:49
Definition d_a_hozelda.cpp:146
J3DModelData * getModelData()
Definition J3DModel.h:78
void setUserArea(u32 area)
Definition J3DModel.h:98
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:172
cXyz pos
Definition f_op_actor.h:171
Definition d_a_hozelda.cpp:20
Definition d_a_hozelda.cpp:161
void setall(s16 val)
Definition c_sxyz.h:31
Definition d_a_obj_flag.h:140
s16 field_0x20
Definition d_a_obj_flag.h:154
s16 field_0x1e
Definition d_a_obj_flag.h:153
s16 field_0x1c
Definition d_a_obj_flag.h:152
s16 field_0x18
Definition d_a_obj_flag.h:150
f32 field_0x28
Definition d_a_obj_flag.h:159
f32 field_0x08
Definition d_a_obj_flag.h:143
s16 field_0x1a
Definition d_a_obj_flag.h:151
s16 field_0x0c
Definition d_a_obj_flag.h:144
u8 field_0x24
Definition d_a_obj_flag.h:156
s16 fielx_0x10
Definition d_a_obj_flag.h:146
f32 field_0x30
Definition d_a_obj_flag.h:161
s16 field_0x0e
Definition d_a_obj_flag.h:145
f32 field_0x00
Definition d_a_obj_flag.h:141
s16 field_0x22
Definition d_a_obj_flag.h:155
f32 field_0x2c
Definition d_a_obj_flag.h:160
s16 fielx_0x12
Definition d_a_obj_flag.h:147
f32 field_0x04
Definition d_a_obj_flag.h:142
s16 field_0x16
Definition d_a_obj_flag.h:149
u8 field_0x25
Definition d_a_obj_flag.h:157
s16 field_0x14
Definition d_a_obj_flag.h:148
u8 field_0x26
Definition d_a_obj_flag.h:158
Definition d_a_hozelda.cpp:74
dKy_tevstr_c tevStr
Definition f_op_actor.h:209
csXyz shape_angle
Definition f_op_actor.h:222
actor_place current
Definition f_op_actor.h:221
Definition d_a_hozelda.cpp:14
signed char s8
Definition types.h:4
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
unsigned long long int u64
Definition types.h:11
unsigned char u8
Definition types.h:5