Complete LegoCarBuildAnimPresenter (#1114)

* Complete `LegoCarBuildAnimPresenter`

* fix CI errors

* Drive-by BETA10 fixes

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2024-10-20 23:00:44 +02:00
committed by GitHub
parent 91205be031
commit b5fee6b240
17 changed files with 188 additions and 25 deletions

View File

@@ -98,6 +98,7 @@ public:
virtual void EndAction(); // vtable+0x40
// FUNCTION: LEGO1 0x1000bf90
// FUNCTION: BETA10 0x10054a50
virtual void SetTickleState(TickleState p_tickleState) { ProgressTickleState(p_tickleState); } // vtable+0x44
// FUNCTION: LEGO1 0x1000bfb0

View File

@@ -7,10 +7,13 @@ class MxDSBuffer;
class MxStreamListMxDSSubscriber;
// VTABLE: LEGO1 0x100dc2a8
// VTABLE: BETA10 0x101c1d20
// SIZE 0x20
class MxStreamChunk : public MxDSChunk {
public:
// FUNCTION: BETA10 0x10134420
MxStreamChunk() : m_buffer(NULL) {}
~MxStreamChunk() override;
// FUNCTION: LEGO1 0x100b1fe0

View File

@@ -52,14 +52,17 @@ public:
MxBool IsHit(MxS32 p_x, MxS32 p_y) override; // vtable+0x50
// FUNCTION: LEGO1 0x1000c700
// FUNCTION: BETA10 0x10054a80
virtual void LoadHeader(MxStreamChunk* p_chunk) {} // vtable+0x5c
// FUNCTION: LEGO1 0x1000c710
// FUNCTION: BETA10 0x10054aa0
virtual void CreateBitmap() {} // vtable+0x60
virtual void NextFrame(); // vtable+0x64
// FUNCTION: LEGO1 0x1000c720
// FUNCTION: BETA10 0x10054ac0
virtual void LoadFrame(MxStreamChunk* p_chunk) {} // vtable+0x68
virtual void PutFrame(); // vtable+0x6c

View File

@@ -229,6 +229,7 @@ void MxMediaPresenter::DoneTickle()
}
// FUNCTION: LEGO1 0x100b5f10
// FUNCTION: BETA10 0x101366e9
void MxMediaPresenter::LoopChunk(MxStreamChunk* p_chunk)
{
MxStreamChunk* chunk = new MxStreamChunk;
@@ -243,6 +244,7 @@ void MxMediaPresenter::LoopChunk(MxStreamChunk* p_chunk)
}
// FUNCTION: LEGO1 0x100b6030
// FUNCTION: BETA10 0x10136814
void MxMediaPresenter::Enable(MxBool p_enable)
{
if (IsEnabled() != p_enable) {

View File

@@ -263,6 +263,7 @@ MxEntity* MxPresenter::CreateEntity(const char* p_defaultName)
}
// FUNCTION: LEGO1 0x100b54c0
// FUNCTION: BETA10 0x1012ebaf
MxBool MxPresenter::IsEnabled()
{
return this->m_action && this->m_action->GetFlags() & MxDSAction::c_enabled;

View File

@@ -176,6 +176,7 @@ void MxVideoPresenter::Destroy(MxBool p_fromDestructor)
}
// FUNCTION: LEGO1 0x100b28b0
// FUNCTION: BETA10 0x101389c1
void MxVideoPresenter::NextFrame()
{
MxStreamChunk* chunk = NextChunk();
@@ -191,6 +192,7 @@ void MxVideoPresenter::NextFrame()
}
// FUNCTION: LEGO1 0x100b2900
// FUNCTION: BETA10 0x10138a3a
MxBool MxVideoPresenter::IsHit(MxS32 p_x, MxS32 p_y)
{
MxDSAction* action = GetAction();
@@ -563,6 +565,7 @@ void MxVideoPresenter::EndAction()
}
// FUNCTION: LEGO1 0x100b3280
// FUNCTION: BETA10 0x101397c0
MxResult MxVideoPresenter::PutData()
{
AUTOLOCK(m_criticalSection);