Clear unknowns in MxSmkPresenter and MxLoopingSmkPresenter (#1658)

This commit is contained in:
Fabian Neundorf
2025-07-27 17:27:51 +02:00
committed by GitHub
parent 0442fadc0e
commit 9f242021a4
4 changed files with 14 additions and 14 deletions

View File

@@ -25,12 +25,12 @@ public:
return HandlerClassName();
}
void RepeatingTickle() override; // vtable+0x24
MxResult AddToManager() override; // vtable+0x34
void Destroy() override; // vtable+0x38
void NextFrame() override; // vtable+0x64
void VTable0x88() override; // vtable+0x88
virtual void VTable0x8c(); // vtable+0x8c
void RepeatingTickle() override; // vtable+0x24
MxResult AddToManager() override; // vtable+0x34
void Destroy() override; // vtable+0x38
void NextFrame() override; // vtable+0x64
void ResetCurrentFrameAtEnd() override; // vtable+0x88
virtual void LoadFrameIfRequired(); // vtable+0x8c
private:
void Init();

View File

@@ -38,7 +38,7 @@ public:
void CreateBitmap() override; // vtable+0x60
void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
void RealizePalette() override; // vtable+0x70
virtual void VTable0x88(); // vtable+0x88
virtual void ResetCurrentFrameAtEnd(); // vtable+0x88
// SYNTHETIC: LEGO1 0x100b3850
// MxSmkPresenter::`scalar deleting destructor'

View File

@@ -39,7 +39,7 @@ void MxLoopingSmkPresenter::Destroy(MxBool p_fromDestructor)
}
// FUNCTION: LEGO1 0x100b4a00
void MxLoopingSmkPresenter::VTable0x88()
void MxLoopingSmkPresenter::ResetCurrentFrameAtEnd()
{
if (m_mxSmk.m_smackTag.Frames == m_currentFrame) {
m_currentFrame = 0;
@@ -66,7 +66,7 @@ void MxLoopingSmkPresenter::NextFrame()
}
// FUNCTION: LEGO1 0x100b4a90
void MxLoopingSmkPresenter::VTable0x8c()
void MxLoopingSmkPresenter::LoadFrameIfRequired()
{
if (m_action->GetDuration() < m_elapsedDuration) {
ProgressTickleState(e_freezing);
@@ -110,7 +110,7 @@ void MxLoopingSmkPresenter::RepeatingTickle()
break;
}
VTable0x8c();
LoadFrameIfRequired();
m_loopingChunkCursor->Next(chunk);

View File

@@ -70,7 +70,7 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
MxBool paletteChanged = m_mxSmk.m_frameTypes[m_currentFrame] & 1;
m_currentFrame++;
VTable0x88();
ResetCurrentFrameAtEnd();
MxRect32List rects(TRUE);
MxSmk::LoadFrame(bitmapInfo, bitmapData, &m_mxSmk, chunkData, paletteChanged, &rects);
@@ -91,11 +91,11 @@ void MxSmkPresenter::LoadFrame(MxStreamChunk* p_chunk)
}
// FUNCTION: LEGO1 0x100b4260
void MxSmkPresenter::VTable0x88()
void MxSmkPresenter::ResetCurrentFrameAtEnd()
{
if ((m_mxSmk.m_smackTag.SmackerType & 1) != 0) {
MxU32 und = (m_currentFrame % m_mxSmk.m_smackTag.Frames);
if (1 < m_currentFrame && und == 1) {
MxU32 validCurrentFrame = (m_currentFrame % m_mxSmk.m_smackTag.Frames);
if (1 < m_currentFrame && validCurrentFrame == 1) {
m_currentFrame = 1;
}
}