From d28411e7b0bdfca855e665ea879ce8d968725fa2 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sat, 21 Dec 2024 15:00:39 -0700 Subject: [PATCH 1/2] Fix a bug in `LegoNavController`, improve accuracy --- LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp index 290820b79a..bdade41142 100644 --- a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp @@ -744,12 +744,12 @@ MxLong LegoNavController::Notify(MxParam& p_param) VideoManager()->ToggleFPS(g_fpsEnabled); if (g_fpsEnabled) { g_fpsEnabled = FALSE; - m_unk0x5d = FALSE; } else { g_fpsEnabled = TRUE; - m_unk0x5d = FALSE; } + default: + m_unk0x5d = FALSE; break; case '0': case '1': @@ -772,7 +772,7 @@ MxLong LegoNavController::Notify(MxParam& p_param) else if (g_locationCalcStep) { if (g_locationCalcStep == 1) { // Calculate base offset into g_locations - g_nextLocation = (key - '0') * 5; + g_nextLocation = (key - '0') * 10; g_locationCalcStep = 2; } else { @@ -1018,9 +1018,6 @@ MxLong LegoNavController::Notify(MxParam& p_param) case 0xbd: g_unk0x100f66bc = LegoAnimationManager::e_unk1; break; - default: - m_unk0x5d = FALSE; - break; } } else { From e31daf2c150e800f7dc4f12518e95c7227becbdd Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sat, 21 Dec 2024 15:11:00 -0700 Subject: [PATCH 2/2] Fix --- LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp index bdade41142..717239aebe 100644 --- a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp @@ -718,10 +718,10 @@ MxLong LegoNavController::Notify(MxParam& p_param) LegoROI* roi = CharacterManager()->GetActorROI(CharacterManager()->GetActorName(g_unk0x100f66cc), TRUE); if (roi != NULL) { MxMatrix mat; - ViewROI* roi = LegoOmni::GetInstance()->GetVideoManager()->GetViewROI(); - const float* position = roi->GetWorldPosition(); - const float* direction = roi->GetWorldDirection(); - const float* up = roi->GetWorldUp(); + ViewROI* viewRoi = LegoOmni::GetInstance()->GetVideoManager()->GetViewROI(); + const float* position = viewRoi->GetWorldPosition(); + const float* direction = viewRoi->GetWorldDirection(); + const float* up = viewRoi->GetWorldUp(); CalcLocalTransform(position, direction, up, mat); mat.TranslateBy(direction[0] * 2.0f, direction[1] - 1.0, direction[2] * 2.0f); roi->UpdateTransformationRelativeToParent(mat);