From 82453f62d84f979f8a6fc7b46e21b61cb835d2f1 Mon Sep 17 00:00:00 2001 From: Christian Semmler <mail@csemmler.com> Date: Sun, 2 Feb 2025 09:42:37 -0700 Subject: [PATCH] Match `Hospital::HandleButtonDown` (#1381) --- LEGO1/lego/legoomni/src/worlds/hospital.cpp | 55 ++++++++++----------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/LEGO1/lego/legoomni/src/worlds/hospital.cpp b/LEGO1/lego/legoomni/src/worlds/hospital.cpp index e32edfdb..fbf276dd 100644 --- a/LEGO1/lego/legoomni/src/worlds/hospital.cpp +++ b/LEGO1/lego/legoomni/src/worlds/hospital.cpp @@ -392,21 +392,20 @@ MxLong Hospital::HandleEndAction(MxEndActionNotificationParam& p_param) } // FUNCTION: LEGO1 0x10075710 +// FUNCTION: BETA10 0x1002d2b1 MxLong Hospital::HandleButtonDown(LegoControlManagerNotificationParam& p_param) { if (m_unk0x100 == 1) { LegoROI* roi = PickROI(p_param.GetX(), p_param.GetY()); if (roi != NULL) { - LegoChar* roiName = (LegoChar*) roi->GetName(); + const LegoChar* roiName = roi->GetName(); if (roiName[0] == '*') { roiName += 1; } if (!strcmpi("actor_ha", roiName)) { - LegoInputManager* inputManager = InputManager(); - inputManager->SetUnknown88(TRUE); - inputManager->SetUnknown336(FALSE); + InputManager()->DisableInputProcessing(); m_unk0x100 = 3; @@ -418,7 +417,9 @@ MxLong Hospital::HandleButtonDown(LegoControlManagerNotificationParam& p_param) m_hospitalState->m_unk0x08 = 9; Act1State* act1State = (Act1State*) GameState()->GetState("Act1State"); - act1State->SetUnknown18(9); + assert(act1State); + + act1State->m_unk0x018 = 9; m_destLocation = LegoGameState::e_unk31; DeleteObjects( @@ -480,25 +481,6 @@ MxLong Hospital::HandleButtonDown(LegoControlManagerNotificationParam& p_param) break; } break; - case LegoActor::c_papa: - switch (m_hospitalState->m_unk0x12) { - case 0: - case 1: - m_hospitalState->m_unk0x08 = 12; - PlayAction(HospitalScript::c_hho023cl_RunAnim); - - m_currentAction = HospitalScript::c_hho023cl_RunAnim; - m_unk0x108 = 1; - break; - default: - m_hospitalState->m_unk0x08 = 12; - PlayAction(HospitalScript::c_hho024cl_RunAnim); - - m_currentAction = HospitalScript::c_hho024cl_RunAnim; - m_unk0x108 = 1; - break; - } - break; case LegoActor::c_nick: switch (m_hospitalState->m_unk0x14) { case 0: @@ -518,6 +500,25 @@ MxLong Hospital::HandleButtonDown(LegoControlManagerNotificationParam& p_param) break; } break; + case LegoActor::c_papa: + switch (m_hospitalState->m_unk0x12) { + case 0: + case 1: + m_hospitalState->m_unk0x08 = 12; + PlayAction(HospitalScript::c_hho023cl_RunAnim); + + m_currentAction = HospitalScript::c_hho023cl_RunAnim; + m_unk0x108 = 1; + break; + default: + m_hospitalState->m_unk0x08 = 12; + PlayAction(HospitalScript::c_hho024cl_RunAnim); + + m_currentAction = HospitalScript::c_hho024cl_RunAnim; + m_unk0x108 = 1; + break; + } + break; case LegoActor::c_laura: switch (m_hospitalState->m_unk0x16) { case 0: @@ -543,14 +544,8 @@ MxLong Hospital::HandleButtonDown(LegoControlManagerNotificationParam& p_param) return 1; } - else { - return 0; - } } } - else { - return 0; - } return 0; }