From 715acd657d30d120182ca65fd9670b7ebfb0e3d7 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 24 May 2024 21:14:45 -0400 Subject: [PATCH] Implement/match Isle::FUN_10033350 (#951) --- LEGO1/lego/legoomni/src/worlds/isle.cpp | 42 +++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp index 37a00ede..8c2bc113 100644 --- a/LEGO1/lego/legoomni/src/worlds/isle.cpp +++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp @@ -1173,8 +1173,46 @@ MxBool Isle::Escape() return TRUE; } -// STUB: LEGO1 0x10033350 +// FUNCTION: LEGO1 0x10033350 void Isle::FUN_10033350() { - // TODO + if (m_act1state->m_unk0x018 == 10) { + if (CurrentActor() != NULL && !CurrentActor()->IsA("Ambulance")) { + m_ambulance->FUN_10037240(); + m_ambulance->FUN_10037250(); + } + } + + if (m_act1state->m_unk0x018 == 8) { + if (CurrentActor() != NULL && !CurrentActor()->IsA("TowTrack")) { + m_towtrack->FUN_1004db10(); + m_towtrack->FUN_1004dbe0(); + } + } + + if (m_act1state->m_unk0x018 == 3) { + if (CurrentActor() != NULL) { + m_pizza->FUN_10038380(); + m_pizza->FUN_100382b0(); + } + } + + AnimationManager()->FUN_10061010(FALSE); + + if (CurrentActor()) { + if (CurrentActor()->GetActorId() != GameState()->GetActorId()) { + ((IslePathActor*) CurrentActor())->VTable0xe4(); + m_skateboard->SetUnknown0x160(FALSE); + } + } + + if (GameState()->m_currentArea == LegoGameState::e_polidoor) { + VariableTable()->SetVariable("VISIBILITY", "Show Policsta"); + } + + if (GameState()->m_currentArea == LegoGameState::e_garadoor) { + VariableTable()->SetVariable("VISIBILITY", "Show Gas"); + } + + m_destLocation = LegoGameState::e_infomain; }