From b9b6b685532a2a8465317842b5d7a7664281daec Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Mon, 28 Oct 2024 10:39:00 -0700 Subject: [PATCH] Implement/match PizzeriaState::NextAction --- LEGO1/lego/legoomni/include/pizzeria.h | 6 +++--- LEGO1/lego/legoomni/src/actors/pizzeria.cpp | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/LEGO1/lego/legoomni/include/pizzeria.h b/LEGO1/lego/legoomni/include/pizzeria.h index 69ea1b9d..0051c466 100644 --- a/LEGO1/lego/legoomni/include/pizzeria.h +++ b/LEGO1/lego/legoomni/include/pizzeria.h @@ -32,12 +32,12 @@ class PizzeriaState : public LegoState { // PizzeriaState::`scalar deleting destructor' MxS16 FUN_10017d50(); - MxU32 FUN_10017d70(); + MxU32 NextAction(); // TODO: Most likely getters/setters are not used according to BETA. - Playlist m_unk0x08[5]; // 0x08 - undefined4 m_unk0x44[5]; // 0x44 + Playlist m_unk0x08[5]; // 0x08 + MxS32 m_unk0x44[5]; // 0x44 }; // VTABLE: LEGO1 0x100d5520 diff --git a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp index 2f8e2642..c9293c2c 100644 --- a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp @@ -79,7 +79,7 @@ MxLong Pizzeria::HandleClick() AnimationManager()->FUN_10061010(FALSE); Pizza* pizza = (Pizza*) CurrentWorld()->Find(*g_isleScript, IsleScript::c_Pizza_Actor); - pizza->FUN_10038220((IsleScript::Script) m_pizzeriaState->FUN_10017d70()); + pizza->FUN_10038220((IsleScript::Script) m_pizzeriaState->NextAction()); } return 1; @@ -97,17 +97,23 @@ PizzeriaState::PizzeriaState() memset(m_unk0x44, -1, sizeof(m_unk0x44)); } -// STUB: LEGO1 0x10017d50 +// FUNCTION: LEGO1 0x10017d50 MxS16 PizzeriaState::FUN_10017d50() { - return 0; + return m_unk0x44[GameState()->GetActorId() - 1]; } -// STUB: LEGO1 0x10017d70 +// FUNCTION: LEGO1 0x10017d70 // FUNCTION: BETA10 0x100effc0 -MxU32 PizzeriaState::FUN_10017d70() +MxU32 PizzeriaState::NextAction() { - return 0; + MxU8 actorId = GameState()->GetActorId(); + + if (m_unk0x44[actorId - 1] < 2) { + m_unk0x44[actorId - 1]++; + } + + return m_unk0x08[actorId - 1].Next(); } // FUNCTION: LEGO1 0x10017da0