Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_map_path.h
Go to the documentation of this file.
1#ifndef D_MAP_D_MAP_PATH_H
2#define D_MAP_D_MAP_PATH_H
3
4#include "d/d_drawlist.h"
6
10
14
21
23public:
25
27 virtual ~dMpath_RGBA_c() {}
28 GXColor getGXColor() const { return mColor; }
29 void setGXColor(const GXColor&);
31};
32
33namespace dMpath_HIO_n {
34 struct list_s {
35 /* 0x00 */ const void* field_0x0;
36 /* 0x04 */ u32 field_0x4;
37 };
38
39 struct resData_s {};
40 struct hioList_s : public list_s, resData_s {};
41
42 // RTTI does not match debug
43 class hioList_c : public hioList_s {
44 public:
45 virtual ~hioList_c() {}
46 virtual void copySrcToHio() = 0;
47 virtual void copyHioToDst() = 0;
48 virtual void copyBufToHio(const char*) = 0;
49
50 void set(const list_s& param_1) { *static_cast<list_s*>(this) = param_1; }
51 void gen(JORMContext*);
52 void update(JORMContext*);
53 u32 addString(char*, u32, u32) const;
54 u32 addStringBinary(char*, u32, u32) const;
55 };
56}
57
59public:
61 virtual u32 addString(char*, u32, u32) = 0;
62 virtual u32 addData(char*, u32, u32) = 0;
63 virtual void copyReadBufToData(const char*, s32) = 0;
64 virtual u32 addStringBinary(char* param_1, u32 param_2, u32 param_3) {
65 return addString(param_1, param_2, param_3);
66 }
67
68 BOOL writeHostioTextFile(const char*);
69 BOOL writeBinaryTextFile(const char*);
70 BOOL writeBinaryFile(const char*);
71 void binaryDump(const void*, u32);
72 bool readBinaryFile(const char*);
73};
74
76public:
78
80 virtual ~dMpath_RGB5A3_c() {}
81 void set(u8 r, u8 g, u8 b, u8 a) {
82 u32 color;
83 if (a >= 224) {
84 color = (r & 0xf8) << 7 | (g & 0xf8) << 2 | (b & 0xf8) >> 3 | 0x8000;
85 } else {
86 color = (r & 0xf0) << 4 | g & 0xf0 | (b & 0xf0) >> 4 | (a & 0xe0) << 7;
87 }
88 mColor.color = color;
89 }
90 void set(const GXColor& c) { set(c.r, c.g, c.b, c.a); }
91 const dMpath_RGB5A3_s& getRGB5A3() const { return mColor; }
92};
93
110
111class dDrawPath_c : public dDlst_base_c {
112public:
113 struct line_class {
114 /* 0x00 */ u8 field_0x0;
115 /* 0x01 */ u8 field_0x1;
116 /* 0x02 */ u8 mDataNum;
117 /* 0x03 */ u8 field_0x3;
118 /* 0x04 */ u16* mpData;
119 }; // Size: 0x8
120
121 struct poly_class {
122 /* 0x00 */ u8 field_0x0;
123 /* 0x01 */ u8 mDataNum;
124 /* 0x04 */ u16* mpData;
125 }; // Size: 0x8
126
127 struct group_class {
128 /* 0x00 */ u8 mSwbit;
129 /* 0x01 */ u8 field_0x1;
130 /* 0x02 */ u8 mLineNum;
131 /* 0x03 */ u8 field_0x3;
132 /* 0x04 */ u8 mPolyNum;
134 /* 0x0C */ u8 field_0xc[4];
136 }; // Size: 0x14
137
138 struct floor_class {
139 /* 0x0 */ s8 mFloorNo;
140 /* 0x1 */ u8 mGroupNum;
142 }; // Size: 0x8
143
144 struct room_class {
145 /* 0x0 */ u8 mFloorNum;
147 /* 0x8 */ f32* mpFloatData; // might be Vec or cXyz instead
148 };
149
150 struct layer_data {
151 /* 0x0 */ room_class* mRooms[0x2][0x40];
152 };
153
156
157 virtual ~dDrawPath_c() {}
158 virtual bool isDrawType(int) { return true; }
159 virtual const GXColor* getColor(int) = 0;
160 virtual const GXColor* getLineColor(int param_0, int) { return (GXColor*)getColor(param_0); }
161 virtual int getLineWidth(int) = 0;
162 virtual bool isSwitch(dDrawPath_c::group_class const*) = 0;
163 virtual bool isRenderingFloor(int) = 0;
166 virtual void drawPath();
167 virtual void rendering(dDrawPath_c::line_class const*);
168 virtual void rendering(dDrawPath_c::poly_class const*);
169 virtual void rendering(dDrawPath_c::room_class const*);
170};
171
176
178public:
179 void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const;
180 void renderingMap();
181
182 virtual ~dRenderingMap_c() {}
183 virtual void beforeDrawPath() = 0;
184 virtual void afterDrawPath() = 0;
185
186 virtual void preDrawPath() = 0;
187 virtual void postDrawPath() = 0;
188 virtual bool isDrawPath() = 0;
189 virtual void preRenderingMap() = 0;
190 virtual void postRenderingMap() = 0;
191};
192
194public:
196 field_0x4 = NULL;
197 field_0x8 = 0.0f;
198 field_0xc = 0.0f;
199 mPosX = 0.0f;
200 mPosZ = 0.0f;
201 mCmPerTexel = 0.0f;
202 mTexWidth = 0;
203 mTexHeight = 0;
204 field_0x20 = 0;
205 field_0x22 = 0;
206 }
207
210 void drawBack() const;
212
214 virtual void preRenderingMap();
215 virtual void postRenderingMap();
216 virtual const GXColor* getBackColor() const = 0;
217 virtual const GXColor* getDecoLineColor(int, int);
218 virtual s32 getDecorationLineWidth(int);
219
220 f32 getCmPerTexel() const { return mCmPerTexel; }
221 bool isDrawAreaCheck(const Vec& param_0) {
222 return (param_0.x >= mPosX - field_0x8 * 2.0f &&
223 param_0.x <= mPosX + field_0x8 * 2.0f) &&
224 (param_0.z >= mPosZ - field_0xc * 2.0f &&
225 param_0.z <= mPosZ + field_0xc * 2.0f);
226 }
227
228 /* 0x04 */ u8* field_0x4;
229 /* 0x08 */ f32 field_0x8;
230 /* 0x0C */ f32 field_0xc;
231 /* 0x10 */ f32 mPosX;
232 /* 0x14 */ f32 mPosZ;
233 /* 0x18 */ f32 mCmPerTexel;
234 /* 0x1C */ u16 mTexWidth;
235 /* 0x1E */ u16 mTexHeight;
236 /* 0x20 */ u16 field_0x20;
237 /* 0x22 */ u16 field_0x22;
238}; // Size: 0x24
239
240struct dMpath_n {
242 public:
243 static const int TEX_OBJ_NUMBER = 7;
244
245 void create();
246 void remove();
248
250 JUT_ASSERT(44, i_no >= 0 && i_no < TEX_OBJ_NUMBER);
251 return mp_texObj[i_no];
252 }
253
255 for (int i = 0; i < TEX_OBJ_NUMBER; i++) {
256 mp_texObj[i] = NULL;
257 }
258 }
259
261 };
262
264};
265
267
268#endif /* D_MAP_D_MAP_PATH_H */
Definition JORMContext.h:128
Definition JORReflexible.h:47
Ordon Goat.
Definition d_drawlist.h:33
Definition d_map_path.h:172
virtual ~dDrawPathWithNormalPattern_c()
Definition d_map_path.h:174
Definition d_map_path.h:111
virtual bool isDrawType(int)
Definition d_map_path.h:158
virtual room_class * getNextRoomPointer()=0
void rendering(dDrawPath_c::group_class const *)
Definition d_map_path.cpp:267
virtual ~dDrawPath_c()
Definition d_map_path.h:157
virtual bool isRenderingFloor(int)=0
virtual room_class * getFirstRoomPointer()=0
virtual bool isSwitch(dDrawPath_c::group_class const *)=0
virtual int getLineWidth(int)=0
virtual const GXColor * getColor(int)=0
virtual void drawPath()
Definition d_map_path.cpp:311
virtual const GXColor * getLineColor(int param_0, int)
Definition d_map_path.h:160
Definition d_map_path.h:58
virtual u32 addStringBinary(char *param_1, u32 param_2, u32 param_3)
Definition d_map_path.h:64
virtual u32 addString(char *, u32, u32)=0
void binaryDump(const void *, u32)
Definition d_map_path.cpp:180
BOOL writeHostioTextFile(const char *)
Definition d_map_path.cpp:105
virtual ~dMpath_HIO_file_base_c()
Definition d_map_path.h:60
bool readBinaryFile(const char *)
Definition d_map_path.cpp:205
BOOL writeBinaryFile(const char *)
Definition d_map_path.cpp:155
virtual void copyReadBufToData(const char *, s32)=0
virtual u32 addData(char *, u32, u32)=0
BOOL writeBinaryTextFile(const char *)
Definition d_map_path.cpp:130
Definition d_map_path.h:43
void set(const list_s &param_1)
Definition d_map_path.h:50
virtual void copySrcToHio()=0
virtual void copyBufToHio(const char *)=0
u32 addStringBinary(char *, u32, u32) const
Definition d_map_path.cpp:100
void gen(JORMContext *)
Definition d_map_path.cpp:77
u32 addString(char *, u32, u32) const
Definition d_map_path.cpp:95
virtual void copyHioToDst()=0
virtual ~hioList_c()
Definition d_map_path.h:45
void update(JORMContext *)
Definition d_map_path.cpp:91
Definition d_map_path.h:75
dMpath_RGB5A3_c(GXColor c)
Definition d_map_path.h:79
void set(const GXColor &c)
Definition d_map_path.h:90
void set(u8 r, u8 g, u8 b, u8 a)
Definition d_map_path.h:81
const dMpath_RGB5A3_s & getRGB5A3() const
Definition d_map_path.h:91
dMpath_RGB5A3_s mColor
Definition d_map_path.h:77
virtual ~dMpath_RGB5A3_c()
Definition d_map_path.h:80
Definition d_map_path.h:94
dMpath_RGB5A3_palDt_s & getRGB5A3_palDt_s()
Definition d_map_path.h:100
void setGXColor(const GXColor &c)
Definition d_map_path.h:102
virtual ~dMpath_RGB5A3_palDt_c()
Definition d_map_path.h:99
dMpath_RGB5A3_palDt_s field_0x0
Definition d_map_path.h:96
dMpath_RGB5A3_palDt_c()
Definition d_map_path.h:98
Definition d_map_path.h:22
GXColor mColor
Definition d_map_path.h:24
dMpath_RGBA_c()
Definition d_map_path.h:26
void setGXColor(const GXColor &)
Definition d_map_path.cpp:66
virtual ~dMpath_RGBA_c()
Definition d_map_path.h:27
void setRGB5A3_palDt(const dMpath_RGB5A3_palDt_s &)
Definition d_map_path.cpp:70
GXColor getGXColor() const
Definition d_map_path.h:28
Definition d_map_path.h:241
void remove()
Definition d_map_path.cpp:32
static const int TEX_OBJ_NUMBER
Definition d_map_path.h:243
dTexObjAggregate_c()
Definition d_map_path.h:254
GXTexObj * mp_texObj[TEX_OBJ_NUMBER]
Definition d_map_path.h:260
GXTexObj * getTexObjPointer(int i_no)
Definition d_map_path.h:249
void create()
Definition d_map_path.cpp:16
~dTexObjAggregate_c()
Definition d_map_path.h:247
Definition d_map_path.h:193
virtual ~dRenderingFDAmap_c()
Definition d_map_path.h:213
virtual const GXColor * getBackColor() const =0
void renderingDecoration(dDrawPath_c::line_class const *)
Definition d_map_path.cpp:447
f32 field_0x8
Definition d_map_path.h:229
dRenderingFDAmap_c()
Definition d_map_path.h:195
u16 mTexWidth
Definition d_map_path.h:234
u16 field_0x22
Definition d_map_path.h:237
virtual const GXColor * getDecoLineColor(int, int)
Definition d_map_path.cpp:505
f32 mCmPerTexel
Definition d_map_path.h:233
f32 mPosX
Definition d_map_path.h:231
void setTevSettingIntensityTextureToCI() const
Definition d_map_path.cpp:368
f32 getCmPerTexel() const
Definition d_map_path.h:220
virtual s32 getDecorationLineWidth(int)
Definition d_map_path.cpp:509
u16 field_0x20
Definition d_map_path.h:236
void setTevSettingNonTextureDirectColor() const
Definition d_map_path.cpp:356
f32 field_0xc
Definition d_map_path.h:230
f32 mPosZ
Definition d_map_path.h:232
bool isDrawAreaCheck(const Vec &param_0)
Definition d_map_path.h:221
virtual void preRenderingMap()
Definition d_map_path.cpp:401
void drawBack() const
Definition d_map_path.cpp:388
u8 * field_0x4
Definition d_map_path.h:228
virtual void postRenderingMap()
Definition d_map_path.cpp:428
u16 mTexHeight
Definition d_map_path.h:235
Definition d_map_path.h:177
virtual void postDrawPath()=0
virtual bool isDrawPath()=0
virtual ~dRenderingMap_c()
Definition d_map_path.h:182
virtual void preDrawPath()=0
virtual void postRenderingMap()=0
virtual void afterDrawPath()=0
void renderingMap()
Definition d_map_path.cpp:344
virtual void beforeDrawPath()=0
virtual void preRenderingMap()=0
void makeResTIMG(ResTIMG *, u16, u16, u8 *, u8 *, u16) const
Definition d_map_path.cpp:319
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c)==28)
r
Definition e_acos.c:105
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
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
a
Definition k_cos.c:89
Definition d_map_path.h:11
void convertRGB5A3_To_GXColor(_GXColor &, const dMpath_RGB5A3_s &)
Definition d_map_path.cpp:39
Definition d_map_path.h:33
Image data header.
Definition JUTTexture.h:18
Definition mtx.h:13
f32 z
Definition mtx.h:14
f32 x
Definition mtx.h:14
Definition GXStruct.h:30
Definition GXStruct.h:38
Definition d_map_path.h:138
s8 mFloorNo
Definition d_map_path.h:139
u8 mGroupNum
Definition d_map_path.h:140
dDrawPath_c::group_class * mpGroup
Definition d_map_path.h:141
Definition d_map_path.h:127
u8 field_0x1
Definition d_map_path.h:129
u8 mPolyNum
Definition d_map_path.h:132
u8 field_0xc[4]
Definition d_map_path.h:134
u8 field_0x3
Definition d_map_path.h:131
dDrawPath_c::line_class * mpLine
Definition d_map_path.h:133
dDrawPath_c::poly_class * mpPoly
Definition d_map_path.h:135
u8 mSwbit
Definition d_map_path.h:128
u8 mLineNum
Definition d_map_path.h:130
Definition d_map_path.h:150
room_class * mRooms[0x2][0x40]
Definition d_map_path.h:151
Definition d_map_path.h:113
u16 * mpData
Definition d_map_path.h:118
u8 field_0x1
Definition d_map_path.h:115
u8 field_0x3
Definition d_map_path.h:117
u8 mDataNum
Definition d_map_path.h:116
u8 field_0x0
Definition d_map_path.h:114
Definition d_map_path.h:121
u8 mDataNum
Definition d_map_path.h:123
u16 * mpData
Definition d_map_path.h:124
u8 field_0x0
Definition d_map_path.h:122
Definition d_map_path.h:144
u8 mFloorNum
Definition d_map_path.h:145
dDrawPath_c::floor_class * mpFloor
Definition d_map_path.h:146
f32 * mpFloatData
Definition d_map_path.h:147
Definition d_map_path.h:40
Definition d_map_path.h:34
const void * field_0x0
Definition d_map_path.h:35
u32 field_0x4
Definition d_map_path.h:36
Definition d_map_path.h:39
Definition d_map_path.h:15
dMpath_RGB5A3_s field_0x0
Definition d_map_path.h:16
dMpath_RGB5A3_s field_0x6
Definition d_map_path.h:19
dMpath_RGB5A3_s field_0x2
Definition d_map_path.h:17
dMpath_RGB5A3_s field_0x4
Definition d_map_path.h:18
Definition d_map_path.h:7
u16 color
Definition d_map_path.h:8
Definition d_map_path.h:240
static dTexObjAggregate_c m_texObjAgg
Definition d_map_path.h:263