Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DMaterial.h
Go to the documentation of this file.
1#ifndef J3DMATERIAL_H
2#define J3DMATERIAL_H
3
7#include <stdint.h>
8
9class J3DJoint;
10class J3DMaterialAnm;
11
17public:
20 static J3DTevBlock* createTevBlock(int);
21 static J3DIndBlock* createIndBlock(int);
25 static u32 calcSizeTevBlock(int);
26 static u32 calcSizeIndBlock(int);
27 static u32 calcSizePEBlock(u32, u32);
28 void initialize();
31 void setCurrentMtx();
32 void calcCurrentMtx();
33 void copy(J3DMaterial*);
36
37 virtual void calc(f32 const (*)[4]);
38 virtual void calcDiffTexMtx(f32 const (*)[4]);
39 virtual void makeDisplayList();
40 virtual void makeSharedDisplayList();
41 virtual void load();
42 virtual void loadSharedDL();
43 virtual void patch();
44 virtual void diff(u32);
45 virtual void reset();
46 virtual void change();
47
50 J3DMaterial* getNext() { return mNext; }
51 J3DShape* getShape() { return mShape; }
57 J3DJoint* getJoint() { return mJoint; }
59 return (uintptr_t)mMaterialAnm < 0xC0000000 ? mMaterialAnm : NULL;
60 }
63 u16 getTexNo(u32 idx) { return mTevBlock->getTexNo(idx); }
64 J3DGXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
65 J3DGXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
66 J3DFog* getFog() { return mPEBlock->getFog(); }
68 u16 getIndex() { return mIndex; }
69 BOOL isDrawModeOpaTexEdge() { return (mMaterialMode & 3) ? 1 : 0; }
71 void onInvalid() { mInvalid = 1; }
72 u32 getInvalid() { return mInvalid; }
80
81 void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
82 void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
83 void setAmbColor(u32 i, const J3DGXColor* i_color) { mColorBlock->setAmbColor(i, i_color); }
84 void setLight(u32 i, J3DLightObj* i_lightobj) { mColorBlock->setLight(i, i_lightobj); }
85 void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
86 void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
88 void setZCompLoc(u8 i_comploc) { mPEBlock->setZCompLoc(i_comploc); }
89 void setMaterialMode(u32 i_mode) { mMaterialMode = i_mode; }
90
91 void addShape(J3DShape* pShape) {
92 J3D_ASSERT_NULLPTR(618, pShape != NULL);
93 mShape = pShape;
94 }
95
96 void setNext(J3DMaterial* pMaterial) {
97 J3D_ASSERT_NULLPTR(623, pMaterial != NULL);
98 mNext = pMaterial;
99 }
100
101 void setJoint(J3DJoint* pJoint) {
102 J3D_ASSERT_NULLPTR(628, pJoint != NULL);
103 mJoint = pJoint;
104 }
105
106public:
107 /* 0x04 */ J3DMaterial* mNext;
108 /* 0x08 */ J3DShape* mShape;
109 /* 0x0C */ J3DJoint* mJoint;
110 /* 0x10 */ u32 mMaterialMode;
111 /* 0x14 */ u16 mIndex;
112 /* 0x18 */ u32 mInvalid;
113 /* 0x1C */ u32 field_0x1c;
114 /* 0x20 */ u32 mDiffFlag;
119 /* 0x34 */ J3DPEBlock* mPEBlock;
124};
125
131public:
133 void initialize();
134
135 virtual void makeDisplayList();
136 virtual void makeSharedDisplayList();
137 virtual void load();
138 virtual void loadSharedDL();
139 virtual void reset();
140 virtual void change();
141};
142
148public:
150 void initialize();
151
152 virtual void calc(f32 const (*)[4]);
153 virtual void makeDisplayList();
154 virtual void makeSharedDisplayList();
155 virtual void load();
156 virtual void loadSharedDL();
157 virtual void patch();
158 virtual void diff(u32);
159 virtual void reset();
160 virtual void change();
161};
162
163#endif /* J3DMATERIAL_H */
static Mtx mtx[10]
Definition c_lib.cpp:486
Definition J3DMatBlock.h:156
virtual void setLight(u32, J3DLightObj *)
Definition J3DMatBlock.h:182
virtual void setAmbColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:173
virtual void setCullMode(u8 const *)
Definition J3DMatBlock.h:184
virtual J3DGXColor * getMatColor(u32)
Definition J3DMatBlock.h:172
virtual J3DColorChan * getColorChan(u32)
Definition J3DMatBlock.h:181
Definition J3DMatBlock.h:102
Definition J3DShape.h:25
Definition J3DPacket.h:107
Definition J3DMatBlock.h:1634
Definition J3DJoint.h:66
Definition J3DTevs.h:251
Definition J3DMaterial.h:147
virtual void reset()
Definition J3DMaterial.cpp:419
virtual void load()
Definition J3DMaterial.cpp:400
virtual void calc(f32 const (*)[4])
Definition J3DMaterial.cpp:417
J3DLockedMaterial()
Definition J3DMaterial.h:149
virtual void change()
Definition J3DMaterial.cpp:421
virtual void loadSharedDL()
Definition J3DMaterial.cpp:407
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:398
void initialize()
Definition J3DMaterial.cpp:392
virtual void patch()
Definition J3DMaterial.cpp:413
virtual void makeDisplayList()
Definition J3DMaterial.cpp:396
Definition J3DMaterialAnm.h:193
Definition J3DMaterial.h:16
u8 getTevStageNum() const
Definition J3DMaterial.h:74
J3DZMode * getZMode()
Definition J3DMaterial.h:76
static u32 calcSizeColorBlock(u32)
Definition J3DMaterial.cpp:95
void setCurrentMtx()
Definition J3DMaterial.cpp:279
virtual void change()
Definition J3DMaterial.cpp:328
virtual void makeDisplayList()
Definition J3DMaterial.cpp:207
J3DMaterialAnm * getMaterialAnm()
Definition J3DMaterial.h:58
virtual void reset()
Definition J3DMaterial.cpp:318
J3DDisplayListObj * mSharedDLObj
Definition J3DMaterial.h:123
void calcCurrentMtx()
Definition J3DMaterial.cpp:283
J3DPEBlock * getPEBlock()
Definition J3DMaterial.h:70
static J3DIndBlock * createIndBlock(int)
Definition J3DMaterial.cpp:55
s32 newSingleSharedDisplayList(u32)
Definition J3DMaterial.cpp:351
u32 field_0x1c
Definition J3DMaterial.h:113
J3DColorBlock * mColorBlock
Definition J3DMaterial.h:115
static J3DColorBlock * createColorBlock(u32)
Definition J3DMaterial.cpp:6
void setMaterialMode(u32 i_mode)
Definition J3DMaterial.h:89
J3DMaterial * getNext()
Definition J3DMaterial.h:50
J3DJoint * mJoint
Definition J3DMaterial.h:109
J3DTexGenBlock * getTexGenBlock()
Definition J3DMaterial.h:54
void setMaterialAnm(J3DMaterialAnm *i_anm)
Definition J3DMaterial.h:85
J3DMaterial * mNext
Definition J3DMaterial.h:107
BOOL isDrawModeOpaTexEdge()
Definition J3DMaterial.h:69
J3DShape * getShape()
Definition J3DMaterial.h:51
J3DDisplayListObj * getSharedDisplayListObj()
Definition J3DMaterial.h:55
void setTevColor(u32 i, const J3DGXColorS10 *i_color)
Definition J3DMaterial.h:81
virtual void calcDiffTexMtx(f32 const (*)[4])
Definition J3DMaterial.cpp:271
static u32 calcSizeTevBlock(int)
Definition J3DMaterial.cpp:126
u32 mDiffFlag
Definition J3DMaterial.h:114
void setAmbColor(u32 i, const J3DGXColor *i_color)
Definition J3DMaterial.h:83
J3DMaterial * mpOrigMaterial
Definition J3DMaterial.h:120
J3DTexCoord * getTexCoord(u32 idx)
Definition J3DMaterial.h:75
static u32 calcSizePEBlock(u32, u32)
Definition J3DMaterial.cpp:152
void setCullMode(u8 i_mode)
Definition J3DMaterial.h:86
J3DTevBlock * getTevBlock()
Definition J3DMaterial.h:52
void setZCompLoc(u8 i_comploc)
Definition J3DMaterial.h:88
J3DIndBlock * getIndBlock()
Definition J3DMaterial.h:56
J3DColorChan * getColorChan(u32 idx)
Definition J3DMaterial.h:78
J3DMaterial()
Definition J3DMaterial.h:48
u32 getTexGenNum() const
Definition J3DMaterial.h:73
void setNext(J3DMaterial *pMaterial)
Definition J3DMaterial.h:96
void initialize()
Definition J3DMaterial.cpp:171
u16 mIndex
Definition J3DMaterial.h:111
J3DTevBlock * mTevBlock
Definition J3DMaterial.h:117
u32 getInvalid()
Definition J3DMaterial.h:72
u16 getTexNo(u32 idx)
Definition J3DMaterial.h:63
virtual void calc(f32 const (*)[4])
Definition J3DMaterial.cpp:260
virtual void load()
Definition J3DMaterial.cpp:218
static J3DPEBlock * createPEBlock(u32, u32)
Definition J3DMaterial.cpp:67
J3DBlend * getBlend()
Definition J3DMaterial.h:77
void onInvalid()
Definition J3DMaterial.h:71
u32 countDLSize()
Definition J3DMaterial.cpp:189
void copy(J3DMaterial *)
Definition J3DMaterial.cpp:309
s32 newSharedDisplayList(u32)
Definition J3DMaterial.cpp:335
void makeDisplayList_private(J3DDisplayListObj *)
Definition J3DMaterial.cpp:194
void setTevKColor(u32 i, const J3DGXColor *i_color)
Definition J3DMaterial.h:82
J3DIndBlock * mIndBlock
Definition J3DMaterial.h:118
J3DTexGenBlock * mTexGenBlock
Definition J3DMaterial.h:116
J3DJoint * getJoint()
Definition J3DMaterial.h:57
J3DGXColorS10 * getTevColor(u32 param_0)
Definition J3DMaterial.h:65
void setJoint(J3DJoint *pJoint)
Definition J3DMaterial.h:101
J3DFog * getFog()
Definition J3DMaterial.h:66
virtual void loadSharedDL()
Definition J3DMaterial.cpp:225
J3DCurrentMtx mCurrentMtx
Definition J3DMaterial.h:122
u32 mInvalid
Definition J3DMaterial.h:112
void setLight(u32 i, J3DLightObj *i_lightobj)
Definition J3DMaterial.h:84
static u32 calcSizeTexGenBlock(u32)
Definition J3DMaterial.cpp:112
J3DMaterialAnm * mMaterialAnm
Definition J3DMaterial.h:121
u32 mMaterialMode
Definition J3DMaterial.h:110
u32 getMaterialMode()
Definition J3DMaterial.h:61
void setTexMtx(u32 idx, J3DTexMtx *mtx)
Definition J3DMaterial.h:87
J3DPEBlock * mPEBlock
Definition J3DMaterial.h:119
J3DShape * mShape
Definition J3DMaterial.h:108
static J3DTevBlock * createTevBlock(int)
Definition J3DMaterial.cpp:39
J3DNBTScale * getNBTScale()
Definition J3DMaterial.h:62
J3DGXColor * getMatColor(u32 i)
Definition J3DMaterial.h:79
J3DColorBlock * getColorBlock()
Definition J3DMaterial.h:53
J3DTexMtx * getTexMtx(u32 idx)
Definition J3DMaterial.h:67
J3DGXColor * getTevKColor(u32 param_0)
Definition J3DMaterial.h:64
virtual void patch()
Definition J3DMaterial.cpp:233
static J3DTexGenBlock * createTexGenBlock(u32)
Definition J3DMaterial.cpp:24
void addShape(J3DShape *pShape)
Definition J3DMaterial.h:91
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:214
u16 getIndex()
Definition J3DMaterial.h:68
~J3DMaterial()
Definition J3DMaterial.h:49
static u32 calcSizeIndBlock(int)
Definition J3DMaterial.cpp:141
Definition J3DMatBlock.h:1737
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:1755
virtual J3DFog * getFog()
Definition J3DMatBlock.h:1749
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:1758
virtual void setZCompLoc(u8 const *)
Definition J3DMatBlock.h:1759
Definition J3DMaterial.h:130
virtual void load()
Definition J3DMaterial.cpp:375
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:373
virtual void reset()
Definition J3DMaterial.cpp:388
virtual void change()
Definition J3DMaterial.cpp:390
virtual void loadSharedDL()
Definition J3DMaterial.cpp:382
virtual void makeDisplayList()
Definition J3DMaterial.cpp:371
J3DPatchedMaterial()
Definition J3DMaterial.h:132
void initialize()
Definition J3DMaterial.cpp:367
Definition J3DShape.h:118
Definition J3DMatBlock.h:574
virtual void setTevColor(u32, J3DGXColorS10 const *)
Definition J3DMatBlock.h:598
virtual J3DGXColor * getTevKColor(u32)
Definition J3DMatBlock.h:603
virtual J3DGXColorS10 * getTevColor(u32)
Definition J3DMatBlock.h:600
virtual u16 getTexNo(u32) const
Definition J3DMatBlock.h:594
virtual void setTevKColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:601
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:612
Definition J3DMatBlock.h:416
virtual J3DTexMtx * getTexMtx(u32)
Definition J3DMatBlock.h:436
virtual void setTexMtx(u32, J3DTexMtx *)
Definition J3DMatBlock.h:435
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:439
virtual u32 getTexGenNum() const
Definition J3DMatBlock.h:432
virtual J3DTexCoord * getTexCoord(u32)
Definition J3DMatBlock.h:434
Definition J3DTexture.h:51
int diff
Definition e_fmod.c:41
int i
Definition e_log.c:92
int BOOL
Definition types.h:33
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
Definition J3DMatBlock.h:1465
Definition J3DMatBlock.h:1493
Definition J3DMatBlock.h:14
Definition J3DMatBlock.h:45
Definition J3DTevs.h:272
Definition J3DTexture.h:83
Definition J3DMatBlock.h:1421