diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-12-31 13:14:43 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-31 13:14:43 -0800 |
| commit | b95aed1512b85e4d8d66b4b2a234f4d60c4f34c0 (patch) | |
| tree | a189596d244398f29a13a4556b689e6a5ba65e27 /include | |
| parent | 2e2e08e78341a6a7f7a2847dd89235db07d72530 (diff) | |
| parent | e79742133fecfafd7f159a645e9c581c26cd31dc (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.h | 3 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModel.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModelData.h | 7 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h | 58 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DMaterial.h | 2 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DPacket.h | 5 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DShape.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DShapeMtx.h | 10 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DTexture.h | 1 |
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; |
