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