Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J2DPane.h
Go to the documentation of this file.
1#ifndef J2DPANE_H
2#define J2DPANE_H
3
4#include "JSystem/JGeometry.h"
6#include <dolphin/gx.h>
7#include <dolphin/mtx.h>
8
9class J2DAnmBase;
10class J2DAnmColor;
11class J2DAnmTransform;
12class J2DAnmTevRegKey;
15class J2DAnmVtxColor;
16class J2DGrafContext;
17class J2DScreen;
19class JKRArchive;
21struct ResFONT;
22struct ResTIMG;
23
25 /* 0x78 */ ROTATE_X = 'x',
26 /* 0x79 */ ROTATE_Y = 'y',
27 /* 0x7A */ ROTATE_Z = 'z'
28};
29
37
43 /* 0x0 */ u32 mKind;
44 /* 0x4 */ u32 mSize;
45};
46
51class J2DPane {
52public:
53 J2DPane();
56 J2DPane(J2DPane* other, JSURandomInputStream* stream, u8 arg3);
57 void initiate();
58 void initialize(J2DPane*, bool, u64, const JGeometry::TBox2<f32>&);
59 void initialize(u64 tag, const JGeometry::TBox2<f32>& dim);
60 void makePaneStream(J2DPane* other, JSURandomInputStream* stream);
61 void changeUseTrans(J2DPane* other);
63 bool insertChild(J2DPane* before, J2DPane* child);
64 void draw(f32 a1, f32 a2, const J2DGrafContext* ctx, bool a4, bool a5);
65 void place(const JGeometry::TBox2<f32>& dim);
67 void rotate(f32 offsetX, f32 offsetY, J2DRotateAxis axis, f32 angle);
68 void rotate(f32 angle);
69 void clip(const JGeometry::TBox2<f32>& bounds);
70 void setBasePosition(J2DBasePosition position);
71 void setInfluencedAlpha(bool arg1, bool arg2);
72 Vec getGlbVtx(u8 arg1) const;
76 void makePaneExStream(J2DPane* other, JSURandomInputStream* stream);
77 void* getPointer(JSURandomInputStream* stream, u32 size, JKRArchive* archive);
78 void animationTransform();
79 void updateTransform(const J2DAnmTransform* transform);
80
81 virtual ~J2DPane();
82
83 /* vt 0x0C */ virtual u16 getTypeID() const { return 16; }
84 /* vt 0x10 */ virtual void move(f32 x, f32 y);
85 /* vt 0x14 */ virtual void add(f32 x, f32 y);
86 /* vt 0x18 */ virtual void resize(f32 x, f32 y);
87 /* vt 0x1C */ virtual void setCullBack(bool cull) {
89
90 if (cull) {
92 } else {
94 }
95
97 }
98 /* vt 0x20 */ virtual void setCullBack(_GXCullMode cmode);
99 /* vt 0x24 */ virtual void setAlpha(u8 alpha) {
100 mAlpha = alpha;
101 };
102 /* vt 0x28 */ virtual bool setConnectParent(bool connected) {
103 mConnected = false;
104 return false;
105 }
106 /* vt 0x2C */ virtual void calcMtx() {
107 if (mPaneTree.getParent() != NULL) {
109 }
110 }
111 /* vt 0x30 */ virtual void update() {}
112 /* vt 0x34 */ virtual void drawSelf(f32 arg1, f32 arg2) {}
113 /* vt 0x38 */ virtual void drawSelf(f32 arg1, f32 arg2, Mtx* mtx) {}
114 /* vt 0x3C */ virtual J2DPane* search(u64 tag);
115 /* vt 0x40 */ virtual J2DPane* searchUserInfo(u64 tag);
116 /* vt 0x44 */ virtual void makeMatrix(f32 a, f32 b) {
117 makeMatrix(a, b, -mBounds.i.x, -mBounds.i.y);
118 }
119 /* vt 0x48 */ virtual void makeMatrix(f32 a, f32 b, f32 c, f32 d);
120 /* vt 0x4C */ virtual bool isUsed(const ResTIMG* timg);
121 /* vt 0x50 */ virtual bool isUsed(const ResFONT* font);
122 /* vt 0x54 */ virtual void clearAnmTransform();
123 /* vt 0x58 */ virtual void rewriteAlpha() {}
124 /* vt 0x5C */ virtual void setAnimation(J2DAnmBase* anm);
125 /* vt 0x60 */ virtual void setAnimation(J2DAnmTransform* anm);
126 /* vt 0x64 */ virtual void setAnimation(J2DAnmColor* anm) {}
127 /* vt 0x68 */ virtual void setAnimation(J2DAnmTexPattern* anm) {}
128 /* vt 0x6C */ virtual void setAnimation(J2DAnmTextureSRTKey* anm) {}
129 /* vt 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm) {}
130 /* vt 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm) {}
131 /* vt 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm) {}
132 /* vt 0x7C */ virtual const J2DAnmTransform* animationTransform(const J2DAnmTransform* transform);
133 /* vt 0x80 */ virtual void setVisibileAnimation(J2DAnmVisibilityFull* visibility);
134 /* vt 0x84 */ virtual void setAnimationVF(J2DAnmVisibilityFull* p_visibility) {
135 setAnimation(p_visibility);
136 }
137 /* vt 0x88 */ virtual void setVtxColorAnimation(J2DAnmVtxColor* vtx_color);
138 /* vt 0x8C */ virtual void setAnimationVC(J2DAnmVtxColor* p_vtxColor) {
139 setAnimation(p_vtxColor);
140 }
141 /* vt 0x90 */ virtual const J2DAnmTransform* animationPane(const J2DAnmTransform* transform);
142
143 f32 getHeight() const { return mBounds.getHeight(); }
144 f32 getWidth() const { return mBounds.getWidth(); }
148 u8 getAlpha() const { return mAlpha; }
149
150 f32 getScaleX() const { return mScaleX; }
151
152 f32 getScaleY() const { return mScaleY; }
153
154 f32 getTranslateX() const { return mTranslateX; }
155
156 f32 getTranslateY() const { return mTranslateY; }
157
158 f32 getRotateZ() const { return mRotateZ; }
159
160 f32 getRotOffsetX() const { return mRotateOffsetX; }
161
162 f32 getRotOffsetY() const { return mRotateOffsetY; }
163
165
167
168 void setMtx(Mtx m) { MTXCopy(m, mPositionMtx); }
169
170 void translate(f32 transX, f32 transY) {
171 mTranslateX = transX;
172 mTranslateY = transY;
173 calcMtx();
174 }
175
176 void scale(f32 scaleH, f32 scaleV) {
177 mScaleX = scaleH;
178 mScaleY = scaleV;
179 calcMtx();
180 }
181
184 calcMtx();
185 }
186
187 int getKind() const { return mKind; }
188
189 bool isVisible() const { return mVisible; }
190
191 void show() { mVisible = true; }
192 void hide() { mVisible = false; }
193
194 bool isInfluencedAlpha() const { return mIsInfluencedAlpha; }
195 bool isConnectParent() const { return mConnected; }
196
197 u64 getUserInfo() const { return mUserInfoTag; }
198 void setUserInfo(u64 info) { mUserInfoTag = info; }
199 const Mtx* getMtx() const { return &mPositionMtx; }
200
201 static s16 J2DCast_F32_to_S16(f32 value, u8 arg2);
202
204
205public:
206 /* 0x04 */ u16 field_0x4;
207 /* 0x08 */ int mKind;
208 /* 0x10 */ u64 mInfoTag;
209 /* 0x18 */ u64 mUserInfoTag;
213 /* 0x50 */ Mtx mPositionMtx;
214 /* 0x80 */ Mtx mGlobalMtx;
215 /* 0xB0 */ bool mVisible;
216 /* 0xB1 */ u8 mCullMode;
217 /* 0xB2 */ u8 mAlpha;
218 /* 0xB3 */ u8 mColorAlpha;
219 /* 0xB4 */ bool mIsInfluencedAlpha;
220 /* 0xB5 */ bool mConnected;
221 /* 0xB6 */ char mRotAxis;
222 /* 0xB7 */ u8 mBasePosition;
223 /* 0xB8 */ f32 mRotateX;
224 /* 0xBC */ f32 mRotateY;
225 /* 0xC0 */ f32 mRotateZ;
226 /* 0xC4 */ f32 mRotateOffsetX;
227 /* 0xC8 */ f32 mRotateOffsetY;
228 /* 0xCC */ f32 mScaleX;
229 /* 0xD0 */ f32 mScaleY;
230 /* 0xD4 */ f32 mTranslateX;
231 /* 0xD8 */ f32 mTranslateY;
233 /* 0xF8 */ const J2DAnmTransform* mTransform;
234
235 #if !(PLATFORM_WII || PLATFORM_SHIELD)
236 /* 0xFC */ u32 _fc;
237 #endif
238};
239
240#endif /* J2DPANE_H */
J2DRotateAxis
Definition J2DPane.h:24
@ ROTATE_X
Definition J2DPane.h:25
@ ROTATE_Z
Definition J2DPane.h:27
@ ROTATE_Y
Definition J2DPane.h:26
J2DBasePosition
Definition J2DPane.h:30
@ J2DBasePosition_1
Definition J2DPane.h:32
@ J2DBasePosition_3
Definition J2DPane.h:34
@ J2DBasePosition_0
Definition J2DPane.h:31
@ J2DBasePosition_2
Definition J2DPane.h:33
@ J2DBasePosition_4
Definition J2DPane.h:35
static Mtx mtx[10]
Definition c_lib.cpp:486
Definition J2DAnimation.h:27
Definition J2DAnimation.h:393
Definition J2DAnimation.h:331
Definition J2DAnimation.h:281
Definition J2DAnimation.h:217
Definition J2DAnimation.h:160
Definition J2DAnimation.h:138
Definition J2DAnimation.h:57
Definition J2DGrafContext.h:12
Definition J2DPane.h:51
f32 getHeight() const
Definition J2DPane.h:143
int mKind
Definition J2DPane.h:207
f32 mRotateX
Definition J2DPane.h:223
virtual bool setConnectParent(bool connected)
Definition J2DPane.h:102
const JSUTree< J2DPane > * getPaneTree()
Definition J2DPane.h:147
J2DPane * getFirstChildPane()
Definition J2DPane.cpp:608
const JGeometry::TBox2< f32 > & getGlbBounds() const
Definition J2DPane.h:166
u32 _fc
Definition J2DPane.h:236
virtual void setVisibileAnimation(J2DAnmVisibilityFull *visibility)
Definition J2DPane.cpp:819
void animationTransform()
Definition J2DPane.cpp:793
void setBasePosition(J2DBasePosition position)
Definition J2DPane.cpp:529
void setUserInfo(u64 info)
Definition J2DPane.h:198
JGeometry::TBox2< f32 > mBounds
Definition J2DPane.h:210
virtual void setAnimation(J2DAnmVisibilityFull *anm)
Definition J2DPane.h:130
void place(const JGeometry::TBox2< f32 > &dim)
Definition J2DPane.cpp:346
void * getPointer(JSURandomInputStream *stream, u32 size, JKRArchive *archive)
Definition J2DPane.cpp:725
JGeometry::TBox2< f32 > & getBounds()
Definition J2DPane.cpp:426
void rotateY(f32 rotate)
Definition J2DPane.h:182
u8 mCullMode
Definition J2DPane.h:216
virtual void setAlpha(u8 alpha)
Definition J2DPane.h:99
Vec getGlbVtx(u8 arg1) const
Definition J2DPane.cpp:590
J2DPane()
Definition J2DPane.cpp:11
f32 getRotateZ() const
Definition J2DPane.h:158
bool isInfluencedAlpha() const
Definition J2DPane.h:194
f32 mRotateZ
Definition J2DPane.h:225
bool insertChild(J2DPane *before, J2DPane *child)
Definition J2DPane.cpp:229
void changeUseTrans(J2DPane *other)
Definition J2DPane.cpp:165
void draw(f32 a1, f32 a2, const J2DGrafContext *ctx, bool a4, bool a5)
Definition J2DPane.cpp:246
static s16 J2DCast_F32_to_S16(f32 value, u8 arg2)
Definition J2DPane.cpp:701
int getKind() const
Definition J2DPane.h:187
f32 getRotOffsetX() const
Definition J2DPane.h:160
bool isVisible() const
Definition J2DPane.h:189
u8 mColorAlpha
Definition J2DPane.h:218
f32 mRotateOffsetY
Definition J2DPane.h:227
bool mIsInfluencedAlpha
Definition J2DPane.h:219
JSUTree< J2DPane > * getFirstChild()
Definition J2DPane.h:145
f32 mScaleY
Definition J2DPane.h:229
virtual u16 getTypeID() const
Definition J2DPane.h:83
bool mVisible
Definition J2DPane.h:215
virtual void calcMtx()
Definition J2DPane.h:106
virtual const J2DAnmTransform * animationPane(const J2DAnmTransform *transform)
Definition J2DPane.cpp:835
u8 mBasePosition
Definition J2DPane.h:222
virtual void setAnimation(J2DAnmTevRegKey *anm)
Definition J2DPane.h:129
virtual void drawSelf(f32 arg1, f32 arg2)
Definition J2DPane.h:112
virtual void makeMatrix(f32 a, f32 b)
Definition J2DPane.h:116
u64 getUserInfo() const
Definition J2DPane.h:197
JSUTree< J2DPane > * getEndChild()
Definition J2DPane.h:146
virtual void add(f32 x, f32 y)
Definition J2DPane.cpp:403
f32 getWidth() const
Definition J2DPane.h:144
virtual void update()
Definition J2DPane.h:111
f32 getScaleX() const
Definition J2DPane.h:150
J2DPane * getNextChildPane()
Definition J2DPane.cpp:615
char mRotAxis
Definition J2DPane.h:221
f32 mTranslateY
Definition J2DPane.h:231
virtual void resize(f32 x, f32 y)
Definition J2DPane.cpp:409
J2DPane * getParentPane()
Definition J2DPane.cpp:622
void initialize(J2DPane *, bool, u64, const JGeometry::TBox2< f32 > &)
Definition J2DPane.cpp:49
virtual J2DPane * searchUserInfo(u64 tag)
Definition J2DPane.cpp:477
virtual J2DPane * search(u64 tag)
Definition J2DPane.cpp:464
f32 mTranslateX
Definition J2DPane.h:230
virtual void rewriteAlpha()
Definition J2DPane.h:123
void makePaneStream(J2DPane *other, JSURandomInputStream *stream)
Definition J2DPane.cpp:105
virtual void setAnimation(J2DAnmBase *anm)
Definition J2DPane.cpp:758
virtual bool isUsed(const ResTIMG *timg)
Definition J2DPane.cpp:490
virtual void setAnimation(J2DAnmTextureSRTKey *anm)
Definition J2DPane.h:128
MtxP getGlbMtx()
Definition J2DPane.h:164
bool isConnectParent() const
Definition J2DPane.h:195
f32 getTranslateY() const
Definition J2DPane.h:156
f32 mRotateY
Definition J2DPane.h:224
const J2DAnmTransform * mTransform
Definition J2DPane.h:233
void makePaneExStream(J2DPane *other, JSURandomInputStream *stream)
Definition J2DPane.cpp:650
JSUTree< J2DPane > mPaneTree
Definition J2DPane.h:232
virtual void setCullBack(bool cull)
Definition J2DPane.h:87
virtual void setCullBack(_GXCullMode cmode)
u64 mInfoTag
Definition J2DPane.h:208
void scale(f32 scaleH, f32 scaleV)
Definition J2DPane.h:176
virtual void setAnimation(J2DAnmVtxColor *anm)
Definition J2DPane.h:131
virtual void clearAnmTransform()
Definition J2DPane.cpp:798
virtual void move(f32 x, f32 y)
Definition J2DPane.cpp:397
virtual void setAnimation(J2DAnmColor *anm)
Definition J2DPane.h:126
void setMtx(Mtx m)
Definition J2DPane.h:168
void translate(f32 transX, f32 transY)
Definition J2DPane.h:170
f32 getRotOffsetY() const
Definition J2DPane.h:162
virtual void setAnimationVC(J2DAnmVtxColor *p_vtxColor)
Definition J2DPane.h:138
f32 getTranslateX() const
Definition J2DPane.h:154
void hide()
Definition J2DPane.h:192
u64 mUserInfoTag
Definition J2DPane.h:209
f32 getScaleY() const
Definition J2DPane.h:152
u16 field_0x4
Definition J2DPane.h:206
Mtx mGlobalMtx
Definition J2DPane.h:214
JGeometry::TBox2< f32 > mClipRect
Definition J2DPane.h:212
virtual void setAnimation(J2DAnmTexPattern *anm)
Definition J2DPane.h:127
JGeometry::TBox2< f32 > mGlobalBounds
Definition J2DPane.h:211
bool mConnected
Definition J2DPane.h:220
const Mtx * getMtx() const
Definition J2DPane.h:199
void setInfluencedAlpha(bool arg1, bool arg2)
Definition J2DPane.cpp:551
bool appendChild(J2DPane *child)
Definition J2DPane.cpp:214
void show()
Definition J2DPane.h:191
virtual void setVtxColorAnimation(J2DAnmVtxColor *vtx_color)
Definition J2DPane.cpp:827
void clip(const JGeometry::TBox2< f32 > &bounds)
Definition J2DPane.cpp:458
u8 mAlpha
Definition J2DPane.h:217
f32 mScaleX
Definition J2DPane.h:228
virtual void drawSelf(f32 arg1, f32 arg2, Mtx *mtx)
Definition J2DPane.h:113
void updateTransform(const J2DAnmTransform *transform)
Definition J2DPane.cpp:848
static JGeometry::TBox2< f32 > static_mBounds
Definition J2DPane.h:203
void rotate(f32 offsetX, f32 offsetY, J2DRotateAxis axis, f32 angle)
Definition J2DPane.cpp:439
virtual void setAnimationVF(J2DAnmVisibilityFull *p_visibility)
Definition J2DPane.h:134
void initiate()
Definition J2DPane.cpp:23
virtual ~J2DPane()
Definition J2DPane.cpp:207
u8 getAlpha() const
Definition J2DPane.h:148
Mtx mPositionMtx
Definition J2DPane.h:213
f32 mRotateOffsetX
Definition J2DPane.h:226
Definition J2DScreen.h:48
Definition JKRArchive.h:57
Definition JSURandomInputStream.h:10
Definition JSUList.h:188
JSUTree< T > * getFirstChild() const
Definition JSUList.h:203
JSUTree< T > * getEndChild() const
Definition JSUList.h:201
JSUTree< T > * getParent() const
Definition JSUList.h:215
Ordon Goat.
static e_rb_class * child[10]
Definition d_a_e_rb.cpp:505
_GXCullMode
Definition GXEnum.h:483
@ GX_CULL_BACK
Definition GXEnum.h:486
@ GX_CULL_NONE
Definition GXEnum.h:484
enum _GXCullMode GXCullMode
u32 mode
Definition GXTev.c:56
f32 Mtx[3][4]
Definition mtx.h:25
f32(* MtxP)[4]
Definition mtx.h:38
unsigned int size
Definition __os.h:106
double x double x
Definition e_atan2.c:58
int m
Definition e_atan2.c:62
double x double y
Definition e_atan2.c:58
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned long long int u64
Definition types.h:14
unsigned char u8
Definition types.h:8
a
Definition k_cos.c:89
Definition J2DPane.h:42
u32 mSize
Definition J2DPane.h:44
u32 mKind
Definition J2DPane.h:43
Definition JGeometry.h:533
TVec2< f32 > i
Definition JGeometry.h:529
f32 getHeight() const
Definition JGeometry.h:498
f32 getWidth() const
Definition JGeometry.h:497
T x
Definition JGeometry.h:483
T y
Definition JGeometry.h:484
Definition JUTFont.h:11
Image data header.
Definition JUTTexture.h:18
Definition mtx.h:13