From 75f3670c28e715a22cb0246ea6b693d03ab4641b Mon Sep 17 00:00:00 2001 From: jonschz Date: Sat, 16 Nov 2024 13:39:29 +0100 Subject: [PATCH] Implement `JetskiRace::FUN_10016930` --- LEGO1/lego/legoomni/include/jetskirace.h | 2 +- LEGO1/lego/legoomni/src/race/jetskirace.cpp | 26 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/LEGO1/lego/legoomni/include/jetskirace.h b/LEGO1/lego/legoomni/include/jetskirace.h index 786906ce..fd644446 100644 --- a/LEGO1/lego/legoomni/include/jetskirace.h +++ b/LEGO1/lego/legoomni/include/jetskirace.h @@ -62,7 +62,7 @@ class JetskiRace : public LegoRace { MxLong HandlePathStruct(LegoPathStructNotificationParam&) override; // vtable+0x70 MxLong HandleEndAction(MxEndActionNotificationParam&) override; // vtable+0x74 - void FUN_10016930(undefined4 p_param1, undefined4 p_param2); + void FUN_10016930(MxS32 p_param1, MxS16 p_param2); static MxS32 g_unk0x100f0c78; diff --git a/LEGO1/lego/legoomni/src/race/jetskirace.cpp b/LEGO1/lego/legoomni/src/race/jetskirace.cpp index ed2451bc..65f4ae57 100644 --- a/LEGO1/lego/legoomni/src/race/jetskirace.cpp +++ b/LEGO1/lego/legoomni/src/race/jetskirace.cpp @@ -282,10 +282,30 @@ MxLong JetskiRace::HandlePathStruct(LegoPathStructNotificationParam& p_param) return result; } -// STUB: LEGO1 0x10016930 -void JetskiRace::FUN_10016930(undefined4 p_param1, undefined4 p_param2) +// FUNCTION: LEGO1 0x10016930 +void JetskiRace::FUN_10016930(MxS32 p_param1, MxS16 p_param2) { - // TODO + MxS32 local_4; + MxStillPresenter* piVar1; + MxS32 x, y; + + if (p_param1 == 11) { + piVar1 = m_unk0x128; + local_4 = m_unk0xfc; + } + else if (p_param1 == 12) { + piVar1 = m_unk0x12c; + local_4 = m_unk0x100; + } + + if (piVar1) { + x = m_unk0x130.GetLeft() + 0.5 + + (m_unk0x130.GetRight() - m_unk0x130.GetLeft() + 1) * (local_4 * 20.0 + p_param2) / (g_unk0x100f0c78 * 20.0); + y = m_unk0x130.GetTop() + 0.5 + + (m_unk0x130.GetBottom() - m_unk0x130.GetTop() + 1) * (local_4 * 20.0 + p_param2) / (g_unk0x100f0c78 * 20.0); + + piVar1->SetPosition(x, y); + } } // FUNCTION: LEGO1 0x10016a10