Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_bg_parts.h
Go to the documentation of this file.
1#ifndef D_D_BG_PARTS
2#define D_D_BG_PARTS
3
4#include "f_op/f_op_actor.h"
5#include "d/d_com_inf_game.h"
8#include "m_Do/m_Do_ext.h"
9#include "d/d_bg_w.h"
10
11class dBgp_c {
12public:
13 class material_c {
14 public:
16
17 void draw();
18 material_c* getNext() { return mpNext; }
19 material_c** getNext_p() { return &mpNext; }
20
21 void setNext(material_c* i_material) {
22 mpNext = i_material;
23 }
24
25 virtual void drawSimple() = 0;
26 virtual bool isSame(material_c*) { return false; }
27
28 virtual void addChild(material_c* i_material) {
29 UNUSED(i_material);
30 JUT_ASSERT(78, FALSE);
31 }
32
33 /* 0x4 */ material_c* mpNext;
34 };
35
36 class modelMaterial_c : public material_c {
37 public:
39
41 return mpMtx;
42 }
43
47
49 return mpChild;
50 }
51
53 return mpMaterial;
54 }
55
57
58 void setChild(modelMaterial_c* i_child) {
59 mpChild = i_child;
60 }
61
63
64 virtual void drawSimple();
65 virtual bool isSame(material_c*);
66 virtual void addChild(material_c*);
67
68 /* 0x08 */ u16 mMaterialID;
71 /* 0x14 */ MtxPtr mpMtx;
73 };
74
75 class packet_c : public J3DPacket {
76 public:
77 packet_c();
78 ~packet_c();
79
80 void draw();
81 s8 getRoomNo() { return mRoomNo; }
82 void setRoomNo(s8 i_roomNo) {
83 mRoomNo = i_roomNo;
84 }
85 void reset();
89
90 static const int MATERIAL_SORT_LEVEL = 2;
91
92 /* 0x10 */ s8 mRoomNo;
93 /* 0x14 */ material_c* mpMaterials[64];
94 };
95
96 class model_c {
97 public:
99 mMaterial = NULL;
100 }
101
102 void create(J3DModelData*, Mtx);
103 void remove();
104
106 return mBaseTRMtx;
107 }
108
110 return mMaterial;
111 }
112
113 /* 0x00 */ u16 mId;
114 /* 0x04 */ Mtx mBaseTRMtx;
116 };
117
118 class share_c {
119 public:
120 share_c();
122
123 void set(u16);
124 void reset();
125
126 const char* getArcName();
127 int execute();
128 void draw();
129 void entry(packet_c*);
130 void cbNormal();
131 void cbConveyor();
132
133 u16 getId() { return mId; }
134 u16 getCount() { return mCount; }
135 bool isUsed() { return mStatus != -1; }
136 bool isDraw() { return mStatus == 0; }
137
138 void setCallback(void (share_c::*i_callback)()) {
139 mCallback = i_callback;
140 }
141
142 /* 0x00 */ s8 mStatus;
143 /* 0x01 */ u8 field_0x1;
144 /* 0x02 */ u16 mId;
145 /* 0x04 */ u16 mCount;
147 /* 0x0C */ mDoExt_btkAnm mBtk;
148 /* 0x24 */ mDoExt_brkAnm mBrk;
150 /* 0x40 */ void (share_c::*mCallback)();
151 };
152
153 // made up names except for `unit_group_class`
154 struct unit_class;
155 struct unit_group_class;
156
158 /* 0x0 */ int num;
159 /* 0x4 */ unit_class* entries;
160 };
161
163 /* 0x00 */ u8 field_0x0[3];
164 /* 0x03 */ u8 field_0x3;
165 /* 0x04 */ u8 field_0x4;
166 /* 0x05 */ u8 field_0x5;
167 /* 0x06 */ s16 angle;
168 /* 0x08 */ Vec pos;
169 /* 0x14 */ u8 field_0x14;
170 /* 0x15 */ u8 field_0x15;
171 };
172
177
178 struct unit_class {
179 /* 0x0 */ int num;
183 };
184
186 /* 0x0 */ u8 unk_0x0;
187 /* 0x1 */ u8 switchNo;
188 /* 0x2 */ u16 unk_0x2;
189 };
190
191 dBgp_c();
193
194 void create(s8, void*);
195 int remove();
197 void registBg(fopAc_ac_c*);
198 void releaseBg();
199 int registBg(int, fopAc_ac_c*);
200 void releaseBg(int);
201 int execute(bool);
202 void draw(fopAc_ac_c*);
203
207
208 void entryModel(model_c* i_model) {
209 modelMaterial_c* var_30 = i_model->getMaterial();
210 for (int i = var_30->getModelData()->getMaterialNum() - 1; i >= 0; i--) {
211 mPacket.entryModel(var_30);
212 var_30++;
213 }
214 }
215
216 static void setPointer(void* i_pointer);
217
218 static u16 getArg0(u8* param_0) {
219 return ((param_0[1] & 0xF) << 8) | (param_0[2]);
220 }
221
222 static u16 getId(u8* param_0) {
223 return (param_0[0] << 4) | ((param_0[1] >> 4) & 0xF);
224 }
225
226 static const char* getArcName(u8* param_0) {
227 return getArcName(getId(param_0), getArg0(param_0));
228 }
229
230 static const char* getArcName(u16, u16);
231
232 static void createShare();
233 static void removeShare();
234 static void addShare(u16);
235 static void cutShare(u16);
236 static bool executeShare();
237 static void drawShare();
238 static void entryShare(packet_c*);
239
242
243 /* 0x000 */ void* mPointer;
244 /* 0x004 */ char mArcName[8];
245 /* 0x00C */ JKRSolidHeap* mHeap;
246 /* 0x010 */ JKRSolidHeap* mHeap2;
247 /* 0x014 */ dBgW* mBgWork;
248 /* 0x018 */ model_c* mModel;
249 /* 0x01C */ packet_c mPacket;
250 /* 0x130 */ u16 field_0x130;
251};
252
253#endif /* D_D_BG_PARTS */
int entryImm(J3DPacket *pPacket, u16 index)
Definition J3DDrawBuffer.cpp:198
Definition J3DMaterial.h:16
Definition J3DModelData.h:15
u16 getMaterialNum() const
Definition J3DModelData.h:33
Definition J3DPacket.h:170
Definition JKRSolidHeap.h:10
Definition d_bg_w.h:258
Definition d_bg_parts.h:13
material_c * getNext()
Definition d_bg_parts.h:18
virtual void drawSimple()=0
material_c * mpNext
Definition d_bg_parts.h:33
virtual void addChild(material_c *i_material)
Definition d_bg_parts.h:28
material_c ** getNext_p()
Definition d_bg_parts.h:19
material_c()
Definition d_bg_parts.h:15
void setNext(material_c *i_material)
Definition d_bg_parts.h:21
virtual bool isSame(material_c *)
Definition d_bg_parts.h:26
void draw()
Definition d_bg_parts.cpp:10
Definition d_bg_parts.h:36
modelMaterial_c * mpChild
Definition d_bg_parts.h:72
J3DModelData * getModelData()
Definition d_bg_parts.h:44
virtual void addChild(material_c *)
Definition d_bg_parts.cpp:73
u16 mMaterialID
Definition d_bg_parts.h:68
J3DModelData * mpModelData
Definition d_bg_parts.h:69
J3DMaterial * getMaterial()
Definition d_bg_parts.h:52
virtual bool isSame(material_c *)
Definition d_bg_parts.cpp:68
MtxPtr mpMtx
Definition d_bg_parts.h:71
modelMaterial_c()
Definition d_bg_parts.h:38
virtual void drawSimple()
Definition d_bg_parts.cpp:17
void set(J3DModelData *, J3DMaterial *, Mtx)
Definition d_bg_parts.cpp:80
void setChild(modelMaterial_c *i_child)
Definition d_bg_parts.h:58
modelMaterial_c * getChild()
Definition d_bg_parts.h:48
J3DMaterial * mpMaterial
Definition d_bg_parts.h:70
u16 getMaterialID()
Definition d_bg_parts.h:56
MtxPtr getMtx()
Definition d_bg_parts.h:40
Definition d_bg_parts.h:96
model_c()
Definition d_bg_parts.h:98
u16 mId
Definition d_bg_parts.h:113
modelMaterial_c * getMaterial()
Definition d_bg_parts.h:109
MtxPtr getBaseTRMtx()
Definition d_bg_parts.h:105
modelMaterial_c * mMaterial
Definition d_bg_parts.h:115
Mtx mBaseTRMtx
Definition d_bg_parts.h:114
void create(J3DModelData *, Mtx)
Definition d_bg_parts.cpp:105
void remove()
Definition d_bg_parts.cpp:128
Definition d_bg_parts.h:75
static const int MATERIAL_SORT_LEVEL
Definition d_bg_parts.h:90
void entryModel(modelMaterial_c *)
Definition d_bg_parts.cpp:179
void draw()
Definition d_bg_parts.cpp:134
void entryShare(modelMaterial_c *)
Definition d_bg_parts.cpp:197
void reset()
Definition d_bg_parts.cpp:166
~packet_c()
Definition d_bg_parts.cpp:423
packet_c()
Definition d_bg_parts.cpp:425
material_c * mpMaterials[64]
Definition d_bg_parts.h:93
s8 mRoomNo
Definition d_bg_parts.h:92
void entryMaterial(material_c *, u32)
Definition d_bg_parts.cpp:174
s8 getRoomNo()
Definition d_bg_parts.h:81
void setRoomNo(s8 i_roomNo)
Definition d_bg_parts.h:82
Definition d_bg_parts.h:118
const char * getArcName()
Definition d_bg_parts.cpp:255
u16 getId()
Definition d_bg_parts.h:133
void draw()
Definition d_bg_parts.cpp:352
s8 mStatus
Definition d_bg_parts.h:142
modelMaterial_c * mMaterial
Definition d_bg_parts.h:149
bool isUsed()
Definition d_bg_parts.h:135
u8 field_0x1
Definition d_bg_parts.h:143
mDoExt_brkAnm mBrk
Definition d_bg_parts.h:148
bool isDraw()
Definition d_bg_parts.h:136
int execute()
Definition d_bg_parts.cpp:277
void(share_c::* mCallback)()
Definition d_bg_parts.h:150
share_c()
Definition d_bg_parts.cpp:217
~share_c()
Definition d_bg_parts.h:121
void reset()
Definition d_bg_parts.cpp:237
u16 mId
Definition d_bg_parts.h:144
void entry(packet_c *)
Definition d_bg_parts.cpp:375
u16 mCount
Definition d_bg_parts.h:145
void cbNormal()
Definition d_bg_parts.cpp:385
void set(u16)
Definition d_bg_parts.cpp:225
void cbConveyor()
Definition d_bg_parts.cpp:397
void setCallback(void(share_c::*i_callback)())
Definition d_bg_parts.h:138
mDoExt_btkAnm mBtk
Definition d_bg_parts.h:147
u16 getCount()
Definition d_bg_parts.h:134
J3DModelData * mModelData
Definition d_bg_parts.h:146
Definition d_bg_parts.h:11
void entryModel(model_c *i_model)
Definition d_bg_parts.h:208
static JKRSolidHeap * mShareHeap
Definition d_bg_parts.h:240
int execute(bool)
Definition d_bg_parts.cpp:588
JKRSolidHeap * mHeap
Definition d_bg_parts.h:245
int remove()
Definition d_bg_parts.cpp:494
static void cutShare(u16)
Definition d_bg_parts.cpp:797
static void createShare()
Definition d_bg_parts.cpp:755
dBgp_c()
Definition d_bg_parts.cpp:415
static void addShare(u16)
Definition d_bg_parts.cpp:776
static const char * getArcName(u8 *param_0)
Definition d_bg_parts.h:226
void releaseBg()
Definition d_bg_parts.cpp:562
static void removeShare()
Definition d_bg_parts.cpp:768
static u16 getId(u8 *param_0)
Definition d_bg_parts.h:222
static bool executeShare()
Definition d_bg_parts.cpp:808
JKRSolidHeap * mHeap2
Definition d_bg_parts.h:246
static void setPointer(void *i_pointer)
Definition d_bg_parts.cpp:743
void * mPointer
Definition d_bg_parts.h:243
static u16 getArg0(u8 *param_0)
Definition d_bg_parts.h:218
void registBg(fopAc_ac_c *)
Definition d_bg_parts.cpp:552
model_c * mModel
Definition d_bg_parts.h:248
BOOL isSwitch(unit_group_class *)
Definition d_bg_parts.cpp:540
dBgW * mBgWork
Definition d_bg_parts.h:247
u16 field_0x130
Definition d_bg_parts.h:250
void draw(fopAc_ac_c *)
Definition d_bg_parts.cpp:672
static void entryShare(packet_c *)
Definition d_bg_parts.cpp:833
char mArcName[8]
Definition d_bg_parts.h:244
packet_c mPacket
Definition d_bg_parts.h:249
static share_c * mShare
Definition d_bg_parts.h:241
void entryPacket()
Definition d_bg_parts.h:204
static void drawShare()
Definition d_bg_parts.cpp:822
void create(s8, void *)
Definition d_bg_parts.cpp:429
Definition f_op_actor.h:243
Definition m_Do_ext.h:92
Definition m_Do_ext.h:63
J3DDrawBuffer * dComIfGd_getOpaListBG()
Definition d_com_inf_game.h:4525
f32 Mtx[3][4]
Definition mtx.h:25
f32(* MtxPtr)[4]
Definition mtx.h:26
int i
Definition e_log.c:92
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition mtx.h:13
Definition d_bg_parts.h:157
int num
Definition d_bg_parts.h:158
unit_class * entries
Definition d_bg_parts.h:159
Definition d_bg_parts.h:178
unit_unk_data_class * unk_0x8
Definition d_bg_parts.h:181
int num
Definition d_bg_parts.h:179
unit_unk_data2_class * unk_0xc
Definition d_bg_parts.h:182
unit_group_class * groups
Definition d_bg_parts.h:180
Definition d_bg_parts.h:185
u8 unk_0x0
Definition d_bg_parts.h:186
u16 unk_0x2
Definition d_bg_parts.h:188
u8 switchNo
Definition d_bg_parts.h:187
Definition d_bg_parts.h:162
Vec pos
Definition d_bg_parts.h:168
s16 angle
Definition d_bg_parts.h:167
u8 field_0x14
Definition d_bg_parts.h:169
u8 field_0x4
Definition d_bg_parts.h:165
u8 field_0x3
Definition d_bg_parts.h:164
u8 field_0x15
Definition d_bg_parts.h:170
u8 field_0x0[3]
Definition d_bg_parts.h:163
u8 field_0x5
Definition d_bg_parts.h:166
Definition d_bg_parts.h:173
u16 field_0x0
Definition d_bg_parts.h:174
u16 field_0x2
Definition d_bg_parts.h:175