diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-11-01 16:46:27 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-01 13:46:27 -0700 |
| commit | 21cb60624a6cb0c518f85af7688bf618de252650 (patch) | |
| tree | 942030fd3bf1ee4f28a0542f9fdf9b909c5d6fa1 /src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp | |
| parent | 09423b6fa00029d0325cbade59c78ae42f1014de (diff) | |
J3DMatBlock, J3DMaterialFactory work (#2233)
Diffstat (limited to 'src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp')
| -rw-r--r-- | src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp b/src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp index c53246008e..06ce608403 100644 --- a/src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp +++ b/src/JSystem/J3DGraphLoader/J3DModelLoaderCalcSize.cpp @@ -27,15 +27,14 @@ u16 J3DModelLoader::countMaterialNum(const void* stream) { } /* 803367D4-803369A0 331114 01CC+00 0/0 3/0 0/0 .text calcLoadSize__14J3DModelLoaderFPCvUl */ -// NONMATCHING size load issue u32 J3DModelLoader::calcLoadSize(void const* stream, u32 flags_) { int flags = flags_; const J3DModelFileData* header = static_cast<const J3DModelFileData*>(stream); - size_t size; + size_t size = 0; const J3DModelBlock* nextBlock = header->mBlocks; u32 i = 0; // TODO: What sizeof will get us a size of 0xE4? - size = 0xE4; + size += 0xE4; for (; i < header->mBlockNum; i++) { switch (nextBlock->mBlockType) { case 'INF1': @@ -116,12 +115,11 @@ u32 J3DModelLoader::calcLoadMaterialTableSize(const void* stream) { * calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl */ // NONMATCHING flags issue u32 J3DModelLoader::calcLoadBinaryDisplayListSize(const void* stream, u32 flags) { + u32 size = 0; const J3DModelFileData* header = (const J3DModelFileData*)stream; const J3DModelBlock* nextBlock = header->mBlocks; u32 i = 0; - u32 matFlags = flags & (J3DMLF_Material_UseIndirect | J3DMLF_26); - u32 flags2; - int size = sizeof(J3DModelData); + size += sizeof(J3DModelData); for (; i < header->mBlockNum; i++) { switch (nextBlock->mBlockType) { case 'INF1': @@ -141,18 +139,19 @@ u32 J3DModelLoader::calcLoadBinaryDisplayListSize(const void* stream, u32 flags) break; case 'MAT2': break; - case 'MAT3': - flags2 = (J3DMLF_21 | J3DMLF_Material_PE_Full | J3DMLF_Material_Color_LightOn); - flags2 |= matFlags; + case 'MAT3': { + u32 flags2 = (J3DMLF_21 | J3DMLF_Material_PE_Full | J3DMLF_Material_Color_LightOn); + flags2 |= flags & (J3DMLF_Material_UseIndirect | J3DMLF_26); mpMaterialBlock = (const J3DMaterialBlock*)nextBlock; if ((flags & (J3DMLF_13 | J3DMLF_DoBdlMaterialCalc)) == 0) { field_0x18 = 1; size += calcSizeMaterial((const J3DMaterialBlock*)nextBlock, flags2); } else if ((flags & (J3DMLF_13 | J3DMLF_DoBdlMaterialCalc)) == J3DMLF_DoBdlMaterialCalc) { field_0x18 = 1; - size += calcSizePatchedMaterial((const J3DMaterialBlock*)nextBlock, matFlags); + size += calcSizePatchedMaterial((const J3DMaterialBlock*)nextBlock, flags2); } break; + } case 'EVP1': size += calcSizeEnvelope((const J3DEnvelopeBlock*)nextBlock); break; @@ -191,7 +190,6 @@ u32 J3DModelLoader::calcSizeInformation(const J3DModelInfoBlock* block, u32 flag return size; } - /* 80336D64-80336D90 3316A4 002C+00 2/2 0/0 0/0 .text * calcSizeJoint__14J3DModelLoaderFPC13J3DJointBlock */ u32 J3DModelLoader::calcSizeJoint(const J3DJointBlock* block) { |
