From 9025d5ed069f1128ea50e3c633c4312550d2f195 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Tue, 23 Apr 2024 04:33:38 -0400 Subject: [PATCH] Implement/match LegoWorld::FUN_1001fda0 (#840) --- LEGO1/lego/legoomni/include/legopathcontroller.h | 2 ++ LEGO1/lego/legoomni/src/entity/legoworld.cpp | 10 ++++++++-- LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp | 6 ++++++ LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legopathcontroller.h b/LEGO1/lego/legoomni/include/legopathcontroller.h index 35bf5aa5..c9037091 100644 --- a/LEGO1/lego/legoomni/include/legopathcontroller.h +++ b/LEGO1/lego/legoomni/include/legopathcontroller.h @@ -5,6 +5,7 @@ #include "legopathactor.h" #include "mxcore.h" +class LegoAnimPresenter; class LegoPathBoundary; class LegoWorld; @@ -41,6 +42,7 @@ class LegoPathController : public MxCore { virtual void Destroy(); // vtable+0x18 undefined4 FUN_10046770(LegoPathActor* p_actor); + void FUN_100468f0(LegoAnimPresenter* p_presenter); MxResult FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value); void Enable(MxBool p_enable); void FUN_10046bb0(LegoWorld* p_world); diff --git a/LEGO1/lego/legoomni/src/entity/legoworld.cpp b/LEGO1/lego/legoomni/src/entity/legoworld.cpp index cc2ea8b3..cf42b0e3 100644 --- a/LEGO1/lego/legoomni/src/entity/legoworld.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoworld.cpp @@ -299,10 +299,16 @@ void LegoWorld::FUN_1001fc80(IslePathActor* p_actor) } } -// STUB: LEGO1 0x1001fda0 +// FUNCTION: LEGO1 0x1001fda0 +// FUNCTION: BETA10 0x100da621 void LegoWorld::FUN_1001fda0(LegoAnimPresenter* p_presenter) { - // TODO + LegoPathControllerListCursor cursor(&m_list0x68); + LegoPathController* controller; + + while (cursor.Next(controller)) { + controller->FUN_100468f0(p_presenter); + } } // FUNCTION: LEGO1 0x1001ff80 diff --git a/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp b/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp index e2e9056a..51c6e723 100644 --- a/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp +++ b/LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp @@ -33,6 +33,12 @@ undefined4 LegoPathController::FUN_10046770(LegoPathActor* p_actor) return 0; } +// STUB: LEGO1 0x100468f0 +// FUNCTION: BETA10 0x100b72f7 +void LegoPathController::FUN_100468f0(LegoAnimPresenter* p_presenter) +{ +} + // STUB: LEGO1 0x10046b30 MxResult LegoPathController::FUN_10046b30(LegoPathBoundary** p_path, MxS32& p_value) { diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index 61f93450..6a1583f2 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -814,6 +814,7 @@ void LegoAnimPresenter::EndAction() } // FUNCTION: LEGO1 0x1006c7d0 +// FUNCTION: BETA10 0x10051e07 void LegoAnimPresenter::VTable0x8c() { if (m_unk0x78) {