Merge duplicate JSystem structs into a new header

This commit is contained in:
LagoLunatic
2024-01-03 21:30:38 -05:00
parent 13e7dc77c7
commit 512cf5512f
8 changed files with 96 additions and 129 deletions
+14 -14
View File
@@ -13,7 +13,7 @@ J3DAnmBase* J3DAnmLoaderDataBase::load(const void* i_data) {
if (!i_data) {
return NULL;
}
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)i_data;
const JSystemFileHeader* header = (const JSystemFileHeader*)i_data;
if (header->mMagic == 'J3D1') {
switch (header->mType) {
case 'bck1': {
@@ -86,7 +86,7 @@ J3DAnmBase* J3DAnmLoaderDataBase::load(const void* i_data) {
/* 802FF6C8-802FF9EC .text setResource__20J3DAnmLoaderDataBaseFP10J3DAnmBasePCv */
void J3DAnmLoaderDataBase::setResource(J3DAnmBase* param_1, const void* param_2) {
const J3DAnmDataHeader* header = (const J3DAnmDataHeader*)param_2;
const JSystemFileHeader* header = (const JSystemFileHeader*)param_2;
if (!header) {
return;
}
@@ -177,9 +177,9 @@ J3DAnmKeyLoader_v15::~J3DAnmKeyLoader_v15() {}
/* 802FFADC-802FFC28 .text load__20J3DAnmFullLoader_v15FPCv */
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++) {
const JSystemFileHeader* header = (const JSystemFileHeader*)param_1;
const JSystemBlockHeader* block = &header->mFirstBlock;
for (int i = 0; i < header->mBlockNum; i++) {
switch (block->mType) {
case 'ANF1':
readAnmTransform((J3DAnmTransformFullData*)block);
@@ -210,9 +210,9 @@ J3DAnmBase* J3DAnmFullLoader_v15::load(const void* param_1) {
/* 802FFC28-802FFDD4 .text setResource__20J3DAnmFullLoader_v15FP10J3DAnmBasePCv */
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++) {
const JSystemFileHeader* header = (const JSystemFileHeader*)param_2;
const JSystemBlockHeader* block = &header->mFirstBlock;
for (int i = 0; i < header->mBlockNum; i++) {
switch (block->mType) {
case 'ANF1':
if (param_1->getKind() == 0) {
@@ -369,9 +369,9 @@ void J3DAnmFullLoader_v15::setAnmVtxColor(J3DAnmVtxColorFull* dst, const J3DAnmV
/* 80300318-80300464 .text load__19J3DAnmKeyLoader_v15FPCv */
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++) {
const JSystemFileHeader* header = (const JSystemFileHeader*)param_1;
const JSystemBlockHeader* block = &header->mFirstBlock;
for (int i = 0; i < header->mBlockNum; i++) {
switch (block->mType) {
case 'ANK1':
readAnmTransform((J3DAnmTransformKeyData*)block);
@@ -402,9 +402,9 @@ J3DAnmBase* J3DAnmKeyLoader_v15::load(const void* param_1) {
/* 80300464-80300610 .text setResource__19J3DAnmKeyLoader_v15FP10J3DAnmBasePCv */
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++) {
const JSystemFileHeader* header = (const JSystemFileHeader*)param_2;
const JSystemBlockHeader* block = &header->mFirstBlock;
for (int i = 0; i < header->mBlockNum; i++) {
switch (block->mType) {
case 'ANK1':
if (param_1->getKind() == 0) {
@@ -33,7 +33,7 @@ void* J3DClusterLoader_v15::load(const void* i_data) {
mpDeformData->clear();
const JSystemFileHeader* fileHeader = (JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &fileHeader->mFirst;
const JSystemBlockHeader* block = &fileHeader->mFirstBlock;
for (int i = 0; i < fileHeader->mBlockNum; i++) {
switch (block->mType) {
case 'CLS1':
+20 -20
View File
@@ -18,15 +18,15 @@ J3DModelData* J3DModelLoaderDataBase::load(const void* i_data, u32 i_flags) {
if (i_data == NULL) {
return NULL;
}
const J3DModelFileData* fileHeader = (const J3DModelFileData*)i_data;
if (fileHeader->mMagic1 == 'J3D1' && fileHeader->mMagic2 == 'bmd1') {
const JSystemFileHeader* fileHeader = (const JSystemFileHeader*)i_data;
if (fileHeader->mMagic == 'J3D1' && fileHeader->mType == 'bmd1') {
return NULL;
}
if (fileHeader->mMagic1 == 'J3D2' && fileHeader->mMagic2 == 'bmd2') {
if (fileHeader->mMagic == 'J3D2' && fileHeader->mType == 'bmd2') {
J3DModelLoader_v21 loader;
return loader.load(i_data, i_flags);
}
if (fileHeader->mMagic1 == 'J3D2' && fileHeader->mMagic2 == 'bmd3') {
if (fileHeader->mMagic == 'J3D2' && fileHeader->mType == 'bmd3') {
J3DModelLoader_v26 loader;
return loader.load(i_data, i_flags);
}
@@ -38,8 +38,8 @@ J3DMaterialTable* J3DModelLoaderDataBase::loadMaterialTable(const void* i_data)
if (!i_data) {
return NULL;
}
const J3DModelFileData* fileHeader = (const J3DModelFileData*)i_data;
if (fileHeader->mMagic1 == 'J3D2' && fileHeader->mMagic2 == 'bmt3') {
const JSystemFileHeader* fileHeader = (const JSystemFileHeader*)i_data;
if (fileHeader->mMagic == 'J3D2' && fileHeader->mType == 'bmt3') {
J3DModelLoader_v26 loader;
return loader.loadMaterialTable(i_data);
}
@@ -51,8 +51,8 @@ J3DModelData* J3DModelLoaderDataBase::loadBinaryDisplayList(const void* i_data,
if (!i_data) {
return NULL;
}
const J3DModelFileData* fileHeader = (const J3DModelFileData*)i_data;
if (fileHeader->mMagic1 == 'J3D2' && (fileHeader->mMagic2 == 'bdl3' || fileHeader->mMagic2 == 'bdl4')) {
const JSystemFileHeader* fileHeader = (const JSystemFileHeader*)i_data;
if (fileHeader->mMagic == 'J3D2' && (fileHeader->mType == 'bdl3' || fileHeader->mType == 'bdl4')) {
J3DModelLoader_v26 loader;
return loader.loadBinaryDisplayList(i_data, i_flags);
}
@@ -67,10 +67,10 @@ J3DModelData* J3DModelLoader::load(const void* i_data, u32 i_flags) {
mpModelData->mpRawData = i_data;
mpModelData->setModelDataType(0);
mpMaterialTable = &mpModelData->mMaterialTable;
const J3DModelFileData* data = (J3DModelFileData*)i_data;
const J3DModelBlock* block = data->mBlocks;
const JSystemFileHeader* data = (JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &data->mFirstBlock;
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'INF1':
readInformation((J3DModelInfoBlock*)block, (u32)i_flags); // cast fixes regalloc
break;
@@ -120,10 +120,10 @@ J3DModelData* J3DModelLoader::load(const void* i_data, u32 i_flags) {
J3DMaterialTable* J3DModelLoader::loadMaterialTable(const void* i_data) {
mpMaterialTable = new J3DMaterialTable();
mpMaterialTable->clear();
const J3DModelFileData* data = (J3DModelFileData*)i_data;
const J3DModelBlock* block = data->mBlocks;
const JSystemFileHeader* data = (JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &data->mFirstBlock;
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'MAT3':
readMaterialTable((J3DMaterialBlock*)block, 0x51100000);
break;
@@ -152,10 +152,10 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(const void* i_data, u32 i_fl
mpModelData->mpRawData = i_data;
mpModelData->setModelDataType(1);
mpMaterialTable = &mpModelData->mMaterialTable;
const J3DModelFileData* data = (J3DModelFileData*)i_data;
const J3DModelBlock* block = data->mBlocks;
const JSystemFileHeader* data = (JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &data->mFirstBlock;
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'INF1':
readInformation((J3DModelInfoBlock*)block, (u32)i_flags); // cast fixes regalloc
break;
@@ -309,7 +309,7 @@ void J3DModelLoader::readVertex(const J3DVertexBlock* i_block) {
} else if (nrm_end != NULL) {
vertex_data.mNrmNum = ((u32)nrm_end - (u32)vertex_data.mVtxNrmArray) / nrm_size + 1;
} else {
vertex_data.mNrmNum = (i_block->mBlockSize - (u32)i_block->mpVtxNrmArray) / nrm_size + 1;
vertex_data.mNrmNum = (i_block->mNextOffset - (u32)i_block->mpVtxNrmArray) / nrm_size + 1;
}
void* color0_end = NULL;
@@ -324,13 +324,13 @@ void J3DModelLoader::readVertex(const J3DVertexBlock* i_block) {
} else if (color0_end != NULL) {
vertex_data.mColNum = ((u32)color0_end - (u32)vertex_data.mVtxColorArray[0]) / 4 + 1;
} else {
vertex_data.mColNum = (i_block->mBlockSize - (u32)i_block->mpVtxColorArray[0]) / 4 + 1;
vertex_data.mColNum = (i_block->mNextOffset - (u32)i_block->mpVtxColorArray[0]) / 4 + 1;
}
if (vertex_data.mVtxTexCoordArray[0] == NULL) {
vertex_data.mTexCoordNum = 0;
} else {
vertex_data.mTexCoordNum = (i_block->mBlockSize - (u32)i_block->mpVtxTexCoordArray[0]) / 8 + 1;
vertex_data.mTexCoordNum = (i_block->mNextOffset - (u32)i_block->mpVtxTexCoordArray[0]) / 8 + 1;
}
}
@@ -13,10 +13,10 @@
/* 802FD828-802FD868 .text countMaterialNum__14J3DModelLoaderFPCv */
u16 J3DModelLoader::countMaterialNum(const void* i_data) {
const J3DModelFileData* header = (const J3DModelFileData*)i_data;
const J3DModelBlock* block = &header->mBlocks[0];
const JSystemFileHeader* header = (const JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &header->mFirstBlock;
for (int i = 0; i < header->mBlockNum; block = block->getNext(), i++) {
if (block->mBlockType == 'MAT3') {
if (block->mType == 'MAT3') {
return ((const J3DMaterialBlock*)block)->mMaterialNum;
}
}
@@ -27,13 +27,13 @@ u16 J3DModelLoader::countMaterialNum(const void* i_data) {
u32 J3DModelLoader::calcLoadSize(const void* i_data, u32 i_flags) {
u32 flags;
u32 size = 0;
const J3DModelFileData* header = (const J3DModelFileData*)i_data;
const J3DModelBlock* block = &header->mBlocks[0];
const JSystemFileHeader* header = (const JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &header->mFirstBlock;
u32 i = 0;
flags = (u32)i_flags;
size += sizeof(J3DModelData);
for (; i < header->mBlockNum; i++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'INF1':
size += calcSizeInformation((J3DModelInfoBlock*)block, flags);
break;
@@ -69,13 +69,13 @@ u32 J3DModelLoader::calcLoadSize(const void* i_data, u32 i_flags) {
/* 802FDA10-802FDB0C .text calcLoadMaterialTableSize__14J3DModelLoaderFPCv */
u32 J3DModelLoader::calcLoadMaterialTableSize(const void* i_data) {
u32 size = 0;
const J3DModelFileData* header = (const J3DModelFileData*)i_data;
const J3DModelBlock* block = &header->mBlocks[0];
const JSystemFileHeader* header = (const JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &header->mFirstBlock;
bool hasTextureTable = false;
u32 i = 0;
size += sizeof(J3DMaterialTable);
for (; i < header->mBlockNum; i++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'MAT2':
break;
case 'MAT3':
@@ -103,12 +103,12 @@ u32 J3DModelLoader::calcLoadBinaryDisplayListSize(const void* i_data, u32 i_flag
/* Nonmatching - regalloc */
u32 i;
u32 size = 0;
const J3DModelFileData* header = (const J3DModelFileData*)i_data;
const J3DModelBlock* block = &header->mBlocks[0];
const JSystemFileHeader* header = (const JSystemFileHeader*)i_data;
const JSystemBlockHeader* block = &header->mFirstBlock;
i = 0;
size += sizeof(J3DModelData);
for (; i < header->mBlockNum; i++) {
switch (block->mBlockType) {
switch (block->mType) {
case 'INF1':
size += calcSizeInformation((const J3DModelInfoBlock*)block, i_flags);
break;