From 176910157dbe39c0deb13e2e7469adff9ded384a Mon Sep 17 00:00:00 2001 From: Florian Kaiser Date: Sun, 11 Jan 2026 09:13:58 +0100 Subject: [PATCH] Clear visibility unknowns in animation presenters --- LEGO1/lego/legoomni/include/legoanimpresenter.h | 4 ++-- LEGO1/lego/legoomni/src/actors/doors.cpp | 2 +- LEGO1/lego/legoomni/src/paths/legoanimactor.cpp | 2 +- LEGO1/lego/legoomni/src/paths/legopathstruct.cpp | 2 +- LEGO1/lego/legoomni/src/race/carrace.cpp | 2 +- LEGO1/lego/legoomni/src/race/jetskirace.cpp | 4 ++-- .../lego/legoomni/src/video/legoanimpresenter.cpp | 14 +++++++------- LEGO1/lego/sources/geom/legowegedge.h | 12 ++++++------ 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legoanimpresenter.h b/LEGO1/lego/legoomni/include/legoanimpresenter.h index d80a3439..0cf49100 100644 --- a/LEGO1/lego/legoomni/include/legoanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legoanimpresenter.h @@ -317,7 +317,7 @@ class LegoHideAnimPresenter : public LegoLoopingAnimPresenter { void EndAction() override; // vtable+0x40 void PutFrame() override; // vtable+0x6c - void FUN_1006db40(LegoTime p_time); + void ApplyVisibility(LegoTime p_time); // SYNTHETIC: LEGO1 0x1006d9d0 // LegoHideAnimPresenter::`scalar deleting destructor' @@ -325,7 +325,7 @@ class LegoHideAnimPresenter : public LegoLoopingAnimPresenter { private: void Init(); void Destroy(MxBool p_fromDestructor); - void FUN_1006db60(LegoTreeNode* p_node, LegoTime p_time); + void ApplyVisibility(LegoTreeNode* p_node, LegoTime p_time); void AssignIndiciesWithMap(); void BuildMap(LegoHideAnimStructMap& p_map, LegoTreeNode* p_node); void CheckedAdd( diff --git a/LEGO1/lego/legoomni/src/actors/doors.cpp b/LEGO1/lego/legoomni/src/actors/doors.cpp index 2b8da804..af37219e 100644 --- a/LEGO1/lego/legoomni/src/actors/doors.cpp +++ b/LEGO1/lego/legoomni/src/actors/doors.cpp @@ -70,7 +70,7 @@ void Doors::Animate(float p_time) assert(m_ltDoor && m_rtDoor); // TODO: Match - m_roi->SetVisibility(m_boundary->GetFlag0x10()); + m_roi->SetVisibility(m_boundary->GetVisibility()); switch (m_state) { case e_none: diff --git a/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp b/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp index 66fec944..2fd3529f 100644 --- a/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp +++ b/LEGO1/lego/legoomni/src/paths/legoanimactor.cpp @@ -109,7 +109,7 @@ MxResult LegoAnimActor::AnimateWithTransform(float p_time, Matrix4& p_transform) LegoROI** roiMap = m_animMaps[m_curAnim]->m_roiMap; MxU32 numROIs = m_animMaps[m_curAnim]->m_numROIs; - if (!m_boundary->GetFlag0x10()) { + if (!m_boundary->GetVisibility()) { MxU32 i; m_roi->SetVisibility(FALSE); diff --git a/LEGO1/lego/legoomni/src/paths/legopathstruct.cpp b/LEGO1/lego/legoomni/src/paths/legopathstruct.cpp index 15cca7c4..4f40ace4 100644 --- a/LEGO1/lego/legoomni/src/paths/legopathstruct.cpp +++ b/LEGO1/lego/legoomni/src/paths/legopathstruct.cpp @@ -68,7 +68,7 @@ MxBool LegoPathStruct::HandleTrigger(LegoPathActor* p_actor, MxBool p_direction, case c_h: { LegoHideAnimPresenter* presenter = m_world->GetHideAnimPresenter(); if (presenter != NULL) { - presenter->FUN_1006db40(p_data * 100); + presenter->ApplyVisibility(p_data * 100); } break; } diff --git a/LEGO1/lego/legoomni/src/race/carrace.cpp b/LEGO1/lego/legoomni/src/race/carrace.cpp index 8fc3e24e..8a540154 100644 --- a/LEGO1/lego/legoomni/src/race/carrace.cpp +++ b/LEGO1/lego/legoomni/src/race/carrace.cpp @@ -117,7 +117,7 @@ void CarRace::ReadyWorld() { assert(m_hideAnim); LegoWorld::ReadyWorld(); - m_hideAnim->FUN_1006db40(0); + m_hideAnim->ApplyVisibility(0); MxDSAction action; action.SetAtomId(*g_jukeboxScript); diff --git a/LEGO1/lego/legoomni/src/race/jetskirace.cpp b/LEGO1/lego/legoomni/src/race/jetskirace.cpp index 66c2e5fa..94891925 100644 --- a/LEGO1/lego/legoomni/src/race/jetskirace.cpp +++ b/LEGO1/lego/legoomni/src/race/jetskirace.cpp @@ -81,7 +81,7 @@ void JetskiRace::ReadyWorld() { assert(m_hideAnim); LegoWorld::ReadyWorld(); - m_hideAnim->FUN_1006db40(0); + m_hideAnim->ApplyVisibility(0); MxDSAction action; action.SetAtomId(*g_jukeboxScript); @@ -213,7 +213,7 @@ MxLong JetskiRace::HandlePathStruct(LegoPathStructNotificationParam& p_param) result = 1; } else if (m_playerLastPathStruct == 0xf) { - m_hideAnim->FUN_1006db40(m_playerLaps * 200 + 100); + m_hideAnim->ApplyVisibility(m_playerLaps * 200 + 100); result = 1; } diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index 48fd2e5a..138fc51e 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -1535,20 +1535,20 @@ void LegoHideAnimPresenter::StartingTickle() if (m_currentTickleState == e_streaming) { AssignIndiciesWithMap(); - FUN_1006db40(0); + ApplyVisibility(0); } } // FUNCTION: LEGO1 0x1006db40 // FUNCTION: BETA10 0x100531ab -void LegoHideAnimPresenter::FUN_1006db40(LegoTime p_time) +void LegoHideAnimPresenter::ApplyVisibility(LegoTime p_time) { - FUN_1006db60(m_anim->GetRoot(), p_time); + ApplyVisibility(m_anim->GetRoot(), p_time); } // FUNCTION: LEGO1 0x1006db60 // FUNCTION: BETA10 0x100531de -void LegoHideAnimPresenter::FUN_1006db60(LegoTreeNode* p_node, LegoTime p_time) +void LegoHideAnimPresenter::ApplyVisibility(LegoTreeNode* p_node, LegoTime p_time) { LegoAnimNodeData* data = (LegoAnimNodeData*) p_node->GetData(); MxBool newB = FALSE; @@ -1569,13 +1569,13 @@ void LegoHideAnimPresenter::FUN_1006db60(LegoTreeNode* p_node, LegoTime p_time) if (boundary != NULL) { newB = data->GetVisibility(p_time); - previousB = boundary->GetFlag0x10(); - boundary->SetFlag0x10(newB); + previousB = boundary->GetVisibility(); + boundary->SetVisibility(newB); } } for (MxS32 i = 0; i < p_node->GetNumChildren(); i++) { - FUN_1006db60(p_node->GetChild(i), p_time); + ApplyVisibility(p_node->GetChild(i), p_time); } } diff --git a/LEGO1/lego/sources/geom/legowegedge.h b/LEGO1/lego/sources/geom/legowegedge.h index ea9fab08..fa9da58a 100644 --- a/LEGO1/lego/sources/geom/legowegedge.h +++ b/LEGO1/lego/sources/geom/legowegedge.h @@ -37,7 +37,7 @@ class LegoWEGEdge : public LegoWEEdge { c_bit1 = 0x01, c_bit2 = 0x02, c_bit3 = 0x04, - c_bit5 = 0x10 + c_visible = 0x10 }; LegoWEGEdge(); @@ -46,9 +46,9 @@ class LegoWEGEdge : public LegoWEEdge { LegoS32 LinkEdgesAndFaces() override; // vtable+0x04 // FUNCTION: BETA10 0x100270c0 - LegoU32 GetFlag0x10() + LegoU32 GetVisibility() { - if (m_flags & c_bit5) { + if (m_flags & c_visible) { return FALSE; } else { @@ -67,13 +67,13 @@ class LegoWEGEdge : public LegoWEEdge { const LegoChar* GetName() { return m_name; } // FUNCTION: BETA10 0x1005d5f0 - void SetFlag0x10(LegoU32 p_disable) + void SetVisibility(LegoU32 p_disable) { if (p_disable) { - m_flags &= ~c_bit5; + m_flags &= ~c_visible; } else { - m_flags |= c_bit5; + m_flags |= c_visible; } }