summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-12-31 13:14:43 -0800
committerGitHub <noreply@github.com>2022-12-31 13:14:43 -0800
commitb95aed1512b85e4d8d66b4b2a234f4d60c4f34c0 (patch)
treea189596d244398f29a13a4556b689e6a5ba65e27 /include
parent2e2e08e78341a6a7f7a2847dd89235db07d72530 (diff)
parente79742133fecfafd7f159a645e9c581c26cd31dc (diff)
Merge pull request #233 from magcius/fop
Couple more J3DModel matches, d_kyeff/d_kyeff2 cleanups
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJointTree.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModel.h1
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModelData.h7
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h58
-rw-r--r--include/JSystem/J3DGraphBase/J3DMaterial.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DPacket.h5
-rw-r--r--include/JSystem/J3DGraphBase/J3DShape.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DShapeMtx.h10
-rw-r--r--include/JSystem/J3DGraphBase/J3DTexture.h1
9 files changed, 53 insertions, 35 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
index 80513fb4de..a58b55c9a9 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
@@ -43,11 +43,14 @@ public:
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
u16 getJointNum() const { return mJointNum; }
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
+ u8 getDrawMtxFlag(u16 idx) const { return mDrawMtxData.mDrawMtxFlag[idx]; }
+ u8 getDrawMtxIndex(u16 idx) const { return mDrawMtxData.mDrawMtxIndex[idx]; }
JUTNameTab* getJointName() const { return mJointName; }
J3DJoint* getRootNode() { return mRootNode; }
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
Mtx& getInvJointMtx(s32 idx) const { return mInvJointMtx[idx]; }
+ u32 getModelDataType() const { return mModelDataType; }
private:
/* 0x04 */ J3DModelHierarchy* mHierarchy;
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h
index 931c225adb..0c54118357 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModel.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModel.h
@@ -71,6 +71,7 @@ public:
void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); }
u32 getMtxCalcMode() const { return mFlags & 0x03; }
J3DVertexBuffer* getVertexBuffer() const { return (J3DVertexBuffer*)&mVertexBuffer; }
+ J3DMatPacket* getMatPacket(u16 idx) const { return &mMatPacket[idx]; }
J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; }
Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); }
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h
index 51d8f08e8c..1bc947fab4 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModelData.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h
@@ -38,11 +38,14 @@ public:
J3DTexture* getTexture() const { return mMaterialTable.getTexture(); }
JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); }
u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); }
+ u32 getModelDataType() const { return mJointTree.getModelDataType(); }
void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); }
void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); }
GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); }
- bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
- bool checkBumpFlag() const { return mbHasBumpArray; }
+ bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
+ u32 getFlag() const { return mFlags; }
+ u16 checkBumpFlag() const { return mbHasBumpArray; }
+ void setBumpFlag(u32 flag) { mbHasBumpArray = flag; }
bool checkBBoardFlag() const { return mbHasBillboard == 1; }
bool isLocked() { return mMaterialTable.isLocked(); }
void entryTexMtxAnimator(J3DAnmTextureSRTKey* anm) { mMaterialTable.entryTexMtxAnimator(anm); }
diff --git a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h
index 1977afe281..ee49731289 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h
@@ -14,11 +14,11 @@ public:
/* 80326214 */ void initialize();
/* 80326258 */ s32 create(J3DModelData*, u32);
- /* 80326364 */ void createAnmMtx(J3DModelData*);
- /* 803263F0 */ void createWeightEnvelopeMtx(J3DModelData*);
- /* 8032648C */ void setNoUseDrawMtx();
- /* 803264B8 */ void createDoubleDrawMtx(J3DModelData*, u32);
- /* 80326664 */ void createBumpMtxArray(J3DModelData*, u32);
+ /* 80326364 */ s32 createAnmMtx(J3DModelData*);
+ /* 803263F0 */ s32 createWeightEnvelopeMtx(J3DModelData*);
+ /* 8032648C */ s32 setNoUseDrawMtx();
+ /* 803264B8 */ s32 createDoubleDrawMtx(J3DModelData*, u32);
+ /* 80326664 */ s32 createBumpMtxArray(J3DModelData*, u32);
/* 803268D4 */ void calcWeightEnvelopeMtx();
/* 80326ACC */ void calcDrawMtx(u32, Vec const&, f32 const (&)[3][4]);
/* 80326D3C */ void calcNrmMtx();
@@ -26,26 +26,29 @@ public:
MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; }
- void setScaleFlag(int idx, u8 flag) { mScaleFlagArray[idx] = flag; }
+ void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; }
u32* getCurrentViewNoPtr() { return &mCurrentViewNo; }
- u8* getScaleFlagArray() const { return mScaleFlagArray; }
- Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr; }
- Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[mCurrentViewNo]; }
- Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr; }
- Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[mCurrentViewNo]; }
- Mtx33** getBumpMtxPtrPtr() const { return mpBumpMtxArr; }
- Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[idx]; }
+ u8* getScaleFlagArray() const { return mpScaleFlagArr; }
+ u8 getScaleFlag(u16 idx) const { return mpScaleFlagArr[idx]; }
+ Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr[1]; }
+ Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[1][mCurrentViewNo]; }
+ Mtx* getDrawMtx(u16 idx) const { return &mpDrawMtxArr[1][mCurrentViewNo][idx]; }
+ Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr[1]; }
+ Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[1][mCurrentViewNo]; }
+ Mtx33* getNrmMtx(u16 idx) const { return &mpNrmMtxArr[1][mCurrentViewNo][idx]; }
+ Mtx33*** getBumpMtxPtrPtr() const { return mpBumpMtxArr[1]; }
+ Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[1][idx][mCurrentViewNo]; }
void swapDrawMtx() {
- Mtx* tmp = mpOldDrawMtxArr[mCurrentViewNo];
- mpOldDrawMtxArr[mCurrentViewNo] = mpDrawMtxArr[mCurrentViewNo];
- mpDrawMtxArr[mCurrentViewNo] = tmp;
+ Mtx* tmp = mpDrawMtxArr[0][mCurrentViewNo];
+ mpDrawMtxArr[0][mCurrentViewNo] = mpDrawMtxArr[1][mCurrentViewNo];
+ mpDrawMtxArr[1][mCurrentViewNo] = tmp;
}
void swapNrmMtx() {
- Mtx33* tmp = mpOldNrmMtxArr[mCurrentViewNo];
- mpOldNrmMtxArr[mCurrentViewNo] = mpNrmMtxArr[mCurrentViewNo];
- mpNrmMtxArr[mCurrentViewNo] = tmp;
+ Mtx33* tmp = mpNrmMtxArr[0][mCurrentViewNo];
+ mpNrmMtxArr[0][mCurrentViewNo] = mpNrmMtxArr[1][mCurrentViewNo];
+ mpNrmMtxArr[1][mCurrentViewNo] = tmp;
}
static Mtx sNoUseDrawMtx;
@@ -55,19 +58,16 @@ public:
private:
/* 0x00 */ J3DJointTree* mJointTree;
- /* 0x04 */ u8* mScaleFlagArray;
- /* 0x08 */ u8* mEnvScaleFlag;
+ /* 0x04 */ u8* mpScaleFlagArr;
+ /* 0x08 */ u8* mpEvlpScaleFlagArr;
/* 0x0C */ Mtx* mpAnmMtx;
- /* 0x10 */ Mtx* mpWeightEnvMtx;
- /* 0x14 */ Mtx** mpOldDrawMtxArr;
- /* 0x18 */ Mtx** mpDrawMtxArr;
- /* 0x1C */ Mtx33** mpOldNrmMtxArr;
- /* 0x20 */ Mtx33** mpNrmMtxArr;
- /* 0x24 */ u32 field_0x24;
- /* 0x28 */ Mtx33** mpBumpMtxArr;
+ /* 0x10 */ Mtx* mpWeightEvlpMtx;
+ /* 0x14 */ Mtx** mpDrawMtxArr[2];
+ /* 0x1C */ Mtx33** mpNrmMtxArr[2];
+ /* 0x28 */ Mtx33*** mpBumpMtxArr[2];
/* 0x2C */ u32 mFlags;
/* 0x30 */ u32 mCurrentViewNo;
- /* 0x34 */ Mtx** mUserAnmMtx;
+ /* 0x34 */ Mtx* mpUserAnmMtx;
public:
/* 803283B4 */ virtual ~J3DMtxBuffer();
diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h
index 3e6b822823..d14c2fca4e 100644
--- a/include/JSystem/J3DGraphBase/J3DMaterial.h
+++ b/include/JSystem/J3DGraphBase/J3DMaterial.h
@@ -71,7 +71,7 @@ public:
/* 0x14 */ u16 mIndex;
/* 0x18 */ u32 mInvalid;
/* 0x1C */ u32 field_0x1c;
- /* 0x20 */ u32 field_0x20;
+ /* 0x20 */ u32 mDiffFlag;
/* 0x24 */ J3DColorBlock* mColorBlock;
/* 0x28 */ J3DTexGenBlock* mTexGenBlock;
/* 0x2C */ J3DTevBlock* mTevBlock;
diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h
index 232db283d3..6b21f537ba 100644
--- a/include/JSystem/J3DGraphBase/J3DPacket.h
+++ b/include/JSystem/J3DGraphBase/J3DPacket.h
@@ -15,6 +15,7 @@ class J3DModel;
class J3DMtxBuffer;
class J3DShape;
class J3DTexMtx;
+class J3DTexMtxObj;
class J3DTexture;
class J3DDisplayListObj {
@@ -100,13 +101,13 @@ public:
void offFlag(u32 flag) { mFlags &= ~flag; }
void lock() { onFlag(LOCKED); }
void unlock() { offFlag(LOCKED); }
- J3DTexMtx* getTexMtxObj() const { return mpTexMtx; }
+ J3DTexMtxObj* getTexMtxObj() const { return mpTexMtxObj; }
public:
/* 0x10 */ u32 mFlags;
/* 0x14 */ char mPad0[0x0C]; // unk
/* 0x20 */ J3DDisplayListObj* mpDisplayListObj;
- /* 0x24 */ J3DTexMtx* mpTexMtx;
+ /* 0x24 */ J3DTexMtxObj* mpTexMtxObj;
}; // Size: 0x28
class J3DShapePacket : public J3DDrawPacket {
diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h
index 372dacc976..3d26ef2d6b 100644
--- a/include/JSystem/J3DGraphBase/J3DShape.h
+++ b/include/JSystem/J3DGraphBase/J3DShape.h
@@ -101,6 +101,7 @@ public:
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
inline J3DMaterial* getMaterial() const { return mMaterial; }
+ inline u32 getIndex() const { return mIndex; }
inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
inline u32 getMtxGroupNum() const { return mMtxGroupNum; }
diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h
index 2496c9b8a3..177f754261 100644
--- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h
+++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h
@@ -7,6 +7,14 @@
class J3DTexMtx;
class J3DTexGenBlock;
+class J3DTexMtxObj {
+public:
+ Mtx& getMtx(u16 idx) { return mpTexMtx[idx]; }
+
+private:
+ /* 0x00 */ Mtx *mpTexMtx;
+};
+
class J3DDifferedTexMtx {
public:
/* 8031322C */ static void loadExecute(f32 const (*)[4]);
@@ -17,7 +25,7 @@ public:
}
static J3DTexGenBlock* sTexGenBlock;
- static J3DTexMtx* sTexMtxObj;
+ static J3DTexMtxObj* sTexMtxObj;
};
extern u8 struct_804515B0[4];
diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h
index e5559255ba..8a8158b7ba 100644
--- a/include/JSystem/J3DGraphBase/J3DTexture.h
+++ b/include/JSystem/J3DGraphBase/J3DTexture.h
@@ -54,6 +54,7 @@ public:
/* 803243BC */ void loadPostTexMtx(u32) const;
J3DTexMtxInfo& getTexMtxInfo() { return mTexMtxInfo; }
+ Mtx& getMtx() { return mMtx; }
private:
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;