Skip to content

Commit ac06966

Browse files
authored
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
1 parent 25d13c7 commit ac06966

File tree

24 files changed

+268
-174
lines changed

24 files changed

+268
-174
lines changed

.vscode/tasks.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,11 @@
3232
"command": "${command:python.interpreterPath} configure.py --version ${input:gameVersion}",
3333
"problemMatcher": [],
3434
},
35+
{
36+
"label": "ninja changes_all",
37+
"type": "shell",
38+
"command": "ninja changes_all",
39+
"problemMatcher": [],
40+
},
3541
]
3642
}

configure.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ def MatchingFor(*versions) -> bool:
558558
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vibration.cpp"),
559559
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_vib_pattern.cpp"),
560560
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_attention.cpp", extra_cflags=['-pragma "nosyminline on"']),
561+
Object(NonMatching, "d/d_bg_parts.cpp"),
561562
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_pc.cpp"),
562563
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_att_dist.cpp"),
563564
Object(MatchingFor("GZ2E01", "GZ2J01"), "d/d_bg_plc.cpp"),
@@ -1090,7 +1091,7 @@ def MatchingFor(*versions) -> bool:
10901091
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
10911092
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
10921093
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DJoint.cpp"),
1093-
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
1094+
Object(MatchingFor("GZ2E01", "GZ2J01"), "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
10941095
],
10951096
),
10961097
JSystemLib(

include/JSystem/J3DGraphAnimator/J3DAnimation.h

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -589,14 +589,23 @@ class J3DAnmTextureSRTKey : public J3DAnmBase {
589589
calcTransform(getFrame(), param_0, pSRTInfo);
590590
}
591591

592-
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
592+
u16 getUpdateMaterialID(u16 idx) const {
593+
J3D_ASSERT(1029, idx < mTrackNum / 3, "Error : range over.");
594+
return mUpdateMaterialID[idx];
595+
}
593596
u16 getUpdateMaterialNum() const { return mTrackNum / 3; }
594597
u16 getPostUpdateMaterialNum() const { return field_0x4a / 3; }
595598

596-
int getUpdateTexMtxID(u16 idx) const { return mUpdateTexMtxID[idx]; }
599+
int getUpdateTexMtxID(u16 idx) const {
600+
J3D_ASSERT(1017, idx < mTrackNum / 3, "Error : range over.");
601+
return mUpdateTexMtxID[idx];
602+
}
597603
bool isValidUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx] != 0xffff; }
598604
u32 getTexMtxCalcType() { return mTexMtxCalcType; }
599-
Vec* getSRTCenter(u16 idx) { return &mSRTCenter[idx]; }
605+
Vec* getSRTCenter(u16 idx) {
606+
J3D_ASSERT(1047, idx < mTrackNum / 3, "Error : range over.");
607+
return &mSRTCenter[idx];
608+
}
600609

601610
/* 0x0C */ int mDecShift;
602611
/* 0x10 */ J3DAnmTransformKeyTable* mAnmTable;
@@ -640,7 +649,10 @@ class J3DAnmTexPattern : public J3DAnmBase {
640649
/* 8032BD20 */ virtual ~J3DAnmTexPattern() {}
641650
/* 8032BD94 */ virtual s32 getKind() const { return 2; }
642651

643-
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
652+
u16 getUpdateMaterialID(u16 idx) const {
653+
J3D_ASSERT(2288, idx < mUpdateMaterialNum, "Error : range over.");
654+
return mUpdateMaterialID[idx];
655+
}
644656
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
645657
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
646658
J3DAnmTexPatternFullTable* getAnmTable() { return mAnmTable; }
@@ -671,8 +683,14 @@ class J3DAnmTevRegKey : public J3DAnmBase {
671683
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
672684
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
673685

674-
u16 getCRegUpdateMaterialID(u16 idx) const { return mCRegUpdateMaterialID[idx]; }
675-
u16 getKRegUpdateMaterialID(u16 idx) const { return mKRegUpdateMaterialID[idx]; }
686+
u16 getCRegUpdateMaterialID(u16 idx) const {
687+
J3D_ASSERT(2100, idx < mCRegUpdateMaterialNum, "Error : range over.");
688+
return mCRegUpdateMaterialID[idx];
689+
}
690+
u16 getKRegUpdateMaterialID(u16 idx) const {
691+
J3D_ASSERT(2140, idx < mKRegUpdateMaterialNum, "Error : range over.");
692+
return mKRegUpdateMaterialID[idx];
693+
}
676694

677695
const J3DAnmCRegKeyTable* getAnmCRegKeyTable() const { return mAnmCRegKeyTable; }
678696
const J3DAnmKRegKeyTable* getAnmKRegKeyTable() const { return mAnmKRegKeyTable; }
@@ -722,7 +740,7 @@ class J3DAnmColor : public J3DAnmBase {
722740
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
723741
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
724742
u16 getUpdateMaterialID(u16 idx) const {
725-
J3D_ASSERT(1578, idx < mUpdateMaterialNum, "Error : range over.")
743+
J3D_ASSERT(1578, idx < mUpdateMaterialNum, "Error : range over.");
726744
return mUpdateMaterialID[idx];
727745
}
728746

include/JSystem/J3DGraphAnimator/J3DCluster.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,15 @@ class J3DDeformData {
8181
/* 8032E364 */ void setAnm(J3DAnmCluster*);
8282

8383
J3DCluster* getClusterPointer(u16 index) {
84-
J3D_ASSERT(186, (index < mClusterNum),"Error : range over.");
84+
J3D_ASSERT(186, (index < mClusterNum), "Error : range over.");
8585
return &mClusterPointer[index];
8686
}
8787
u16 getClusterNum() const { return mClusterNum; }
8888
u16 getClusterKeyNum() const { return mClusterKeyNum; }
89-
J3DClusterKey* getClusterKeyPointer(u16 i) { return &mClusterKeyPointer[i]; }
89+
J3DClusterKey* getClusterKeyPointer(u16 i) {
90+
J3D_ASSERT(199, (i < mClusterKeyNum), "Error : range over.");
91+
return &mClusterKeyPointer[i];
92+
}
9093
f32* getVtxPos() { return mVtxPos; }
9194
f32* getVtxNrm() { return mVtxNrm; }
9295

include/JSystem/J3DGraphAnimator/J3DJointTree.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ class J3DJointTree {
6363
J3DDrawMtxData* getDrawMtxData() { return &mDrawMtxData; }
6464
JUTNameTab* getJointName() const { return mJointName; }
6565
J3DJoint* getRootNode() { return mRootNode; }
66-
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
66+
J3DJoint* getJointNodePointer(u16 idx) const {
67+
J3D_ASSERT(139, idx < mJointNum, "Error : range over.");
68+
return mJointNodePointer[idx];
69+
}
6770
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
6871
Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; }
6972
u32 getModelDataType() const { return mModelDataType; }

include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef J3DMATERIALATTACH_H
22
#define J3DMATERIALATTACH_H
33

4+
#include "JSystem/JUtility/JUTAssert.h"
45
#include "dolphin/types.h"
56

67
class J3DMaterial;
@@ -31,7 +32,10 @@ class J3DMaterialTable {
3132

3233
/* 8032F604 */ virtual ~J3DMaterialTable();
3334

34-
J3DMaterial* getMaterialNodePointer(u16 idx) const { return mMaterialNodePointer[idx]; }
35+
J3DMaterial* getMaterialNodePointer(u16 idx) const {
36+
J3D_ASSERT(92, idx < mMaterialNum, "Error : range over.");
37+
return mMaterialNodePointer[idx];
38+
}
3539

3640
J3DTexture* getTexture() const { return mTexture; }
3741
JUTNameTab* getTextureName() const { return mTextureName; }

include/JSystem/J3DGraphAnimator/J3DShapeTable.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define J3DSHAPETABLE_H
33

44
#include "JSystem/J3DGraphBase/J3DShape.h"
5+
#include "JSystem/JUtility/JUTAssert.h"
56

67
class JUTNameTab;
78

@@ -25,7 +26,10 @@ class J3DShapeTable {
2526
virtual ~J3DShapeTable() {}
2627

2728
u16 getShapeNum() const { return mShapeNum; }
28-
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeNodePointer[idx]; }
29+
J3DShape* getShapeNodePointer(u16 idx) const {
30+
J3D_ASSERT(85, idx < mShapeNum, "Error : range over.");
31+
return mShapeNodePointer[idx];
32+
}
2933

3034
private:
3135
friend class J3DModelLoader;

include/JSystem/J3DGraphBase/J3DMatBlock.h

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include "JSystem/J3DGraphBase/J3DTevs.h"
55
#include "JSystem/J3DGraphBase/J3DTexture.h"
6+
#include "JSystem/JUtility/JUTAssert.h"
67
#include "dolphin/types.h"
78

89
/**
@@ -304,7 +305,10 @@ class J3DTevBlockPatched : public J3DTevBlock {
304305
/* 80317BB4 */ virtual s32 countDLSize();
305306
/* 803229D0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
306307
/* 803229C0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
307-
/* 803229E4 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
308+
/* 803229E4 */ virtual u16 getTexNo(u32 idx) const {
309+
J3D_ASSERT(1353, idx < 8, "Error : range over.");
310+
return mTexNo[idx];
311+
}
308312
/* 80322A08 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
309313
/* 803229F4 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
310314
/* 80322A1C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
@@ -370,7 +374,10 @@ class J3DTevBlock4 : public J3DTevBlock {
370374
/* 80317BCC */ virtual s32 countDLSize();
371375
/* 8032202C */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
372376
/* 8032201C */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
373-
/* 80322040 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
377+
/* 80322040 */ virtual u16 getTexNo(u32 idx) const {
378+
J3D_ASSERT(2019, idx < 4, "Error : range over.");
379+
return mTexNo[idx];
380+
}
374381
/* 80322064 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
375382
/* 80322050 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
376383
/* 80322078 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
@@ -446,7 +453,10 @@ class J3DTevBlock2 : public J3DTevBlock {
446453
/* 80317BC4 */ virtual s32 countDLSize();
447454
/* 803223F0 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
448455
/* 803223E0 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
449-
/* 80322404 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
456+
/* 80322404 */ virtual u16 getTexNo(u32 idx) const {
457+
J3D_ASSERT(1730, idx < 2, "Error : range over.");
458+
return mTexNo[idx];
459+
}
450460
/* 80322428 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
451461
/* 80322414 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
452462
/* 8032243C */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
@@ -522,7 +532,10 @@ class J3DTevBlock16 : public J3DTevBlock {
522532
/* 80317BD4 */ virtual s32 countDLSize();
523533
/* 80321C60 */ virtual void setTexNo(u32 idx, u16 const* texNo) { mTexNo[idx] = *texNo; }
524534
/* 80321C50 */ virtual void setTexNo(u32 idx, u16 texNo) { mTexNo[idx] = texNo; }
525-
/* 80321C74 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
535+
/* 80321C74 */ virtual u16 getTexNo(u32 idx) const {
536+
J3D_ASSERT(2308, idx < 8, "Error : range over.");
537+
return mTexNo[idx];
538+
}
526539
/* 80321C98 */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
527540
/* 80321C84 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
528541
/* 80321CAC */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }
@@ -598,7 +611,10 @@ class J3DTevBlock1 : public J3DTevBlock {
598611
/* 80317BBC */ virtual s32 countDLSize();
599612
/* 803227B4 */ virtual void setTexNo(u32 idx, u16 const* no) { mTexNo[idx] = *no; }
600613
/* 803227A4 */ virtual void setTexNo(u32 idx, u16 no) { mTexNo[idx] = no; }
601-
/* 803227C8 */ virtual u16 getTexNo(u32 idx) const { return mTexNo[idx]; }
614+
/* 803227C8 */ virtual u16 getTexNo(u32 idx) const {
615+
J3D_ASSERT(1574, idx < 1, "Error : range over.");
616+
return mTexNo[idx];
617+
}
602618
/* 803227EC */ virtual void setTevOrder(u32 idx, J3DTevOrder const* order) { mTevOrder[idx] = *order; }
603619
/* 803227D8 */ virtual void setTevOrder(u32 idx, J3DTevOrder order) { mTevOrder[idx] = order; }
604620
/* 80322800 */ virtual J3DTevOrder* getTevOrder(u32 idx) { return &mTevOrder[idx]; }

include/JSystem/J3DGraphBase/J3DShape.h

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
#define J3DSHAPE_H
33

44
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
5-
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
5+
#include "JSystem/JUtility/JUTAssert.h"
66
#include "dolphin/gx.h"
7+
#include "mtx.h"
8+
9+
class J3DShapeMtx;
710

811
/**
912
* @ingroup jsystem-j3d
@@ -48,11 +51,11 @@ class J3DCurrentMtx : public J3DCurrentMtxInfo {
4851
u32 getMtxIdxRegB() const { return mMtxIdxRegB; }
4952

5053
inline void load() const {
51-
J3DFifoWriteCPCmd(0x30, getMtxIdxRegA()); // CP_MATINDEX_A
52-
J3DFifoWriteCPCmd(0x40, getMtxIdxRegB()); // CP_MATINDEX_B
54+
J3DFifoWriteCPCmd(0x30, mMtxIdxRegA); // CP_MATINDEX_A
55+
J3DFifoWriteCPCmd(0x40, mMtxIdxRegB); // CP_MATINDEX_B
5356
J3DFifoWriteXFCmd(0x1018, 2);
54-
GXWGFifo.u32 = getMtxIdxRegA();
55-
GXWGFifo.u32 = getMtxIdxRegB();
57+
GXCmd1u32(mMtxIdxRegA);
58+
GXCmd1u32(mMtxIdxRegB);
5659
}
5760

5861
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
@@ -111,7 +114,7 @@ class J3DShape {
111114
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
112115
void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; }
113116
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
114-
void* getVcdVatCmd() const { return mVcdVatCmd; }
117+
void* getVcdVatCmd() { return mVcdVatCmd; }
115118
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; }
116119
void show() { offFlag(J3DShpFlag_Visible); }
117120
void hide() { onFlag(J3DShpFlag_Visible); }
@@ -124,15 +127,14 @@ class J3DShape {
124127
bool getNBTFlag() const { return mHasNBT; }
125128
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
126129
void setBumpMtxOffset(u32 offset) { mBumpMtxOffset = offset; }
127-
GXVtxDescList* getVtxDesc() const { return mVtxDesc; }
130+
GXVtxDescList* getVtxDesc() { return mVtxDesc; }
128131

129132
J3DMaterial* getMaterial() const { return mMaterial; }
130133
u16 getIndex() const { return mIndex; }
131-
u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
132134
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
133135
u32 getMtxGroupNum() const { return mMtxGroupNum; }
134-
J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
135-
J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
136+
J3DShapeDraw* getShapeDraw(u16 idx) { return mShapeDraw[idx]; }
137+
J3DShapeMtx* getShapeMtx(u16 idx) { return mShapeMtx[idx]; }
136138
Vec* getMin() { return &mMin; }
137139
Vec* getMax() { return &mMax; }
138140

@@ -167,4 +169,48 @@ class J3DShape {
167169
/* 0x64 */ u32 mBumpMtxOffset;
168170
};
169171

172+
typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const;
173+
174+
/**
175+
* @ingroup jsystem-j3d
176+
*
177+
*/
178+
class J3DShapeMtx {
179+
public:
180+
J3DShapeMtx(u16 useMtxIndex)
181+
: mUseMtxIndex(useMtxIndex)
182+
{}
183+
184+
/* 803130E4 */ void loadMtxIndx_PNGP(int, u16) const;
185+
/* 80313128 */ void loadMtxIndx_PCPU(int, u16) const;
186+
/* 80313188 */ void loadMtxIndx_NCPU(int, u16) const;
187+
/* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const;
188+
189+
/* 80314798 */ virtual ~J3DShapeMtx() {}
190+
/* 803147E0 */ virtual u32 getType() const { return 'SMTX'; }
191+
/* 80273E08 */ virtual u32 getUseMtxNum() const { return 1; }
192+
/* 8031459C */ virtual u32 getUseMtxIndex(u16) const { return mUseMtxIndex; }
193+
/* 80313B94 */ virtual void load() const;
194+
/* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
195+
196+
static J3DShapeMtx_LoadFunc sMtxLoadPipeline[4];
197+
static u16 sMtxLoadCache[10];
198+
static u32 sCurrentPipeline;
199+
static u8* sCurrentScaleFlag;
200+
static u8 sNBTFlag;
201+
static u8 sLODFlag;
202+
static u32 sTexMtxLoadType;
203+
204+
static void setCurrentPipeline(u32 pipeline) {
205+
J3D_ASSERT(91, pipeline < 4, "Error : range over.");
206+
sCurrentPipeline = pipeline;
207+
}
208+
static void setLODFlag(u8 flag) { sLODFlag = flag; }
209+
static u32 getLODFlag() { return sLODFlag; }
210+
static void resetMtxLoadCache();
211+
212+
protected:
213+
/* 0x04 */ u16 mUseMtxIndex;
214+
};
215+
170216
#endif /* J3DSHAPE_H */

include/JSystem/J3DGraphBase/J3DShapeMtx.h

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef J3DSHAPEMTX_H
22
#define J3DSHAPEMTX_H
33

4+
#include "JSystem/J3DGraphBase/J3DShape.h"
45
#include "dolphin/mtx.h"
56

67
class J3DTexMtx;
@@ -39,48 +40,6 @@ class J3DDifferedTexMtx {
3940
static J3DTexMtxObj* sTexMtxObj;
4041
};
4142

42-
class J3DShapeMtx;
43-
typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const;
44-
45-
/**
46-
* @ingroup jsystem-j3d
47-
*
48-
*/
49-
class J3DShapeMtx {
50-
public:
51-
J3DShapeMtx(u16 useMtxIndex)
52-
: mUseMtxIndex(useMtxIndex)
53-
{}
54-
55-
/* 803130E4 */ void loadMtxIndx_PNGP(int, u16) const;
56-
/* 80313128 */ void loadMtxIndx_PCPU(int, u16) const;
57-
/* 80313188 */ void loadMtxIndx_NCPU(int, u16) const;
58-
/* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const;
59-
60-
/* 80314798 */ virtual ~J3DShapeMtx() {}
61-
/* 803147E0 */ virtual u32 getType() const { return 'SMTX'; }
62-
/* 80273E08 */ virtual u32 getUseMtxNum() const { return 1; }
63-
/* 8031459C */ virtual u32 getUseMtxIndex(u16) const { return mUseMtxIndex; }
64-
/* 80313B94 */ virtual void load() const;
65-
/* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
66-
67-
static J3DShapeMtx_LoadFunc sMtxLoadPipeline[4];
68-
static u16 sMtxLoadCache[10];
69-
static u32 sCurrentPipeline;
70-
static u8* sCurrentScaleFlag;
71-
static u8 sNBTFlag;
72-
static u8 sLODFlag;
73-
static u32 sTexMtxLoadType;
74-
75-
static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; }
76-
static void setLODFlag(u8 flag) { sLODFlag = flag; }
77-
static u8 getLODFlag() { return sLODFlag; }
78-
static void resetMtxLoadCache();
79-
80-
protected:
81-
/* 0x04 */ u16 mUseMtxIndex;
82-
};
83-
8443
class J3DShapeMtxConcatView;
8544
typedef void (J3DShapeMtxConcatView::*J3DShapeMtxConcatView_LoadFunc)(int, u16) const;
8645

0 commit comments

Comments
 (0)