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 if ((uintptr_t)mMaterialAnm < 0xC0000000) {
60 return mMaterialAnm;
61 } else {
62 return NULL;
63 }
64 }
66 u16 getTexNo(u32 idx) { return mTevBlock->getTexNo(idx); }
67 J3DGXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
68 J3DGXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
69 J3DFog* getFog() { return mPEBlock->getFog(); }
71 u16 getIndex() { return mIndex; }
72 bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
74 void onInvalid() { mInvalid = 1; }
82
83 void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
84 void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
85 void setAmbColor(u32 i, const J3DGXColor* i_color) { mColorBlock->setAmbColor(i, i_color); }
86 void setLight(u32 i, J3DLightObj* i_lightobj) { mColorBlock->setLight(i, i_lightobj); }
87 void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
88 void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
90 void setZCompLoc(u8 i_comploc) { mPEBlock->setZCompLoc(i_comploc); }
91 void setMaterialMode(u32 i_mode) { mMaterialMode = i_mode; }
92
93 void addShape(J3DShape* pShape) {
94 J3D_ASSERT_NULLPTR(618, pShape != NULL);
95 mShape = pShape;
96 }
97
98 void setNext(J3DMaterial* pMaterial) {
99 J3D_ASSERT_NULLPTR(623, pMaterial != NULL);
100 mNext = pMaterial;
101 }
102
103 void setJoint(J3DJoint* pJoint) {
104 J3D_ASSERT_NULLPTR(628, pJoint != NULL);
105 mJoint = pJoint;
106 }
107
108public:
109 /* 0x04 */ J3DMaterial* mNext;
110 /* 0x08 */ J3DShape* mShape;
111 /* 0x0C */ J3DJoint* mJoint;
112 /* 0x10 */ u32 mMaterialMode;
113 /* 0x14 */ u16 mIndex;
114 /* 0x18 */ u32 mInvalid;
115 /* 0x1C */ u32 field_0x1c;
116 /* 0x20 */ u32 mDiffFlag;
121 /* 0x34 */ J3DPEBlock* mPEBlock;
126};
127
133public:
135 void initialize();
136
137 virtual void makeDisplayList();
138 virtual void makeSharedDisplayList();
139 virtual void load();
140 virtual void loadSharedDL();
141 virtual void reset();
142 virtual void change();
143};
144
150public:
152 void initialize();
153
154 virtual void calc(f32 const (*)[4]);
155 virtual void makeDisplayList();
156 virtual void makeSharedDisplayList();
157 virtual void load();
158 virtual void loadSharedDL();
159 virtual void patch();
160 virtual void diff(u32);
161 virtual void reset();
162 virtual void change();
163};
164
165#endif /* J3DMATERIAL_H */
static Mtx mtx[10]
Definition c_lib.cpp:486
Definition J3DMatBlock.h:195
virtual void setLight(u32, J3DLightObj *)
Definition J3DMatBlock.h:221
virtual void setAmbColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:212
virtual void setCullMode(u8 const *)
Definition J3DMatBlock.h:223
virtual J3DGXColor * getMatColor(u32)
Definition J3DMatBlock.h:211
virtual J3DColorChan * getColorChan(u32)
Definition J3DMatBlock.h:220
Definition J3DShape.h:25
Definition J3DPacket.h:104
Definition J3DMatBlock.h:1756
Definition J3DJoint.h:63
Definition J3DStruct.h:29
Definition J3DMaterial.h:149
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:151
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 diff(u32)
Definition J3DMaterial.cpp:415
virtual void makeDisplayList()
Definition J3DMaterial.cpp:396
Definition J3DMaterialAnm.h:190
Definition J3DMaterial.h:16
bool isDrawModeOpaTexEdge()
Definition J3DMaterial.h:72
u8 getTevStageNum() const
Definition J3DMaterial.h:76
J3DZMode * getZMode()
Definition J3DMaterial.h:78
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:125
void calcCurrentMtx()
Definition J3DMaterial.cpp:283
J3DPEBlock * getPEBlock()
Definition J3DMaterial.h:73
static J3DIndBlock * createIndBlock(int)
Definition J3DMaterial.cpp:55
s32 newSingleSharedDisplayList(u32)
Definition J3DMaterial.cpp:351
u32 field_0x1c
Definition J3DMaterial.h:115
J3DColorBlock * mColorBlock
Definition J3DMaterial.h:117
static J3DColorBlock * createColorBlock(u32)
Definition J3DMaterial.cpp:6
void setMaterialMode(u32 i_mode)
Definition J3DMaterial.h:91
J3DMaterial * getNext()
Definition J3DMaterial.h:50
J3DJoint * mJoint
Definition J3DMaterial.h:111
J3DTexGenBlock * getTexGenBlock()
Definition J3DMaterial.h:54
void setMaterialAnm(J3DMaterialAnm *i_anm)
Definition J3DMaterial.h:87
J3DMaterial * mNext
Definition J3DMaterial.h:109
J3DShape * getShape()
Definition J3DMaterial.h:51
J3DDisplayListObj * getSharedDisplayListObj()
Definition J3DMaterial.h:55
void setTevColor(u32 i, const J3DGXColorS10 *i_color)
Definition J3DMaterial.h:83
virtual void calcDiffTexMtx(f32 const (*)[4])
Definition J3DMaterial.cpp:271
static u32 calcSizeTevBlock(int)
Definition J3DMaterial.cpp:126
u32 mDiffFlag
Definition J3DMaterial.h:116
void setAmbColor(u32 i, const J3DGXColor *i_color)
Definition J3DMaterial.h:85
J3DMaterial * mpOrigMaterial
Definition J3DMaterial.h:122
J3DTexCoord * getTexCoord(u32 idx)
Definition J3DMaterial.h:77
static u32 calcSizePEBlock(u32, u32)
Definition J3DMaterial.cpp:152
void setCullMode(u8 i_mode)
Definition J3DMaterial.h:88
J3DTevBlock * getTevBlock()
Definition J3DMaterial.h:52
void setZCompLoc(u8 i_comploc)
Definition J3DMaterial.h:90
J3DIndBlock * getIndBlock()
Definition J3DMaterial.h:56
J3DColorChan * getColorChan(u32 idx)
Definition J3DMaterial.h:80
J3DMaterial()
Definition J3DMaterial.h:48
u32 getTexGenNum() const
Definition J3DMaterial.h:75
void setNext(J3DMaterial *pMaterial)
Definition J3DMaterial.h:98
void initialize()
Definition J3DMaterial.cpp:171
u16 mIndex
Definition J3DMaterial.h:113
J3DTevBlock * mTevBlock
Definition J3DMaterial.h:119
u16 getTexNo(u32 idx)
Definition J3DMaterial.h:66
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:79
void onInvalid()
Definition J3DMaterial.h:74
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:84
J3DIndBlock * mIndBlock
Definition J3DMaterial.h:120
J3DTexGenBlock * mTexGenBlock
Definition J3DMaterial.h:118
J3DJoint * getJoint()
Definition J3DMaterial.h:57
J3DGXColorS10 * getTevColor(u32 param_0)
Definition J3DMaterial.h:68
void setJoint(J3DJoint *pJoint)
Definition J3DMaterial.h:103
J3DFog * getFog()
Definition J3DMaterial.h:69
virtual void loadSharedDL()
Definition J3DMaterial.cpp:225
J3DCurrentMtx mCurrentMtx
Definition J3DMaterial.h:124
u32 mInvalid
Definition J3DMaterial.h:114
void setLight(u32 i, J3DLightObj *i_lightobj)
Definition J3DMaterial.h:86
static u32 calcSizeTexGenBlock(u32)
Definition J3DMaterial.cpp:112
J3DMaterialAnm * mMaterialAnm
Definition J3DMaterial.h:123
u32 mMaterialMode
Definition J3DMaterial.h:112
void setTexMtx(u32 idx, J3DTexMtx *mtx)
Definition J3DMaterial.h:89
J3DPEBlock * mPEBlock
Definition J3DMaterial.h:121
J3DShape * mShape
Definition J3DMaterial.h:110
static J3DTevBlock * createTevBlock(int)
Definition J3DMaterial.cpp:39
J3DNBTScale * getNBTScale()
Definition J3DMaterial.h:65
J3DGXColor * getMatColor(u32 i)
Definition J3DMaterial.h:81
J3DColorBlock * getColorBlock()
Definition J3DMaterial.h:53
J3DTexMtx * getTexMtx(u32 idx)
Definition J3DMaterial.h:70
J3DGXColor * getTevKColor(u32 param_0)
Definition J3DMaterial.h:67
virtual void patch()
Definition J3DMaterial.cpp:233
virtual void diff(u32)
Definition J3DMaterial.cpp:242
static J3DTexGenBlock * createTexGenBlock(u32)
Definition J3DMaterial.cpp:24
void addShape(J3DShape *pShape)
Definition J3DMaterial.h:93
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:214
u16 getIndex()
Definition J3DMaterial.h:71
~J3DMaterial()
Definition J3DMaterial.h:49
static u32 calcSizeIndBlock(int)
Definition J3DMaterial.cpp:141
Definition J3DMatBlock.h:1859
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:1877
virtual J3DFog * getFog()
Definition J3DMatBlock.h:1871
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:1880
virtual void setZCompLoc(u8 const *)
Definition J3DMatBlock.h:1881
Definition J3DMaterial.h:132
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:134
void initialize()
Definition J3DMaterial.cpp:367
Definition J3DShape.h:118
Definition J3DMatBlock.h:602
virtual void setTevColor(u32, J3DGXColorS10 const *)
Definition J3DMatBlock.h:626
virtual J3DGXColor * getTevKColor(u32)
Definition J3DMatBlock.h:631
virtual J3DGXColorS10 * getTevColor(u32)
Definition J3DMatBlock.h:628
virtual u16 getTexNo(u32) const
Definition J3DMatBlock.h:622
virtual void setTevKColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:629
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:640
Definition J3DMatBlock.h:445
virtual J3DTexMtx * getTexMtx(u32)
Definition J3DMatBlock.h:465
virtual void setTexMtx(u32, J3DTexMtx *)
Definition J3DMatBlock.h:464
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:468
virtual u32 getTexGenNum() const
Definition J3DMatBlock.h:461
virtual J3DTexCoord * getTexCoord(u32)
Definition J3DMatBlock.h:463
Definition J3DTexture.h:48
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
int i
Definition e_pow.c:165
Definition J3DMatBlock.h:1522
Definition J3DMatBlock.h:142
Definition J3DMatBlock.h:1552
Definition J3DMatBlock.h:14
Definition J3DMatBlock.h:45
Definition J3DMatBlock.h:72
Definition J3DTexture.h:96
Definition J3DMatBlock.h:1462