mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
@@ -14118,8 +14118,8 @@ getVisibility__20J2DAnmVisibilityFullCFUsPUc = .text:0x8030C048; // type:functio
|
||||
getTevColorReg__15J2DAnmTevRegKeyCFUsP11_GXColorS10 = .text:0x8030C0F0; // type:function size:0x2C4 scope:global align:4
|
||||
getTevKonstReg__15J2DAnmTevRegKeyCFUsP8_GXColor = .text:0x8030C3B4; // type:function size:0x2C4 scope:global align:4
|
||||
searchUpdateMaterialID__15J2DAnmTevRegKeyFP9J2DScreen = .text:0x8030C678; // type:function size:0x104 scope:global align:4
|
||||
J2DGetKeyFrameInterpolations__FfP18J3DAnmKeyTableBasePs = .text:0x8030C77C; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolationf__FfP18J3DAnmKeyTableBasePf = .text:0x8030C9B0; // type:function size:0x17C scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<s>__FfP18J3DAnmKeyTableBasePs = .text:0x8030C77C; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<f>__FfP18J3DAnmKeyTableBasePf = .text:0x8030C9B0; // type:function size:0x17C scope:global align:4
|
||||
__ct__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030CB2C; // type:function size:0x10 scope:global align:4
|
||||
__dt__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030CB3C; // type:function size:0x54 scope:global align:4
|
||||
__dt__16J2DAnmTexPatternFv = .text:0x8030CB90; // type:function size:0x90 scope:weak align:4
|
||||
|
||||
@@ -14124,8 +14124,8 @@ getVisibility__20J2DAnmVisibilityFullCFUsPUc = .text:0x8030E4E4; // type:functio
|
||||
getTevColorReg__15J2DAnmTevRegKeyCFUsP11_GXColorS10 = .text:0x8030E58C; // type:function size:0x2C4 scope:global align:4
|
||||
getTevKonstReg__15J2DAnmTevRegKeyCFUsP8_GXColor = .text:0x8030E850; // type:function size:0x2C4 scope:global align:4
|
||||
searchUpdateMaterialID__15J2DAnmTevRegKeyFP9J2DScreen = .text:0x8030EB14; // type:function size:0x104 scope:global align:4
|
||||
J2DGetKeyFrameInterpolations__FfP18J3DAnmKeyTableBasePs = .text:0x8030EC18; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolationf__FfP18J3DAnmKeyTableBasePf = .text:0x8030EE4C; // type:function size:0x17C scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<s>__FfP18J3DAnmKeyTableBasePs = .text:0x8030EC18; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<f>__FfP18J3DAnmKeyTableBasePf = .text:0x8030EE4C; // type:function size:0x17C scope:global align:4
|
||||
__ct__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030EFC8; // type:function size:0x10 scope:global align:4
|
||||
__dt__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030EFD8; // type:function size:0x54 scope:global align:4
|
||||
__dt__16J2DAnmTexPatternFv = .text:0x8030F02C; // type:function size:0x90 scope:weak align:4
|
||||
|
||||
@@ -14123,8 +14123,8 @@ getVisibility__20J2DAnmVisibilityFullCFUsPUc = .text:0x8030CE48; // type:functio
|
||||
getTevColorReg__15J2DAnmTevRegKeyCFUsP11_GXColorS10 = .text:0x8030CEF0; // type:function size:0x2C4 scope:global align:4
|
||||
getTevKonstReg__15J2DAnmTevRegKeyCFUsP8_GXColor = .text:0x8030D1B4; // type:function size:0x2C4 scope:global align:4
|
||||
searchUpdateMaterialID__15J2DAnmTevRegKeyFP9J2DScreen = .text:0x8030D478; // type:function size:0x104 scope:global align:4
|
||||
J2DGetKeyFrameInterpolations__FfP18J3DAnmKeyTableBasePs = .text:0x8030D57C; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolationf__FfP18J3DAnmKeyTableBasePf = .text:0x8030D7B0; // type:function size:0x17C scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<s>__FfP18J3DAnmKeyTableBasePs = .text:0x8030D57C; // type:function size:0x234 scope:global align:4
|
||||
J2DGetKeyFrameInterpolation<f>__FfP18J3DAnmKeyTableBasePf = .text:0x8030D7B0; // type:function size:0x17C scope:global align:4
|
||||
__ct__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030D92C; // type:function size:0x10 scope:global align:4
|
||||
__dt__Q216J2DAnmTexPattern27J2DAnmTexPatternTIMGPointerFv = .text:0x8030D93C; // type:function size:0x54 scope:global align:4
|
||||
__dt__16J2DAnmTexPatternFv = .text:0x8030D990; // type:function size:0x90 scope:weak align:4
|
||||
|
||||
@@ -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__
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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*);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
+24
-10
@@ -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); }
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,9 @@
|
||||
|
||||
J2DAnmBase* J2DAnmLoaderDataBase::load(void const* p_data) {
|
||||
const J3DAnmDataHeader* hdr = (const J3DAnmDataHeader*)p_data;
|
||||
J3D_PANIC(38, p_data, "Error : null pointer.");
|
||||
|
||||
if (hdr == NULL) {
|
||||
if (p_data == NULL) {
|
||||
return NULL;
|
||||
} else if (hdr->mMagic == 'J3D1') {
|
||||
switch (hdr->mType) {
|
||||
@@ -27,6 +28,7 @@ J2DAnmBase* J2DAnmLoaderDataBase::load(void const* p_data) {
|
||||
break;
|
||||
}
|
||||
case 'blk1':
|
||||
OS_REPORT("J2DAnmLoader: this is a J3D Binary that cannot use J2D.\n");
|
||||
return NULL;
|
||||
case 'btk1': {
|
||||
J2DAnmKeyLoader_v15 loader;
|
||||
@@ -70,24 +72,32 @@ J2DAnmBase* J2DAnmLoaderDataBase::load(void const* p_data) {
|
||||
break;
|
||||
}
|
||||
case 'bla1':
|
||||
OS_REPORT("J2DAnmLoader: this is a J3D Binary that cannot use J2D.\n");
|
||||
return NULL;
|
||||
case 'bxa1': {
|
||||
J2DAnmFullLoader_v15 loader;
|
||||
loader.mpResource = new J2DAnmVtxColorFull();
|
||||
return (J2DAnmBase*)loader.load(p_data);
|
||||
}
|
||||
default:
|
||||
OS_REPORT("J2DAnmLoader: this is not a J3D Binary.\n");
|
||||
return NULL;
|
||||
}
|
||||
return NULL;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void dummy() {
|
||||
OS_REPORT("J3DAnmLoader: this is not a J3D Binary.\n");
|
||||
}
|
||||
|
||||
J2DAnmKeyLoader_v15::J2DAnmKeyLoader_v15() {}
|
||||
|
||||
J2DAnmKeyLoader_v15::~J2DAnmKeyLoader_v15() {}
|
||||
|
||||
void* J2DAnmKeyLoader_v15::load(void const* p_data) {
|
||||
J3D_PANIC(317, p_data, "Error : null pointer.");
|
||||
const J3DAnmDataHeader* hdr = (const J3DAnmDataHeader*)p_data;
|
||||
const J3DAnmDataBlockHeader* dataPtr = &hdr->mFirst;
|
||||
|
||||
@@ -108,6 +118,9 @@ void* J2DAnmKeyLoader_v15::load(void const* p_data) {
|
||||
case 'TRK1':
|
||||
readAnmTevReg((J3DAnmTevRegKeyData*)dataPtr);
|
||||
break;
|
||||
default:
|
||||
OS_REPORT("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
dataPtr = (J3DAnmDataBlockHeader*)((s32)dataPtr + dataPtr->mNextOffset);
|
||||
}
|
||||
@@ -116,6 +129,7 @@ void* J2DAnmKeyLoader_v15::load(void const* p_data) {
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setResource(J2DAnmBase* p_anm, void const* p_data) {
|
||||
J3D_PANIC(355, p_data, "Error : null pointer.");
|
||||
const J3DAnmDataHeader* hdr = (const J3DAnmDataHeader*)p_data;
|
||||
const J3DAnmDataBlockHeader* dataPtr = &hdr->mFirst;
|
||||
|
||||
@@ -147,17 +161,23 @@ void J2DAnmKeyLoader_v15::setResource(J2DAnmBase* p_anm, void const* p_data) {
|
||||
setAnmVtxColor((J2DAnmVtxColorKey*)p_anm, (J3DAnmVtxColorKeyData*)dataPtr);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
OS_REPORT("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
dataPtr = (J3DAnmDataBlockHeader*)((s32)dataPtr + dataPtr->mNextOffset);
|
||||
}
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::readAnmTransform(J3DAnmTransformKeyData const* p_data) {
|
||||
setAnmTransform((J2DAnmTransformKey*)mpResource, p_data);
|
||||
J2DAnmTransformKey* p_anm = (J2DAnmTransformKey*)mpResource;
|
||||
setAnmTransform(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setAnmTransform(J2DAnmTransformKey* p_anm,
|
||||
J3DAnmTransformKeyData const* p_data) {
|
||||
J3D_PANIC(439, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(440, p_data, "Error : null pointer.");
|
||||
p_anm->field_0x22 = p_data->field_0xc;
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
@@ -172,11 +192,14 @@ void J2DAnmKeyLoader_v15::setAnmTransform(J2DAnmTransformKey* p_anm,
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::readAnmTextureSRT(J3DAnmTextureSRTKeyData const* p_data) {
|
||||
setAnmTextureSRT((J2DAnmTextureSRTKey*)mpResource, p_data);
|
||||
J2DAnmTextureSRTKey* p_anm = (J2DAnmTextureSRTKey*)mpResource;
|
||||
setAnmTextureSRT(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setAnmTextureSRT(J2DAnmTextureSRTKey* p_anm,
|
||||
J3DAnmTextureSRTKeyData const* p_data) {
|
||||
J3D_PANIC(480, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(481, p_data, "Error : null pointer.");
|
||||
p_anm->mUpdateMaterialNum = p_data->field_0xc;
|
||||
p_anm->mFrameMax = p_data->field_0xa;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
@@ -226,10 +249,13 @@ void J2DAnmKeyLoader_v15::setAnmTextureSRT(J2DAnmTextureSRTKey* p_anm,
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::readAnmColor(J3DAnmColorKeyData const* p_data) {
|
||||
setAnmColor((J2DAnmColorKey*)mpResource, p_data);
|
||||
J2DAnmColorKey* p_anm = (J2DAnmColorKey*)mpResource;
|
||||
setAnmColor(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setAnmColor(J2DAnmColorKey* p_anm, J3DAnmColorKeyData const* p_data) {
|
||||
J3D_PANIC(573, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(574, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -251,11 +277,14 @@ void J2DAnmKeyLoader_v15::setAnmColor(J2DAnmColorKey* p_anm, J3DAnmColorKeyData
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::readAnmVtxColor(J3DAnmVtxColorKeyData const* p_data) {
|
||||
setAnmVtxColor((J2DAnmVtxColorKey*)mpResource, p_data);
|
||||
J2DAnmVtxColorKey* p_anm = (J2DAnmVtxColorKey*)mpResource;
|
||||
setAnmVtxColor(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setAnmVtxColor(J2DAnmVtxColorKey* p_anm,
|
||||
J3DAnmVtxColorKeyData const* p_data) {
|
||||
J3D_PANIC(628, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(629, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -280,6 +309,7 @@ void J2DAnmKeyLoader_v15::setAnmVtxColor(J2DAnmVtxColorKey* p_anm,
|
||||
}
|
||||
|
||||
void* J2DAnmFullLoader_v15::load(void const* p_data) {
|
||||
J3D_PANIC(670, p_data, "Error : null pointer.");
|
||||
const J3DAnmDataHeader* hdr = (const J3DAnmDataHeader*)p_data;
|
||||
const J3DAnmDataBlockHeader* dataPtr = &hdr->mFirst;
|
||||
|
||||
@@ -300,6 +330,9 @@ void* J2DAnmFullLoader_v15::load(void const* p_data) {
|
||||
case 'VCF1':
|
||||
readAnmVtxColor((J3DAnmVtxColorFullData*)dataPtr);
|
||||
break;
|
||||
default:
|
||||
OS_REPORT("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
dataPtr = (J3DAnmDataBlockHeader*)((s32)dataPtr + dataPtr->mNextOffset);
|
||||
}
|
||||
@@ -307,6 +340,7 @@ void* J2DAnmFullLoader_v15::load(void const* p_data) {
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setResource(J2DAnmBase* p_anm, void const* p_data) {
|
||||
J3D_PANIC(710, p_data, "Error : null pointer.");
|
||||
const J3DAnmDataHeader* hdr = (const J3DAnmDataHeader*)p_data;
|
||||
const J3DAnmDataBlockHeader* dataPtr = &hdr->mFirst;
|
||||
|
||||
@@ -334,6 +368,9 @@ void J2DAnmFullLoader_v15::setResource(J2DAnmBase* p_anm, void const* p_data) {
|
||||
if (p_anm->getKind() == KIND_VTX_COLOR)
|
||||
setAnmVtxColor((J2DAnmVtxColorFull*)p_anm, (J3DAnmVtxColorFullData*)dataPtr);
|
||||
break;
|
||||
default:
|
||||
OS_REPORT("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
dataPtr = (J3DAnmDataBlockHeader*)((s32)dataPtr + dataPtr->mNextOffset);
|
||||
}
|
||||
@@ -344,11 +381,14 @@ J2DAnmFullLoader_v15::J2DAnmFullLoader_v15() {}
|
||||
J2DAnmFullLoader_v15::~J2DAnmFullLoader_v15() {}
|
||||
|
||||
void J2DAnmFullLoader_v15::readAnmTransform(J3DAnmTransformFullData const* p_data) {
|
||||
setAnmTransform((J2DAnmTransformFull*)mpResource, p_data);
|
||||
J2DAnmTransformFull* p_anm = (J2DAnmTransformFull*)mpResource;
|
||||
setAnmTransform(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setAnmTransform(J2DAnmTransformFull* p_anm,
|
||||
J3DAnmTransformFullData const* p_data) {
|
||||
J3D_PANIC(813, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(814, p_data, "Error : null pointer.");
|
||||
p_anm->field_0x22 = p_data->field_0xc;
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
@@ -361,10 +401,13 @@ void J2DAnmFullLoader_v15::setAnmTransform(J2DAnmTransformFull* p_anm,
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::readAnmColor(J3DAnmColorFullData const* p_data) {
|
||||
setAnmColor((J2DAnmColorFull*)mpResource, p_data);
|
||||
J2DAnmColorFull* p_anm = (J2DAnmColorFull*)mpResource;
|
||||
setAnmColor(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setAnmColor(J2DAnmColorFull* p_anm, J3DAnmColorFullData const* p_data) {
|
||||
J3D_PANIC(857, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(858, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -382,11 +425,14 @@ void J2DAnmFullLoader_v15::setAnmColor(J2DAnmColorFull* p_anm, J3DAnmColorFullDa
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::readAnmTexPattern(J3DAnmTexPatternFullData const* p_data) {
|
||||
setAnmTexPattern((J2DAnmTexPattern*)mpResource, p_data);
|
||||
J2DAnmTexPattern* p_anm = (J2DAnmTexPattern*)mpResource;
|
||||
setAnmTexPattern(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setAnmTexPattern(J2DAnmTexPattern* p_anm,
|
||||
J3DAnmTexPatternFullData const* p_data) {
|
||||
J3D_PANIC(906, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(907, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -402,10 +448,13 @@ void J2DAnmFullLoader_v15::setAnmTexPattern(J2DAnmTexPattern* p_anm,
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::readAnmTevReg(J3DAnmTevRegKeyData const* p_data) {
|
||||
setAnmTevReg((J2DAnmTevRegKey*)mpResource, p_data);
|
||||
J2DAnmTevRegKey* p_anm = (J2DAnmTevRegKey*)mpResource;
|
||||
setAnmTevReg(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmKeyLoader_v15::setAnmTevReg(J2DAnmTevRegKey* p_anm, J3DAnmTevRegKeyData const* p_data) {
|
||||
J3D_PANIC(955, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(956, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -442,11 +491,14 @@ void J2DAnmKeyLoader_v15::setAnmTevReg(J2DAnmTevRegKey* p_anm, J3DAnmTevRegKeyDa
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::readAnmVisibility(J3DAnmVisibilityFullData const* p_data) {
|
||||
setAnmVisibility((J2DAnmVisibilityFull*)mpResource, p_data);
|
||||
J2DAnmVisibilityFull* p_anm = (J2DAnmVisibilityFull*)mpResource;
|
||||
setAnmVisibility(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setAnmVisibility(J2DAnmVisibilityFull* p_anm,
|
||||
J3DAnmVisibilityFullData const* p_data) {
|
||||
J3D_PANIC(1025, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(1026, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
@@ -458,11 +510,14 @@ void J2DAnmFullLoader_v15::setAnmVisibility(J2DAnmVisibilityFull* p_anm,
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::readAnmVtxColor(J3DAnmVtxColorFullData const* p_data) {
|
||||
setAnmVtxColor((J2DAnmVtxColorFull*)mpResource, p_data);
|
||||
J2DAnmVtxColorFull* p_anm = (J2DAnmVtxColorFull*)mpResource;
|
||||
setAnmVtxColor(p_anm, p_data);
|
||||
}
|
||||
|
||||
void J2DAnmFullLoader_v15::setAnmVtxColor(J2DAnmVtxColorFull* p_anm,
|
||||
J3DAnmVtxColorFullData const* p_data) {
|
||||
J3D_PANIC(1070, p_anm, "Error : null pointer.");
|
||||
J3D_PANIC(1071, p_data, "Error : null pointer.");
|
||||
p_anm->mFrameMax = p_data->mFrameMax;
|
||||
p_anm->field_0x4 = p_data->field_0x8;
|
||||
p_anm->mFrame = 0;
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
#include <string>
|
||||
|
||||
void* J2DDataManage::get(char const* name) {
|
||||
for (J2DataManageLink* link = mList; link != NULL; link = link->mNext) {
|
||||
J2DataManageLink* link;
|
||||
for (link = mList; link != NULL; link = link->mNext) {
|
||||
if (strcmp(link->mName, name) == 0) {
|
||||
return link->mData;
|
||||
}
|
||||
@@ -19,26 +20,26 @@ void* J2DDataManage::get(JSUInputStream* inputStream) {
|
||||
|
||||
if (nameLen == 0) {
|
||||
return NULL;
|
||||
} else {
|
||||
char nameBuffer[257];
|
||||
inputStream->read(&nameBuffer, nameLen);
|
||||
nameBuffer[nameLen] = 0;
|
||||
return this->get(nameBuffer);
|
||||
}
|
||||
|
||||
char nameBuffer[257];
|
||||
inputStream->read(&nameBuffer, nameLen);
|
||||
nameBuffer[nameLen] = 0;
|
||||
return this->get(nameBuffer);
|
||||
}
|
||||
|
||||
s8* J2DResReference::getResReference(u16 idx) const {
|
||||
char* J2DResReference::getResReference(u16 idx) const {
|
||||
if (mCount <= idx || idx == 0xFFFF) {
|
||||
return NULL;
|
||||
} else {
|
||||
return (((s8*)this) + mOffsets[idx]);
|
||||
}
|
||||
u16 offset = mOffsets[idx];
|
||||
return ((char*)this) + offset;
|
||||
}
|
||||
|
||||
char* J2DResReference::getName(u16 idx) const {
|
||||
static char p_name[257];
|
||||
|
||||
s8* resRef = this->getResReference(idx);
|
||||
char* resRef = (char*)this->getResReference(idx);
|
||||
|
||||
if (resRef == NULL) {
|
||||
p_name[0] = 0;
|
||||
|
||||
@@ -76,11 +76,13 @@ void J2DTexGenBlock::setTexMtx(u32 param_0, J2DTexMtx& param_1) {
|
||||
|
||||
void J2DTexGenBlock::getTexMtx(u32 param_0, J2DTexMtx& param_1) {
|
||||
J3D_PANIC(123, param_0 < 8, "Error : range over.");
|
||||
|
||||
if (mTexMtx[param_0]) {
|
||||
J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
|
||||
param_1.setTexMtxInfo(texMtxInfo);
|
||||
|
||||
if (!mTexMtx[param_0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
|
||||
param_1.setTexMtxInfo(texMtxInfo);
|
||||
}
|
||||
|
||||
JUTTexture* J2DTevBlock::getTexture(u32) {
|
||||
@@ -349,6 +351,7 @@ void J2DTevBlock1::shiftDeleteFlag(u8, bool) {
|
||||
|
||||
void J2DTevBlock1::setGX() {
|
||||
loadTexture(GX_TEXMAP0, 0);
|
||||
(void)bool(mFont);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, (GXTexCoordID)mTevOrder[0].getTexCoord(), (GXTexMapID)mTevOrder[0].getTexMap(), (GXChannelID)mTevOrder[0].getColor());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@@ -366,10 +369,10 @@ void J2DTevBlock1::setGX() {
|
||||
GXTevAlphaArg(mTevStage[0].getAlphaD()));
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GXTevOp(mTevStage[0].getCOp()),
|
||||
GXTevBias(mTevStage[0].getCBias()), GXTevScale(mTevStage[0].getCScale()),
|
||||
mTevStage[0].getCClamp(), GXTevRegID(mTevStage[0].getCReg()));
|
||||
GXBool(mTevStage[0].getCClamp()), GXTevRegID(mTevStage[0].getCReg()));
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, (GXTevOp)mTevStage[0].getAOp(),
|
||||
GXTevBias(mTevStage[0].getABias()), GXTevScale(mTevStage[0].getAScale()),
|
||||
mTevStage[0].getAClamp(), GXTevRegID(mTevStage[0].getAReg()));
|
||||
GXBool(mTevStage[0].getAClamp()), GXTevRegID(mTevStage[0].getAReg()));
|
||||
GXSetTevKColorSel(GX_TEVSTAGE0, mTevKColorSel[0] != 0xff ? GXTevKColorSel(mTevKColorSel[0]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, mTevKAlphaSel[0] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[0]) : GX_TEV_KASEL_1);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@@ -483,28 +486,27 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
return false;
|
||||
}
|
||||
|
||||
JUTTexture* tex;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg->indexTexture && p_tlut == NULL) {
|
||||
tex = mTexture[0];
|
||||
if (tex != NULL && tex->getTexInfo() != NULL && tex->getTexInfo()->indexTexture) {
|
||||
int tlutname = tex->getTlutName();
|
||||
if (p_timg->indexTexture && p_tlut == NULL && mTexture[0] != NULL) {
|
||||
const ResTIMG* timg = mTexture[0]->getTexInfo();
|
||||
if (timg != NULL && timg->indexTexture) {
|
||||
int tlutname = mTexture[0]->getTlutName();
|
||||
if (tlutname == GX_TLUT0 || tlutname == GX_BIGTLUT0) {
|
||||
tlutid = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tex = mTexture[texNo];
|
||||
if (tex == NULL) {
|
||||
JUTTexture* newtex = new JUTTexture(p_timg, tlutid);
|
||||
JUTTexture* tex;
|
||||
if (mTexture[texNo] == NULL) {
|
||||
tex = new JUTTexture(p_timg, tlutid);
|
||||
|
||||
if (newtex == NULL) {
|
||||
if (tex == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (p_tlut != NULL) {
|
||||
newtex->storeTIMG(p_timg, p_tlut);
|
||||
tex->storeTIMG(p_timg, p_tlut);
|
||||
}
|
||||
|
||||
if (param_0 == 0) {
|
||||
@@ -512,10 +514,11 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
mPalette[1] = mPalette[0];
|
||||
mTexNo[1] = mTexNo[0];
|
||||
}
|
||||
mTexture[param_0] = newtex;
|
||||
mTexture[param_0] = tex;
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= (1 << param_0);
|
||||
} else {
|
||||
tex = mTexture[texNo];
|
||||
if (p_tlut == NULL) {
|
||||
tex->storeTIMG(p_timg, tlutid);
|
||||
} else {
|
||||
@@ -604,9 +607,8 @@ bool J2DTevBlock2::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
const ResTIMG* timg = mTexture[idx]->getTexInfo();
|
||||
if (timg != NULL && timg->indexTexture) {
|
||||
int tlutname = mTexture[idx]->getTlutName();
|
||||
u8 tlut_no = tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0);
|
||||
|
||||
if (tlut_no == 0) {
|
||||
if (u8(tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0)) == 0) {
|
||||
tlutid = 1;
|
||||
}
|
||||
}
|
||||
@@ -763,7 +765,7 @@ void J2DTevBlock2::shiftDeleteFlag(u8 param_0, bool param_1) {
|
||||
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
|
||||
}
|
||||
|
||||
mUndeleteFlag = (mUndeleteFlag | tmpFlags) & 0xFF;
|
||||
mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
|
||||
}
|
||||
|
||||
void J2DTevBlock2::setGX() {
|
||||
@@ -771,6 +773,8 @@ void J2DTevBlock2::setGX() {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
|
||||
(void)bool(mFont);
|
||||
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -791,10 +795,10 @@ void J2DTevBlock2::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -943,8 +947,9 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -960,7 +965,7 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1037,10 +1042,9 @@ bool J2DTevBlock4::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -1213,13 +1217,14 @@ void J2DTevBlock4::shiftDeleteFlag(u8 param_0, bool param_1) {
|
||||
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
|
||||
}
|
||||
|
||||
mUndeleteFlag |= tmpFlags;
|
||||
mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
|
||||
}
|
||||
|
||||
void J2DTevBlock4::setGX() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -1238,10 +1243,10 @@ void J2DTevBlock4::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -1387,8 +1392,9 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -1404,7 +1410,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1459,7 +1465,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, JUTTexture* p_tex) {
|
||||
delete mTexture[7];
|
||||
}
|
||||
|
||||
mUndeleteFlag &= 0x7F;
|
||||
mUndeleteFlag &= ~0x80;
|
||||
}
|
||||
|
||||
for (u8 i = 7; i > param_0; i--) {
|
||||
@@ -1481,10 +1487,9 @@ bool J2DTevBlock8::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -1659,6 +1664,7 @@ void J2DTevBlock8::setGX() {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -1677,10 +1683,10 @@ void J2DTevBlock8::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -1826,8 +1832,9 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -1843,7 +1850,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1898,7 +1905,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, JUTTexture* p_tex) {
|
||||
delete mTexture[7];
|
||||
}
|
||||
|
||||
mUndeleteFlag &= 0x7F;
|
||||
mUndeleteFlag &= ~0x80;
|
||||
}
|
||||
|
||||
for (u8 i = 7; i > param_0; i--) {
|
||||
@@ -1920,10 +1927,9 @@ bool J2DTevBlock16::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -2098,6 +2104,7 @@ void J2DTevBlock16::setGX() {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -2116,10 +2123,10 @@ void J2DTevBlock16::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -2149,13 +2156,13 @@ void J2DTevBlock16::loadTexture(GXTexMapID texmapID, u32 texIndex) {
|
||||
void J2DIndBlockFull::initialize() {
|
||||
mIndTexStageNum = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mIndTexOrder[i] = j2dDefaultIndTexOrderNull;
|
||||
mIndTexOrder[i].setIndTexOrderInfo(j2dDefaultIndTexOrderNull);
|
||||
}
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mIndTexMtx[i] = j2dDefaultIndTexMtxInfo;
|
||||
mIndTexMtx[i].setIndTexMtxInfo(j2dDefaultIndTexMtxInfo);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTexCoordScale[i] = j2dDefaultIndTexCoordScaleInfo;
|
||||
mTexCoordScale[i].setIndTexCoordScaleInfo(j2dDefaultIndTexCoordScaleInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2181,5 +2188,5 @@ void J2DPEBlock::initialize() {
|
||||
void J2DPEBlock::setGX() {
|
||||
GXSetAlphaCompare(GXCompare(mAlphaComp.getComp0()), mAlphaComp.getRef0(), GXAlphaOp(mAlphaComp.getOp()), GXCompare(mAlphaComp.getComp1()), mAlphaComp.getRef1());
|
||||
GXSetBlendMode(GXBlendMode(mBlend.getType()), GXBlendFactor(mBlend.getSrcFactor()), GXBlendFactor(mBlend.getDstFactor()), GXLogicOp(mBlend.getOp()));
|
||||
GXSetDither(mDither);
|
||||
GXSetDither(GXBool(mDither));
|
||||
}
|
||||
|
||||
@@ -67,9 +67,7 @@ J2DTevBlock* J2DMaterial::createTevBlock(int block_type, bool noAlign) {
|
||||
block = new (-4) J2DTevBlock16();
|
||||
}
|
||||
}
|
||||
if (!block) {
|
||||
OS_PANIC(101, "Error : allocate memory.");
|
||||
}
|
||||
ASSERTMSGLINE(101, block, "Error : allocate memory.");
|
||||
|
||||
return block;
|
||||
}
|
||||
@@ -90,9 +88,7 @@ J2DIndBlock* J2DMaterial::createIndBlock(int block_type, bool noAlign) {
|
||||
block = new (-4) J2DIndBlockNull();
|
||||
}
|
||||
}
|
||||
if (!block) {
|
||||
OS_PANIC(133, "Error : allocate memory.");
|
||||
}
|
||||
ASSERTMSGLINE(133, block, "Error : allocate memory.");
|
||||
|
||||
return block;
|
||||
}
|
||||
@@ -148,9 +144,7 @@ void J2DMaterial::setAnimation(J2DAnmColor* anm) {
|
||||
u16 index = getIndex();
|
||||
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
u16 matID = anm->getUpdateMaterialID(i);
|
||||
|
||||
if (index == matID) {
|
||||
if (index == anm->getUpdateMaterialID(i)) {
|
||||
mAnmPointer->mColorIds = i;
|
||||
return;
|
||||
}
|
||||
@@ -219,9 +213,7 @@ void J2DMaterial::setAnimation(J2DAnmTevRegKey* anm) {
|
||||
u16 index = getIndex();
|
||||
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
u16 matID = anm->getCRegUpdateMaterialID(i);
|
||||
|
||||
if (index == matID) {
|
||||
if (index == anm->getCRegUpdateMaterialID(i)) {
|
||||
J3DAnmCRegKeyTable* anmTbl = anm->getAnmCRegKeyTable();
|
||||
mAnmPointer->mTevCRegIds[anmTbl[i].mColorId] = i;
|
||||
}
|
||||
@@ -237,9 +229,7 @@ void J2DMaterial::setAnimation(J2DAnmTevRegKey* anm) {
|
||||
u16 index = getIndex();
|
||||
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
u16 matID = anm->getKRegUpdateMaterialID(i);
|
||||
|
||||
if (index == matID) {
|
||||
if (index == anm->getKRegUpdateMaterialID(i)) {
|
||||
J3DAnmKRegKeyTable* anmTbl = anm->getAnmKRegKeyTable();
|
||||
mAnmPointer->mTevKRegIds[anmTbl[i].mColorId] = i;
|
||||
}
|
||||
|
||||
@@ -52,10 +52,7 @@ u32 J2DMaterialFactory::countStages(int param_0) const {
|
||||
}
|
||||
}
|
||||
if ((uVar3 != uVar4 && uVar4 != 0)) {
|
||||
if (uVar3 > uVar4) {
|
||||
return uVar3;
|
||||
}
|
||||
return uVar4;
|
||||
return uVar3 > uVar4 ? uVar3 : uVar4;
|
||||
}
|
||||
return uVar3;
|
||||
}
|
||||
@@ -64,16 +61,14 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
J2DResReference* param_3, J2DResReference* param_4,
|
||||
JKRArchive* param_5) const {
|
||||
u32 stages = countStages(index);
|
||||
u32 uVar1 = ((param_2 & 0x1f0000) >> 16);
|
||||
u32 r28 = stages > uVar1 ? stages : uVar1;
|
||||
|
||||
u32 r25 = r28 <= 8 ? r28 : 8;
|
||||
|
||||
s32 local_3bc = ((param_2 & 0x1000000) != 0);
|
||||
s32 local_3c0 = (param_2 & 0x1f0000) ? local_3bc : 0;
|
||||
bool temp = (param_2 & 0x1f0000);
|
||||
param_0->mTevBlock = J2DMaterial::createTevBlock((u16)r28, temp);
|
||||
param_0->mIndBlock = J2DMaterial::createIndBlock(local_3c0, temp);
|
||||
u32 local_36c = ((param_2 & 0x1f0000) >> 16);
|
||||
u32 local_370 = stages > local_36c ? stages : local_36c;
|
||||
u32 local_374 = local_370 > 8 ? 8 : local_370;
|
||||
s32 local_378 = (param_2 & 0x1000000) ? 1 : 0;
|
||||
local_378 = (param_2 & 0x1f0000) ? local_378 : 0;
|
||||
bool local_403 = (param_2 & 0x1f0000);
|
||||
param_0->mTevBlock = J2DMaterial::createTevBlock((u16)local_370, local_403);
|
||||
param_0->mIndBlock = J2DMaterial::createIndBlock(local_378, local_403);
|
||||
param_0->mIndex = index;
|
||||
param_0->field_0x8 = getMaterialMode(index);
|
||||
param_0->getColorBlock()->setColorChanNum(newColorChanNum(index));
|
||||
@@ -86,9 +81,9 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
param_0->mMaterialAlphaCalc = getMaterialAlphaCalc(index);
|
||||
|
||||
JUTResReference aJStack_12c;
|
||||
for (u8 i = 0; i < r25; i++) {
|
||||
for (u8 i = 0; i < local_374; i++) {
|
||||
u16 texNo = newTexNo(index, i);
|
||||
s8* local_37c = param_3->getResReference(texNo);
|
||||
char* local_37c = param_3->getResReference(texNo);
|
||||
void* local_380 = NULL;
|
||||
if (local_37c != NULL) {
|
||||
local_380 = aJStack_12c.getResource(local_37c, 'TIMG', param_5);
|
||||
@@ -107,7 +102,7 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
u16 fontNo = newFontNo(index);
|
||||
param_0->getTevBlock()->setFontNo(fontNo);
|
||||
|
||||
s8* local_384 = param_4->getResReference(param_0->getTevBlock()->getFontNo());
|
||||
char* local_384 = param_4->getResReference(param_0->getTevBlock()->getFontNo());
|
||||
void* local_388 = NULL;
|
||||
if (local_384 != NULL) {
|
||||
local_388 = aJStack_12c.getResource(local_384, 'FONT', param_5);
|
||||
@@ -122,10 +117,10 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
}
|
||||
|
||||
param_0->getTevBlock()->setFont((ResFONT*)local_388);
|
||||
for (u8 i = 0; i < r28; i++) {
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setTevOrder(i, newTevOrder(index, i));
|
||||
}
|
||||
for (u8 i = 0; i < r28; i++) {
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
J2DMaterialInitData* local_38c = &field_0x4[field_0x8[index]];
|
||||
param_0->getTevBlock()->setTevStage(i, newTevStage(index, i));
|
||||
if (local_38c->field_0xba[i] != 0xffff) {
|
||||
@@ -157,13 +152,13 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
param_0->getTexGenBlock()->setTexMtx(i, newTexMtx(index, i));
|
||||
}
|
||||
J2DMaterialInitData* local_394 = &field_0x4[field_0x8[index]];
|
||||
for (u8 i = 0; i < r28; i++) {
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setTevKColorSel(i, local_394->field_0x52[i]);
|
||||
}
|
||||
for (u8 i = 0; i < r28; i++) {
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setTevKAlphaSel(i, local_394->field_0x62[i]);
|
||||
}
|
||||
if (field_0xc != NULL || local_3c0 != 0) {
|
||||
if (field_0xc != NULL || local_378 != 0) {
|
||||
u8 local_410 = newIndTexStageNum(index);
|
||||
param_0->mIndBlock->setIndTexStageNum(local_410);
|
||||
for (u8 i = 0; i < local_410; i++) {
|
||||
@@ -175,7 +170,7 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
for (u8 i = 0; i < local_410; i++) {
|
||||
param_0->getIndBlock()->setIndTexCoordScale(i, newIndTexCoordScale(index, i));
|
||||
}
|
||||
for (u8 i = 0; i < r28; i++) {
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setIndTevStage(i, newIndTevStage(index, i));
|
||||
}
|
||||
}
|
||||
@@ -183,8 +178,7 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
}
|
||||
|
||||
JUtility::TColor J2DMaterialFactory::newMatColor(int param_0, int param_1) const {
|
||||
GXColor color = {0xff,0xff,0xff,0xff};
|
||||
JUtility::TColor local_20 = GXColor(color);
|
||||
JUtility::TColor local_20 = (GXColor){0xff,0xff,0xff,0xff};
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
if (iVar2->field_0x8[param_1] != 0xffff) {
|
||||
return field_0x10[iVar2->field_0x8[param_1]];
|
||||
@@ -201,6 +195,7 @@ u8 J2DMaterialFactory::newColorChanNum(int param_0) const {
|
||||
}
|
||||
|
||||
J2DColorChan J2DMaterialFactory::newColorChan(int param_0, int param_1) const {
|
||||
int r29 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
if (iVar2->field_0xc[param_1] != 0xffff) {
|
||||
return J2DColorChan(field_0x18[iVar2->field_0xc[param_1]]);
|
||||
@@ -209,6 +204,7 @@ J2DColorChan J2DMaterialFactory::newColorChan(int param_0, int param_1) const {
|
||||
}
|
||||
|
||||
u32 J2DMaterialFactory::newTexGenNum(int param_0) const {
|
||||
int r30 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
if (iVar2->field_0x3 != 0xff) {
|
||||
return field_0x1c[iVar2->field_0x3];
|
||||
@@ -235,6 +231,7 @@ J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const {
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newCullMode(int param_0) const {
|
||||
int r30 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
if (iVar2->field_0x1 != 0xff) {
|
||||
return field_0x30[iVar2->field_0x1];
|
||||
@@ -312,12 +309,13 @@ J2DTevSwapModeTable J2DMaterialFactory::newTevSwapModeTable(int param_0, int par
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const {
|
||||
u8 r31 = 0;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return field_0xc[param_0].field_0x1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return r31;
|
||||
}
|
||||
|
||||
J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) const {
|
||||
@@ -373,7 +371,7 @@ J2DBlend J2DMaterialFactory::newBlend(int param_0) const {
|
||||
if (iVar2->field_0xe4 != 0xffff) {
|
||||
return J2DBlend(field_0x54[iVar2->field_0xe4]);
|
||||
}
|
||||
return J2DBlend();
|
||||
return J2DBlend(j2dDefaultBlendInfo);
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newDither(int param_0) const {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user