Add names from Smacker SDK

This commit is contained in:
Christian Semmler 2023-12-19 07:45:58 -05:00
parent f3e184b486
commit 12cd76a4f8
2 changed files with 13 additions and 11 deletions

View File

@ -69,13 +69,13 @@ MxResult MxSmack::LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack)
p_mxSmack->m_huffmanTables = new MxU8 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_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) { if (!p_mxSmack->m_huffmanTables) {
result = FAILURE; result = FAILURE;
} }
else { else {
DecodeHuffmanTrees( SmackDoTables(
huffmanTrees, huffmanTrees,
p_mxSmack->m_huffmanTables, p_mxSmack->m_huffmanTables,
HEADER(p_mxSmack).m_codeSize, HEADER(p_mxSmack).m_codeSize,
@ -84,7 +84,7 @@ MxResult MxSmack::LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack)
HEADER(p_mxSmack).m_typeSize 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]; p_mxSmack->m_unk0x6b4 = new MxU8[size];
memset(p_mxSmack->m_unk0x6b4, 0, size); memset(p_mxSmack->m_unk0x6b4, 0, size);
@ -142,14 +142,16 @@ void MxSmack::Destroy(MxSmack* p_mxSmack)
delete[] p_mxSmack->m_unk0x6b4; delete[] p_mxSmack->m_unk0x6b4;
} }
// Part of the Smacker SDK
// FUNCTION: LEGO1 0x100cd782 // FUNCTION: LEGO1 0x100cd782
MxU32 MxSmack::FUN_100cd782() MxU32 MxSmack::SmackGetSizeTables()
{ {
return 29800; return 29800;
} }
// STUB: LEGO1 0x100cd7e8 // STUB: LEGO1 0x100cd7e8
void MxSmack::DecodeHuffmanTrees( void MxSmack::SmackDoTables(
MxU8* p_huffmanTrees, MxU8* p_huffmanTrees,
MxU8* p_huffmanTables, MxU8* p_huffmanTables,
MxULong p_codeSize, MxULong p_codeSize,
@ -162,7 +164,7 @@ void MxSmack::DecodeHuffmanTrees(
} }
// STUB: LEGO1 0x100d052c // STUB: LEGO1 0x100d052c
MxULong MxSmack::FUN_100d052c(MxULong p_width, MxULong p_height) MxULong MxSmack::SmackGetSizeDeltas(MxULong p_width, MxULong p_height)
{ {
// TODO // TODO
return 0; return 0;

View File

@ -6,8 +6,6 @@
#include <smk.h> #include <smk.h>
// This might all be part of the RAD Game Tools Smacker SDK since it looks like C-style code
// SIZE 0x6b8 // SIZE 0x6b8
struct MxSmack { struct MxSmack {
Smack m_smack; // 0x00 Smack m_smack; // 0x00
@ -21,8 +19,10 @@ struct MxSmack {
static MxResult LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack); static MxResult LoadHeaderAndTrees(MxU8* p_data, MxSmack* p_mxSmack);
static void Destroy(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_huffmanTrees,
MxU8* p_huffmanTables, MxU8* p_huffmanTables,
MxULong p_codeSize, MxULong p_codeSize,
@ -30,7 +30,7 @@ struct MxSmack {
MxULong p_detailSize, MxULong p_detailSize,
MxULong p_typeSize 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 #endif // MXSMACK_H