[AI] List for pointers to MxRect32 rectangles.
[AI] Rectangle using 32-bit signed integer coordinates.
void SmackDoTables(u8 *p_huffmanTrees, u8 *p_huffmanTables, u32 p_codeSize, u32 p_abSize, u32 p_detailSize, u32 p_typeSize)
[AI] Generates Huffman tables required for decoding a Smacker frame.
u32 SmackGetSizeDeltas(u32 p_width, u32 p_height)
[AI] Returns the size required for frame delta data given width and height.
u8 SmackGetRect(u8 *p_unk0x6b4, u32 *p_rect)
[AI] Reads a rectangle from the frame update information.
void SmackDoFrameToBuffer(u8 *p_source, u8 *p_huffmanTables, u8 *p_unk0x6b4)
[AI] Decompress a single Smacker video frame into a provided buffer.
u32 SmackGetSizeTables()
[AI] External functions from SMACK.LIB used for decoding Smacker video data.
[AI] Represents a bitmap information header plus a 256-color palette, matching the layout for 8-bit D...
[AI] The MxSmk struct encapsulates all data required to decode and display a Smacker (SMK) video stre...
MxU32 * m_frameSizes
[AI] Array of frame sizes (in bytes), one entry per video frame (plus ring frame if present).
MxU8 * m_huffmanTrees
[AI] Huffman trees used for decompressing video frames.
MxU32 m_maxFrameSize
[AI] Maximum size of any frame, used for allocation.
static MxResult LoadFrame(MxBITMAPINFO *p_bitmapInfo, MxU8 *p_bitmapData, MxSmk *p_mxSmk, MxU8 *p_chunkData, MxBool p_paletteChanged, MxRect32List *p_list)
[AI] Decompresses and loads a single Smacker frame into a bitmap buffer, updating palette if needed.
MxU8 * m_unk0x6b4
[AI] Buffer/context for decoding frame delta data; referenced throughout decompression ([AI_SUGGESTED...
MxU8 * m_frameTypes
[AI] Array of frame types, one entry per frame.
static void Destroy(MxSmk *p_mxSmk)
[AI] Cleans up and deallocates all resources associated with this MxSmk.
static MxResult LoadHeader(MxU8 *p_data, MxSmk *p_mxSmk)
[AI] Loads the SMK header and initializes decoding structures for a Smacker video.
undefined m_unk0x390[784]
[AI] Reserved/unused; aligns struct to file format ([AI_SUGGESTED_NAME: paddingOrWorkingBuffer])
MxU8 * m_huffmanTables
[AI] Generated decoding tables for use in SmackDoFrameToBuffer.
SmackTag m_smackTag
[AI] Metadata block from the Smacker file header.
static MxBool GetRect(MxU8 *p_unk0x6b4, MxU16 *p_und, u32 *p_smackRect, MxRect32 *p_rect)
[AI] Retrieves and merges rectangles describing updated regions of the current frame.