mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-01 03:20:14 -04:00
@@ -79,11 +79,24 @@ struct J3DAnmKRegKeyTable {
|
||||
u8 padding[3];
|
||||
}; // Size = 0x1C
|
||||
|
||||
struct J3DAnmClusterFullTable {
|
||||
u16 mMaxFrame;
|
||||
u16 mOffset;
|
||||
};
|
||||
|
||||
struct J3DAnmClusterKeyTable;
|
||||
|
||||
// same as J3DModelBlock?
|
||||
struct J3DAnmDataBlockHeader { // actual name unknown
|
||||
/* 0x0 */ u32 mType;
|
||||
/* 0x4 */ u32 mNextOffset;
|
||||
|
||||
const J3DAnmDataBlockHeader* getNext() const {
|
||||
return reinterpret_cast<const J3DAnmDataBlockHeader*>(reinterpret_cast<const u8*>(this) + mNextOffset);
|
||||
}
|
||||
}; // Size = 0x8
|
||||
|
||||
// same as J3DModelFileData?
|
||||
struct J3DAnmDataHeader { // actual name unknown
|
||||
/* 0x00 */ u32 mMagic;
|
||||
/* 0x04 */ u32 mType;
|
||||
@@ -278,6 +291,37 @@ struct J3DAnmColorFullData { /* PlaceHolder Structure */
|
||||
|
||||
STATIC_ASSERT(sizeof(J3DAnmColorFullData) == 0x34);
|
||||
|
||||
struct J3DAnmClusterFullData {
|
||||
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x0A */ s16 mFrameMax;
|
||||
/* 0x0C */ s32 field_0xc;
|
||||
/* 0x10 */ s32 mTableOffset;
|
||||
/* 0x14 */ s32 mWeightOffset;
|
||||
};
|
||||
|
||||
struct J3DAnmTransformKeyData {
|
||||
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0A */ s16 mFrameMax;
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ s32 mTableOffset;
|
||||
/* 0x18 */ s32 field_0x18;
|
||||
/* 0x1c */ s32 field_0x1c;
|
||||
/* 0x20 */ s32 field_0x20;
|
||||
};
|
||||
|
||||
struct J3DAnmClusterKeyData {
|
||||
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x0A */ s16 mFrameMax;
|
||||
/* 0x0C */ s32 field_0xc;
|
||||
/* 0x10 */ s32 mTableOffset;
|
||||
/* 0x14 */ s32 mWeightOffset;
|
||||
};
|
||||
|
||||
class J3DAnmBase {
|
||||
public:
|
||||
J3DAnmBase(s16 i_frameMax) {
|
||||
@@ -291,38 +335,42 @@ public:
|
||||
s16 getFrameMax() const { return mFrameMax; }
|
||||
f32 getFrame() const { return mFrame; }
|
||||
void setFrame(f32 frame) { mFrame = frame; }
|
||||
s32 getKind() const { return mKind; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
/* 0x4 */ u8 mAttribute;
|
||||
/* 0x5 */ u8 field_0x5;
|
||||
/* 0x6 */ s16 mFrameMax;
|
||||
/* 0x8 */ f32 mFrame;
|
||||
}; // Size: 0xC
|
||||
/* 0xC */ s32 mKind;
|
||||
}; // Size: 0x10
|
||||
|
||||
class J3DAnmTransform : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmTransform(s16 i_frameMax, f32* p1, s16* p2, f32* p3) : J3DAnmBase(i_frameMax) {
|
||||
field_0x10 = p2;
|
||||
field_0x14 = p3;
|
||||
field_0x18 = 0;
|
||||
field_0xc = p1;
|
||||
field_0x10 = p1;
|
||||
field_0x14 = p2;
|
||||
field_0x18 = p3;
|
||||
mKind = 0;
|
||||
}
|
||||
|
||||
virtual ~J3DAnmTransform() {}
|
||||
virtual void getTransform(u16, J3DTransformInfo*) const = 0;
|
||||
|
||||
private:
|
||||
/* 0x0C */ f32* field_0xc;
|
||||
/* 0x10 */ s16* field_0x10;
|
||||
/* 0x14 */ f32* field_0x14;
|
||||
/* 0x18 */ s32 field_0x18;
|
||||
/* 0x1C */ s16 field_0x1a;
|
||||
/* 0x1E */ s16 field_0x1c;
|
||||
/* 0x20 */ s16 field_0x1e;
|
||||
}; // Size: 0x22
|
||||
protected:
|
||||
/* 0x10 */ f32* field_0x10;
|
||||
/* 0x14 */ s16* field_0x14;
|
||||
/* 0x18 */ f32* field_0x18;
|
||||
/* 0x1C */ s16 field_0x1c;
|
||||
/* 0x1E */ s16 field_0x1e;
|
||||
/* 0x20 */ u16 field_0x20;
|
||||
/* 0x22 */ u16 field_0x22;
|
||||
}; // Size: 0x24
|
||||
|
||||
class J3DAnmTransformKey : public J3DAnmTransform {
|
||||
public:
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmTransformKey() : J3DAnmTransform(0, NULL, NULL, NULL) {
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
@@ -335,17 +383,23 @@ public:
|
||||
|
||||
private:
|
||||
/* 0x24 */ int field_0x24;
|
||||
/* 0x28 */ int field_0x28;
|
||||
/* 0x28 */ J3DAnmTransformKeyTable* field_0x28;
|
||||
}; // Size: 0x2C
|
||||
|
||||
class J3DAnmTransformFull : public J3DAnmTransform {
|
||||
public:
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmTransformFull() : J3DAnmTransform(0, NULL, NULL, NULL) {
|
||||
field_0x24 = NULL;
|
||||
}
|
||||
|
||||
virtual ~J3DAnmTransformFull();
|
||||
virtual void getTransform(u16, J3DTransformInfo*) const;
|
||||
|
||||
private:
|
||||
/* 0x20 */ int field_0x20;
|
||||
}; // Size: 0x24
|
||||
/* 0x24 */ J3DAnmTransformFullTable* field_0x24;
|
||||
}; // Size: 0x28
|
||||
|
||||
struct J3DTextureSRTInfo;
|
||||
class J3DModelData;
|
||||
@@ -353,13 +407,34 @@ class J3DMaterialTable;
|
||||
|
||||
class J3DAnmTextureSRTKey : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmTextureSRTKey();
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmTextureSRTKey() : J3DAnmBase(0) {
|
||||
mDecShift = 0;
|
||||
mTransNum = 0;
|
||||
mRotNum = 0;
|
||||
mScaleNum = 0;
|
||||
mTrackNum = 0;
|
||||
mAnmTable = NULL;
|
||||
mTransData = NULL;
|
||||
mScaleData = NULL;
|
||||
mRotData = NULL;
|
||||
field_0x50 = 0;
|
||||
field_0x4e = 0;
|
||||
field_0x4c = 0;
|
||||
mPostTrackNum = 0;
|
||||
field_0x64 = NULL;
|
||||
field_0x5c = NULL;
|
||||
field_0x54 = NULL;
|
||||
field_0x58 = NULL;
|
||||
mTexMtxCalcType = 0;
|
||||
mKind = 4;
|
||||
}
|
||||
void calcTransform(f32, u16, J3DTextureSRTInfo*) const;
|
||||
void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
virtual ~J3DAnmTextureSRTKey();
|
||||
virtual s32 getKind() const;
|
||||
|
||||
void getTransform(u16 param_0, J3DTextureSRTInfo* pSRTInfo) const {
|
||||
calcTransform(getFrame(), param_0, pSRTInfo);
|
||||
@@ -379,7 +454,6 @@ public:
|
||||
Vec& getSRTCenter(u16 idx) const { return mSRTCenter[idx]; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ void* field_0xc;
|
||||
/* 0x10 */ int mDecShift;
|
||||
/* 0x14 */ u16 mTrackNum;
|
||||
/* 0x18 */ void* mAnmTable;
|
||||
@@ -387,19 +461,20 @@ private:
|
||||
/* 0x1E */ u16 mRotNum;
|
||||
/* 0x20 */ u16 mTransNum;
|
||||
/* 0x24 */ f32* mScaleData;
|
||||
/* 0x28 */ f32* mRotData;
|
||||
/* 0x28 */ s16* mRotData;
|
||||
/* 0x2C */ f32* mTransData;
|
||||
/* 0x30 */ u8* mUpdateTexMtxID;
|
||||
/* 0x34 */ u16* mUpdateMaterialID;
|
||||
/* 0x38 */ JUTNameTab mUpdateMaterialName;
|
||||
/* 0x48 */ Vec* mSRTCenter;
|
||||
/* 0x4C */ void * field_0x4c;
|
||||
/* 0x50 */ void * mPostAnmTable;
|
||||
/* 0x4C */ short field_0x4c;
|
||||
/* 0x4E */ short field_0x4e;
|
||||
/* 0x50 */ short field_0x50;
|
||||
/* 0x54 */ void * field_0x54;
|
||||
/* 0x58 */ void * field_0x58;
|
||||
/* 0x5C */ void * field_0x5c;
|
||||
/* 0x60 */ u16 mPostTrackNum;
|
||||
/* 0x64 */ void * field_0x60;
|
||||
/* 0x64 */ void * field_0x64;
|
||||
/* 0x68 */ u8* mPostUpdateTexMtxID;
|
||||
/* 0x6C */ u16* mPostUpdateMaterialID;
|
||||
/* 0x70 */ JUTNameTab mPostUpdateMaterialName;
|
||||
@@ -411,25 +486,39 @@ STATIC_ASSERT(sizeof(J3DAnmTextureSRTKey) == 0x88);
|
||||
|
||||
class J3DAnmVisibilityFull : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmVisibilityFull();
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmVisibilityFull() : J3DAnmBase(0) {
|
||||
mUpdateMaterialNum = 0;
|
||||
mAnmTable = NULL;
|
||||
field_0x12 = 0;
|
||||
mVisibility = NULL;
|
||||
mKind = 6;
|
||||
}
|
||||
void getVisibility(u16, u8*) const;
|
||||
|
||||
virtual ~J3DAnmVisibilityFull();
|
||||
virtual s32 getKind() const;
|
||||
virtual ~J3DAnmVisibilityFull() {}
|
||||
|
||||
J3DAnmVisibilityFullTable * getAnmTable() const { return mAnmTable; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ void* field_0xc;
|
||||
/* 0x10 */ u16 mUpdateMaterialNum;
|
||||
/* 0x12 */ u16 field_0x12;
|
||||
/* 0x14 */ J3DAnmVisibilityFullTable * mAnmTable;
|
||||
/* 0x18 */ u8* mVisibility;
|
||||
/* 0x1C */ JUTNameTab field_0x1c;
|
||||
}; // Size: 0x2C
|
||||
}; // Size: 0x1C
|
||||
|
||||
class J3DAnmTexPattern : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmTexPattern();
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmTexPattern() : J3DAnmBase(0) {
|
||||
mTextureIndex = NULL;
|
||||
mAnmTable = NULL;
|
||||
mKind = 2;
|
||||
mUpdateMaterialNum = 0;
|
||||
mUpdateMaterialID = NULL;
|
||||
}
|
||||
void getTexNo(u16, u16*) const;
|
||||
void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
void searchUpdateMaterialID(J3DModelData*);
|
||||
@@ -441,10 +530,8 @@ public:
|
||||
J3DAnmTexPatternFullTable * getAnmTable() const { return mAnmTable; }
|
||||
|
||||
virtual ~J3DAnmTexPattern();
|
||||
virtual s32 getKind() const;
|
||||
|
||||
private:
|
||||
/* 0x0C */ void* field_0xc;
|
||||
/* 0x10 */ u16* mTextureIndex;
|
||||
/* 0x14 */ J3DAnmTexPatternFullTable* mAnmTable;
|
||||
/* 0x18 */ u16 field_0x18;
|
||||
@@ -455,14 +542,37 @@ private:
|
||||
|
||||
class J3DAnmTevRegKey : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmTevRegKey();
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmTevRegKey() : J3DAnmBase(0) {
|
||||
mKRegUpdateMaterialNum = 0;
|
||||
mCRegUpdateMaterialNum = 0;
|
||||
mCRegDataCount[3] = 0;
|
||||
mCRegDataCount[2] = 0;
|
||||
mCRegDataCount[1] = 0;
|
||||
mCRegDataCount[0] = 0;
|
||||
mKRegDataCount[3] = 0;
|
||||
mKRegDataCount[2] = 0;
|
||||
mKRegDataCount[1] = 0;
|
||||
mKRegDataCount[0] = 0;
|
||||
mKRegUpdateMaterialID = NULL;
|
||||
mCRegUpdateMaterialID = NULL;
|
||||
mAnmCRegData[3] = NULL;
|
||||
mAnmCRegData[2] = NULL;
|
||||
mAnmCRegData[1] = NULL;
|
||||
mAnmCRegData[0] = NULL;
|
||||
mAnmKRegData[3] = NULL;
|
||||
mAnmKRegData[2] = NULL;
|
||||
mAnmKRegData[1] = NULL;
|
||||
mAnmKRegData[0] = NULL;
|
||||
mKind = 5;
|
||||
}
|
||||
void getTevColorReg(u16, GXColorS10*) const;
|
||||
void getTevKonstReg(u16, GXColor*) const;
|
||||
void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
virtual ~J3DAnmTevRegKey() {}
|
||||
virtual s32 getKind() const;
|
||||
|
||||
u16 getCRegUpdateMaterialNum() const { return mCRegUpdateMaterialNum; }
|
||||
u16 getKRegUpdateMaterialNum() const { return mKRegUpdateMaterialNum; }
|
||||
@@ -477,7 +587,6 @@ public:
|
||||
J3DAnmKRegKeyTable * getAnmKRegKeyTable() const { return mAnmKRegKeyTable; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ u32 field_0x0c;
|
||||
/* 0x10 */ u16 mCRegUpdateMaterialNum;
|
||||
/* 0x12 */ u16 mKRegUpdateMaterialNum;
|
||||
/* 0x14 */ u16 mCRegDataCount[4];
|
||||
@@ -494,24 +603,31 @@ private:
|
||||
|
||||
class J3DAnmColor : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmColor();
|
||||
J3DAnmColor() : J3DAnmBase(0) {
|
||||
field_0x16 = 0;
|
||||
field_0x14 = 0;
|
||||
field_0x12 = 0;
|
||||
field_0x10 = 0;
|
||||
mUpdateMaterialNum = 0;
|
||||
mUpdateMaterialID = 0;
|
||||
mKind = 1;
|
||||
}
|
||||
void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
void searchUpdateMaterialID(J3DModelData*);
|
||||
|
||||
virtual ~J3DAnmColor();
|
||||
virtual void getColor(u16, GXColor*) const;
|
||||
|
||||
s32 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
|
||||
bool isValidUpdateMaterialID(u16 id) const { return mUpdateMaterialID[id] != 0xFFFF; }
|
||||
u16 getUpdateMaterialID(u16 idx) const { return mUpdateMaterialID[idx]; }
|
||||
JUTNameTab * getUpdateMaterialName() { return &mUpdateMaterialName; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
protected:
|
||||
/* 0x10 */ u16 field_0x10;
|
||||
/* 0x12 */ u16 field_0x12;
|
||||
/* 0x14 */ u32 field_0x14;
|
||||
/* 0x14 */ u16 field_0x14;
|
||||
/* 0x16 */ u16 field_0x16;
|
||||
/* 0x18 */ u16 mUpdateMaterialNum;
|
||||
/* 0x1C */ u16* mUpdateMaterialID;
|
||||
/* 0x20 */ JUTNameTab mUpdateMaterialName;
|
||||
@@ -519,26 +635,40 @@ private:
|
||||
|
||||
class J3DAnmColorKey : public J3DAnmColor {
|
||||
public:
|
||||
J3DAnmColorKey();
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmColorKey() {
|
||||
field_0x30 = 0;
|
||||
field_0x34 = 0;
|
||||
field_0x38 = 0;
|
||||
field_0x3c = 0;
|
||||
field_0x40 = 0;
|
||||
}
|
||||
|
||||
virtual ~J3DAnmColorKey();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u16, GXColor*) const;
|
||||
|
||||
private:
|
||||
/* 0x2C */ int field_0x2c;
|
||||
/* 0x30 */ int field_0x30;
|
||||
/* 0x34 */ int field_0x34;
|
||||
/* 0x38 */ int field_0x38;
|
||||
/* 0x3C */ int field_0x3c;
|
||||
/* 0x30 */ s16* field_0x30;
|
||||
/* 0x34 */ s16* field_0x34;
|
||||
/* 0x38 */ s16* field_0x38;
|
||||
/* 0x3C */ s16* field_0x3c;
|
||||
/* 0x40 */ J3DAnmColorKeyTable* field_0x40;
|
||||
};
|
||||
|
||||
class J3DAnmColorFull : public J3DAnmColor {
|
||||
public:
|
||||
J3DAnmColorFull();
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmColorFull() {
|
||||
mColorR = NULL;
|
||||
mColorG = NULL;
|
||||
mColorB = NULL;
|
||||
mColorA = NULL;
|
||||
mAnmTable = NULL;
|
||||
}
|
||||
|
||||
virtual ~J3DAnmColorFull();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u16, GXColor*) const;
|
||||
|
||||
J3DAnmColorFullTable * getAnmTable() const { return mAnmTable; }
|
||||
@@ -553,71 +683,97 @@ private:
|
||||
|
||||
class J3DAnmVtxColor : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmVtxColor();
|
||||
J3DAnmVtxColor() : J3DAnmBase(0) {
|
||||
mKind = 7;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mAnmTableNum[i] = 0;
|
||||
}
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mAnmVtxColorIndexData[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColor();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u8, u16, GXColor*) const {}
|
||||
|
||||
private:
|
||||
/* 0x0C */ s16 mAnmTableNum[2];
|
||||
/* 0x10 */ int mAnmVtxColorIndexData[2];
|
||||
}; // Size: 0x18
|
||||
/* 0x10 */ s16 mAnmTableNum[2];
|
||||
/* 0x14 */ int mAnmVtxColorIndexData[2];
|
||||
}; // Size: 0x1C
|
||||
|
||||
class J3DAnmVtxColorKey : public J3DAnmVtxColor {
|
||||
public:
|
||||
J3DAnmVtxColorKey();
|
||||
J3DAnmVtxColorKey() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1c[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColorKey();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
private:
|
||||
/* 0x18 */ int field_0x18[2];
|
||||
/* 0x1C */ int field_0x1c[2];
|
||||
/* 0x24 */ u8 field_0x24[0x34 - 0x24];
|
||||
};
|
||||
|
||||
class J3DAnmVtxColorFull : public J3DAnmVtxColor {
|
||||
J3DAnmVtxColorFull();
|
||||
public:
|
||||
J3DAnmVtxColorFull() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1c[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColorFull();
|
||||
virtual s32 getKind() const;
|
||||
virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
private:
|
||||
/* 0x18 */ int field_0x18[2];
|
||||
/* 0x1C */ int field_0x1c[2];
|
||||
/* 0x24 */ u8 field_0x24[0x34 - 0x24];
|
||||
};
|
||||
|
||||
class J3DAnmCluster : public J3DAnmBase {
|
||||
public:
|
||||
J3DAnmCluster(s16 param_1, f32* param_2) : J3DAnmBase(0) {
|
||||
mWeight = param_2;
|
||||
mKind = param_1;
|
||||
}
|
||||
virtual ~J3DAnmCluster() {}
|
||||
virtual s32 getKind() const;
|
||||
virtual f32 getWeight(u16) const { return 1.0f; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ f32* field_0xc;
|
||||
}; // Size: 0x10
|
||||
protected:
|
||||
/* 0x10 */ f32* mWeight;
|
||||
}; // Size: 0x14
|
||||
|
||||
class J3DAnmClusterFull : public J3DAnmCluster {
|
||||
public:
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmClusterFull() : J3DAnmCluster(3, 0) {
|
||||
mAnmTable = NULL;
|
||||
}
|
||||
virtual ~J3DAnmClusterFull() {}
|
||||
virtual s32 getKind() const;
|
||||
virtual f32 getWeight(u16) const;
|
||||
|
||||
J3DAnmVisibilityFullTable * getAnmTable() const { return mAnmTable; }
|
||||
J3DAnmClusterFullTable * getAnmTable() const { return mAnmTable; }
|
||||
|
||||
private:
|
||||
/* 0x10 */ f32 * mWeight;
|
||||
/* 0x14 */ J3DAnmVisibilityFullTable * mAnmTable;
|
||||
/* 0x14 */ J3DAnmClusterFullTable * mAnmTable;
|
||||
};
|
||||
|
||||
class J3DAnmClusterKey : public J3DAnmCluster {
|
||||
public:
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmClusterKey() : J3DAnmCluster(3, NULL) {
|
||||
field_0x14 = 0;
|
||||
}
|
||||
virtual ~J3DAnmClusterKey() {}
|
||||
virtual s32 getKind() const;
|
||||
virtual f32 getWeight(u16) const;
|
||||
|
||||
private:
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ J3DAnmClusterKeyTable* field_0x14;
|
||||
};
|
||||
|
||||
class J3DFrameCtrl {
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
J3DDrawMtxData * getDrawMtxData() { return &mDrawMtxData; }
|
||||
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() { return mWEvlpMixWeight; }
|
||||
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
|
||||
u16 getJointNum() const { return mJointNum; }
|
||||
@@ -60,9 +60,6 @@ public:
|
||||
bool checkFlag(u32 flag) { return mFlags & flag; }
|
||||
void setFlag(u32 flag) { mFlags = flag; }
|
||||
|
||||
// TODO
|
||||
void getWEvlpMixMtxIndex() {}
|
||||
|
||||
private:
|
||||
friend class J3DModelLoader;
|
||||
|
||||
@@ -75,7 +72,7 @@ private:
|
||||
/* 0x1C */ J3DJoint** mJointNodePointer;
|
||||
/* 0x20 */ u16 mWEvlpMtxNum;
|
||||
/* 0x24 */ u8* mWEvlpMixMtxNum;
|
||||
/* 0x28 */ u16* mWEvlpMixIndex;
|
||||
/* 0x28 */ u16* mWEvlpMixMtxIndex;
|
||||
/* 0x2C */ f32* mWEvlpMixWeight;
|
||||
/* 0x30 */ Mtx* mInvJointMtx;
|
||||
/* 0x34 */ J3DDrawMtxData mDrawMtxData;
|
||||
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
bool isLocked() { return mMaterialTable.isLocked(); }
|
||||
u16 getDrawFullWgtMtxNum() const { return mJointTree.getDrawFullWgtMtxNum(); }
|
||||
u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); }
|
||||
u16* getWEvlpMixMtxIndex() { return mJointTree.getWEvlpMixIndex(); }
|
||||
u16* getWEvlpMixMtxIndex() { return mJointTree.getWEvlpMixMtxIndex(); }
|
||||
f32* getWEvlpMixWeight() { return mJointTree.getWEvlpMixWeight(); }
|
||||
u8 getWEvlpMixMtxNum(u16 idx) const { return mJointTree.getWEvlpMixMtxNum(idx); }
|
||||
u32 getModelDataType() const { return mJointTree.getModelDataType(); }
|
||||
|
||||
@@ -32,13 +32,13 @@ class J3DAnmVtxColorKey;
|
||||
class J3DAnmVtxColorKeyData;
|
||||
|
||||
struct J3DAnmLoaderDataBase {
|
||||
static void* load(const void*);
|
||||
static J3DAnmBase* load(const void*);
|
||||
static void setResource(J3DAnmBase*, const void*);
|
||||
};
|
||||
|
||||
class J3DAnmLoader {
|
||||
public:
|
||||
virtual void* load(const void*) = 0;
|
||||
virtual J3DAnmBase* load(const void*) = 0;
|
||||
virtual void setResource(J3DAnmBase*, const void*) = 0;
|
||||
virtual ~J3DAnmLoader() {}
|
||||
};
|
||||
@@ -47,7 +47,7 @@ class J3DAnmFullLoader_v15 : public J3DAnmLoader {
|
||||
public:
|
||||
J3DAnmFullLoader_v15();
|
||||
~J3DAnmFullLoader_v15();
|
||||
void* load(const void*);
|
||||
J3DAnmBase* load(const void*);
|
||||
void setResource(J3DAnmBase*, const void*);
|
||||
void readAnmTransform(const J3DAnmTransformFullData*);
|
||||
void setAnmTransform(J3DAnmTransformFull*, const J3DAnmTransformFullData*);
|
||||
@@ -62,14 +62,14 @@ public:
|
||||
void readAnmVtxColor(const J3DAnmVtxColorFullData*);
|
||||
void setAnmVtxColor(J3DAnmVtxColorFull*, const J3DAnmVtxColorFullData*);
|
||||
|
||||
void* field_0x4;
|
||||
J3DAnmBase* mAnm;
|
||||
};
|
||||
|
||||
class J3DAnmKeyLoader_v15 : public J3DAnmLoader {
|
||||
public:
|
||||
J3DAnmKeyLoader_v15();
|
||||
~J3DAnmKeyLoader_v15();
|
||||
void* load(const void*);
|
||||
J3DAnmBase* load(const void*);
|
||||
void setResource(J3DAnmBase*, const void*);
|
||||
void readAnmTransform(const J3DAnmTransformKeyData*);
|
||||
void setAnmTransform(J3DAnmTransformKey*, const J3DAnmTransformKeyData*);
|
||||
@@ -84,7 +84,7 @@ public:
|
||||
void readAnmVtxColor(const J3DAnmVtxColorKeyData*);
|
||||
void setAnmVtxColor(J3DAnmVtxColorKey*, const J3DAnmVtxColorKeyData*);
|
||||
|
||||
void* field_0x4;
|
||||
J3DAnmBase* mAnm;
|
||||
};
|
||||
|
||||
#endif /* J3DANMLOADER_H */
|
||||
|
||||
@@ -45,7 +45,7 @@ struct J3DVertexBlock : public J3DModelBlock {
|
||||
struct J3DEnvelopBlock : public J3DModelBlock {
|
||||
/* 0x08 */ u16 mWEvlpMtxNum;
|
||||
/* 0x0C */ void* mpWEvlpMixMtxNum;
|
||||
/* 0x10 */ void* mpWEvlpMixIndex;
|
||||
/* 0x10 */ void* mpWEvlpMixMtxIndex;
|
||||
/* 0x14 */ void* mpWEvlpMixWeight;
|
||||
/* 0x18 */ void* mpInvJointMtx;
|
||||
}; // Size: 0x1C
|
||||
|
||||
@@ -20,7 +20,7 @@ void J3DJointTree::clear() {
|
||||
field_0x40 = NULL;
|
||||
mWEvlpMtxNum = 0;
|
||||
mWEvlpMixMtxNum = NULL;
|
||||
mWEvlpMixIndex = NULL;
|
||||
mWEvlpMixMtxIndex = NULL;
|
||||
mWEvlpMixWeight = NULL;
|
||||
mInvJointMtx = NULL;
|
||||
mJointName = NULL;
|
||||
|
||||
@@ -5,15 +5,162 @@
|
||||
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "JSystem/JSupport/JSupport.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
/* 802FEDA0-802FF6C8 .text load__20J3DAnmLoaderDataBaseFPCv */
|
||||
void* J3DAnmLoaderDataBase::load(const void*) {
|
||||
/* Nonmatching */
|
||||
J3DAnmBase* J3DAnmLoaderDataBase::load(const void* i_data) {
|
||||
if (!i_data) {
|
||||
return NULL;
|
||||
}
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)i_data;
|
||||
if (header->mMagic == 'J3D1') {
|
||||
switch (header->mType) {
|
||||
case 'bck1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmTransformKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bpk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmColorKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'blk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmClusterKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'btk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmTextureSRTKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'brk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmTevRegKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bxk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmVtxColorKey();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bca1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmTransformFull();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bpa1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmColorFull();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'btp1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmTexPattern();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bva1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmVisibilityFull();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bla1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmClusterFull();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
case 'bxa1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.mAnm = new J3DAnmVtxColorFull();
|
||||
return loader.load(i_data);
|
||||
}
|
||||
default:
|
||||
OSReport("J3DAnmLoader: this is not a J3D Binary.\n");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802FF6C8-802FF9EC .text setResource__20J3DAnmLoaderDataBaseFP10J3DAnmBasePCv */
|
||||
void J3DAnmLoaderDataBase::setResource(J3DAnmBase*, const void*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmLoaderDataBase::setResource(J3DAnmBase* param_1, const void* param_2) {
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_2;
|
||||
if (!header) {
|
||||
return;
|
||||
}
|
||||
if (header->mMagic != 'J3D1') {
|
||||
return;
|
||||
}
|
||||
switch (header->mType) {
|
||||
case 'bck1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bpk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'blk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'btk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'brk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
if (param_1->getKind() == 5) {
|
||||
loader.setResource(param_1, param_2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'bxk1': {
|
||||
J3DAnmKeyLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bca1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bpa1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'btp1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bla1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bxa1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
case 'bva1': {
|
||||
J3DAnmFullLoader_v15 loader;
|
||||
loader.setResource(param_1, param_2);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
OSReport("J3DAnmLoader: this is not a J3D Binary.\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 802FF9EC-802FFA08 .text __ct__20J3DAnmFullLoader_v15Fv */
|
||||
@@ -29,68 +176,170 @@ J3DAnmKeyLoader_v15::J3DAnmKeyLoader_v15() {}
|
||||
J3DAnmKeyLoader_v15::~J3DAnmKeyLoader_v15() {}
|
||||
|
||||
/* 802FFADC-802FFC28 .text load__20J3DAnmFullLoader_v15FPCv */
|
||||
void* J3DAnmFullLoader_v15::load(const void*) {
|
||||
/* Nonmatching */
|
||||
J3DAnmBase* J3DAnmFullLoader_v15::load(const void* param_1) {
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_1;
|
||||
const J3DAnmDataBlockHeader* block = &header->mFirst;
|
||||
for (int i = 0; i < header->mCount; i++) {
|
||||
switch (block->mType) {
|
||||
case 'ANF1':
|
||||
readAnmTransform((J3DAnmTransformFullData*)block);
|
||||
break;
|
||||
case 'PAF1':
|
||||
readAnmColor((J3DAnmColorFullData*)block);
|
||||
break;
|
||||
case 'TPT1':
|
||||
readAnmTexPattern((J3DAnmTexPatternFullData*)block);
|
||||
break;
|
||||
case 'CLF1':
|
||||
readAnmCluster((J3DAnmClusterFullData*)block);
|
||||
break;
|
||||
case 'VAF1':
|
||||
readAnmVisibility((J3DAnmVisibilityFullData*)block);
|
||||
break;
|
||||
case 'VCF1':
|
||||
readAnmVtxColor((J3DAnmVtxColorFullData*)block);
|
||||
break;
|
||||
default:
|
||||
OSReport("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
block = block->getNext();
|
||||
}
|
||||
return mAnm;
|
||||
}
|
||||
|
||||
/* 802FFC28-802FFDD4 .text setResource__20J3DAnmFullLoader_v15FP10J3DAnmBasePCv */
|
||||
void J3DAnmFullLoader_v15::setResource(J3DAnmBase*, const void*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setResource(J3DAnmBase* param_1, const void* param_2) {
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_2;
|
||||
const J3DAnmDataBlockHeader* block = &header->mFirst;
|
||||
for (int i = 0; i < header->mCount; i++) {
|
||||
switch (block->mType) {
|
||||
case 'ANF1':
|
||||
if (param_1->getKind() == 0) {
|
||||
setAnmTransform((J3DAnmTransformFull*)param_1, (const J3DAnmTransformFullData*)block);
|
||||
}
|
||||
break;
|
||||
case 'PAF1':
|
||||
if (param_1->getKind() == 1) {
|
||||
setAnmColor((J3DAnmColorFull*)param_1, (const J3DAnmColorFullData*)block);
|
||||
}
|
||||
break;
|
||||
case 'TPT1':
|
||||
if (param_1->getKind() == 2) {
|
||||
setAnmTexPattern((J3DAnmTexPattern*)param_1, (const J3DAnmTexPatternFullData*)block);
|
||||
}
|
||||
break;
|
||||
case 'CLF1':
|
||||
if (param_1->getKind() == 3) {
|
||||
setAnmCluster((J3DAnmClusterFull*)param_1, (const J3DAnmClusterFullData*)block);
|
||||
}
|
||||
break;
|
||||
case 'VAF1':
|
||||
if (param_1->getKind() == 6) {
|
||||
setAnmVisibility((J3DAnmVisibilityFull*)param_1, (const J3DAnmVisibilityFullData*)block);
|
||||
}
|
||||
break;
|
||||
case 'VCF1':
|
||||
if (param_1->getKind() == 7) {
|
||||
setAnmVtxColor((J3DAnmVtxColorFull*)param_1, (const J3DAnmVtxColorFullData*)block);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
OSReport("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
block = block->getNext();
|
||||
}
|
||||
}
|
||||
|
||||
/* 802FFDD4-802FFDFC .text readAnmTransform__20J3DAnmFullLoader_v15FPC23J3DAnmTransformFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmTransform(const J3DAnmTransformFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmTransform(const J3DAnmTransformFullData* param_1) {
|
||||
setAnmTransform((J3DAnmTransformFull*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 802FFDFC-802FFE90 .text setAnmTransform__20J3DAnmFullLoader_v15FP19J3DAnmTransformFullPC23J3DAnmTransformFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmTransform(J3DAnmTransformFull*, const J3DAnmTransformFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setAnmTransform(J3DAnmTransformFull* param_1, const J3DAnmTransformFullData* param_2) {
|
||||
param_1->field_0x22 = param_2->field_0xc;
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->field_0x24 = JSUConvertOffsetToPtr<J3DAnmTransformFullTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->field_0x10 = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mScaleValOffset);
|
||||
param_1->field_0x14 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mRotValOffset);
|
||||
param_1->field_0x18 = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mTransValOffset);
|
||||
}
|
||||
|
||||
/* 802FFE90-802FFEB8 .text readAnmColor__20J3DAnmFullLoader_v15FPC19J3DAnmColorFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmColor(const J3DAnmColorFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmColor(const J3DAnmColorFullData* param_1) {
|
||||
setAnmColor((J3DAnmColorFull*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 802FFEB8-802FFF84 .text setAnmColor__20J3DAnmFullLoader_v15FP15J3DAnmColorFullPC19J3DAnmColorFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmColor(J3DAnmColorFull*, const J3DAnmColorFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setAnmColor(J3DAnmColorFull* param_1, const J3DAnmColorFullData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mUpdateMaterialNum = param_2->mUpdateMaterialNum;
|
||||
param_1->mAnmTable = JSUConvertOffsetToPtr<J3DAnmColorFullTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mColorR = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mRValuesOffset);
|
||||
param_1->mColorG = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mGValuesOffset);
|
||||
param_1->mColorB = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mBValuesOffset);
|
||||
param_1->mColorA = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mAValuesOffset);
|
||||
param_1->mUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mUpdateMaterialIDOffset);
|
||||
param_1->mUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mNameTabOffset));
|
||||
}
|
||||
|
||||
/* 802FFF84-802FFFAC .text readAnmTexPattern__20J3DAnmFullLoader_v15FPC24J3DAnmTexPatternFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmTexPattern(const J3DAnmTexPatternFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmTexPattern(const J3DAnmTexPatternFullData* param_1) {
|
||||
setAnmTexPattern((J3DAnmTexPattern*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 802FFFAC-80300050 .text setAnmTexPattern__20J3DAnmFullLoader_v15FP16J3DAnmTexPatternPC24J3DAnmTexPatternFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmTexPattern(J3DAnmTexPattern*, const J3DAnmTexPatternFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setAnmTexPattern(J3DAnmTexPattern* param_1, const J3DAnmTexPatternFullData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mUpdateMaterialNum = param_2->field_0xc;
|
||||
param_1->field_0x18 = param_2->field_0xe;
|
||||
param_1->mAnmTable = JSUConvertOffsetToPtr<J3DAnmTexPatternFullTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mTextureIndex = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mValuesOffset);
|
||||
param_1->mUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mUpdateMaterialIDOffset);
|
||||
param_1->mUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mNameTabOffset));
|
||||
}
|
||||
|
||||
/* 80300050-80300078 .text readAnmVisibility__20J3DAnmFullLoader_v15FPC24J3DAnmVisibilityFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmVisibility(const J3DAnmVisibilityFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmVisibility(const J3DAnmVisibilityFullData* param_1) {
|
||||
setAnmVisibility((J3DAnmVisibilityFull*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300078-803000F4 .text setAnmVisibility__20J3DAnmFullLoader_v15FP20J3DAnmVisibilityFullPC24J3DAnmVisibilityFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmVisibility(J3DAnmVisibilityFull*, const J3DAnmVisibilityFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setAnmVisibility(J3DAnmVisibilityFull* param_1, const J3DAnmVisibilityFullData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mUpdateMaterialNum = param_2->field_0xc;
|
||||
param_1->field_0x12 = param_2->field_0xe;
|
||||
param_1->mAnmTable = JSUConvertOffsetToPtr<J3DAnmVisibilityFullTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mVisibility = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mValuesOffset);
|
||||
}
|
||||
|
||||
/* 803000F4-8030011C .text readAnmCluster__20J3DAnmFullLoader_v15FPC21J3DAnmClusterFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmCluster(const J3DAnmClusterFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmCluster(const J3DAnmClusterFullData* param_1) {
|
||||
setAnmCluster((J3DAnmClusterFull*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 8030011C-80300188 .text setAnmCluster__20J3DAnmFullLoader_v15FP17J3DAnmClusterFullPC21J3DAnmClusterFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmCluster(J3DAnmClusterFull*, const J3DAnmClusterFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::setAnmCluster(J3DAnmClusterFull* param_1, const J3DAnmClusterFullData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mAnmTable = JSUConvertOffsetToPtr<J3DAnmClusterFullTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mWeight = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mWeightOffset);
|
||||
}
|
||||
|
||||
/* 80300188-803001B0 .text readAnmVtxColor__20J3DAnmFullLoader_v15FPC22J3DAnmVtxColorFullData */
|
||||
void J3DAnmFullLoader_v15::readAnmVtxColor(const J3DAnmVtxColorFullData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmFullLoader_v15::readAnmVtxColor(const J3DAnmVtxColorFullData* param_1) {
|
||||
setAnmVtxColor((J3DAnmVtxColorFull*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 803001B0-80300318 .text setAnmVtxColor__20J3DAnmFullLoader_v15FP18J3DAnmVtxColorFullPC22J3DAnmVtxColorFullData */
|
||||
@@ -99,68 +348,226 @@ void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull*, const J3DAnmVtxCo
|
||||
}
|
||||
|
||||
/* 80300318-80300464 .text load__19J3DAnmKeyLoader_v15FPCv */
|
||||
void* J3DAnmKeyLoader_v15::load(const void*) {
|
||||
/* Nonmatching */
|
||||
J3DAnmBase* J3DAnmKeyLoader_v15::load(const void* param_1) {
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_1;
|
||||
const J3DAnmDataBlockHeader* block = &header->mFirst;
|
||||
for (int i = 0; i < header->mCount; i++) {
|
||||
switch (block->mType) {
|
||||
case 'ANK1':
|
||||
readAnmTransform((J3DAnmTransformKeyData*)block);
|
||||
break;
|
||||
case 'PAK1':
|
||||
readAnmColor((J3DAnmColorKeyData*)block);
|
||||
break;
|
||||
case 'CLK1':
|
||||
readAnmCluster((J3DAnmClusterKeyData*)block);
|
||||
break;
|
||||
case 'TTK1':
|
||||
readAnmTextureSRT((J3DAnmTextureSRTKeyData*)block);
|
||||
break;
|
||||
case 'TRK1':
|
||||
readAnmTevReg((J3DAnmTevRegKeyData*)block);
|
||||
break;
|
||||
case 'VCK1':
|
||||
readAnmVtxColor((J3DAnmVtxColorKeyData*)block);
|
||||
break;
|
||||
default:
|
||||
OSReport("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
block = block->getNext();
|
||||
}
|
||||
return mAnm;
|
||||
}
|
||||
|
||||
/* 80300464-80300610 .text setResource__19J3DAnmKeyLoader_v15FP10J3DAnmBasePCv */
|
||||
void J3DAnmKeyLoader_v15::setResource(J3DAnmBase*, const void*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setResource(J3DAnmBase* param_1, const void* param_2) {
|
||||
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_2;
|
||||
const J3DAnmDataBlockHeader* block = &header->mFirst;
|
||||
for (int i = 0; i < header->mCount; i++) {
|
||||
switch (block->mType) {
|
||||
case 'ANK1':
|
||||
if (param_1->getKind() == 0) {
|
||||
setAnmTransform((J3DAnmTransformKey*)param_1, (const J3DAnmTransformKeyData*)block);
|
||||
}
|
||||
break;
|
||||
case 'PAK1':
|
||||
if (param_1->getKind() == 1) {
|
||||
setAnmColor((J3DAnmColorKey*)param_1, (const J3DAnmColorKeyData*)block);
|
||||
}
|
||||
break;
|
||||
case 'CLK1':
|
||||
if (param_1->getKind() == 3) {
|
||||
setAnmCluster((J3DAnmClusterKey*)param_1, (const J3DAnmClusterKeyData*)block);
|
||||
}
|
||||
break;
|
||||
case 'TTK1':
|
||||
if (param_1->getKind() == 4) {
|
||||
setAnmTextureSRT((J3DAnmTextureSRTKey*)param_1, (const J3DAnmTextureSRTKeyData*)block);
|
||||
}
|
||||
break;
|
||||
case 'TRK1':
|
||||
if (param_1->getKind() == 5) {
|
||||
setAnmTevReg((J3DAnmTevRegKey*)param_1, (const J3DAnmTevRegKeyData*)block);
|
||||
}
|
||||
break;
|
||||
case 'VCK1':
|
||||
if (param_1->getKind() == 7) {
|
||||
setAnmVtxColor((J3DAnmVtxColorKey*)param_1, (const J3DAnmVtxColorKeyData*)block);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
OSReport("Unknown data block\n");
|
||||
break;
|
||||
}
|
||||
block = block->getNext();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80300610-80300638 .text readAnmTransform__19J3DAnmKeyLoader_v15FPC22J3DAnmTransformKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmTransform(const J3DAnmTransformKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmTransform(const J3DAnmTransformKeyData* param_1) {
|
||||
setAnmTransform((J3DAnmTransformKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300638-803006D4 .text setAnmTransform__19J3DAnmKeyLoader_v15FP18J3DAnmTransformKeyPC22J3DAnmTransformKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmTransform(J3DAnmTransformKey*, const J3DAnmTransformKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setAnmTransform(J3DAnmTransformKey* param_1, const J3DAnmTransformKeyData* param_2) {
|
||||
param_1->field_0x22 = param_2->field_0xc;
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->field_0x24 = param_2->field_0x9;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->field_0x28 = JSUConvertOffsetToPtr<J3DAnmTransformKeyTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->field_0x10 = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->field_0x18);
|
||||
param_1->field_0x14 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->field_0x1c);
|
||||
param_1->field_0x18 = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->field_0x20);
|
||||
}
|
||||
|
||||
/* 803006D4-803006FC .text readAnmTextureSRT__19J3DAnmKeyLoader_v15FPC23J3DAnmTextureSRTKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmTextureSRT(const J3DAnmTextureSRTKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmTextureSRT(const J3DAnmTextureSRTKeyData* param_1) {
|
||||
setAnmTextureSRT((J3DAnmTextureSRTKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 803006FC-803008D8 .text setAnmTextureSRT__19J3DAnmKeyLoader_v15FP19J3DAnmTextureSRTKeyPC23J3DAnmTextureSRTKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmTextureSRT(J3DAnmTextureSRTKey*, const J3DAnmTextureSRTKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setAnmTextureSRT(J3DAnmTextureSRTKey* param_1, const J3DAnmTextureSRTKeyData* param_2) {
|
||||
param_1->mTrackNum = param_2->field_0xc;
|
||||
param_1->mFrameMax = param_2->field_0xa;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mDecShift = param_2->field_0x9;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mTrackNum = param_2->field_0xc;
|
||||
param_1->mScaleNum = param_2->field_0xe;
|
||||
param_1->mRotNum = param_2->field_0x10;
|
||||
param_1->mTransNum = param_2->field_0x12;
|
||||
param_1->mAnmTable = JSUConvertOffsetToPtr<J3DAnmTransformKeyTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mUpdateMatIDOffset);
|
||||
param_1->mUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mNameTab1Offset));
|
||||
param_1->mUpdateTexMtxID = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->mUpdateTexMtxIDOffset);
|
||||
param_1->mSRTCenter = JSUConvertOffsetToPtr<Vec>(param_2, (void*)param_2->unkOffset);
|
||||
param_1->mScaleData = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mScaleValOffset);
|
||||
param_1->mRotData = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mRotValOffset);
|
||||
param_1->mTransData = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mTransValOffset);
|
||||
if (param_2->mNameTab2Offset) {
|
||||
param_1->mPostUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mNameTab2Offset));
|
||||
}
|
||||
param_1->mPostTrackNum = param_2->field_0x34;
|
||||
param_1->field_0x4c = param_2->field_0x36;
|
||||
param_1->field_0x4e = param_2->field_0x38;
|
||||
param_1->field_0x50 = param_2->field_0x3a;
|
||||
param_1->field_0x64 = JSUConvertOffsetToPtr<J3DAnmTransformKeyTable>(param_2, (void*)param_2->mInfoTable2Offset);
|
||||
param_1->mPostUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->field_0x40);
|
||||
param_1->mPostUpdateTexMtxID = JSUConvertOffsetToPtr<u8>(param_2, (void*)param_2->field_0x48);
|
||||
param_1->mPostSRTCenter = JSUConvertOffsetToPtr<Vec>(param_2, (void*)param_2->field_0x4c);
|
||||
param_1->field_0x54 = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->field_0x50);
|
||||
param_1->field_0x58 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->field_0x54);
|
||||
param_1->field_0x5c = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->field_0x58);
|
||||
switch (param_2->field_0x5c) {
|
||||
case 0:
|
||||
case 1:
|
||||
param_1->mTexMtxCalcType = param_2->field_0x5c;
|
||||
break;
|
||||
default:
|
||||
param_1->mTexMtxCalcType = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 803008D8-80300900 .text readAnmColor__19J3DAnmKeyLoader_v15FPC18J3DAnmColorKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmColor(const J3DAnmColorKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmColor(const J3DAnmColorKeyData* param_1) {
|
||||
setAnmColor((J3DAnmColorKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300900-803009EC .text setAnmColor__19J3DAnmKeyLoader_v15FP14J3DAnmColorKeyPC18J3DAnmColorKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmColor(J3DAnmColorKey*, const J3DAnmColorKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setAnmColor(J3DAnmColorKey* param_1, const J3DAnmColorKeyData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mUpdateMaterialNum = param_2->mUpdateMaterialNum;
|
||||
param_1->field_0x10 = param_2->field_0x10;
|
||||
param_1->field_0x12 = param_2->field_0x12;
|
||||
param_1->field_0x14 = param_2->field_0x14;
|
||||
param_1->field_0x16 = param_2->field_0x16;
|
||||
param_1->field_0x40 = JSUConvertOffsetToPtr<J3DAnmColorKeyTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->field_0x30 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mRValOffset);
|
||||
param_1->field_0x34 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mGValOffset);
|
||||
param_1->field_0x38 = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mBValOffset);
|
||||
param_1->field_0x3c = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mAValOffset);
|
||||
param_1->mUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mUpdateMaterialIDOffset);
|
||||
param_1->mUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mNameTabOffset));
|
||||
}
|
||||
|
||||
/* 803009EC-80300A14 .text readAnmCluster__19J3DAnmKeyLoader_v15FPC20J3DAnmClusterKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmCluster(const J3DAnmClusterKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmCluster(const J3DAnmClusterKeyData* param_1) {
|
||||
setAnmCluster((J3DAnmClusterKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300A14-80300A80 .text setAnmCluster__19J3DAnmKeyLoader_v15FP16J3DAnmClusterKeyPC20J3DAnmClusterKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmCluster(J3DAnmClusterKey*, const J3DAnmClusterKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setAnmCluster(J3DAnmClusterKey* param_1, const J3DAnmClusterKeyData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->field_0x14 = JSUConvertOffsetToPtr<J3DAnmClusterKeyTable>(param_2, (void*)param_2->mTableOffset);
|
||||
param_1->mWeight = JSUConvertOffsetToPtr<f32>(param_2, (void*)param_2->mWeightOffset);
|
||||
}
|
||||
|
||||
/* 80300A80-80300AA8 .text readAnmTevReg__19J3DAnmKeyLoader_v15FPC19J3DAnmTevRegKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmTevReg(const J3DAnmTevRegKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmTevReg(const J3DAnmTevRegKeyData* param_1) {
|
||||
setAnmTevReg((J3DAnmTevRegKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300AA8-80300C34 .text setAnmTevReg__19J3DAnmKeyLoader_v15FP15J3DAnmTevRegKeyPC19J3DAnmTevRegKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmTevReg(J3DAnmTevRegKey*, const J3DAnmTevRegKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::setAnmTevReg(J3DAnmTevRegKey* param_1, const J3DAnmTevRegKeyData* param_2) {
|
||||
param_1->mFrameMax = param_2->mFrameMax;
|
||||
param_1->mAttribute = param_2->field_0x8;
|
||||
param_1->mFrame = 0.0f;
|
||||
param_1->mCRegUpdateMaterialNum = param_2->mCRegUpdateMaterialNum;
|
||||
param_1->mAnmCRegKeyTable = JSUConvertOffsetToPtr<J3DAnmCRegKeyTable>(param_2, (void*)param_2->mCRegTableOffset);
|
||||
param_1->mCRegUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mCRegUpdateMaterialIDOffset);
|
||||
param_1->mCRegUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mCRegNameTabOffset));
|
||||
param_1->mKRegUpdateMaterialNum = param_2->mKRegUpdateMaterialNum;
|
||||
param_1->mAnmKRegKeyTable = JSUConvertOffsetToPtr<J3DAnmKRegKeyTable>(param_2, (void*)param_2->mKRegTableOffset);
|
||||
param_1->mKRegUpdateMaterialID = JSUConvertOffsetToPtr<u16>(param_2, (void*)param_2->mKRegUpdateMaterialIDOffset);
|
||||
param_1->mKRegUpdateMaterialName.setResource(JSUConvertOffsetToPtr<ResNTAB>(param_2, (void*)param_2->mKRegNameTabOffset));
|
||||
param_1->mCRegDataCount[0] = param_2->field_0x10;
|
||||
param_1->mCRegDataCount[1] = param_2->field_0x12;
|
||||
param_1->mCRegDataCount[2] = param_2->field_0x14;
|
||||
param_1->mCRegDataCount[3] = param_2->field_0x16;
|
||||
param_1->mAnmCRegData[0] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mCRValuesOffset);
|
||||
param_1->mAnmCRegData[1] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mCGValuesOffset);
|
||||
param_1->mAnmCRegData[2] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mCBValuesOffset);
|
||||
param_1->mAnmCRegData[3] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mCAValuesOffset);
|
||||
param_1->mKRegDataCount[0] = param_2->field_0x18;
|
||||
param_1->mKRegDataCount[1] = param_2->field_0x1a;
|
||||
param_1->mKRegDataCount[2] = param_2->field_0x1c;
|
||||
param_1->mKRegDataCount[3] = param_2->field_0x1e;
|
||||
param_1->mAnmKRegData[0] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mKRValuesOffset);
|
||||
param_1->mAnmKRegData[1] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mKGValuesOffset);
|
||||
param_1->mAnmKRegData[2] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mKBValuesOffset);
|
||||
param_1->mAnmKRegData[3] = JSUConvertOffsetToPtr<s16>(param_2, (void*)param_2->mKAValuesOffset);
|
||||
}
|
||||
|
||||
/* 80300C34-80300C5C .text readAnmVtxColor__19J3DAnmKeyLoader_v15FPC21J3DAnmVtxColorKeyData */
|
||||
void J3DAnmKeyLoader_v15::readAnmVtxColor(const J3DAnmVtxColorKeyData*) {
|
||||
/* Nonmatching */
|
||||
void J3DAnmKeyLoader_v15::readAnmVtxColor(const J3DAnmVtxColorKeyData* param_1) {
|
||||
setAnmVtxColor((J3DAnmVtxColorKey*)mAnm, param_1);
|
||||
}
|
||||
|
||||
/* 80300C5C-80300DC4 .text setAnmVtxColor__19J3DAnmKeyLoader_v15FP17J3DAnmVtxColorKeyPC21J3DAnmVtxColorKeyData */
|
||||
|
||||
@@ -339,8 +339,8 @@ void J3DModelLoader::readEnvelop(const J3DEnvelopBlock* i_block) {
|
||||
mpModelData->getJointTree().mWEvlpMtxNum = i_block->mWEvlpMtxNum;
|
||||
mpModelData->getJointTree().mWEvlpMixMtxNum =
|
||||
JSUConvertOffsetToPtr<u8>(i_block, i_block->mpWEvlpMixMtxNum);
|
||||
mpModelData->getJointTree().mWEvlpMixIndex =
|
||||
JSUConvertOffsetToPtr<u16>(i_block, i_block->mpWEvlpMixIndex);
|
||||
mpModelData->getJointTree().mWEvlpMixMtxIndex =
|
||||
JSUConvertOffsetToPtr<u16>(i_block, i_block->mpWEvlpMixMtxIndex);
|
||||
mpModelData->getJointTree().mWEvlpMixWeight =
|
||||
JSUConvertOffsetToPtr<f32>(i_block, i_block->mpWEvlpMixWeight);
|
||||
mpModelData->getJointTree().mInvJointMtx =
|
||||
|
||||
Reference in New Issue
Block a user