J3DAnmLoader

This commit is contained in:
Jasper St. Pierre
2024-01-14 15:41:50 -08:00
parent d1fb79fed8
commit 17c22d79a2
3 changed files with 18 additions and 12 deletions
+1 -1
View File
@@ -898,7 +898,7 @@ config.libs = [
Object(Matching, "JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DJointFactory.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DShapeFactory.cpp"),
Object(NonMatching, "JSystem/J3DGraphLoader/J3DAnmLoader.cpp"),
Object(Matching, "JSystem/J3DGraphLoader/J3DAnmLoader.cpp"),
],
),
JSystemLib(
@@ -21,8 +21,6 @@ struct J3DAnmColorKeyTable {
J3DAnmKeyTableBase mAInfo;
}; // Size = 0x18
struct J3DAnmVtxColorIndexData;
struct J3DAnmColorFullTable {
/* 0x00 */ u16 mRMaxFrame;
/* 0x02 */ u16 mROffset;
@@ -683,6 +681,12 @@ private:
/* 0x40 */ J3DAnmColorFullTable * mAnmTable;
};
class J3DAnmVtxColorIndexData {
public:
/* 0x00 */ u16 mNum;
/* 0x04 */ void* mpData;
};
class J3DAnmVtxColor : public J3DAnmBase {
public:
J3DAnmVtxColor() : J3DAnmBase(0) {
@@ -697,10 +701,11 @@ public:
virtual ~J3DAnmVtxColor();
virtual void getColor(u8, u16, GXColor*) const {}
inline J3DAnmVtxColorIndexData* getAnmVtxColorIndexData(u8 idx, u16 frame) { return &mAnmVtxColorIndexData[idx][frame]; }
protected:
/* 0x10 */ s16 mAnmTableNum[2];
/* 0x14 */ void* mAnmVtxColorIndexData[2];
/* 0x10 */ u16 mAnmTableNum[2];
/* 0x14 */ J3DAnmVtxColorIndexData* mAnmVtxColorIndexData[2];
}; // Size: 0x1C
class J3DAnmVtxColorKey : public J3DAnmVtxColor {
+8 -7
View File
@@ -344,7 +344,6 @@ void J3DAnmFullLoader_v15::readAnmVtxColor(const J3DAnmVtxColorFullData* param_1
/* 803001B0-80300318 .text setAnmVtxColor__20J3DAnmFullLoader_v15FP18J3DAnmVtxColorFullPC22J3DAnmVtxColorFullData */
void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull* dst, const J3DAnmVtxColorFullData* data) {
/* Nonmatching */
dst->mFrameMax = data->mFrameMax;
dst->mAttribute = data->field_0x8;
dst->mFrame = 0.0f;
@@ -357,9 +356,10 @@ void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull* dst, const J3DAnmV
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
}
for (s32 i = 0; i < dst->mAnmTableNum[0]; i++)
dst->mAnmVtxColorIndexData[0][i].mpData = (void*)((s32)indexPtr0 + (s32)dst->mAnmVtxColorIndexData[0][i].mpData * 2);
for (s32 i = 0; i < dst->mAnmTableNum[1]; i++)
dst->mAnmVtxColorIndexData[1][i].mpData = (void*)((s32)indexPtr1 + (s32)dst->mAnmVtxColorIndexData[1][i].mpData * 2);
dst->mColorR = JSUConvertOffsetToPtr<u8>(data, (void*)data->mRValuesOffset);
dst->mColorG = JSUConvertOffsetToPtr<u8>(data, (void*)data->mGValuesOffset);
@@ -606,9 +606,10 @@ void J3DAnmKeyLoader_v15::setAnmVtxColor(J3DAnmVtxColorKey* dst, const J3DAnmVtx
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
}
for (s32 i = 0; i < dst->mAnmTableNum[0]; i++)
dst->mAnmVtxColorIndexData[0][i].mpData = (void*)((s32)indexPtr0 + (s32)dst->mAnmVtxColorIndexData[0][i].mpData * 2);
for (s32 i = 0; i < dst->mAnmTableNum[1]; i++)
dst->mAnmVtxColorIndexData[1][i].mpData = (void*)((s32)indexPtr1 + (s32)dst->mAnmVtxColorIndexData[1][i].mpData * 2);
dst->mColorR = JSUConvertOffsetToPtr<s16>(data, (void*)data->mRValuesOffset);
dst->mColorG = JSUConvertOffsetToPtr<s16>(data, (void*)data->mGValuesOffset);