Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DMatBlock.h
Go to the documentation of this file.
1#ifndef J3DMATBLOCK_H
2#define J3DMATBLOCK_H
3
7#include "JSystem/J3DAssert.h"
8#include "global.h"
9
14struct J3DGXColorS10 : public GXColorS10 {
16
17#if PLATFORM_GCN && __MWERKS__
18 J3DGXColorS10(J3DGXColorS10& other) { __memcpy(this, &other, sizeof(J3DGXColorS10)); }
19#elif DEBUG
21 GXColorS10 sp08 = other;
22 J3DGXColorS10* r31 = this;
23 __memcpy(r31, &sp08, sizeof(GXColorS10));
24 J3DGXColorS10* r30 = r31;
25 }
26#else
27 J3DGXColorS10(const J3DGXColorS10& other) { __memcpy(this, &other, sizeof(J3DGXColorS10)); }
28#endif
29
30 J3DGXColorS10(const GXColorS10& color) : GXColorS10(color) {}
31
33 // Fakematch? Instruction order is wrong with __memcpy or GXColorS10::operator=
34 // Might be real as this matches on debug as well.
35 ((u32*)this)[0] = ((u32*)&color)[0];
36 ((u32*)this)[1] = ((u32*)&color)[1];
37 return *this;
38 }
39};
40
45struct J3DGXColor : public GXColor {
47
48#if PLATFORM_GCN && __MWERKS__
49 J3DGXColor(J3DGXColor& other) { __memcpy(this, &other, sizeof(J3DGXColor)); }
50#else
51 J3DGXColor(const J3DGXColor& other) { __memcpy(this, &other, sizeof(J3DGXColor)); }
52#endif
53
54 J3DGXColor(const GXColor color) : GXColor(color) {}
55
57 *(GXColor*)this = color;
58 return *this;
59 }
61 GXColor::operator=(other);
62 return *this;
63 }
64};
65
66inline u16 calcColorChanID(u16 enable, u8 matSrc, u8 lightMask, u8 diffuseFn, u8 attnFn, u8 ambSrc) {
67 u32 reg = 0;
68 reg = (reg & ~0x0002) | enable << 1;
69 reg = (reg & ~0x0001) | matSrc;
70 reg = (reg & ~0x0040) | ambSrc << 6;
71 reg = (reg & ~0x0004) | bool(lightMask & 0x01) << 2;
72 reg = (reg & ~0x0008) | bool(lightMask & 0x02) << 3;
73 reg = (reg & ~0x0010) | bool(lightMask & 0x04) << 4;
74 reg = (reg & ~0x0020) | bool(lightMask & 0x08) << 5;
75 reg = (reg & ~0x0800) | bool(lightMask & 0x10) << 11;
76 reg = (reg & ~0x1000) | bool(lightMask & 0x20) << 12;
77 reg = (reg & ~0x2000) | bool(lightMask & 0x40) << 13;
78 reg = (reg & ~0x4000) | bool(lightMask & 0x80) << 14;
79 reg = (reg & ~0x0180) | (attnFn == GX_AF_SPEC ? 0 : diffuseFn) << 7;
80 reg = (reg & ~0x0200) | (attnFn != GX_AF_NONE) << 9;
81 reg = (reg & ~0x0400) | (attnFn != GX_AF_SPEC) << 10;
82 return reg;
83}
84
85static inline u32 setChanCtrlMacro(u8 enable, GXColorSrc ambSrc, GXColorSrc matSrc, u32 lightMask,
86 GXDiffuseFn diffuseFn, GXAttnFn attnFn) {
87 return matSrc << 0 | enable << 1 | (lightMask & 0x0F) << 2 | ambSrc << 6 |
88 ((attnFn == GX_AF_SPEC) ? GX_DF_NONE : diffuseFn) << 7 | (attnFn != GX_AF_NONE) << 9 |
89 (attnFn != GX_AF_SPEC) << 10 | (lightMask >> 4 & 0x0F) << 11;
90}
91
92#ifdef DECOMPCTX
93// Hack to mitigate fake mismatches when building from decompctx output -
94// see comment in sqrtf in math.h
95static u8 AttnArr[] = {2, 0, 2, 1};
96#endif
97
103public:
108 u32 ambSrc = info.mAmbSrc == 0xFF ? 0 : info.mAmbSrc;
110 info.mDiffuseFn, info.mAttnFn, ambSrc);
111 }
113 // !@bug: It compares info.mAmbSrc (an 8 bit integer) with 0xFFFF instead of 0xFF.
114 // This inline is only called by the default constructor J3DColorChan().
115 // The J3DColorChan(const J3DColorChanInfo&) constructor does not call this inline, and instead duplicates the
116 // same logic but without the bug.
117 // See J3DMaterialFactory::newColorChan - both the bugged and correct behavior are present there, as it calls
118 // both constructors.
119 u32 ambSrc = info.mAmbSrc == 0xFFFF ? 0 : info.mAmbSrc;
121 info.mDiffuseFn, info.mAttnFn, ambSrc);
122 }
123 u8 getLightMask() const { return ((mColorChanID >> 2) & 0xf) | ((mColorChanID >> 11) & 0xf) << 4; }
124 void setLightMask(u8 param_1) {
125 mColorChanID = (mColorChanID & ~0x3c) | ((param_1 & 0xf) << 2);
126 mColorChanID = (mColorChanID & ~0x7800) | ((param_1 & 0xf0) << 7);
127 }
128
129 u8 getEnable() const { return (u32)(mColorChanID & 0x2) >> 1; }
130 u8 getAmbSrc() const { return (GXColorSrc)((u32)(mColorChanID & (1 << 6)) >> 6); }
131 u8 getMatSrc() const { return (GXColorSrc)(mColorChanID & 1); }
132 u8 getDiffuseFn() const { return ((u32)(mColorChanID & (3 << 7)) >> 7); }
133 u8 getAttnFn() const {
134#ifndef DECOMPCTX
135 u8 AttnArr[] = {2,0,2,1};
136#endif
137 return AttnArr[(u32)(mColorChanID & (3 << 9)) >> 9];
138 }
141 return *this;
142 }
143
148
149 /* 0x0 */ u16 mColorChanID;
150};
151
157public:
158 virtual void load() {}
159 virtual void reset(J3DColorBlock*) {}
160 virtual void patch() {}
161 virtual void patchMatColor() {}
162 virtual void patchLight() {}
163 virtual void diff(u32) {}
164 virtual void diffAmbColor() {}
165 virtual void diffMatColor() {}
166 virtual void diffColorChan() {}
167 virtual void diffLightObj(u32) {}
168 virtual s32 countDLSize() { return 0; }
169 virtual u32 getType() = 0;
170 virtual void setMatColor(u32, J3DGXColor const*) {}
171 virtual void setMatColor(u32, J3DGXColor) {}
172 virtual J3DGXColor* getMatColor(u32) { return NULL; }
173 virtual void setAmbColor(u32, J3DGXColor const*) {}
174 virtual void setAmbColor(u32, J3DGXColor) {}
175 virtual J3DGXColor* getAmbColor(u32) { return NULL; }
176 virtual void setColorChanNum(u8) {}
177 virtual void setColorChanNum(u8 const*) {}
178 virtual u8 getColorChanNum() const { return 0; }
179 virtual void setColorChan(u32, J3DColorChan const&) {}
180 virtual void setColorChan(u32, J3DColorChan const*) {}
181 virtual J3DColorChan* getColorChan(u32) { return NULL; }
182 virtual void setLight(u32, J3DLightObj*) {}
183 virtual J3DLightObj* getLight(u32) { return NULL; }
184 virtual void setCullMode(u8 const*) {}
185 virtual void setCullMode(u8) {}
186 virtual u8 getCullMode() const { return 2; }
187 virtual u32 getMatColorOffset() const { return 0; }
188 virtual u32 getColorChanOffset() const { return 0; }
189 virtual void setMatColorOffset(u32) {}
190 virtual void setColorChanOffset(u32) {}
191 virtual ~J3DColorBlock() {}
192};
193
199public:
203 void initialize();
204
205 virtual s32 countDLSize();
206 virtual void load();
207 virtual void reset(J3DColorBlock*);
208 virtual void patch();
209 virtual void patchMatColor();
210 virtual void patchLight();
211 virtual void diff(u32);
212 virtual void diffMatColor();
213 virtual void diffColorChan();
214 virtual u32 getType() { return 'CLOF'; }
215 virtual void setMatColor(u32 idx, J3DGXColor const* color) {
216 J3D_ASSERT_RANGE(0x121, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
217 J3D_ASSERT_NULLPTR(0x122, color != NULL);
218 mMatColor[idx] = *color;
219 }
220 virtual void setMatColor(u32 idx, J3DGXColor color) {
221 J3D_ASSERT_RANGE(0x128, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
222 mMatColor[idx] = color;
223 }
224 virtual J3DGXColor* getMatColor(u32 idx) {
225 J3D_ASSERT_RANGE(0x12d, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
226 return &mMatColor[idx];
227 }
228 virtual void setColorChanNum(u8 num) { mColorChanNum = num; }
229 virtual void setColorChanNum(u8 const* num) {
230 J3D_ASSERT_NULLPTR(0x137, num != NULL);
231 mColorChanNum = *num;
232 }
233 virtual u8 getColorChanNum() const { return mColorChanNum; }
234 virtual void setColorChan(u32 idx, J3DColorChan const& chan) {
235 J3D_ASSERT_RANGE(0x142, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
236 mColorChan[idx] = chan;
237 }
238 virtual void setColorChan(u32 idx, J3DColorChan const* chan) {
239 J3D_ASSERT_RANGE(0x148, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
240 J3D_ASSERT_NULLPTR(0x149, chan != NULL);
241 mColorChan[idx] = *chan;
242 }
244 J3D_ASSERT_RANGE(0x14e, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
245 return &mColorChan[idx];
246 }
247 virtual void setCullMode(u8 const* mode) {
248 J3D_ASSERT_NULLPTR(0x154, mode != NULL);
249 mCullMode = *mode;
250 }
251 virtual void setCullMode(u8 mode) { mCullMode = mode; }
252 virtual u8 getCullMode() const { return mCullMode; }
253 virtual u32 getMatColorOffset() const { return mMatColorOffset; }
254 virtual u32 getColorChanOffset() const { return mColorChanOffset; }
258
259 /* 0x04 */ J3DGXColor mMatColor[2];
260 /* 0x0C */ u8 mColorChanNum;
262 /* 0x16 */ u8 mCullMode;
265}; // Size: 0x20
266
272public:
276 void initialize();
277
278 virtual void load();
279 virtual void reset(J3DColorBlock*);
280 virtual s32 countDLSize();
281 virtual u32 getType() { return 'CLAB'; }
282 virtual void setAmbColor(u32 idx, J3DGXColor const* color) {
283 J3D_ASSERT_RANGE(0x1a3, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
284 J3D_ASSERT_NULLPTR(0x1a4, color != NULL);
285 mAmbColor[idx] = *color;
286 }
287 virtual void setAmbColor(u32 idx, J3DGXColor color) {
288 J3D_ASSERT_RANGE(0x1aa, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
289 mAmbColor[idx] = color;
290 }
291 virtual J3DGXColor* getAmbColor(u32 idx) {
292 J3D_ASSERT_RANGE(0x1af, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
293 return &mAmbColor[idx];
294 }
296
297 /* 0x20 */ J3DGXColor mAmbColor[2];
298}; // Size: 0x28
299
305public:
309 void initialize();
310
311 virtual void load();
312 virtual void reset(J3DColorBlock*);
313 virtual void patch();
314 virtual void patchMatColor();
315 virtual void patchLight();
316 virtual void diff(u32);
317 virtual void diffAmbColor();
318 virtual void diffMatColor();
319 virtual void diffColorChan();
320 virtual void diffLightObj(u32);
321 virtual s32 countDLSize();
322 virtual u32 getType() { return 'CLON'; }
323 virtual void setMatColor(u32 idx, J3DGXColor const* color) {
324 J3D_ASSERT_RANGE(0x1e9, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
325 J3D_ASSERT_NULLPTR(0x1ea, color != NULL);
326 mMatColor[idx] = *color;
327 }
328 virtual void setMatColor(u32 idx, J3DGXColor color) {
329 J3D_ASSERT_RANGE(0x1f0, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
330 mMatColor[idx] = color;
331 }
332 virtual J3DGXColor* getMatColor(u32 idx) {
333 J3D_ASSERT_RANGE(0x1f5, idx >= 0 && idx < ARRAY_SIZEU(mMatColor));
334 return &mMatColor[idx];
335 }
336 virtual void setAmbColor(u32 idx, J3DGXColor const* color) {
337 J3D_ASSERT_RANGE(0x1fc, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
338 J3D_ASSERT_NULLPTR(0x1fd, color != NULL);
339 mAmbColor[idx] = *color;
340 }
341 virtual void setAmbColor(u32 idx, J3DGXColor color) {
342 J3D_ASSERT_RANGE(0x203, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
343 mAmbColor[idx] = color;
344 }
345 virtual J3DGXColor* getAmbColor(u32 idx) {
346 J3D_ASSERT_RANGE(0x208, idx >= 0 && idx < ARRAY_SIZEU(mAmbColor));
347 return &mAmbColor[idx];
348 }
349 virtual void setColorChanNum(u8 num) { mColorChanNum = num; }
350 virtual void setColorChanNum(u8 const* num) {
351 J3D_ASSERT_NULLPTR(0x212, num != NULL);
352 mColorChanNum = *num;
353 }
354 virtual u8 getColorChanNum() const { return mColorChanNum; }
355 virtual void setColorChan(u32 idx, J3DColorChan const& chan) {
356 J3D_ASSERT_RANGE(0x21d, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
357 mColorChan[idx] = chan;
358 }
359 virtual void setColorChan(u32 idx, J3DColorChan const* chan) {
360 J3D_ASSERT_RANGE(0x223, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
361 J3D_ASSERT_NULLPTR(0x224, chan != NULL);
362 mColorChan[idx] = *chan;
363 }
365 J3D_ASSERT_RANGE(0x229, idx >= 0 && idx < ARRAY_SIZEU(mColorChan));
366 return &mColorChan[idx];
367 }
368 virtual void setLight(u32 idx, J3DLightObj* light) {
369 J3D_ASSERT_RANGE(0x230, idx >= 0 && idx < ARRAY_SIZEU(mLight));
370 mLight[idx] = light;
371 }
372 virtual J3DLightObj* getLight(u32 idx) {
373 J3D_ASSERT_RANGE(0x235, idx >= 0 && idx < ARRAY_SIZEU(mLight));
374 return mLight[idx];
375 }
376 virtual void setCullMode(u8 const* mode) {
377 J3D_ASSERT_NULLPTR(0x23b, mode != NULL);
378 mCullMode = *mode;
379 }
380 virtual void setCullMode(u8 mode) {
381 mCullMode = mode;
382 }
383 virtual u8 getCullMode() const {
384 return mCullMode;
385 }
386 virtual u32 getMatColorOffset() const { return mMatColorOffset; }
387 virtual u32 getColorChanOffset() const { return mColorChanOffset; }
391
392 /* 0x04 */ J3DGXColor mMatColor[2];
393 /* 0x0C */ J3DGXColor mAmbColor[2];
394 /* 0x14 */ u8 mColorChanNum;
396 /* 0x20 */ J3DLightObj* mLight[8];
397 /* 0x40 */ u8 mCullMode;
400}; // Size: 0x4C
401
407public:
408 virtual u32 getType() { return 'CLNL'; }
410};
411
417public:
418 virtual void reset(J3DTexGenBlock*) {}
419 virtual void calc(f32 const (*)[4]) = 0;
420 virtual void calcWithoutViewMtx(f32 const (*)[4]) = 0;
421 virtual void calcPostTexMtx(f32 const (*)[4]) = 0;
422 virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4]) = 0;
423 virtual void load() = 0;
424 virtual void patch() = 0;
425 virtual void diff(u32) = 0;
426 virtual void diffTexMtx() = 0;
427 virtual void diffTexGen() = 0;
428 virtual s32 countDLSize() { return 0; }
429 virtual u32 getType() = 0;
430 virtual void setTexGenNum(u32 const*) {}
431 virtual void setTexGenNum(u32) {}
432 virtual u32 getTexGenNum() const { return 0; }
433 virtual void setTexCoord(u32, J3DTexCoord const*) {}
434 virtual J3DTexCoord* getTexCoord(u32) { return NULL; }
435 virtual void setTexMtx(u32, J3DTexMtx*) {}
436 virtual J3DTexMtx* getTexMtx(u32) { return NULL; }
437 virtual void setNBTScale(J3DNBTScale const* scale) {}
438 virtual void setNBTScale(J3DNBTScale) {}
439 virtual J3DNBTScale* getNBTScale() { return NULL; }
440 virtual u32 getTexMtxOffset() const { return 0; }
441 virtual void setTexMtxOffset(u32) {}
442 virtual ~J3DTexGenBlock() {}
443};
444
450public:
454 void initialize();
455
456 virtual void reset(J3DTexGenBlock*);
457 virtual void calc(f32 const (*)[4]);
458 virtual void calcWithoutViewMtx(f32 const (*)[4]);
459 virtual void calcPostTexMtx(f32 const (*)[4]);
460 virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4]);
461 virtual void load() {}
462 virtual void patch();
463 virtual void diff(u32);
464 virtual void diffTexMtx();
465 virtual void diffTexGen();
466 virtual s32 countDLSize();
467 virtual u32 getType() { return 'TGPT'; }
468 virtual void setTexGenNum(u32 const* num) {
469 J3D_ASSERT_NULLPTR(0x335, num != NULL);
470 mTexGenNum = *num;
471 }
472 virtual void setTexGenNum(u32 num) { mTexGenNum = num; }
473 virtual u32 getTexGenNum() const { return mTexGenNum; }
474 virtual void setTexCoord(u32 idx, J3DTexCoord const* coord) {
475 J3D_ASSERT_RANGE(0x344, idx >= 0 && idx < ARRAY_SIZEU(mTexCoord));
476 J3D_ASSERT_NULLPTR(0x345, coord != NULL);
477 mTexCoord[idx] = *coord;
478 }
480 J3D_ASSERT_RANGE(0x34a, idx >= 0 && idx < ARRAY_SIZEU(mTexCoord));
481 return &mTexCoord[idx];
482 }
483 virtual void setTexMtx(u32 idx, J3DTexMtx* mtx) {
484 J3D_ASSERT_RANGE(0x351, idx >= 0 && idx < ARRAY_SIZEU(mTexMtx));
485 mTexMtx[idx] = mtx;
486 }
487 virtual J3DTexMtx* getTexMtx(u32 idx) {
488 J3D_ASSERT_RANGE(0x356, idx >= 0 && idx < ARRAY_SIZEU(mTexMtx));
489 return mTexMtx[idx];
490 }
491 virtual u32 getTexMtxOffset() const { return mTexMtxOffset; }
494
495 /* 0x04 */ u32 mTexGenNum;
496 /* 0x08 */ J3DTexCoord mTexCoord[8];
497 /* 0x38 */ J3DTexMtx* mTexMtx[8];
498 /* 0x58 */ u32 mTexMtxOffset;
499}; // Size: 0x5C
500
506public:
510 void initialize();
511
512 virtual void reset(J3DTexGenBlock*);
513 virtual void load();
514 virtual void patch();
515 virtual s32 countDLSize();
516 virtual u32 getType() { return 'TGB4'; }
517 virtual void setNBTScale(J3DNBTScale const* scale) {
518 J3D_ASSERT_NULLPTR(0x393, scale != NULL);
519 mNBTScale = *scale;
520 }
521 virtual void setNBTScale(J3DNBTScale scale) { mNBTScale = scale; }
522 virtual J3DNBTScale* getNBTScale() { return &mNBTScale; }
523 virtual ~J3DTexGenBlock4() {}
524
526}; // Size: 0x6C
527
533public:
537 void initialize();
538
539 virtual void reset(J3DTexGenBlock*);
540 virtual void load();
541 virtual void patch();
542 virtual s32 countDLSize();
543 virtual u32 getType() { return 'TGBC'; }
544 virtual void setNBTScale(J3DNBTScale const* scale) {
545 J3D_ASSERT_NULLPTR(0x3ca, scale != NULL);
546 mNBTScale = *scale;
547 }
548 virtual void setNBTScale(J3DNBTScale scale) { mNBTScale = scale; }
549 virtual J3DNBTScale* getNBTScale() { return &mNBTScale; }
551
553}; // Size: 0x6C
554
556public:
557 virtual void calc(f32 const (*)[4]) {}
558 virtual void calcWithoutViewMtx(f32 const (*)[4]) {}
559 virtual void calcPostTexMtx(f32 const (*)[4]) {}
560 virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4]) {}
561 virtual void load() {}
562 virtual void patch() {}
563 virtual void diff(u32) {}
564 virtual void diffTexMtx() {}
565 virtual void diffTexGen() {}
566 virtual u32 getType() { return 'TGNL'; }
568};
569
575public:
576 virtual void reset(J3DTevBlock*) {}
577 virtual void load() {}
578 virtual void diff(u32);
579 virtual void diffTexNo() {}
580 virtual void diffTevReg() {}
581 virtual void diffTexCoordScale() {}
582 virtual void diffTevStage() {}
583 virtual void diffTevStageIndirect() {}
584 virtual void patch() {}
585 virtual void patchTexNo() {}
586 virtual void patchTevReg() {}
588 virtual void ptrToIndex() = 0;
589 virtual void indexToPtr() = 0;
590 virtual u32 getType() = 0;
591 virtual s32 countDLSize() { return 0; }
592 virtual void setTexNo(u32, u16 const*) {}
593 virtual void setTexNo(u32, u16) {}
594 virtual u16 getTexNo(u32) const { return 0xffff; }
595 virtual void setTevOrder(u32, J3DTevOrder const*) {}
596 virtual void setTevOrder(u32, J3DTevOrder) {}
597 virtual J3DTevOrder* getTevOrder(u32) { return NULL; }
598 virtual void setTevColor(u32, J3DGXColorS10 const*) {}
599 virtual void setTevColor(u32, J3DGXColorS10) {}
600 virtual J3DGXColorS10* getTevColor(u32) { return NULL; }
601 virtual void setTevKColor(u32, J3DGXColor const*) {}
602 virtual void setTevKColor(u32, J3DGXColor) {}
603 virtual J3DGXColor* getTevKColor(u32) { return NULL; }
604 virtual void setTevKColorSel(u32, u8 const*) {}
605 virtual void setTevKColorSel(u32, u8) {}
606 virtual u8 getTevKColorSel(u32) { return false; }
607 virtual void setTevKAlphaSel(u32, u8 const*) {}
608 virtual void setTevKAlphaSel(u32, u8) {}
609 virtual u8 getTevKAlphaSel(u32) { return false; }
610 virtual void setTevStageNum(u8 const*) {}
611 virtual void setTevStageNum(u8) {}
612 virtual u8 getTevStageNum() const { return 1; }
613 virtual void setTevStage(u32, J3DTevStage const*) {}
614 virtual void setTevStage(u32, J3DTevStage) {}
615 virtual J3DTevStage* getTevStage(u32) { return NULL; }
620 virtual J3DTevSwapModeTable* getTevSwapModeTable(u32) { return NULL; }
621 virtual void setIndTevStage(u32, J3DIndTevStage const*) {}
623 virtual J3DIndTevStage* getIndTevStage(u32) { return NULL; }
624 virtual u32 getTexNoOffset() const { return 0; }
625 virtual u32 getTevRegOffset() const { return 0; }
627 virtual void setTevRegOffset(u32) {}
628 virtual ~J3DTevBlock() {}
629
630protected:
632
633 /* 0x4 */ u32 mTexNoOffset;
634};
635
641public:
643 void initialize();
644 virtual void reset(J3DTevBlock*) {}
645 virtual void ptrToIndex() {}
647 virtual u32 getType() { return 'TVNL'; }
648 virtual ~J3DTevBlockNull() {}
649};
650
656public:
660 void initialize();
661
662 virtual void reset(J3DTevBlock*);
663 virtual void load() {}
664 virtual void diffTexNo();
665 virtual void diffTevReg();
666 virtual void diffTexCoordScale();
667 virtual void diffTevStage();
668 virtual void diffTevStageIndirect();
669 virtual void patch();
670 virtual void patchTexNo();
671 virtual void patchTevReg();
672 virtual void patchTexNoAndTexCoordScale();
673 virtual void ptrToIndex();
675 virtual u32 getType() { return 'TVPT'; }
676 virtual void setTevStageNum(u8 const* num) {
677 J3D_ASSERT_NULLPTR(0x52c, num != NULL);
678 mTevStageNum = *num;
679 }
680 virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
681 virtual u8 getTevStageNum() const { return mTevStageNum; }
682 virtual s32 countDLSize();
683 virtual void setTexNo(u32 idx, u16 const* texNo) {
684 J3D_ASSERT_RANGE(0x53b, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
685 J3D_ASSERT_NULLPTR(0x53c, texNo != NULL);
686 mTexNo[idx] = *texNo;
687 }
688 virtual void setTexNo(u32 idx, u16 texNo) {
689 J3D_ASSERT_RANGE(0x542, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
690 mTexNo[idx] = texNo;
691 }
692 virtual u16 getTexNo(u32 idx) const {
693 J3D_ASSERT_RANGE(1353, idx >= 0 && idx < 8);
694 return mTexNo[idx];
695 }
696 virtual void setTevOrder(u32 idx, J3DTevOrder const* order) {
697 J3D_ASSERT_RANGE(0x550, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
698 J3D_ASSERT_NULLPTR(0x551, order != NULL);
699 mTevOrder[idx] = *order;
700 }
701 virtual void setTevOrder(u32 idx, J3DTevOrder order) {
702 J3D_ASSERT_RANGE(0x557, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
703 mTevOrder[idx] = order;
704 }
706 J3D_ASSERT_RANGE(0x55c, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
707 return &mTevOrder[idx];
708 }
709 virtual void setTevStage(u32 idx, J3DTevStage const* stage) {
710 J3D_ASSERT_RANGE(0x563, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
711 J3D_ASSERT_NULLPTR(0x564, stage != NULL);
712 mTevStage[idx] = *stage;
713 }
714 virtual void setTevStage(u32 idx, J3DTevStage stage) {
715 J3D_ASSERT_RANGE(0x56a, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
716 mTevStage[idx] = stage;
717 }
719 J3D_ASSERT_RANGE(0x56f, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
720 return &mTevStage[idx];
721 }
722 virtual void setIndTevStage(u32 idx, J3DIndTevStage const* stage) {
723 J3D_ASSERT_RANGE(0x576, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
724 J3D_ASSERT_NULLPTR(0x577, stage != NULL);
725 mIndTevStage[idx] = *stage;
726 }
727 virtual void setIndTevStage(u32 idx, J3DIndTevStage stage) {
728 J3D_ASSERT_RANGE(0x57d, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
729 mIndTevStage[idx] = stage;
730 }
732 J3D_ASSERT_RANGE(0x582, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
733 return &mIndTevStage[idx];
734 }
735 virtual void setTevColor(u32 idx, J3DGXColorS10 const* color) {
736 J3D_ASSERT_RANGE(0x589, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
737 J3D_ASSERT_NULLPTR(0x58a, color != NULL);
738 mTevColor[idx] = *color;
739 }
740 virtual void setTevColor(u32 idx, J3DGXColorS10 color) {
741 J3D_ASSERT_RANGE(0x590, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
742 mTevColor[idx] = color;
743 }
745 J3D_ASSERT_RANGE(0x595, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
746 return &mTevColor[idx];
747 }
748 virtual void setTevKColor(u32 idx, J3DGXColor const* color) {
749 J3D_ASSERT_RANGE(0x59c, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
750 J3D_ASSERT_NULLPTR(0x59d, color != NULL);
751 mTevKColor[idx] = *color;
752 }
753 virtual void setTevKColor(u32 idx, J3DGXColor color) {
754 J3D_ASSERT_RANGE(0x5a3, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
755 mTevKColor[idx] = color;
756 }
758 J3D_ASSERT_RANGE(0x5a8, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
759 return &mTevKColor[idx];
760 }
761 virtual void setTevKColorSel(u32 idx, u8 const* sel) {
762 J3D_ASSERT_RANGE(0x5af, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
763 J3D_ASSERT_NULLPTR(0x5b0, sel != NULL);
764 mTevKColorSel[idx] = *sel;
765 }
766 virtual void setTevKColorSel(u32 idx, u8 sel) {
767 J3D_ASSERT_RANGE(0x5b6, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
768 mTevKColorSel[idx] = sel;
769 }
770 virtual u8 getTevKColorSel(u32 idx) {
771 J3D_ASSERT_RANGE(0x5bb, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
772 return mTevKColorSel[idx];
773 }
774 virtual u32 getTexNoOffset() const { return mTexNoOffset; }
775 virtual u32 getTevRegOffset() const { return mTevRegOffset; }
776 virtual void setTevRegOffset(u32 offset) {
777 J3D_ASSERT_RANGE(0x53b, offset >= 0);
779 }
781
782 /* 0x08 */ u16 mTexNo[8];
783 /* 0x18 */ J3DTevOrder mTevOrder[8];
784 /* 0x38 */ J3DTevStage mTevStage[8];
787 /* 0xB8 */ J3DGXColor mTevKColor[4];
788 /* 0xC8 */ u8 mTevKColorSel[8];
789 /* 0xD0 */ u8 mTevStageNum;
790 /* 0xD4 */ u32 mTevRegOffset;
791}; // Size: 0xD8
792
797class J3DTevBlock1 : public J3DTevBlock {
798public:
800 initialize();
801 }
802 void initialize();
803
804 virtual void reset(J3DTevBlock*);
805 virtual void load();
806 virtual void diffTexNo();
807 virtual void diffTevReg();
808 virtual void diffTexCoordScale();
809 virtual void diffTevStage();
810 virtual void diffTevStageIndirect();
811 virtual void patch();
812 virtual void patchTexNo();
813 virtual void patchTevReg();
814 virtual void patchTexNoAndTexCoordScale();
815 virtual void ptrToIndex() {}
817 virtual u32 getType() { return 'TVB1'; }
818 virtual s32 countDLSize();
819 virtual void setTexNo(u32 idx, u16 const* no) {
820 J3D_ASSERT_RANGE(0x618, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
821 J3D_ASSERT_NULLPTR(0x619, no != NULL);
822 mTexNo[idx] = *no;
823 }
824 virtual void setTexNo(u32 idx, u16 no) {
825 J3D_ASSERT_RANGE(0x61f, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
826 mTexNo[idx] = no;
827 }
828 virtual u16 getTexNo(u32 idx) const {
829 J3D_ASSERT_RANGE(1574, idx >= 0 && idx < 1);
830 return mTexNo[idx];
831 }
832 virtual void setTevOrder(u32 idx, J3DTevOrder const* order) {
833 J3D_ASSERT_RANGE(0x62d, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
834 J3D_ASSERT_NULLPTR(0x62e, order != NULL);
835 mTevOrder[idx] = *order;
836 }
837 virtual void setTevOrder(u32 idx, J3DTevOrder order) {
838 J3D_ASSERT_RANGE(0x634, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
839 mTevOrder[idx] = order;
840 }
842 J3D_ASSERT_RANGE(0x639, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
843 return &mTevOrder[idx];
844 }
845 virtual void setTevStageNum(u8 const* num) {}
846 virtual void setTevStageNum(u8 num) {}
847 virtual u8 getTevStageNum() const { return 1; }
848 virtual void setTevStage(u32 idx, J3DTevStage const* stage) {
849 J3D_ASSERT_RANGE(0x64b, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
850 J3D_ASSERT_NULLPTR(0x64c, stage != NULL);
851 mTevStage[idx] = *stage;
852 }
853 virtual void setTevStage(u32 idx, J3DTevStage stage) {
854 J3D_ASSERT_RANGE(0x652, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
855 mTevStage[idx] = stage;
856 }
858 J3D_ASSERT_RANGE(0x657, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
859 return &mTevStage[idx];
860 }
861 virtual void setIndTevStage(u32 idx, J3DIndTevStage const* stage) {
862 J3D_ASSERT_RANGE(0x65e, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
863 J3D_ASSERT_NULLPTR(0x65f, stage != NULL);
864 mIndTevStage[idx] = *stage;
865 }
866 virtual void setIndTevStage(u32 idx, J3DIndTevStage stage) {
867 J3D_ASSERT_RANGE(0x665, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
868 mIndTevStage[idx] = stage;
869 }
871 J3D_ASSERT_RANGE(0x66a, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
872 return &mIndTevStage[idx];
873 }
874 virtual u32 getTexNoOffset() const { return mTexNoOffset; }
875 virtual ~J3DTevBlock1() {}
876
877 /* 0x08 */ u16 mTexNo[1];
878 /* 0x0A */ J3DTevOrder mTevOrder[1];
879 /* 0x0E */ J3DTevStage mTevStage[1];
881}; // Size: 0x1C
882
887class J3DTevBlock2 : public J3DTevBlock {
888public:
890 initialize();
891 }
892 void initialize();
893
894 virtual void reset(J3DTevBlock*);
895 virtual void load();
896 virtual void diffTexNo();
897 virtual void diffTevReg();
898 virtual void diffTexCoordScale();
899 virtual void diffTevStage();
900 virtual void diffTevStageIndirect();
901 virtual void patch();
902 virtual void patchTexNo();
903 virtual void patchTevReg();
904 virtual void patchTexNoAndTexCoordScale();
905 virtual void ptrToIndex() {}
907 virtual u32 getType() { return 'TVB2'; }
908 virtual s32 countDLSize();
909 virtual void setTexNo(u32 idx, u16 const* texNo) {
910 J3D_ASSERT_RANGE(0x6b4, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
911 J3D_ASSERT_NULLPTR(0x6b5, texNo != NULL);
912 mTexNo[idx] = *texNo;
913 }
914 virtual void setTexNo(u32 idx, u16 texNo) {
915 J3D_ASSERT_RANGE(0x6bb, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
916 mTexNo[idx] = texNo;
917 }
918 virtual u16 getTexNo(u32 idx) const {
919 J3D_ASSERT_RANGE(0x6c2, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
920 return mTexNo[idx];
921 }
922 virtual void setTevOrder(u32 idx, J3DTevOrder const* order) {
923 J3D_ASSERT_RANGE(0x6c9, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
924 J3D_ASSERT_NULLPTR(0x6ca, order != NULL);
925 mTevOrder[idx] = *order;
926 }
927 virtual void setTevOrder(u32 idx, J3DTevOrder order) {
928 J3D_ASSERT_RANGE(0x6d0, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
929 mTevOrder[idx] = order;
930 }
932 J3D_ASSERT_RANGE(0x6d5, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
933 return &mTevOrder[idx];
934 }
935 virtual void setTevColor(u32 idx, J3DGXColorS10 const* color) {
936 J3D_ASSERT_RANGE(0x6dc, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
937 J3D_ASSERT_NULLPTR(0x6dd, color != NULL);
938 mTevColor[idx] = *color;
939 }
940 virtual void setTevColor(u32 idx, J3DGXColorS10 color) {
941 J3D_ASSERT_RANGE(0x6e3, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
942 mTevColor[idx] = color;
943 }
945 J3D_ASSERT_RANGE(0x6e8, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
946 return &mTevColor[idx];
947 }
948 virtual void setTevKColor(u32 idx, J3DGXColor const* color) {
949 J3D_ASSERT_RANGE(0x6ef, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
950 J3D_ASSERT_NULLPTR(0x6f0, color != NULL);
951 mTevKColor[idx] = *color;
952 }
953 virtual void setTevKColor(u32 idx, J3DGXColor color) {
954 J3D_ASSERT_RANGE(0x6f6, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
955 mTevKColor[idx] = color;
956 }
958 J3D_ASSERT_RANGE(0x6fb, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
959 return &mTevKColor[idx];
960 }
961 virtual void setTevKColorSel(u32 idx, u8 const* sel) {
962 J3D_ASSERT_RANGE(0x702, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
963 J3D_ASSERT_NULLPTR(0x703, sel != NULL);
964 mTevKColorSel[idx] = *sel;
965 }
966 virtual void setTevKColorSel(u32 idx, u8 sel) {
967 J3D_ASSERT_RANGE(0x709, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
968 mTevKColorSel[idx] = sel;
969 }
970 virtual u8 getTevKColorSel(u32 idx) {
971 J3D_ASSERT_RANGE(0x70e, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
972 return mTevKColorSel[idx];
973 }
974 virtual void setTevKAlphaSel(u32 idx, u8 const* sel) {
975 J3D_ASSERT_RANGE(0x715, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
976 J3D_ASSERT_NULLPTR(0x716, sel != NULL);
977 mTevKAlphaSel[idx] = *sel;
978 }
979 virtual void setTevKAlphaSel(u32 idx, u8 sel) {
980 J3D_ASSERT_RANGE(0x71c, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
981 mTevKAlphaSel[idx] = sel;
982 }
983 virtual u8 getTevKAlphaSel(u32 idx) {
984 J3D_ASSERT_RANGE(0x721, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
985 return mTevKAlphaSel[idx];
986 }
987 virtual void setTevStageNum(u8 const* num) {
988 J3D_ASSERT_NULLPTR(0x727, num != NULL);
989 mTevStageNum = *num;
990 }
991 virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
992 virtual u8 getTevStageNum() const { return mTevStageNum; }
993 virtual void setTevStage(u32 idx, J3DTevStage const* stage) {
994 J3D_ASSERT_RANGE(0x736, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
995 J3D_ASSERT_NULLPTR(0x737, stage != NULL);
996 mTevStage[idx] = *stage;
997 }
998 virtual void setTevStage(u32 idx, J3DTevStage stage) {
999 J3D_ASSERT_RANGE(0x73d, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1000 mTevStage[idx] = stage;
1001 }
1003 J3D_ASSERT_RANGE(0x742, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1004 return &mTevStage[idx];
1005 }
1006 virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const* info) {
1007 J3D_ASSERT_RANGE(0x749, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1008 J3D_ASSERT_NULLPTR(0x74a, info != NULL);
1009 mTevStage[idx].setTevSwapModeInfo(*info);
1010 }
1012 J3D_ASSERT_RANGE(0x750, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1013 mTevStage[idx].setTevSwapModeInfo(info);
1014 }
1015 virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const* table) {
1016 J3D_ASSERT_RANGE(0x757, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1017 J3D_ASSERT_NULLPTR(0x758, table != NULL);
1018 mTevSwapModeTable[idx] = *table;
1019 }
1021 J3D_ASSERT_RANGE(0x75e, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1022 mTevSwapModeTable[idx] = table;
1023 }
1025 J3D_ASSERT_RANGE(0x763, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1026 return &mTevSwapModeTable[idx];
1027 }
1028 virtual void setIndTevStage(u32 idx, J3DIndTevStage const* stage) {
1029 J3D_ASSERT_RANGE(0x76a, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1030 J3D_ASSERT_NULLPTR(0x76b, stage != NULL);
1031 mIndTevStage[idx] = *stage;
1032 }
1033 virtual void setIndTevStage(u32 idx, J3DIndTevStage stage) {
1034 J3D_ASSERT_RANGE(0x771, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1035 mIndTevStage[idx] = stage;
1036 }
1038 J3D_ASSERT_RANGE(0x776, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1039 return &mIndTevStage[idx];
1040 }
1041 virtual u32 getTexNoOffset() const { return mTexNoOffset; }
1042 virtual u32 getTevRegOffset() const { return mTevRegOffset; }
1044 virtual ~J3DTevBlock2() {}
1045
1046 /* 0x08 */ u16 mTexNo[2];
1047 /* 0x0C */ J3DTevOrder mTevOrder[2];
1049 /* 0x34 */ u8 mTevStageNum;
1050 /* 0x35 */ J3DTevStage mTevStage[2];
1051 /* 0x45 */ J3DGXColor mTevKColor[4];
1052 /* 0x55 */ u8 mTevKColorSel[2];
1053 /* 0x57 */ u8 mTevKAlphaSel[2];
1056 /* 0x68 */ u32 mTevRegOffset;
1057}; // Size: 0x6C
1058
1064public:
1066 initialize();
1067 }
1068 void initialize();
1069
1070 virtual void reset(J3DTevBlock*);
1071 virtual void load();
1072 virtual void diffTexNo();
1073 virtual void diffTevReg();
1074 virtual void diffTexCoordScale();
1075 virtual void diffTevStage();
1076 virtual void diffTevStageIndirect();
1077 virtual void patch();
1078 virtual void patchTexNo();
1079 virtual void patchTevReg();
1080 virtual void patchTexNoAndTexCoordScale();
1081 virtual void ptrToIndex() {}
1083 virtual u32 getType() { return 'TVB4'; }
1084 virtual s32 countDLSize();
1085 virtual void setTexNo(u32 idx, u16 const* texNo) {
1086 J3D_ASSERT_RANGE(0x7d5, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
1087 J3D_ASSERT_NULLPTR(0x7d6, texNo != NULL);
1088 mTexNo[idx] = *texNo;
1089 }
1090 virtual void setTexNo(u32 idx, u16 texNo) {
1091 J3D_ASSERT_RANGE(0x7dc, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
1092 mTexNo[idx] = texNo;
1093 }
1094 virtual u16 getTexNo(u32 idx) const {
1095 J3D_ASSERT_RANGE(2019, idx >= 0 && idx < 4);
1096 return mTexNo[idx];
1097 }
1098 virtual void setTevOrder(u32 idx, J3DTevOrder const* order) {
1099 J3D_ASSERT_RANGE(0x7ea, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1100 J3D_ASSERT_NULLPTR(0x7eb, order != NULL);
1101 mTevOrder[idx] = *order;
1102 }
1103 virtual void setTevOrder(u32 idx, J3DTevOrder order) {
1104 J3D_ASSERT_RANGE(0x7f1, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1105 mTevOrder[idx] = order;
1106 }
1108 J3D_ASSERT_RANGE(0x7f6, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1109 return &mTevOrder[idx];
1110 }
1111 virtual void setTevColor(u32 idx, J3DGXColorS10 const* color) {
1112 J3D_ASSERT_RANGE(0x7fd, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1113 J3D_ASSERT_NULLPTR(0x7fe, color != NULL);
1114 mTevColor[idx] = *color;
1115 }
1116 virtual void setTevColor(u32 idx, J3DGXColorS10 color) {
1117 J3D_ASSERT_RANGE(0x804, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1118 mTevColor[idx] = color;
1119 }
1121 J3D_ASSERT_RANGE(0x809, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1122 return &mTevColor[idx];
1123 }
1124 virtual void setTevKColor(u32 idx, J3DGXColor const* color) {
1125 J3D_ASSERT_RANGE(0x810, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1126 J3D_ASSERT_NULLPTR(0x811, color != NULL);
1127 mTevKColor[idx] = *color;
1128 }
1129 virtual void setTevKColor(u32 idx, J3DGXColor color) {
1130 J3D_ASSERT_RANGE(0x817, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1131 mTevKColor[idx] = color;
1132 }
1134 J3D_ASSERT_RANGE(0x81c, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1135 return &mTevKColor[idx];
1136 }
1137 virtual void setTevKColorSel(u32 idx, u8 const* sel) {
1138 J3D_ASSERT_RANGE(0x823, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1139 J3D_ASSERT_NULLPTR(0x824, sel != NULL);
1140 mTevKColorSel[idx] = *sel;
1141 }
1142 virtual void setTevKColorSel(u32 idx, u8 sel) {
1143 J3D_ASSERT_RANGE(0x82a, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1144 mTevKColorSel[idx] = sel;
1145 }
1146 virtual u8 getTevKColorSel(u32 idx) {
1147 J3D_ASSERT_RANGE(0x82f, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1148 return mTevKColorSel[idx];
1149 }
1150 virtual void setTevKAlphaSel(u32 idx, u8 const* sel) {
1151 J3D_ASSERT_RANGE(0x836, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1152 J3D_ASSERT_NULLPTR(0x837, sel != NULL);
1153 mTevKAlphaSel[idx] = *sel;
1154 }
1155 virtual void setTevKAlphaSel(u32 idx, u8 sel) {
1156 J3D_ASSERT_RANGE(0x83d, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1157 mTevKAlphaSel[idx] = sel;
1158 }
1159 virtual u8 getTevKAlphaSel(u32 idx) {
1160 J3D_ASSERT_RANGE(0x842, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1161 return mTevKAlphaSel[idx];
1162 }
1163 virtual void setTevStageNum(u8 const* num) {
1164 J3D_ASSERT_NULLPTR(0x848, num != NULL);
1165 mTevStageNum = *num;
1166 }
1167 virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
1168 virtual u8 getTevStageNum() const { return mTevStageNum; }
1169 virtual void setTevStage(u32 idx, J3DTevStage const* stage) {
1170 J3D_ASSERT_RANGE(0x857, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1171 J3D_ASSERT_NULLPTR(0x858, stage != NULL);
1172 mTevStage[idx] = *stage;
1173 }
1174 virtual void setTevStage(u32 idx, J3DTevStage stage) {
1175 J3D_ASSERT_RANGE(0x85e, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1176 mTevStage[idx] = stage;
1177 }
1179 J3D_ASSERT_RANGE(0x863, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1180 return &mTevStage[idx];
1181 }
1182 virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const* info) {
1183 J3D_ASSERT_RANGE(0x86a, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1184 J3D_ASSERT_NULLPTR(0x86b, info != NULL);
1185 mTevStage[idx].setTevSwapModeInfo(*info);
1186 }
1188 J3D_ASSERT_RANGE(0x871, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1189 mTevStage[idx].setTevSwapModeInfo(info);
1190 }
1191 virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const* table) {
1192 J3D_ASSERT_RANGE(0x878, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1193 J3D_ASSERT_NULLPTR(0x879, table != NULL);
1194 mTevSwapModeTable[idx] = *table;
1195 }
1197 J3D_ASSERT_RANGE(0x87f, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1198 mTevSwapModeTable[idx] = table;
1199 }
1201 J3D_ASSERT_RANGE(0x884, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1202 return &mTevSwapModeTable[idx];
1203 }
1204 virtual void setIndTevStage(u32 idx, J3DIndTevStage const* stage) {
1205 J3D_ASSERT_RANGE(0x88b, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1206 J3D_ASSERT_NULLPTR(0x88c, stage != NULL);
1207 mIndTevStage[idx] = *stage;
1208 }
1209 virtual void setIndTevStage(u32 idx, J3DIndTevStage stage) {
1210 J3D_ASSERT_RANGE(0x892, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1211 mIndTevStage[idx] = stage;
1212 }
1214 J3D_ASSERT_RANGE(0x897, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1215 return &mIndTevStage[idx];
1216 }
1217 virtual u32 getTexNoOffset() const { return mTexNoOffset; }
1218 virtual u32 getTevRegOffset() const { return mTevRegOffset; }
1220 virtual ~J3DTevBlock4() {}
1221
1222 /* 0x08 */ u16 mTexNo[4];
1223 /* 0x10 */ J3DTevOrder mTevOrder[4];
1224 /* 0x20 */ u8 mTevStageNum;
1225 /* 0x21 */ J3DTevStage mTevStage[4];
1227 /* 0x62 */ J3DGXColor mTevKColor[4];
1228 /* 0x72 */ u8 mTevKColorSel[4];
1229 /* 0x76 */ u8 mTevKAlphaSel[4];
1232 /* 0x90 */ u32 mTevRegOffset;
1233}; // Size: 0x94
1234
1240public:
1242 initialize();
1243 }
1244 void initialize();
1245
1246 virtual void reset(J3DTevBlock*);
1247 virtual void load();
1248 virtual void diffTexNo();
1249 virtual void diffTevReg();
1250 virtual void diffTexCoordScale();
1251 virtual void diffTevStage();
1252 virtual void diffTevStageIndirect();
1253 virtual void patch();
1254 virtual void patchTexNo();
1255 virtual void patchTevReg();
1256 virtual void patchTexNoAndTexCoordScale();
1257 virtual void ptrToIndex();
1259 virtual u32 getType() { return 'TV16'; }
1260 virtual s32 countDLSize();
1261 virtual void setTexNo(u32 idx, u16 const* texNo) {
1262 J3D_ASSERT_RANGE(0x8f6, idx >= 0 && idx < ARRAY_SIZEU(mTexNo));
1263 J3D_ASSERT_NULLPTR(0x8f7, texNo != NULL);
1264 mTexNo[idx] = *texNo;
1265 }
1266 virtual void setTexNo(u32 idx, u16 texNo) {
1267 J3D_ASSERT_RANGE(0x8fd, idx >= 0 && idx < 8);
1268 mTexNo[idx] = texNo;
1269 }
1270 virtual u16 getTexNo(u32 idx) const {
1271 J3D_ASSERT_RANGE(2308, idx >= 0 && idx < 8);
1272 return mTexNo[idx];
1273 }
1274 virtual void setTevOrder(u32 idx, J3DTevOrder const* order) {
1275 J3D_ASSERT_RANGE(0x90b, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1276 J3D_ASSERT_NULLPTR(0x90c, order != NULL);
1277 mTevOrder[idx] = *order;
1278 }
1279 virtual void setTevOrder(u32 idx, J3DTevOrder order) {
1280 J3D_ASSERT_RANGE(0x912, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1281 mTevOrder[idx] = order;
1282 }
1284 J3D_ASSERT_RANGE(0x917, idx >= 0 && idx < ARRAY_SIZEU(mTevOrder));
1285 return &mTevOrder[idx];
1286 }
1287 virtual void setTevColor(u32 idx, J3DGXColorS10 const* color) {
1288 J3D_ASSERT_RANGE(0x91e, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1289 J3D_ASSERT_NULLPTR(0x91f, color != NULL);
1290 mTevColor[idx] = *color;
1291 }
1292 virtual void setTevColor(u32 idx, J3DGXColorS10 color) {
1293 J3D_ASSERT_RANGE(0x925, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1294 mTevColor[idx] = color;
1295 }
1297 J3D_ASSERT_RANGE(0x92a, idx >= 0 && idx < ARRAY_SIZEU(mTevColor));
1298 return &mTevColor[idx];
1299 }
1300 virtual void setTevKColor(u32 idx, J3DGXColor const* color) {
1301 J3D_ASSERT_RANGE(0x931, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1302 J3D_ASSERT_NULLPTR(0x932, color != NULL);
1303 mTevKColor[idx] = *color;
1304 }
1305 virtual void setTevKColor(u32 idx, J3DGXColor color) {
1306 J3D_ASSERT_RANGE(0x938, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1307 mTevKColor[idx] = color;
1308 }
1310 J3D_ASSERT_RANGE(0x93d, idx >= 0 && idx < ARRAY_SIZEU(mTevKColor));
1311 return &mTevKColor[idx];
1312 }
1313 virtual void setTevKColorSel(u32 idx, u8 const* sel) {
1314 J3D_ASSERT_RANGE(0x944, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1315 J3D_ASSERT_NULLPTR(0x945, sel != NULL);
1316 mTevKColorSel[idx] = *sel;
1317 }
1318 virtual void setTevKColorSel(u32 idx, u8 sel) {
1319 J3D_ASSERT_RANGE(0x94b, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1320 mTevKColorSel[idx] = sel;
1321 }
1322 virtual u8 getTevKColorSel(u32 idx) {
1323 J3D_ASSERT_RANGE(0x950, idx >= 0 && idx < ARRAY_SIZEU(mTevKColorSel));
1324 return mTevKColorSel[idx];
1325 }
1326 virtual void setTevKAlphaSel(u32 idx, u8 const* sel) {
1327 J3D_ASSERT_RANGE(0x957, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1328 J3D_ASSERT_NULLPTR(0x958, sel != NULL);
1329 mTevKAlphaSel[idx] = *sel;
1330 }
1331 virtual void setTevKAlphaSel(u32 idx, u8 sel) {
1332 J3D_ASSERT_RANGE(0x95e, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1333 mTevKAlphaSel[idx] = sel;
1334 }
1335 virtual u8 getTevKAlphaSel(u32 idx) {
1336 J3D_ASSERT_RANGE(0x963, idx >= 0 && idx < ARRAY_SIZEU(mTevKAlphaSel));
1337 return mTevKAlphaSel[idx];
1338 }
1339 virtual void setTevStageNum(u8 const* num) {
1340 J3D_ASSERT_NULLPTR(0x969, num != NULL);
1341 mTevStageNum = *num;
1342 }
1343 virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
1344 virtual u8 getTevStageNum() const { return mTevStageNum; }
1345 virtual void setTevStage(u32 idx, J3DTevStage const* stage) {
1346 J3D_ASSERT_RANGE(0x978, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1347 J3D_ASSERT_NULLPTR(0x979, stage != NULL);
1348 mTevStage[idx] = *stage;
1349 }
1350 virtual void setTevStage(u32 idx, J3DTevStage stage) {
1351 J3D_ASSERT_RANGE(0x97f, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1352 mTevStage[idx] = stage;
1353 }
1355 J3D_ASSERT_RANGE(0x984, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1356 return &mTevStage[idx];
1357 }
1358 virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const* info) {
1359 J3D_ASSERT_RANGE(0x98b, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1360 J3D_ASSERT_NULLPTR(0x98c, info != NULL);
1361 mTevStage[idx].setTevSwapModeInfo(*info);
1362 }
1364 J3D_ASSERT_RANGE(0x992, idx >= 0 && idx < ARRAY_SIZEU(mTevStage));
1365 mTevStage[idx].setTevSwapModeInfo(info);
1366 }
1367 virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const* table) {
1368 J3D_ASSERT_RANGE(0x999, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1369 J3D_ASSERT_NULLPTR(0x99a, table != NULL);
1370 mTevSwapModeTable[idx] = *table;
1371 }
1373 J3D_ASSERT_RANGE(0x9a0, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1374 mTevSwapModeTable[idx] = table;
1375 }
1377 J3D_ASSERT_RANGE(0x9a5, idx >= 0 && idx < ARRAY_SIZEU(mTevSwapModeTable));
1378 return &mTevSwapModeTable[idx];
1379 }
1380 virtual void setIndTevStage(u32 idx, J3DIndTevStage const* stage) {
1381 J3D_ASSERT_RANGE(0x9ac, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1382 J3D_ASSERT_NULLPTR(0x9ad, stage != NULL);
1383 mIndTevStage[idx] = *stage;
1384 }
1385 virtual void setIndTevStage(u32 idx, J3DIndTevStage stage) {
1386 J3D_ASSERT_RANGE(0x9b3, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1387 mIndTevStage[idx] = stage;
1388 }
1390 J3D_ASSERT_RANGE(0x9b8, idx >= 0 && idx < ARRAY_SIZEU(mIndTevStage));
1391 return &mIndTevStage[idx];
1392 }
1393 virtual u32 getTexNoOffset() const { return mTexNoOffset; }
1394 virtual u32 getTevRegOffset() const { return mTevRegOffset; }
1396 virtual ~J3DTevBlock16() {}
1397
1398 /* 0x008 */ u16 mTexNo[8];
1399 /* 0x018 */ J3DTevOrder mTevOrder[16];
1400 /* 0x058 */ u8 mTevStageNum;
1401 /* 0x059 */ J3DTevStage mTevStage[16];
1402 /* 0x0DA */ J3DGXColorS10 mTevColor[4];
1403 /* 0x0FA */ J3DGXColor mTevKColor[4];
1404 /* 0x10A */ u8 mTevKColorSel[16];
1405 /* 0x11A */ u8 mTevKAlphaSel[16];
1408 /* 0x170 */ u32 mTevRegOffset;
1409}; // Size: 0x174
1410
1411inline u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2) {
1412 return param_1 * 2 + param_0 * 0x10 + param_2;
1413}
1414
1415extern u8 j3dZModeTable[96];
1416
1421struct J3DZMode {
1423 J3DZMode(J3DZModeInfo const& info) : mZModeID(calcZModeID(info.field_0x0, info.field_0x1, info.field_0x2)) {}
1424
1426 mZModeID = zModeID;
1427 return *this;
1428 }
1429 J3DZMode& operator=(const J3DZMode& other) {
1430 mZModeID = other.mZModeID;
1431 return *this;
1432 }
1433
1434 void setZModeInfo(const J3DZModeInfo& info) {
1435 mZModeID = calcZModeID(info.field_0x0, info.field_0x1, info.field_0x2);
1436 }
1437
1438 void setCompareEnable(u8 i_compare) {
1439 mZModeID = calcZModeID(i_compare, j3dZModeTable[mZModeID * 3 + 1], j3dZModeTable[mZModeID * 3 + 2]);
1440 }
1441
1442 void setFunc(u8 i_func) {
1444 }
1445
1446 void setUpdateEnable(u8 i_enable) {
1448 }
1449
1453
1454 u8 getCompareEnable() const { return *(&j3dZModeTable[mZModeID * 3] + 0); }
1455 u8 getFunc() const { return *(&j3dZModeTable[mZModeID * 3] + 1); }
1456 u8 getUpdateEnable() const { return *(&j3dZModeTable[mZModeID * 3] + 2); }
1457
1458 /* 0x0 */ u16 mZModeID;
1459};
1460
1465struct J3DBlend : public J3DBlendInfo {
1469 J3DBlend(J3DBlendInfo const& info) {
1471 }
1472
1473 void setType(u8 i_type) { mType = i_type; }
1474 void setSrcFactor(u8 i_factor) { mSrcFactor = i_factor; }
1475 void setDstFactor(u8 i_factor) { mDstFactor = i_factor; }
1476
1480 GXLogicOp getLogicOp() const { return (GXLogicOp)mOp; }
1481
1482 void load(u8 ditherEnable) const {
1484 }
1485
1486 void setBlendInfo(const J3DBlendInfo& i_blendInfo) { *static_cast<J3DBlendInfo*>(this) = i_blendInfo; }
1487};
1488
1493struct J3DFog : public J3DFogInfo {
1496 J3DFog* getFogInfo() { return this; }
1497 void setFogInfo(J3DFogInfo info) { *(J3DFogInfo*)this = info; }
1498 void setFogInfo(const J3DFogInfo* info) { *(J3DFogInfo*)this = *info; }
1499
1504};
1505
1506inline u16 calcAlphaCmpID(u8 comp0, u8 op, u8 comp1) {
1507 return (comp0 << 5) + (op << 3) + (comp1);
1508}
1509
1516 J3DAlphaComp(u16 id) : mID(id), mRef0(0), mRef1(0) {}
1517
1518 explicit J3DAlphaComp(const J3DAlphaCompInfo& info) {
1519 mID = calcAlphaCmpID(info.mComp0, info.mOp, info.mComp1);
1520 mRef0 = info.mRef0;
1521 mRef1 = info.mRef1;
1522 }
1523
1524 J3DAlphaComp& operator=(u16 id) { mID = id; return *this; }
1525
1527 mID = rhs.mID;
1528 mRef0 = rhs.mRef0;
1529 mRef1 = rhs.mRef1;
1530 return *this;
1531 }
1532
1534 mID = rhs.mID;
1535 mRef0 = rhs.mRef0;
1536 mRef1 = rhs.mRef1;
1537 return *this;
1538 }
1539
1541 mRef0 = info.mRef0;
1542 mRef1 = info.mRef1;
1543 mID = calcAlphaCmpID(info.mComp0, info.mOp, info.mComp1);
1544 }
1545
1546 u8 getComp0() const { return *(&j3dAlphaCmpTable[mID * 3] + 0); }
1547 u8 getOp() const { return *(&j3dAlphaCmpTable[mID * 3] + 1); }
1548 u8 getComp1() const { return *(&j3dAlphaCmpTable[mID * 3] + 2); }
1549 u8 getRef0() const { return mRef0; }
1550 u8 getRef1() const { return mRef1; }
1551
1555
1556 /* 0x00 */ u16 mID;
1557 /* 0x02 */ u8 mRef0;
1558 /* 0x03 */ u8 mRef1;
1559}; // Size: 0x4
1560
1570#if DEBUG
1572#else
1573 // Fakematch: Instruction order is wrong with __memcpy or J3DIndTexCoordScaleInfo::operator=
1574 *(u32*)this = *(u32*)&other;
1575#endif
1576 return *this;
1577 }
1581 u8 getMap() const { return (GXTexMapID)mMap; }
1582 u8 getCoord() const { return (GXTexCoordID)mCoord; }
1583}; // Size: 0x04
1584
1591 J3DIndTexMtx(const J3DIndTexMtxInfo& info) { *(J3DIndTexMtxInfo*)this = info; }
1593 __memcpy(this, &other, sizeof(J3DIndTexMtx));
1594 }
1596 void load(u32 param_1) const {
1598 }
1599}; // Size: 0x1C
1600
1613 __memcpy(this, &other, sizeof(J3DIndTexCoordScale));
1614 }
1616 u8 getScaleS() { return mScaleS; }
1617 u8 getScaleT() { return mScaleT; }
1618
1620#if DEBUG
1622#else
1623 // Fakematch: Instruction order is wrong with __memcpy or J3DIndTexCoordScaleInfo::operator=
1624 *(u32*)this = *(u32*)&other;
1625#endif
1626 return *this;
1627 }
1628}; // Size: 0x4
1629
1635public:
1636 virtual void reset(J3DIndBlock*) {}
1637 virtual void diff(u32) = 0;
1638 virtual void load() = 0;
1639 virtual s32 countDLSize() { return 0; }
1640 virtual u32 getType() = 0;
1641 virtual void setIndTexStageNum(u8) {}
1642 virtual u8 getIndTexStageNum() const { return 0; }
1644 virtual void setIndTexOrder(u32, J3DIndTexOrder const*) {}
1645 virtual J3DIndTexOrder* getIndTexOrder(u32) { return NULL; }
1646 virtual void setIndTexMtx(u32, J3DIndTexMtx const*) {}
1648 virtual J3DIndTexMtx* getIndTexMtx(u32) { return NULL; }
1652 virtual ~J3DIndBlock() {}
1653};
1654
1660public:
1662 initialize();
1663 }
1664 void initialize();
1665
1666 virtual s32 countDLSize();
1667 virtual void reset(J3DIndBlock*);
1668 virtual void diff(u32);
1669 virtual void load();
1670 virtual u32 getType() { return 'IBLF'; }
1671 virtual void setIndTexStageNum(u8 num) { mIndTexStageNum = num; }
1672 virtual u8 getIndTexStageNum() const { return mIndTexStageNum; }
1673 virtual void setIndTexOrder(u32 idx, J3DIndTexOrder const* order) {
1674 J3D_ASSERT_NULLPTR(0xa94, order != NULL);
1675 J3D_ASSERT_RANGE(0xa95, idx >= 0 && idx < ARRAY_SIZEU(mIndTexOrder));
1676 mIndTexOrder[idx] = *order;
1677 }
1678 virtual void setIndTexOrder(u32 idx, J3DIndTexOrder order) {
1679 J3D_ASSERT_RANGE(0xa9b, idx >= 0 && idx < ARRAY_SIZEU(mIndTexOrder));
1680 mIndTexOrder[idx] = order;
1681 }
1683 J3D_ASSERT_RANGE(0xaa0, idx >= 0 && idx < ARRAY_SIZEU(mIndTexOrder));
1684 return &mIndTexOrder[idx];
1685 }
1686 virtual void setIndTexMtx(u32 idx, J3DIndTexMtx const* mtx) {
1687 J3D_ASSERT_NULLPTR(0xaa7, mtx != NULL);
1688 J3D_ASSERT_RANGE(0xaa8, idx >= 0 && idx < ARRAY_SIZEU(mIndTexMtx));
1689 mIndTexMtx[idx] = *mtx;
1690 }
1691 virtual void setIndTexMtx(u32 idx, J3DIndTexMtx mtx) {
1692 J3D_ASSERT_RANGE(0xaae, idx >= 0 && idx < ARRAY_SIZEU(mIndTexMtx));
1693 mIndTexMtx[idx] = mtx;
1694 }
1696 J3D_ASSERT_RANGE(0xab3, idx >= 0 && idx < ARRAY_SIZEU(mIndTexMtx));
1697 return &mIndTexMtx[idx];
1698 }
1699 virtual void setIndTexCoordScale(u32 idx, J3DIndTexCoordScale const* scale) {
1700 J3D_ASSERT_NULLPTR(0xaba, scale != NULL);
1701 J3D_ASSERT_RANGE(0xabb, idx >= 0 && idx < ARRAY_SIZEU(mIndTexCoordScale));
1702 mIndTexCoordScale[idx] = *scale;
1703 }
1705 J3D_ASSERT_RANGE(0xac1, idx >= 0 && idx < ARRAY_SIZEU(mIndTexCoordScale));
1706 mIndTexCoordScale[idx] = scale;
1707 }
1709 J3D_ASSERT_RANGE(0xac6, idx >= 0 && idx < ARRAY_SIZEU(mIndTexCoordScale));
1710 return &mIndTexCoordScale[idx];
1711 }
1712 virtual ~J3DIndBlockFull() {}
1713
1718}; // Size: 0x7C
1719
1725public:
1726 virtual void diff(u32) {}
1727 virtual void load() {}
1728 virtual void reset(J3DIndBlock*) {}
1729 virtual u32 getType() { return 'IBLN'; }
1730 virtual ~J3DIndBlockNull() {}
1731};
1732
1738public:
1739 virtual void reset(J3DPEBlock*) {}
1740 virtual void load() = 0;
1741 virtual void patch() {}
1742 virtual void diff(u32) {}
1743 virtual void diffFog() {}
1744 virtual void diffBlend() {}
1745 virtual s32 countDLSize() { return 0; }
1746 virtual u32 getType() = 0;
1747 virtual void setFog(J3DFog) {}
1748 virtual void setFog(J3DFog*) {}
1749 virtual J3DFog* getFog() { return NULL; }
1750 virtual void setAlphaComp(J3DAlphaComp const*) {}
1751 virtual void setAlphaComp(J3DAlphaComp const&) {}
1752 virtual J3DAlphaComp* getAlphaComp() { return NULL; }
1753 virtual void setBlend(J3DBlend const*) {}
1754 virtual void setBlend(J3DBlend const&) {}
1755 virtual J3DBlend* getBlend() { return NULL; }
1756 virtual void setZMode(J3DZMode const*) {}
1757 virtual void setZMode(J3DZMode) {}
1758 virtual J3DZMode* getZMode() { return NULL; }
1759 virtual void setZCompLoc(u8 const*) {}
1760 virtual void setZCompLoc(u8) {}
1761 virtual u8 getZCompLoc() const { return 0; }
1762 virtual void setDither(u8 const*) {}
1763 virtual void setDither(u8) {}
1764 virtual u8 getDither() const { return 0; }
1765 virtual u32 getFogOffset() const { return 0; }
1766 virtual void setFogOffset(u32) {}
1767 virtual ~J3DPEBlock() {}
1768};
1769
1775 virtual void load() {}
1776 virtual u32 getType() { return 'PENL'; }
1777 virtual ~J3DPEBlockNull() {}
1778};
1779
1785public:
1786 virtual s32 countDLSize();
1787 virtual void load();
1788 virtual u32 getType() { return 'PEOP'; }
1789 virtual ~J3DPEBlockOpa() {}
1790};
1791
1797public:
1798 virtual s32 countDLSize();
1799 virtual void load();
1800 virtual u32 getType() { return 'PEED'; }
1802};
1803
1809public:
1810 virtual s32 countDLSize();
1811 virtual void load();
1812 virtual u32 getType() { return 'PEXL'; }
1813 virtual ~J3DPEBlockXlu() {}
1814};
1815
1821public:
1823 initialize();
1824 }
1825 void initialize();
1826
1827 virtual void reset(J3DPEBlock*);
1828 virtual void load();
1829 virtual void diff(u32 param_0) { if (param_0 & 0x20000000) diffBlend(); };
1830 virtual void diffBlend();
1831 virtual s32 countDLSize();
1832 virtual u32 getType() { return 'PEFG'; }
1833 virtual void setAlphaComp(J3DAlphaComp const* alphaComp) {
1834 J3D_ASSERT_NULLPTR(0xbf9, alphaComp != NULL);
1835 mAlphaComp = *alphaComp;
1836 }
1837 virtual void setAlphaComp(J3DAlphaComp const& alphaComp) { mAlphaComp = alphaComp; }
1838 virtual J3DAlphaComp* getAlphaComp() { return &mAlphaComp; }
1839 virtual void setBlend(J3DBlend const* blend) {
1840 J3D_ASSERT_NULLPTR(0xc07, blend != NULL);
1841 mBlend = *blend;
1842 }
1843 virtual void setBlend(J3DBlend const& blend) { mBlend = blend; }
1844 virtual J3DBlend* getBlend() { return &mBlend; }
1845 virtual void setZMode(J3DZMode const* zMode) {
1846 J3D_ASSERT_NULLPTR(0xc15, zMode != NULL);
1847 mZMode = *zMode;
1848 }
1849 virtual void setZMode(J3DZMode zMode) { mZMode = zMode; }
1850 virtual J3DZMode* getZMode() { return &mZMode; }
1851 virtual void setZCompLoc(u8 const* zCompLoc) {
1852 J3D_ASSERT_NULLPTR(0xc23, zCompLoc != NULL);
1853 mZCompLoc = *zCompLoc;
1854 }
1855 virtual void setZCompLoc(u8 zCompLoc) { mZCompLoc = zCompLoc; }
1856 virtual u8 getZCompLoc() const { return mZCompLoc; }
1857 virtual void setDither(u8 const* dither) {
1858 J3D_ASSERT_NULLPTR(0xc31, dither != NULL);
1859 mDither = *dither;
1860 }
1861 virtual void setDither(u8 dither) { mDither = dither; }
1862 virtual u8 getDither() const { return mDither; }
1864
1866 /* 0x08 */ J3DBlend mBlend;
1867 /* 0x0C */ J3DZMode mZMode;
1868 /* 0x0E */ u8 mZCompLoc;
1869 /* 0x0F */ u8 mDither;
1870}; // Size: 0x10
1871
1877public:
1879 initialize();
1880 }
1881 void initialize();
1882
1883 virtual void reset(J3DPEBlock*);
1884 virtual void load();
1885 virtual void patch();
1886 virtual void diff(u32);
1887 virtual void diffFog();
1888 virtual void diffBlend();
1889 virtual s32 countDLSize();
1890 virtual u32 getType() { return 'PEFL'; }
1891 virtual void setFog(J3DFog fog) { mFog.setFogInfo(fog.getFogInfo()); }
1892 virtual void setFog(J3DFog* pFog) { mFog.setFogInfo(pFog->getFogInfo()); }
1893 virtual J3DFog* getFog() { return &mFog; }
1894 virtual void setAlphaComp(J3DAlphaComp const* alphaComp) {
1895 J3D_ASSERT_NULLPTR(0xc7d, alphaComp != NULL);
1896 mAlphaComp = *alphaComp;
1897 }
1898 virtual void setAlphaComp(J3DAlphaComp const& alphaComp) { mAlphaComp = alphaComp; }
1899 virtual J3DAlphaComp* getAlphaComp() { return &mAlphaComp; }
1900 virtual void setBlend(J3DBlend const* blend) {
1901 J3D_ASSERT_NULLPTR(0xc8b, blend != NULL);
1902 mBlend = *blend;
1903 }
1904 virtual void setBlend(J3DBlend const& blend) { mBlend = blend; }
1905 virtual J3DBlend* getBlend() { return &mBlend; }
1906 virtual void setZMode(J3DZMode const* zMode) {
1907 J3D_ASSERT_NULLPTR(0xc99, zMode != NULL);
1908 mZMode = *zMode;
1909 }
1910 virtual void setZMode(J3DZMode zMode) { mZMode = zMode; }
1911 virtual J3DZMode* getZMode() { return &mZMode; }
1912 virtual void setZCompLoc(u8 const* zCompLoc) {
1913 J3D_ASSERT_NULLPTR(0xca7, zCompLoc != NULL);
1914 mZCompLoc = *zCompLoc;
1915 }
1916 virtual void setZCompLoc(u8 zCompLoc) { mZCompLoc = zCompLoc; }
1917 virtual u8 getZCompLoc() const { return mZCompLoc; }
1918 virtual void setDither(u8 const* dither) {
1919 J3D_ASSERT_NULLPTR(0xcb5, dither != NULL);
1920 mDither = *dither;
1921 }
1922 virtual void setDither(u8 dither) { mDither = dither; }
1923 virtual u8 getDither() const { return mDither; }
1924 virtual u32 getFogOffset() const { return mFogOffset; }
1925 virtual void setFogOffset(u32 fogOffset) { mFogOffset = fogOffset; }
1926 virtual ~J3DPEBlockFull() {}
1927
1928 /* 0x04 */ J3DFog mFog;
1930 /* 0x34 */ J3DBlend mBlend;
1931 /* 0x38 */ J3DZMode mZMode;
1932 /* 0x3A */ u8 mZCompLoc;
1933 /* 0x3B */ u8 mDither;
1934 /* 0x3C */ u32 mFogOffset;
1935}; // Size: 0x40
1936
1937#endif /* J3DMATBLOCK_H */
void J3DGDSetFogRangeAdj(GXBool enable, u16 center, GXFogAdjTable *table)
Definition J3DGD.cpp:598
void J3DGDSetIndTexMtx(GXIndTexMtxID mtx_id, f32 offset[2][3], s8 scale_exp)
Definition J3DGD.cpp:376
void J3DGDSetFog(GXFogType type, f32 startz, f32 endz, f32 nearz, f32 farz, GXColor color)
Definition J3DGD.cpp:533
void J3DGDSetAlphaCompare(GXCompare cmp0, u8 ref0, GXAlphaOp op, GXCompare cmp1, u8 ref1)
Definition J3DGD.h:110
void J3DGDSetBlendMode(GXBlendMode mode, GXBlendFactor srcFactor, GXBlendFactor dstFactor, GXLogicOp logicOp)
Definition J3DGD.h:114
void J3DGDWrite_u32(u32 data)
Definition J3DGD.h:16
void J3DGDSetZMode(u8 compareEnable, GXCompare func, u8 writeEnable)
Definition J3DGD.h:139
u16 calcColorChanID(u16 enable, u8 matSrc, u8 lightMask, u8 diffuseFn, u8 attnFn, u8 ambSrc)
Definition J3DMatBlock.h:66
u8 j3dZModeTable[96]
Definition J3DTevs.cpp:416
u16 calcAlphaCmpID(u8 comp0, u8 op, u8 comp1)
Definition J3DMatBlock.h:1506
static u32 setChanCtrlMacro(u8 enable, GXColorSrc ambSrc, GXColorSrc matSrc, u32 lightMask, GXDiffuseFn diffuseFn, GXAttnFn attnFn)
Definition J3DMatBlock.h:85
static u8 AttnArr[]
Definition J3DMatBlock.h:95
u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2)
Definition J3DMatBlock.h:1411
J3DFogInfo const j3dDefaultFogInfo
Definition J3DTevs.cpp:359
J3DIndTexMtxInfo const j3dDefaultIndTexMtxInfo
Definition J3DTevs.cpp:344
const J3DIndTexOrderInfo j3dDefaultIndTexOrderNull
Definition J3DTevs.cpp:502
const J3DBlendInfo j3dDefaultBlendInfo
Definition J3DTevs.cpp:524
const J3DColorChanInfo j3dDefaultColorChanInfo
Definition J3DTevs.cpp:526
const u16 j3dDefaultAlphaCmpID
Definition J3DTevs.cpp:532
const J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo
Definition J3DTevs.cpp:506
u8 j3dAlphaCmpTable[768]
Definition J3DTevs.cpp:400
const u16 j3dDefaultZModeID
Definition J3DTevs.cpp:534
static s32 offset
Definition WUD.c:1669
static Mtx mtx[10]
Definition c_lib.cpp:486
Definition J3DMatBlock.h:271
J3DColorBlockAmbientOn()
Definition J3DMatBlock.h:273
J3DGXColor mAmbColor[2]
Definition J3DMatBlock.h:297
virtual void reset(J3DColorBlock *)
Definition J3DMatBlock.cpp:1568
void initialize()
Definition J3DMatBlock.cpp:43
virtual void setAmbColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:287
virtual ~J3DColorBlockAmbientOn()
Definition J3DMatBlock.h:295
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:228
virtual void setAmbColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:282
virtual J3DGXColor * getAmbColor(u32 idx)
Definition J3DMatBlock.h:291
virtual u32 getType()
Definition J3DMatBlock.h:281
virtual void load()
Definition J3DMatBlock.cpp:315
Definition J3DMatBlock.h:198
virtual void patch()
Definition J3DMatBlock.cpp:349
virtual void setMatColorOffset(u32 offset)
Definition J3DMatBlock.h:255
virtual u32 getColorChanOffset() const
Definition J3DMatBlock.h:254
J3DGXColor mMatColor[2]
Definition J3DMatBlock.h:259
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:224
virtual void setCullMode(u8 const *mode)
Definition J3DMatBlock.h:247
virtual void load()
Definition J3DMatBlock.cpp:300
virtual void setColorChan(u32 idx, J3DColorChan const &chan)
Definition J3DMatBlock.h:234
u8 mColorChanNum
Definition J3DMatBlock.h:260
virtual u32 getMatColorOffset() const
Definition J3DMatBlock.h:253
virtual void diffColorChan()
Definition J3DMatBlock.cpp:426
virtual void setColorChanOffset(u32 offset)
Definition J3DMatBlock.h:256
virtual void setColorChan(u32 idx, J3DColorChan const *chan)
Definition J3DMatBlock.h:238
virtual void diffMatColor()
Definition J3DMatBlock.cpp:421
virtual void setCullMode(u8 mode)
Definition J3DMatBlock.h:251
J3DColorChan mColorChan[4]
Definition J3DMatBlock.h:261
virtual void setColorChanNum(u8 const *num)
Definition J3DMatBlock.h:229
virtual J3DGXColor * getMatColor(u32 idx)
Definition J3DMatBlock.h:224
virtual ~J3DColorBlockLightOff()
Definition J3DMatBlock.h:257
virtual void setMatColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:215
u8 mCullMode
Definition J3DMatBlock.h:262
virtual void reset(J3DColorBlock *)
Definition J3DMatBlock.cpp:1556
u32 mMatColorOffset
Definition J3DMatBlock.h:263
virtual void patchMatColor()
Definition J3DMatBlock.cpp:354
virtual u32 getType()
Definition J3DMatBlock.h:214
virtual void setColorChanNum(u8 num)
Definition J3DMatBlock.h:228
virtual void setMatColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:220
virtual void patchLight()
Definition J3DMatBlock.cpp:363
virtual u8 getColorChanNum() const
Definition J3DMatBlock.h:233
J3DColorBlockLightOff()
Definition J3DMatBlock.h:200
virtual J3DColorChan * getColorChan(u32 idx)
Definition J3DMatBlock.h:243
void initialize()
Definition J3DMatBlock.cpp:34
virtual u8 getCullMode() const
Definition J3DMatBlock.h:252
u32 mColorChanOffset
Definition J3DMatBlock.h:264
Definition J3DMatBlock.h:304
virtual void patchLight()
Definition J3DMatBlock.cpp:392
virtual void setCullMode(u8 const *mode)
Definition J3DMatBlock.h:376
virtual u32 getColorChanOffset() const
Definition J3DMatBlock.h:387
virtual void setAmbColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:341
virtual void setLight(u32 idx, J3DLightObj *light)
Definition J3DMatBlock.h:368
virtual u8 getColorChanNum() const
Definition J3DMatBlock.h:354
virtual void setColorChan(u32 idx, J3DColorChan const *chan)
Definition J3DMatBlock.h:359
virtual void patch()
Definition J3DMatBlock.cpp:378
J3DLightObj * mLight[8]
Definition J3DMatBlock.h:396
virtual void setColorChanOffset(u32 offset)
Definition J3DMatBlock.h:389
J3DGXColor mAmbColor[2]
Definition J3DMatBlock.h:393
virtual void load()
Definition J3DMatBlock.cpp:329
u32 mMatColorOffset
Definition J3DMatBlock.h:398
virtual void setMatColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:328
virtual J3DGXColor * getMatColor(u32 idx)
Definition J3DMatBlock.h:332
J3DColorBlockLightOn()
Definition J3DMatBlock.h:306
virtual u32 getMatColorOffset() const
Definition J3DMatBlock.h:386
virtual J3DLightObj * getLight(u32 idx)
Definition J3DMatBlock.h:372
virtual void setCullMode(u8 mode)
Definition J3DMatBlock.h:380
virtual void setAmbColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:336
virtual void reset(J3DColorBlock *)
Definition J3DMatBlock.cpp:1585
virtual J3DGXColor * getAmbColor(u32 idx)
Definition J3DMatBlock.h:345
J3DGXColor mMatColor[2]
Definition J3DMatBlock.h:392
virtual void setColorChan(u32 idx, J3DColorChan const &chan)
Definition J3DMatBlock.h:355
u32 mColorChanOffset
Definition J3DMatBlock.h:399
virtual void setMatColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:323
virtual u32 getType()
Definition J3DMatBlock.h:322
J3DColorChan mColorChan[4]
Definition J3DMatBlock.h:395
virtual u8 getCullMode() const
Definition J3DMatBlock.h:383
virtual void diffMatColor()
Definition J3DMatBlock.cpp:455
u8 mColorChanNum
Definition J3DMatBlock.h:394
virtual void setColorChanNum(u8 const *num)
Definition J3DMatBlock.h:350
virtual void diffAmbColor()
Definition J3DMatBlock.cpp:450
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:232
virtual void diffColorChan()
Definition J3DMatBlock.cpp:460
virtual void patchMatColor()
Definition J3DMatBlock.cpp:383
virtual J3DColorChan * getColorChan(u32 idx)
Definition J3DMatBlock.h:364
u8 mCullMode
Definition J3DMatBlock.h:397
virtual void setColorChanNum(u8 num)
Definition J3DMatBlock.h:349
virtual void diffLightObj(u32)
Definition J3DMatBlock.cpp:469
virtual ~J3DColorBlockLightOn()
Definition J3DMatBlock.h:390
void initialize()
Definition J3DMatBlock.cpp:55
virtual void setMatColorOffset(u32 offset)
Definition J3DMatBlock.h:388
Definition J3DMatBlock.h:406
virtual u32 getType()
Definition J3DMatBlock.h:408
virtual ~J3DColorBlockNull()
Definition J3DMatBlock.h:409
Definition J3DMatBlock.h:156
virtual void diffLightObj(u32)
Definition J3DMatBlock.h:167
virtual ~J3DColorBlock()
Definition J3DMatBlock.h:191
virtual void diffMatColor()
Definition J3DMatBlock.h:165
virtual J3DGXColor * getAmbColor(u32)
Definition J3DMatBlock.h:175
virtual u32 getType()=0
virtual u8 getColorChanNum() const
Definition J3DMatBlock.h:178
virtual void patch()
Definition J3DMatBlock.h:160
virtual void setColorChanNum(u8)
Definition J3DMatBlock.h:176
virtual void diff(u32)
Definition J3DMatBlock.h:163
virtual void setLight(u32, J3DLightObj *)
Definition J3DMatBlock.h:182
virtual void diffAmbColor()
Definition J3DMatBlock.h:164
virtual void setAmbColor(u32, J3DGXColor)
Definition J3DMatBlock.h:174
virtual void setColorChanNum(u8 const *)
Definition J3DMatBlock.h:177
virtual u32 getMatColorOffset() const
Definition J3DMatBlock.h:187
virtual void reset(J3DColorBlock *)
Definition J3DMatBlock.h:159
virtual void load()
Definition J3DMatBlock.h:158
virtual void setAmbColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:173
virtual void setMatColorOffset(u32)
Definition J3DMatBlock.h:189
virtual void setColorChan(u32, J3DColorChan const &)
Definition J3DMatBlock.h:179
virtual void setCullMode(u8)
Definition J3DMatBlock.h:185
virtual void patchMatColor()
Definition J3DMatBlock.h:161
virtual s32 countDLSize()
Definition J3DMatBlock.h:168
virtual void setCullMode(u8 const *)
Definition J3DMatBlock.h:184
virtual u8 getCullMode() const
Definition J3DMatBlock.h:186
virtual u32 getColorChanOffset() const
Definition J3DMatBlock.h:188
virtual J3DLightObj * getLight(u32)
Definition J3DMatBlock.h:183
virtual void setColorChan(u32, J3DColorChan const *)
Definition J3DMatBlock.h:180
virtual J3DGXColor * getMatColor(u32)
Definition J3DMatBlock.h:172
virtual void patchLight()
Definition J3DMatBlock.h:162
virtual void diffColorChan()
Definition J3DMatBlock.h:166
virtual void setColorChanOffset(u32)
Definition J3DMatBlock.h:190
virtual void setMatColor(u32, J3DGXColor)
Definition J3DMatBlock.h:171
virtual J3DColorChan * getColorChan(u32)
Definition J3DMatBlock.h:181
virtual void setMatColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:170
Definition J3DMatBlock.h:102
u8 getDiffuseFn() const
Definition J3DMatBlock.h:132
void setLightMask(u8 param_1)
Definition J3DMatBlock.h:124
void load() const
Definition J3DMatBlock.h:144
J3DColorChan(J3DColorChanInfo const &info)
Definition J3DMatBlock.h:107
u8 getEnable() const
Definition J3DMatBlock.h:129
J3DColorChan & operator=(const J3DColorChan &other)
Definition J3DMatBlock.h:139
u8 getAmbSrc() const
Definition J3DMatBlock.h:130
u8 getMatSrc() const
Definition J3DMatBlock.h:131
u8 getLightMask() const
Definition J3DMatBlock.h:123
u8 getAttnFn() const
Definition J3DMatBlock.h:133
u16 mColorChanID
Definition J3DMatBlock.h:149
void setColorChanInfo(J3DColorChanInfo const &info)
Definition J3DMatBlock.h:112
J3DColorChan()
Definition J3DMatBlock.h:104
Definition J3DMatBlock.h:1659
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:268
virtual void setIndTexStageNum(u8 num)
Definition J3DMatBlock.h:1671
virtual void setIndTexOrder(u32 idx, J3DIndTexOrder order)
Definition J3DMatBlock.h:1678
virtual u8 getIndTexStageNum() const
Definition J3DMatBlock.h:1672
virtual void reset(J3DIndBlock *)
Definition J3DMatBlock.cpp:1790
virtual void setIndTexCoordScale(u32 idx, J3DIndTexCoordScale scale)
Definition J3DMatBlock.h:1704
J3DIndTexMtx mIndTexMtx[3]
Definition J3DMatBlock.h:1716
J3DIndBlockFull()
Definition J3DMatBlock.h:1661
u8 mIndTexStageNum
Definition J3DMatBlock.h:1714
virtual void setIndTexCoordScale(u32 idx, J3DIndTexCoordScale const *scale)
Definition J3DMatBlock.h:1699
J3DIndTexOrder mIndTexOrder[4]
Definition J3DMatBlock.h:1715
virtual void load()
Definition J3DMatBlock.cpp:1411
virtual J3DIndTexOrder * getIndTexOrder(u32 idx)
Definition J3DMatBlock.h:1682
J3DIndTexCoordScale mIndTexCoordScale[4]
Definition J3DMatBlock.h:1717
virtual u32 getType()
Definition J3DMatBlock.h:1670
virtual void setIndTexMtx(u32 idx, J3DIndTexMtx mtx)
Definition J3DMatBlock.h:1691
virtual void setIndTexOrder(u32 idx, J3DIndTexOrder const *order)
Definition J3DMatBlock.h:1673
void initialize()
Definition J3DMatBlock.cpp:205
virtual J3DIndTexCoordScale * getIndTexCoordScale(u32 idx)
Definition J3DMatBlock.h:1708
virtual J3DIndTexMtx * getIndTexMtx(u32 idx)
Definition J3DMatBlock.h:1695
virtual void setIndTexMtx(u32 idx, J3DIndTexMtx const *mtx)
Definition J3DMatBlock.h:1686
virtual ~J3DIndBlockFull()
Definition J3DMatBlock.h:1712
Definition J3DMatBlock.h:1724
virtual u32 getType()
Definition J3DMatBlock.h:1729
virtual ~J3DIndBlockNull()
Definition J3DMatBlock.h:1730
virtual void load()
Definition J3DMatBlock.h:1727
virtual void reset(J3DIndBlock *)
Definition J3DMatBlock.h:1728
virtual void diff(u32)
Definition J3DMatBlock.h:1726
Definition J3DMatBlock.h:1634
virtual u8 getIndTexStageNum() const
Definition J3DMatBlock.h:1642
virtual void setIndTexStageNum(u8)
Definition J3DMatBlock.h:1641
virtual void setIndTexMtx(u32, J3DIndTexMtx const *)
Definition J3DMatBlock.h:1646
virtual void setIndTexCoordScale(u32, J3DIndTexCoordScale const *)
Definition J3DMatBlock.h:1649
virtual void setIndTexOrder(u32, J3DIndTexOrder)
Definition J3DMatBlock.h:1643
virtual J3DIndTexCoordScale * getIndTexCoordScale(u32)
Definition J3DMatBlock.h:1651
virtual void setIndTexOrder(u32, J3DIndTexOrder const *)
Definition J3DMatBlock.h:1644
virtual u32 getType()=0
virtual void setIndTexCoordScale(u32, J3DIndTexCoordScale)
Definition J3DMatBlock.h:1650
virtual void diff(u32)=0
virtual void reset(J3DIndBlock *)
Definition J3DMatBlock.h:1636
virtual void load()=0
virtual ~J3DIndBlock()
Definition J3DMatBlock.h:1652
virtual void setIndTexMtx(u32, J3DIndTexMtx)
Definition J3DMatBlock.h:1647
virtual J3DIndTexOrder * getIndTexOrder(u32)
Definition J3DMatBlock.h:1645
virtual J3DIndTexMtx * getIndTexMtx(u32)
Definition J3DMatBlock.h:1648
virtual s32 countDLSize()
Definition J3DMatBlock.h:1639
Definition J3DTevs.h:251
Definition J3DMatBlock.h:1820
J3DPEBlockFogOff()
Definition J3DMatBlock.h:1822
virtual u8 getDither() const
Definition J3DMatBlock.h:1862
virtual void setZCompLoc(u8 const *zCompLoc)
Definition J3DMatBlock.h:1851
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:1844
virtual ~J3DPEBlockFogOff()
Definition J3DMatBlock.h:1863
void initialize()
Definition J3DMatBlock.cpp:209
J3DBlend mBlend
Definition J3DMatBlock.h:1866
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:1850
J3DZMode mZMode
Definition J3DMatBlock.h:1867
virtual void setDither(u8 const *dither)
Definition J3DMatBlock.h:1857
virtual J3DAlphaComp * getAlphaComp()
Definition J3DMatBlock.h:1838
virtual void setZCompLoc(u8 zCompLoc)
Definition J3DMatBlock.h:1855
virtual void setAlphaComp(J3DAlphaComp const &alphaComp)
Definition J3DMatBlock.h:1837
virtual u8 getZCompLoc() const
Definition J3DMatBlock.h:1856
virtual void reset(J3DPEBlock *)
Definition J3DMatBlock.cpp:1805
virtual u32 getType()
Definition J3DMatBlock.h:1832
virtual void diff(u32 param_0)
Definition J3DMatBlock.h:1829
u8 mZCompLoc
Definition J3DMatBlock.h:1868
virtual void setBlend(J3DBlend const *blend)
Definition J3DMatBlock.h:1839
u8 mDither
Definition J3DMatBlock.h:1869
virtual void setDither(u8 dither)
Definition J3DMatBlock.h:1861
J3DAlphaComp mAlphaComp
Definition J3DMatBlock.h:1865
virtual void setBlend(J3DBlend const &blend)
Definition J3DMatBlock.h:1843
virtual void setZMode(J3DZMode zMode)
Definition J3DMatBlock.h:1849
virtual void setAlphaComp(J3DAlphaComp const *alphaComp)
Definition J3DMatBlock.h:1833
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:284
virtual void setZMode(J3DZMode const *zMode)
Definition J3DMatBlock.h:1845
virtual void load()
Definition J3DMatBlock.cpp:1502
virtual void diffBlend()
Definition J3DMatBlock.cpp:1510
Definition J3DMatBlock.h:1876
virtual void setFog(J3DFog *pFog)
Definition J3DMatBlock.h:1892
u8 mZCompLoc
Definition J3DMatBlock.h:1932
virtual void setDither(u8 const *dither)
Definition J3DMatBlock.h:1918
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:288
virtual void diffFog()
Definition J3DMatBlock.cpp:1535
virtual void setZMode(J3DZMode zMode)
Definition J3DMatBlock.h:1910
virtual ~J3DPEBlockFull()
Definition J3DMatBlock.h:1926
virtual void setDither(u8 dither)
Definition J3DMatBlock.h:1922
virtual u8 getZCompLoc() const
Definition J3DMatBlock.h:1917
u8 mDither
Definition J3DMatBlock.h:1933
virtual void setFog(J3DFog fog)
Definition J3DMatBlock.h:1891
J3DPEBlockFull()
Definition J3DMatBlock.h:1878
J3DAlphaComp mAlphaComp
Definition J3DMatBlock.h:1929
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:1911
virtual void load()
Definition J3DMatBlock.cpp:1516
virtual void setBlend(J3DBlend const *blend)
Definition J3DMatBlock.h:1900
void initialize()
Definition J3DMatBlock.cpp:216
virtual void setZMode(J3DZMode const *zMode)
Definition J3DMatBlock.h:1906
virtual J3DAlphaComp * getAlphaComp()
Definition J3DMatBlock.h:1899
virtual void setZCompLoc(u8 zCompLoc)
Definition J3DMatBlock.h:1916
J3DZMode mZMode
Definition J3DMatBlock.h:1931
virtual void setZCompLoc(u8 const *zCompLoc)
Definition J3DMatBlock.h:1912
virtual u8 getDither() const
Definition J3DMatBlock.h:1923
virtual void diffBlend()
Definition J3DMatBlock.cpp:1540
virtual J3DFog * getFog()
Definition J3DMatBlock.h:1893
virtual void setAlphaComp(J3DAlphaComp const *alphaComp)
Definition J3DMatBlock.h:1894
J3DFog mFog
Definition J3DMatBlock.h:1928
virtual void setFogOffset(u32 fogOffset)
Definition J3DMatBlock.h:1925
virtual u32 getType()
Definition J3DMatBlock.h:1890
J3DBlend mBlend
Definition J3DMatBlock.h:1930
virtual void setAlphaComp(J3DAlphaComp const &alphaComp)
Definition J3DMatBlock.h:1898
virtual void reset(J3DPEBlock *)
Definition J3DMatBlock.cpp:1819
virtual void patch()
Definition J3DMatBlock.cpp:1526
u32 mFogOffset
Definition J3DMatBlock.h:1934
virtual void setBlend(J3DBlend const &blend)
Definition J3DMatBlock.h:1904
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:1905
virtual u32 getFogOffset() const
Definition J3DMatBlock.h:1924
Definition J3DMatBlock.h:1784
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:272
virtual void load()
Definition J3DMatBlock.cpp:1474
virtual ~J3DPEBlockOpa()
Definition J3DMatBlock.h:1789
virtual u32 getType()
Definition J3DMatBlock.h:1788
Definition J3DMatBlock.h:1796
virtual u32 getType()
Definition J3DMatBlock.h:1800
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:276
virtual ~J3DPEBlockTexEdge()
Definition J3DMatBlock.h:1801
virtual void load()
Definition J3DMatBlock.cpp:1482
Definition J3DMatBlock.h:1808
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:280
virtual u32 getType()
Definition J3DMatBlock.h:1812
virtual void load()
Definition J3DMatBlock.cpp:1490
virtual ~J3DPEBlockXlu()
Definition J3DMatBlock.h:1813
Definition J3DMatBlock.h:1737
virtual void setZMode(J3DZMode)
Definition J3DMatBlock.h:1757
virtual void setFog(J3DFog)
Definition J3DMatBlock.h:1747
virtual void setZMode(J3DZMode const *)
Definition J3DMatBlock.h:1756
virtual s32 countDLSize()
Definition J3DMatBlock.h:1745
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:1755
virtual u8 getDither() const
Definition J3DMatBlock.h:1764
virtual void load()=0
virtual void diffFog()
Definition J3DMatBlock.h:1743
virtual J3DFog * getFog()
Definition J3DMatBlock.h:1749
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:1758
virtual void reset(J3DPEBlock *)
Definition J3DMatBlock.h:1739
virtual void setBlend(J3DBlend const *)
Definition J3DMatBlock.h:1753
virtual void setDither(u8 const *)
Definition J3DMatBlock.h:1762
virtual u8 getZCompLoc() const
Definition J3DMatBlock.h:1761
virtual void setZCompLoc(u8)
Definition J3DMatBlock.h:1760
virtual void setFog(J3DFog *)
Definition J3DMatBlock.h:1748
virtual u32 getType()=0
virtual void setBlend(J3DBlend const &)
Definition J3DMatBlock.h:1754
virtual void setAlphaComp(J3DAlphaComp const *)
Definition J3DMatBlock.h:1750
virtual void setZCompLoc(u8 const *)
Definition J3DMatBlock.h:1759
virtual J3DAlphaComp * getAlphaComp()
Definition J3DMatBlock.h:1752
virtual void diff(u32)
Definition J3DMatBlock.h:1742
virtual void setDither(u8)
Definition J3DMatBlock.h:1763
virtual void patch()
Definition J3DMatBlock.h:1741
virtual void diffBlend()
Definition J3DMatBlock.h:1744
virtual void setFogOffset(u32)
Definition J3DMatBlock.h:1766
virtual ~J3DPEBlock()
Definition J3DMatBlock.h:1767
virtual u32 getFogOffset() const
Definition J3DMatBlock.h:1765
virtual void setAlphaComp(J3DAlphaComp const &)
Definition J3DMatBlock.h:1751
Definition J3DMatBlock.h:1239
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo info)
Definition J3DMatBlock.h:1363
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const *info)
Definition J3DMatBlock.h:1358
virtual void diffTevReg()
Definition J3DMatBlock.cpp:1308
virtual void setTevKColorSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:1313
virtual void setIndTevStage(u32 idx, J3DIndTevStage const *stage)
Definition J3DMatBlock.h:1380
virtual void patchTevReg()
Definition J3DMatBlock.cpp:1067
u8 mTevKAlphaSel[16]
Definition J3DMatBlock.h:1405
virtual J3DTevSwapModeTable * getTevSwapModeTable(u32 idx)
Definition J3DMatBlock.h:1376
virtual void setTevStage(u32 idx, J3DTevStage const *stage)
Definition J3DMatBlock.h:1345
virtual void patch()
Definition J3DMatBlock.cpp:1119
virtual J3DTevStage * getTevStage(u32 idx)
Definition J3DMatBlock.h:1354
virtual void setTexNo(u32 idx, u16 const *texNo)
Definition J3DMatBlock.h:1261
virtual void setTevKColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:1300
virtual void load()
Definition J3DMatBlock.cpp:730
virtual void ptrToIndex()
Definition J3DMatBlock.cpp:1345
virtual u8 getTevKAlphaSel(u32 idx)
Definition J3DMatBlock.h:1335
virtual J3DIndTevStage * getIndTevStage(u32 idx)
Definition J3DMatBlock.h:1389
u8 mTevKColorSel[16]
Definition J3DMatBlock.h:1404
virtual void setTevKAlphaSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:1331
virtual u32 getType()
Definition J3DMatBlock.h:1259
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.cpp:1759
virtual J3DTevOrder * getTevOrder(u32 idx)
Definition J3DMatBlock.h:1283
virtual u32 getTevRegOffset() const
Definition J3DMatBlock.h:1394
virtual void setTevOrder(u32 idx, J3DTevOrder order)
Definition J3DMatBlock.h:1279
virtual void diffTexNo()
Definition J3DMatBlock.cpp:1300
virtual void setTexNo(u32 idx, u16 texNo)
Definition J3DMatBlock.h:1266
virtual void setTevOrder(u32 idx, J3DTevOrder const *order)
Definition J3DMatBlock.h:1274
virtual void indexToPtr()
Definition J3DMatBlock.h:1258
virtual void setTevKAlphaSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:1326
J3DTevOrder mTevOrder[16]
Definition J3DMatBlock.h:1399
J3DTevSwapModeTable mTevSwapModeTable[4]
Definition J3DMatBlock.h:1406
virtual void diffTevStageIndirect()
Definition J3DMatBlock.cpp:1324
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:1344
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:264
virtual void diffTexCoordScale()
Definition J3DMatBlock.cpp:1331
virtual void setTevRegOffset(u32 offset)
Definition J3DMatBlock.h:1395
virtual ~J3DTevBlock16()
Definition J3DMatBlock.h:1396
u8 mTevStageNum
Definition J3DMatBlock.h:1400
J3DTevStage mTevStage[16]
Definition J3DMatBlock.h:1401
J3DGXColor mTevKColor[4]
Definition J3DMatBlock.h:1403
virtual void setTevColor(u32 idx, J3DGXColorS10 color)
Definition J3DMatBlock.h:1292
virtual J3DGXColorS10 * getTevColor(u32 idx)
Definition J3DMatBlock.h:1296
virtual void setTevStage(u32 idx, J3DTevStage stage)
Definition J3DMatBlock.h:1350
virtual J3DGXColor * getTevKColor(u32 idx)
Definition J3DMatBlock.h:1309
virtual void setTevKColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:1305
virtual void setTevColor(u32 idx, J3DGXColorS10 const *color)
Definition J3DMatBlock.h:1287
u16 mTexNo[8]
Definition J3DMatBlock.h:1398
virtual void setTevStageNum(u8 const *num)
Definition J3DMatBlock.h:1339
virtual void setIndTevStage(u32 idx, J3DIndTevStage stage)
Definition J3DMatBlock.h:1385
J3DGXColorS10 mTevColor[4]
Definition J3DMatBlock.h:1402
void initialize()
Definition J3DMatBlock.cpp:178
virtual u16 getTexNo(u32 idx) const
Definition J3DMatBlock.h:1270
virtual void setTevStageNum(u8 num)
Definition J3DMatBlock.h:1343
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.cpp:1082
u32 mTevRegOffset
Definition J3DMatBlock.h:1408
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const *table)
Definition J3DMatBlock.h:1367
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:1393
virtual void patchTexNo()
Definition J3DMatBlock.cpp:1053
virtual u8 getTevKColorSel(u32 idx)
Definition J3DMatBlock.h:1322
virtual void diffTevStage()
Definition J3DMatBlock.cpp:1317
J3DTevBlock16()
Definition J3DMatBlock.h:1241
virtual void setTevKColorSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:1318
J3DIndTevStage mIndTevStage[16]
Definition J3DMatBlock.h:1407
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable table)
Definition J3DMatBlock.h:1372
Definition J3DMatBlock.h:797
virtual void diffTexNo()
Definition J3DMatBlock.cpp:1191
virtual J3DIndTevStage * getIndTevStage(u32 idx)
Definition J3DMatBlock.h:870
J3DIndTevStage mIndTevStage[1]
Definition J3DMatBlock.h:880
void initialize()
Definition J3DMatBlock.cpp:117
virtual void setTevOrder(u32 idx, J3DTevOrder const *order)
Definition J3DMatBlock.h:832
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:252
virtual void setTevOrder(u32 idx, J3DTevOrder order)
Definition J3DMatBlock.h:837
virtual void patch()
Definition J3DMatBlock.cpp:911
virtual u32 getType()
Definition J3DMatBlock.h:817
virtual void patchTexNo()
Definition J3DMatBlock.cpp:870
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:874
virtual ~J3DTevBlock1()
Definition J3DMatBlock.h:875
virtual void diffTevStageIndirect()
Definition J3DMatBlock.cpp:1203
virtual J3DTevStage * getTevStage(u32 idx)
Definition J3DMatBlock.h:857
virtual void setIndTevStage(u32 idx, J3DIndTevStage stage)
Definition J3DMatBlock.h:866
J3DTevStage mTevStage[1]
Definition J3DMatBlock.h:879
virtual void load()
Definition J3DMatBlock.cpp:569
virtual void patchTevReg()
Definition J3DMatBlock.cpp:882
virtual void indexToPtr()
Definition J3DMatBlock.h:816
virtual void ptrToIndex()
Definition J3DMatBlock.h:815
J3DTevOrder mTevOrder[1]
Definition J3DMatBlock.h:878
virtual void diffTexCoordScale()
Definition J3DMatBlock.cpp:1207
virtual J3DTevOrder * getTevOrder(u32 idx)
Definition J3DMatBlock.h:841
virtual u16 getTexNo(u32 idx) const
Definition J3DMatBlock.h:828
virtual void setTevStage(u32 idx, J3DTevStage const *stage)
Definition J3DMatBlock.h:848
virtual void setTexNo(u32 idx, u16 no)
Definition J3DMatBlock.h:824
u16 mTexNo[1]
Definition J3DMatBlock.h:877
virtual void diffTevReg()
Definition J3DMatBlock.cpp:1197
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.cpp:884
virtual void setIndTevStage(u32 idx, J3DIndTevStage const *stage)
Definition J3DMatBlock.h:861
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.cpp:1685
virtual void setTexNo(u32 idx, u16 const *no)
Definition J3DMatBlock.h:819
virtual void diffTevStage()
Definition J3DMatBlock.cpp:1199
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:847
virtual void setTevStageNum(u8 const *num)
Definition J3DMatBlock.h:845
virtual void setTevStage(u32 idx, J3DTevStage stage)
Definition J3DMatBlock.h:853
J3DTevBlock1()
Definition J3DMatBlock.h:799
virtual void setTevStageNum(u8 num)
Definition J3DMatBlock.h:846
Definition J3DMatBlock.h:887
J3DTevOrder mTevOrder[2]
Definition J3DMatBlock.h:1047
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.cpp:944
virtual void setTevStage(u32 idx, J3DTevStage const *stage)
Definition J3DMatBlock.h:993
virtual void diffTevStage()
Definition J3DMatBlock.cpp:1231
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:992
virtual void patchTexNo()
Definition J3DMatBlock.cpp:915
virtual void setTevStage(u32 idx, J3DTevStage stage)
Definition J3DMatBlock.h:998
void initialize()
Definition J3DMatBlock.cpp:123
virtual void setTevOrder(u32 idx, J3DTevOrder const *order)
Definition J3DMatBlock.h:922
virtual u8 getTevKAlphaSel(u32 idx)
Definition J3DMatBlock.h:983
virtual void diffTexCoordScale()
Definition J3DMatBlock.cpp:1245
virtual J3DTevSwapModeTable * getTevSwapModeTable(u32 idx)
Definition J3DMatBlock.h:1024
virtual ~J3DTevBlock2()
Definition J3DMatBlock.h:1044
virtual void ptrToIndex()
Definition J3DMatBlock.h:905
virtual J3DIndTevStage * getIndTevStage(u32 idx)
Definition J3DMatBlock.h:1037
virtual J3DGXColor * getTevKColor(u32 idx)
Definition J3DMatBlock.h:957
u8 mTevKColorSel[2]
Definition J3DMatBlock.h:1052
virtual void setTevKAlphaSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:979
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:1041
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const *table)
Definition J3DMatBlock.h:1015
J3DGXColor mTevKColor[4]
Definition J3DMatBlock.h:1051
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo info)
Definition J3DMatBlock.h:1011
virtual void setTevKAlphaSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:974
virtual void setTevKColorSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:961
virtual void patchTevReg()
Definition J3DMatBlock.cpp:929
u32 mTevRegOffset
Definition J3DMatBlock.h:1056
virtual void diffTevStageIndirect()
Definition J3DMatBlock.cpp:1238
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable table)
Definition J3DMatBlock.h:1020
J3DTevStage mTevStage[2]
Definition J3DMatBlock.h:1050
virtual void setIndTevStage(u32 idx, J3DIndTevStage stage)
Definition J3DMatBlock.h:1033
u8 mTevKAlphaSel[2]
Definition J3DMatBlock.h:1053
virtual void setTevColor(u32 idx, J3DGXColorS10 const *color)
Definition J3DMatBlock.h:935
J3DGXColorS10 mTevColor[4]
Definition J3DMatBlock.h:1048
virtual void indexToPtr()
Definition J3DMatBlock.h:906
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const *info)
Definition J3DMatBlock.h:1006
virtual void setTevRegOffset(u32 offset)
Definition J3DMatBlock.h:1043
virtual void setTexNo(u32 idx, u16 texNo)
Definition J3DMatBlock.h:914
J3DTevBlock2()
Definition J3DMatBlock.h:889
J3DIndTevStage mIndTevStage[2]
Definition J3DMatBlock.h:1055
virtual void setTevKColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:953
virtual u8 getTevKColorSel(u32 idx)
Definition J3DMatBlock.h:970
virtual void setTevKColorSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:966
virtual void setTevStageNum(u8 num)
Definition J3DMatBlock.h:991
virtual void setIndTevStage(u32 idx, J3DIndTevStage const *stage)
Definition J3DMatBlock.h:1028
u8 mTevStageNum
Definition J3DMatBlock.h:1049
virtual void load()
Definition J3DMatBlock.cpp:596
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:256
virtual void diffTevReg()
Definition J3DMatBlock.cpp:1222
virtual void diffTexNo()
Definition J3DMatBlock.cpp:1214
virtual J3DTevStage * getTevStage(u32 idx)
Definition J3DMatBlock.h:1002
virtual u32 getTevRegOffset() const
Definition J3DMatBlock.h:1042
u16 mTexNo[2]
Definition J3DMatBlock.h:1046
virtual u32 getType()
Definition J3DMatBlock.h:907
J3DTevSwapModeTable mTevSwapModeTable[4]
Definition J3DMatBlock.h:1054
virtual void setTevOrder(u32 idx, J3DTevOrder order)
Definition J3DMatBlock.h:927
virtual u16 getTexNo(u32 idx) const
Definition J3DMatBlock.h:918
virtual void setTevColor(u32 idx, J3DGXColorS10 color)
Definition J3DMatBlock.h:940
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.cpp:1694
virtual void setTevKColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:948
virtual J3DTevOrder * getTevOrder(u32 idx)
Definition J3DMatBlock.h:931
virtual void setTexNo(u32 idx, u16 const *texNo)
Definition J3DMatBlock.h:909
virtual J3DGXColorS10 * getTevColor(u32 idx)
Definition J3DMatBlock.h:944
virtual void setTevStageNum(u8 const *num)
Definition J3DMatBlock.h:987
virtual void patch()
Definition J3DMatBlock.cpp:978
Definition J3DMatBlock.h:1063
virtual void setTexNo(u32 idx, u16 const *texNo)
Definition J3DMatBlock.h:1085
u8 mTevStageNum
Definition J3DMatBlock.h:1224
J3DGXColor mTevKColor[4]
Definition J3DMatBlock.h:1227
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo info)
Definition J3DMatBlock.h:1187
virtual J3DTevOrder * getTevOrder(u32 idx)
Definition J3DMatBlock.h:1107
virtual void setTevKAlphaSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:1155
u8 mTevKAlphaSel[4]
Definition J3DMatBlock.h:1229
void initialize()
Definition J3DMatBlock.cpp:146
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:1217
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable table)
Definition J3DMatBlock.h:1196
virtual void indexToPtr()
Definition J3DMatBlock.h:1082
virtual void setTevStage(u32 idx, J3DTevStage stage)
Definition J3DMatBlock.h:1174
virtual void patchTevReg()
Definition J3DMatBlock.cpp:997
virtual void diffTevStageIndirect()
Definition J3DMatBlock.cpp:1280
virtual void setTexNo(u32 idx, u16 texNo)
Definition J3DMatBlock.h:1090
virtual void diffTevStage()
Definition J3DMatBlock.cpp:1273
virtual void setIndTevStage(u32 idx, J3DIndTevStage const *stage)
Definition J3DMatBlock.h:1204
virtual void setTevColor(u32 idx, J3DGXColorS10 color)
Definition J3DMatBlock.h:1116
virtual void setTevColor(u32 idx, J3DGXColorS10 const *color)
Definition J3DMatBlock.h:1111
virtual void setTevStageNum(u8 const *num)
Definition J3DMatBlock.h:1163
virtual J3DIndTevStage * getIndTevStage(u32 idx)
Definition J3DMatBlock.h:1213
u32 mTevRegOffset
Definition J3DMatBlock.h:1232
J3DTevBlock4()
Definition J3DMatBlock.h:1065
virtual u8 getTevKColorSel(u32 idx)
Definition J3DMatBlock.h:1146
virtual void setTevSwapModeTable(u32 idx, J3DTevSwapModeTable const *table)
Definition J3DMatBlock.h:1191
virtual J3DGXColor * getTevKColor(u32 idx)
Definition J3DMatBlock.h:1133
virtual u32 getType()
Definition J3DMatBlock.h:1083
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:260
virtual void setTevKColorSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:1137
J3DTevStage mTevStage[4]
Definition J3DMatBlock.h:1225
virtual void patchTexNo()
Definition J3DMatBlock.cpp:983
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:1168
virtual void setTevKColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:1124
virtual void setTevOrder(u32 idx, J3DTevOrder order)
Definition J3DMatBlock.h:1103
virtual void ptrToIndex()
Definition J3DMatBlock.h:1081
virtual void setTevStageNum(u8 num)
Definition J3DMatBlock.h:1167
virtual void diffTexNo()
Definition J3DMatBlock.cpp:1256
J3DGXColorS10 mTevColor[4]
Definition J3DMatBlock.h:1226
virtual void setIndTevStage(u32 idx, J3DIndTevStage stage)
Definition J3DMatBlock.h:1209
virtual ~J3DTevBlock4()
Definition J3DMatBlock.h:1220
J3DTevSwapModeTable mTevSwapModeTable[4]
Definition J3DMatBlock.h:1230
J3DIndTevStage mIndTevStage[4]
Definition J3DMatBlock.h:1231
virtual J3DTevStage * getTevStage(u32 idx)
Definition J3DMatBlock.h:1178
virtual void setTevKAlphaSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:1150
u8 mTevKColorSel[4]
Definition J3DMatBlock.h:1228
virtual void diffTexCoordScale()
Definition J3DMatBlock.cpp:1287
virtual void setTevStage(u32 idx, J3DTevStage const *stage)
Definition J3DMatBlock.h:1169
virtual void setTevSwapModeInfo(u32 idx, J3DTevSwapModeInfo const *info)
Definition J3DMatBlock.h:1182
virtual void patch()
Definition J3DMatBlock.cpp:1048
virtual J3DGXColorS10 * getTevColor(u32 idx)
Definition J3DMatBlock.h:1120
virtual u8 getTevKAlphaSel(u32 idx)
Definition J3DMatBlock.h:1159
virtual void setTevKColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:1129
virtual void diffTevReg()
Definition J3DMatBlock.cpp:1264
virtual void setTevOrder(u32 idx, J3DTevOrder const *order)
Definition J3DMatBlock.h:1098
J3DTevOrder mTevOrder[4]
Definition J3DMatBlock.h:1223
u16 mTexNo[4]
Definition J3DMatBlock.h:1222
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.cpp:1012
virtual u32 getTevRegOffset() const
Definition J3DMatBlock.h:1218
virtual void setTevKColorSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:1142
virtual void load()
Definition J3DMatBlock.cpp:662
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.cpp:1722
virtual u16 getTexNo(u32 idx) const
Definition J3DMatBlock.h:1094
virtual void setTevRegOffset(u32 offset)
Definition J3DMatBlock.h:1219
virtual J3DTevSwapModeTable * getTevSwapModeTable(u32 idx)
Definition J3DMatBlock.h:1200
Definition J3DMatBlock.h:640
void initialize()
Definition J3DMatBlock.cpp:91
virtual void ptrToIndex()
Definition J3DMatBlock.h:645
J3DTevBlockNull()
Definition J3DMatBlock.h:642
virtual u32 getType()
Definition J3DMatBlock.h:647
virtual void indexToPtr()
Definition J3DMatBlock.h:646
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.h:644
virtual ~J3DTevBlockNull()
Definition J3DMatBlock.h:648
Definition J3DMatBlock.h:655
virtual J3DGXColorS10 * getTevColor(u32 idx)
Definition J3DMatBlock.h:744
virtual void setTevKColor(u32 idx, J3DGXColor color)
Definition J3DMatBlock.h:753
virtual void diffTexNo()
Definition J3DMatBlock.cpp:1146
J3DIndTevStage mIndTevStage[8]
Definition J3DMatBlock.h:785
virtual void setTevStageNum(u8 num)
Definition J3DMatBlock.h:680
virtual void setTevKColorSel(u32 idx, u8 const *sel)
Definition J3DMatBlock.h:761
virtual void patch()
Definition J3DMatBlock.cpp:865
virtual void setTevColor(u32 idx, J3DGXColorS10 const *color)
Definition J3DMatBlock.h:735
virtual void setTevKColor(u32 idx, J3DGXColor const *color)
Definition J3DMatBlock.h:748
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.cpp:828
u8 mTevStageNum
Definition J3DMatBlock.h:789
J3DGXColorS10 mTevColor[4]
Definition J3DMatBlock.h:786
virtual void setIndTevStage(u32 idx, J3DIndTevStage const *stage)
Definition J3DMatBlock.h:722
J3DTevBlockPatched()
Definition J3DMatBlock.h:657
virtual void setTevOrder(u32 idx, J3DTevOrder const *order)
Definition J3DMatBlock.h:696
virtual J3DGXColor * getTevKColor(u32 idx)
Definition J3DMatBlock.h:757
virtual void load()
Definition J3DMatBlock.h:663
virtual void diffTevReg()
Definition J3DMatBlock.cpp:1168
virtual void setTevKColorSel(u32 idx, u8 sel)
Definition J3DMatBlock.h:766
virtual ~J3DTevBlockPatched()
Definition J3DMatBlock.h:780
virtual void setTevRegOffset(u32 offset)
Definition J3DMatBlock.h:776
J3DTevStage mTevStage[8]
Definition J3DMatBlock.h:784
virtual J3DIndTevStage * getIndTevStage(u32 idx)
Definition J3DMatBlock.h:731
void initialize()
Definition J3DMatBlock.cpp:95
virtual u8 getTevKColorSel(u32 idx)
Definition J3DMatBlock.h:770
virtual void diffTexCoordScale()
Definition J3DMatBlock.cpp:1177
virtual u32 getType()
Definition J3DMatBlock.h:675
virtual void setTevStage(u32 idx, J3DTevStage const *stage)
Definition J3DMatBlock.h:709
virtual u16 getTexNo(u32 idx) const
Definition J3DMatBlock.h:692
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:681
u32 mTevRegOffset
Definition J3DMatBlock.h:790
virtual void patchTevReg()
Definition J3DMatBlock.cpp:813
virtual void indexToPtr()
Definition J3DMatBlock.h:674
virtual void setIndTevStage(u32 idx, J3DIndTevStage stage)
Definition J3DMatBlock.h:727
virtual void setTevStageNum(u8 const *num)
Definition J3DMatBlock.h:676
virtual void setTevColor(u32 idx, J3DGXColorS10 color)
Definition J3DMatBlock.h:740
virtual void setTevStage(u32 idx, J3DTevStage stage)
Definition J3DMatBlock.h:714
u8 mTevKColorSel[8]
Definition J3DMatBlock.h:788
J3DGXColor mTevKColor[4]
Definition J3DMatBlock.h:787
virtual void diffTevStage()
Definition J3DMatBlock.cpp:1154
virtual void ptrToIndex()
Definition J3DMatBlock.cpp:1369
virtual void setTevOrder(u32 idx, J3DTevOrder order)
Definition J3DMatBlock.h:701
virtual u32 getTevRegOffset() const
Definition J3DMatBlock.h:775
virtual void diffTevStageIndirect()
Definition J3DMatBlock.cpp:1161
virtual J3DTevOrder * getTevOrder(u32 idx)
Definition J3DMatBlock.h:705
J3DTevOrder mTevOrder[8]
Definition J3DMatBlock.h:783
virtual void setTexNo(u32 idx, u16 texNo)
Definition J3DMatBlock.h:688
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.cpp:1666
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:774
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:248
virtual void setTexNo(u32 idx, u16 const *texNo)
Definition J3DMatBlock.h:683
u16 mTexNo[8]
Definition J3DMatBlock.h:782
virtual void patchTexNo()
Definition J3DMatBlock.cpp:799
virtual J3DTevStage * getTevStage(u32 idx)
Definition J3DMatBlock.h:718
Definition J3DMatBlock.h:574
virtual void setTevStageNum(u8 const *)
Definition J3DMatBlock.h:610
virtual void setTevColor(u32, J3DGXColorS10 const *)
Definition J3DMatBlock.h:598
virtual u8 getTevKColorSel(u32)
Definition J3DMatBlock.h:606
virtual void setIndTevStage(u32, J3DIndTevStage)
Definition J3DMatBlock.h:622
virtual void setTevSwapModeTable(u32, J3DTevSwapModeTable)
Definition J3DMatBlock.h:619
virtual void setTevKColorSel(u32, u8)
Definition J3DMatBlock.h:605
virtual void diffTevStage()
Definition J3DMatBlock.h:582
virtual void setTevSwapModeInfo(u32, J3DTevSwapModeInfo)
Definition J3DMatBlock.h:617
virtual void patchTexNoAndTexCoordScale()
Definition J3DMatBlock.h:587
virtual void setTevSwapModeTable(u32, J3DTevSwapModeTable const *)
Definition J3DMatBlock.h:618
virtual void setTevKColor(u32, J3DGXColor)
Definition J3DMatBlock.h:602
virtual void diffTexNo()
Definition J3DMatBlock.h:579
virtual u32 getType()=0
virtual s32 countDLSize()
Definition J3DMatBlock.h:591
virtual void setTexNo(u32, u16)
Definition J3DMatBlock.h:593
virtual void setTevStageNum(u8)
Definition J3DMatBlock.h:611
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 setTevRegOffset(u32)
Definition J3DMatBlock.h:627
virtual void setTevKColorSel(u32, u8 const *)
Definition J3DMatBlock.h:604
virtual void diffTevStageIndirect()
Definition J3DMatBlock.h:583
virtual void diffTevReg()
Definition J3DMatBlock.h:580
u32 mTexNoOffset
Definition J3DMatBlock.h:633
virtual void ptrToIndex()=0
virtual u32 getTexNoOffset() const
Definition J3DMatBlock.h:624
virtual void setTexNo(u32, u16 const *)
Definition J3DMatBlock.h:592
virtual void setTevOrder(u32, J3DTevOrder const *)
Definition J3DMatBlock.h:595
virtual void setTevKColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:601
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:612
virtual J3DIndTevStage * getIndTevStage(u32)
Definition J3DMatBlock.h:623
virtual void patch()
Definition J3DMatBlock.h:584
virtual void patchTexNo()
Definition J3DMatBlock.h:585
virtual void setTevColor(u32, J3DGXColorS10)
Definition J3DMatBlock.h:599
virtual void reset(J3DTevBlock *)
Definition J3DMatBlock.h:576
virtual void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const *)
Definition J3DMatBlock.h:616
virtual J3DTevSwapModeTable * getTevSwapModeTable(u32)
Definition J3DMatBlock.h:620
virtual void setTexNoOffset(u32 offset)
Definition J3DMatBlock.h:626
void indexToPtr_private(u32)
Definition J3DMatBlock.cpp:1393
virtual void setTevKAlphaSel(u32, u8 const *)
Definition J3DMatBlock.h:607
virtual void indexToPtr()=0
virtual ~J3DTevBlock()
Definition J3DMatBlock.h:628
virtual J3DTevStage * getTevStage(u32)
Definition J3DMatBlock.h:615
virtual void setTevStage(u32, J3DTevStage)
Definition J3DMatBlock.h:614
virtual void diffTexCoordScale()
Definition J3DMatBlock.h:581
virtual void load()
Definition J3DMatBlock.h:577
virtual void setTevStage(u32, J3DTevStage const *)
Definition J3DMatBlock.h:613
virtual void patchTevReg()
Definition J3DMatBlock.h:586
virtual void setTevOrder(u32, J3DTevOrder)
Definition J3DMatBlock.h:596
virtual J3DTevOrder * getTevOrder(u32)
Definition J3DMatBlock.h:597
virtual u8 getTevKAlphaSel(u32)
Definition J3DMatBlock.h:609
virtual void setTevKAlphaSel(u32, u8)
Definition J3DMatBlock.h:608
virtual u32 getTevRegOffset() const
Definition J3DMatBlock.h:625
virtual void setIndTevStage(u32, J3DIndTevStage const *)
Definition J3DMatBlock.h:621
Definition J3DMatBlock.h:505
J3DNBTScale mNBTScale
Definition J3DMatBlock.h:525
virtual u32 getType()
Definition J3DMatBlock.h:516
J3DTexGenBlock4()
Definition J3DMatBlock.h:507
virtual void setNBTScale(J3DNBTScale const *scale)
Definition J3DMatBlock.h:517
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:240
void initialize()
Definition J3DMatBlock.cpp:77
virtual ~J3DTexGenBlock4()
Definition J3DMatBlock.h:523
virtual void setNBTScale(J3DNBTScale scale)
Definition J3DMatBlock.h:521
virtual void patch()
Definition J3DMatBlock.cpp:517
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:522
virtual void reset(J3DTexGenBlock *)
Definition J3DMatBlock.cpp:1622
virtual void load()
Definition J3DMatBlock.cpp:477
Definition J3DMatBlock.h:532
J3DTexGenBlockBasic()
Definition J3DMatBlock.h:534
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:244
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:549
virtual void setNBTScale(J3DNBTScale const *scale)
Definition J3DMatBlock.h:544
virtual ~J3DTexGenBlockBasic()
Definition J3DMatBlock.h:550
virtual void load()
Definition J3DMatBlock.cpp:490
virtual u32 getType()
Definition J3DMatBlock.h:543
void initialize()
Definition J3DMatBlock.cpp:84
virtual void setNBTScale(J3DNBTScale scale)
Definition J3DMatBlock.h:548
virtual void reset(J3DTexGenBlock *)
Definition J3DMatBlock.cpp:1644
virtual void patch()
Definition J3DMatBlock.cpp:531
J3DNBTScale mNBTScale
Definition J3DMatBlock.h:552
Definition J3DMatBlock.h:555
virtual void diffTexMtx()
Definition J3DMatBlock.h:564
virtual void patch()
Definition J3DMatBlock.h:562
virtual void calcWithoutViewMtx(f32 const (*)[4])
Definition J3DMatBlock.h:558
virtual void load()
Definition J3DMatBlock.h:561
virtual void diff(u32)
Definition J3DMatBlock.h:563
virtual void diffTexGen()
Definition J3DMatBlock.h:565
virtual ~J3DTexGenBlockNull()
Definition J3DMatBlock.h:567
virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4])
Definition J3DMatBlock.h:560
virtual void calcPostTexMtx(f32 const (*)[4])
Definition J3DMatBlock.h:559
virtual u32 getType()
Definition J3DMatBlock.h:566
virtual void calc(f32 const (*)[4])
Definition J3DMatBlock.h:557
Definition J3DMatBlock.h:449
virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4])
Definition J3DMatBlock.cpp:1984
virtual void setTexGenNum(u32 num)
Definition J3DMatBlock.h:472
virtual u32 getTexMtxOffset() const
Definition J3DMatBlock.h:491
virtual void calcWithoutViewMtx(f32 const (*)[4])
Definition J3DMatBlock.cpp:1896
virtual u32 getType()
Definition J3DMatBlock.h:467
virtual J3DTexMtx * getTexMtx(u32 idx)
Definition J3DMatBlock.h:487
virtual void diffTexGen()
Definition J3DMatBlock.cpp:563
virtual void setTexMtxOffset(u32 offset)
Definition J3DMatBlock.h:492
virtual void diffTexMtx()
Definition J3DMatBlock.cpp:555
virtual void calc(f32 const (*)[4])
Definition J3DMatBlock.cpp:1837
J3DTexGenBlockPatched()
Definition J3DMatBlock.h:451
virtual J3DTexCoord * getTexCoord(u32 idx)
Definition J3DMatBlock.h:479
J3DTexCoord mTexCoord[8]
Definition J3DMatBlock.h:496
virtual void setTexMtx(u32 idx, J3DTexMtx *mtx)
Definition J3DMatBlock.h:483
virtual u32 getTexGenNum() const
Definition J3DMatBlock.h:473
virtual void setTexGenNum(u32 const *num)
Definition J3DMatBlock.h:468
virtual s32 countDLSize()
Definition J3DMatBlock.cpp:236
J3DTexMtx * mTexMtx[8]
Definition J3DMatBlock.h:497
virtual ~J3DTexGenBlockPatched()
Definition J3DMatBlock.h:493
virtual void calcPostTexMtx(f32 const (*)[4])
Definition J3DMatBlock.cpp:1941
virtual void setTexCoord(u32 idx, J3DTexCoord const *coord)
Definition J3DMatBlock.h:474
u32 mTexGenNum
Definition J3DMatBlock.h:495
u32 mTexMtxOffset
Definition J3DMatBlock.h:498
virtual void reset(J3DTexGenBlock *)
Definition J3DMatBlock.cpp:1602
void initialize()
Definition J3DMatBlock.cpp:70
virtual void patch()
Definition J3DMatBlock.cpp:503
virtual void load()
Definition J3DMatBlock.h:461
Definition J3DMatBlock.h:416
virtual J3DTexMtx * getTexMtx(u32)
Definition J3DMatBlock.h:436
virtual void calc(f32 const (*)[4])=0
virtual void calcPostTexMtxWithoutViewMtx(f32 const (*)[4])=0
virtual void calcPostTexMtx(f32 const (*)[4])=0
virtual void diff(u32)=0
virtual ~J3DTexGenBlock()
Definition J3DMatBlock.h:442
virtual void setNBTScale(J3DNBTScale)
Definition J3DMatBlock.h:438
virtual u32 getType()=0
virtual void setTexCoord(u32, J3DTexCoord const *)
Definition J3DMatBlock.h:433
virtual void setTexGenNum(u32 const *)
Definition J3DMatBlock.h:430
virtual void setTexGenNum(u32)
Definition J3DMatBlock.h:431
virtual void diffTexGen()=0
virtual u32 getTexMtxOffset() const
Definition J3DMatBlock.h:440
virtual void patch()=0
virtual void load()=0
virtual s32 countDLSize()
Definition J3DMatBlock.h:428
virtual void reset(J3DTexGenBlock *)
Definition J3DMatBlock.h:418
virtual void diffTexMtx()=0
virtual void calcWithoutViewMtx(f32 const (*)[4])=0
virtual void setTexMtx(u32, J3DTexMtx *)
Definition J3DMatBlock.h:435
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:439
virtual void setNBTScale(J3DNBTScale const *scale)
Definition J3DMatBlock.h:437
virtual void setTexMtxOffset(u32)
Definition J3DMatBlock.h:441
virtual u32 getTexGenNum() const
Definition J3DMatBlock.h:432
virtual J3DTexCoord * getTexCoord(u32)
Definition J3DMatBlock.h:434
Definition J3DTexture.h:51
int field_0x0
Definition d_a_npc_coach.cpp:577
s16 field_0x2
Definition d_a_obj_ladder.cpp:59
static u16 const id[4]
Definition d_a_obj_smtile.cpp:269
static u16 lightMask
Definition d_kankyo.cpp:106
@ GX_AF_SPEC
Definition GXEnum.h:438
@ GX_AF_NONE
Definition GXEnum.h:440
enum _GXTexCoordID GXTexCoordID
enum _GXDiffuseFn GXDiffuseFn
enum _GXAttnFn GXAttnFn
enum _GXTexMapID GXTexMapID
enum _GXAlphaOp GXAlphaOp
@ GX_ITM_0
Definition GXEnum.h:692
enum _GXBlendMode GXBlendMode
enum _GXIndTexMtxID GXIndTexMtxID
enum _GXColorSrc GXColorSrc
enum _GXFogType GXFogType
enum _GXCompare GXCompare
enum _GXLogicOp GXLogicOp
@ GX_DF_NONE
Definition GXEnum.h:427
enum _GXBlendFactor GXBlendFactor
u32 mode
Definition GXTev.c:56
f32(* Mtx3P)[3]
Definition mtx.h:37
int diff
Definition e_fmod.c:41
void * __memcpy(void *, const void *, int)
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 J3DStruct.h:304
u8 mOp
Definition J3DStruct.h:307
u8 mRef1
Definition J3DStruct.h:309
u8 mComp1
Definition J3DStruct.h:308
u8 mComp0
Definition J3DStruct.h:305
u8 mRef0
Definition J3DStruct.h:306
Definition J3DMatBlock.h:1514
u8 getOp() const
Definition J3DMatBlock.h:1547
u8 mRef1
Definition J3DMatBlock.h:1558
J3DAlphaComp & operator=(const J3DAlphaComp &rhs)
Definition J3DMatBlock.h:1526
void setAlphaCompInfo(const J3DAlphaCompInfo &info)
Definition J3DMatBlock.h:1540
u8 getComp0() const
Definition J3DMatBlock.h:1546
u8 getRef0() const
Definition J3DMatBlock.h:1549
u8 mRef0
Definition J3DMatBlock.h:1557
J3DAlphaComp(const J3DAlphaCompInfo &info)
Definition J3DMatBlock.h:1518
J3DAlphaComp()
Definition J3DMatBlock.h:1515
J3DAlphaComp(u16 id)
Definition J3DMatBlock.h:1516
J3DAlphaComp & operator=(J3DAlphaComp &rhs)
Definition J3DMatBlock.h:1533
u8 getComp1() const
Definition J3DMatBlock.h:1548
u8 getRef1() const
Definition J3DMatBlock.h:1550
void load() const
Definition J3DMatBlock.h:1552
J3DAlphaComp & operator=(u16 id)
Definition J3DMatBlock.h:1524
u16 mID
Definition J3DMatBlock.h:1556
Definition J3DStruct.h:250
u8 mOp
Definition J3DStruct.h:257
void operator=(J3DBlendInfo const &other)
Definition J3DStruct.h:251
u8 mDstFactor
Definition J3DStruct.h:256
u8 mType
Definition J3DStruct.h:254
u8 mSrcFactor
Definition J3DStruct.h:255
Definition J3DMatBlock.h:1465
void setDstFactor(u8 i_factor)
Definition J3DMatBlock.h:1475
void setSrcFactor(u8 i_factor)
Definition J3DMatBlock.h:1474
GXBlendMode getBlendMode() const
Definition J3DMatBlock.h:1477
J3DBlend(J3DBlendInfo const &info)
Definition J3DMatBlock.h:1469
J3DBlend()
Definition J3DMatBlock.h:1466
void setType(u8 i_type)
Definition J3DMatBlock.h:1473
void setBlendInfo(const J3DBlendInfo &i_blendInfo)
Definition J3DMatBlock.h:1486
GXLogicOp getLogicOp() const
Definition J3DMatBlock.h:1480
GXBlendFactor getDstFactor() const
Definition J3DMatBlock.h:1479
GXBlendFactor getSrcFactor() const
Definition J3DMatBlock.h:1478
void load(u8 ditherEnable) const
Definition J3DMatBlock.h:1482
Definition J3DStruct.h:279
u8 mLightMask
Definition J3DStruct.h:282
u8 mAmbSrc
Definition J3DStruct.h:285
u8 mDiffuseFn
Definition J3DStruct.h:283
u8 mAttnFn
Definition J3DStruct.h:284
u8 mEnable
Definition J3DStruct.h:280
u8 mMatSrc
Definition J3DStruct.h:281
Definition J3DStruct.h:106
u8 mAdjEnable
Definition J3DStruct.h:111
f32 mEndZ
Definition J3DStruct.h:114
GXFogAdjTable mFogAdjTable
Definition J3DStruct.h:118
u16 mCenter
Definition J3DStruct.h:112
f32 mStartZ
Definition J3DStruct.h:113
GXColor mColor
Definition J3DStruct.h:117
f32 mNearZ
Definition J3DStruct.h:115
u8 mType
Definition J3DStruct.h:110
f32 mFarZ
Definition J3DStruct.h:116
Definition J3DMatBlock.h:1493
J3DFog()
Definition J3DMatBlock.h:1494
void setFogInfo(J3DFogInfo info)
Definition J3DMatBlock.h:1497
~J3DFog()
Definition J3DMatBlock.h:1495
void load() const
Definition J3DMatBlock.h:1500
void setFogInfo(const J3DFogInfo *info)
Definition J3DMatBlock.h:1498
J3DFog * getFogInfo()
Definition J3DMatBlock.h:1496
Definition J3DMatBlock.h:14
J3DGXColorS10 & operator=(const GXColorS10 &color)
Definition J3DMatBlock.h:32
J3DGXColorS10(const J3DGXColorS10 &other)
Definition J3DMatBlock.h:20
J3DGXColorS10()
Definition J3DMatBlock.h:15
J3DGXColorS10(J3DGXColorS10 &other)
Definition J3DMatBlock.h:18
J3DGXColorS10(const GXColorS10 &color)
Definition J3DMatBlock.h:30
Definition J3DMatBlock.h:45
J3DGXColor(const J3DGXColor &other)
Definition J3DMatBlock.h:51
J3DGXColor & operator=(const GXColor color)
Definition J3DMatBlock.h:56
J3DGXColor()
Definition J3DMatBlock.h:46
J3DGXColor(J3DGXColor &other)
Definition J3DMatBlock.h:49
J3DGXColor(const GXColor color)
Definition J3DMatBlock.h:54
J3DGXColor & operator=(const J3DGXColor &other)
Definition J3DMatBlock.h:60
Definition J3DTevs.h:153
Definition J3DStruct.h:234
u8 mScaleS
Definition J3DStruct.h:235
u8 mScaleT
Definition J3DStruct.h:236
J3DIndTexCoordScaleInfo & operator=(const J3DIndTexCoordScaleInfo &other)
Definition J3DStruct.h:240
Definition J3DMatBlock.h:1605
J3DIndTexCoordScale & operator=(const J3DIndTexCoordScale &other)
Definition J3DMatBlock.h:1619
u8 getScaleT()
Definition J3DMatBlock.h:1617
J3DIndTexCoordScale(const J3DIndTexCoordScale &other)
Definition J3DMatBlock.h:1612
~J3DIndTexCoordScale()
Definition J3DMatBlock.h:1615
J3DIndTexCoordScale(const J3DIndTexCoordScaleInfo &info)
Definition J3DMatBlock.h:1609
J3DIndTexCoordScale()
Definition J3DMatBlock.h:1606
u8 getScaleS()
Definition J3DMatBlock.h:1616
Definition J3DStruct.h:96
Mtx23 field_0x0
Definition J3DStruct.h:98
s8 field_0x18
Definition J3DStruct.h:99
Definition J3DMatBlock.h:1589
J3DIndTexMtx()
Definition J3DMatBlock.h:1590
J3DIndTexMtx(const J3DIndTexMtx &other)
Definition J3DMatBlock.h:1592
J3DIndTexMtx(const J3DIndTexMtxInfo &info)
Definition J3DMatBlock.h:1591
~J3DIndTexMtx()
Definition J3DMatBlock.h:1595
void load(u32 param_1) const
Definition J3DMatBlock.h:1596
Definition J3DStruct.h:137
u8 mCoord
Definition J3DStruct.h:138
u8 mMap
Definition J3DStruct.h:139
void operator=(J3DIndTexOrderInfo const &other)
Definition J3DStruct.h:143
Definition J3DMatBlock.h:1565
J3DIndTexOrder()
Definition J3DMatBlock.h:1566
u8 getCoord() const
Definition J3DMatBlock.h:1582
u8 getMap() const
Definition J3DMatBlock.h:1581
J3DIndTexOrder & operator=(J3DIndTexOrder const &other)
Definition J3DMatBlock.h:1569
J3DIndTexOrder(J3DIndTexOrderInfo const &info)
Definition J3DMatBlock.h:1578
Definition J3DTevs.h:272
Definition J3DMatBlock.h:1774
virtual u32 getType()
Definition J3DMatBlock.h:1776
virtual void load()
Definition J3DMatBlock.h:1775
virtual ~J3DPEBlockNull()
Definition J3DMatBlock.h:1777
Definition J3DTevs.h:200
Definition J3DTevs.h:40
void setTevSwapModeInfo(J3DTevSwapModeInfo const &param_0)
Definition J3DTevs.h:101
Definition J3DStruct.h:152
Definition J3DTevs.h:223
Definition J3DTexture.h:83
Definition J3DStruct.h:293
u8 field_0x2
Definition J3DStruct.h:296
u8 field_0x0
Definition J3DStruct.h:294
u8 field_0x1
Definition J3DStruct.h:295
Definition J3DMatBlock.h:1421
void setFunc(u8 i_func)
Definition J3DMatBlock.h:1442
J3DZMode()
Definition J3DMatBlock.h:1422
u8 getUpdateEnable() const
Definition J3DMatBlock.h:1456
void setZModeInfo(const J3DZModeInfo &info)
Definition J3DMatBlock.h:1434
void load() const
Definition J3DMatBlock.h:1450
J3DZMode & operator=(u16 zModeID)
Definition J3DMatBlock.h:1425
J3DZMode & operator=(const J3DZMode &other)
Definition J3DMatBlock.h:1429
J3DZMode(J3DZModeInfo const &info)
Definition J3DMatBlock.h:1423
void setUpdateEnable(u8 i_enable)
Definition J3DMatBlock.h:1446
u8 getFunc() const
Definition J3DMatBlock.h:1455
u8 getCompareEnable() const
Definition J3DMatBlock.h:1454
void setCompareEnable(u8 i_compare)
Definition J3DMatBlock.h:1438
u16 mZModeID
Definition J3DMatBlock.h:1458
Definition GXStruct.h:34
Definition GXStruct.h:30
Definition GXStruct.h:58