From 12cd76a4f8a0fe1f1e83dc875bf288ecfffc8fb8 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Tue, 19 Dec 2023 07:45:58 -0500 Subject: [PATCH] Add names from Smacker SDK --- LEGO1/mxsmack.cpp | 14 ++++++++------ LEGO1/mxsmack.h | 10 +++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/LEGO1/mxsmack.cpp b/LEGO1/mxsmack.cpp index 4979bae8..53d17621 100644 --- a/LEGO1/mxsmack.cpp +++ b/LEGO1/mxsmack.cpp @@ -69,13 +69,13 @@ MxResult MxSmack::LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack) p_mxSmack->m_huffmanTables = new MxU8 [HEADER(p_mxSmack).m_codeSize + HEADER(p_mxSmack).m_abSize + HEADER(p_mxSmack).m_detailSize + - HEADER(p_mxSmack).m_typeSize + FUN_100cd782()]; + HEADER(p_mxSmack).m_typeSize + SmackGetSizeTables()]; if (!p_mxSmack->m_huffmanTables) { result = FAILURE; } else { - DecodeHuffmanTrees( + SmackDoTables( huffmanTrees, p_mxSmack->m_huffmanTables, HEADER(p_mxSmack).m_codeSize, @@ -84,7 +84,7 @@ MxResult MxSmack::LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack) HEADER(p_mxSmack).m_typeSize ); - MxU32 size = FUN_100d052c(HEADER(p_mxSmack).m_width, HEADER(p_mxSmack).m_height) + 32; + MxU32 size = SmackGetSizeDeltas(HEADER(p_mxSmack).m_width, HEADER(p_mxSmack).m_height) + 32; p_mxSmack->m_unk0x6b4 = new MxU8[size]; memset(p_mxSmack->m_unk0x6b4, 0, size); @@ -142,14 +142,16 @@ void MxSmack::Destroy(MxSmack* p_mxSmack) delete[] p_mxSmack->m_unk0x6b4; } +// Part of the Smacker SDK + // FUNCTION: LEGO1 0x100cd782 -MxU32 MxSmack::FUN_100cd782() +MxU32 MxSmack::SmackGetSizeTables() { return 29800; } // STUB: LEGO1 0x100cd7e8 -void MxSmack::DecodeHuffmanTrees( +void MxSmack::SmackDoTables( MxU8* p_huffmanTrees, MxU8* p_huffmanTables, MxULong p_codeSize, @@ -162,7 +164,7 @@ void MxSmack::DecodeHuffmanTrees( } // STUB: LEGO1 0x100d052c -MxULong MxSmack::FUN_100d052c(MxULong p_width, MxULong p_height) +MxULong MxSmack::SmackGetSizeDeltas(MxULong p_width, MxULong p_height) { // TODO return 0; diff --git a/LEGO1/mxsmack.h b/LEGO1/mxsmack.h index d035dce1..d263d466 100644 --- a/LEGO1/mxsmack.h +++ b/LEGO1/mxsmack.h @@ -6,8 +6,6 @@ #include -// This might all be part of the RAD Game Tools Smacker SDK since it looks like C-style code - // SIZE 0x6b8 struct MxSmack { Smack m_smack; // 0x00 @@ -21,8 +19,10 @@ struct MxSmack { static MxResult LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack); static void Destroy(MxSmack* p_mxSmack); - static MxU32 FUN_100cd782(); - static void DecodeHuffmanTrees( + + // Part of the Smacker SDK + static MxU32 SmackGetSizeTables(); + static void SmackDoTables( MxU8* p_huffmanTrees, MxU8* p_huffmanTables, MxULong p_codeSize, @@ -30,7 +30,7 @@ struct MxSmack { MxULong p_detailSize, MxULong p_typeSize ); - static MxULong FUN_100d052c(MxULong p_width, MxULong p_height); + static MxULong SmackGetSizeDeltas(MxULong p_width, MxULong p_height); }; #endif // MXSMACK_H