diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2026-01-11 19:00:04 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-11 19:00:04 -0800 |
| commit | 2dd7e2ea62daaa33195b2adbca8b086ceaa6d464 (patch) | |
| tree | d56016fab9d536e646ebde852dd8ef2ad81ba732 /include/JSystem | |
| parent | 6e76f12dd3b49acc9b682eeb811dbec64bc3519c (diff) | |
J2DGraph debug (#3028)
* J2DGraph debug
* J2DGraph debug
Diffstat (limited to 'include/JSystem')
| -rw-r--r-- | include/JSystem/J2DGraph/J2DAnimation.h | 127 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DGrafContext.h | 2 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DManage.h | 2 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DMatBlock.h | 431 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DMaterialFactory.h | 2 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DOrthoGraph.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DPane.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DPicture.h | 4 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DTevs.h | 9 | ||||
| -rw-r--r-- | include/JSystem/JGeometry.h | 34 | ||||
| -rw-r--r-- | include/JSystem/JSupport/JSUInputStream.h | 4 |
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)); } |
