mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
Add more J3D_ASSERTs (#2491)
* Fix debug build * Add more J3D_ASSERTs * Move J3DShapeMtx to correct header for assert * Add VSCode task for ninja changes_all
This commit is contained in:
Vendored
+6
@@ -32,5 +32,11 @@
|
|||||||
"command": "${command:python.interpreterPath} configure.py --version ${input:gameVersion}",
|
"command": "${command:python.interpreterPath} configure.py --version ${input:gameVersion}",
|
||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"label": "ninja changes_all",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "ninja changes_all",
|
||||||
|
"problemMatcher": [],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -558,6 +558,7 @@ config.libs = [
|
|||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vibration.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vibration.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vib_pattern.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vib_pattern.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_attention.cpp", extra_cflags=['-pragma "nosyminline on"']),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_attention.cpp", extra_cflags=['-pragma "nosyminline on"']),
|
||||||
|
Object(NonMatching, "d/d_bg_parts.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_pc.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_pc.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_att_dist.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_att_dist.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_plc.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_plc.cpp"),
|
||||||
@@ -1090,7 +1091,7 @@ config.libs = [
|
|||||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
|
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
|
||||||
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DJoint.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DJoint.cpp"),
|
||||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
|
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
JSystemLib(
|
JSystemLib(
|
||||||
|
|||||||
@@ -589,14 +589,23 @@ public:
|
|||||||
calcTransform(getFrame(), param_0, pSRTInfo);
|
calcTransform(getFrame(), param_0, pSRTInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
|
u16 getUpdateMaterialID(u16 idx) const {
|
||||||
|
J3D_ASSERT(1029, idx < mTrackNum / 3, "Error : range over.");
|
||||||
|
return mUpdateMaterialID[idx];
|
||||||
|
}
|
||||||
u16 getUpdateMaterialNum() const { return mTrackNum / 3; }
|
u16 getUpdateMaterialNum() const { return mTrackNum / 3; }
|
||||||
u16 getPostUpdateMaterialNum() const { return field_0x4a / 3; }
|
u16 getPostUpdateMaterialNum() const { return field_0x4a / 3; }
|
||||||
|
|
||||||
int getUpdateTexMtxID(u16 idx) const { return mUpdateTexMtxID[idx]; }
|
int getUpdateTexMtxID(u16 idx) const {
|
||||||
|
J3D_ASSERT(1017, idx < mTrackNum / 3, "Error : range over.");
|
||||||
|
return mUpdateTexMtxID[idx];
|
||||||
|
}
|
||||||
bool isValidUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx] != 0xffff; }
|
bool isValidUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx] != 0xffff; }
|
||||||
u32 getTexMtxCalcType() { return mTexMtxCalcType; }
|
u32 getTexMtxCalcType() { return mTexMtxCalcType; }
|
||||||
Vec* getSRTCenter(u16 idx) { return &mSRTCenter[idx]; }
|
Vec* getSRTCenter(u16 idx) {
|
||||||
|
J3D_ASSERT(1047, idx < mTrackNum / 3, "Error : range over.");
|
||||||
|
return &mSRTCenter[idx];
|
||||||
|
}
|
||||||
|
|
||||||
/* 0x0C */ int mDecShift;
|
/* 0x0C */ int mDecShift;
|
||||||
/* 0x10 */ J3DAnmTransformKeyTable* mAnmTable;
|
/* 0x10 */ J3DAnmTransformKeyTable* mAnmTable;
|
||||||
@@ -640,7 +649,10 @@ public:
|
|||||||
/* 8032BD20 */ virtual ~J3DAnmTexPattern() {}
|
/* 8032BD20 */ virtual ~J3DAnmTexPattern() {}
|
||||||
/* 8032BD94 */ virtual s32 getKind() const { return 2; }
|
/* 8032BD94 */ virtual s32 getKind() const { return 2; }
|
||||||
|
|
||||||
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
|
u16 getUpdateMaterialID(u16 idx) const {
|
||||||
|
J3D_ASSERT(2288, idx < mUpdateMaterialNum, "Error : range over.");
|
||||||
|
return mUpdateMaterialID[idx];
|
||||||
|
}
|
||||||
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||||
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
||||||
J3DAnmTexPatternFullTable* getAnmTable() { return mAnmTable; }
|
J3DAnmTexPatternFullTable* getAnmTable() { return mAnmTable; }
|
||||||
@@ -671,8 +683,14 @@ public:
|
|||||||
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
|
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
|
||||||
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
|
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
|
||||||
|
|
||||||
u16 getCRegUpdateMaterialID(u16 idx) const { return mCRegUpdateMaterialID[idx]; }
|
u16 getCRegUpdateMaterialID(u16 idx) const {
|
||||||
u16 getKRegUpdateMaterialID(u16 idx) const { return mKRegUpdateMaterialID[idx]; }
|
J3D_ASSERT(2100, idx < mCRegUpdateMaterialNum, "Error : range over.");
|
||||||
|
return mCRegUpdateMaterialID[idx];
|
||||||
|
}
|
||||||
|
u16 getKRegUpdateMaterialID(u16 idx) const {
|
||||||
|
J3D_ASSERT(2140, idx < mKRegUpdateMaterialNum, "Error : range over.");
|
||||||
|
return mKRegUpdateMaterialID[idx];
|
||||||
|
}
|
||||||
|
|
||||||
const J3DAnmCRegKeyTable* getAnmCRegKeyTable() const { return mAnmCRegKeyTable; }
|
const J3DAnmCRegKeyTable* getAnmCRegKeyTable() const { return mAnmCRegKeyTable; }
|
||||||
const J3DAnmKRegKeyTable* getAnmKRegKeyTable() const { return mAnmKRegKeyTable; }
|
const J3DAnmKRegKeyTable* getAnmKRegKeyTable() const { return mAnmKRegKeyTable; }
|
||||||
@@ -722,7 +740,7 @@ public:
|
|||||||
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||||
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
||||||
u16 getUpdateMaterialID(u16 idx) const {
|
u16 getUpdateMaterialID(u16 idx) const {
|
||||||
J3D_ASSERT(1578, idx < mUpdateMaterialNum, "Error : range over.")
|
J3D_ASSERT(1578, idx < mUpdateMaterialNum, "Error : range over.");
|
||||||
return mUpdateMaterialID[idx];
|
return mUpdateMaterialID[idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,12 +81,15 @@ public:
|
|||||||
/* 8032E364 */ void setAnm(J3DAnmCluster*);
|
/* 8032E364 */ void setAnm(J3DAnmCluster*);
|
||||||
|
|
||||||
J3DCluster* getClusterPointer(u16 index) {
|
J3DCluster* getClusterPointer(u16 index) {
|
||||||
J3D_ASSERT(186, (index < mClusterNum),"Error : range over.");
|
J3D_ASSERT(186, (index < mClusterNum), "Error : range over.");
|
||||||
return &mClusterPointer[index];
|
return &mClusterPointer[index];
|
||||||
}
|
}
|
||||||
u16 getClusterNum() const { return mClusterNum; }
|
u16 getClusterNum() const { return mClusterNum; }
|
||||||
u16 getClusterKeyNum() const { return mClusterKeyNum; }
|
u16 getClusterKeyNum() const { return mClusterKeyNum; }
|
||||||
J3DClusterKey* getClusterKeyPointer(u16 i) { return &mClusterKeyPointer[i]; }
|
J3DClusterKey* getClusterKeyPointer(u16 i) {
|
||||||
|
J3D_ASSERT(199, (i < mClusterKeyNum), "Error : range over.");
|
||||||
|
return &mClusterKeyPointer[i];
|
||||||
|
}
|
||||||
f32* getVtxPos() { return mVtxPos; }
|
f32* getVtxPos() { return mVtxPos; }
|
||||||
f32* getVtxNrm() { return mVtxNrm; }
|
f32* getVtxNrm() { return mVtxNrm; }
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,10 @@ public:
|
|||||||
J3DDrawMtxData* getDrawMtxData() { return &mDrawMtxData; }
|
J3DDrawMtxData* getDrawMtxData() { return &mDrawMtxData; }
|
||||||
JUTNameTab* getJointName() const { return mJointName; }
|
JUTNameTab* getJointName() const { return mJointName; }
|
||||||
J3DJoint* getRootNode() { return mRootNode; }
|
J3DJoint* getRootNode() { return mRootNode; }
|
||||||
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
|
J3DJoint* getJointNodePointer(u16 idx) const {
|
||||||
|
J3D_ASSERT(139, idx < mJointNum, "Error : range over.");
|
||||||
|
return mJointNodePointer[idx];
|
||||||
|
}
|
||||||
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
|
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
|
||||||
Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; }
|
Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; }
|
||||||
u32 getModelDataType() const { return mModelDataType; }
|
u32 getModelDataType() const { return mModelDataType; }
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#ifndef J3DMATERIALATTACH_H
|
#ifndef J3DMATERIALATTACH_H
|
||||||
#define J3DMATERIALATTACH_H
|
#define J3DMATERIALATTACH_H
|
||||||
|
|
||||||
|
#include "JSystem/JUtility/JUTAssert.h"
|
||||||
#include "dolphin/types.h"
|
#include "dolphin/types.h"
|
||||||
|
|
||||||
class J3DMaterial;
|
class J3DMaterial;
|
||||||
@@ -31,7 +32,10 @@ public:
|
|||||||
|
|
||||||
/* 8032F604 */ virtual ~J3DMaterialTable();
|
/* 8032F604 */ virtual ~J3DMaterialTable();
|
||||||
|
|
||||||
J3DMaterial* getMaterialNodePointer(u16 idx) const { return mMaterialNodePointer[idx]; }
|
J3DMaterial* getMaterialNodePointer(u16 idx) const {
|
||||||
|
J3D_ASSERT(92, idx < mMaterialNum, "Error : range over.");
|
||||||
|
return mMaterialNodePointer[idx];
|
||||||
|
}
|
||||||
|
|
||||||
J3DTexture* getTexture() const { return mTexture; }
|
J3DTexture* getTexture() const { return mTexture; }
|
||||||
JUTNameTab* getTextureName() const { return mTextureName; }
|
JUTNameTab* getTextureName() const { return mTextureName; }
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#define J3DSHAPETABLE_H
|
#define J3DSHAPETABLE_H
|
||||||
|
|
||||||
#include "JSystem/J3DGraphBase/J3DShape.h"
|
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||||
|
#include "JSystem/JUtility/JUTAssert.h"
|
||||||
|
|
||||||
class JUTNameTab;
|
class JUTNameTab;
|
||||||
|
|
||||||
@@ -25,7 +26,10 @@ public:
|
|||||||
virtual ~J3DShapeTable() {}
|
virtual ~J3DShapeTable() {}
|
||||||
|
|
||||||
u16 getShapeNum() const { return mShapeNum; }
|
u16 getShapeNum() const { return mShapeNum; }
|
||||||
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeNodePointer[idx]; }
|
J3DShape* getShapeNodePointer(u16 idx) const {
|
||||||
|
J3D_ASSERT(85, idx < mShapeNum, "Error : range over.");
|
||||||
|
return mShapeNodePointer[idx];
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class J3DModelLoader;
|
friend class J3DModelLoader;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DTexture.h"
|
#include "JSystem/J3DGraphBase/J3DTexture.h"
|
||||||
|
#include "JSystem/JUtility/JUTAssert.h"
|
||||||
#include "dolphin/types.h"
|
#include "dolphin/types.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -304,7 +305,10 @@ public:
|
|||||||
/* 80317BB4 */ virtual s32 countDLSize();
|
/* 80317BB4 */ virtual s32 countDLSize();
|
||||||
/* 803229D0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
/* 803229D0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
||||||
/* 803229C0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
/* 803229C0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
||||||
/* 803229E4 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
|
/* 803229E4 */ virtual u16 getTexNo(u32 idx) const {
|
||||||
|
J3D_ASSERT(1353, idx < 8, "Error : range over.");
|
||||||
|
return mTexNo[idx];
|
||||||
|
}
|
||||||
/* 80322A08 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
/* 80322A08 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
||||||
/* 803229F4 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
/* 803229F4 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
||||||
/* 80322A1C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
/* 80322A1C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
||||||
@@ -370,7 +374,10 @@ public:
|
|||||||
/* 80317BCC */ virtual s32 countDLSize();
|
/* 80317BCC */ virtual s32 countDLSize();
|
||||||
/* 8032202C */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
/* 8032202C */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
||||||
/* 8032201C */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
/* 8032201C */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
||||||
/* 80322040 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
|
/* 80322040 */ virtual u16 getTexNo(u32 idx) const {
|
||||||
|
J3D_ASSERT(2019, idx < 4, "Error : range over.");
|
||||||
|
return mTexNo[idx];
|
||||||
|
}
|
||||||
/* 80322064 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
/* 80322064 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
||||||
/* 80322050 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
/* 80322050 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
||||||
/* 80322078 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
/* 80322078 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
||||||
@@ -446,7 +453,10 @@ public:
|
|||||||
/* 80317BC4 */ virtual s32 countDLSize();
|
/* 80317BC4 */ virtual s32 countDLSize();
|
||||||
/* 803223F0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
/* 803223F0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
||||||
/* 803223E0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
/* 803223E0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
||||||
/* 80322404 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
|
/* 80322404 */ virtual u16 getTexNo(u32 idx) const {
|
||||||
|
J3D_ASSERT(1730, idx < 2, "Error : range over.");
|
||||||
|
return mTexNo[idx];
|
||||||
|
}
|
||||||
/* 80322428 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
/* 80322428 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
||||||
/* 80322414 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
/* 80322414 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
||||||
/* 8032243C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
/* 8032243C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
||||||
@@ -522,7 +532,10 @@ public:
|
|||||||
/* 80317BD4 */ virtual s32 countDLSize();
|
/* 80317BD4 */ virtual s32 countDLSize();
|
||||||
/* 80321C60 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
/* 80321C60 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
|
||||||
/* 80321C50 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
/* 80321C50 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
|
||||||
/* 80321C74 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
|
/* 80321C74 */ virtual u16 getTexNo(u32 idx) const {
|
||||||
|
J3D_ASSERT(2308, idx < 8, "Error : range over.");
|
||||||
|
return mTexNo[idx];
|
||||||
|
}
|
||||||
/* 80321C98 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
/* 80321C98 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
||||||
/* 80321C84 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
/* 80321C84 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
||||||
/* 80321CAC */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
/* 80321CAC */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
||||||
@@ -598,7 +611,10 @@ public:
|
|||||||
/* 80317BBC */ virtual s32 countDLSize();
|
/* 80317BBC */ virtual s32 countDLSize();
|
||||||
/* 803227B4 */ virtual void setTexNo(u32 idx, u16 const* no) { mTexNo[idx] = *no; }
|
/* 803227B4 */ virtual void setTexNo(u32 idx, u16 const* no) { mTexNo[idx] = *no; }
|
||||||
/* 803227A4 */ virtual void setTexNo(u32 idx, u16 no) { mTexNo[idx] = no; }
|
/* 803227A4 */ virtual void setTexNo(u32 idx, u16 no) { mTexNo[idx] = no; }
|
||||||
/* 803227C8 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
|
/* 803227C8 */ virtual u16 getTexNo(u32 idx) const {
|
||||||
|
J3D_ASSERT(1574, idx < 1, "Error : range over.");
|
||||||
|
return mTexNo[idx];
|
||||||
|
}
|
||||||
/* 803227EC */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
/* 803227EC */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
|
||||||
/* 803227D8 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
/* 803227D8 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
|
||||||
/* 80322800 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
/* 80322800 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
#define J3DSHAPE_H
|
#define J3DSHAPE_H
|
||||||
|
|
||||||
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
|
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
#include "JSystem/JUtility/JUTAssert.h"
|
||||||
#include "dolphin/gx.h"
|
#include "dolphin/gx.h"
|
||||||
|
#include "mtx.h"
|
||||||
|
|
||||||
|
class J3DShapeMtx;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup jsystem-j3d
|
* @ingroup jsystem-j3d
|
||||||
@@ -48,11 +51,11 @@ public:
|
|||||||
u32 getMtxIdxRegB() const { return mMtxIdxRegB; }
|
u32 getMtxIdxRegB() const { return mMtxIdxRegB; }
|
||||||
|
|
||||||
inline void load() const {
|
inline void load() const {
|
||||||
J3DFifoWriteCPCmd(0x30, getMtxIdxRegA()); // CP_MATINDEX_A
|
J3DFifoWriteCPCmd(0x30, mMtxIdxRegA); // CP_MATINDEX_A
|
||||||
J3DFifoWriteCPCmd(0x40, getMtxIdxRegB()); // CP_MATINDEX_B
|
J3DFifoWriteCPCmd(0x40, mMtxIdxRegB); // CP_MATINDEX_B
|
||||||
J3DFifoWriteXFCmd(0x1018, 2);
|
J3DFifoWriteXFCmd(0x1018, 2);
|
||||||
GXWGFifo.u32 = getMtxIdxRegA();
|
GXCmd1u32(mMtxIdxRegA);
|
||||||
GXWGFifo.u32 = getMtxIdxRegB();
|
GXCmd1u32(mMtxIdxRegB);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
|
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
|
||||||
@@ -111,7 +114,7 @@ public:
|
|||||||
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
|
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
|
||||||
void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; }
|
void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; }
|
||||||
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
|
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
|
||||||
void* getVcdVatCmd() const { return mVcdVatCmd; }
|
void* getVcdVatCmd() { return mVcdVatCmd; }
|
||||||
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; }
|
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; }
|
||||||
void show() { offFlag(J3DShpFlag_Visible); }
|
void show() { offFlag(J3DShpFlag_Visible); }
|
||||||
void hide() { onFlag(J3DShpFlag_Visible); }
|
void hide() { onFlag(J3DShpFlag_Visible); }
|
||||||
@@ -124,15 +127,14 @@ public:
|
|||||||
bool getNBTFlag() const { return mHasNBT; }
|
bool getNBTFlag() const { return mHasNBT; }
|
||||||
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
|
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
|
||||||
void setBumpMtxOffset(u32 offset) { mBumpMtxOffset = offset; }
|
void setBumpMtxOffset(u32 offset) { mBumpMtxOffset = offset; }
|
||||||
GXVtxDescList* getVtxDesc() const { return mVtxDesc; }
|
GXVtxDescList* getVtxDesc() { return mVtxDesc; }
|
||||||
|
|
||||||
J3DMaterial* getMaterial() const { return mMaterial; }
|
J3DMaterial* getMaterial() const { return mMaterial; }
|
||||||
u16 getIndex() const { return mIndex; }
|
u16 getIndex() const { return mIndex; }
|
||||||
u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
|
|
||||||
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
||||||
u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
||||||
J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
|
J3DShapeDraw* getShapeDraw(u16 idx) { return mShapeDraw[idx]; }
|
||||||
J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
|
J3DShapeMtx* getShapeMtx(u16 idx) { return mShapeMtx[idx]; }
|
||||||
Vec* getMin() { return &mMin; }
|
Vec* getMin() { return &mMin; }
|
||||||
Vec* getMax() { return &mMax; }
|
Vec* getMax() { return &mMax; }
|
||||||
|
|
||||||
@@ -167,4 +169,48 @@ private:
|
|||||||
/* 0x64 */ u32 mBumpMtxOffset;
|
/* 0x64 */ u32 mBumpMtxOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup jsystem-j3d
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class J3DShapeMtx {
|
||||||
|
public:
|
||||||
|
J3DShapeMtx(u16 useMtxIndex)
|
||||||
|
: mUseMtxIndex(useMtxIndex)
|
||||||
|
{}
|
||||||
|
|
||||||
|
/* 803130E4 */ void loadMtxIndx_PNGP(int, u16) const;
|
||||||
|
/* 80313128 */ void loadMtxIndx_PCPU(int, u16) const;
|
||||||
|
/* 80313188 */ void loadMtxIndx_NCPU(int, u16) const;
|
||||||
|
/* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const;
|
||||||
|
|
||||||
|
/* 80314798 */ virtual ~J3DShapeMtx() {}
|
||||||
|
/* 803147E0 */ virtual u32 getType() const { return 'SMTX'; }
|
||||||
|
/* 80273E08 */ virtual u32 getUseMtxNum() const { return 1; }
|
||||||
|
/* 8031459C */ virtual u32 getUseMtxIndex(u16) const { return mUseMtxIndex; }
|
||||||
|
/* 80313B94 */ virtual void load() const;
|
||||||
|
/* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
|
||||||
|
|
||||||
|
static J3DShapeMtx_LoadFunc sMtxLoadPipeline[4];
|
||||||
|
static u16 sMtxLoadCache[10];
|
||||||
|
static u32 sCurrentPipeline;
|
||||||
|
static u8* sCurrentScaleFlag;
|
||||||
|
static u8 sNBTFlag;
|
||||||
|
static u8 sLODFlag;
|
||||||
|
static u32 sTexMtxLoadType;
|
||||||
|
|
||||||
|
static void setCurrentPipeline(u32 pipeline) {
|
||||||
|
J3D_ASSERT(91, pipeline < 4, "Error : range over.");
|
||||||
|
sCurrentPipeline = pipeline;
|
||||||
|
}
|
||||||
|
static void setLODFlag(u8 flag) { sLODFlag = flag; }
|
||||||
|
static u32 getLODFlag() { return sLODFlag; }
|
||||||
|
static void resetMtxLoadCache();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/* 0x04 */ u16 mUseMtxIndex;
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* J3DSHAPE_H */
|
#endif /* J3DSHAPE_H */
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#ifndef J3DSHAPEMTX_H
|
#ifndef J3DSHAPEMTX_H
|
||||||
#define J3DSHAPEMTX_H
|
#define J3DSHAPEMTX_H
|
||||||
|
|
||||||
|
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||||
#include "dolphin/mtx.h"
|
#include "dolphin/mtx.h"
|
||||||
|
|
||||||
class J3DTexMtx;
|
class J3DTexMtx;
|
||||||
@@ -39,48 +40,6 @@ public:
|
|||||||
static J3DTexMtxObj* sTexMtxObj;
|
static J3DTexMtxObj* sTexMtxObj;
|
||||||
};
|
};
|
||||||
|
|
||||||
class J3DShapeMtx;
|
|
||||||
typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup jsystem-j3d
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class J3DShapeMtx {
|
|
||||||
public:
|
|
||||||
J3DShapeMtx(u16 useMtxIndex)
|
|
||||||
: mUseMtxIndex(useMtxIndex)
|
|
||||||
{}
|
|
||||||
|
|
||||||
/* 803130E4 */ void loadMtxIndx_PNGP(int, u16) const;
|
|
||||||
/* 80313128 */ void loadMtxIndx_PCPU(int, u16) const;
|
|
||||||
/* 80313188 */ void loadMtxIndx_NCPU(int, u16) const;
|
|
||||||
/* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const;
|
|
||||||
|
|
||||||
/* 80314798 */ virtual ~J3DShapeMtx() {}
|
|
||||||
/* 803147E0 */ virtual u32 getType() const { return 'SMTX'; }
|
|
||||||
/* 80273E08 */ virtual u32 getUseMtxNum() const { return 1; }
|
|
||||||
/* 8031459C */ virtual u32 getUseMtxIndex(u16) const { return mUseMtxIndex; }
|
|
||||||
/* 80313B94 */ virtual void load() const;
|
|
||||||
/* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
|
|
||||||
|
|
||||||
static J3DShapeMtx_LoadFunc sMtxLoadPipeline[4];
|
|
||||||
static u16 sMtxLoadCache[10];
|
|
||||||
static u32 sCurrentPipeline;
|
|
||||||
static u8* sCurrentScaleFlag;
|
|
||||||
static u8 sNBTFlag;
|
|
||||||
static u8 sLODFlag;
|
|
||||||
static u32 sTexMtxLoadType;
|
|
||||||
|
|
||||||
static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; }
|
|
||||||
static void setLODFlag(u8 flag) { sLODFlag = flag; }
|
|
||||||
static u8 getLODFlag() { return sLODFlag; }
|
|
||||||
static void resetMtxLoadCache();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/* 0x04 */ u16 mUseMtxIndex;
|
|
||||||
};
|
|
||||||
|
|
||||||
class J3DShapeMtxConcatView;
|
class J3DShapeMtxConcatView;
|
||||||
typedef void (J3DShapeMtxConcatView::*J3DShapeMtxConcatView_LoadFunc)(int, u16) const;
|
typedef void (J3DShapeMtxConcatView::*J3DShapeMtxConcatView_LoadFunc)(int, u16) const;
|
||||||
|
|
||||||
|
|||||||
@@ -93,16 +93,19 @@ struct J3DSys {
|
|||||||
|
|
||||||
void setDrawModeXlu() { mDrawMode = XLU; }
|
void setDrawModeXlu() { mDrawMode = XLU; }
|
||||||
|
|
||||||
void* getVtxPos() const { return mVtxPos; }
|
void* getVtxPos() { return mVtxPos; }
|
||||||
void setVtxPos(void* pVtxPos) { mVtxPos = pVtxPos; }
|
void setVtxPos(void* pVtxPos) { mVtxPos = pVtxPos; }
|
||||||
|
|
||||||
void* getVtxNrm() const { return mVtxNrm; }
|
void* getVtxNrm() { return mVtxNrm; }
|
||||||
void setVtxNrm(void* pVtxNrm) { mVtxNrm = pVtxNrm; }
|
void setVtxNrm(void* pVtxNrm) { mVtxNrm = pVtxNrm; }
|
||||||
|
|
||||||
void* getVtxCol() const { return mVtxCol; }
|
void* getVtxCol() const { return mVtxCol; }
|
||||||
void setVtxCol(_GXColor* pVtxCol) { mVtxCol = pVtxCol; }
|
void setVtxCol(_GXColor* pVtxCol) { mVtxCol = pVtxCol; }
|
||||||
|
|
||||||
void setModel(J3DModel* pModel) { mModel = pModel; }
|
void setModel(J3DModel* pModel) {
|
||||||
|
J3D_ASSERT(200, pModel, "Error : null pointer.");
|
||||||
|
mModel = pModel;
|
||||||
|
}
|
||||||
void setShapePacket(J3DShapePacket* pPacket) { mShapePacket = pPacket; }
|
void setShapePacket(J3DShapePacket* pPacket) { mShapePacket = pPacket; }
|
||||||
void setMatPacket(J3DMatPacket* pPacket) { mMatPacket = pPacket; }
|
void setMatPacket(J3DMatPacket* pPacket) { mMatPacket = pPacket; }
|
||||||
J3DMatPacket* getMatPacket() { return mMatPacket; }
|
J3DMatPacket* getMatPacket() { return mMatPacket; }
|
||||||
@@ -129,6 +132,7 @@ struct J3DSys {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setModelNrmMtx(Mtx33* pMtxArr) {
|
void setModelNrmMtx(Mtx33* pMtxArr) {
|
||||||
|
JUT_ASSERT_MSG(241, pMtxArr, "Error : null pointer.");
|
||||||
mModelNrmMtx = pMtxArr;
|
mModelNrmMtx = pMtxArr;
|
||||||
GXSetArray(GX_NRM_MTX_ARRAY, mModelNrmMtx, sizeof(*mModelNrmMtx));
|
GXSetArray(GX_NRM_MTX_ARRAY, mModelNrmMtx, sizeof(*mModelNrmMtx));
|
||||||
}
|
}
|
||||||
@@ -148,8 +152,8 @@ struct J3DSys {
|
|||||||
return mDrawBuffer[type];
|
return mDrawBuffer[type];
|
||||||
}
|
}
|
||||||
|
|
||||||
Mtx& getModelDrawMtx(u16 no) const { return mModelDrawMtx[no]; }
|
Mtx& getModelDrawMtx(u16 no) { return mModelDrawMtx[no]; }
|
||||||
J3DShapePacket* getShapePacket() const { return mShapePacket; }
|
J3DShapePacket* getShapePacket() { return mShapePacket; }
|
||||||
|
|
||||||
void setViewMtx(Mtx m) { MTXCopy(m, mViewMtx); }
|
void setViewMtx(Mtx m) { MTXCopy(m, mViewMtx); }
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#define J3DTEXTURE_H
|
#define J3DTEXTURE_H
|
||||||
|
|
||||||
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
||||||
|
#include "JSystem/JUtility/JUTAssert.h"
|
||||||
#include "JSystem/JUtility/JUTTexture.h"
|
#include "JSystem/JUtility/JUTTexture.h"
|
||||||
#include "dolphin/types.h"
|
#include "dolphin/types.h"
|
||||||
|
|
||||||
@@ -23,7 +24,10 @@ public:
|
|||||||
/* 803366A4 */ virtual ~J3DTexture() {}
|
/* 803366A4 */ virtual ~J3DTexture() {}
|
||||||
|
|
||||||
u16 getNum() const { return mNum; }
|
u16 getNum() const { return mNum; }
|
||||||
ResTIMG* getResTIMG(u16 entry) const { return &mpRes[entry]; }
|
ResTIMG* getResTIMG(u16 entry) const {
|
||||||
|
J3D_ASSERT(72, entry < mNum, "Error : range over.");
|
||||||
|
return &mpRes[entry];
|
||||||
|
}
|
||||||
void setResTIMG(u16 entry, const ResTIMG& timg) {
|
void setResTIMG(u16 entry, const ResTIMG& timg) {
|
||||||
mpRes[entry] = timg;
|
mpRes[entry] = timg;
|
||||||
mpRes[entry].imageOffset = ((mpRes[entry].imageOffset + (u32)&timg - (u32)(mpRes + entry)));
|
mpRes[entry].imageOffset = ((mpRes[entry].imageOffset + (u32)&timg - (u32)(mpRes + entry)));
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public:
|
|||||||
void* getVtxNBTArray() const { return mVtxNBTArray; }
|
void* getVtxNBTArray() const { return mVtxNBTArray; }
|
||||||
u32 getNrmNum() const { return mNrmNum; }
|
u32 getNrmNum() const { return mNrmNum; }
|
||||||
u32 getVtxNum() const { return mVtxNum; }
|
u32 getVtxNum() const { return mVtxNum; }
|
||||||
GXVtxAttrFmtList* getVtxAttrFmtList() { return mVtxAttrFmtList; }
|
GXVtxAttrFmtList* getVtxAttrFmtList() const { return mVtxAttrFmtList; }
|
||||||
u8 getVtxPosFrac() { return mVtxPosFrac; }
|
u8 getVtxPosFrac() { return mVtxPosFrac; }
|
||||||
u8 getVtxNrmFrac() { return mVtxNrmFrac; }
|
u8 getVtxNrmFrac() { return mVtxNrmFrac; }
|
||||||
int getVtxPosType() { return mVtxPosType; }
|
int getVtxPosType() { return mVtxPosType; }
|
||||||
|
|||||||
@@ -1120,6 +1120,7 @@ void J3DAnmTexPattern::getTexNo(u16 i_index, u16* o_texNo) const {
|
|||||||
/* 8032B004-8032B09C 325944 0098+00 1/1 1/1 0/0 .text
|
/* 8032B004-8032B09C 325944 0098+00 1/1 1/1 0/0 .text
|
||||||
* searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable */
|
* searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable */
|
||||||
void J3DAnmTexPattern::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
void J3DAnmTexPattern::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
||||||
|
J3D_ASSERT(1790, i_materialTable, "Error : null pointer.");
|
||||||
for (u16 i = 0; i < mUpdateMaterialNum; i++) {
|
for (u16 i = 0; i < mUpdateMaterialNum; i++) {
|
||||||
s32 index = i_materialTable->getMaterialName()->getIndex(mUpdateMaterialName.getName(i));
|
s32 index = i_materialTable->getMaterialName()->getIndex(mUpdateMaterialName.getName(i));
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
@@ -1133,13 +1134,15 @@ void J3DAnmTexPattern::searchUpdateMaterialID(J3DMaterialTable* i_materialTable)
|
|||||||
/* 8032B09C-8032B0C0 3259DC 0024+00 0/0 4/4 1/1 .text
|
/* 8032B09C-8032B0C0 3259DC 0024+00 0/0 4/4 1/1 .text
|
||||||
* searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData */
|
* searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData */
|
||||||
void J3DAnmTexPattern::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
void J3DAnmTexPattern::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
||||||
|
J3D_ASSERT(1813, i_modelData, "Error : null pointer.");
|
||||||
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 8032B0C0-8032B1D4 325A00 0114+00 1/1 1/1 0/0 .text
|
/* 8032B0C0-8032B1D4 325A00 0114+00 1/1 1/1 0/0 .text
|
||||||
* searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable */
|
* searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable */
|
||||||
void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
||||||
for (u16 i = 0; i < u16(mTrackNum / 3); i++) {
|
J3D_ASSERT(1832, i_materialTable, "Error : null pointer.");
|
||||||
|
for (u16 i = 0; i < getUpdateMaterialNum(); i++) {
|
||||||
s32 index = i_materialTable->getMaterialName()->getIndex(mUpdateMaterialName.getName(i));
|
s32 index = i_materialTable->getMaterialName()->getIndex(mUpdateMaterialName.getName(i));
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
mUpdateMaterialID[i] = index;
|
mUpdateMaterialID[i] = index;
|
||||||
@@ -1147,7 +1150,7 @@ void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTab
|
|||||||
mUpdateMaterialID[i] = -1;
|
mUpdateMaterialID[i] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (u16 i = 0; i < u16(field_0x4a / 3); i++) {
|
for (u16 i = 0; i < getPostUpdateMaterialNum(); i++) {
|
||||||
s32 index = i_materialTable->getMaterialName()->getIndex(mPostUpdateMaterialName.getName(i));
|
s32 index = i_materialTable->getMaterialName()->getIndex(mPostUpdateMaterialName.getName(i));
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
mPostUpdateMaterialID[i] = index;
|
mPostUpdateMaterialID[i] = index;
|
||||||
@@ -1160,6 +1163,7 @@ void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTab
|
|||||||
/* 8032B1D4-8032B1F8 325B14 0024+00 0/0 8/8 6/6 .text
|
/* 8032B1D4-8032B1F8 325B14 0024+00 0/0 8/8 6/6 .text
|
||||||
* searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData */
|
* searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData */
|
||||||
void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
||||||
|
J3D_ASSERT(1871, i_modelData, "Error : null pointer.");
|
||||||
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1324,6 +1328,7 @@ void J3DAnmTevRegKey::getTevKonstReg(u16 i_index, GXColor* o_color) const {
|
|||||||
/* 8032B780-8032B87C 3260C0 00FC+00 1/1 1/1 0/0 .text
|
/* 8032B780-8032B87C 3260C0 00FC+00 1/1 1/1 0/0 .text
|
||||||
* searchUpdateMaterialID__15J3DAnmTevRegKeyFP16J3DMaterialTable */
|
* searchUpdateMaterialID__15J3DAnmTevRegKeyFP16J3DMaterialTable */
|
||||||
void J3DAnmTevRegKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
void J3DAnmTevRegKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTable) {
|
||||||
|
J3D_ASSERT(2083, i_materialTable, "Error : null pointer.");
|
||||||
for (u16 i = 0; i < mCRegUpdateMaterialNum; i++) {
|
for (u16 i = 0; i < mCRegUpdateMaterialNum; i++) {
|
||||||
s32 index = i_materialTable->getMaterialName()->getIndex(mCRegUpdateMaterialName.getName(i));
|
s32 index = i_materialTable->getMaterialName()->getIndex(mCRegUpdateMaterialName.getName(i));
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
@@ -1345,5 +1350,6 @@ void J3DAnmTevRegKey::searchUpdateMaterialID(J3DMaterialTable* i_materialTable)
|
|||||||
/* 8032B87C-8032B8A0 3261BC 0024+00 0/0 9/9 4/4 .text
|
/* 8032B87C-8032B8A0 3261BC 0024+00 0/0 9/9 4/4 .text
|
||||||
* searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData */
|
* searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData */
|
||||||
void J3DAnmTevRegKey::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
void J3DAnmTevRegKey::searchUpdateMaterialID(J3DModelData* i_modelData) {
|
||||||
|
J3D_ASSERT(2119, i_modelData, "Error : null pointer.");
|
||||||
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
searchUpdateMaterialID(&i_modelData->getMaterialTable());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ void J3DDeformData::offAllFlag(u32 i_flag) {
|
|||||||
/* 8032E274-8032E298 328BB4 0024+00 0/0 1/1 0/0 .text deform__13J3DDeformDataFP8J3DModel
|
/* 8032E274-8032E298 328BB4 0024+00 0/0 1/1 0/0 .text deform__13J3DDeformDataFP8J3DModel
|
||||||
*/
|
*/
|
||||||
void J3DDeformData::deform(J3DModel* model) {
|
void J3DDeformData::deform(J3DModel* model) {
|
||||||
J3D_ASSERT(110, model,"Error : null pointer");
|
J3D_ASSERT(110, model, "Error : null pointer");
|
||||||
|
|
||||||
deform(model->getVertexBuffer());
|
deform(model->getVertexBuffer());
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ void J3DDeformData::deform(J3DModel* model) {
|
|||||||
/* 8032E298-8032E364 328BD8 00CC+00 1/1 0/0 0/0 .text deform__13J3DDeformDataFP15J3DVertexBuffer
|
/* 8032E298-8032E364 328BD8 00CC+00 1/1 0/0 0/0 .text deform__13J3DDeformDataFP15J3DVertexBuffer
|
||||||
*/
|
*/
|
||||||
void J3DDeformData::deform(J3DVertexBuffer* buffer) {
|
void J3DDeformData::deform(J3DVertexBuffer* buffer) {
|
||||||
J3D_ASSERT(141, buffer,"Error : null pointer");
|
J3D_ASSERT(141, buffer, "Error : null pointer");
|
||||||
|
|
||||||
buffer->swapVtxPosArrayPointer();
|
buffer->swapVtxPosArrayPointer();
|
||||||
buffer->swapVtxNrmArrayPointer();
|
buffer->swapVtxNrmArrayPointer();
|
||||||
@@ -83,7 +83,7 @@ J3DDeformer::J3DDeformer(J3DDeformData* data) {
|
|||||||
/* 8032E3BC-8032E4A4 328CFC 00E8+00 1/1 0/0 0/0 .text deform__11J3DDeformerFP15J3DVertexBufferUs
|
/* 8032E3BC-8032E4A4 328CFC 00E8+00 1/1 0/0 0/0 .text deform__11J3DDeformerFP15J3DVertexBufferUs
|
||||||
*/
|
*/
|
||||||
void J3DDeformer::deform(J3DVertexBuffer* buffer, u16 param_1) {
|
void J3DDeformer::deform(J3DVertexBuffer* buffer, u16 param_1) {
|
||||||
J3D_ASSERT(222, buffer,"Error : null pointer");
|
J3D_ASSERT(222, buffer, "Error : null pointer");
|
||||||
|
|
||||||
u16 var_r31 = 0;
|
u16 var_r31 = 0;
|
||||||
if (mAnmCluster != NULL) {
|
if (mAnmCluster != NULL) {
|
||||||
|
|||||||
@@ -215,26 +215,23 @@ int J3DMaterialTable::entryTexNoAnimator(J3DAnmTexPattern* param_1) {
|
|||||||
|
|
||||||
/* 8032FCC4-8032FE70 32A604 01AC+00 0/0 14/14 6/6 .text
|
/* 8032FCC4-8032FE70 32A604 01AC+00 0/0 14/14 6/6 .text
|
||||||
* entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey */
|
* entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey */
|
||||||
// NONMATCHING regalloc
|
int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* btk) {
|
||||||
int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_1) {
|
JUT_ASSERT_MSG(532, btk != NULL, "Error : null pointer.")
|
||||||
JUT_ASSERT_MSG(532, param_1 != NULL, "Error : null pointer.")
|
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
u16 materialNum = param_1->getUpdateMaterialNum();
|
u16 materialNum = btk->getUpdateMaterialNum();
|
||||||
rv = createTexMtxForAnimator(param_1);
|
rv = createTexMtxForAnimator(btk);
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
if (isLocked()) {
|
if (isLocked()) {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
for (u16 i = 0; i < materialNum; i++) {
|
for (u16 no = 0; no < materialNum; no++) {
|
||||||
if (param_1->isValidUpdateMaterialID(i)) {
|
if (btk->isValidUpdateMaterialID(no)) {
|
||||||
u16 updateMaterialId = param_1->getUpdateMaterialID(i);
|
u16 updateMaterialId = btk->getUpdateMaterialID(no);
|
||||||
// Maybe helps? Makes material r26 instead of r30
|
|
||||||
//J3DMaterial* material = (J3DMaterial*)getMaterialNodePointer((u16)updateMaterialId);
|
|
||||||
J3DMaterial* material = getMaterialNodePointer((u16)updateMaterialId);
|
J3DMaterial* material = getMaterialNodePointer((u16)updateMaterialId);
|
||||||
J3DMaterialAnm* materialAnm = material->getMaterialAnm();
|
J3DMaterialAnm* materialAnm = material->getMaterialAnm();
|
||||||
u8 texMtxID = param_1->getUpdateTexMtxID(i);
|
u8 texMtxID = btk->getUpdateTexMtxID(no);
|
||||||
if (materialAnm == 0) {
|
if (materialAnm == 0) {
|
||||||
rv = 1;
|
rv = 1;
|
||||||
} else {
|
} else {
|
||||||
@@ -242,15 +239,12 @@ int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_1) {
|
|||||||
if (material->getTexCoord(texMtxID) != NULL) {
|
if (material->getTexCoord(texMtxID) != NULL) {
|
||||||
material->getTexCoord(texMtxID)->setTexGenMtx((u8)texMtxID * 3 + 30);
|
material->getTexCoord(texMtxID)->setTexGenMtx((u8)texMtxID * 3 + 30);
|
||||||
}
|
}
|
||||||
J3DTexMtxInfo& iVar3 = material->getTexMtx(texMtxID)->getTexMtxInfo();
|
J3DTexMtxInfo& tmtxinfo = material->getTexMtx(texMtxID)->getTexMtxInfo();
|
||||||
iVar3.mInfo = (iVar3.mInfo & 0x3f) | (param_1->getTexMtxCalcType() << 7);
|
tmtxinfo.mInfo = (tmtxinfo.mInfo & 0x3f) | (btk->getTexMtxCalcType() << 7);
|
||||||
Vec* vec = param_1->getSRTCenter(i);
|
tmtxinfo.mCenter.x = btk->getSRTCenter(no)->x;
|
||||||
iVar3.mCenter.x = vec->x;
|
tmtxinfo.mCenter.y = btk->getSRTCenter(no)->y;
|
||||||
vec = param_1->getSRTCenter(i);
|
tmtxinfo.mCenter.z = btk->getSRTCenter(no)->z;
|
||||||
iVar3.mCenter.y = vec->y;
|
J3DTexMtxAnm texMtxAnm(no, btk);
|
||||||
vec = param_1->getSRTCenter(i);
|
|
||||||
iVar3.mCenter.z = vec->z;
|
|
||||||
J3DTexMtxAnm texMtxAnm(i, param_1);
|
|
||||||
materialAnm->setTexMtxAnm(texMtxID, &texMtxAnm);
|
materialAnm->setTexMtxAnm(texMtxID, &texMtxAnm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||||
|
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
||||||
#include "dolphin/os.h"
|
#include "dolphin/os.h"
|
||||||
|
|
||||||
/* 80327100-80327184 321A40 0084+00 0/0 3/3 0/0 .text initialize__8J3DModelFv */
|
/* 80327100-80327184 321A40 0084+00 0/0 3/3 0/0 .text initialize__8J3DModelFv */
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||||
|
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
||||||
#include "JSystem/JKernel/JKRHeap.h"
|
#include "JSystem/JKernel/JKRHeap.h"
|
||||||
#include <dolphin/os.h>
|
#include <dolphin/os.h>
|
||||||
#include <dolphin/os.h>
|
#include <dolphin/os.h>
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 valueBase) {
|
|||||||
s32 stride = 0;
|
s32 stride = 0;
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
for (GXVtxDescList* vtxDesc = mVtxDesc; vtxDesc->attr != GX_VA_NULL; vtxDesc++) {
|
for (GXVtxDescList* vtxDesc = getVtxDesc(); vtxDesc->attr != GX_VA_NULL; vtxDesc++) {
|
||||||
if (vtxDesc->attr == GX_VA_PNMTXIDX)
|
if (vtxDesc->attr == GX_VA_PNMTXIDX)
|
||||||
pnmtxidxOffs = stride;
|
pnmtxidxOffs = stride;
|
||||||
|
|
||||||
@@ -105,15 +105,15 @@ void J3DShape::addTexMtxIndexInVcd(GXAttr attr) {
|
|||||||
/* 80314DA8-80314E28 30F6E8 0080+00 0/0 1/1 0/0 .text
|
/* 80314DA8-80314E28 30F6E8 0080+00 0/0 1/1 0/0 .text
|
||||||
* calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f */
|
* calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f */
|
||||||
void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) {
|
void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) {
|
||||||
for (u16 i = 0; i < getMtxGroupNum(); i++)
|
for (u16 i = 0; i < mMtxGroupNum; i++)
|
||||||
getShapeMtx(i)->calcNBTScale(param_0, param_1, param_2);
|
mShapeMtx[i]->calcNBTScale(param_0, param_1, param_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 80314E28-80314E98 30F768 0070+00 0/0 1/1 0/0 .text countBumpMtxNum__8J3DShapeCFv */
|
/* 80314E28-80314E98 30F768 0070+00 0/0 1/1 0/0 .text countBumpMtxNum__8J3DShapeCFv */
|
||||||
u32 J3DShape::countBumpMtxNum() const {
|
u32 J3DShape::countBumpMtxNum() const {
|
||||||
u32 num = 0;
|
u32 num = 0;
|
||||||
for (u16 i = 0; i < getMtxGroupNum(); i++)
|
for (u16 i = 0; i < mMtxGroupNum; i++)
|
||||||
num += getShapeMtx(i)->getUseMtxNum();
|
num += mShapeMtx[i]->getUseMtxNum();
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ void J3DShape::loadVtxArray() const {
|
|||||||
|
|
||||||
/* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */
|
/* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */
|
||||||
bool J3DShape::isSameVcdVatCmd(J3DShape* other) {
|
bool J3DShape::isSameVcdVatCmd(J3DShape* other) {
|
||||||
u8* a = other->mVcdVatCmd;
|
u8* a = (u8*)other->getVcdVatCmd();
|
||||||
u8* b = mVcdVatCmd;
|
u8* b = mVcdVatCmd;
|
||||||
for (u32 i = 0; i < kVcdVatDLSize; i++)
|
for (u32 i = 0; i < kVcdVatDLSize; i++)
|
||||||
if (a[i] != b[i])
|
if (a[i] != b[i])
|
||||||
@@ -274,7 +274,7 @@ static u8 data_804515D4[4];
|
|||||||
|
|
||||||
/* 80315398-8031544C 30FCD8 00B4+00 1/1 0/0 0/0 .text setArrayAndBindPipeline__8J3DShapeCFv */
|
/* 80315398-8031544C 30FCD8 00B4+00 1/1 0/0 0/0 .text setArrayAndBindPipeline__8J3DShapeCFv */
|
||||||
void J3DShape::setArrayAndBindPipeline() const {
|
void J3DShape::setArrayAndBindPipeline() const {
|
||||||
J3DShapeMtx::setCurrentPipeline(getPipeline());
|
J3DShapeMtx::setCurrentPipeline((mFlags & 0x1C) >> 2);
|
||||||
loadVtxArray();
|
loadVtxArray();
|
||||||
j3dSys.setModelDrawMtx(mDrawMtx[*mCurrentViewNo]);
|
j3dSys.setModelDrawMtx(mDrawMtx[*mCurrentViewNo]);
|
||||||
j3dSys.setModelNrmMtx(mNrmMtx[*mCurrentViewNo]);
|
j3dSys.setModelNrmMtx(mNrmMtx[*mCurrentViewNo]);
|
||||||
@@ -302,24 +302,24 @@ void J3DShape::drawFast() const {
|
|||||||
if (J3DShapeMtx::getLODFlag() != 0)
|
if (J3DShapeMtx::getLODFlag() != 0)
|
||||||
J3DShapeMtx::resetMtxLoadCache();
|
J3DShapeMtx::resetMtxLoadCache();
|
||||||
|
|
||||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) {
|
for (u16 n = mMtxGroupNum, i = 0; i < n; i++) {
|
||||||
if (getShapeMtx(i) != NULL)
|
if (mShapeMtx[i] != NULL)
|
||||||
getShapeMtx(i)->load();
|
mShapeMtx[i]->load();
|
||||||
if (getShapeDraw(i) != NULL)
|
if (mShapeDraw[i] != NULL)
|
||||||
getShapeDraw(i)->draw();
|
mShapeDraw[i]->draw();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
||||||
J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
||||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++)
|
for (u16 n = mMtxGroupNum, i = 0; i < n; i++)
|
||||||
if (getShapeDraw(i) != NULL)
|
if (mShapeDraw[i] != NULL)
|
||||||
getShapeDraw(i)->draw();
|
mShapeDraw[i]->draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 803155E0-80315628 30FF20 0048+00 1/0 0/0 0/0 .text draw__8J3DShapeCFv */
|
/* 803155E0-80315628 30FF20 0048+00 1/0 0/0 0/0 .text draw__8J3DShapeCFv */
|
||||||
void J3DShape::draw() const {
|
void J3DShape::draw() const {
|
||||||
sOldVcdVatCmd = NULL;
|
resetVcdVatCache();
|
||||||
loadPreDrawSetting();
|
loadPreDrawSetting();
|
||||||
drawFast();
|
drawFast();
|
||||||
}
|
}
|
||||||
@@ -328,11 +328,11 @@ void J3DShape::draw() const {
|
|||||||
void J3DShape::simpleDraw() const {
|
void J3DShape::simpleDraw() const {
|
||||||
resetVcdVatCache();
|
resetVcdVatCache();
|
||||||
loadPreDrawSetting();
|
loadPreDrawSetting();
|
||||||
J3DShapeMtx::setCurrentPipeline(getPipeline());
|
J3DShapeMtx::setCurrentPipeline((mFlags & 0x1C) >> 2);
|
||||||
loadVtxArray();
|
loadVtxArray();
|
||||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) {
|
for (u16 n = mMtxGroupNum, i = 0; i < n; i++) {
|
||||||
if (getShapeDraw(i) != NULL) {
|
if (mShapeDraw[i] != NULL) {
|
||||||
getShapeDraw(i)->draw();
|
mShapeDraw[i]->draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ void J3DShape::simpleDrawCache() const {
|
|||||||
mCurrentMtx.load();
|
mCurrentMtx.load();
|
||||||
|
|
||||||
loadVtxArray();
|
loadVtxArray();
|
||||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++)
|
for (u16 n = mMtxGroupNum, i = 0; i < n; i++)
|
||||||
if (getShapeDraw(i) != NULL)
|
if (mShapeDraw[i] != NULL)
|
||||||
getShapeDraw(i)->draw();
|
mShapeDraw[i]->draw();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "JSystem/J3DGraphLoader/J3DShapeFactory.h"
|
#include "JSystem/J3DGraphLoader/J3DShapeFactory.h"
|
||||||
#include "JSystem/J3DGraphBase/J3DShape.h"
|
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||||
|
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
||||||
#include "JSystem/JKernel/JKRHeap.h"
|
#include "JSystem/JKernel/JKRHeap.h"
|
||||||
#include "JSystem/JSupport/JSupport.h"
|
#include "JSystem/JSupport/JSupport.h"
|
||||||
#include "dolphin/os.h"
|
#include "dolphin/os.h"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user