From b1f98026350e1cd0a59ca0be20e4198a233884c7 Mon Sep 17 00:00:00 2001 From: jonschz Date: Sat, 1 Feb 2025 11:50:27 +0100 Subject: [PATCH] Match `Jetski::HandleClick` --- LEGO1/lego/legoomni/src/actors/dunebuggy.cpp | 37 +++++++++++--------- LEGO1/lego/legoomni/src/actors/jetski.cpp | 10 ++++-- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp b/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp index d01f8352..2d58ce71 100644 --- a/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp +++ b/LEGO1/lego/legoomni/src/actors/dunebuggy.cpp @@ -157,27 +157,30 @@ MxLong DuneBuggy::HandlePathStruct(LegoPathStructNotificationParam& p_param) } // FUNCTION: LEGO1 0x10068290 +// FUNCTION: BETA10 0x1002765d MxS32 DuneBuggy::GetColorOffset(const char* p_variable) { MxS32 offset = 1; - const char* colorName = VariableTable()->GetVariable(p_variable); + const char* color = VariableTable()->GetVariable(p_variable); + assert(color); - if (strcmpi(colorName, "lego green")) { - if (!strcmpi(colorName, "lego red")) { - offset = 2; - } - else if (!strcmpi(colorName, "lego yellow")) { - offset = 3; - } - else if (!strcmpi(colorName, "lego black")) { - offset = 4; - } - else if (!strcmpi(colorName, "lego blue")) { - offset = 5; - } - else if (!strcmpi(colorName, "lego white")) { - offset = 6; - } + if (!strcmpi(color, "lego green")) { + offset = 1; + } + else if (!strcmpi(color, "lego red")) { + offset = 2; + } + else if (!strcmpi(color, "lego yellow")) { + offset = 3; + } + else if (!strcmpi(color, "lego black")) { + offset = 4; + } + else if (!strcmpi(color, "lego blue")) { + offset = 5; + } + else if (!strcmpi(color, "lego white")) { + offset = 6; } return offset; diff --git a/LEGO1/lego/legoomni/src/actors/jetski.cpp b/LEGO1/lego/legoomni/src/actors/jetski.cpp index e1163ff0..ab1b4781 100644 --- a/LEGO1/lego/legoomni/src/actors/jetski.cpp +++ b/LEGO1/lego/legoomni/src/actors/jetski.cpp @@ -18,12 +18,15 @@ DECOMP_SIZE_ASSERT(Jetski, 0x164) +// These two have been changed between BETA10 and LEGO1 // GLOBAL: LEGO1 0x100f7ab8 // STRING: LEGO1 0x100f3ce0 +// GLOBAL: BETA10 0x101e0be4 const char* g_varJSFRNTY5 = "c_jsfrnty5"; // GLOBAL: LEGO1 0x100f7abc // STRING: LEGO1 0x100f3ca4 +// GLOBAL: BETA10 0x101e0be0 const char* g_varJSWNSHY5 = "c_jswnshy5"; // FUNCTION: LEGO1 0x1007e3b0 @@ -90,9 +93,10 @@ MxLong Jetski::HandleClick() ((IslePathActor*) UserActor())->Exit(); } - // TODO: Match - m_unk0x160 = ((DuneBuggy::GetColorOffset(g_varJSWNSHY5) * 5 + 15) * 2); - m_unk0x160 += DuneBuggy::GetColorOffset(g_varJSFRNTY5); + MxS32 local_8 = DuneBuggy::GetColorOffset(g_varJSWNSHY5); + m_unk0x160 = 10 * (local_8 + 3); + MxS32 local_1c = DuneBuggy::GetColorOffset(g_varJSFRNTY5); + m_unk0x160 += local_1c; InvokeAction(Extra::ActionType::e_start, *g_isleScript, m_unk0x160, NULL); InvokeAction(Extra::ActionType::e_start, *g_isleScript, IsleScript::c_JetskiDashboard, NULL);