diff options
Diffstat (limited to 'include/JSystem/J3DGraphAnimator')
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DAnimation.h | 64 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DCluster.h | 7 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DJoint.h | 17 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DJointTree.h | 6 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h | 124 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h | 5 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModel.h | 36 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModelData.h | 3 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h | 27 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DShapeTable.h | 2 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DSkinDeform.h | 6 |
11 files changed, 168 insertions, 129 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index 58a0f1912b..1003219d24 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -476,10 +476,10 @@ public: mFrame = 0.0f; } - J3DAnmBase(s16 i_frameMax) { + J3DAnmBase(s16 frameMax) { mAttribute = 0; field_0x5 = 0; - mFrameMax = i_frameMax; + mFrameMax = frameMax; mFrame = 0.0f; } @@ -515,7 +515,7 @@ public: /* 0x18 */ s16 field_0x18; /* 0x1A */ s16 field_0x1a; /* 0x1C */ u16 field_0x1c; - /* 0x1E */ s16 field_0x1e; + /* 0x1E */ u16 field_0x1e; }; // Size: 0x20 /** @@ -533,8 +533,8 @@ public: /* 8003B8D0 */ virtual ~J3DAnmTransformKey() {} /* 8003C800 */ virtual s32 getKind() const { return 8; } - /* 8003C808 */ virtual void getTransform(u16 param_0, J3DTransformInfo* param_1) const { - calcTransform(mFrame, param_0, param_1); + /* 8003C808 */ virtual void getTransform(u16 jointNo, J3DTransformInfo* pTransform) const { + calcTransform(mFrame, jointNo, pTransform); } /* 0x20 */ int mDecShift; @@ -585,25 +585,25 @@ public: /* 8032C198 */ virtual ~J3DAnmTextureSRTKey() {} /* 8032C220 */ virtual s32 getKind() const { return 4; } - void getTransform(u16 param_0, J3DTextureSRTInfo* pSRTInfo) const { - calcTransform(getFrame(), param_0, pSRTInfo); + void getTransform(u16 jointNo, J3DTextureSRTInfo* pSRTInfo) const { + calcTransform(getFrame(), jointNo, pSRTInfo); } u16 getUpdateMaterialID(u16 idx) const { - J3D_ASSERT(1029, idx < mTrackNum / 3, "Error : range over."); + J3D_ASSERT_RANGE(1029, idx < mTrackNum / 3); return mUpdateMaterialID[idx]; } u16 getUpdateMaterialNum() const { return mTrackNum / 3; } u16 getPostUpdateMaterialNum() const { return field_0x4a / 3; } int getUpdateTexMtxID(u16 idx) const { - J3D_ASSERT(1017, idx < mTrackNum / 3, "Error : range over."); + J3D_ASSERT_RANGE(1017, idx < mTrackNum / 3); return mUpdateTexMtxID[idx]; } bool isValidUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx] != 0xffff; } u32 getTexMtxCalcType() { return mTexMtxCalcType; } Vec* getSRTCenter(u16 idx) { - J3D_ASSERT(1047, idx < mTrackNum / 3, "Error : range over."); + J3D_ASSERT_RANGE(1047, idx < mTrackNum / 3); return &mSRTCenter[idx]; } @@ -650,7 +650,7 @@ public: /* 8032BD94 */ virtual s32 getKind() const { return 2; } u16 getUpdateMaterialID(u16 idx) const { - J3D_ASSERT(2288, idx < mUpdateMaterialNum, "Error : range over."); + J3D_ASSERT_RANGE(2288, idx < mUpdateMaterialNum); return mUpdateMaterialID[idx]; } u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; } @@ -684,19 +684,19 @@ public: u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; } u16 getCRegUpdateMaterialID(u16 idx) const { - J3D_ASSERT(2100, idx < mCRegUpdateMaterialNum, "Error : range over."); + J3D_ASSERT_RANGE(2100, idx < mCRegUpdateMaterialNum); return mCRegUpdateMaterialID[idx]; } u16 getKRegUpdateMaterialID(u16 idx) const { - J3D_ASSERT(2140, idx < mKRegUpdateMaterialNum, "Error : range over."); + J3D_ASSERT_RANGE(2140, idx < mKRegUpdateMaterialNum); return mKRegUpdateMaterialID[idx]; } - const J3DAnmCRegKeyTable* getAnmCRegKeyTable() const { return mAnmCRegKeyTable; } - const J3DAnmKRegKeyTable* getAnmKRegKeyTable() const { return mAnmKRegKeyTable; } + const J3DAnmCRegKeyTable* getAnmCRegKeyTable() { return mAnmCRegKeyTable; } + const J3DAnmKRegKeyTable* getAnmKRegKeyTable() { return mAnmKRegKeyTable; } - bool isValidCRegUpdateMaterialID(u16 idx) { return mCRegUpdateMaterialID[idx] != 0xffff; } - bool isValidKRegUpdateMaterialID(u16 idx) { return mKRegUpdateMaterialID[idx] != 0xffff; } + bool isValidCRegUpdateMaterialID(u16 idx) const { return mCRegUpdateMaterialID[idx] != 0xffff; } + bool isValidKRegUpdateMaterialID(u16 idx) const { return mKRegUpdateMaterialID[idx] != 0xffff; } /* 0x0C */ u16 mCRegUpdateMaterialNum; /* 0x0E */ u16 mKRegUpdateMaterialNum; @@ -740,7 +740,7 @@ public: u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; } bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; } u16 getUpdateMaterialID(u16 idx) const { - J3D_ASSERT(1578, idx < mUpdateMaterialNum, "Error : range over."); + J3D_ASSERT_RANGE(1578, idx < mUpdateMaterialNum); return mUpdateMaterialID[idx]; } @@ -851,7 +851,7 @@ public: */ class J3DAnmCluster : public J3DAnmBase { public: - J3DAnmCluster(s16 param_1, f32* param_2) : J3DAnmBase(param_1) { mWeight = param_2; } + J3DAnmCluster(s16 frameMax, f32* pWeight) : J3DAnmBase(frameMax) { mWeight = pWeight; } /* 8032BCAC */ virtual ~J3DAnmCluster() {} /* 8032BF44 */ virtual s32 getKind() const { return 3; } @@ -866,7 +866,7 @@ public: */ class J3DAnmClusterFull : public J3DAnmCluster { public: - J3DAnmClusterFull() : J3DAnmCluster(0, 0) { mAnmTable = NULL; } + J3DAnmClusterFull() : J3DAnmCluster(0, NULL) { mAnmTable = NULL; } /* 8032BCAC */ virtual ~J3DAnmClusterFull() {} /* 8032BF44 */ virtual s32 getKind() const { return 12; } @@ -965,10 +965,10 @@ public: }; // Size: 0x14 struct J3DMtxCalcAnmBase: public J3DMtxCalc { - J3DMtxCalcAnmBase(J3DAnmTransform* param_0) { mAnmTransform = param_0; } + J3DMtxCalcAnmBase(J3DAnmTransform* pAnmTransform) { mAnmTransform = pAnmTransform; } /* 8000D8EC */ ~J3DMtxCalcAnmBase() {} /* 80014FB8 */ J3DAnmTransform* getAnmTransform() { return mAnmTransform; } - /* 80014FC0 */ void setAnmTransform(J3DAnmTransform* param_0) { mAnmTransform = param_0; } + /* 80014FC0 */ void setAnmTransform(J3DAnmTransform* pAnmTransform) { mAnmTransform = pAnmTransform; } J3DAnmTransform* mAnmTransform; }; @@ -980,29 +980,33 @@ struct J3DMtxCalcAnimationAdaptorBase { template <typename A0> struct J3DMtxCalcAnimationAdaptorDefault : public J3DMtxCalcAnimationAdaptorBase { - J3DMtxCalcAnimationAdaptorDefault(J3DAnmTransform* param_0) {} - void calc(J3DMtxCalcAnmBase* param_0) { + J3DMtxCalcAnimationAdaptorDefault(J3DAnmTransform* pAnmTransform) {} + + void calc(J3DMtxCalcAnmBase* pMtxCalc) { J3DTransformInfo transform; J3DTransformInfo* transform_p; - if (param_0->getAnmTransform() != NULL) { + if (pMtxCalc->getAnmTransform() != NULL) { u16 jnt_no = J3DMtxCalc::getJoint()->getJntNo(); - param_0->getAnmTransform()->getTransform(jnt_no, &transform); + pMtxCalc->getAnmTransform()->getTransform(jnt_no, &transform); transform_p = &transform; } else { transform_p = &J3DMtxCalc::getJoint()->getTransformInfo(); } + A0::calcTransform(*transform_p); } }; template <typename A0, typename B0> struct J3DMtxCalcAnimation : public J3DMtxCalcAnmBase { - J3DMtxCalcAnimation(J3DAnmTransform* param_0) : J3DMtxCalcAnmBase(param_0), field_0x8(param_0) {} + J3DMtxCalcAnimation(J3DAnmTransform* pAnmTransform) : J3DMtxCalcAnmBase(pAnmTransform), field_0x8(pAnmTransform) {} ~J3DMtxCalcAnimation() {} - void setAnmTransform(J3DAnmTransform* param_0) { - mAnmTransform = param_0; - field_0x8.change(param_0); + + void setAnmTransform(J3DAnmTransform* pAnmTransform) { + mAnmTransform = pAnmTransform; + field_0x8.change(pAnmTransform); } + void init(const Vec& param_0, const Mtx& param_1) { B0::init(param_0, param_1); } void calc() { field_0x8.calc(this); } diff --git a/include/JSystem/J3DGraphAnimator/J3DCluster.h b/include/JSystem/J3DGraphAnimator/J3DCluster.h index ded3d1a2ca..0ef5185db8 100644 --- a/include/JSystem/J3DGraphAnimator/J3DCluster.h +++ b/include/JSystem/J3DGraphAnimator/J3DCluster.h @@ -1,8 +1,7 @@ #ifndef J3DCLUSTER_H #define J3DCLUSTER_H -#include "JSystem/JUtility/JUTAssert.h" -#include "dolphin/types.h" +#include "JSystem/J3DAssert.h" class J3DDeformer; class J3DClusterKey; @@ -81,13 +80,13 @@ public: /* 8032E364 */ void setAnm(J3DAnmCluster*); J3DCluster* getClusterPointer(u16 index) { - J3D_ASSERT(186, (index < mClusterNum), "Error : range over."); + J3D_ASSERT_RANGE(186, (index < mClusterNum)); return &mClusterPointer[index]; } u16 getClusterNum() const { return mClusterNum; } u16 getClusterKeyNum() const { return mClusterKeyNum; } J3DClusterKey* getClusterKeyPointer(u16 i) { - J3D_ASSERT(199, (i < mClusterKeyNum), "Error : range over."); + J3D_ASSERT_RANGE(199, (i < mClusterKeyNum)); return &mClusterKeyPointer[i]; } f32* getVtxPos() { return mVtxPos; } diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h index ccd676967a..b20b48d792 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJoint.h +++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h @@ -3,6 +3,7 @@ #include "JSystem/J3DGraphBase/J3DTransform.h" #include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" class J3DAnmTransform; class J3DJoint; @@ -29,7 +30,7 @@ public: static J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; } static J3DJoint* getJoint() { - J3D_ASSERT(185, mJoint != NULL, "Error : null pointer.") + J3D_ASSERT_NULLPTR(185, mJoint != NULL) return mJoint; } static void setJoint(J3DJoint* joint) { mJoint = joint; } @@ -51,7 +52,17 @@ public: /* 8032F254 */ void entryIn(); /* 8032F3F8 */ void recursiveCalc(); + u32 getType() const { return 'NJNT'; } + J3DMaterial* getMesh() { return mMesh; } + void addMesh(J3DMaterial* pMesh) { + if (mMesh != NULL) { + pMesh->setNext(mMesh); + } + + mMesh = pMesh; + } + u16 getJntNo() const { return mJntNo; } u8 getScaleCompensate() const { return mScaleCompensate; } J3DJoint* getYounger() { return mYounger; } @@ -67,13 +78,13 @@ public: J3DMtxCalc* getMtxCalc() { return mMtxCalc; } J3DMtxCalc* getCurrentMtxCalc() { return mCurrentMtxCalc; }; J3DJoint* getChild() { return mChild; } - u8 getMtxType() { return (mKind & 0xf0) >> 4; } + u8 getMtxType() const { return (mKind & 0xf0) >> 4; } void setMtxType(u8 type) { mKind = (mKind & ~0xf0) | (type << 4); } f32 getRadius() const { return mBoundingSphereRadius; } static J3DMtxCalc* mCurrentMtxCalc; - inline u8 getKind() { return mKind & 15; } + u8 getKind() { return mKind & 15; } private: friend struct J3DJointFactory; diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h index 01c55620bd..1b959ecbb8 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h +++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h @@ -64,14 +64,14 @@ public: JUTNameTab* getJointName() const { return mJointName; } J3DJoint* getRootNode() { return mRootNode; } J3DJoint* getJointNodePointer(u16 idx) const { - J3D_ASSERT(139, idx < mJointNum, "Error : range over."); + J3D_ASSERT_RANGE(139, idx < mJointNum); return mJointNodePointer[idx]; } - J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; } + J3DMtxCalc* getBasicMtxCalc() { return mBasicMtxCalc; } Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; } u32 getModelDataType() const { return mModelDataType; } void setModelDataType(u32 type) { mModelDataType = type; } - bool checkFlag(u32 flag) { return mFlags & flag; } + bool checkFlag(u32 flag) const { return mFlags & flag ? true : false; } void setFlag(u32 flag) { mFlags = flag; } private: diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h index e77a550462..43f6a577da 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h +++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h @@ -3,9 +3,6 @@ #include "JSystem/J3DGraphAnimator/J3DAnimation.h" -typedef struct _GXColor GXColor; -typedef struct _GXColorS10 GXColorS10; - /** * @ingroup jsystem-j3d * @@ -13,11 +10,14 @@ typedef struct _GXColorS10 GXColorS10; class J3DMatColorAnm { public: /* 8003B2B8 */ ~J3DMatColorAnm() {} + /* 8003B2F4 */ J3DMatColorAnm() : field_0x0(0), mAnmFlag(1), mAnmColor(NULL) {} - J3DMatColorAnm(u16 param_1, J3DAnmColor* param_2) { + + J3DMatColorAnm(u16 param_1, J3DAnmColor* pAnmColor) { field_0x0 = param_1; mAnmFlag = 1; - mAnmColor = param_2; + mAnmColor = pAnmColor; + J3D_ASSERT_NULLPTR(56, pAnmColor != NULL); } void operator=(J3DMatColorAnm const& other) { @@ -28,7 +28,11 @@ public: void setAnmFlag(bool flag) { mAnmFlag = flag; } bool getAnmFlag() const { return mAnmFlag; } - void calc(_GXColor* pColor) const { mAnmColor->getColor(field_0x0, pColor); } + + void calc(GXColor* pColor) const { + J3D_ASSERT_NULLPTR(507, pColor != NULL); + mAnmColor->getColor(field_0x0, pColor); + } private: /* 0x0 */ u16 field_0x0; @@ -40,15 +44,55 @@ private: * @ingroup jsystem-j3d * */ +class J3DTexMtxAnm { +public: + /* 8003B264 */ ~J3DTexMtxAnm() {} + /* 8003B2A0 */ J3DTexMtxAnm() : field_0x0(0), mAnmFlag(1), mAnmTransform(NULL) {} + + J3DTexMtxAnm(u16 param_1, J3DAnmTextureSRTKey* pSRTKey) { + field_0x0 = param_1; + mAnmFlag = 1; + mAnmTransform = pSRTKey; + J3D_ASSERT_NULLPTR(134, pSRTKey != NULL); + } + + void operator=(J3DTexMtxAnm const& other) { + mAnmTransform = other.mAnmTransform; + field_0x0 = other.field_0x0; + mAnmFlag = other.mAnmFlag; + } + + void setAnmFlag(bool flag) { mAnmFlag = flag; } + + void calc(J3DTextureSRTInfo* pSRTInfo) const { + J3D_ASSERT_NULLPTR(519, pSRTInfo != NULL); + mAnmTransform->getTransform(field_0x0, pSRTInfo); + } + + bool getAnmFlag() const { return mAnmFlag; } + +private: + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u16 mAnmFlag; + /* 0x4 */ J3DAnmTextureSRTKey* mAnmTransform; +}; // Size: 0x8 + +/** + * @ingroup jsystem-j3d + * + */ class J3DTexNoAnm { public: /* 8003B1F8 */ ~J3DTexNoAnm() {} /* 8003B240 */ J3DTexNoAnm() : field_0x4(0), mAnmFlag(1), mAnmTexPattern(NULL) {} - J3DTexNoAnm(u16 param_1, J3DAnmTexPattern* param_2) { + + J3DTexNoAnm(u16 param_1, J3DAnmTexPattern* pAnmTexPattern) { field_0x4 = param_1; mAnmFlag = 1; - mAnmTexPattern = param_2; + mAnmTexPattern = pAnmTexPattern; + J3D_ASSERT_NULLPTR(214, pAnmTexPattern != NULL); } + /* 8003C82C */ virtual void calc(u16* param_0) const { mAnmTexPattern->getTexNo(field_0x4, param_0); } void operator=(J3DTexNoAnm const& other) { @@ -71,32 +115,36 @@ private: * @ingroup jsystem-j3d * */ -class J3DTexMtxAnm { +class J3DTevColorAnm { public: - /* 8003B264 */ ~J3DTexMtxAnm() {} - /* 8003B2A0 */ J3DTexMtxAnm() : field_0x0(0), mAnmFlag(1), mAnmTransform(NULL) {} - J3DTexMtxAnm(u16 param_1, J3DAnmTextureSRTKey* param_2) { + /* 8003B1A4 */ ~J3DTevColorAnm() {} + /* 8003B1E0 */ J3DTevColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {} + + J3DTevColorAnm(u16 param_1, J3DAnmTevRegKey* pTevRegKey) { field_0x0 = param_1; mAnmFlag = 1; - mAnmTransform = param_2; + mAnmTevReg = pTevRegKey; + J3D_ASSERT_NULLPTR(293, pTevRegKey != NULL); } - void operator=(J3DTexMtxAnm const& other) { - mAnmTransform = other.mAnmTransform; + void operator=(J3DTevColorAnm const& other) { + mAnmTevReg = other.mAnmTevReg; field_0x0 = other.field_0x0; mAnmFlag = other.mAnmFlag; } void setAnmFlag(bool flag) { mAnmFlag = flag; } - void calc(J3DTextureSRTInfo* pSRTInfo) const { - mAnmTransform->getTransform(field_0x0, pSRTInfo); - } bool getAnmFlag() const { return mAnmFlag; } + void calc(GXColorS10* pColor) const { + J3D_ASSERT_NULLPTR(545, pColor != NULL); + mAnmTevReg->getTevColorReg(field_0x0, pColor); + } + private: /* 0x0 */ u16 field_0x0; /* 0x2 */ u16 mAnmFlag; - /* 0x4 */ J3DAnmTextureSRTKey* mAnmTransform; + /* 0x4 */ J3DAnmTevRegKey* mAnmTevReg; }; // Size: 0x8 /** @@ -107,10 +155,12 @@ class J3DTevKColorAnm { public: /* 8003B150 */ ~J3DTevKColorAnm() {} /* 8003B18C */ J3DTevKColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {} - J3DTevKColorAnm(u16 param_1, J3DAnmTevRegKey* param_2) { + + J3DTevKColorAnm(u16 param_1, J3DAnmTevRegKey* pTevRegKey) { field_0x0 = param_1; mAnmFlag = 1; - mAnmTevReg = param_2; + mAnmTevReg = pTevRegKey; + J3D_ASSERT_NULLPTR(371, pTevRegKey != NULL); } void operator=(J3DTevKColorAnm const& other) { @@ -121,38 +171,12 @@ public: void setAnmFlag(bool flag) { mAnmFlag = flag; } bool getAnmFlag() const { return mAnmFlag; } - void calc(_GXColor* pColor) const { mAnmTevReg->getTevKonstReg(field_0x0, pColor); } - -private: - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u16 mAnmFlag; - /* 0x4 */ J3DAnmTevRegKey* mAnmTevReg; -}; // Size: 0x8 -/** - * @ingroup jsystem-j3d - * - */ -class J3DTevColorAnm { -public: - /* 8003B1A4 */ ~J3DTevColorAnm() {} - /* 8003B1E0 */ J3DTevColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {} - J3DTevColorAnm(u16 param_1, J3DAnmTevRegKey* param_2) { - field_0x0 = param_1; - mAnmFlag = 1; - mAnmTevReg = param_2; - } - - void operator=(J3DTevColorAnm const& other) { - mAnmTevReg = other.mAnmTevReg; - field_0x0 = other.field_0x0; - mAnmFlag = other.mAnmFlag; + void calc(GXColor* pColor) const { + J3D_ASSERT_NULLPTR(558, pColor != NULL); + mAnmTevReg->getTevKonstReg(field_0x0, pColor); } - void setAnmFlag(bool flag) { mAnmFlag = flag; } - bool getAnmFlag() const { return mAnmFlag; } - void calc(_GXColorS10* pColor) const { mAnmTevReg->getTevColorReg(field_0x0, pColor); } - private: /* 0x0 */ u16 field_0x0; /* 0x2 */ u16 mAnmFlag; diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h index eb53887ea4..028c81b87c 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h +++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h @@ -1,8 +1,7 @@ #ifndef J3DMATERIALATTACH_H #define J3DMATERIALATTACH_H -#include "JSystem/JUtility/JUTAssert.h" -#include "dolphin/types.h" +#include "JSystem/J3DAssert.h" class J3DMaterial; class J3DTexture; @@ -33,7 +32,7 @@ public: /* 8032F604 */ virtual ~J3DMaterialTable(); J3DMaterial* getMaterialNodePointer(u16 idx) const { - J3D_ASSERT(92, idx < mMaterialNum, "Error : range over."); + J3D_ASSERT_RANGE(92, idx < mMaterialNum); return mMaterialNodePointer[idx]; } diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 9e412af352..b21abd212f 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -6,15 +6,15 @@ #include "dolphin/types.h" enum J3DMdlFlag { - J3DMdlFlag_None = 0x0, - /* 0x00001 */ J3DMdlFlag_Unk00001 = 0x1, - /* 0x00002 */ J3DMdlFlag_Unk00002 = 0x2, - /* 0x00004 */ J3DMdlFlag_SkinPosCpu = 0x4, - /* 0x00008 */ J3DMdlFlag_SkinNrmCpu = 0x8, - /* 0x00010 */ J3DMdlFlag_Unk00010 = 0x10, - /* 0x20000 */ J3DMdlFlag_Unk20000 = 0x20000, - /* 0x40000 */ J3DMdlFlag_Unk40000 = 0x40000, - /* 0x80000 */ J3DMdlFlag_Unk80000 = 0x80000, + J3DMdlFlag_None = 0x0, + /* 0x00001 */ J3DMdlFlag_Unk1 = 0x1, + /* 0x00002 */ J3DMdlFlag_UseDefaultJ3D = 0x2, + /* 0x00004 */ J3DMdlFlag_SkinPosCpu = 0x4, + /* 0x00008 */ J3DMdlFlag_SkinNrmCpu = 0x8, + /* 0x00010 */ J3DMdlFlag_EnableLOD = 0x10, + /* 0x20000 */ J3DMdlFlag_UseSharedDL = 0x20000, + /* 0x40000 */ J3DMdlFlag_UseSingleDL = 0x40000, + /* 0x80000 */ J3DMdlFlag_DifferedDLBuffer = 0x80000, }; /** @@ -45,9 +45,10 @@ public: J3DModel() { initialize(); } - J3DModel(J3DModelData* param_0, u32 param_1, u32 param_2) { + + J3DModel(J3DModelData* pModelData, u32 mdlFlags, u32 mtxBufferFlag) { initialize(); - entryModelData(param_0, param_1, param_2); + entryModelData(pModelData, mdlFlags, mtxBufferFlag); } /* 80327100 */ void initialize(); @@ -66,6 +67,8 @@ public: /* 803281B4 */ void calcBumpMtx(); /* 803282B8 */ void calcBBoardMtx(); /* 803282EC */ void prepareShapePackets(); + void ptrToIndex(); + void makeDL(); /* 80327CA4 */ virtual void update(); /* 80327E4C */ virtual void entry(); @@ -85,21 +88,22 @@ public: Mtx& getBaseTRMtx() { return mBaseTransformMtx; } void setBaseTRMtx(Mtx m) { MTXCopy(m, mBaseTransformMtx); } - u32 getMtxCalcMode() const { return mFlags & 0x03; } + u32 getMtxCalcMode() { return mFlags & (J3DMdlFlag_Unk1 | J3DMdlFlag_UseDefaultJ3D); } J3DVertexBuffer* getVertexBuffer() { return (J3DVertexBuffer*)&mVertexBuffer; } J3DMatPacket* getMatPacket(u16 idx) const { return &mMatPacket[idx]; } J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; } - J3DMtxBuffer* getMtxBuffer() const { return mMtxBuffer; } + J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; } void setScaleFlag(int idx, u8 flag) { mMtxBuffer->setScaleFlag(idx, flag); } - Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); } - Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); } - Mtx* getDrawMtxPtr() const { return mMtxBuffer->getDrawMtxPtr(); } + Mtx33* getBumpMtxPtr(int idx) { return mMtxBuffer->getBumpMtxPtr(idx); } + Mtx33* getNrmMtxPtr() { return mMtxBuffer->getNrmMtxPtr(); } + Mtx* getDrawMtxPtr() { return mMtxBuffer->getDrawMtxPtr(); } void setBaseScale(const Vec& scale) { mBaseScale = scale; } void setUserArea(u32 area) { mUserArea = area; } u32 getUserArea() const { return mUserArea; } Vec* getBaseScale() { return &mBaseScale; } void setAnmMtx(int jointNo, Mtx m) { mMtxBuffer->setAnmMtx(jointNo, m); } MtxP getAnmMtx(int jointNo) { return mMtxBuffer->getAnmMtx(jointNo); } + MtxP getWeightAnmMtx(int i) { return mMtxBuffer->getWeightAnmMtx(i); } J3DSkinDeform* getSkinDeform() { return mSkinDeform; } /* 0x04 */ J3DModelData* mModelData; diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index f6a57b7030..643d1f7849 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -8,7 +8,6 @@ #include "JSystem/J3DGraphBase/J3DSys.h" #include "JSystem/J3DGraphBase/J3DVertex.h" -typedef struct _GXColor GXColor; class JUTNameTab; /** @@ -68,7 +67,7 @@ public: bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; } u32 getFlag() const { return mFlags; } void const* getRawData() const { return mpRawData; } - u16 checkBumpFlag() const { return mbHasBumpArray; } + bool checkBumpFlag() const { return mbHasBumpArray == 1; } void setBumpFlag(u32 flag) { mbHasBumpArray = flag; } bool checkBBoardFlag() const { return mbHasBillboard == 1; } bool isLocked() { return mMaterialTable.isLocked(); } diff --git a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h index 5f9d4da047..00f401d673 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h +++ b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h @@ -25,28 +25,28 @@ public: /* 80326D3C */ void calcNrmMtx(); /* 80326EF0 */ void calcBBoardMtx(); - MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; } + MtxP getAnmMtx(int idx) { return mpAnmMtx[idx]; } void setAnmMtx(int i, Mtx m) { MTXCopy(m, (MtxP)mpAnmMtx[i]); } - MtxP getWeightAnmMtx(int idx) const { return mpWeightEvlpMtx[idx]; } - MtxP getUserAnmMtx(int idx) const { return mpUserAnmMtx[idx]; } + MtxP getWeightAnmMtx(int idx) { return mpWeightEvlpMtx[idx]; } + MtxP getUserAnmMtx(int idx) { return mpUserAnmMtx[idx]; } void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; } u32* getCurrentViewNoPtr() { return &mCurrentViewNo; } u8* getScaleFlagArray() const { return mpScaleFlagArr; } u8 getScaleFlag(int idx) const { return mpScaleFlagArr[idx]; } u8 getEnvScaleFlag(int idx) const { return mpEvlpScaleFlagArr[idx]; } - Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr[1]; } - Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[1][mCurrentViewNo]; } - Mtx* getDrawMtx(int 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]; } + Mtx** getDrawMtxPtrPtr() { return mpDrawMtxArr[1]; } + Mtx* getDrawMtxPtr() { return mpDrawMtxArr[1][mCurrentViewNo]; } + Mtx* getDrawMtx(int idx) { return &mpDrawMtxArr[1][mCurrentViewNo][idx]; } + Mtx33** getNrmMtxPtrPtr() { return mpNrmMtxArr[1]; } + Mtx33* getNrmMtxPtr() { return mpNrmMtxArr[1][mCurrentViewNo]; } + Mtx33* getNrmMtx(int idx) { return &mpNrmMtxArr[1][mCurrentViewNo][idx]; } Mtx33*** getBumpMtxPtrPtr() const { return mpBumpMtxArr[1]; } - Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[1][idx][mCurrentViewNo]; } + Mtx33* getBumpMtxPtr(int idx) { return mpBumpMtxArr[1][idx][mCurrentViewNo]; } J3DJointTree* getJointTree() const { return mJointTree; } - void setNrmMtx(int idx, Mtx* mtx) { - J3DPSMtx33CopyFrom34(*mtx, mpNrmMtxArr[1][mCurrentViewNo][idx]); + void setNrmMtx(int idx, Mtx mtx) { + J3DPSMtx33CopyFrom34(mtx, mpNrmMtxArr[1][mCurrentViewNo][idx]); } void swapDrawMtx() { @@ -66,7 +66,6 @@ public: static Mtx* sNoUseDrawMtxPtr; static Mtx33* sNoUseNrmMtxPtr; -private: /* 0x00 */ J3DJointTree* mJointTree; /* 0x04 */ u8* mpScaleFlagArr; /* 0x08 */ u8* mpEvlpScaleFlagArr; @@ -75,7 +74,7 @@ private: /* 0x14 */ Mtx** mpDrawMtxArr[2]; /* 0x1C */ Mtx33** mpNrmMtxArr[2]; /* 0x24 */ Mtx33*** mpBumpMtxArr[2]; - /* 0x2C */ u32 mFlags; + /* 0x2C */ u32 mMtxNum; /* 0x30 */ u32 mCurrentViewNo; /* 0x34 */ Mtx* mpUserAnmMtx; diff --git a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h index 6754b6f83a..6446979e32 100644 --- a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h +++ b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h @@ -27,7 +27,7 @@ public: u16 getShapeNum() const { return mShapeNum; } J3DShape* getShapeNodePointer(u16 idx) const { - J3D_ASSERT(85, idx < mShapeNum, "Error : range over."); + J3D_ASSERT_RANGE(85, idx < mShapeNum); return mShapeNodePointer[idx]; } diff --git a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h index 5e03122ce3..d9b743a96c 100644 --- a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h +++ b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h @@ -53,14 +53,14 @@ public: Mtx3P getNrmMtx(int i) { return mNrmMtx[i]; } void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } - bool checkFlag(u32 flag) { return mFlags & flag; } + bool checkFlag(u32 flag) { return mFlags & flag ? true : false; } /* 8032E064 */ virtual void deform(J3DVertexBuffer*, J3DMtxBuffer*); /* 8032E1B0 */ virtual ~J3DSkinDeform(); static u16* sWorkArea_WEvlpMixMtx[1024]; static f32* sWorkArea_WEvlpMixWeight[1024]; - static u16 sWorkArea_MtxReg[1024 + 4 /* padding */]; + static u16 sWorkArea_MtxReg[1024]; private: /* 0x04 */ u16* mPosData; @@ -89,7 +89,7 @@ public: /* 8032EBCC */ void normalizeWeight(int, f32*); void offFlag(u32 i_flag) { mFlags &= ~i_flag; } - bool checkFlag(u32 i_flag) { return mFlags & i_flag; } + bool checkFlag(u32 i_flag) { return mFlags & i_flag ? true : false; } void setAnmCluster(J3DAnmCluster* anm) { mAnmCluster = anm; } void normalize(f32* i_vec) { VECNormalize((Vec*)i_vec, (Vec*)i_vec); } |
