mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Implement/match MxLoopingSmkPresenter (#351)
* Implement/match MxLoopingSmkPresenter * Rename variable * Rename variable
This commit is contained in:

committed by
GitHub

parent
e22ad6031c
commit
cdc7b43db2
@@ -21,7 +21,7 @@ MxSmkPresenter::~MxSmkPresenter()
|
||||
// FUNCTION: LEGO1 0x100b38d0
|
||||
void MxSmkPresenter::Init()
|
||||
{
|
||||
m_unk0x71c = 0;
|
||||
m_currentFrame = 0;
|
||||
memset(&m_mxSmack, 0, sizeof(m_mxSmack));
|
||||
m_flags &= 0xfd;
|
||||
m_flags &= 0xfb;
|
||||
@@ -65,8 +65,8 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
||||
MxU8* bitmapData = m_bitmap->GetBitmapData();
|
||||
MxU8* chunkData = p_chunk->GetData();
|
||||
|
||||
MxBool paletteChanged = m_mxSmack.m_frameTypes[m_unk0x71c] & 1;
|
||||
m_unk0x71c++;
|
||||
MxBool paletteChanged = m_mxSmack.m_frameTypes[m_currentFrame] & 1;
|
||||
m_currentFrame++;
|
||||
VTable0x88();
|
||||
|
||||
MxRectList list(TRUE);
|
||||
@@ -90,13 +90,13 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
||||
void MxSmkPresenter::VTable0x88()
|
||||
{
|
||||
if ((m_mxSmack.m_smackTag.SmackerType & 1) != 0) {
|
||||
MxU32 und = (m_unk0x71c % m_mxSmack.m_smackTag.Frames);
|
||||
if (1 < m_unk0x71c && und == 1)
|
||||
m_unk0x71c = 1;
|
||||
MxU32 und = (m_currentFrame % m_mxSmack.m_smackTag.Frames);
|
||||
if (1 < m_currentFrame && und == 1)
|
||||
m_currentFrame = 1;
|
||||
}
|
||||
else {
|
||||
if (m_mxSmack.m_smackTag.Frames == m_unk0x71c) {
|
||||
m_unk0x71c = 0;
|
||||
if (m_mxSmack.m_smackTag.Frames == m_currentFrame) {
|
||||
m_currentFrame = 0;
|
||||
// TODO: struct incorrect, Palette at wrong offset?
|
||||
memset(&m_mxSmack.m_smackTag.Palette[4], 0, sizeof(m_mxSmack.m_smackTag.Palette));
|
||||
}
|
||||
@@ -111,6 +111,12 @@ void MxSmkPresenter::RealizePalette()
|
||||
delete palette;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b42f0
|
||||
MxResult MxSmkPresenter::AddToManager()
|
||||
{
|
||||
return MxVideoPresenter::AddToManager();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b4300
|
||||
void MxSmkPresenter::Destroy()
|
||||
{
|
||||
|
Reference in New Issue
Block a user