summaryrefslogtreecommitdiff
path: root/include/JSystem
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2026-01-11 19:00:04 -0800
committerGitHub <noreply@github.com>2026-01-11 19:00:04 -0800
commit2dd7e2ea62daaa33195b2adbca8b086ceaa6d464 (patch)
treed56016fab9d536e646ebde852dd8ef2ad81ba732 /include/JSystem
parent6e76f12dd3b49acc9b682eeb811dbec64bc3519c (diff)
J2DGraph debug (#3028)
* J2DGraph debug * J2DGraph debug
Diffstat (limited to 'include/JSystem')
-rw-r--r--include/JSystem/J2DGraph/J2DAnimation.h127
-rw-r--r--include/JSystem/J2DGraph/J2DGrafContext.h2
-rw-r--r--include/JSystem/J2DGraph/J2DManage.h2
-rw-r--r--include/JSystem/J2DGraph/J2DMatBlock.h431
-rw-r--r--include/JSystem/J2DGraph/J2DMaterialFactory.h2
-rw-r--r--include/JSystem/J2DGraph/J2DOrthoGraph.h1
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h1
-rw-r--r--include/JSystem/J2DGraph/J2DPicture.h4
-rw-r--r--include/JSystem/J2DGraph/J2DTevs.h9
-rw-r--r--include/JSystem/JGeometry.h34
-rw-r--r--include/JSystem/JSupport/JSUInputStream.h4
11 files changed, 452 insertions, 165 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h
index 5d2014cd61..035be59253 100644
--- a/include/JSystem/J2DGraph/J2DAnimation.h
+++ b/include/JSystem/J2DGraph/J2DAnimation.h
@@ -27,9 +27,13 @@ enum J2DAnmKind {
class J2DAnmBase {
public:
J2DAnmBase() {
- mFrame = 0;
+ mFrame = 0.0f;
mFrameMax = 0;
}
+ J2DAnmBase(s16 frameMax) {
+ mFrame = 0.0f;
+ mFrameMax = frameMax;
+ }
virtual ~J2DAnmBase() {}
virtual void searchUpdateMaterialID(J2DScreen*) {}
@@ -54,10 +58,10 @@ class J2DAnmVtxColor : public J2DAnmBase {
public:
J2DAnmVtxColor() {
mKind = KIND_VTX_COLOR;
- for (s32 i = 0; i < ARRAY_SIZEU(mAnmTableNum); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mAnmTableNum); i++) {
mAnmTableNum[i] = NULL;
}
- for (s32 i = 0; i < ARRAY_SIZEU(mVtxColorIndexData); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mVtxColorIndexData); i++) {
mVtxColorIndexData[i] = NULL;
}
}
@@ -92,7 +96,7 @@ struct J3DTextureSRTInfo;
class J2DAnmVtxColorKey : public J2DAnmVtxColor {
public:
J2DAnmVtxColorKey() {
- for (s32 i = 0; i < ARRAY_SIZEU(mInfoTable); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mInfoTable); i++) {
mInfoTable[i] = NULL;
}
}
@@ -113,7 +117,7 @@ public:
class J2DAnmVtxColorFull : public J2DAnmVtxColor {
public:
J2DAnmVtxColorFull() {
- for (s32 i = 0; i < ARRAY_SIZEU(mInfoTable); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mInfoTable); i++) {
mInfoTable[i] = NULL;
}
}
@@ -155,7 +159,7 @@ public:
*/
class J2DAnmTransform : public J2DAnmBase {
public:
- J2DAnmTransform(f32* pScaleValues, s16* pRotationValues, f32* pTranslateValues) {
+ J2DAnmTransform(s16 frameMax, f32* pScaleValues, s16* pRotationValues, f32* pTranslateValues) : J2DAnmBase(frameMax) {
mScaleValues = pScaleValues;
mRotationValues = pRotationValues;
mTranslateValues = pTranslateValues;
@@ -175,18 +179,18 @@ public:
*/
class J2DAnmTransformKey : public J2DAnmTransform {
public:
- J2DAnmTransformKey() : J2DAnmTransform(NULL, NULL, NULL) {
+ J2DAnmTransformKey() : J2DAnmTransform(0, NULL, NULL, NULL) {
field_0x24 = 0;
mInfoTable = NULL;
}
virtual ~J2DAnmTransformKey() {}
virtual void getTransform(u16 p1, J3DTransformInfo* pInfo) const {
- this->calcTransform(getFrame(), p1, pInfo);
+ this->calcTransform(mFrame, p1, pInfo);
}
virtual void calcTransform(f32, u16, J3DTransformInfo*) const;
/* 0x1C */ u8 field_0x1c[6];
- /* 0x22 */ s16 field_0x22;
+ /* 0x22 */ u16 field_0x22;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ J3DAnmTransformKeyTable* mInfoTable;
};
@@ -197,7 +201,7 @@ public:
*/
class J2DAnmTransformFull : public J2DAnmTransform {
public:
- J2DAnmTransformFull() : J2DAnmTransform(NULL, NULL, NULL) { mTableInfo = NULL; }
+ J2DAnmTransformFull() : J2DAnmTransform(0, NULL, NULL, NULL) { mTableInfo = NULL; }
virtual ~J2DAnmTransformFull() {}
virtual void getTransform(u16, J3DTransformInfo*) const;
@@ -214,21 +218,13 @@ class J2DAnmTextureSRTKey : public J2DAnmBase {
public:
J2DAnmTextureSRTKey() {
field_0x10 = 0;
- field_0x1e = 0;
- field_0x1c = 0;
- field_0x1a = 0;
- mUpdateMaterialNum = 0;
+ mUpdateMaterialNum = field_0x1a = field_0x1c = field_0x1e = 0;
mInfoTable = NULL;
- mTranslationValues = NULL;
- mScaleValues = NULL;
+ mScaleValues = mTranslationValues = NULL;
mRotationValues = NULL;
- field_0x4c = 0;
- field_0x4a = 0;
- field_0x48 = 0;
- field_0x4e = 0;
+ field_0x4e = field_0x48 = field_0x4a = field_0x4c = 0;
field_0x5c = NULL;
- field_0x58 = NULL;
- field_0x50 = NULL;
+ field_0x50 = field_0x58 = NULL;
field_0x54 = NULL;
field_0x7c = 0;
mKind = KIND_TEXTURE_SRT;
@@ -238,9 +234,15 @@ public:
virtual ~J2DAnmTextureSRTKey() {}
virtual void searchUpdateMaterialID(J2DScreen*);
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum / 3; }
- u16 getUpdateMaterialID(u16 i) const { return mUpdateMaterialID[i]; }
- u8 getUpdateTexMtxID(u16 i) const { return mUpdateTexMtxID[i]; }
- void getTransform(u16 param_1, J3DTextureSRTInfo* param_2) {
+ u16 getUpdateMaterialID(u16 i) const {
+ J3D_PANIC(514, i < mUpdateMaterialNum / 3 && i >= 0, "Error : range over.");
+ return mUpdateMaterialID[i];
+ }
+ u8 getUpdateTexMtxID(u16 i) const {
+ J3D_PANIC(513, i < mUpdateMaterialNum / 3 && i >= 0, "Error : range over.");
+ return mUpdateTexMtxID[i];
+ }
+ void getTransform(u16 param_1, J3DTextureSRTInfo* param_2) const {
calcTransform(mFrame, param_1, param_2);
}
@@ -279,8 +281,13 @@ public:
class J2DAnmTexPattern : public J2DAnmBase {
public:
struct J2DAnmTexPatternTIMGPointer {
- J2DAnmTexPatternTIMGPointer();
- ~J2DAnmTexPatternTIMGPointer();
+ J2DAnmTexPatternTIMGPointer() {
+ mRes = NULL;
+ mPalette = NULL;
+ }
+ ~J2DAnmTexPatternTIMGPointer() {
+ delete mPalette;
+ }
/* 0x0 */ ResTIMG* mRes;
/* 0x4 */ JUTPalette* mPalette;
@@ -302,7 +309,10 @@ public:
virtual ~J2DAnmTexPattern() { delete[] mTIMGPtrArray; }
virtual void searchUpdateMaterialID(J2DScreen*);
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
- u16 getUpdateMaterialID(u16 i) const { return mUpdateMaterialID[i]; }
+ u16 getUpdateMaterialID(u16 i) const {
+ J3D_PANIC(619, i < mUpdateMaterialNum, "Error : range over.");
+ return mUpdateMaterialID[i];
+ }
J3DAnmTexPatternFullTable* getAnmTable() const { return mAnmTable; }
/* 0x10 */ u16* mValues;
@@ -321,39 +331,31 @@ public:
class J2DAnmTevRegKey : public J2DAnmBase {
public:
J2DAnmTevRegKey() {
- mKRegUpdateMaterialNum = 0;
- mCRegUpdateMaterialNum = 0;
- field_0x1a = 0;
- field_0x18 = 0;
- field_0x16 = 0;
- field_0x14 = 0;
- field_0x22 = 0;
- field_0x20 = 0;
- field_0x1e = 0;
- field_0x1c = 0;
- mKRegUpdateMaterialID = NULL;
- mCRegUpdateMaterialID = NULL;
- mCAValues = NULL;
- mCBValues = NULL;
- mCGValues = NULL;
- mCRValues = NULL;
- mKAValues = NULL;
- mKBValues = NULL;
- mKGValues = NULL;
- mKRValues = NULL;
+ mCRegUpdateMaterialNum = mKRegUpdateMaterialNum = 0;
+ field_0x14 = field_0x16 = field_0x18 = field_0x1a = 0;
+ field_0x1c = field_0x1e = field_0x20 = field_0x22 = 0;
+ mCRegUpdateMaterialID = mKRegUpdateMaterialID = NULL;
+ mCRValues = mCGValues = mCBValues = mCAValues = NULL;
+ mKRValues = mKGValues = mKBValues = mKAValues = NULL;
mKind = KIND_TEV_REG;
}
- void getTevColorReg(u16, _GXColorS10*) const;
- void getTevKonstReg(u16, _GXColor*) const;
+ void getTevColorReg(u16, GXColorS10*) const;
+ void getTevKonstReg(u16, GXColor*) const;
virtual ~J2DAnmTevRegKey() {}
virtual void searchUpdateMaterialID(J2DScreen* pScreen);
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
- u16 getCRegUpdateMaterialID(u16 i) const { return mCRegUpdateMaterialID[i]; }
+ u16 getCRegUpdateMaterialID(u16 i) const {
+ J3D_PANIC(770, i < mCRegUpdateMaterialNum, "Error : range over.");
+ return mCRegUpdateMaterialID[i];
+ }
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
- u16 getKRegUpdateMaterialID(u16 i) const { return mKRegUpdateMaterialID[i]; }
+ u16 getKRegUpdateMaterialID(u16 i) const {
+ J3D_PANIC(778, i < mKRegUpdateMaterialNum, "Error : range over.");
+ return mKRegUpdateMaterialID[i];
+ }
J3DAnmCRegKeyTable* getAnmCRegKeyTable() const { return mAnmCRegKeyTable; }
J3DAnmKRegKeyTable* getAnmKRegKeyTable() const { return mAnmKRegKeyTable; }
@@ -391,10 +393,7 @@ public:
class J2DAnmColor : public J2DAnmBase {
public:
J2DAnmColor() {
- field_0x16 = 0;
- field_0x14 = 0;
- field_0x12 = 0;
- field_0x10 = 0;
+ field_0x10 = field_0x12 = field_0x14 = field_0x16 = 0;
mUpdateMaterialNum = 0;
mUpdateMaterialID = NULL;
mKind = KIND_COLOR;
@@ -403,7 +402,10 @@ public:
virtual void searchUpdateMaterialID(J2DScreen*);
virtual void getColor(u16, _GXColor*) const {}
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
- u16 getUpdateMaterialID(u16 i) const { return mUpdateMaterialID[i]; }
+ u16 getUpdateMaterialID(u16 i) const {
+ J3D_PANIC(224, i < mUpdateMaterialNum, "Error : range over.");
+ return mUpdateMaterialID[i];
+ }
/* 0x10 */ u16 field_0x10;
/* 0x12 */ u16 field_0x12;
@@ -475,17 +477,12 @@ public:
/* 0x40 */ J3DAnmColorFullTable* mInfoTable;
};
-template <typename T>
-inline f32 J2DHermiteInterpolation(f32, T*, T*, T*, T*, T*, T*);
-
-template <>
-inline f32 J2DHermiteInterpolation<f32>(f32 f1, f32* f2, f32* f3, f32* f4, f32* f5, f32* f6,
- f32* f7) {
+inline f32 J2DHermiteInterpolation(f32 f1, const f32* f2, const f32* f3, const f32* f4, const f32* f5, const f32* f6,
+ const f32* f7) {
return JMAHermiteInterpolation(f1, *f2, *f3, *f4, *f5, *f6, *f7);
}
-template <>
-inline f32 J2DHermiteInterpolation<s16>(__REGISTER f32 pp1, __REGISTER s16* pp2, __REGISTER s16* pp3,
+inline f32 J2DHermiteInterpolation(__REGISTER f32 pp1, __REGISTER s16* pp2, __REGISTER s16* pp3,
__REGISTER s16* pp4, __REGISTER s16* pp5, __REGISTER s16* pp6,
__REGISTER s16* pp7) {
#ifdef __MWERKS__
diff --git a/include/JSystem/J2DGraph/J2DGrafContext.h b/include/JSystem/J2DGraph/J2DGrafContext.h
index 46f30819f4..209ff61e30 100644
--- a/include/JSystem/J2DGraph/J2DGrafContext.h
+++ b/include/JSystem/J2DGraph/J2DGrafContext.h
@@ -49,6 +49,8 @@ public:
virtual s32 getGrafType() const { return 0; }
virtual void setLookat() {}
+ JGeometry::TBox2<f32>* getBounds() { return &mBounds; }
+
public:
/* 0x04 */ JGeometry::TBox2<f32> mBounds;
/* 0x14 */ JGeometry::TBox2<f32> mScissorBounds;
diff --git a/include/JSystem/J2DGraph/J2DManage.h b/include/JSystem/J2DGraph/J2DManage.h
index f8d8a20ae2..4a5b39a2a1 100644
--- a/include/JSystem/J2DGraph/J2DManage.h
+++ b/include/JSystem/J2DGraph/J2DManage.h
@@ -13,7 +13,7 @@ struct J2DResReference {
/* 0x00 */ u16 mCount;
/* 0x02 */ u16 mOffsets[1];
- s8* getResReference(u16) const;
+ char* getResReference(u16) const;
char* getName(u16) const;
};
diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h
index 381f581f07..36db0fe0a5 100644
--- a/include/JSystem/J2DGraph/J2DMatBlock.h
+++ b/include/JSystem/J2DGraph/J2DMatBlock.h
@@ -73,7 +73,7 @@ public:
virtual u32 getType() = 0;
virtual u8 getMaxStage() = 0;
virtual void setTexNo(u32, u16) {}
- virtual u32 getTexNo(u32) const { return 0xFFFF; }
+ virtual u16 getTexNo(u32) const { return 0xFFFF; }
virtual void setFontNo(u16) {}
virtual u16 getFontNo() const { return 0xFFFF; }
virtual void setTevOrder(u32, J2DTevOrder) {}
@@ -127,46 +127,84 @@ public:
virtual void loadTexture(_GXTexMapID, u32);
virtual u32 getType() { return 'TVB1'; }
virtual u8 getMaxStage() { return 1; }
- virtual void setTexNo(u32 index, u16 texNo) { mTexNo[index] = texNo; }
- virtual u32 getTexNo(u32 index) const { return mTexNo[index]; }
+ virtual void setTexNo(u32 index, u16 texNo) {
+ J3D_PANIC(241, index < 1, "Error : range over.");
+ mTexNo[index] = texNo;
+ }
+ virtual u16 getTexNo(u32 index) const {
+ J3D_PANIC(242, index < 1, "Error : range over.");
+ return mTexNo[index];
+ }
virtual void setFontNo(u16 fontNo) { mFontNo = fontNo; }
virtual u16 getFontNo() const { return mFontNo; }
virtual void setTevOrder(u32 index, J2DTevOrder order) {
+ J3D_PANIC(247, index < 1, "Error : range over.");
mTevOrder[index] = order;
}
- virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
+ virtual J2DTevOrder* getTevOrder(u32 index) {
+ J3D_PANIC(248, index < 1, "Error : range over.");
+ return &mTevOrder[index];
+ }
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
J3D_PANIC(250, index < 4, "Error : range over.");
mTevColor[index] = color;
}
- virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
+ virtual J2DGXColorS10* getTevColor(u32 index) {
+ J3D_PANIC(251, index < 4, "Error : range over.");
+ return &mTevColor[index];
+ }
virtual void setTevKColor(u32 index, JUtility::TColor color) {
+ J3D_PANIC(253, index < 4, "Error : range over.");
mTevKColor[index] = color;
}
- virtual JUtility::TColor* getTevKColor(u32 index) { return &mTevKColor[index]; }
- virtual void setTevKColorSel(u32 index, u8 sel) { mTevKColorSel[index] = sel; }
- virtual u8 getTevKColorSel(u32 index) { return mTevKColorSel[index]; }
- virtual void setTevKAlphaSel(u32 index, u8 sel) { mTevKAlphaSel[index] = sel; }
- virtual u8 getTevKAlphaSel(u32 index) { return mTevKAlphaSel[index]; }
+ virtual JUtility::TColor* getTevKColor(u32 index) {
+ J3D_PANIC(254, index < 4, "Error : range over.");
+ return &mTevKColor[index];
+ }
+ virtual void setTevKColorSel(u32 index, u8 sel) {
+ J3D_PANIC(256, index < 1, "Error : range over.");
+ mTevKColorSel[index] = sel;
+ }
+ virtual u8 getTevKColorSel(u32 index) {
+ J3D_PANIC(257, index < 1, "Error : range over.");
+ return mTevKColorSel[index];
+ }
+ virtual void setTevKAlphaSel(u32 index, u8 sel) {
+ J3D_PANIC(259, index < 1, "Error : range over.");
+ mTevKAlphaSel[index] = sel;
+ }
+ virtual u8 getTevKAlphaSel(u32 index) {
+ J3D_PANIC(260, index < 1, "Error : range over.");
+ return mTevKAlphaSel[index];
+ }
virtual void setTevStageNum(u8 num) {}
virtual u8 getTevStageNum() const { return 1; }
virtual void setTevStage(u32 index, J2DTevStage stage) {
+ J3D_PANIC(265, index < 1, "Error : range over.");
mTevStage[index] = stage;
}
- virtual J2DTevStage* getTevStage(u32 index) { return &mTevStage[index]; }
+ virtual J2DTevStage* getTevStage(u32 index) {
+ J3D_PANIC(266, index < 1, "Error : range over.");
+ return &mTevStage[index];
+ }
virtual void setTevSwapModeInfo(u32 index, J2DTevSwapModeInfo info) {
+ J3D_PANIC(268, index < 1, "Error : range over.");
mTevStage[index].setTevSwapModeInfo(info);
}
virtual void setTevSwapModeTable(u32 index, J2DTevSwapModeTable table) {
+ J3D_PANIC(270, index < 4, "Error : range over.");
mTevSwapModeTable[index] = table;
}
virtual J2DTevSwapModeTable* getTevSwapModeTable(u32 index) {
+ J3D_PANIC(271, index < 4, "Error : range over.");
return &mTevSwapModeTable[index];
}
virtual void setIndTevStage(u32 index, J2DIndTevStage stage) {
+ J3D_PANIC(273, index < 1, "Error : range over.");
mIndTevStage[index] = stage;
}
virtual J2DIndTevStage* getIndTevStage(u32 index) {
+ J3D_PANIC(274, index < 1, "Error : range over.");
return &mIndTevStage[index];
}
virtual bool insertTexture(u32 index, ResTIMG const* p_timg) {
@@ -182,14 +220,20 @@ public:
virtual bool setPalette(u32, ResTLUT const*);
virtual bool prepareTexture(u8);
virtual JUTTexture* getTexture(u32 index) {
- return index >= 1 ? NULL : mTexture[index];
+ if (index >= 1) {
+ return NULL;
+ }
+ return mTexture[index];
}
virtual JUTPalette* getPalette(u32 index) {
- return index >= 1 ? NULL : mPalette[index];
+ if (index >= 1) {
+ return NULL;
+ }
+ return mPalette[index];
}
virtual JUTFont* getFont() { return mFont; }
virtual void shiftDeleteFlag(u8, bool);
- virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag &= flag; }
+ virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag = mUndeleteFlag & flag; }
virtual void setFontUndeleteFlag() { mUndeleteFlag &= 0x7F; }
virtual ~J2DTevBlock1();
@@ -223,46 +267,84 @@ public:
virtual void loadTexture(_GXTexMapID, u32);
virtual u32 getType() { return 'TVB2'; }
virtual u8 getMaxStage() { return 2; }
- virtual void setTexNo(u32 index, u16 texNo) { mTexNo[index] = texNo; }
- virtual u32 getTexNo(u32 index) const { return mTexNo[index]; }
+ virtual void setTexNo(u32 index, u16 texNo) {
+ J3D_PANIC(351, index < 2, "Error : range over.");
+ mTexNo[index] = texNo;
+ }
+ virtual u16 getTexNo(u32 index) const {
+ J3D_PANIC(352, index < 2, "Error : range over.");
+ return mTexNo[index];
+ }
virtual void setFontNo(u16 fontNo) { mFontNo = fontNo; }
virtual u16 getFontNo() const { return mFontNo; }
virtual void setTevOrder(u32 index, J2DTevOrder order) {
+ J3D_PANIC(357, index < 2, "Error : range over.");
mTevOrder[index] = order;
}
- virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
+ virtual J2DTevOrder* getTevOrder(u32 index) {
+ J3D_PANIC(358, index < 2, "Error : range over.");
+ return &mTevOrder[index];
+ }
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
J3D_PANIC(360, index < 4, "Error : range over.");
mTevColor[index] = color;
}
- virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
+ virtual J2DGXColorS10* getTevColor(u32 index) {
+ J3D_PANIC(361, index < 4, "Error : range over.");
+ return &mTevColor[index];
+ }
virtual void setTevKColor(u32 index, JUtility::TColor color) {
+ J3D_PANIC(363, index < 4, "Error : range over.");
mTevKColor[index] = color;
}
- virtual JUtility::TColor* getTevKColor(u32 index) { return &mTevKColor[index]; }
- virtual void setTevKColorSel(u32 index, u8 sel) { mTevKColorSel[index] = sel; }
- virtual u8 getTevKColorSel(u32 index) { return mTevKColorSel[index]; }
- virtual void setTevKAlphaSel(u32 index, u8 sel) { mTevKAlphaSel[index] = sel; }
- virtual u8 getTevKAlphaSel(u32 index) { return mTevKAlphaSel[index]; }
+ virtual JUtility::TColor* getTevKColor(u32 index) {
+ J3D_PANIC(364, index < 4, "Error : range over.");
+ return &mTevKColor[index];
+ }
+ virtual void setTevKColorSel(u32 index, u8 sel) {
+ J3D_PANIC(366, index < 2, "Error : range over.");
+ mTevKColorSel[index] = sel;
+ }
+ virtual u8 getTevKColorSel(u32 index) {
+ J3D_PANIC(367, index < 2, "Error : range over.");
+ return mTevKColorSel[index];
+ }
+ virtual void setTevKAlphaSel(u32 index, u8 sel) {
+ J3D_PANIC(369, index < 2, "Error : range over.");
+ mTevKAlphaSel[index] = sel;
+ }
+ virtual u8 getTevKAlphaSel(u32 index) {
+ J3D_PANIC(370, index < 2, "Error : range over.");
+ return mTevKAlphaSel[index];
+ }
virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
virtual u8 getTevStageNum() const { return mTevStageNum; }
virtual void setTevStage(u32 index, J2DTevStage stage) {
+ J3D_PANIC(375, index < 2, "Error : range over.");
mTevStage[index] = stage;
}
- virtual J2DTevStage* getTevStage(u32 index) { return &mTevStage[index]; }
+ virtual J2DTevStage* getTevStage(u32 index) {
+ J3D_PANIC(376, index < 2, "Error : range over.");
+ return &mTevStage[index];
+ }
virtual void setTevSwapModeInfo(u32 index, J2DTevSwapModeInfo info) {
+ J3D_PANIC(378, index < 2, "Error : range over.");
mTevStage[index].setTevSwapModeInfo(info);
}
virtual void setTevSwapModeTable(u32 index, J2DTevSwapModeTable table) {
+ J3D_PANIC(380, index < 4, "Error : range over.");
mTevSwapModeTable[index] = table;
}
virtual J2DTevSwapModeTable* getTevSwapModeTable(u32 index) {
+ J3D_PANIC(381, index < 4, "Error : range over.");
return &mTevSwapModeTable[index];
}
virtual void setIndTevStage(u32 index, J2DIndTevStage stage) {
+ J3D_PANIC(383, index < 2, "Error : range over.");
mIndTevStage[index] = stage;
}
virtual J2DIndTevStage* getIndTevStage(u32 index) {
+ J3D_PANIC(384, index < 2, "Error : range over.");
return &mIndTevStage[index];
}
virtual bool insertTexture(u32 index, ResTIMG const* p_timg) {
@@ -278,14 +360,20 @@ public:
virtual bool setPalette(u32, ResTLUT const*);
virtual bool prepareTexture(u8);
virtual JUTTexture* getTexture(u32 index) {
- return index >= 2 ? NULL : mTexture[index];
+ if (index >= 2) {
+ return NULL;
+ }
+ return mTexture[index];
}
virtual JUTPalette* getPalette(u32 index) {
- return index >= 2 ? NULL : mPalette[index];
+ if (index >= 2) {
+ return NULL;
+ }
+ return mPalette[index];
}
virtual JUTFont* getFont() { return mFont; }
virtual void shiftDeleteFlag(u8, bool);
- virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag &= flag; }
+ virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag = mUndeleteFlag & flag; }
virtual void setFontUndeleteFlag() { mUndeleteFlag &= 0x7F; }
virtual ~J2DTevBlock2();
@@ -321,46 +409,84 @@ public:
virtual void loadTexture(_GXTexMapID, u32);
virtual u32 getType() { return 'TVB4'; }
virtual u8 getMaxStage() { return 4; }
- virtual void setTexNo(u32 index, u16 texNo) { mTexNo[index] = texNo; }
- virtual u32 getTexNo(u32 index) const { return mTexNo[index]; }
+ virtual void setTexNo(u32 index, u16 texNo) {
+ J3D_PANIC(459, index < 4, "Error : range over.");
+ mTexNo[index] = texNo;
+ }
+ virtual u16 getTexNo(u32 index) const {
+ J3D_PANIC(460, index < 4, "Error : range over.");
+ return mTexNo[index];
+ }
virtual void setFontNo(u16 fontNo) { mFontNo = fontNo; }
virtual u16 getFontNo() const { return mFontNo; }
virtual void setTevOrder(u32 index, J2DTevOrder order) {
+ J3D_PANIC(465, index < 4, "Error : range over.");
mTevOrder[index] = order;
}
- virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
+ virtual J2DTevOrder* getTevOrder(u32 index) {
+ J3D_PANIC(466, index < 4, "Error : range over.");
+ return &mTevOrder[index];
+ }
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
J3D_PANIC(468, index < 4, "Error : range over.");
mTevColor[index] = color;
}
- virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
+ virtual J2DGXColorS10* getTevColor(u32 index) {
+ J3D_PANIC(469, index < 4, "Error : range over.");
+ return &mTevColor[index];
+ }
virtual void setTevKColor(u32 index, JUtility::TColor color) {
+ J3D_PANIC(471, index < 4, "Error : range over.");
mTevKColor[index] = color;
}
- virtual JUtility::TColor* getTevKColor(u32 index) { return &mTevKColor[index]; }
- virtual void setTevKColorSel(u32 index, u8 sel) { mTevKColorSel[index] = sel; }
- virtual u8 getTevKColorSel(u32 index) { return mTevKColorSel[index]; }
- virtual void setTevKAlphaSel(u32 index, u8 sel) { mTevKAlphaSel[index] = sel; }
- virtual u8 getTevKAlphaSel(u32 index) { return mTevKAlphaSel[index]; }
+ virtual JUtility::TColor* getTevKColor(u32 index) {
+ J3D_PANIC(472, index < 4, "Error : range over.");
+ return &mTevKColor[index];
+ }
+ virtual void setTevKColorSel(u32 index, u8 sel) {
+ J3D_PANIC(474, index < 4, "Error : range over.");
+ mTevKColorSel[index] = sel;
+ }
+ virtual u8 getTevKColorSel(u32 index) {
+ J3D_PANIC(475, index < 4, "Error : range over.");
+ return mTevKColorSel[index];
+ }
+ virtual void setTevKAlphaSel(u32 index, u8 sel) {
+ J3D_PANIC(477, index < 4, "Error : range over.");
+ mTevKAlphaSel[index] = sel;
+ }
+ virtual u8 getTevKAlphaSel(u32 index) {
+ J3D_PANIC(478, index < 4, "Error : range over.");
+ return mTevKAlphaSel[index];
+ }
virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
virtual u8 getTevStageNum() const { return mTevStageNum; }
virtual void setTevStage(u32 index, J2DTevStage stage) {
+ J3D_PANIC(483, index < 4, "Error : range over.");
mTevStage[index] = stage;
}
- virtual J2DTevStage* getTevStage(u32 index) { return &mTevStage[index]; }
+ virtual J2DTevStage* getTevStage(u32 index) {
+ J3D_PANIC(484, index < 4, "Error : range over.");
+ return &mTevStage[index];
+ }
virtual void setTevSwapModeInfo(u32 index, J2DTevSwapModeInfo info) {
+ J3D_PANIC(486, index < 4, "Error : range over.");
mTevStage[index].setTevSwapModeInfo(info);
}
virtual void setTevSwapModeTable(u32 index, J2DTevSwapModeTable table) {
+ J3D_PANIC(488, index < 4, "Error : range over.");
mTevSwapModeTable[index] = table;
}
virtual J2DTevSwapModeTable* getTevSwapModeTable(u32 index) {
+ J3D_PANIC(489, index < 4, "Error : range over.");
return &mTevSwapModeTable[index];
}
virtual void setIndTevStage(u32 index, J2DIndTevStage stage) {
+ J3D_PANIC(491, index < 4, "Error : range over.");
mIndTevStage[index] = stage;
}
virtual J2DIndTevStage* getIndTevStage(u32 index) {
+ J3D_PANIC(492, index < 4, "Error : range over.");
return &mIndTevStage[index];
}
virtual bool insertTexture(u32 index, ResTIMG const* p_timg) {
@@ -376,14 +502,20 @@ public:
virtual bool setPalette(u32, ResTLUT const*);
virtual bool prepareTexture(u8);
virtual JUTTexture* getTexture(u32 index) {
- return index >= 4 ? NULL : mTexture[index];
+ if (index >= 4) {
+ return NULL;
+ }
+ return mTexture[index];
}
virtual JUTPalette* getPalette(u32 index) {
- return index >= 4 ? NULL : mPalette[index];
+ if (index >= 4) {
+ return NULL;
+ }
+ return mPalette[index];
}
virtual JUTFont* getFont() { return mFont; }
virtual void shiftDeleteFlag(u8, bool);
- virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag &= flag; }
+ virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag = mUndeleteFlag & flag; }
virtual void setFontUndeleteFlag() { mUndeleteFlag &= 0x7F; }
virtual ~J2DTevBlock4();
@@ -419,46 +551,84 @@ public:
virtual void loadTexture(_GXTexMapID, u32);
virtual u32 getType() { return 'TVB8'; }
virtual u8 getMaxStage() { return 8; }
- virtual void setTexNo(u32 index, u16 texNo) { mTexNo[index] = texNo; }
- virtual u32 getTexNo(u32 index) const { return mTexNo[index]; }
+ virtual void setTexNo(u32 index, u16 texNo) {
+ J3D_PANIC(570, index < 8, "Error : range over.");
+ mTexNo[index] = texNo;
+ }
+ virtual u16 getTexNo(u32 index) const {
+ J3D_PANIC(571, index < 8, "Error : range over.");
+ return mTexNo[index];
+ }
virtual void setFontNo(u16 fontNo) { mFontNo = fontNo; }
virtual u16 getFontNo() const { return mFontNo; }
virtual void setTevOrder(u32 index, J2DTevOrder order) {
+ J3D_PANIC(576, index < 8, "Error : range over.");
mTevOrder[index] = order;
}
- virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
+ virtual J2DTevOrder* getTevOrder(u32 index) {
+ J3D_PANIC(577, index < 8, "Error : range over.");
+ return &mTevOrder[index];
+ }
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
J3D_PANIC(579, index < 4, "Error : range over.");
mTevColor[index] = color;
}
- virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
+ virtual J2DGXColorS10* getTevColor(u32 index) {
+ J3D_PANIC(580, index < 4, "Error : range over.");
+ return &mTevColor[index];
+ }
virtual void setTevKColor(u32 index, JUtility::TColor color) {
+ J3D_PANIC(582, index < 4, "Error : range over.");
mTevKColor[index] = color;
}
- virtual JUtility::TColor* getTevKColor(u32 index) { return &mTevKColor[index]; }
- virtual void setTevKColorSel(u32 index, u8 sel) { mTevKColorSel[index] = sel; }
- virtual u8 getTevKColorSel(u32 index) { return mTevKColorSel[index]; }
- virtual void setTevKAlphaSel(u32 index, u8 sel) { mTevKAlphaSel[index] = sel; }
- virtual u8 getTevKAlphaSel(u32 index) { return mTevKAlphaSel[index]; }
+ virtual JUtility::TColor* getTevKColor(u32 index) {
+ J3D_PANIC(583, index < 4, "Error : range over.");
+ return &mTevKColor[index];
+ }
+ virtual void setTevKColorSel(u32 index, u8 sel) {
+ J3D_PANIC(585, index < 8, "Error : range over.");
+ mTevKColorSel[index] = sel;
+ }
+ virtual u8 getTevKColorSel(u32 index) {
+ J3D_PANIC(586, index < 8, "Error : range over.");
+ return mTevKColorSel[index];
+ }
+ virtual void setTevKAlphaSel(u32 index, u8 sel) {
+ J3D_PANIC(588, index < 8, "Error : range over.");
+ mTevKAlphaSel[index] = sel;
+ }
+ virtual u8 getTevKAlphaSel(u32 index) {
+ J3D_PANIC(589, index < 8, "Error : range over.");
+ return mTevKAlphaSel[index];
+ }
virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
virtual u8 getTevStageNum() const { return mTevStageNum; }
virtual void setTevStage(u32 index, J2DTevStage stage) {
+ J3D_PANIC(594, index < 8, "Error : range over.");
mTevStage[index] = stage;
}
- virtual J2DTevStage* getTevStage(u32 index) { return &mTevStage[index]; }
+ virtual J2DTevStage* getTevStage(u32 index) {
+ J3D_PANIC(595, index < 8, "Error : range over.");
+ return &mTevStage[index];
+ }
virtual void setTevSwapModeInfo(u32 index, J2DTevSwapModeInfo info) {
+ J3D_PANIC(597, index < 8, "Error : range over.");
mTevStage[index].setTevSwapModeInfo(info);
}
virtual void setTevSwapModeTable(u32 index, J2DTevSwapModeTable table) {
+ J3D_PANIC(599, index < 4, "Error : range over.");
mTevSwapModeTable[index] = table;
}
virtual J2DTevSwapModeTable* getTevSwapModeTable(u32 index) {
+ J3D_PANIC(600, index < 4, "Error : range over.");
return &mTevSwapModeTable[index];
}
virtual void setIndTevStage(u32 index, J2DIndTevStage stage) {
+ J3D_PANIC(602, index < 8, "Error : range over.");
mIndTevStage[index] = stage;
}
virtual J2DIndTevStage* getIndTevStage(u32 index) {
+ J3D_PANIC(603, index < 8, "Error : range over.");
return &mIndTevStage[index];
}
virtual bool insertTexture(u32 index, ResTIMG const* p_timg) {
@@ -474,14 +644,20 @@ public:
virtual bool setPalette(u32, ResTLUT const*);
virtual bool prepareTexture(u8);
virtual JUTTexture* getTexture(u32 index) {
- return index >= 8 ? NULL : mTexture[index];
+ if (index >= 8) {
+ return NULL;
+ }
+ return mTexture[index];
}
virtual JUTPalette* getPalette(u32 index) {
- return index >= 8 ? NULL : mPalette[index];
+ if (index >= 8) {
+ return NULL;
+ }
+ return mPalette[index];
}
virtual JUTFont* getFont() { return mFont; }
virtual void shiftDeleteFlag(u8, bool);
- virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag &= flag; }
+ virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag = mUndeleteFlag & flag; }
virtual void setFontUndeleteFlag() { mFontUndeleteFlag = false; }
virtual ~J2DTevBlock8();
@@ -518,46 +694,84 @@ public:
virtual void loadTexture(_GXTexMapID, u32);
virtual u32 getType() { return 'TV16'; }
virtual u8 getMaxStage() { return 16; }
- virtual void setTexNo(u32 index, u16 texNo) { mTexNo[index] = texNo; }
- virtual u32 getTexNo(u32 index) const { return mTexNo[index]; }
+ virtual void setTexNo(u32 index, u16 texNo) {
+ J3D_PANIC(682, index < 8, "Error : range over.");
+ mTexNo[index] = texNo;
+ }
+ virtual u16 getTexNo(u32 index) const {
+ J3D_PANIC(683, index < 8, "Error : range over.");
+ return mTexNo[index];
+ }
virtual void setFontNo(u16 fontNo) { mFontNo = fontNo; }
virtual u16 getFontNo() const { return mFontNo; }
virtual void setTevOrder(u32 index, J2DTevOrder order) {
+ J3D_PANIC(688, index < 16, "Error : range over.");
mTevOrder[index] = order;
}
- virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
+ virtual J2DTevOrder* getTevOrder(u32 index) {
+ J3D_PANIC(689, index < 16, "Error : range over.");
+ return &mTevOrder[index];
+ }
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
J3D_PANIC(691, index < 4, "Error : range over.");
mTevColor[index] = color;
}
- virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
+ virtual J2DGXColorS10* getTevColor(u32 index) {
+ J3D_PANIC(692, index < 4, "Error : range over.");
+ return &mTevColor[index];
+ }
virtual void setTevKColor(u32 index, JUtility::TColor color) {
+ J3D_PANIC(694, index < 4, "Error : range over.");
mTevKColor[index] = color;
}
- virtual JUtility::TColor* getTevKColor(u32 index) { return &mTevKColor[index]; }
- virtual void setTevKColorSel(u32 index, u8 sel) { mTevKColorSel[index] = sel; }
- virtual u8 getTevKColorSel(u32 index) { return mTevKColorSel[index]; }
- virtual void setTevKAlphaSel(u32 index, u8 sel) { mTevKAlphaSel[index] = sel; }
- virtual u8 getTevKAlphaSel(u32 index) { return mTevKAlphaSel[index]; }
+ virtual JUtility::TColor* getTevKColor(u32 index) {
+ J3D_PANIC(695, index < 4, "Error : range over.");
+ return &mTevKColor[index];
+ }
+ virtual void setTevKColorSel(u32 index, u8 sel) {
+ J3D_PANIC(697, index < 16, "Error : range over.");
+ mTevKColorSel[index] = sel;
+ }
+ virtual u8 getTevKColorSel(u32 index) {
+ J3D_PANIC(698, index < 16, "Error : range over.");
+ return mTevKColorSel[index];
+ }
+ virtual void setTevKAlphaSel(u32 index, u8 sel) {
+ J3D_PANIC(700, index < 16, "Error : range over.");
+ mTevKAlphaSel[index] = sel;
+ }
+ virtual u8 getTevKAlphaSel(u32 index) {
+ J3D_PANIC(701, index < 16, "Error : range over.");
+ return mTevKAlphaSel[index];
+ }
virtual void setTevStageNum(u8 num) { mTevStageNum = num; }
virtual u8 getTevStageNum() const { return mTevStageNum; }
virtual void setTevStage(u32 index, J2DTevStage stage) {
+ J3D_PANIC(706, index < 16, "Error : range over.");
mTevStage[index] = stage;
}
- virtual J2DTevStage* getTevStage(u32 index) { return &mTevStage[index]; }
+ virtual J2DTevStage* getTevStage(u32 index) {
+ J3D_PANIC(707, index < 16, "Error : range over.");
+ return &mTevStage[index];
+ }
virtual void setTevSwapModeInfo(u32 index, J2DTevSwapModeInfo info) {
+ J3D_PANIC(709, index < 16, "Error : range over.");
mTevStage[index].setTevSwapModeInfo(info);
}
virtual void setTevSwapModeTable(u32 index, J2DTevSwapModeTable table) {
+ J3D_PANIC(711, index < 4, "Error : range over.");
mTevSwapModeTable[index] = table;
}
virtual J2DTevSwapModeTable* getTevSwapModeTable(u32 index) {
+ J3D_PANIC(712, index < 4, "Error : range over.");
return &mTevSwapModeTable[index];
}
virtual void setIndTevStage(u32 index, J2DIndTevStage stage) {
+ J3D_PANIC(714, index < 16, "Error : range over.");
mIndTevStage[index] = stage;
}
virtual J2DIndTevStage* getIndTevStage(u32 index) {
+ J3D_PANIC(715, index < 16, "Error : range over.");
return &mIndTevStage[index];
}
virtual bool insertTexture(u32 index, ResTIMG const* p_timg) {
@@ -573,14 +787,20 @@ public:
virtual bool setPalette(u32, ResTLUT const*);
virtual bool prepareTexture(u8);
virtual JUTTexture* getTexture(u32 index) {
- return index >= 8 ? NULL : mTexture[index];
+ if (index >= 8) {
+ return NULL;
+ }
+ return mTexture[index];
}
virtual JUTPalette* getPalette(u32 index) {
- return index >= 8 ? NULL : mPalette[index];
+ if (index >= 8) {
+ return NULL;
+ }
+ return mPalette[index];
}
virtual JUTFont* getFont() { return mFont; }
virtual void shiftDeleteFlag(u8, bool);
- virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag &= flag; }
+ virtual void setUndeleteFlag(u8 flag) { mUndeleteFlag = mUndeleteFlag & flag; }
virtual void setFontUndeleteFlag() { mFontUndeleteFlag = false; }
virtual ~J2DTevBlock16();
@@ -619,8 +839,8 @@ struct J2DAlphaCompInfo {
/* 0x7 */ u8 field_0x7;
};
-inline u16 J2DCalcAlphaCmp(s32 param_1, u32 param_2, u32 param_3) {
- return ((param_1) << 5) | ((param_2 & 0xff) << 3) | (param_3 & 0xff);
+inline u16 J2DCalcAlphaCmp(u8 param_1, u8 param_2, u8 param_3) {
+ return (param_1 << 5) | (param_2 << 3) | param_3;
}
/**
@@ -643,11 +863,11 @@ struct J2DAlphaComp {
mRef0 = other.mRef0;
mRef1 = other.mRef1;
}
- u8 getComp0() { return mAlphaCmp >> 5 & 7; }
- u8 getRef0() { return mRef0; }
- u8 getOp() { return mAlphaCmp >> 3 & 3; }
- u8 getComp1() { return mAlphaCmp & 7; }
- u8 getRef1() { return mRef1; }
+ u8 getComp0() const { return mAlphaCmp >> 5 & 7; }
+ u8 getRef0() const { return mRef0; }
+ u8 getOp() const { return mAlphaCmp >> 3 & 3; }
+ u8 getComp1() const { return mAlphaCmp & 7; }
+ u8 getRef1() const { return mRef1; }
/* 0x0 */ u16 mAlphaCmp;
/* 0x2 */ u8 mRef0;
@@ -682,10 +902,10 @@ struct J2DBlend {
J2DBlend() { mBlendInfo = j2dDefaultBlendInfo; }
J2DBlend(const J2DBlendInfo& info) { mBlendInfo = info; }
void setBlendInfo(const J2DBlendInfo& info) { mBlendInfo = info; }
- u8 getType() { return mBlendInfo.mType; }
- u8 getSrcFactor() { return mBlendInfo.mSrcFactor; }
- u8 getDstFactor() { return mBlendInfo.mDstFactor; }
- u8 getOp() { return mBlendInfo.mOp; }
+ u8 getType() const { return mBlendInfo.mType; }
+ u8 getSrcFactor() const { return mBlendInfo.mSrcFactor; }
+ u8 getDstFactor() const { return mBlendInfo.mDstFactor; }
+ u8 getOp() const { return mBlendInfo.mOp; }
/* 0x0 */ J2DBlendInfo mBlendInfo;
};
@@ -697,6 +917,7 @@ struct J2DBlend {
class J2DPEBlock {
public:
J2DPEBlock() { initialize(); }
+ ~J2DPEBlock() {}
void initialize();
void setGX();
@@ -744,19 +965,27 @@ public:
virtual void setIndTexStageNum(u8 num) { mIndTexStageNum = num; }
virtual u8 getIndTexStageNum() const { return mIndTexStageNum; }
virtual void setIndTexOrder(u32 index, J2DIndTexOrder order) {
+ J3D_PANIC(856, index < 4, "Error : range over.");
mIndTexOrder[index] = order;
}
virtual J2DIndTexOrder* getIndTexOrder(u32 index) {
+ J3D_PANIC(857, index < 4, "Error : range over.");
return &mIndTexOrder[index];
}
virtual void setIndTexMtx(u32 index, J2DIndTexMtx mtx) {
+ J3D_PANIC(859, index < 3, "Error : range over.");
mIndTexMtx[index] = mtx;
}
- virtual J2DIndTexMtx* getIndTexMtx(u32 index) { return &mIndTexMtx[index]; }
+ virtual J2DIndTexMtx* getIndTexMtx(u32 index) {
+ J3D_PANIC(860, index < 3, "Error : range over.");
+ return &mIndTexMtx[index];
+ }
virtual void setIndTexCoordScale(u32 index, J2DIndTexCoordScale scale) {
+ J3D_PANIC(862, index < 4, "Error : range over.");
mTexCoordScale[index] = scale;
}
virtual J2DIndTexCoordScale* getIndTexCoordScale(u32 index) {
+ J3D_PANIC(863, index < 4, "Error : range over.");
return &mTexCoordScale[index];
}
virtual ~J2DIndBlockFull() {}
@@ -801,11 +1030,27 @@ public:
u32 getTexGenNum() const { return mTexGenNum; }
void setTexGenNum(u32 num) { mTexGenNum = num; }
- void setTexCoord(u32 i, J2DTexCoord coord) { mTexGenCoord[i] = coord; }
- void setTexCoord(u32 i, const J2DTexCoord* coord) { mTexGenCoord[i] = *coord; }
- void setTexMtx(u32 i, J2DTexMtx* mtx) { mTexMtx[i] = mtx; }
- J2DTexMtx& getTexMtx(u32 i) { return *mTexMtx[i]; }
- J2DTexCoord& getTexCoord(u32 i) { return mTexGenCoord[i]; }
+ void setTexCoord(u32 i, J2DTexCoord coord) {
+ J3D_PANIC(101, i < 8, "Error : range over.");
+ mTexGenCoord[i] = coord;
+ }
+ void setTexCoord(u32 i, const J2DTexCoord* coord) {
+ J3D_PANIC(98, i < 8, "Error : range over.");
+ J3D_PANIC(99, coord, "Error : null pointer.");
+ mTexGenCoord[i] = *coord;
+ }
+ void setTexMtx(u32 i, J2DTexMtx* mtx) {
+ J3D_PANIC(120, i < 8, "Error : range over.");
+ mTexMtx[i] = mtx;
+ }
+ J2DTexMtx& getTexMtx(u32 i) {
+ J3D_PANIC(108, i < 8, "Error : range over.");
+ return *mTexMtx[i];
+ }
+ J2DTexCoord& getTexCoord(u32 i) {
+ J3D_PANIC(102, i < 8, "Error : range over.");
+ return mTexGenCoord[i];
+ }
virtual ~J2DTexGenBlock();
}; // Size: 0x48
@@ -829,12 +1074,24 @@ public:
virtual ~J2DColorBlock() {}
- JUtility::TColor* getMatColor(u32 i) { return &mMatColor[i]; }
- J2DColorChan* getColorChan(u32 i) { return &mColorChan[i]; }
+ JUtility::TColor* getMatColor(u32 i) {
+ J3D_PANIC(49, i < 2, "Error : range over.");
+ return &mMatColor[i];
+ }
+ J2DColorChan* getColorChan(u32 i) {
+ J3D_PANIC(55, i < 4, "Error : range over.");
+ return &mColorChan[i];
+ }
void setCullMode(u8 mode) { mCullMode = mode; }
void setColorChanNum(u8 num) { mColorChanNum = num; }
- void setMatColor(u32 i, JUtility::TColor color) { mMatColor[i] = color; }
- void setColorChan(u32 i, const J2DColorChan& color) { mColorChan[i] = color; }
+ void setMatColor(u32 i, JUtility::TColor color) {
+ J3D_PANIC(48, i < 2, "Error : range over.");
+ mMatColor[i] = color;
+ }
+ void setColorChan(u32 i, const J2DColorChan& color) {
+ J3D_PANIC(54, i < 4, "Error : range over.");
+ mColorChan[i] = color;
+ }
};
#endif /* J2DMATBLOCK_H */
diff --git a/include/JSystem/J2DGraph/J2DMaterialFactory.h b/include/JSystem/J2DGraph/J2DMaterialFactory.h
index f51b2176eb..09eb1fe4ec 100644
--- a/include/JSystem/J2DGraph/J2DMaterialFactory.h
+++ b/include/JSystem/J2DGraph/J2DMaterialFactory.h
@@ -133,7 +133,7 @@ public:
J2DBlend newBlend(int) const;
u8 newDither(int) const;
- u32 getMaterialMode(int idx) const {
+ u8 getMaterialMode(int idx) const {
return field_0x4[field_0x8[idx]].field_0x0;
}
diff --git a/include/JSystem/J2DGraph/J2DOrthoGraph.h b/include/JSystem/J2DGraph/J2DOrthoGraph.h
index a46c22ed34..e6a01f34e0 100644
--- a/include/JSystem/J2DGraph/J2DOrthoGraph.h
+++ b/include/JSystem/J2DGraph/J2DOrthoGraph.h
@@ -22,6 +22,7 @@ public:
f32 getWidthPower() { return mBounds.getWidth() / mOrtho.getWidth(); }
f32 getHeightPower() { return mBounds.getHeight() / mOrtho.getHeight(); }
+ const JGeometry::TBox2<f32>* getOrtho() const { return &mOrtho; }
void setOrtho(f32 x, f32 y, f32 width, f32 height, f32 far, f32 near) {
JGeometry::TBox2<f32> ortho(x, y, x + width, y + height);
setOrtho(ortho, far, near);
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index c66e10d668..409b2257e7 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -174,6 +174,7 @@ public:
void show() { mVisible = true; }
void hide() { mVisible = false; }
+ bool isInfluencedAlpha() const { return mIsInfluencedAlpha; }
bool isConnectParent() const { return mConnected; }
u64 getUserInfo() const { return mUserInfoTag; }
diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h
index bb71d97aa3..e73fd3fc9b 100644
--- a/include/JSystem/J2DGraph/J2DPicture.h
+++ b/include/JSystem/J2DGraph/J2DPicture.h
@@ -17,6 +17,7 @@ enum J2DMirror {
};
enum J2DBinding {
+ /* 0 */ J2DBind_None = 0,
/* 1 */ J2DBind_Bottom = (1 << 0),
/* 2 */ J2DBind_Top = (1 << 1),
/* 4 */ J2DBind_Right = (1 << 2),
@@ -189,6 +190,9 @@ public:
void initinfo();
void setTevMode();
static void swap(f32&, f32&);
+ J2DBinding getBinding() const;
+ void setMirror(J2DMirror);
+ bool isTumble() const;
void setBlendKonstColor();
void setBlendKonstAlpha();
void getNewColor(JUtility::TColor*);
diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h
index 2d8a9d7ef8..b3dedd90fe 100644
--- a/include/JSystem/J2DGraph/J2DTevs.h
+++ b/include/JSystem/J2DGraph/J2DTevs.h
@@ -103,6 +103,7 @@ public:
mInfo = info;
return *this;
}
+ void setIndTexOrderInfo(const J2DIndTexOrderInfo& info) { mInfo = info; }
void load(u8);
private:
@@ -147,6 +148,7 @@ public:
mIndTexMtxInfo = info;
return *this;
}
+ void setIndTexMtxInfo(const J2DIndTexMtxInfo& info) { mIndTexMtxInfo = info; }
void load(u8);
void load(u32);
void calc();
@@ -191,6 +193,7 @@ public:
mInfo = info;
return *this;
}
+ void setIndTexCoordScaleInfo(const J2DIndTexCoordScaleInfo& info) { mInfo = info; }
void load(u8);
private:
@@ -426,7 +429,7 @@ public:
}
void setTexSel(u8 param_0) {
- field_0x7 = (field_0x7 & ~0x0c) | (param_0 * 4);
+ field_0x7 = (field_0x7 & ~0x0c) | (param_0 << 2);
}
void setRasSel(u8 param_0) {
@@ -632,6 +635,10 @@ public:
u8 getMatSrc() const { return mColorChan & 1; }
+ void operator=(const J2DColorChan& other) {
+ mColorChan = other.mColorChan;
+ }
+
private:
/* 0x0 */ u16 mColorChan;
};
diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h
index c13d838082..d04192b07b 100644
--- a/include/JSystem/JGeometry.h
+++ b/include/JSystem/JGeometry.h
@@ -447,6 +447,14 @@ struct TVec2 {
y += other.y;
}
+ bool equals(const TVec2<T>& other) const {
+ bool result = false;
+ if (this->x == other.x && this->y == other.y) {
+ result = true;
+ }
+ return result;
+ }
+
bool isAbove(const TVec2<T>& other) const {
return (x >= other.x) && (y >= other.y) ? true : false;
}
@@ -463,6 +471,10 @@ struct TVec2 {
return TUtil<f32>::sqrt(squared());
}
+ bool operator==(const TVec2<T>& other) const {
+ return equals(other);
+ }
+
T x;
T y;
};
@@ -497,6 +509,18 @@ template<> struct TBox<TVec2<f32> > {
return isValid();
}
+ void absolute() {
+ if (this->isValid()) {
+ return;
+ }
+
+ TBox<TVec2<f32> > box(*this);
+ this->i.setMin(box.i);
+ this->i.setMin(box.f);
+ this->f.setMax(box.i);
+ this->f.setMax(box.f);
+ }
+
TVec2<f32> i, f;
};
@@ -509,16 +533,6 @@ struct TBox2 : public TBox<TVec2<T> > {
}
TBox2(f32 x0, f32 y0, f32 x1, f32 y1) { set(x0, y0, x1, y1); }
- void absolute() {
- if (!this->isValid()) {
- TBox2<T> box(*this);
- this->i.setMin(box.i);
- this->i.setMin(box.f);
- this->f.setMax(box.i);
- this->f.setMax(box.f);
- }
- }
-
void set(const TBox<TVec2<T> >& other) { set(other.i, other.f); }
void set(const TVec2<f32>& i, const TVec2<f32>& f) { this->i.set(i), this->f.set(f); }
void set(f32 x0, f32 y0, f32 x1, f32 y1) { this->i.set(x0, y0); this->f.set(x1, y1); }
diff --git a/include/JSystem/JSupport/JSUInputStream.h b/include/JSystem/JSupport/JSUInputStream.h
index 52c80575ee..afde440837 100644
--- a/include/JSystem/JSupport/JSUInputStream.h
+++ b/include/JSystem/JSupport/JSUInputStream.h
@@ -89,6 +89,10 @@ public:
return *this;
}
+ s32 read(bool& val) {
+ return read(&val, sizeof(bool));
+ }
+
s32 read(u8& val) {
return read(&val, sizeof(u8));
}