Implement/match MxSmack::LoadFrame (#348)

This commit is contained in:
Christian Semmler
2023-12-21 21:11:14 -05:00
committed by GitHub
parent 6d0d308c37
commit c51aed256b
3 changed files with 92 additions and 16 deletions

View File

@@ -45,7 +45,7 @@ void MxSmkPresenter::Destroy(MxBool p_fromDestructor)
// FUNCTION: LEGO1 0x100b3940
void MxSmkPresenter::LoadHeader(MxStreamChunk* p_chunk)
{
MxSmack::LoadHeaderAndTrees(p_chunk->GetData(), &m_mxSmack);
MxSmack::LoadHeader(p_chunk->GetData(), &m_mxSmack);
}
// FUNCTION: LEGO1 0x100b3960
@@ -65,14 +65,14 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
MxU8* bitmapData = m_bitmap->GetBitmapData();
MxU8* chunkData = p_chunk->GetData();
MxBool und = m_mxSmack.m_frameTypes[m_unk0x71c] & 1;
MxBool paletteChanged = m_mxSmack.m_frameTypes[m_unk0x71c] & 1;
m_unk0x71c++;
VTable0x88();
MxRectList list(TRUE);
MxSmack::FUN_100c5db0(bitmapInfo, bitmapData, &m_mxSmack, chunkData, und, &list);
MxSmack::LoadFrame(bitmapInfo, bitmapData, &m_mxSmack, chunkData, paletteChanged, &list);
if (((MxDSMediaAction*) m_action)->GetPaletteManagement() && und)
if (((MxDSMediaAction*) m_action)->GetPaletteManagement() && paletteChanged)
RealizePalette();
MxRect32 invalidateRect;
@@ -98,7 +98,7 @@ void MxSmkPresenter::VTable0x88()
if (m_mxSmack.m_smackTag.Frames == m_unk0x71c) {
m_unk0x71c = 0;
// TODO: struct incorrect, Palette at wrong offset?
memset(m_mxSmack.m_smackTag.Palette, 0, sizeof(m_mxSmack.m_smackTag.Palette));
memset(&m_mxSmack.m_smackTag.Palette[4], 0, sizeof(m_mxSmack.m_smackTag.Palette));
}
}
}