From 0989707d7484e2679b5994ea5544db51c01b3a71 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Mon, 15 Jan 2024 14:02:31 -0500 Subject: [PATCH] Match MxControlPresenter::StartAction --- .../legoomni/include/mxcontrolpresenter.h | 2 +- .../src/control/mxcontrolpresenter.cpp | 21 ++++++------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/LEGO1/lego/legoomni/include/mxcontrolpresenter.h b/LEGO1/lego/legoomni/include/mxcontrolpresenter.h index c7f79f82..2db0a2e4 100644 --- a/LEGO1/lego/legoomni/include/mxcontrolpresenter.h +++ b/LEGO1/lego/legoomni/include/mxcontrolpresenter.h @@ -42,7 +42,7 @@ class MxControlPresenter : public MxCompositePresenter { void FUN_10044540(undefined2); undefined2 m_unk0x4c; // 0x4c - MxU16 m_unk0x4e; // 0x4e + MxS16 m_unk0x4e; // 0x4e MxBool m_unk0x50; // 0x50 undefined2 m_unk0x52; // 0x52 undefined2 m_unk0x54; // 0x54 diff --git a/LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp b/LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp index 4a550241..2c153e27 100644 --- a/LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp +++ b/LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp @@ -52,30 +52,21 @@ MxResult MxControlPresenter::AddToManager() MxResult MxControlPresenter::StartAction(MxStreamController* p_controller, MxDSAction* p_action) { MxResult result = MxCompositePresenter::StartAction(p_controller, p_action); - MxU8 i = 0; FUN_100b7220(m_action, 0x81, TRUE); ParseExtra(); + MxS16 i = 0; for (MxCompositePresenterList::iterator it = m_list.begin(); it != m_list.end(); it++) { - MxBool toggle; - if (m_unk0x4c == 3 && m_unk0x4e == 0) { - toggle = FALSE; - } - else { - if (!IsEnabled()) { - toggle = FALSE; - } - toggle = m_unk0x4e == i; - } - + (*it)->Enable((m_unk0x4c != 3 || m_unk0x4e) && IsEnabled() ? m_unk0x4e == i : FALSE); i++; - (*it)->Enable(toggle); } if (m_unk0x4c == 3) { - (*m_list.end())->GetAction()->SetFlags((*m_list.end())->GetAction()->GetFlags() | 0x400); + MxDSAction* action = (*m_list.begin())->GetAction(); + action->SetFlags(action->GetFlags() | MxDSAction::Flag_Bit11); } + TickleManager()->RegisterClient(this, 200); return result; @@ -130,7 +121,7 @@ void MxControlPresenter::Enable(MxBool p_enable) if (MxPresenter::IsEnabled() != p_enable) { MxPresenter::Enable(p_enable); - MxU16 i = 0; + MxS16 i = 0; for (MxCompositePresenterList::iterator it = m_list.begin(); it != m_list.end(); it++) { if (i == m_unk0x4e) { (*it)->Enable((m_unk0x4c != 3 || i != 0) ? p_enable : 0);