mirror of https://github.com/zeldaret/tp.git
J3D work (#2212)
This commit is contained in:
parent
9895999b7b
commit
9f58034704
|
|
@ -988,10 +988,10 @@ config.libs = [
|
|||
[
|
||||
Object(Matching, "JSystem/J3DGraphAnimator/J3DShapeTable.cpp"),
|
||||
Object(Matching, "JSystem/J3DGraphAnimator/J3DJointTree.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DModelData.cpp"),
|
||||
Object(Equivalent, "JSystem/J3DGraphAnimator/J3DModelData.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMtxBuffer.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DModel.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DAnimation.cpp"),
|
||||
Object(Matching, "JSystem/J3DGraphAnimator/J3DModel.cpp"),
|
||||
Object(Equivalent, "JSystem/J3DGraphAnimator/J3DAnimation.cpp"),
|
||||
Object(Matching, "JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
|
||||
|
|
@ -1005,7 +1005,7 @@ config.libs = [
|
|||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DMaterialFactory.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DClusterLoader.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DModelLoader.cpp"),
|
||||
Object(Equivalent, "JSystem/J3DGraphLoader/J3DModelLoader.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DJointFactory.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphLoader/J3DShapeFactory.cpp"),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef J2DANIMATION_H
|
||||
#define J2DANIMATION_H
|
||||
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
|
||||
typedef struct _GXColor GXColor;
|
||||
|
|
@ -468,37 +469,6 @@ public:
|
|||
template <typename T>
|
||||
inline f32 J2DHermiteInterpolation(f32, T*, T*, T*, T*, T*, T*);
|
||||
|
||||
inline f32 JMAHermiteInterpolation(register f32 p1, register f32 p2, register f32 p3,
|
||||
register f32 p4, register f32 p5, register f32 p6,
|
||||
register f32 p7) {
|
||||
register f32 ff25;
|
||||
register f32 ff31;
|
||||
register f32 ff30;
|
||||
register f32 ff29;
|
||||
register f32 ff28;
|
||||
register f32 ff27;
|
||||
register f32 ff26;
|
||||
// clang-format off
|
||||
asm {
|
||||
fsubs ff31, p1, p2
|
||||
fsubs ff30, p5, p2
|
||||
fdivs ff29, ff31, ff30
|
||||
fmuls ff28,ff29,ff29
|
||||
fadds ff25,ff29,ff29
|
||||
fsubs ff27,ff28,ff29
|
||||
fsubs ff30, p3, p6
|
||||
fmsubs ff26,ff25,ff27,ff28
|
||||
fmadds ff25,p4,ff27,p4
|
||||
fmadds ff26,ff26,ff30,p3
|
||||
fmadds ff25,p7,ff27,ff25
|
||||
fmsubs ff25,ff29,p4,ff25
|
||||
fnmsubs ff25,ff31,ff25,ff26
|
||||
|
||||
}
|
||||
// clang-format on
|
||||
return ff25;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline f32 J2DHermiteInterpolation<f32>(f32 f1, f32* f2, f32* f3, f32* f4, f32* f5, f32* f6,
|
||||
f32* f7) {
|
||||
|
|
|
|||
|
|
@ -464,7 +464,7 @@ public:
|
|||
mFrame = 0.0f;
|
||||
}
|
||||
|
||||
virtual ~J3DAnmBase();
|
||||
virtual ~J3DAnmBase() {}
|
||||
virtual s32 getKind() const = 0;
|
||||
|
||||
u8 getAttribute() const { return mAttribute; }
|
||||
|
|
@ -486,7 +486,7 @@ class J3DAnmTransform : public J3DAnmBase {
|
|||
public:
|
||||
/* 80328E40 */ J3DAnmTransform(s16, f32*, s16*, f32*);
|
||||
|
||||
/* 8003B93C */ virtual ~J3DAnmTransform();
|
||||
/* 8003B93C */ virtual ~J3DAnmTransform() {}
|
||||
/* 8003C77C */ virtual s32 getKind() const;
|
||||
virtual void getTransform(u16, J3DTransformInfo*) const = 0;
|
||||
|
||||
|
|
@ -528,8 +528,8 @@ class J3DAnmTransformFull : public J3DAnmTransform {
|
|||
public:
|
||||
J3DAnmTransformFull() : J3DAnmTransform(0, NULL, NULL, NULL) { mAnmTable = NULL; }
|
||||
|
||||
/* 8032C2AC */ virtual ~J3DAnmTransformFull();
|
||||
/* 8032C318 */ virtual s32 getKind() const;
|
||||
/* 8032C2AC */ virtual ~J3DAnmTransformFull() {}
|
||||
/* 8032C318 */ virtual s32 getKind() const { return 9; }
|
||||
/* 80328E90 */ virtual void getTransform(u16, J3DTransformInfo*) const;
|
||||
|
||||
/* 0x20 */ J3DAnmTransformFullTable* mAnmTable;
|
||||
|
|
@ -541,8 +541,8 @@ public:
|
|||
*/
|
||||
class J3DAnmTransformFullWithLerp : public J3DAnmTransformFull {
|
||||
public:
|
||||
/* 8032C228 */ virtual ~J3DAnmTransformFullWithLerp();
|
||||
/* 8032C2A4 */ virtual s32 getKind() const;
|
||||
/* 8032C228 */ virtual ~J3DAnmTransformFullWithLerp() {}
|
||||
/* 8032C2A4 */ virtual s32 getKind() const { return 16; }
|
||||
/* 803291F0 */ virtual void getTransform(u16, J3DTransformInfo*) const;
|
||||
}; // Size: 0x24
|
||||
|
||||
|
|
@ -561,8 +561,8 @@ public:
|
|||
/* 8032B0C0 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B1D4 */ void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
/* 8032C198 */ virtual ~J3DAnmTextureSRTKey();
|
||||
/* 8032C220 */ virtual s32 getKind() const;
|
||||
/* 8032C198 */ virtual ~J3DAnmTextureSRTKey() {}
|
||||
/* 8032C220 */ virtual s32 getKind() const { return 4; }
|
||||
|
||||
void getTransform(u16 param_0, J3DTextureSRTInfo* pSRTInfo) const {
|
||||
calcTransform(getFrame(), param_0, pSRTInfo);
|
||||
|
|
@ -615,8 +615,8 @@ public:
|
|||
/* 8032B004 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B09C */ void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
/* 8032BD20 */ virtual ~J3DAnmTexPattern();
|
||||
/* 8032BD94 */ virtual s32 getKind() const;
|
||||
/* 8032BD20 */ virtual ~J3DAnmTexPattern() {}
|
||||
/* 8032BD94 */ virtual s32 getKind() const { return 2; }
|
||||
|
||||
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
|
||||
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||
|
|
@ -643,8 +643,8 @@ public:
|
|||
/* 8032B780 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B87C */ void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
/* 8032BD9C */ virtual ~J3DAnmTevRegKey();
|
||||
/* 8032BE24 */ virtual s32 getKind() const;
|
||||
/* 8032BD9C */ virtual ~J3DAnmTevRegKey() {}
|
||||
/* 8032BE24 */ virtual s32 getKind() const { return 5; }
|
||||
|
||||
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
|
||||
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
|
||||
|
|
@ -693,9 +693,9 @@ public:
|
|||
/* 8032A828 */ J3DAnmColor();
|
||||
/* 8032A8A4 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
|
||||
/* 8032BCAC */ virtual ~J3DAnmColor();
|
||||
/* 8032BF44 */ virtual s32 getKind() const;
|
||||
/* 8032BF4C */ virtual void getColor(u16, _GXColor*) const;
|
||||
/* 8032BCAC */ virtual ~J3DAnmColor() {}
|
||||
/* 8032BF44 */ virtual s32 getKind() const { return 1; }
|
||||
/* 8032BF4C */ virtual void getColor(u16, GXColor*) const {}
|
||||
|
||||
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
||||
|
|
@ -718,15 +718,15 @@ class J3DAnmColorKey : public J3DAnmColor {
|
|||
public:
|
||||
/* 8032AB00 */ J3DAnmColorKey();
|
||||
|
||||
/* 8032BE2C */ virtual ~J3DAnmColorKey();
|
||||
/* 8032BEB0 */ virtual s32 getKind() const;
|
||||
/* 8032AB54 */ virtual void getColor(u16, _GXColor*) const;
|
||||
/* 8032BE2C */ virtual ~J3DAnmColorKey() {}
|
||||
/* 8032BEB0 */ virtual s32 getKind() const { return 11; }
|
||||
/* 8032AB54 */ virtual void getColor(u16, GXColor*) const;
|
||||
|
||||
/* 0x2C */ s16* field_0x2c;
|
||||
/* 0x30 */ s16* field_0x30;
|
||||
/* 0x34 */ s16* field_0x34;
|
||||
/* 0x38 */ s16* field_0x38;
|
||||
/* 0x3C */ J3DAnmColorKeyTable* field_0x3c;
|
||||
/* 0x2C */ s16* mColorR;
|
||||
/* 0x30 */ s16* mColorG;
|
||||
/* 0x34 */ s16* mColorB;
|
||||
/* 0x38 */ s16* mColorA;
|
||||
/* 0x3C */ J3DAnmColorKeyTable* mAnmTable;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -737,9 +737,9 @@ class J3DAnmColorFull : public J3DAnmColor {
|
|||
public:
|
||||
/* 8032AB00 */ J3DAnmColorFull();
|
||||
|
||||
/* 8032BE2C */ virtual ~J3DAnmColorFull();
|
||||
/* 8032BEB0 */ virtual s32 getKind() const;
|
||||
/* 8032AB54 */ virtual void getColor(u16, _GXColor*) const;
|
||||
/* 8032BE2C */ virtual ~J3DAnmColorFull() {}
|
||||
/* 8032BEB0 */ virtual s32 getKind() const { return 10; }
|
||||
/* 8032AB54 */ virtual void getColor(u16, GXColor*) const;
|
||||
|
||||
/* 0x2C */ u8* mColorR;
|
||||
/* 0x30 */ u8* mColorG;
|
||||
|
|
@ -756,9 +756,9 @@ class J3DAnmVtxColor : public J3DAnmBase {
|
|||
public:
|
||||
J3DAnmVtxColor();
|
||||
|
||||
virtual ~J3DAnmVtxColor();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u8, u16, _GXColor*) const;
|
||||
virtual ~J3DAnmVtxColor() {}
|
||||
virtual s32 getKind() const { return 7; }
|
||||
virtual void getColor(u8, u16, GXColor*) const {}
|
||||
|
||||
/* 0x0C */ u16 mAnmTableNum[2];
|
||||
/* 0x10 */ J3DAnmVtxColorIndexData* mAnmVtxColorIndexData[2];
|
||||
|
|
@ -772,15 +772,15 @@ class J3DAnmVtxColorKey : public J3DAnmVtxColor {
|
|||
public:
|
||||
/* 8032A4E0 */ J3DAnmVtxColorKey();
|
||||
|
||||
/* 8032BF50 */ virtual ~J3DAnmVtxColorKey();
|
||||
/* 8032BFBC */ virtual s32 getKind() const;
|
||||
/* 8032A53C */ virtual void getColor(u8, u16, _GXColor*) const;
|
||||
/* 8032BF50 */ virtual ~J3DAnmVtxColorKey() {}
|
||||
/* 8032BFBC */ virtual s32 getKind() const { return 15; }
|
||||
/* 8032A53C */ virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
/* 0x1C */ J3DAnmColorKeyTable* mpTable[2];
|
||||
/* 0x24 */ s16* mColorR;
|
||||
/* 0x28 */ s16* mColorG;
|
||||
/* 0x2C */ s16* mColorB;
|
||||
/* 0x30 */ s16* mColorA;
|
||||
/* 0x18 */ J3DAnmColorKeyTable* mpTable[2];
|
||||
/* 0x20 */ s16* mColorR;
|
||||
/* 0x24 */ s16* mColorG;
|
||||
/* 0x28 */ s16* mColorB;
|
||||
/* 0x2C */ s16* mColorA;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -791,15 +791,15 @@ class J3DAnmVtxColorFull : public J3DAnmVtxColor {
|
|||
public:
|
||||
/* 8032A30C */ J3DAnmVtxColorFull();
|
||||
|
||||
/* 8032BFC4 */ virtual ~J3DAnmVtxColorFull();
|
||||
/* 8032C030 */ virtual s32 getKind() const;
|
||||
/* 8032A368 */ virtual void getColor(u8, u16, _GXColor*) const;
|
||||
/* 8032BFC4 */ virtual ~J3DAnmVtxColorFull() {}
|
||||
/* 8032C030 */ virtual s32 getKind() const { return 14; }
|
||||
/* 8032A368 */ virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
/* 0x1C */ J3DAnmColorFullTable* mpTable[2];
|
||||
/* 0x24 */ u8* mColorR;
|
||||
/* 0x28 */ u8* mColorG;
|
||||
/* 0x2C */ u8* mColorB;
|
||||
/* 0x30 */ u8* mColorA;
|
||||
/* 0x18 */ J3DAnmColorFullTable* mpTable[2];
|
||||
/* 0x20 */ u8* mColorR;
|
||||
/* 0x24 */ u8* mColorG;
|
||||
/* 0x28 */ u8* mColorB;
|
||||
/* 0x2C */ u8* mColorA;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -810,9 +810,9 @@ class J3DAnmCluster : public J3DAnmBase {
|
|||
public:
|
||||
J3DAnmCluster(s16 param_1, f32* param_2) : J3DAnmBase(param_1) { mWeight = param_2; }
|
||||
|
||||
/* 8032BCAC */ virtual ~J3DAnmCluster();
|
||||
/* 8032BF44 */ virtual s32 getKind() const;
|
||||
/* 8032BF4C */ virtual f32 getWeight(u16) const;
|
||||
/* 8032BCAC */ virtual ~J3DAnmCluster() {}
|
||||
/* 8032BF44 */ virtual s32 getKind() const { return 3; }
|
||||
/* 8032BF4C */ virtual f32 getWeight(u16) const { return 1.0f; }
|
||||
|
||||
/* 0x0C */ f32* mWeight;
|
||||
}; // Size: 0x10
|
||||
|
|
@ -825,8 +825,8 @@ class J3DAnmClusterFull : public J3DAnmCluster {
|
|||
public:
|
||||
J3DAnmClusterFull() : J3DAnmCluster(0, 0) { mAnmTable = NULL; }
|
||||
|
||||
/* 8032BCAC */ virtual ~J3DAnmClusterFull();
|
||||
/* 8032BF44 */ virtual s32 getKind() const;
|
||||
/* 8032BCAC */ virtual ~J3DAnmClusterFull() {}
|
||||
/* 8032BF44 */ virtual s32 getKind() const { return 12; }
|
||||
/* 8032BF4C */ virtual f32 getWeight(u16) const;
|
||||
|
||||
/* 0x10 */ J3DAnmClusterFullTable* mAnmTable;
|
||||
|
|
@ -840,8 +840,8 @@ class J3DAnmClusterKey : public J3DAnmCluster {
|
|||
public:
|
||||
J3DAnmClusterKey() : J3DAnmCluster(0, NULL) { mAnmTable = NULL; }
|
||||
|
||||
/* 8032C044 */ virtual ~J3DAnmClusterKey();
|
||||
/* 8032C0B0 */ virtual s32 getKind() const;
|
||||
/* 8032C044 */ virtual ~J3DAnmClusterKey() {}
|
||||
/* 8032C0B0 */ virtual s32 getKind() const { return 13; }
|
||||
/* 8032A218 */ virtual f32 getWeight(u16) const;
|
||||
|
||||
/* 0x10 */ J3DAnmClusterKeyTable* mAnmTable;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define J3DJOINT_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DTransform.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
|
||||
class J3DAnmTransform;
|
||||
class J3DJoint;
|
||||
|
|
@ -16,7 +17,7 @@ class J3DMtxCalc {
|
|||
public:
|
||||
/* 80325D1C */ static void setMtxBuffer(J3DMtxBuffer*);
|
||||
|
||||
/* 8000D948 */ virtual ~J3DMtxCalc();
|
||||
/* 8000D948 */ virtual ~J3DMtxCalc() {}
|
||||
/* 80014E90 */ virtual void setAnmTransform(J3DAnmTransform*);
|
||||
/* 80014E9C */ virtual J3DAnmTransform* getAnmTransform();
|
||||
/* 80014E8C */ virtual void setAnmTransform(u8, J3DAnmTransform*);
|
||||
|
|
@ -34,29 +35,6 @@ public:
|
|||
static J3DJoint* mJoint;
|
||||
}; // Size: 0x4
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
class J3DMtxCalcNoAnmBase : public J3DMtxCalc {
|
||||
public:
|
||||
/* 8000FA8C */ virtual ~J3DMtxCalcNoAnmBase();
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
template <class A, class B>
|
||||
class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase {
|
||||
public:
|
||||
J3DMtxCalcNoAnm() {}
|
||||
virtual ~J3DMtxCalcNoAnm() {}
|
||||
virtual void init(const Vec& param_0, const Mtx& param_1);
|
||||
virtual void calc();
|
||||
};
|
||||
|
||||
class J3DJoint;
|
||||
typedef int (*J3DJointCallBack)(J3DJoint*, int);
|
||||
|
||||
/**
|
||||
|
|
@ -85,6 +63,7 @@ public:
|
|||
J3DMtxCalc* getMtxCalc() { return mMtxCalc; }
|
||||
J3DMtxCalc* getCurrentMtxCalc() { return mCurrentMtxCalc; };
|
||||
J3DJoint* getChild() { return mChild; }
|
||||
u8 getMtxType() { return (mKind & 0xf0) >> 4; }
|
||||
void setMtxType(u8 type) { mKind = (mKind & ~0xf0) | (type << 4); }
|
||||
|
||||
static J3DMtxCalc* mCurrentMtxCalc;
|
||||
|
|
@ -109,6 +88,39 @@ private:
|
|||
/* 0x58 */ J3DMaterial* mMesh;
|
||||
}; // Size: 0x5C
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
class J3DMtxCalcNoAnmBase : public J3DMtxCalc {
|
||||
public:
|
||||
/* 8000FA8C */ virtual ~J3DMtxCalcNoAnmBase() {}
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
template <class A, class B>
|
||||
class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase {
|
||||
public:
|
||||
J3DMtxCalcNoAnm() {}
|
||||
virtual ~J3DMtxCalcNoAnm() {}
|
||||
virtual void init(const Vec& param_0, const Mtx& param_1) { B::init(param_0, param_1); }
|
||||
virtual void calc() { A::calcTransform(mJoint->getTransformInfo()); }
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
struct J3DMtxCalcJ3DSysInitSoftimage {
|
||||
/* 8032ECAC */ static void init(const Vec& param_0, const Mtx& param_1) {
|
||||
J3DSys::mCurrentS = param_0;
|
||||
MTXCopy(param_1, J3DSys::mCurrentMtx);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
|
|
|
|||
|
|
@ -44,14 +44,14 @@ public:
|
|||
/* 80325C00 */ void findImportantMtxIndex();
|
||||
|
||||
/* 80325CAC */ virtual void calc(J3DMtxBuffer*, Vec const&, f32 const (&)[3][4]);
|
||||
/* 80325D24 */ virtual ~J3DJointTree();
|
||||
/* 80325D24 */ virtual ~J3DJointTree() {}
|
||||
|
||||
J3DModelHierarchy const* getHierarchy() { return mHierarchy; }
|
||||
void setHierarchy(J3DModelHierarchy* hierarchy) { mHierarchy = hierarchy; }
|
||||
void setBasicMtxCalc(J3DMtxCalc* calc) { mBasicMtxCalc = calc; }
|
||||
u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
|
||||
u8 getWEvlpMixMtxNum(u16 idx) const { return mWEvlpMixMtxNum[idx]; }
|
||||
u16 * getWEvlpMixIndex() const { return mWEvlpMixIndex; }
|
||||
u16 * getWEvlpMixMtxIndex() const { return mWEvlpMixMtxIndex; }
|
||||
f32 * getWEvlpMixWeight() const { return mWEvlpMixWeight; }
|
||||
u16 * getWEvlpImportantMtxIndex() const { return mWEvlpImportantMtxIdx; }
|
||||
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
|
||||
|
|
@ -82,7 +82,7 @@ private:
|
|||
/* 0x1C */ u16 mJointNum;
|
||||
/* 0x1E */ u16 mWEvlpMtxNum;
|
||||
/* 0x20 */ u8* mWEvlpMixMtxNum;
|
||||
/* 0x24 */ u16* mWEvlpMixIndex;
|
||||
/* 0x24 */ u16* mWEvlpMixMtxIndex;
|
||||
/* 0x28 */ f32* mWEvlpMixWeight;
|
||||
/* 0x2C */ Mtx* mInvJointMtx;
|
||||
/* 0x30 */ u16* mWEvlpImportantMtxIdx;
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public:
|
|||
/* 803276EC */ virtual void calcMaterial();
|
||||
/* 80327858 */ virtual void calcDiffTexMtx();
|
||||
/* 80327F40 */ virtual void viewCalc();
|
||||
/* 80328350 */ virtual ~J3DModel();
|
||||
/* 80328350 */ virtual ~J3DModel() {}
|
||||
|
||||
J3DModelData* getModelData() { return mModelData; }
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public:
|
|||
/* 803260CC */ void syncJ3DSysPointers() const;
|
||||
/* 803260F8 */ void syncJ3DSysFlags() const;
|
||||
|
||||
/* 8032617C */ virtual ~J3DModelData();
|
||||
/* 8032617C */ virtual ~J3DModelData() {}
|
||||
|
||||
J3DMaterialTable& getMaterialTable() { return mMaterialTable; }
|
||||
JUTNameTab* getMaterialName() const { return mMaterialTable.getMaterialName(); }
|
||||
|
|
@ -54,7 +54,7 @@ public:
|
|||
J3DTexture* getTexture() const { return mMaterialTable.getTexture(); }
|
||||
JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); }
|
||||
u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); }
|
||||
u16* getWEvlpMixMtxIndex() const { return mJointTree.getWEvlpMixIndex(); }
|
||||
u16* getWEvlpMixMtxIndex() const { return mJointTree.getWEvlpMixMtxIndex(); }
|
||||
f32* getWEvlpMixWeight() const { return mJointTree.getWEvlpMixWeight(); }
|
||||
u8 getWEvlpMixMtxNum(u16 idx) const { return mJointTree.getWEvlpMixMtxNum(idx); }
|
||||
u16* getWEvlpImportantMtxIndex() const { return mJointTree.getWEvlpImportantMtxIndex(); }
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public:
|
|||
u8 getEnvScaleFlag(int idx) const { return mpEvlpScaleFlagArr[idx]; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr[1]; }
|
||||
Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[1][mCurrentViewNo]; }
|
||||
Mtx* getDrawMtx(u16 idx) const { return &mpDrawMtxArr[1][mCurrentViewNo][idx]; }
|
||||
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]; }
|
||||
|
|
@ -45,6 +45,10 @@ public:
|
|||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[1][idx][mCurrentViewNo]; }
|
||||
J3DJointTree* getJointTree() const { return mJointTree; }
|
||||
|
||||
void setNrmMtx(int idx, Mtx* mtx) {
|
||||
J3DPSMtx33CopyFrom34(*mtx, mpNrmMtxArr[1][mCurrentViewNo][idx]);
|
||||
}
|
||||
|
||||
void swapDrawMtx() {
|
||||
Mtx* tmp = mpDrawMtxArr[0][mCurrentViewNo];
|
||||
mpDrawMtxArr[0][mCurrentViewNo] = mpDrawMtxArr[1][mCurrentViewNo];
|
||||
|
|
@ -70,13 +74,13 @@ private:
|
|||
/* 0x10 */ Mtx* mpWeightEvlpMtx;
|
||||
/* 0x14 */ Mtx** mpDrawMtxArr[2];
|
||||
/* 0x1C */ Mtx33** mpNrmMtxArr[2];
|
||||
/* 0x28 */ Mtx33*** mpBumpMtxArr[2];
|
||||
/* 0x24 */ Mtx33*** mpBumpMtxArr[2];
|
||||
/* 0x2C */ u32 mFlags;
|
||||
/* 0x30 */ u32 mCurrentViewNo;
|
||||
/* 0x34 */ Mtx* mpUserAnmMtx;
|
||||
|
||||
public:
|
||||
/* 803283B4 */ virtual ~J3DMtxBuffer();
|
||||
/* 803283B4 */ virtual ~J3DMtxBuffer() {}
|
||||
};
|
||||
|
||||
void J3DCalcViewBaseMtx(f32 (*param_0)[4], Vec const& param_1, f32 const (¶m_2)[3][4],
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public:
|
|||
/* 80325910 */ void initShapeNodes(J3DDrawMtxData*, J3DVertexData*);
|
||||
/* 8032597C */ void sortVcdVatCmd();
|
||||
|
||||
virtual ~J3DShapeTable();
|
||||
virtual ~J3DShapeTable() {}
|
||||
|
||||
u16 getShapeNum() const { return mShapeNum; }
|
||||
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeNodePointer[idx]; }
|
||||
|
|
|
|||
|
|
@ -89,7 +89,9 @@ public:
|
|||
/* 8032EBCC */ void normalizeWeight(int, f32*);
|
||||
|
||||
void offFlag(u32 i_flag) { mFlags &= ~i_flag; }
|
||||
bool checkFlag(u32 i_flag) { return mFlags & i_flag; }
|
||||
void setAnmCluster(J3DAnmCluster* anm) { mAnmCluster = anm; }
|
||||
void normalize(f32* i_vec) { VECNormalize((Vec*)i_vec, (Vec*)i_vec); }
|
||||
|
||||
/* 0x00 */ J3DDeformData* mDeformData;
|
||||
/* 0x04 */ J3DAnmCluster* mAnmCluster;
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ public:
|
|||
void setTexMtxLoadType(u32 type) { mFlags = (mFlags & 0xFFFF0FFF) | type; }
|
||||
bool getNBTFlag() const { return mHasNBT; }
|
||||
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
|
||||
void setBumpMtxOffset(u32 offset) { mBumpMtxOffset = offset; }
|
||||
GXVtxDescList* getVtxDesc() const { return mVtxDesc; }
|
||||
|
||||
J3DMaterial* getMaterial() const { return mMaterial; }
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ public:
|
|||
Mtx& getMtx(u16 idx) { return mpTexMtx[idx]; }
|
||||
Mtx44& getEffectMtx(u16 idx) { return mpEffectMtx[idx]; }
|
||||
u16 getNumTexMtx() { return mTexMtxNum; }
|
||||
void setMtx(u16 idx, Mtx const* mtx) { MTXCopy(*mtx, mpTexMtx[idx]); }
|
||||
|
||||
/* 0x00 */ Mtx* mpTexMtx;
|
||||
/* 0x04 */ Mtx44* mpEffectMtx;
|
||||
|
|
|
|||
|
|
@ -268,8 +268,7 @@ public:
|
|||
/* 80337010 */ u32 calcSizePatchedMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 803370A0 */ u32 calcSizeMaterialDL(J3DMaterialDLBlock const*, u32);
|
||||
|
||||
// Remove when J3DModelLoader.cc is ok
|
||||
#ifndef NON_VIRTUAL_J3DModelLoader
|
||||
|
||||
/* 803347E0 */ virtual J3DModelData* load(void const*, u32);
|
||||
/* 80334ABC */ virtual J3DMaterialTable* loadMaterialTable(void const*);
|
||||
/* 80334C20 */ virtual J3DModelData* loadBinaryDisplayList(void const*, u32);
|
||||
|
|
@ -278,32 +277,13 @@ public:
|
|||
/* 80336A98 */ virtual u32 calcLoadBinaryDisplayListSize(void const*, u32);
|
||||
/* 80336794 */ virtual u16 countMaterialNum(void const*);
|
||||
/* 80334EE0 */ virtual void setupBBoardInfo();
|
||||
/* 80336450 */ virtual ~J3DModelLoader();
|
||||
/* 8033649C */ virtual void readMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 80336498 */ virtual void readMaterial_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
/* 803364A4 */ virtual void readMaterialTable(J3DMaterialBlock const*, u32);
|
||||
/* 803364A0 */ virtual void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
/* 803364A8 */ virtual u32 calcSizeMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 803364B0 */ virtual u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32);
|
||||
#else
|
||||
/* 803347E0 */ J3DModelData* load(void const*, u32);
|
||||
/* 80334ABC */ J3DMaterialTable* loadMaterialTable(void const*);
|
||||
/* 80334C20 */ J3DModelData* loadBinaryDisplayList(void const*, u32);
|
||||
/* 803367D4 */ u32 calcLoadSize(void const*, u32);
|
||||
/* 803369A0 */ u32 calcLoadMaterialTableSize(void const*);
|
||||
/* 80336A98 */ u32 calcLoadBinaryDisplayListSize(void const*, u32);
|
||||
/* 80336794 */ u16 countMaterialNum(void const*);
|
||||
/* 80334EE0 */ void setupBBoardInfo();
|
||||
/* 80336450 */ ~J3DModelLoader();
|
||||
/* 8033649C */ void readMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 80336498 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
/* 803364A4 */ void readMaterialTable(J3DMaterialBlock const*, u32);
|
||||
/* 803364A0 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
/* 803364A8 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 803364B0 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32);
|
||||
|
||||
/* 0x00 */ void* _vtable;
|
||||
#endif
|
||||
/* 80336450 */ virtual ~J3DModelLoader() {}
|
||||
/* 8033649C */ virtual void readMaterial(J3DMaterialBlock const*, u32) {}
|
||||
/* 80336498 */ virtual void readMaterial_v21(J3DMaterialBlock_v21 const*, u32) {}
|
||||
/* 803364A4 */ virtual void readMaterialTable(J3DMaterialBlock const*, u32) {}
|
||||
/* 803364A0 */ virtual void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32) {}
|
||||
/* 803364A8 */ virtual u32 calcSizeMaterial(J3DMaterialBlock const*, u32) { return false; }
|
||||
/* 803364B0 */ virtual u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32) { return false; }
|
||||
|
||||
/* 0x04 */ J3DModelData* mpModelData;
|
||||
/* 0x08 */ J3DMaterialTable* mpMaterialTable;
|
||||
|
|
@ -319,44 +299,24 @@ public:
|
|||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
class J3DModelLoader_v21 { // : public J3DModelLoader {
|
||||
class J3DModelLoader_v21 : public J3DModelLoader {
|
||||
public:
|
||||
/* 803363F4 */ ~J3DModelLoader_v21() {}
|
||||
/* 80335890 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
/* 80335E20 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32);
|
||||
|
||||
/* 0x00 */ void* _vtable;
|
||||
/* 0x04 */ J3DModelData* mpModelData;
|
||||
/* 0x08 */ J3DMaterialTable* mpMaterialTable;
|
||||
/* 0x0C */ J3DShapeBlock const* mpShapeBlock;
|
||||
/* 0x10 */ J3DMaterialBlock const* mpMaterialBlock;
|
||||
/* 0x14 */ J3DModelHierarchy* mpModelHierarchy;
|
||||
/* 0x18 */ u8 field_0x18;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
/* 0x1A */ u16 mEnvelopeSize;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-j3d
|
||||
*
|
||||
*/
|
||||
class J3DModelLoader_v26 { // : public J3DModelLoader {
|
||||
class J3DModelLoader_v26 : public J3DModelLoader {
|
||||
public:
|
||||
/* 80336398 */ ~J3DModelLoader_v26() {}
|
||||
/* 80335614 */ void readMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 80335CE4 */ void readMaterialTable(J3DMaterialBlock const*, u32);
|
||||
/* 80336DB4 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32);
|
||||
/* 80336F60 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32);
|
||||
|
||||
/* 0x00 */ void* _vtable;
|
||||
/* 0x04 */ J3DModelData* mpModelData;
|
||||
/* 0x08 */ J3DMaterialTable* mpMaterialTable;
|
||||
/* 0x0C */ J3DShapeBlock const* mpShapeBlock;
|
||||
/* 0x10 */ J3DMaterialBlock const* mpMaterialBlock;
|
||||
/* 0x14 */ J3DModelHierarchy* mpModelHierarchy;
|
||||
/* 0x18 */ u8 field_0x18;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
/* 0x1A */ u16 mEnvelopeSize;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,7 +13,10 @@ struct TAngleConstant_;
|
|||
*/
|
||||
template<>
|
||||
struct TAngleConstant_<f32> {
|
||||
static inline f32 RADIAN_DEG360() { return 6.2831855f; }
|
||||
static f32 RADIAN_DEG090() { return 1.5707964f; }
|
||||
static f32 RADIAN_DEG180() { return 3.1415927f; }
|
||||
static f32 RADIAN_DEG360() { return 6.2831855f; }
|
||||
static f32 RADIAN_TO_DEGREE_FACTOR() { return 180.0f / RADIAN_DEG180(); }
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -72,12 +75,32 @@ struct TAtanTable {
|
|||
struct TAsinAcosTable {
|
||||
f32 table[1025];
|
||||
u8 pad[0x1C];
|
||||
|
||||
f32 acos_(f32 x) {
|
||||
if (x >= 1.0f) {
|
||||
return 0.0f;
|
||||
} else if (x <= -1.0f) {
|
||||
return TAngleConstant_<f32>::RADIAN_DEG180();
|
||||
} else if (x < 0.0f) {
|
||||
return table[(u32)(-x * 1023.5f)] + TAngleConstant_<f32>::RADIAN_DEG090();
|
||||
} else {
|
||||
return TAngleConstant_<f32>::RADIAN_DEG090() - table[(u32)(x * 1023.5f)];
|
||||
}
|
||||
}
|
||||
|
||||
f32 acosDegree(f32 x) {
|
||||
return acos_(x) * TAngleConstant_<f32>::RADIAN_TO_DEGREE_FACTOR();
|
||||
}
|
||||
};
|
||||
|
||||
namespace JMath {
|
||||
extern TSinCosTable<13, f32> sincosTable_;
|
||||
extern TAtanTable atanTable_;
|
||||
extern TAsinAcosTable asinAcosTable_;
|
||||
|
||||
inline f32 acosDegree(f32 x) {
|
||||
return asinAcosTable_.acosDegree(x);
|
||||
}
|
||||
}; // namespace JMath
|
||||
|
||||
inline f32 JMASCosShort(s16 v) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,37 @@ inline f32 JMAFastSqrt(register f32 input) {
|
|||
}
|
||||
}
|
||||
|
||||
inline f32 JMAHermiteInterpolation(register f32 p1, register f32 p2, register f32 p3,
|
||||
register f32 p4, register f32 p5, register f32 p6,
|
||||
register f32 p7) {
|
||||
register f32 ff25;
|
||||
register f32 ff31;
|
||||
register f32 ff30;
|
||||
register f32 ff29;
|
||||
register f32 ff28;
|
||||
register f32 ff27;
|
||||
register f32 ff26;
|
||||
// clang-format off
|
||||
asm {
|
||||
fsubs ff31, p1, p2
|
||||
fsubs ff30, p5, p2
|
||||
fdivs ff29, ff31, ff30
|
||||
fmuls ff28,ff29,ff29
|
||||
fadds ff25,ff29,ff29
|
||||
fsubs ff27,ff28,ff29
|
||||
fsubs ff30, p3, p6
|
||||
fmsubs ff26,ff25,ff27,ff28
|
||||
fmadds ff25,p4,ff27,p4
|
||||
fmadds ff26,ff26,ff30,p3
|
||||
fmadds ff25,p7,ff27,ff25
|
||||
fmsubs ff25,ff29,p4,ff25
|
||||
fnmsubs ff25,ff31,ff25,ff26
|
||||
|
||||
}
|
||||
// clang-format on
|
||||
return ff25;
|
||||
}
|
||||
|
||||
namespace JMath {
|
||||
|
||||
inline f32 fastReciprocal(f32 value) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -6,7 +6,8 @@
|
|||
#include "JSystem/J3DGraphAnimator/J3DCluster.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/JMath/JMATrigonometric.h"
|
||||
#include "dolphin/base/PPCArch.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
@ -20,42 +21,6 @@
|
|||
#define J3D_ASSERT(COND)
|
||||
#endif
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__13J3DDeformDataFv();
|
||||
extern "C" void offAllFlag__13J3DDeformDataFUl();
|
||||
extern "C" void deform__13J3DDeformDataFP8J3DModel();
|
||||
extern "C" void deform__13J3DDeformDataFP15J3DVertexBuffer();
|
||||
extern "C" void setAnm__13J3DDeformDataFP13J3DAnmCluster();
|
||||
extern "C" void __ct__11J3DDeformerFP13J3DDeformData();
|
||||
extern "C" void deform__11J3DDeformerFP15J3DVertexBufferUs();
|
||||
extern "C" void deform_VtxPosF32__11J3DDeformerFP15J3DVertexBufferP10J3DClusterP13J3DClusterKeyPf();
|
||||
extern "C" void deform_VtxNrmF32__11J3DDeformerFP15J3DVertexBufferP10J3DClusterP13J3DClusterKeyPf();
|
||||
extern "C" void deform__11J3DDeformerFP15J3DVertexBufferUsPf();
|
||||
extern "C" void normalizeWeight__11J3DDeformerFiPf();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void PPCSync();
|
||||
extern "C" void __cvt_fp2unsigned();
|
||||
extern "C" void _savegpr_21();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_21();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" f32 asinAcosTable___5JMath[1032];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8032E1F8-8032E230 328B38 0038+00 0/0 1/1 0/0 .text __ct__13J3DDeformDataFv */
|
||||
J3DDeformData::J3DDeformData() {
|
||||
mClusterNum = 0;
|
||||
|
|
@ -145,68 +110,169 @@ void J3DDeformer::deform(J3DVertexBuffer* buffer, u16 param_1) {
|
|||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456470-80456474 004A70 0004+00 2/2 0/0 0/0 .sdata2 @830 */
|
||||
SECTION_SDATA2 static f32 lit_830 = 1.0f;
|
||||
|
||||
/* 80456474-80456478 004A74 0004+00 1/1 0/0 0/0 .sdata2 @840 */
|
||||
SECTION_SDATA2 static f32 lit_840 = 1.0f;
|
||||
|
||||
/* 80456478-8045647C 004A78 0004+00 1/1 0/0 0/0 .sdata2 None */
|
||||
SECTION_SDATA2 static f32 data_80456478 = -1.0f;
|
||||
|
||||
/* 8045647C-80456480 004A7C 0004+00 3/3 0/0 0/0 .sdata2 @866 */
|
||||
SECTION_SDATA2 static u8 lit_866[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 8032E4A4-8032E60C 328DE4 0168+00 1/1 0/0 0/0 .text
|
||||
* deform_VtxPosF32__11J3DDeformerFP15J3DVertexBufferP10J3DClusterP13J3DClusterKeyPf */
|
||||
void J3DDeformer::deform_VtxPosF32(J3DVertexBuffer* param_0, J3DCluster* param_1,
|
||||
J3DClusterKey* param_2, f32* param_3) {
|
||||
// NONMATCHING
|
||||
void J3DDeformer::deform_VtxPosF32(J3DVertexBuffer* i_buffer, J3DCluster* i_cluster,
|
||||
J3DClusterKey* i_key, f32* i_weights) {
|
||||
int posNum = i_cluster->mPosNum;
|
||||
int keyNum = i_cluster->mKeyNum;
|
||||
f32* vtxPosArray = (f32*)i_buffer->getVtxPosArrayPointer(0);
|
||||
f32* deformVtxPos = mDeformData->getVtxPos();
|
||||
u16* iVar9 = i_cluster->field_0x18;
|
||||
|
||||
for (int i = 0; i < posNum; i++) {
|
||||
int index = iVar9[i] * 3;
|
||||
vtxPosArray[index] = 0.0f;
|
||||
vtxPosArray[index + 1] = 0.0f;
|
||||
vtxPosArray[index + 2] = 0.0f;
|
||||
}
|
||||
|
||||
f32 local_58[2] = {1.0f, -1.0f};
|
||||
|
||||
for (u16 i = 0; i < posNum; i++) {
|
||||
int index = i_cluster->field_0x18[i] * 3;
|
||||
for (u16 j = 0; j < keyNum; j++) {
|
||||
int uVar7 = ((u16*)i_key[j].field_0x4)[i];
|
||||
f32* deform = &deformVtxPos[(uVar7 & ~0xE000) * 3];
|
||||
f32 deform0 = deform[0];
|
||||
f32 deform1 = deform[1];
|
||||
f32 deform2 = deform[2];
|
||||
deform0 *= local_58[((uVar7 & 0x8000) >> 0xF)];
|
||||
deform1 *= local_58[((uVar7 & 0x4000) >> 0xE)];
|
||||
deform2 *= local_58[((uVar7 & 0x2000) >> 0xD)];
|
||||
vtxPosArray[index] += deform0 * i_weights[j];
|
||||
vtxPosArray[index + 1] += deform1 * i_weights[j];
|
||||
vtxPosArray[index + 2] += deform2 * i_weights[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456480-80456484 004A80 0004+00 1/1 0/0 0/0 .sdata2 @1020 */
|
||||
SECTION_SDATA2 static f32 lit_1020 = -1.0f;
|
||||
|
||||
/* 80456484-80456488 004A84 0004+00 1/1 0/0 0/0 .sdata2 @1021 */
|
||||
SECTION_SDATA2 static f32 lit_1021 = 3.1415927410125732f;
|
||||
|
||||
/* 80456488-8045648C 004A88 0004+00 1/1 0/0 0/0 .sdata2 @1022 */
|
||||
SECTION_SDATA2 static f32 lit_1022 = 1023.5f;
|
||||
|
||||
/* 8045648C-80456490 004A8C 0004+00 1/1 0/0 0/0 .sdata2 @1023 */
|
||||
SECTION_SDATA2 static f32 lit_1023 = 1.5707963705062866f;
|
||||
|
||||
/* 80456490-80456494 004A90 0004+00 1/1 0/0 0/0 .sdata2 @1024 */
|
||||
SECTION_SDATA2 static f32 lit_1024 = 57.2957763671875f;
|
||||
|
||||
/* 80456494-80456498 004A94 0004+00 1/1 0/0 0/0 .sdata2 @1025 */
|
||||
SECTION_SDATA2 static f32 lit_1025 = 180.0f;
|
||||
|
||||
/* 80456498-804564A0 004A98 0008+00 1/1 0/0 0/0 .sdata2 @1027 */
|
||||
SECTION_SDATA2 static f64 lit_1027 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 8032E60C-8032EAB4 328F4C 04A8+00 1/1 0/0 0/0 .text
|
||||
* deform_VtxNrmF32__11J3DDeformerFP15J3DVertexBufferP10J3DClusterP13J3DClusterKeyPf */
|
||||
void J3DDeformer::deform_VtxNrmF32(J3DVertexBuffer* param_0, J3DCluster* param_1,
|
||||
J3DClusterKey* param_2, f32* param_3) {
|
||||
// NONMATCHING
|
||||
// NONMATCHING one missing mr
|
||||
void J3DDeformer::deform_VtxNrmF32(J3DVertexBuffer* i_buffer, J3DCluster* i_cluster,
|
||||
J3DClusterKey* i_key, f32* i_weights) {
|
||||
f32* vtxNrmArray = (f32*)i_buffer->getVtxNrmArrayPointer(0);
|
||||
f32* deformVtxNrm = mDeformData->getVtxNrm();
|
||||
f32* iVar13 = field_0xc;
|
||||
u16 keyNum = i_cluster->mKeyNum;
|
||||
int uVar2 = i_cluster->field_0x16;
|
||||
|
||||
for (u16 i = 0; i < i_cluster->field_0x14; i++) {
|
||||
int index = i * 3;
|
||||
iVar13[index] = 0.0f;
|
||||
iVar13[index + 1] = 0.0f;
|
||||
iVar13[index + 2] = 0.0f;
|
||||
for (u16 j = 0; j < keyNum; j++) {
|
||||
int uVar3 = ((u16*)i_key[j].field_0x8)[i];
|
||||
f32 deform0, deform1, deform2;
|
||||
if (uVar3 & 0x8000) {
|
||||
deform0 = -deformVtxNrm[(uVar3 & ~0xE000) * 3];
|
||||
} else {
|
||||
deform0 = deformVtxNrm[(uVar3 & ~0xE000) * 3];
|
||||
}
|
||||
if (uVar3 & 0x4000) {
|
||||
deform1 = -deformVtxNrm[(uVar3 & ~0xE000) * 3 + 1];
|
||||
} else {
|
||||
deform1 = deformVtxNrm[(uVar3 & ~0xE000) * 3 + 1];
|
||||
}
|
||||
if (uVar3 & 0x2000) {
|
||||
deform2 = -deformVtxNrm[(uVar3 & ~0xE000) * 3 + 2];
|
||||
} else {
|
||||
deform2 = deformVtxNrm[(uVar3 & ~0xE000) * 3 + 2];
|
||||
}
|
||||
iVar13[index] += deform0 * i_weights[j];
|
||||
iVar13[index + 1] += deform1 * i_weights[j];
|
||||
iVar13[index + 2] += deform2 * i_weights[j];
|
||||
}
|
||||
normalize(&iVar13[index]);
|
||||
}
|
||||
|
||||
for (u16 i = 0; i < uVar2; i++) {
|
||||
J3DClusterVertex* clusterVtx = &i_cluster->mClusterVertex[i];
|
||||
Vec vec;
|
||||
vec.x = 0.0f;
|
||||
vec.y = 0.0f;
|
||||
vec.z = 0.0f;
|
||||
f32 scale = 1.0f / clusterVtx->mNum;
|
||||
for (u16 j = 0; j < clusterVtx->mNum; j++) {
|
||||
int index = clusterVtx->field_0x4[j] * 3;
|
||||
vec.x += scale * iVar13[index];
|
||||
vec.y += scale * iVar13[index + 1];
|
||||
vec.z += scale * iVar13[index + 2];
|
||||
}
|
||||
normalize((f32*)&vec);
|
||||
|
||||
for (u16 j = 0; j < clusterVtx->mNum; j++) {
|
||||
u16 tmp = clusterVtx->field_0x8[j];
|
||||
if (tmp == 0xffff) {
|
||||
continue;
|
||||
}
|
||||
int index = tmp * 3;
|
||||
int index2 = clusterVtx->field_0x4[j] * 3;
|
||||
|
||||
f32 dot = vec.x * iVar13[index2] + vec.y * iVar13[index2 + 1]
|
||||
+ vec.z * iVar13[index2 + 2];
|
||||
f32 angle;
|
||||
if (dot >= 1.0f) {
|
||||
angle = 0.0f;
|
||||
} else if (dot > -1.0f) {
|
||||
angle = JMath::acosDegree(dot);
|
||||
} else {
|
||||
angle = 180.0f;
|
||||
}
|
||||
|
||||
if (angle <= i_cluster->mMinAngle) {
|
||||
vtxNrmArray[index] = vec.x;
|
||||
vtxNrmArray[index + 1] = vec.y;
|
||||
vtxNrmArray[index + 2] = vec.z;
|
||||
} else if (angle > i_cluster->mMaxAngle) {
|
||||
int index3 = clusterVtx->field_0x4[j];
|
||||
Vec* iVar13a = (Vec*)iVar13;
|
||||
vtxNrmArray[index] = iVar13a[index3].x;
|
||||
vtxNrmArray[index + 1] = iVar13a[index3].y;
|
||||
vtxNrmArray[index + 2] = iVar13a[index3].z;
|
||||
} else {
|
||||
f32 weight1 = (angle - i_cluster->mMinAngle)
|
||||
/ (i_cluster->mMaxAngle - i_cluster->mMinAngle);
|
||||
f32 weight2 = 1.0f - weight1;
|
||||
vtxNrmArray[index] = weight1 * iVar13[index2] + weight2 * vec.x;
|
||||
vtxNrmArray[index + 1] = weight1 * iVar13[index2 + 1] + weight2 * vec.y;
|
||||
vtxNrmArray[index + 2] = weight1 * iVar13[index2 + 2] + weight2 * vec.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8032EAB4-8032EBCC 3293F4 0118+00 1/1 0/0 0/0 .text deform__11J3DDeformerFP15J3DVertexBufferUsPf
|
||||
*/
|
||||
void J3DDeformer::deform(J3DVertexBuffer* param_0, u16 param_1, f32* param_2) {
|
||||
// NONMATCHING
|
||||
void J3DDeformer::deform(J3DVertexBuffer* i_buffer, u16 param_1, f32* i_weights) {
|
||||
if (checkFlag(2) && i_buffer->getVertexData()->getVtxPosType() == 4) {
|
||||
J3DCluster* cluster = mDeformData->getClusterPointer(param_1);
|
||||
u16 offset = 0;
|
||||
for (u16 i = 0; i < param_1; i++) {
|
||||
offset += mDeformData->getClusterPointer(i)->mKeyNum + 1;
|
||||
}
|
||||
J3DClusterKey* clusterKey = mDeformData->getClusterKeyPointer(offset);
|
||||
|
||||
normalizeWeight(cluster->mKeyNum, i_weights);
|
||||
deform_VtxPosF32(i_buffer, cluster, clusterKey, i_weights);
|
||||
if (checkFlag(1) && cluster->mFlags != 0 && i_buffer->getVertexData()->getVtxNrmType() == 4)
|
||||
{
|
||||
deform_VtxNrmF32(i_buffer, cluster, clusterKey, i_weights);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8032EBCC-8032EC28 32950C 005C+00 1/1 0/0 0/0 .text normalizeWeight__11J3DDeformerFiPf
|
||||
*/
|
||||
void J3DDeformer::normalizeWeight(int param_0, f32* param_1) {
|
||||
// NONMATCHING
|
||||
void J3DDeformer::normalizeWeight(int i_keyNum, f32* i_weights) {
|
||||
f32 totalWeight = 0.0f;
|
||||
for (u16 i = 0; i < i_keyNum; i++) {
|
||||
totalWeight += i_weights[i];
|
||||
}
|
||||
f32 scale = 1.0f / totalWeight;
|
||||
for (u16 i = 0; i < i_keyNum; i++) {
|
||||
i_weights[i] *= scale;
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "dol2asm.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
/* 8032EC28-8032ECAC 329568 0084+00 0/0 1/1 0/0 .text
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
/* 80325A18-80325A9C 320358 0084+00 0/0 1/1 0/0 .text __ct__12J3DJointTreeFv */
|
||||
J3DJointTree::J3DJointTree()
|
||||
: mHierarchy(NULL), mFlags(0), mModelDataType(0), mRootNode(NULL), mBasicMtxCalc(NULL),
|
||||
mJointNodePointer(NULL), mJointNum(0), mWEvlpMtxNum(0), mWEvlpMixMtxNum(0), mWEvlpMixIndex(0),
|
||||
mWEvlpMixWeight(0), mInvJointMtx(NULL), mWEvlpImportantMtxIdx(0), field_0x40(0),
|
||||
mJointName(NULL) {}
|
||||
mJointNodePointer(NULL), mJointNum(0), mWEvlpMtxNum(0), mWEvlpMixMtxNum(0),
|
||||
mWEvlpMixMtxIndex(0), mWEvlpMixWeight(0), mInvJointMtx(NULL), mWEvlpImportantMtxIdx(0),
|
||||
field_0x40(0), mJointName(NULL) {}
|
||||
|
||||
/* 80325A9C-80325C00 3203DC 0164+00 1/0 2/2 0/0 .text
|
||||
* makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable
|
||||
|
|
@ -86,7 +86,7 @@ void J3DJointTree::findImportantMtxIndex() {
|
|||
const s32 wEvlpMtxNum = getWEvlpMtxNum();
|
||||
u32 tableIdx = 0;
|
||||
const u16 drawFullWgtMtxNum = getDrawFullWgtMtxNum();
|
||||
const u16 * wEvlpMixIndex = getWEvlpMixIndex();
|
||||
const u16 * wEvlpMixIndex = getWEvlpMixMtxIndex();
|
||||
const f32 * wEvlpMixWeight = getWEvlpMixWeight();
|
||||
u16 * wEvlpImportantMtxIdx = getWEvlpImportantMtxIndex();
|
||||
|
||||
|
|
@ -132,6 +132,3 @@ void J3DJointTree::calc(J3DMtxBuffer* pMtxBuffer, Vec const& scale, f32 const (&
|
|||
void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* mtxBuffer) {
|
||||
J3DMtxCalc::mMtxBuffer = mtxBuffer;
|
||||
}
|
||||
|
||||
/* 80325D24-80325D88 320664 0064+00 1/0 0/0 0/0 .text __dt__12J3DJointTreeFv */
|
||||
J3DJointTree::~J3DJointTree() {}
|
||||
|
|
@ -7,46 +7,6 @@
|
|||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void clear__16J3DMaterialTableFv();
|
||||
extern "C" void __ct__16J3DMaterialTableFv();
|
||||
extern "C" void __dt__16J3DMaterialTableFv();
|
||||
extern "C" void removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor();
|
||||
extern "C" void removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern();
|
||||
extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void createTexMtxForAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void entryMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor();
|
||||
extern "C" void entryTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern();
|
||||
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __as__13J3DTexMtxInfoFRC13J3DTexMtxInfo();
|
||||
extern "C" void setMatColorAnm__14J3DMaterialAnmFiP14J3DMatColorAnm();
|
||||
extern "C" void setTexMtxAnm__14J3DMaterialAnmFiP12J3DTexMtxAnm();
|
||||
extern "C" void setTexNoAnm__14J3DMaterialAnmFiP11J3DTexNoAnm();
|
||||
extern "C" void setTevColorAnm__14J3DMaterialAnmFiP14J3DTevColorAnm();
|
||||
extern "C" void setTevKColorAnm__14J3DMaterialAnmFiP15J3DTevKColorAnm();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" extern void* __vt__11J3DTexNoAnm[3];
|
||||
|
||||
/* 8032F5A8-8032F5D0 329EE8 0028+00 0/0 1/1 0/0 .text clear__16J3DMaterialTableFv */
|
||||
void J3DMaterialTable::clear() {
|
||||
|
|
@ -250,8 +210,7 @@ int J3DMaterialTable::entryTexNoAnimator(J3DAnmTexPattern* param_1) {
|
|||
|
||||
/* 8032FCC4-8032FE70 32A604 01AC+00 0/0 14/14 6/6 .text
|
||||
* entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey */
|
||||
// getUpdateTexMtxID u8 issue / getSRTCenter
|
||||
#ifdef NONMATCHING
|
||||
// NONMATCHING getUpdateTexMtxID u8 issue
|
||||
int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_1) {
|
||||
int rv = 0;
|
||||
u16 materialNum = param_1->getUpdateMaterialNum();
|
||||
|
|
@ -275,10 +234,13 @@ int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_1) {
|
|||
material->getTexCoord(texMtxID)->setTexGenMtx(texMtxID * 3 + 30);
|
||||
}
|
||||
J3DTexMtxInfo& iVar3 = material->getTexMtx(texMtxID)->getTexMtxInfo();
|
||||
iVar3.mInfo = (iVar3.mInfo & 0x3f)| (param_1->getTexMtxCalcType() << 7);
|
||||
iVar3.mCenter.x = param_1->getSRTCenter(i)->x;
|
||||
iVar3.mCenter.y = param_1->getSRTCenter(i)->y;
|
||||
iVar3.mCenter.z = param_1->getSRTCenter(i)->z;
|
||||
iVar3.mInfo = (iVar3.mInfo & 0x3f) | (param_1->getTexMtxCalcType() << 7);
|
||||
Vec* vec = param_1->getSRTCenter(i);
|
||||
iVar3.mCenter.x = vec->x;
|
||||
vec = param_1->getSRTCenter(i);
|
||||
iVar3.mCenter.y = vec->y;
|
||||
vec = param_1->getSRTCenter(i);
|
||||
iVar3.mCenter.z = vec->z;
|
||||
J3DTexMtxAnm texMtxAnm(i, param_1);
|
||||
materialAnm->setTexMtxAnm(texMtxID, &texMtxAnm);
|
||||
}
|
||||
|
|
@ -287,11 +249,6 @@ int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_1) {
|
|||
}
|
||||
return rv;
|
||||
}
|
||||
#else
|
||||
int J3DMaterialTable::entryTexMtxAnimator(J3DAnmTextureSRTKey* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 8032FE70-8032FFEC 32A7B0 017C+00 0/0 10/10 4/4 .text
|
||||
* entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey */
|
||||
|
|
|
|||
|
|
@ -6,106 +6,8 @@
|
|||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void initialize__8J3DModelFv();
|
||||
extern "C" void entryModelData__8J3DModelFP12J3DModelDataUlUl();
|
||||
extern "C" void createShapePacket__8J3DModelFP12J3DModelData();
|
||||
extern "C" void createMatPacket__8J3DModelFP12J3DModelDataUl();
|
||||
extern "C" void newDifferedDisplayList__8J3DModelFUl();
|
||||
extern "C" void lock__8J3DModelFv();
|
||||
extern "C" void unlock__8J3DModelFv();
|
||||
extern "C" void calcMaterial__8J3DModelFv();
|
||||
extern "C" void calcDiffTexMtx__8J3DModelFv();
|
||||
extern "C" void diff__8J3DModelFv();
|
||||
extern "C" void setDeformData__8J3DModelFP13J3DDeformDataUl();
|
||||
extern "C" void setSkinDeform__8J3DModelFP13J3DSkinDeformUl();
|
||||
extern "C" void calcAnmMtx__8J3DModelFv();
|
||||
extern "C" void calcWeightEnvelopeMtx__8J3DModelFv();
|
||||
extern "C" void update__8J3DModelFv();
|
||||
extern "C" void calc__8J3DModelFv();
|
||||
extern "C" void entry__8J3DModelFv();
|
||||
extern "C" void viewCalc__8J3DModelFv();
|
||||
extern "C" void calcNrmMtx__8J3DModelFv();
|
||||
extern "C" void calcBumpMtx__8J3DModelFv();
|
||||
extern "C" void calcBBoardMtx__8J3DModelFv();
|
||||
extern "C" void prepareShapePackets__8J3DModelFv();
|
||||
extern "C" void __dt__8J3DModelFv();
|
||||
extern "C" void __dt__12J3DMtxBufferFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void setVertexData__15J3DVertexBufferFP13J3DVertexData();
|
||||
extern "C" void __dt__15J3DVertexBufferFv();
|
||||
extern "C" void copyLocalVtxArray__15J3DVertexBufferFUl();
|
||||
extern "C" void allocTransformedVtxPosArray__15J3DVertexBufferFv();
|
||||
extern "C" void allocTransformedVtxNrmArray__15J3DVertexBufferFv();
|
||||
extern "C" void single_To_Double__17J3DDisplayListObjFv();
|
||||
extern "C" void newDisplayList__13J3DDrawPacketFUl();
|
||||
extern "C" void newSingleDisplayList__13J3DDrawPacketFUl();
|
||||
extern "C" void __ct__12J3DMatPacketFv();
|
||||
extern "C" void __dt__12J3DMatPacketFv();
|
||||
extern "C" void addShapePacket__12J3DMatPacketFP14J3DShapePacket();
|
||||
extern "C" void __ct__14J3DShapePacketFv();
|
||||
extern "C" void __dt__14J3DShapePacketFv();
|
||||
extern "C" void newDifferedDisplayList__14J3DShapePacketFUl();
|
||||
extern "C" void calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f();
|
||||
extern "C" void countDLSize__11J3DMaterialFv();
|
||||
extern "C" void newSharedDisplayList__11J3DMaterialFUl();
|
||||
extern "C" void newSingleSharedDisplayList__11J3DMaterialFUl();
|
||||
extern "C" void syncJ3DSysFlags__12J3DModelDataCFv();
|
||||
extern "C" void initialize__12J3DMtxBufferFv();
|
||||
extern "C" void create__12J3DMtxBufferFP12J3DModelDataUl();
|
||||
extern "C" void calcWeightEnvelopeMtx__12J3DMtxBufferFv();
|
||||
extern "C" void calcDrawMtx__12J3DMtxBufferFUlRC3VecRA3_A4_Cf();
|
||||
extern "C" void calcNrmMtx__12J3DMtxBufferFv();
|
||||
extern "C" void calcBBoardMtx__12J3DMtxBufferFv();
|
||||
extern "C" void J3DCalcViewBaseMtx__FPA4_fRC3VecRA3_A4_CfPA4_f();
|
||||
extern "C" void initSkinInfo__13J3DSkinDeformFP12J3DModelData();
|
||||
extern "C" void initMtxIndexArray__13J3DSkinDeformFP12J3DModelData();
|
||||
extern "C" void changeFastSkinDL__13J3DSkinDeformFP12J3DModelData();
|
||||
extern "C" void transformVtxPosNrm__13J3DSkinDeformFP12J3DModelData();
|
||||
extern "C" void deform__13J3DSkinDeformFP8J3DModel();
|
||||
extern "C" void calc__15J3DVtxColorCalcFP8J3DModel();
|
||||
extern "C" void offAllFlag__13J3DDeformDataFUl();
|
||||
extern "C" void deform__13J3DDeformDataFP8J3DModel();
|
||||
extern "C" void entryIn__8J3DJointFv();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void _savegpr_23();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_23();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456428-80456430 004A28 0004+04 1/1 0/0 0/0 .sdata2 @896 */
|
||||
SECTION_SDATA2 static f32 lit_896[1 + 1 /* padding */] = {
|
||||
1.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80327100-80327184 321A40 0084+00 0/0 3/3 0/0 .text initialize__8J3DModelFv */
|
||||
void J3DModel::initialize() {
|
||||
mModelData = NULL;
|
||||
|
|
@ -131,27 +33,6 @@ void J3DModel::initialize() {
|
|||
mUnkCalc2 = NULL;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CED20-803CED44 02BE40 0024+00 1/1 3/3 0/0 .data __vt__8J3DModel */
|
||||
SECTION_DATA extern void* __vt__8J3DModel[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)update__8J3DModelFv,
|
||||
(void*)entry__8J3DModelFv,
|
||||
(void*)calc__8J3DModelFv,
|
||||
(void*)calcMaterial__8J3DModelFv,
|
||||
(void*)calcDiffTexMtx__8J3DModelFv,
|
||||
(void*)viewCalc__8J3DModelFv,
|
||||
(void*)__dt__8J3DModelFv,
|
||||
};
|
||||
|
||||
/* 803CED44-803CED50 02BE64 000C+00 2/2 0/0 0/0 .data __vt__12J3DMtxBuffer */
|
||||
SECTION_DATA extern void* __vt__12J3DMtxBuffer[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DMtxBufferFv,
|
||||
};
|
||||
|
||||
/* 80327184-80327300 321AC4 017C+00 0/0 3/3 0/0 .text
|
||||
* entryModelData__8J3DModelFP12J3DModelDataUlUl */
|
||||
s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 modelFlag, u32 mtxBufferFlag) {
|
||||
|
|
@ -373,38 +254,29 @@ void J3DModel::calcMaterial() {
|
|||
}
|
||||
|
||||
/* 80327858-803279A0 322198 0148+00 1/0 0/0 0/0 .text calcDiffTexMtx__8J3DModelFv */
|
||||
#if defined NON_MATCHING
|
||||
// NONMATCHING regalloc
|
||||
void J3DModel::calcDiffTexMtx() {
|
||||
// regalloc
|
||||
j3dSys.setModel(this);
|
||||
|
||||
u16 num;
|
||||
num = getModelData()->getMaterialNum();
|
||||
for (u16 i = 0; i < num; i++) {
|
||||
j3dSys.setMatPacket(getMatPacket(i));
|
||||
J3DMaterial* materialNode = getModelData()->getMaterialNodePointer(i);
|
||||
for (u16 num = mModelData->getMaterialNum(), i = 0; i < num; i++) {
|
||||
j3dSys.setMatPacket(&mMatPacket[i]);
|
||||
J3DMaterial* materialNode = mModelData->getMaterialNodePointer(i);
|
||||
materialNode->calcDiffTexMtx(getAnmMtx(materialNode->getJoint()->getJntNo()));
|
||||
}
|
||||
|
||||
num = getModelData()->getShapeNum();
|
||||
for (u16 i = 0; i < num; i++) {
|
||||
for (u16 num = mModelData->getShapeNum(), i = 0; i < num; i++) {
|
||||
J3DShapePacket* shapePacket = getShapePacket(i);
|
||||
J3DTexGenBlock* texGenBlock =
|
||||
getModelData()->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
|
||||
mModelData->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
|
||||
for (u16 j = 0; (int)j < 8; j++) {
|
||||
J3DTexMtx* texMtxNode = texGenBlock->getTexMtx(j);
|
||||
J3DTexMtxObj* texMtxObj = shapePacket->getTexMtxObj();
|
||||
if (texMtxNode != NULL && texMtxObj != NULL) {
|
||||
MTXCopy(texMtxNode->getMtx(), texMtxObj->getMtx(j));
|
||||
texMtxObj->setMtx(j, &texMtxNode->getMtx());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
void J3DModel::calcDiffTexMtx() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 803279A0-80327A2C 3222E0 008C+00 0/0 2/2 0/0 .text diff__8J3DModelFv */
|
||||
void J3DModel::diff() {
|
||||
|
|
@ -668,12 +540,3 @@ void J3DModel::prepareShapePackets() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80328350-803283B4 322C90 0064+00 1/0 0/0 0/0 .text __dt__8J3DModelFv */
|
||||
J3DModel::~J3DModel() {}
|
||||
|
||||
/* 803283B4-803283FC 322CF4 0048+00 1/0 0/0 0/0 .text __dt__12J3DMtxBufferFv */
|
||||
extern "C" void __dt__12J3DMtxBufferFv() {
|
||||
// asm J3DMtxBuffer::~J3DMtxBuffer() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
|
@ -6,47 +6,8 @@
|
|||
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void clear__12J3DModelDataFv();
|
||||
extern "C" void __ct__12J3DModelDataFv();
|
||||
extern "C" void newSharedDisplayList__12J3DModelDataFUl();
|
||||
extern "C" void indexToPtr__12J3DModelDataFv();
|
||||
extern "C" void makeSharedDL__12J3DModelDataFv();
|
||||
extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f();
|
||||
extern "C" void syncJ3DSysPointers__12J3DModelDataCFv();
|
||||
extern "C" void syncJ3DSysFlags__12J3DModelDataCFv();
|
||||
extern "C" void __dt__13J3DShapeTableFv();
|
||||
extern "C" void __dt__12J3DModelDataFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__13J3DVertexDataFv();
|
||||
extern "C" void __dt__14J3DDrawMtxDataFv();
|
||||
extern "C" void countDLSize__11J3DMaterialFv();
|
||||
extern "C" void newSharedDisplayList__11J3DMaterialFUl();
|
||||
extern "C" void newSingleSharedDisplayList__11J3DMaterialFUl();
|
||||
extern "C" void __ct__12J3DJointTreeFv();
|
||||
extern "C" void __ct__16J3DMaterialTableFv();
|
||||
extern "C" void __dt__16J3DMaterialTableFv();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__12J3DJointTree[4 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80325D88-80325DA0 3206C8 0018+00 1/1 2/2 0/0 .text clear__12J3DModelDataFv */
|
||||
void J3DModelData::clear() {
|
||||
mpRawData = 0;
|
||||
|
|
@ -55,21 +16,6 @@ void J3DModelData::clear() {
|
|||
mbHasBillboard = 0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CED08-803CED14 02BE28 000C+00 3/3 0/0 0/0 .data __vt__13J3DShapeTable */
|
||||
SECTION_DATA extern void* __vt__13J3DShapeTable[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__13J3DShapeTableFv,
|
||||
};
|
||||
|
||||
/* 803CED14-803CED20 02BE34 000C+00 2/2 0/0 0/0 .data __vt__12J3DModelData */
|
||||
SECTION_DATA extern void* __vt__12J3DModelData[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DModelDataFv,
|
||||
};
|
||||
|
||||
/* 80325DA0-80325E14 3206E0 0074+00 0/0 2/2 0/0 .text __ct__12J3DModelDataFv */
|
||||
J3DModelData::J3DModelData() {
|
||||
clear();
|
||||
|
|
@ -169,14 +115,3 @@ void J3DModelData::syncJ3DSysFlags() const {
|
|||
j3dSys.offFlag(J3DSysFlag_PostTexMtx);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80326134-8032617C 320A74 0048+00 1/0 0/0 0/0 .text __dt__13J3DShapeTableFv */
|
||||
extern "C" void __dt__13J3DShapeTableFv() {
|
||||
// asm J3DShapeTable::~J3DShapeTable() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8032617C-80326214 320ABC 0098+00 1/0 0/0 0/0 .text __dt__12J3DModelDataFv */
|
||||
J3DModelData::~J3DModelData() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
|
@ -4,55 +4,8 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void initialize__12J3DMtxBufferFv();
|
||||
extern "C" void create__12J3DMtxBufferFP12J3DModelDataUl();
|
||||
extern "C" void createAnmMtx__12J3DMtxBufferFP12J3DModelData();
|
||||
extern "C" void createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData();
|
||||
extern "C" void setNoUseDrawMtx__12J3DMtxBufferFv();
|
||||
extern "C" void createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl();
|
||||
extern "C" void createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl();
|
||||
extern "C" void calcWeightEnvelopeMtx__12J3DMtxBufferFv();
|
||||
extern "C" void calcDrawMtx__12J3DMtxBufferFUlRC3VecRA3_A4_Cf();
|
||||
extern "C" void calcNrmMtx__12J3DMtxBufferFv();
|
||||
extern "C" void calcBBoardMtx__12J3DMtxBufferFv();
|
||||
extern "C" void J3DCalcViewBaseMtx__FPA4_fRC3VecRA3_A4_CfPA4_f();
|
||||
extern "C" u8 sNoUseDrawMtx__12J3DMtxBuffer[48];
|
||||
extern "C" u8 sNoUseNrmMtx__12J3DMtxBuffer[36 + 4 /* padding */];
|
||||
extern "C" void* sNoUseDrawMtxPtr__12J3DMtxBuffer;
|
||||
extern "C" void* sNoUseNrmMtxPtr__12J3DMtxBuffer;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void* __nwa__FUli();
|
||||
extern "C" void J3DCalcBBoardMtx__FPA4_f();
|
||||
extern "C" void J3DCalcYBBoardMtx__FPA4_f();
|
||||
extern "C" void J3DPSCalcInverseTranspose__FPA4_fPA3_f();
|
||||
extern "C" void J3DPSMtxArrayConcat__FPA4_fPA4_fPA4_fUl();
|
||||
extern "C" void countBumpMtxNum__8J3DShapeCFv();
|
||||
extern "C" void _savegpr_19();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_19();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80326214-80326258 320B54 0044+00 0/0 1/1 0/0 .text initialize__12J3DMtxBufferFv */
|
||||
void J3DMtxBuffer::initialize() {
|
||||
|
|
@ -156,7 +109,6 @@ s32 J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* p_modelData) {
|
|||
return kJ3DError_Success;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804371C0-804371F0 063EE0 0030+00 1/0 0/0 0/0 .bss sNoUseDrawMtx__12J3DMtxBuffer */
|
||||
Mtx J3DMtxBuffer::sNoUseDrawMtx;
|
||||
|
||||
|
|
@ -226,13 +178,71 @@ s32 J3DMtxBuffer::createDoubleDrawMtx(J3DModelData* p_modelData, u32 num) {
|
|||
|
||||
/* 80326664-803268D4 320FA4 0270+00 1/1 0/0 0/0 .text
|
||||
* createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
s32 J3DMtxBuffer::createBumpMtxArray(J3DModelData* param_0, u32 param_1) {
|
||||
// NONMATCHING
|
||||
s32 J3DMtxBuffer::createBumpMtxArray(J3DModelData* i_modelData, u32 param_1) {
|
||||
if (i_modelData->getModelDataType() == 0) {
|
||||
u32 bumpMtxNum = 0;
|
||||
u16 materialCount = 0;
|
||||
u16 materialNum = i_modelData->getMaterialNum();
|
||||
for (u16 j = 0; j < materialNum; j++) {
|
||||
J3DMaterial* material = i_modelData->getMaterialNodePointer(j);
|
||||
if (material->getNBTScale()->mbHasScale == true) {
|
||||
bumpMtxNum += material->getShape()->countBumpMtxNum();
|
||||
materialCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((u16)bumpMtxNum != 0 && param_1 != 0) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpBumpMtxArr[i] = new Mtx33**[(u16)materialCount];
|
||||
if (mpBumpMtxArr[i] == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
u32 offset = 0;
|
||||
u16 materialNum = i_modelData->getMaterialNum();
|
||||
for (u16 j = 0; j < materialNum; j++) {
|
||||
J3DMaterial* material = i_modelData->getMaterialNodePointer(j);
|
||||
if (material->getNBTScale()->mbHasScale == true) {
|
||||
mpBumpMtxArr[i][offset] = new Mtx33*[param_1];
|
||||
if (mpBumpMtxArr[i][offset] == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
material->getShape()->setBumpMtxOffset(offset);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
u32 offset = 0;
|
||||
u16 materialNum = i_modelData->getMaterialNum();
|
||||
for (u16 j = 0; j < materialNum; j++) {
|
||||
J3DMaterial* material = i_modelData->getMaterialNodePointer(j);
|
||||
if (material->getNBTScale()->mbHasScale == true) {
|
||||
for (int k = 0; k < param_1; k++) {
|
||||
mpBumpMtxArr[i][offset][k] = new (0x20) Mtx33[i_modelData->getDrawMtxNum()];
|
||||
if (mpBumpMtxArr[i][offset][k] == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (materialCount != 0) {
|
||||
i_modelData->setBumpFlag(1);
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450978-80450980 0003F8 0008+00 1/1 0/0 0/0 .sdata J3DUnit01 */
|
||||
SECTION_SDATA static u8 J3DUnit01[8] = {
|
||||
static u8 J3DUnit01[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
};
|
||||
|
||||
|
|
@ -243,32 +253,99 @@ void J3DMtxBuffer::calcWeightEnvelopeMtx() {
|
|||
|
||||
/* 80326ACC-80326D3C 32140C 0270+00 0/0 1/1 0/0 .text
|
||||
* calcDrawMtx__12J3DMtxBufferFUlRC3VecRA3_A4_Cf */
|
||||
void J3DMtxBuffer::calcDrawMtx(u32 param_0, Vec const& param_1, f32 const (¶m_2)[3][4]) {
|
||||
// NONMATCHING
|
||||
void J3DMtxBuffer::calcDrawMtx(u32 param_0, Vec const& param_1, Mtx const& param_2) {
|
||||
MtxP viewMtx;
|
||||
Mtx viewBaseMtx;
|
||||
u16 fullWgtNum;
|
||||
|
||||
switch (param_0) {
|
||||
case 0:
|
||||
viewMtx = j3dSys.getViewMtx();
|
||||
fullWgtNum = mJointTree->getDrawFullWgtMtxNum();
|
||||
for (u16 i = 0; i < fullWgtNum; i++) {
|
||||
MTXConcat(viewMtx, getAnmMtx(mJointTree->getDrawMtxIndex(i)), *getDrawMtx(i));
|
||||
}
|
||||
if (mJointTree->getDrawMtxNum() > fullWgtNum) {
|
||||
J3DPSMtxArrayConcat(viewMtx, *mpWeightEvlpMtx, *getDrawMtx(fullWgtNum),
|
||||
mJointTree->getWEvlpMtxNum());
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
fullWgtNum = mJointTree->getDrawFullWgtMtxNum();
|
||||
for (u16 i = 0; i < fullWgtNum; i++) {
|
||||
MTXCopy(getAnmMtx(mJointTree->getDrawMtxIndex(i)), *getDrawMtx(i));
|
||||
}
|
||||
fullWgtNum = mJointTree->getDrawFullWgtMtxNum();
|
||||
for (u16 i = 0; i < fullWgtNum; i++) {
|
||||
MTXCopy(getWeightAnmMtx(i), *getDrawMtx(mJointTree->getDrawFullWgtMtxNum() + i));
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), param_1, param_2, viewBaseMtx);
|
||||
fullWgtNum = mJointTree->getDrawFullWgtMtxNum();
|
||||
for (u16 i = 0; i < fullWgtNum; i++) {
|
||||
MTXConcat(viewBaseMtx, getAnmMtx(mJointTree->getDrawMtxIndex(i)), *getDrawMtx(i));
|
||||
}
|
||||
if (mJointTree->getDrawMtxNum() > mJointTree->getDrawFullWgtMtxNum()) {
|
||||
J3DPSMtxArrayConcat(viewBaseMtx, *mpWeightEvlpMtx,
|
||||
*getDrawMtx(mJointTree->getDrawFullWgtMtxNum()),
|
||||
mJointTree->getWEvlpMtxNum());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
extern void J3DPSCalcInverseTranspose(Mtx p1, Mtx33 p2);
|
||||
|
||||
/* 80326D3C-80326EF0 32167C 01B4+00 0/0 1/1 0/0 .text calcNrmMtx__12J3DMtxBufferFv */
|
||||
void J3DMtxBuffer::calcNrmMtx() {
|
||||
// NONMATCHING
|
||||
u16 drawMtxNum = mJointTree->getDrawMtxNum();
|
||||
for (u16 i = 0; i < drawMtxNum; i++) {
|
||||
if (mJointTree->getDrawMtxFlag(i) == 0) {
|
||||
if (getScaleFlag(mJointTree->getDrawMtxIndex(i)) == 1) {
|
||||
setNrmMtx(i, getDrawMtx(i));
|
||||
} else {
|
||||
J3DPSCalcInverseTranspose(*getDrawMtx(i), *getNrmMtx(i));
|
||||
}
|
||||
} else {
|
||||
if (getEnvScaleFlag(mJointTree->getDrawMtxIndex(i)) == 1) {
|
||||
setNrmMtx(i, getDrawMtx(i));
|
||||
} else {
|
||||
J3DPSCalcInverseTranspose(*getDrawMtx(i), *getNrmMtx(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456420-80456424 004A20 0004+00 1/1 0/0 0/0 .sdata2 @1320 */
|
||||
SECTION_SDATA2 static f32 lit_1320 = 1.0f;
|
||||
|
||||
/* 80456424-80456428 004A24 0004+00 1/1 0/0 0/0 .sdata2 @1321 */
|
||||
SECTION_SDATA2 static u8 lit_1321[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80326EF0-80327048 321830 0158+00 0/0 1/1 0/0 .text calcBBoardMtx__12J3DMtxBufferFv */
|
||||
void J3DMtxBuffer::calcBBoardMtx() {
|
||||
// NONMATCHING
|
||||
u16 drawMtxNum = mJointTree->getDrawMtxNum();
|
||||
for (u16 i = 0; i < drawMtxNum; i++) {
|
||||
if (mJointTree->getDrawMtxFlag(i) == 0) {
|
||||
u16 index = mJointTree->getDrawMtxIndex(i);
|
||||
if (mJointTree->getJointNodePointer(index)->getMtxType() == 1) {
|
||||
MtxP drawMtx = *getDrawMtx(i);
|
||||
J3DCalcBBoardMtx(drawMtx);
|
||||
Mtx33* nrmMtx = getNrmMtx(i);
|
||||
(*nrmMtx)[0][0] = 1.0f / drawMtx[0][0];
|
||||
(*nrmMtx)[0][1] = 0.0f;
|
||||
(*nrmMtx)[0][2] = 0.0f;
|
||||
(*nrmMtx)[1][0] = 0.0f;
|
||||
(*nrmMtx)[1][1] = 1.0f / drawMtx[1][1];
|
||||
(*nrmMtx)[1][2] = 0.0f;
|
||||
(*nrmMtx)[2][0] = 0.0f;
|
||||
(*nrmMtx)[2][1] = 0.0f;
|
||||
(*nrmMtx)[2][2] = 1.0f / drawMtx[2][2];
|
||||
} else if (mJointTree->getJointNodePointer(index)->getMtxType() == 2) {
|
||||
MtxP drawMtx = *getDrawMtx(i);
|
||||
J3DCalcYBBoardMtx(drawMtx);
|
||||
Mtx33* nrmMtx = getNrmMtx(i);
|
||||
J3DPSCalcInverseTranspose(drawMtx, *nrmMtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80327048-80327100 321988 00B8+00 1/1 1/1 0/0 .text
|
||||
|
|
@ -292,4 +369,4 @@ void J3DCalcViewBaseMtx(Mtx view, Vec const& scale, const Mtx& base, Mtx dst) {
|
|||
m[2][3] = base[2][3];
|
||||
|
||||
MTXConcat(view, m, dst);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -795,12 +795,12 @@ void J3DAnmKeyLoader_v15::setAnmColor(J3DAnmColorKey* param_1, const J3DAnmColor
|
|||
param_1->field_0xe = param_2->field_0x12;
|
||||
param_1->field_0x10 = param_2->field_0x14;
|
||||
param_1->field_0x12 = param_2->field_0x16;
|
||||
param_1->field_0x3c =
|
||||
param_1->mAnmTable =
|
||||
JSUConvertOffsetToPtr<J3DAnmColorKeyTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->field_0x2c = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mRValOffset);
|
||||
param_1->field_0x30 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mGValOffset);
|
||||
param_1->field_0x34 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mBValOffset);
|
||||
param_1->field_0x38 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mAValOffset);
|
||||
param_1->mColorR = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mRValOffset);
|
||||
param_1->mColorG = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mGValOffset);
|
||||
param_1->mColorB = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mBValOffset);
|
||||
param_1->mColorA = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mAValOffset);
|
||||
param_1->mUpdateMaterialID =
|
||||
JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mUpdateMaterialIDOffset);
|
||||
param_1->mUpdateMaterialName.setResource(
|
||||
|
|
@ -942,4 +942,4 @@ extern "C" void func_80339860(void* _this, void const* param_0, void const* para
|
|||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 803A2130-803A2130 02E790 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 803A2130-803A2130 02E790 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@
|
|||
// Translation Unit: J3DModelLoader
|
||||
//
|
||||
|
||||
#define NON_VIRTUAL_J3DModelLoader
|
||||
|
||||
#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DJointFactory.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h"
|
||||
|
|
@ -16,251 +14,8 @@
|
|||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JSupport/JSupport.h"
|
||||
#include "dolphin/os.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DAnmTransform {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14J3DModelLoaderFv();
|
||||
extern "C" void load__22J3DModelLoaderDataBaseFPCvUl();
|
||||
extern "C" void load__14J3DModelLoaderFPCvUl();
|
||||
extern "C" void loadMaterialTable__14J3DModelLoaderFPCv();
|
||||
extern "C" void loadBinaryDisplayList__14J3DModelLoaderFPCvUl();
|
||||
extern "C" void setupBBoardInfo__14J3DModelLoaderFv();
|
||||
extern "C" void readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl();
|
||||
extern "C" static void getFmtType__FP17_GXVtxAttrFmtList7_GXAttr();
|
||||
extern "C" void readVertex__14J3DModelLoaderFPC14J3DVertexBlock();
|
||||
extern "C" void readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock();
|
||||
extern "C" void readDraw__14J3DModelLoaderFPC12J3DDrawBlock();
|
||||
extern "C" void readJoint__14J3DModelLoaderFPC13J3DJointBlock();
|
||||
extern "C" void readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
||||
extern "C" void readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul();
|
||||
extern "C" void readShape__14J3DModelLoaderFPC13J3DShapeBlockUl();
|
||||
extern "C" void readTexture__14J3DModelLoaderFPC15J3DTextureBlock();
|
||||
extern "C" void readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
||||
extern "C" void readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul();
|
||||
extern "C" void readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock();
|
||||
extern "C" void readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
||||
extern "C" void readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl();
|
||||
extern "C" void modifyMaterial__14J3DModelLoaderFUl();
|
||||
extern "C" void __dt__18J3DModelLoader_v26Fv();
|
||||
extern "C" void __dt__18J3DModelLoader_v21Fv();
|
||||
extern "C" void __dt__14J3DModelLoaderFv();
|
||||
extern "C" void readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul();
|
||||
extern "C" void readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
||||
extern "C" void readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul();
|
||||
extern "C" void readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
||||
extern "C" bool calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
||||
extern "C" bool calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
||||
extern "C" void func_803364B8(void* _this);
|
||||
extern "C" void func_80336524(void* _this, Vec const&, f32 const (&)[3][4]);
|
||||
extern "C" void func_8033656C(void* _this);
|
||||
extern "C" void func_80336594(void* _this);
|
||||
extern "C" void func_80336600(void* _this, Vec const&, f32 const (&)[3][4]);
|
||||
extern "C" void func_80336628(void* _this);
|
||||
extern "C" void __ct__11J3DMaterialFv();
|
||||
extern "C" void __dt__10J3DTextureFv();
|
||||
extern "C" ResTIMG* func_803366EC(void const*, void const*);
|
||||
extern "C" Mtx* func_80336704(void const*, void const*);
|
||||
extern "C" void* func_8033671C(void const*, void const*);
|
||||
extern "C" _GXVtxAttrFmtList* func_80336734(void const*, void const*);
|
||||
extern "C" J3DModelHierarchy* func_8033674C(void const*, void const*);
|
||||
extern "C" J3DShapeInitData* func_80336764(void const*, void const*);
|
||||
extern "C" u16* func_8033677C(void const*, void const*);
|
||||
extern "C" extern char const* const J3DModelLoader__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform();
|
||||
extern "C" void setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform();
|
||||
extern "C" bool getAnmTransform__10J3DMtxCalcFUc();
|
||||
extern "C" bool getAnmTransform__10J3DMtxCalcFv();
|
||||
extern "C" void setWeight__10J3DMtxCalcFUcf();
|
||||
extern "C" void getWeight__10J3DMtxCalcCFUc();
|
||||
extern "C" void getTotalFreeSize__7JKRHeapFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void* __nwa__FUli();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__10JUTNameTabFPC7ResNTAB();
|
||||
extern "C" u8* func_802F4260(void const*, void const*);
|
||||
extern "C" u16* func_802F42C0(void const*, void const*);
|
||||
extern "C" ResNTAB* func_8030A530(void const*, void const*);
|
||||
extern "C" f32* func_8030A560(void const*, void const*);
|
||||
extern "C" void initialize__11J3DMaterialFv();
|
||||
extern "C" void initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData();
|
||||
extern "C" void sortVcdVatCmd__13J3DShapeTableFv();
|
||||
extern "C" void
|
||||
makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable();
|
||||
extern "C" void findImportantMtxIndex__12J3DJointTreeFv();
|
||||
extern "C" void clear__12J3DModelDataFv();
|
||||
extern "C" void __ct__12J3DModelDataFv();
|
||||
extern "C" void indexToPtr__12J3DModelDataFv();
|
||||
extern "C" void init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf();
|
||||
extern "C" void calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo();
|
||||
extern "C" void calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo();
|
||||
extern "C" void clear__16J3DMaterialTableFv();
|
||||
extern "C" void __ct__16J3DMaterialTableFv();
|
||||
extern "C" void __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock();
|
||||
extern "C" void __ct__18J3DMaterialFactoryFRC18J3DMaterialDLBlock();
|
||||
extern "C" void countUniqueMaterials__18J3DMaterialFactoryFv();
|
||||
extern "C" void
|
||||
create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl();
|
||||
extern "C" void modifyPatchedCurrentMtx__18J3DMaterialFactoryCFP11J3DMateriali();
|
||||
extern "C" void __dt__11J3DMaterialFv();
|
||||
extern "C" void __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21();
|
||||
extern "C" void countUniqueMaterials__22J3DMaterialFactory_v21Fv();
|
||||
extern "C" void create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl();
|
||||
extern "C" void countMaterialNum__14J3DModelLoaderFPCv();
|
||||
extern "C" void calcLoadSize__14J3DModelLoaderFPCvUl();
|
||||
extern "C" void calcLoadMaterialTableSize__14J3DModelLoaderFPCv();
|
||||
extern "C" void calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl();
|
||||
extern "C" void calcSizeMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
||||
extern "C" void calcSizeMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
||||
extern "C" void __ct__15J3DJointFactoryFRC13J3DJointBlock();
|
||||
extern "C" void create__15J3DJointFactoryFi();
|
||||
extern "C" void __ct__15J3DShapeFactoryFRC13J3DShapeBlock();
|
||||
extern "C" void create__15J3DShapeFactoryFiUlP14_GXVtxDescList();
|
||||
extern "C" void allocVcdVatCmdBuffer__15J3DShapeFactoryFUl();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* data_803A3360[11];
|
||||
extern "C" extern void* __vt__19J3DMtxCalcNoAnmBase[11];
|
||||
extern "C" extern void* __vt__10J3DMtxCalc[11 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__11J3DMaterial[12];
|
||||
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" f32 mCurrentS__6J3DSys[3];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
extern "C" u8 mJoint__10J3DMtxCalc[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CF108-803CF14C 02C228 0044+00 2/2 0/0 0/0 .data __vt__18J3DModelLoader_v21 */
|
||||
SECTION_DATA extern void* __vt__18J3DModelLoader_v21[17] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)load__14J3DModelLoaderFPCvUl,
|
||||
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
||||
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
||||
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
||||
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
||||
(void*)__dt__18J3DModelLoader_v21Fv,
|
||||
(void*)readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
};
|
||||
|
||||
/* 803CF14C-803CF190 02C26C 0044+00 2/2 0/0 0/0 .data __vt__18J3DModelLoader_v26 */
|
||||
SECTION_DATA extern void* __vt__18J3DModelLoader_v26[17] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)load__14J3DModelLoaderFPCvUl,
|
||||
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
||||
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
||||
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
||||
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
||||
(void*)__dt__18J3DModelLoader_v26Fv,
|
||||
(void*)readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)calcSizeMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
||||
(void*)calcSizeMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
||||
};
|
||||
|
||||
/* 803CF190-803CF1BC 02C2B0 002C+00 2/2 0/0 0/0 .data
|
||||
* __vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage> */
|
||||
SECTION_DATA extern void* data_803CF190[11] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)func_803364B8,
|
||||
(void*)setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform,
|
||||
(void*)getAnmTransform__10J3DMtxCalcFv,
|
||||
(void*)setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform,
|
||||
(void*)getAnmTransform__10J3DMtxCalcFUc,
|
||||
(void*)setWeight__10J3DMtxCalcFUcf,
|
||||
(void*)getWeight__10J3DMtxCalcCFUc,
|
||||
(void*)func_80336524,
|
||||
(void*)func_8033656C,
|
||||
};
|
||||
|
||||
/* 803CF1BC-803CF1E8 02C2DC 002C+00 2/2 0/0 0/0 .data
|
||||
* __vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic> */
|
||||
SECTION_DATA extern void* data_803CF1BC[11] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)func_80336594,
|
||||
(void*)setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform,
|
||||
(void*)getAnmTransform__10J3DMtxCalcFv,
|
||||
(void*)setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform,
|
||||
(void*)getAnmTransform__10J3DMtxCalcFUc,
|
||||
(void*)setWeight__10J3DMtxCalcFUcf,
|
||||
(void*)getWeight__10J3DMtxCalcCFUc,
|
||||
(void*)func_80336600,
|
||||
(void*)func_80336628,
|
||||
};
|
||||
|
||||
/* 803CF1E8-803CF1F4 02C308 000C+00 4/4 0/0 0/0 .data __vt__10J3DTexture */
|
||||
SECTION_DATA extern void* __vt__10J3DTexture[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10J3DTextureFv,
|
||||
};
|
||||
|
||||
/* 803CF1F4-803CF238 02C314 0044+00 5/5 0/0 0/0 .data __vt__14J3DModelLoader */
|
||||
SECTION_DATA extern void* __vt__14J3DModelLoader[17] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)load__14J3DModelLoaderFPCvUl,
|
||||
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
||||
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
||||
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
||||
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
||||
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
||||
(void*)__dt__14J3DModelLoaderFv,
|
||||
(void*)readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
||||
(void*)calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
(void*)calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
||||
};
|
||||
|
||||
/* 8033468C-803346BC 32EFCC 0030+00 1/1 0/0 0/0 .text __ct__14J3DModelLoaderFv */
|
||||
#ifdef NONMATCHING
|
||||
// matches once vtable ordering is correct
|
||||
J3DModelLoader::J3DModelLoader() :
|
||||
mpModelData(NULL),
|
||||
mpMaterialTable(NULL),
|
||||
|
|
@ -271,15 +26,8 @@ J3DModelLoader::J3DModelLoader() :
|
|||
mEnvelopeSize(0) {
|
||||
/* empty function */
|
||||
}
|
||||
#else
|
||||
J3DModelLoader::J3DModelLoader() {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 803346BC-803347E0 32EFFC 0124+00 0/0 4/4 0/0 .text load__22J3DModelLoaderDataBaseFPCvUl */
|
||||
#ifdef NONMATCHING
|
||||
// matches once vtable ordering is correct
|
||||
J3DModelData* J3DModelLoaderDataBase::load(void const* i_data, u32 i_flags) {
|
||||
if (i_data == NULL) {
|
||||
return NULL;
|
||||
|
|
@ -297,18 +45,6 @@ J3DModelData* J3DModelLoaderDataBase::load(void const* i_data, u32 i_flags) {
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
J3DModelData* J3DModelLoaderDataBase::load(void const* param_0, u32 param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803A20B0 = "Unknown data block\n";
|
||||
#pragma pop
|
||||
|
||||
/* 803347E0-80334ABC 32F120 02DC+00 4/1 0/0 0/0 .text load__14J3DModelLoaderFPCvUl */
|
||||
J3DModelData* J3DModelLoader::load(void const* i_data, u32 i_flags) {
|
||||
|
|
@ -370,8 +106,6 @@ J3DModelData* J3DModelLoader::load(void const* i_data, u32 i_flags) {
|
|||
|
||||
|
||||
/* 80334ABC-80334C20 32F3FC 0164+00 3/0 0/0 0/0 .text loadMaterialTable__14J3DModelLoaderFPCv */
|
||||
#ifdef NONMATCHING
|
||||
// weak fn ordering
|
||||
J3DMaterialTable* J3DModelLoader::loadMaterialTable(void const* i_data) {
|
||||
mpMaterialTable = new J3DMaterialTable();
|
||||
mpMaterialTable->clear();
|
||||
|
|
@ -399,11 +133,6 @@ J3DMaterialTable* J3DModelLoader::loadMaterialTable(void const* i_data) {
|
|||
}
|
||||
return mpMaterialTable;
|
||||
}
|
||||
#else
|
||||
J3DMaterialTable* J3DModelLoader::loadMaterialTable(void const* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80334C20-80334EE0 32F560 02C0+00 3/0 0/0 0/0 .text
|
||||
* loadBinaryDisplayList__14J3DModelLoaderFPCvUl */
|
||||
|
|
@ -416,10 +145,11 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(void const* i_data, u32 i_fl
|
|||
J3DModelFileData const* data = (J3DModelFileData*)i_data;
|
||||
J3DModelBlock const* block = data->mBlocks;
|
||||
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
|
||||
s32 flags;
|
||||
switch (block->mBlockType) {
|
||||
case 'INF1':
|
||||
s32 flags2 = i_flags;
|
||||
readInformation((J3DModelInfoBlock*)block, flags2);
|
||||
flags = i_flags;
|
||||
readInformation((J3DModelInfoBlock*)block, flags);
|
||||
break;
|
||||
case 'VTX1':
|
||||
readVertex((J3DVertexBlock*)block);
|
||||
|
|
@ -444,7 +174,7 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(void const* i_data, u32 i_fl
|
|||
modifyMaterial(i_flags);
|
||||
break;
|
||||
case 'MAT3':
|
||||
s32 flags = 0x50100000;
|
||||
flags = 0x50100000;
|
||||
flags |= (i_flags & 0x3000000);
|
||||
mpMaterialBlock = (J3DMaterialBlock*)block;
|
||||
if (((u32)i_flags & 0x3000) == 0) {
|
||||
|
|
@ -468,14 +198,6 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(void const* i_data, u32 i_fl
|
|||
return mpModelData;
|
||||
}
|
||||
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803A20C4 = "WRONG SHAPE MATRIX TYPE (__FILE__)\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80334EE0-80335048 32F820 0168+00 3/0 0/0 0/0 .text setupBBoardInfo__14J3DModelLoaderFv
|
||||
*/
|
||||
void J3DModelLoader::setupBBoardInfo() {
|
||||
|
|
@ -483,12 +205,11 @@ void J3DModelLoader::setupBBoardInfo() {
|
|||
J3DMaterial* mesh = mpModelData->getJointNodePointer(i)->getMesh();
|
||||
if (mesh != NULL) {
|
||||
u16 shape_index = mesh->getShape()->getIndex();
|
||||
// u16* index_table = JSUConvertOffsetToPtr<u16>(mpShapeBlock, mpShapeBlock->mpIndexTable);
|
||||
u16* index_table = func_8033677C(mpShapeBlock, mpShapeBlock->mpIndexTable);
|
||||
u16* index_table = JSUConvertOffsetToPtr<u16>(mpShapeBlock,
|
||||
(u32)mpShapeBlock->mpIndexTable);
|
||||
J3DShapeInitData* shape_init_data =
|
||||
// JSUConvertOffsetToPtr<J3DShapeInitData>(mpShapeBlock,
|
||||
// mpShapeBlock->mpShapeInitData);
|
||||
func_80336764(mpShapeBlock, mpShapeBlock->mpShapeInitData);
|
||||
JSUConvertOffsetToPtr<J3DShapeInitData>(mpShapeBlock,
|
||||
(u32)mpShapeBlock->mpShapeInitData);
|
||||
J3DJoint* joint;
|
||||
switch (shape_init_data[index_table[shape_index]].mShapeMtxType) {
|
||||
case 0:
|
||||
|
|
@ -519,8 +240,6 @@ void J3DModelLoader::setupBBoardInfo() {
|
|||
|
||||
/* 80335048-803351A4 32F988 015C+00 2/2 0/0 0/0 .text
|
||||
* readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl */
|
||||
#ifdef NONMATCHING
|
||||
// will match once generics located correctly
|
||||
void J3DModelLoader::readInformation(J3DModelInfoBlock const* i_block, u32 i_flags) {
|
||||
mpModelData->mFlags = i_flags | i_block->mFlags;
|
||||
mpModelData->getJointTree().setFlag(mpModelData->mFlags);
|
||||
|
|
@ -541,11 +260,6 @@ void J3DModelLoader::readInformation(J3DModelInfoBlock const* i_block, u32 i_fla
|
|||
mpModelData->getVertexData().mVtxNum = i_block->mVtxNum;
|
||||
mpModelData->setHierarchy(JSUConvertOffsetToPtr<J3DModelHierarchy>(i_block, i_block->mpHierarchy));
|
||||
}
|
||||
#else
|
||||
void J3DModelLoader::readInformation(J3DModelInfoBlock const* i_block, u32 i_flags) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 803351A4-803351D0 32FAE4 002C+00 1/1 0/0 0/0 .text getFmtType__FP17_GXVtxAttrFmtList7_GXAttr */
|
||||
static _GXCompType getFmtType(_GXVtxAttrFmtList* i_fmtList, _GXAttr i_attr) {
|
||||
|
|
@ -562,23 +276,17 @@ static _GXCompType getFmtType(_GXVtxAttrFmtList* i_fmtList, _GXAttr i_attr) {
|
|||
void J3DModelLoader::readVertex(J3DVertexBlock const* i_block) {
|
||||
J3DVertexData& vertex_data = mpModelData->getVertexData();
|
||||
vertex_data.mVtxAttrFmtList =
|
||||
// JSUConvertOffsetToPtr<GXVtxAttrFmtList>(i_block, i_block->mpVtxAttrFmtList);
|
||||
func_80336734(i_block, i_block->mpVtxAttrFmtList);
|
||||
// vertex_data.mVtxPosArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxPosArray);
|
||||
vertex_data.mVtxPosArray = func_8033671C(i_block, i_block->mpVtxPosArray);
|
||||
// vertex_data.mVtxNrmArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNrmArray);
|
||||
vertex_data.mVtxNrmArray = func_8033671C(i_block, i_block->mpVtxNrmArray);
|
||||
// vertex_data.mVtxNBTArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNBTArray);
|
||||
vertex_data.mVtxNBTArray = func_8033671C(i_block, i_block->mpVtxNBTArray);
|
||||
JSUConvertOffsetToPtr<GXVtxAttrFmtList>(i_block, i_block->mpVtxAttrFmtList);
|
||||
vertex_data.mVtxPosArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxPosArray);
|
||||
vertex_data.mVtxNrmArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNrmArray);
|
||||
vertex_data.mVtxNBTArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNBTArray);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
vertex_data.mVtxColorArray[i] =
|
||||
// (GXColor*)JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxColorArray[i]);
|
||||
(GXColor*)func_8033671C(i_block, i_block->mpVtxColorArray[i]);
|
||||
(GXColor*)JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxColorArray[i]);
|
||||
}
|
||||
for (int i = 0; i < 8; i++) {
|
||||
vertex_data.mVtxTexCoordArray[i] =
|
||||
// JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxTexCoordArray[i]);
|
||||
func_8033671C(i_block, i_block->mpVtxTexCoordArray[i]);
|
||||
JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxTexCoordArray[i]);
|
||||
}
|
||||
|
||||
_GXCompType nrm_type = getFmtType(vertex_data.mVtxAttrFmtList, GX_VA_NRM);
|
||||
|
|
@ -629,14 +337,12 @@ void J3DModelLoader::readEnvelop(J3DEnvelopeBlock const* i_block) {
|
|||
mpModelData->getJointTree().mWEvlpMtxNum = i_block->mWEvlpMtxNum;
|
||||
mpModelData->getJointTree().mWEvlpMixMtxNum =
|
||||
JSUConvertOffsetToPtr<u8>(i_block, i_block->mpWEvlpMixMtxNum);
|
||||
mpModelData->getJointTree().mWEvlpMixIndex =
|
||||
mpModelData->getJointTree().mWEvlpMixMtxIndex =
|
||||
JSUConvertOffsetToPtr<u16>(i_block, i_block->mpWEvlpMixIndex);
|
||||
mpModelData->getJointTree().mWEvlpMixWeight =
|
||||
// JSUConvertOffsetToPtr<f32>(i_block, i_block->mpWEvlpMixWeight);
|
||||
func_8030A560(i_block, i_block->mpWEvlpMixWeight);
|
||||
JSUConvertOffsetToPtr<f32>(i_block, i_block->mpWEvlpMixWeight);
|
||||
mpModelData->getJointTree().mInvJointMtx =
|
||||
// JSUConvertOffsetToPtr<Mtx>(i_block, i_block->mpInvJointMtx);
|
||||
func_80336704(i_block, i_block->mpInvJointMtx);
|
||||
JSUConvertOffsetToPtr<Mtx>(i_block, i_block->mpInvJointMtx);
|
||||
}
|
||||
|
||||
/* 80335480-80335530 32FDC0 00B0+00 2/2 0/0 0/0 .text readDraw__14J3DModelLoaderFPC12J3DDrawBlock
|
||||
|
|
@ -664,8 +370,7 @@ void J3DModelLoader::readJoint(J3DJointBlock const* i_block) {
|
|||
mpModelData->getJointTree().mJointNum = i_block->mJointNum;
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpModelData->getJointTree().mJointName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpModelData->getJointTree().mJointName = NULL;
|
||||
}
|
||||
|
|
@ -684,8 +389,7 @@ void J3DModelLoader_v26::readMaterial(J3DMaterialBlock const* i_block, u32 i_fla
|
|||
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -729,8 +433,7 @@ void J3DModelLoader_v21::readMaterial_v21(J3DMaterialBlock_v21 const* i_block, u
|
|||
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -772,8 +475,7 @@ void J3DModelLoader::readShape(J3DShapeBlock const* i_block, u32 i_flags) {
|
|||
shape_table->mShapeNum = i_block->mShapeNum;
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
shape_table->mShapeName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
shape_table->mShapeName = NULL;
|
||||
}
|
||||
|
|
@ -792,26 +494,17 @@ void J3DModelLoader::readShape(J3DShapeBlock const* i_block, u32 i_flags) {
|
|||
|
||||
/* 80335C18-80335CE4 330558 00CC+00 2/2 0/0 0/0 .text
|
||||
* readTexture__14J3DModelLoaderFPC15J3DTextureBlock */
|
||||
#ifdef NONMATCHING
|
||||
// weak fn ordering
|
||||
void J3DModelLoader::readTexture(J3DTextureBlock const* i_block) {
|
||||
u16 texture_num = i_block->mTextureNum;
|
||||
// ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
||||
ResTIMG* texture_res = func_803366EC(i_block, i_block->mpTextureRes);
|
||||
ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mTextureName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mTextureName = NULL;
|
||||
}
|
||||
mpMaterialTable->mTexture = new J3DTexture(texture_num, texture_res);
|
||||
}
|
||||
#else
|
||||
void J3DModelLoader::readTexture(J3DTextureBlock const* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80335CE4-80335E20 330624 013C+00 1/0 0/0 0/0 .text
|
||||
* readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl */
|
||||
|
|
@ -820,8 +513,7 @@ void J3DModelLoader_v26::readMaterialTable(J3DMaterialBlock const* i_block, u32
|
|||
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -843,8 +535,7 @@ void J3DModelLoader_v21::readMaterialTable_v21(J3DMaterialBlock_v21 const* i_blo
|
|||
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -861,26 +552,17 @@ void J3DModelLoader_v21::readMaterialTable_v21(J3DMaterialBlock_v21 const* i_blo
|
|||
|
||||
/* 80335F5C-80336028 33089C 00CC+00 1/1 0/0 0/0 .text
|
||||
* readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock */
|
||||
#ifdef NONMATCHING
|
||||
// weak fn ordering
|
||||
void J3DModelLoader::readTextureTable(J3DTextureBlock const* i_block) {
|
||||
u16 texture_num = i_block->mTextureNum;
|
||||
// ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
||||
ResTIMG* texture_res = func_803366EC(i_block, i_block->mpTextureRes);
|
||||
ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mTextureName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mTextureName = NULL;
|
||||
}
|
||||
mpMaterialTable->mTexture = new J3DTexture(texture_num, texture_res);
|
||||
}
|
||||
#else
|
||||
void J3DModelLoader::readTextureTable(J3DTextureBlock const* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80336028-80336168 330968 0140+00 1/1 0/0 0/0 .text
|
||||
* readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
||||
|
|
@ -890,8 +572,7 @@ void J3DModelLoader::readPatchedMaterial(J3DMaterialBlock const* i_block, u32 i_
|
|||
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -916,8 +597,7 @@ void J3DModelLoader::readMaterialDL(J3DMaterialDLBlock const* i_block, u32 i_fla
|
|||
mpMaterialTable->mUniqueMatNum = i_block->mMaterialNum;
|
||||
if (i_block->mpNameTable != NULL) {
|
||||
mpMaterialTable->mMaterialName =
|
||||
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
||||
new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
||||
} else {
|
||||
mpMaterialTable->mMaterialName = NULL;
|
||||
}
|
||||
|
|
@ -951,148 +631,3 @@ void J3DModelLoader::modifyMaterial(u32 i_flags) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80336398-803363F4 330CD8 005C+00 1/0 0/0 0/0 .text __dt__18J3DModelLoader_v26Fv */
|
||||
// J3DModelLoader_v26::~J3DModelLoader_v26() {
|
||||
extern "C" void __dt__18J3DModelLoader_v26Fv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 803363F4-80336450 330D34 005C+00 1/0 0/0 0/0 .text __dt__18J3DModelLoader_v21Fv */
|
||||
// J3DModelLoader_v21::~J3DModelLoader_v21() {
|
||||
extern "C" void __dt__18J3DModelLoader_v21Fv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336450-80336498 330D90 0048+00 1/0 0/0 0/0 .text __dt__14J3DModelLoaderFv */
|
||||
J3DModelLoader::~J3DModelLoader() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336498-8033649C 330DD8 0004+00 2/0 0/0 0/0 .text
|
||||
* readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul */
|
||||
void J3DModelLoader::readMaterial_v21(J3DMaterialBlock_v21 const* param_0, u32 param_1) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8033649C-803364A0 330DDC 0004+00 2/0 0/0 0/0 .text
|
||||
* readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
||||
void J3DModelLoader::readMaterial(J3DMaterialBlock const* param_0, u32 param_1) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 803364A0-803364A4 330DE0 0004+00 2/0 0/0 0/0 .text
|
||||
* readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul */
|
||||
void J3DModelLoader::readMaterialTable_v21(J3DMaterialBlock_v21 const* param_0, u32 param_1) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 803364A4-803364A8 330DE4 0004+00 2/0 0/0 0/0 .text
|
||||
* readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
||||
void J3DModelLoader::readMaterialTable(J3DMaterialBlock const* param_0, u32 param_1) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 803364A8-803364B0 330DE8 0008+00 2/0 0/0 0/0 .text
|
||||
* calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
||||
u32 J3DModelLoader::calcSizeMaterial(J3DMaterialBlock const* param_0, u32 param_1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 803364B0-803364B8 330DF0 0008+00 2/0 0/0 0/0 .text
|
||||
* calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
||||
u32 J3DModelLoader::calcSizeMaterialTable(J3DMaterialBlock const* param_0, u32 param_1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 803364B8-80336524 330DF8 006C+00 1/0 0/0 0/0 .text
|
||||
* __dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv */
|
||||
extern "C" void func_803364B8(void* _this) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336524-8033656C 330E64 0048+00 1/0 0/0 0/0 .text
|
||||
* init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf
|
||||
*/
|
||||
extern "C" void func_80336524(void* _this, Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8033656C-80336594 330EAC 0028+00 1/0 0/0 0/0 .text
|
||||
* calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv */
|
||||
extern "C" void func_8033656C(void* _this) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336594-80336600 330ED4 006C+00 1/0 0/0 0/0 .text
|
||||
* __dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv */
|
||||
extern "C" void func_80336594(void* _this) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336600-80336628 330F40 0028+00 1/0 0/0 0/0 .text
|
||||
* init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf
|
||||
*/
|
||||
extern "C" void func_80336600(void* _this, Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336628-80336650 330F68 0028+00 1/0 0/0 0/0 .text
|
||||
* calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv */
|
||||
extern "C" void func_80336628(void* _this) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336650-803366A4 330F90 0054+00 2/2 0/0 0/0 .text __ct__11J3DMaterialFv */
|
||||
// J3DMaterial::J3DMaterial() {
|
||||
extern "C" void __ct__11J3DMaterialFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 803366A4-803366EC 330FE4 0048+00 1/0 0/0 0/0 .text __dt__10J3DTextureFv */
|
||||
// J3DTexture::~J3DTexture() {
|
||||
extern "C" void __dt__10J3DTextureFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 803366EC-80336704 33102C 0018+00 2/2 0/0 0/0 .text JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv */
|
||||
extern "C" ResTIMG* func_803366EC(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336704-8033671C 331044 0018+00 1/1 0/0 0/0 .text JSUConvertOffsetToPtr<A3_A4_f>__FPCvPCv */
|
||||
extern "C" Mtx* func_80336704(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8033671C-80336734 33105C 0018+00 1/1 0/0 0/0 .text JSUConvertOffsetToPtr<v>__FPCvPCv
|
||||
*/
|
||||
extern "C" void* func_8033671C(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336734-8033674C 331074 0018+00 1/1 0/0 0/0 .text
|
||||
* JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv */
|
||||
extern "C" _GXVtxAttrFmtList* func_80336734(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8033674C-80336764 33108C 0018+00 1/1 1/1 0/0 .text
|
||||
* JSUConvertOffsetToPtr<17J3DModelHierarchy>__FPCvPCv */
|
||||
extern "C" J3DModelHierarchy* func_8033674C(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80336764-8033677C 3310A4 0018+00 1/1 1/1 0/0 .text
|
||||
* JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl */
|
||||
extern "C" J3DShapeInitData* func_80336764(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8033677C-80336794 3310BC 0018+00 1/1 2/2 0/0 .text JSUConvertOffsetToPtr<Us>__FPCvUl
|
||||
*/
|
||||
extern "C" u16* func_8033677C(void const* param_0, void const* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
@ -1414,11 +1414,6 @@ J3DMtxCalcAnmBase::~J3DMtxCalcAnmBase() {
|
|||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8000D948-8000D990 008288 0048+00 1/0 0/0 0/0 .text __dt__10J3DMtxCalcFv */
|
||||
J3DMtxCalc::~J3DMtxCalc() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8000D990-8000D9CC 0082D0 003C+00 0/0 5/5 31/31 .text
|
||||
* changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform */
|
||||
void mDoExt_bckAnm::changeBckOnly(J3DAnmTransform* i_bck) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue