From 816bfe842dc161824317c8012ab7193e6f959fad Mon Sep 17 00:00:00 2001 From: MS Date: Sat, 23 Nov 2024 22:37:24 -0500 Subject: [PATCH] Use alias functions from Lego3DManager (#1167) * Mark LegoEntity:Destroy (many vtables use it) * Starting addrs for Lego3DManager helpers * Addrs for users of Lego3DManager and changes where needed --- .../legoomni/src/common/legocharactermanager.cpp | 3 +++ LEGO1/lego/legoomni/src/common/legogamestate.cpp | 5 +++-- LEGO1/lego/legoomni/src/common/legoutils.cpp | 1 + LEGO1/lego/legoomni/src/entity/legoentity.cpp | 7 ++++--- .../lego/legoomni/src/entity/legonavcontroller.cpp | 2 ++ .../lego/legoomni/src/entity/legopovcontroller.cpp | 1 + .../lego/legoomni/src/video/legomodelpresenter.cpp | 14 ++++++++------ LEGO1/lego/legoomni/src/video/legovideomanager.cpp | 2 ++ LEGO1/lego/sources/3dmanager/lego3dmanager.h | 4 ++++ LEGO1/lego/sources/3dmanager/lego3dview.cpp | 3 +++ LEGO1/lego/sources/3dmanager/lego3dview.h | 1 + 11 files changed, 32 insertions(+), 11 deletions(-) diff --git a/LEGO1/lego/legoomni/src/common/legocharactermanager.cpp b/LEGO1/lego/legoomni/src/common/legocharactermanager.cpp index 1ddf49e1..57c4aa42 100644 --- a/LEGO1/lego/legoomni/src/common/legocharactermanager.cpp +++ b/LEGO1/lego/legoomni/src/common/legocharactermanager.cpp @@ -222,6 +222,7 @@ MxResult LegoCharacterManager::Read(LegoStorage* p_storage) } // FUNCTION: LEGO1 0x10083500 +// FUNCTION: BETA10 0x10074345 LegoROI* LegoCharacterManager::GetActorROI(const char* p_name, MxBool p_createEntity) { LegoCharacter* character = NULL; @@ -428,6 +429,7 @@ void LegoCharacterManager::ReleaseAutoROI(LegoROI* p_roi) } // FUNCTION: LEGO1 0x10084010 +// FUNCTION: BETA10 0x10074e20 void LegoCharacterManager::RemoveROI(LegoROI* p_roi) { VideoManager()->Get3DManager()->Remove(*p_roi); @@ -944,6 +946,7 @@ void LegoCharacterManager::SetCustomizeAnimFile(const char* p_value) } // FUNCTION: LEGO1 0x10085210 +// FUNCTION: BETA10 0x10076995 LegoROI* LegoCharacterManager::CreateAutoROI(const char* p_name, const char* p_lodName, MxBool p_createEntity) { LegoROI* roi = NULL; diff --git a/LEGO1/lego/legoomni/src/common/legogamestate.cpp b/LEGO1/lego/legoomni/src/common/legogamestate.cpp index 882cc944..7d4ee89a 100644 --- a/LEGO1/lego/legoomni/src/common/legogamestate.cpp +++ b/LEGO1/lego/legoomni/src/common/legogamestate.cpp @@ -206,6 +206,7 @@ void LegoGameState::RemoveActor() } // FUNCTION: LEGO1 0x10039940 +// FUNCTION: BETA10 0x10084069 void LegoGameState::ResetROI() { if (m_actorId) { @@ -215,8 +216,8 @@ void LegoGameState::ResetROI() LegoROI* roi = actor->GetROI(); if (roi) { - VideoManager()->Get3DManager()->GetLego3DView()->Remove(*roi); - VideoManager()->Get3DManager()->GetLego3DView()->Add(*roi); + VideoManager()->Get3DManager()->Remove(*roi); + VideoManager()->Get3DManager()->Add(*roi); } } } diff --git a/LEGO1/lego/legoomni/src/common/legoutils.cpp b/LEGO1/lego/legoomni/src/common/legoutils.cpp index b1579d2f..7cde830d 100644 --- a/LEGO1/lego/legoomni/src/common/legoutils.cpp +++ b/LEGO1/lego/legoomni/src/common/legoutils.cpp @@ -172,6 +172,7 @@ LegoTreeNode* GetTreeNode(LegoTreeNode* p_node, MxU32 p_index) } // FUNCTION: LEGO1 0x1003e050 +// FUNCTION: BETA10 0x100d3abc void FUN_1003e050(LegoAnimPresenter* p_presenter) { MxMatrix viewMatrix; diff --git a/LEGO1/lego/legoomni/src/entity/legoentity.cpp b/LEGO1/lego/legoomni/src/entity/legoentity.cpp index 7442d189..731fa70c 100644 --- a/LEGO1/lego/legoomni/src/entity/legoentity.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoentity.cpp @@ -102,7 +102,7 @@ void LegoEntity::Destroy(MxBool p_fromDestructor) CharacterManager()->ReleaseActor(m_roi); } else { - VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi); + VideoManager()->Get3DManager()->Remove(*m_roi); delete m_roi; } } @@ -142,7 +142,7 @@ void LegoEntity::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) } m_roi->SetEntity(this); - VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi); + VideoManager()->Get3DManager()->Moved(*m_roi); if (p_bool1) { ClearFlag(c_bit1); @@ -154,6 +154,7 @@ void LegoEntity::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) } // FUNCTION: LEGO1 0x100109b0 +// FUNCTION: BETA10 0x1007e8b8 void LegoEntity::SetLocation(const Vector3& p_location, const Vector3& p_direction, const Vector3& p_up, MxBool p_und) { Mx3DPointFloat direction; @@ -179,7 +180,7 @@ void LegoEntity::SetLocation(const Vector3& p_location, const Vector3& p_directi ); m_roi->UpdateTransformationRelativeToParent(mat); - VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi); + VideoManager()->Get3DManager()->Moved(*m_roi); if (p_und) { FUN_10010c30(); diff --git a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp index 100d1659..e16050bd 100644 --- a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp @@ -403,6 +403,7 @@ MxBool LegoNavController::CalculateNewPosDir( } // FUNCTION: LEGO1 0x10055500 +// FUNCTION: BETA10 0x1009bff8 MxResult LegoNavController::UpdateLocation(const char* p_location) { MxResult result = FAILURE; @@ -436,6 +437,7 @@ MxResult LegoNavController::UpdateLocation(const char* p_location) } // FUNCTION: LEGO1 0x10055620 +// FUNCTION: BETA10 0x1009c145 MxResult LegoNavController::UpdateLocation(MxU32 p_location) { MxResult result = FAILURE; diff --git a/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp index d2fedcb6..6c63abd8 100644 --- a/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp @@ -138,6 +138,7 @@ void LegoPointOfViewController::AffectPointOfView() } // FUNCTION: LEGO1 0x10065930 +// FUNCTION: BETA10 0x100c724d MxResult LegoPointOfViewController::Tickle() { ViewROI* pov = m_lego3DView->GetPointOfView(); diff --git a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp index a495f528..f1525a63 100644 --- a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp @@ -199,6 +199,7 @@ MxResult LegoModelPresenter::CreateROI(MxDSChunk* p_chunk) } // FUNCTION: LEGO1 0x1007ff70 +// FUNCTION: BETA10 0x10099061 MxResult LegoModelPresenter::FUN_1007ff70( MxDSChunk& p_chunk, LegoEntity* p_entity, @@ -211,8 +212,8 @@ MxResult LegoModelPresenter::FUN_1007ff70( ParseExtra(); if (m_roi == NULL && (result = CreateROI(&p_chunk)) == SUCCESS && p_entity != NULL) { - VideoManager()->Get3DManager()->GetLego3DView()->Add(*m_roi); - VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi); + VideoManager()->Get3DManager()->Add(*m_roi); + VideoManager()->Get3DManager()->Moved(*m_roi); } if (m_roi != NULL) { @@ -266,8 +267,8 @@ void LegoModelPresenter::ReadyTickle() m_subscriber->FreeDataChunk(chunk); if (result == SUCCESS) { - VideoManager()->Get3DManager()->GetLego3DView()->Add(*m_roi); - VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi); + VideoManager()->Get3DManager()->Add(*m_roi); + VideoManager()->Get3DManager()->Moved(*m_roi); if (m_compositePresenter != NULL && m_compositePresenter->IsA("LegoEntityPresenter")) { ((LegoEntityPresenter*) m_compositePresenter)->GetInternalEntity()->SetROI(m_roi, TRUE, TRUE); @@ -289,6 +290,7 @@ void LegoModelPresenter::ReadyTickle() } // FUNCTION: LEGO1 0x100801b0 +// FUNCTION: BETA10 0x10099443 void LegoModelPresenter::ParseExtra() { MxU16 extraLength; @@ -319,8 +321,8 @@ void LegoModelPresenter::ParseExtra() roiList.erase(it); m_addedToView = TRUE; - VideoManager()->Get3DManager()->GetLego3DView()->Add(*m_roi); - VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi); + VideoManager()->Get3DManager()->Add(*m_roi); + VideoManager()->Get3DManager()->Moved(*m_roi); break; } } diff --git a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp index 5d9fbf1d..70fae9aa 100644 --- a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp +++ b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp @@ -69,6 +69,7 @@ MxResult LegoVideoManager::CreateDirect3D() } // FUNCTION: LEGO1 0x1007ac40 +// FUNCTION: BETA10 0x100d5cf4 MxResult LegoVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyMS, MxBool p_createThread) { MxResult result = FAILURE; @@ -219,6 +220,7 @@ MxResult LegoVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyM } // FUNCTION: LEGO1 0x1007b5e0 +// FUNCTION: BETA10 0x100d6816 void LegoVideoManager::Destroy() { if (m_cursorSurface != NULL) { diff --git a/LEGO1/lego/sources/3dmanager/lego3dmanager.h b/LEGO1/lego/sources/3dmanager/lego3dmanager.h index ac0f7bc1..f5617a9f 100644 --- a/LEGO1/lego/sources/3dmanager/lego3dmanager.h +++ b/LEGO1/lego/sources/3dmanager/lego3dmanager.h @@ -73,6 +73,7 @@ class Lego3DManager { // // Lego3DManager implementaion +// FUNCTION: BETA10 0x10079bd0 inline BOOL Lego3DManager::Add(ViewROI& rROI) { assert(m_pLego3DView); @@ -80,6 +81,7 @@ inline BOOL Lego3DManager::Add(ViewROI& rROI) return m_pLego3DView->Add(rROI); } +// FUNCTION: BETA10 0x10037430 inline BOOL Lego3DManager::Remove(ViewROI& rROI) { assert(m_pLego3DView); @@ -87,6 +89,7 @@ inline BOOL Lego3DManager::Remove(ViewROI& rROI) return m_pLego3DView->Remove(rROI); } +// FUNCTION: BETA10 0x100d8990 inline BOOL Lego3DManager::SetPointOfView(ViewROI& rROI) { assert(m_pLego3DView); @@ -94,6 +97,7 @@ inline BOOL Lego3DManager::SetPointOfView(ViewROI& rROI) return m_pLego3DView->SetPointOfView(rROI); } +// FUNCTION: BETA10 0x1004af70 inline BOOL Lego3DManager::Moved(ViewROI& rROI) { assert(m_pLego3DView); diff --git a/LEGO1/lego/sources/3dmanager/lego3dview.cpp b/LEGO1/lego/sources/3dmanager/lego3dview.cpp index 4f69fa40..a4104180 100644 --- a/LEGO1/lego/sources/3dmanager/lego3dview.cpp +++ b/LEGO1/lego/sources/3dmanager/lego3dview.cpp @@ -74,6 +74,7 @@ void Lego3DView::Destroy() } // FUNCTION: LEGO1 0x100ab100 +// FUNCTION: BETA10 0x1017d038 BOOL Lego3DView::Add(ViewROI& rROI) { assert(m_pViewManager); @@ -84,6 +85,7 @@ BOOL Lego3DView::Add(ViewROI& rROI) } // FUNCTION: LEGO1 0x100ab170 +// FUNCTION: BETA10 0x1017d096 BOOL Lego3DView::Remove(ViewROI& rROI) { assert(m_pViewManager); @@ -99,6 +101,7 @@ BOOL Lego3DView::Remove(ViewROI& rROI) } // FUNCTION: LEGO1 0x100ab1b0 +// FUNCTION: BETA10 0x1017d123 BOOL Lego3DView::SetPointOfView(ViewROI& rROI) { Tgl::FloatMatrix4 transformation; diff --git a/LEGO1/lego/sources/3dmanager/lego3dview.h b/LEGO1/lego/sources/3dmanager/lego3dview.h index 6c8930e9..9e0f69eb 100644 --- a/LEGO1/lego/sources/3dmanager/lego3dview.h +++ b/LEGO1/lego/sources/3dmanager/lego3dview.h @@ -46,6 +46,7 @@ class Lego3DView : public LegoView1 { // // Lego3DView implementation +// FUNCTION: BETA10 0x100576b0 inline ViewManager* Lego3DView::GetViewManager() { return m_pViewManager;