mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Clear unknowns in MxSmkPresenter
and MxLoopingSmkPresenter
(#1658)
This commit is contained in:
@@ -25,12 +25,12 @@ public:
|
|||||||
return HandlerClassName();
|
return HandlerClassName();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RepeatingTickle() override; // vtable+0x24
|
void RepeatingTickle() override; // vtable+0x24
|
||||||
MxResult AddToManager() override; // vtable+0x34
|
MxResult AddToManager() override; // vtable+0x34
|
||||||
void Destroy() override; // vtable+0x38
|
void Destroy() override; // vtable+0x38
|
||||||
void NextFrame() override; // vtable+0x64
|
void NextFrame() override; // vtable+0x64
|
||||||
void VTable0x88() override; // vtable+0x88
|
void ResetCurrentFrameAtEnd() override; // vtable+0x88
|
||||||
virtual void VTable0x8c(); // vtable+0x8c
|
virtual void LoadFrameIfRequired(); // vtable+0x8c
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
|
@@ -38,7 +38,7 @@ public:
|
|||||||
void CreateBitmap() override; // vtable+0x60
|
void CreateBitmap() override; // vtable+0x60
|
||||||
void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
||||||
void RealizePalette() override; // vtable+0x70
|
void RealizePalette() override; // vtable+0x70
|
||||||
virtual void VTable0x88(); // vtable+0x88
|
virtual void ResetCurrentFrameAtEnd(); // vtable+0x88
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100b3850
|
// SYNTHETIC: LEGO1 0x100b3850
|
||||||
// MxSmkPresenter::`scalar deleting destructor'
|
// MxSmkPresenter::`scalar deleting destructor'
|
||||||
|
@@ -39,7 +39,7 @@ void MxLoopingSmkPresenter::Destroy(MxBool p_fromDestructor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b4a00
|
// FUNCTION: LEGO1 0x100b4a00
|
||||||
void MxLoopingSmkPresenter::VTable0x88()
|
void MxLoopingSmkPresenter::ResetCurrentFrameAtEnd()
|
||||||
{
|
{
|
||||||
if (m_mxSmk.m_smackTag.Frames == m_currentFrame) {
|
if (m_mxSmk.m_smackTag.Frames == m_currentFrame) {
|
||||||
m_currentFrame = 0;
|
m_currentFrame = 0;
|
||||||
@@ -66,7 +66,7 @@ void MxLoopingSmkPresenter::NextFrame()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b4a90
|
// FUNCTION: LEGO1 0x100b4a90
|
||||||
void MxLoopingSmkPresenter::VTable0x8c()
|
void MxLoopingSmkPresenter::LoadFrameIfRequired()
|
||||||
{
|
{
|
||||||
if (m_action->GetDuration() < m_elapsedDuration) {
|
if (m_action->GetDuration() < m_elapsedDuration) {
|
||||||
ProgressTickleState(e_freezing);
|
ProgressTickleState(e_freezing);
|
||||||
@@ -110,7 +110,7 @@ void MxLoopingSmkPresenter::RepeatingTickle()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
VTable0x8c();
|
LoadFrameIfRequired();
|
||||||
|
|
||||||
m_loopingChunkCursor->Next(chunk);
|
m_loopingChunkCursor->Next(chunk);
|
||||||
|
|
||||||
|
@@ -70,7 +70,7 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
|||||||
|
|
||||||
MxBool paletteChanged = m_mxSmk.m_frameTypes[m_currentFrame] & 1;
|
MxBool paletteChanged = m_mxSmk.m_frameTypes[m_currentFrame] & 1;
|
||||||
m_currentFrame++;
|
m_currentFrame++;
|
||||||
VTable0x88();
|
ResetCurrentFrameAtEnd();
|
||||||
|
|
||||||
MxRect32List rects(TRUE);
|
MxRect32List rects(TRUE);
|
||||||
MxSmk::LoadFrame(bitmapInfo, bitmapData, &m_mxSmk, chunkData, paletteChanged, &rects);
|
MxSmk::LoadFrame(bitmapInfo, bitmapData, &m_mxSmk, chunkData, paletteChanged, &rects);
|
||||||
@@ -91,11 +91,11 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b4260
|
// FUNCTION: LEGO1 0x100b4260
|
||||||
void MxSmkPresenter::VTable0x88()
|
void MxSmkPresenter::ResetCurrentFrameAtEnd()
|
||||||
{
|
{
|
||||||
if ((m_mxSmk.m_smackTag.SmackerType & 1) != 0) {
|
if ((m_mxSmk.m_smackTag.SmackerType & 1) != 0) {
|
||||||
MxU32 und = (m_currentFrame % m_mxSmk.m_smackTag.Frames);
|
MxU32 validCurrentFrame = (m_currentFrame % m_mxSmk.m_smackTag.Frames);
|
||||||
if (1 < m_currentFrame && und == 1) {
|
if (1 < m_currentFrame && validCurrentFrame == 1) {
|
||||||
m_currentFrame = 1;
|
m_currentFrame = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user