mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-25 23:35:08 -04:00
J3DAnm work
This commit is contained in:
@@ -84,7 +84,9 @@ struct J3DAnmClusterFullTable {
|
||||
u16 mOffset;
|
||||
};
|
||||
|
||||
struct J3DAnmClusterKeyTable;
|
||||
struct J3DAnmClusterKeyTable {
|
||||
/* 0x00 */ J3DAnmKeyTableBase mWeightTable;
|
||||
};
|
||||
|
||||
// same as J3DModelBlock?
|
||||
struct J3DAnmDataBlockHeader { // actual name unknown
|
||||
@@ -112,7 +114,8 @@ struct J3DAnmVtxColorFullData {
|
||||
/* 0x09 */ u8 field_0x9; // padding?
|
||||
/* 0x0A */ s16 mFrameMax;
|
||||
/* 0x0C */ u16 mAnmTableNum[2];
|
||||
/* 0x10 */ u8 field_0x10[0x18 - 0x10];
|
||||
/* 0x10 */ u16 mIndexNum[2];
|
||||
/* 0x14 */ u32 field_0x14;
|
||||
/* 0x18 */ s32 mTableOffsets[2];
|
||||
/* 0x20 */ s32 mVtxColorIndexDataOffsets[2];
|
||||
/* 0x28 */ s32 mVtxColorIndexPointerOffsets[2];
|
||||
@@ -213,14 +216,14 @@ struct J3DAnmVtxColorKeyData {
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0A */ s16 mFrameMax;
|
||||
/* 0x0C */ u16 mAnmTableNum[2];
|
||||
/* 0x10 */ u8 field_0x10[0x18 - 0x10];
|
||||
/* 0x10 */ u32 mIndexNum[2];
|
||||
/* 0x18 */ s32 mTableOffsets[2];
|
||||
/* 0x20 */ s32 mVtxColoIndexDataOffset[2];
|
||||
/* 0x28 */ s32 mVtxColoIndexPointerOffset[2];
|
||||
/* 0x30 */ s32 mRValOffset;
|
||||
/* 0x34 */ s32 mGValOffset;
|
||||
/* 0x38 */ s32 mBValOffset;
|
||||
/* 0x3C */ s32 mAValOffset;
|
||||
/* 0x20 */ s32 mVtxColorIndexDataOffsets[2];
|
||||
/* 0x28 */ s32 mVtxColorIndexPointerOffsets[2];
|
||||
/* 0x30 */ s32 mRValuesOffset;
|
||||
/* 0x34 */ s32 mGValuesOffset;
|
||||
/* 0x38 */ s32 mBValuesOffset;
|
||||
/* 0x3C */ s32 mAValuesOffset;
|
||||
}; // Size = 0x40
|
||||
|
||||
STATIC_ASSERT(sizeof(J3DAnmVtxColorKeyData) == 0x40);
|
||||
@@ -557,14 +560,14 @@ public:
|
||||
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;
|
||||
mAnmCRegDataA = NULL;
|
||||
mAnmCRegDataB = NULL;
|
||||
mAnmCRegDataG = NULL;
|
||||
mAnmCRegDataR = NULL;
|
||||
mAnmKRegDataA = NULL;
|
||||
mAnmKRegDataB = NULL;
|
||||
mAnmKRegDataG = NULL;
|
||||
mAnmKRegDataR = NULL;
|
||||
mKind = 5;
|
||||
}
|
||||
void getTevColorReg(u16, GXColorS10*) const;
|
||||
@@ -597,8 +600,14 @@ private:
|
||||
/* 0x3C */ JUTNameTab mKRegUpdateMaterialName;
|
||||
/* 0x4C */ J3DAnmCRegKeyTable* mAnmCRegKeyTable;
|
||||
/* 0x50 */ J3DAnmKRegKeyTable* mAnmKRegKeyTable;
|
||||
/* 0x54 */ s16 * mAnmCRegData[4];
|
||||
/* 0x64 */ s16 * mAnmKRegData[4];
|
||||
/* 0x54 */ s16 * mAnmCRegDataR;
|
||||
/* 0x58 */ s16 * mAnmCRegDataG;
|
||||
/* 0x5C */ s16 * mAnmCRegDataB;
|
||||
/* 0x60 */ s16 * mAnmCRegDataA;
|
||||
/* 0x64 */ s16 * mAnmKRegDataR;
|
||||
/* 0x68 */ s16 * mAnmKRegDataG;
|
||||
/* 0x6C */ s16 * mAnmKRegDataB;
|
||||
/* 0x70 */ s16 * mAnmKRegDataA;
|
||||
}; // Size: 0x74
|
||||
|
||||
class J3DAnmColor : public J3DAnmBase {
|
||||
@@ -689,48 +698,62 @@ public:
|
||||
mAnmTableNum[i] = 0;
|
||||
}
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mAnmVtxColorIndexData[i] = 0;
|
||||
mAnmVtxColorIndexData[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColor();
|
||||
virtual void getColor(u8, u16, GXColor*) const {}
|
||||
|
||||
private:
|
||||
protected:
|
||||
/* 0x10 */ s16 mAnmTableNum[2];
|
||||
/* 0x14 */ int mAnmVtxColorIndexData[2];
|
||||
/* 0x14 */ void* mAnmVtxColorIndexData[2];
|
||||
}; // Size: 0x1C
|
||||
|
||||
class J3DAnmVtxColorKey : public J3DAnmVtxColor {
|
||||
public:
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmVtxColorKey() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1c[i] = 0;
|
||||
mpTable[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColorKey();
|
||||
virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
private:
|
||||
/* 0x1C */ int field_0x1c[2];
|
||||
/* 0x24 */ u8 field_0x24[0x34 - 0x24];
|
||||
J3DAnmColorKeyTable * getAnmTable(u8 idx) const { return mpTable[idx]; }
|
||||
|
||||
protected:
|
||||
/* 0x1C */ J3DAnmColorKeyTable* mpTable[2];
|
||||
/* 0x24 */ s16* mColorR;
|
||||
/* 0x28 */ s16* mColorG;
|
||||
/* 0x2C */ s16* mColorB;
|
||||
/* 0x30 */ s16* mColorA;
|
||||
};
|
||||
|
||||
class J3DAnmVtxColorFull : public J3DAnmVtxColor {
|
||||
public:
|
||||
friend class J3DAnmFullLoader_v15;
|
||||
|
||||
J3DAnmVtxColorFull() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x1c[i] = 0;
|
||||
mpTable[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~J3DAnmVtxColorFull();
|
||||
virtual void getColor(u8, u16, GXColor*) const;
|
||||
|
||||
private:
|
||||
/* 0x1C */ int field_0x1c[2];
|
||||
/* 0x24 */ u8 field_0x24[0x34 - 0x24];
|
||||
J3DAnmColorFullTable * getAnmTable(u8 idx) const { return mpTable[idx]; }
|
||||
|
||||
protected:
|
||||
/* 0x1C */ J3DAnmColorFullTable* mpTable[2];
|
||||
/* 0x24 */ u8* mColorR;
|
||||
/* 0x28 */ u8* mColorG;
|
||||
/* 0x2C */ u8* mColorB;
|
||||
/* 0x30 */ u8* mColorA;
|
||||
};
|
||||
|
||||
class J3DAnmCluster : public J3DAnmBase {
|
||||
@@ -767,13 +790,13 @@ public:
|
||||
friend class J3DAnmKeyLoader_v15;
|
||||
|
||||
J3DAnmClusterKey() : J3DAnmCluster(3, NULL) {
|
||||
field_0x14 = 0;
|
||||
mAnmTable = NULL;
|
||||
}
|
||||
virtual ~J3DAnmClusterKey() {}
|
||||
virtual f32 getWeight(u16) const;
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmClusterKeyTable* field_0x14;
|
||||
/* 0x14 */ J3DAnmClusterKeyTable* mAnmTable;
|
||||
};
|
||||
|
||||
class J3DFrameCtrl {
|
||||
|
||||
@@ -242,18 +242,65 @@ f32 J3DAnmClusterFull::getWeight(u16 idx) const {
|
||||
return mWeight[maxFrame - 1 + getAnmTable()[idx].mOffset];
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
f32 J3DGetKeyFrameInterpolation(f32, J3DAnmKeyTableBase*, T*) {
|
||||
}
|
||||
|
||||
/* 802F1188-802F120C .text getWeight__16J3DAnmClusterKeyCFUs */
|
||||
f32 J3DAnmClusterKey::getWeight(u16) const {
|
||||
f32 J3DAnmClusterKey::getWeight(u16 idx) const {
|
||||
/* Nonmatching */
|
||||
J3DAnmKeyTableBase& table = mAnmTable[idx].mWeightTable;
|
||||
if (table.mMaxFrame != 0 && table.mMaxFrame != 1) {
|
||||
return J3DGetKeyFrameInterpolation<f32>(getFrame(), &table, &mWeight[table.mOffset]);
|
||||
} else if (table.mMaxFrame == 0) {
|
||||
return 1.0f;
|
||||
} else {
|
||||
return mWeight[table.mOffset];
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F120C-802F14B4 .text getColor__18J3DAnmVtxColorFullCFUcUsP8_GXColor */
|
||||
void J3DAnmVtxColorFull::getColor(u8, u16, GXColor* dst) const {
|
||||
/* Nonmatching */
|
||||
void J3DAnmVtxColorFull::getColor(u8 col, u16 idx, GXColor* dst) const {
|
||||
{
|
||||
u16 maxFrame = getAnmTable(col)[idx].mRMaxFrame;
|
||||
if (0.0f <= getFrame() && getFrame() < maxFrame)
|
||||
dst->r = mColorR[(s32)getFrame() + getAnmTable(col)[idx].mROffset];
|
||||
else if (getFrame() < 0.0f)
|
||||
dst->r = mColorR[getAnmTable(col)[idx].mROffset];
|
||||
else
|
||||
dst->r = mColorR[maxFrame - 1 + getAnmTable(col)[idx].mROffset];
|
||||
}
|
||||
{
|
||||
u16 maxFrame = getAnmTable(col)[idx].mGMaxFrame;
|
||||
if (0.0f <= getFrame() && getFrame() < maxFrame)
|
||||
dst->g = mColorG[(s32)getFrame() + getAnmTable(col)[idx].mGOffset];
|
||||
else if (getFrame() < 0.0f)
|
||||
dst->g = mColorG[getAnmTable(col)[idx].mGOffset];
|
||||
else
|
||||
dst->g = mColorG[maxFrame - 1 + getAnmTable(col)[idx].mGOffset];
|
||||
}
|
||||
{
|
||||
u16 maxFrame = getAnmTable(col)[idx].mBMaxFrame;
|
||||
if (0.0f <= getFrame() && getFrame() < maxFrame)
|
||||
dst->b = mColorB[(s32)getFrame() + getAnmTable(col)[idx].mBOffset];
|
||||
else if (getFrame() < 0.0f)
|
||||
dst->b = mColorB[getAnmTable(col)[idx].mBOffset];
|
||||
else
|
||||
dst->b = mColorB[maxFrame - 1 + getAnmTable(col)[idx].mBOffset];
|
||||
}
|
||||
{
|
||||
u16 maxFrame = getAnmTable(col)[idx].mAMaxFrame;
|
||||
if (0.0f <= getFrame() && getFrame() < maxFrame)
|
||||
dst->a = mColorA[(s32)getFrame() + getAnmTable(col)[idx].mAOffset];
|
||||
else if (getFrame() < 0.0f)
|
||||
dst->a = mColorA[getAnmTable(col)[idx].mAOffset];
|
||||
else
|
||||
dst->a = mColorA[maxFrame - 1 + getAnmTable(col)[idx].mAOffset];
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F14B4-802F17D0 .text getColor__17J3DAnmVtxColorKeyCFUcUsP8_GXColor */
|
||||
void J3DAnmVtxColorKey::getColor(u8, u16, GXColor* dst) const {
|
||||
void J3DAnmVtxColorKey::getColor(u8 col, u16 idx, GXColor* dst) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -382,11 +429,171 @@ void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DModelData* modelData) {
|
||||
/* 802F22E0-802F2624 .text getTevColorReg__15J3DAnmTevRegKeyCFUsP11_GXColorS10 */
|
||||
void J3DAnmTevRegKey::getTevColorReg(u16 idx, GXColorS10* dst) const {
|
||||
/* Nonmatching */
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmCRegKeyTable()[idx].mRTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->r = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->r = mAnmCRegDataR[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmCRegDataR[table.mOffset]);
|
||||
if (v < -1024.0f)
|
||||
dst->r = -1024;
|
||||
if (v > 1023.0f)
|
||||
dst->r = 1023;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->r = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmCRegKeyTable()[idx].mGTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->g = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->g = mAnmCRegDataG[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmCRegDataG[table.mOffset]);
|
||||
if (v < -1024.0f)
|
||||
dst->g = -1024;
|
||||
if (v > 1023.0f)
|
||||
dst->g = 1023;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->g = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmCRegKeyTable()[idx].mBTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->b = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->b = mAnmCRegDataB[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmCRegDataB[table.mOffset]);
|
||||
if (v < -1024.0f)
|
||||
dst->b = -1024;
|
||||
if (v > 1023.0f)
|
||||
dst->b = 1023;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->b = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmCRegKeyTable()[idx].mATable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->a = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->a = mAnmCRegDataA[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmCRegDataA[table.mOffset]);
|
||||
if (v < -1024.0f)
|
||||
dst->a = -1024;
|
||||
if (v > 1023.0f)
|
||||
dst->a = 1023;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->a = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F2624-802F2968 .text getTevKonstReg__15J3DAnmTevRegKeyCFUsP8_GXColor */
|
||||
void J3DAnmTevRegKey::getTevKonstReg(u16 idx, GXColor* dst) const {
|
||||
/* Nonmatching */
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmKRegKeyTable()[idx].mRTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->r = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->r = mAnmKRegDataR[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmKRegDataR[table.mOffset]);
|
||||
if (v < 0.0f)
|
||||
dst->r = 0;
|
||||
if (v > 255.0f)
|
||||
dst->r = 255;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->r = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmKRegKeyTable()[idx].mGTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->g = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->g = mAnmKRegDataG[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmKRegDataG[table.mOffset]);
|
||||
if (v < 0.0f)
|
||||
dst->g = 0;
|
||||
if (v > 255.0f)
|
||||
dst->g = 255;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->g = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmKRegKeyTable()[idx].mBTable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->b = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->b = mAnmKRegDataB[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmKRegDataB[table.mOffset]);
|
||||
if (v < 0.0f)
|
||||
dst->b = 0;
|
||||
if (v > 255.0f)
|
||||
dst->b = 255;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->b = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
J3DAnmKeyTableBase& table = getAnmKRegKeyTable()[idx].mATable;
|
||||
switch (table.mMaxFrame) {
|
||||
case 0:
|
||||
dst->a = 0;
|
||||
break;
|
||||
case 1:
|
||||
dst->a = mAnmKRegDataA[table.mOffset];
|
||||
break;
|
||||
default:
|
||||
f32 v = J3DGetKeyFrameInterpolation<s16>(getFrame(), &table, &mAnmKRegDataA[table.mOffset]);
|
||||
if (v < 0.0f)
|
||||
dst->a = 0;
|
||||
if (v > 255.0f)
|
||||
dst->a = 255;
|
||||
if (0.0f <= v && v <= 255.0f)
|
||||
dst->a = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 802F2968-802F2A64 .text searchUpdateMaterialID__15J3DAnmTevRegKeyFP16J3DMaterialTable */
|
||||
|
||||
@@ -343,8 +343,28 @@ void J3DAnmFullLoader_v15::readAnmVtxColor(const J3DAnmVtxColorFullData* param_1
|
||||
}
|
||||
|
||||
/* 803001B0-80300318 .text setAnmVtxColor__20J3DAnmFullLoader_v15FP18J3DAnmVtxColorFullPC22J3DAnmVtxColorFullData */
|
||||
void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull*, const J3DAnmVtxColorFullData*) {
|
||||
void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull* dst, const J3DAnmVtxColorFullData* data) {
|
||||
/* Nonmatching */
|
||||
dst->mFrameMax = data->mFrameMax;
|
||||
dst->mAttribute = data->field_0x8;
|
||||
dst->mFrame = 0.0f;
|
||||
dst->mAnmTableNum[0] = data->mAnmTableNum[0];
|
||||
dst->mAnmTableNum[1] = data->mAnmTableNum[1];
|
||||
dst->mpTable[0] = JSUConvertOffsetToPtr<J3DAnmColorFullTable>(data, (void*)data->mTableOffsets[0]);
|
||||
dst->mpTable[1] = JSUConvertOffsetToPtr<J3DAnmColorFullTable>(data, (void*)data->mTableOffsets[1]);
|
||||
dst->mAnmVtxColorIndexData[0] = JSUConvertOffsetToPtr<J3DAnmVtxColorIndexData>(data, (void*)data->mVtxColorIndexDataOffsets[0]);
|
||||
dst->mAnmVtxColorIndexData[1] = JSUConvertOffsetToPtr<J3DAnmVtxColorIndexData>(data, (void*)data->mVtxColorIndexDataOffsets[1]);
|
||||
void* indexPtr0 = JSUConvertOffsetToPtr<u16>(data, (void*)data->mVtxColorIndexPointerOffsets[0]);
|
||||
void* indexPtr1 = JSUConvertOffsetToPtr<u16>(data, (void*)data->mVtxColorIndexPointerOffsets[1]);
|
||||
|
||||
for (s32 i = 0; i < data->mIndexNum[0]; i++) {
|
||||
// dst->mpIndexPtr
|
||||
}
|
||||
|
||||
dst->mColorR = JSUConvertOffsetToPtr<u8>(data, (void*)data->mRValuesOffset);
|
||||
dst->mColorG = JSUConvertOffsetToPtr<u8>(data, (void*)data->mGValuesOffset);
|
||||
dst->mColorB = JSUConvertOffsetToPtr<u8>(data, (void*)data->mBValuesOffset);
|
||||
dst->mColorA = JSUConvertOffsetToPtr<u8>(data, (void*)data->mAValuesOffset);
|
||||
}
|
||||
|
||||
/* 80300318-80300464 .text load__19J3DAnmKeyLoader_v15FPCv */
|
||||
@@ -571,6 +591,27 @@ void J3DAnmKeyLoader_v15::readAnmVtxColor(const J3DAnmVtxColorKeyData* param_1)
|
||||
}
|
||||
|
||||
/* 80300C5C-80300DC4 .text setAnmVtxColor__19J3DAnmKeyLoader_v15FP17J3DAnmVtxColorKeyPC21J3DAnmVtxColorKeyData */
|
||||
void J3DAnmKeyLoader_v15::setAnmVtxColor(J3DAnmVtxColorKey*, const J3DAnmVtxColorKeyData*) {
|
||||
void J3DAnmKeyLoader_v15::setAnmVtxColor(J3DAnmVtxColorKey* dst, const J3DAnmVtxColorKeyData* data) {
|
||||
/* Nonmatching */
|
||||
|
||||
dst->mFrameMax = data->mFrameMax;
|
||||
dst->mAttribute = data->field_0x8;
|
||||
dst->mFrame = 0.0f;
|
||||
dst->mAnmTableNum[0] = data->mAnmTableNum[0];
|
||||
dst->mAnmTableNum[1] = data->mAnmTableNum[1];
|
||||
dst->mpTable[0] = JSUConvertOffsetToPtr<J3DAnmColorKeyTable>(data, (void*)data->mTableOffsets[0]);
|
||||
dst->mpTable[1] = JSUConvertOffsetToPtr<J3DAnmColorKeyTable>(data, (void*)data->mTableOffsets[1]);
|
||||
dst->mAnmVtxColorIndexData[0] = JSUConvertOffsetToPtr<J3DAnmVtxColorIndexData>(data, (void*)data->mVtxColorIndexDataOffsets[0]);
|
||||
dst->mAnmVtxColorIndexData[1] = JSUConvertOffsetToPtr<J3DAnmVtxColorIndexData>(data, (void*)data->mVtxColorIndexDataOffsets[1]);
|
||||
void* indexPtr0 = JSUConvertOffsetToPtr<u16>(data, (void*)data->mVtxColorIndexPointerOffsets[0]);
|
||||
void* indexPtr1 = JSUConvertOffsetToPtr<u16>(data, (void*)data->mVtxColorIndexPointerOffsets[1]);
|
||||
|
||||
for (s32 i = 0; i < data->mIndexNum[0]; i++) {
|
||||
// dst->mpIndexPtr
|
||||
}
|
||||
|
||||
dst->mColorR = JSUConvertOffsetToPtr<s16>(data, (void*)data->mRValuesOffset);
|
||||
dst->mColorG = JSUConvertOffsetToPtr<s16>(data, (void*)data->mGValuesOffset);
|
||||
dst->mColorB = JSUConvertOffsetToPtr<s16>(data, (void*)data->mBValuesOffset);
|
||||
dst->mColorA = JSUConvertOffsetToPtr<s16>(data, (void*)data->mAValuesOffset);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user