From c105741b9125e9a1abc3d336ca8117e0b62c7605 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Mon, 15 Jan 2024 14:26:17 -0500 Subject: [PATCH] Fixes --- .../lego/legoomni/include/legoanimpresenter.h | 2 +- .../legoomni/src/video/legoanimpresenter.cpp | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legoanimpresenter.h b/LEGO1/lego/legoomni/include/legoanimpresenter.h index 79a33f7c..48530fa7 100644 --- a/LEGO1/lego/legoomni/include/legoanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legoanimpresenter.h @@ -36,7 +36,7 @@ class LegoAnimPresenter : public MxVideoPresenter { virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c virtual void EndAction() override; // vtable+0x40 virtual void PutFrame() override; // vtable+0x6c - virtual MxS32 VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88 + virtual MxResult VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88 private: void Init(); diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index 2b94acbb..2f2f32f4 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -56,9 +56,9 @@ void LegoAnimPresenter::Destroy(MxBool p_fromDestructor) } // FUNCTION: LEGO1 0x10068fb0 -MxS32 LegoAnimPresenter::VTable0x88(MxStreamChunk* p_chunk) +MxResult LegoAnimPresenter::VTable0x88(MxStreamChunk* p_chunk) { - MxS32 result = FAILURE; + MxResult result = FAILURE; LegoMemoryStream stream((char*) p_chunk->GetData()); MxS32 magicSig; @@ -104,21 +104,21 @@ void LegoAnimPresenter::PutFrame() void LegoAnimPresenter::ReadyTickle() { m_currentWorld = GetCurrentWorld(); + if (m_currentWorld) { MxStreamChunk* chunk = m_subscriber->CurrentChunk(); - if (chunk) { - if (chunk->GetTime() + m_action->GetStartTime() <= m_action->GetElapsedTime()) { - chunk = m_subscriber->NextChunk(); - MxU32 result = VTable0x88(chunk); - m_subscriber->DestroyChunk(chunk); - if (result == 0) { - ProgressTickleState(TickleState_Starting); - ParseExtra(); - } - else { - EndAction(); - } + if (chunk && chunk->GetTime() + m_action->GetStartTime() <= m_action->GetElapsedTime()) { + chunk = m_subscriber->NextChunk(); + MxResult result = VTable0x88(chunk); + m_subscriber->DestroyChunk(chunk); + + if (result == SUCCESS) { + ProgressTickleState(TickleState_Starting); + ParseExtra(); + } + else { + EndAction(); } } }