From 190c040c9630d707225625e715619a9f007978e9 Mon Sep 17 00:00:00 2001 From: Fabian Neundorf Date: Mon, 25 Aug 2025 21:13:10 +0200 Subject: [PATCH] Clear unknowns in `LegoWorld` (#1674) --- LEGO1/lego/legoomni/include/act3.h | 2 +- LEGO1/lego/legoomni/include/elevatorbottom.h | 2 +- LEGO1/lego/legoomni/include/gasstation.h | 2 +- LEGO1/lego/legoomni/include/hospital.h | 2 +- LEGO1/lego/legoomni/include/infocenter.h | 2 +- LEGO1/lego/legoomni/include/infocenterdoor.h | 2 +- LEGO1/lego/legoomni/include/isle.h | 2 +- LEGO1/lego/legoomni/include/jukebox.h | 2 +- LEGO1/lego/legoomni/include/legoact2.h | 2 +- LEGO1/lego/legoomni/include/legocarbuild.h | 2 +- LEGO1/lego/legoomni/include/legorace.h | 2 +- LEGO1/lego/legoomni/include/legoworld.h | 26 ++++---- LEGO1/lego/legoomni/include/police.h | 2 +- LEGO1/lego/legoomni/include/score.h | 2 +- .../legoomni/src/common/legogamestate.cpp | 2 +- LEGO1/lego/legoomni/src/entity/legoworld.cpp | 64 +++++++++---------- .../src/entity/legoworldpresenter.cpp | 2 +- LEGO1/lego/legoomni/src/race/legorace.cpp | 2 +- .../legoomni/src/video/legoanimpresenter.cpp | 4 +- LEGO1/lego/legoomni/src/worlds/act3.cpp | 2 +- LEGO1/lego/legoomni/src/worlds/infocenter.cpp | 8 +-- LEGO1/lego/legoomni/src/worlds/isle.cpp | 2 +- LEGO1/lego/legoomni/src/worlds/legoact2.cpp | 2 +- 23 files changed, 70 insertions(+), 70 deletions(-) diff --git a/LEGO1/lego/legoomni/include/act3.h b/LEGO1/lego/legoomni/include/act3.h index 9172a6cc..ffba305b 100644 --- a/LEGO1/lego/legoomni/include/act3.h +++ b/LEGO1/lego/legoomni/include/act3.h @@ -106,7 +106,7 @@ public: MxResult Tickle() override; // vtable+0x08 // FUNCTION: LEGO1 0x10072500 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x10072510 // FUNCTION: BETA10 0x10017550 diff --git a/LEGO1/lego/legoomni/include/elevatorbottom.h b/LEGO1/lego/legoomni/include/elevatorbottom.h index ad1fe29f..2db42ec5 100644 --- a/LEGO1/lego/legoomni/include/elevatorbottom.h +++ b/LEGO1/lego/legoomni/include/elevatorbottom.h @@ -18,7 +18,7 @@ public: MxLong Notify(MxParam& p_param) override; // vtable+0x04 // FUNCTION: LEGO1 0x10017f10 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x10017f20 // FUNCTION: BETA10 0x10028130 diff --git a/LEGO1/lego/legoomni/include/gasstation.h b/LEGO1/lego/legoomni/include/gasstation.h index 5b4a6a35..c2a9f69b 100644 --- a/LEGO1/lego/legoomni/include/gasstation.h +++ b/LEGO1/lego/legoomni/include/gasstation.h @@ -75,7 +75,7 @@ public: MxResult Tickle() override; // vtable+0x08 // FUNCTION: LEGO1 0x10004770 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x10004780 // FUNCTION: BETA10 0x10029d40 diff --git a/LEGO1/lego/legoomni/include/hospital.h b/LEGO1/lego/legoomni/include/hospital.h index 2a90764b..c55eefda 100644 --- a/LEGO1/lego/legoomni/include/hospital.h +++ b/LEGO1/lego/legoomni/include/hospital.h @@ -79,7 +79,7 @@ public: MxResult Tickle() override; // vtable+0x08 // FUNCTION: LEGO1 0x100746a0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x100746b0 // FUNCTION: BETA10 0x1002e1a0 diff --git a/LEGO1/lego/legoomni/include/infocenter.h b/LEGO1/lego/legoomni/include/infocenter.h index 2826c220..0bed4175 100644 --- a/LEGO1/lego/legoomni/include/infocenter.h +++ b/LEGO1/lego/legoomni/include/infocenter.h @@ -141,7 +141,7 @@ public: MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 void ReadyWorld() override; // vtable+0x50 - MxBool VTable0x5c() override; // vtable+0x5c + MxBool WaitForTransition() override; // vtable+0x5c MxBool Escape() override; // vtable+0x64 void Enable(MxBool p_enable) override; // vtable+0x68 diff --git a/LEGO1/lego/legoomni/include/infocenterdoor.h b/LEGO1/lego/legoomni/include/infocenterdoor.h index c9bb841b..4612cb1b 100644 --- a/LEGO1/lego/legoomni/include/infocenterdoor.h +++ b/LEGO1/lego/legoomni/include/infocenterdoor.h @@ -17,7 +17,7 @@ public: MxLong Notify(MxParam& p_param) override; // vtable+0x04 // FUNCTION: LEGO1 0x100377a0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x100377b0 // FUNCTION: BETA10 0x10032790 diff --git a/LEGO1/lego/legoomni/include/isle.h b/LEGO1/lego/legoomni/include/isle.h index 8d76e78d..eafec8fe 100644 --- a/LEGO1/lego/legoomni/include/isle.h +++ b/LEGO1/lego/legoomni/include/isle.h @@ -134,7 +134,7 @@ public: MxLong Notify(MxParam& p_param) override; // vtable+0x04 // FUNCTION: LEGO1 0x10030900 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x10030910 // FUNCTION: BETA10 0x10035d70 diff --git a/LEGO1/lego/legoomni/include/jukebox.h b/LEGO1/lego/legoomni/include/jukebox.h index e7a36668..1709e869 100644 --- a/LEGO1/lego/legoomni/include/jukebox.h +++ b/LEGO1/lego/legoomni/include/jukebox.h @@ -60,7 +60,7 @@ public: MxResult Tickle() override; // vtable+0x08 // FUNCTION: LEGO1 0x1005d6e0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x1005d6f0 // FUNCTION: BETA10 0x100388d0 diff --git a/LEGO1/lego/legoomni/include/legoact2.h b/LEGO1/lego/legoomni/include/legoact2.h index 23d05fae..78b0fe88 100644 --- a/LEGO1/lego/legoomni/include/legoact2.h +++ b/LEGO1/lego/legoomni/include/legoact2.h @@ -71,7 +71,7 @@ public: void ReadyWorld() override; // vtable+0x50 // FUNCTION: LEGO1 0x1004fe10 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c void VTable0x60() override; // vtable+0x60 MxBool Escape() override; // vtable+0x64 diff --git a/LEGO1/lego/legoomni/include/legocarbuild.h b/LEGO1/lego/legoomni/include/legocarbuild.h index a96b7b67..89dc2053 100644 --- a/LEGO1/lego/legoomni/include/legocarbuild.h +++ b/LEGO1/lego/legoomni/include/legocarbuild.h @@ -94,7 +94,7 @@ public: // FUNCTION: LEGO1 0x10022930 // FUNCTION: BETA10 0x10070070 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x10022940 // FUNCTION: BETA10 0x10070090 diff --git a/LEGO1/lego/legoomni/include/legorace.h b/LEGO1/lego/legoomni/include/legorace.h index e1b93211..8c9c1fe2 100644 --- a/LEGO1/lego/legoomni/include/legorace.h +++ b/LEGO1/lego/legoomni/include/legorace.h @@ -153,7 +153,7 @@ public: } // FUNCTION: LEGO1 0x1000dae0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c void Enable(MxBool p_enable) override; // vtable+0x68 diff --git a/LEGO1/lego/legoomni/include/legoworld.h b/LEGO1/lego/legoomni/include/legoworld.h index 11e5e667..9e96973d 100644 --- a/LEGO1/lego/legoomni/include/legoworld.h +++ b/LEGO1/lego/legoomni/include/legoworld.h @@ -47,18 +47,18 @@ public: LegoWorld(); ~LegoWorld() override; // vtable+0x00 - MxLong Notify(MxParam& p_param) override; // vtable+0x04 - MxResult Tickle() override; // vtable+0x08 - MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 - void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c - virtual void ReadyWorld(); // vtable+0x50 - virtual LegoCameraController* VTable0x54(); // vtable+0x54 - virtual void Add(MxCore* p_object); // vtable+0x58 + MxLong Notify(MxParam& p_param) override; // vtable+0x04 + MxResult Tickle() override; // vtable+0x08 + MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 + void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c + virtual void ReadyWorld(); // vtable+0x50 + virtual LegoCameraController* InitializeCameraController(); // vtable+0x54 + virtual void Add(MxCore* p_object); // vtable+0x58 // The BETA10 match could also be LegoWorld::Escape(), only the child classes might be able to tell // FUNCTION: LEGO1 0x1001d670 // FUNCTION: BETA10 0x10017530 - virtual MxBool VTable0x5c() { return FALSE; } // vtable+0x5c + virtual MxBool WaitForTransition() { return FALSE; } // vtable+0x5c // FUNCTION: LEGO1 0x100010a0 virtual void VTable0x60() {} // vtable+0x60 @@ -102,8 +102,8 @@ public: ); void RemoveActor(LegoPathActor* p_actor); MxBool ActorExists(LegoPathActor* p_actor); - void FUN_1001fda0(LegoAnimPresenter* p_presenter); - void FUN_1001fe90(LegoAnimPresenter* p_presenter); + void AddPresenterIfInRange(LegoAnimPresenter* p_presenter); + void RemovePresenterFromBoundaries(LegoAnimPresenter* p_presenter); LegoPathBoundary* FindPathBoundary(const char* p_name); void AddPath(LegoPathController* p_controller); MxResult GetCurrPathInfo(LegoPathBoundary** p_boundaries, MxS32& p_numL); @@ -115,7 +115,7 @@ public: LegoEntityList* GetEntityList() { return m_entityList; } LegoOmni::World GetWorldId() { return m_worldId; } - MxBool GetUnknown0xd0Empty() { return m_set0xd0.empty(); } + MxBool NoDisabledObjects() { return m_disabledObjects.empty(); } list& GetROIList() { return m_roiList; } LegoHideAnimPresenter* GetHideAnimPresenter() { return m_hideAnim; } @@ -131,9 +131,9 @@ protected: LegoEntityList* m_entityList; // 0x9c LegoCacheSoundList* m_cacheSoundList; // 0xa0 MxBool m_destroyed; // 0xa4 - MxCoreSet m_set0xa8; // 0xa8 + MxCoreSet m_objects; // 0xa8 MxPresenterList m_controlPresenters; // 0xb8 - MxCoreSet m_set0xd0; // 0xd0 + MxCoreSet m_disabledObjects; // 0xd0 list m_roiList; // 0xe0 LegoOmni::World m_worldId; // 0xec diff --git a/LEGO1/lego/legoomni/include/police.h b/LEGO1/lego/legoomni/include/police.h index 8d8d7840..12395cbc 100644 --- a/LEGO1/lego/legoomni/include/police.h +++ b/LEGO1/lego/legoomni/include/police.h @@ -65,7 +65,7 @@ public: MxLong Notify(MxParam& p_param) override; // vtable+0x04 // FUNCTION: LEGO1 0x1005e1d0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x1005e1e0 // FUNCTION: BETA10 0x100f0c50 diff --git a/LEGO1/lego/legoomni/include/score.h b/LEGO1/lego/legoomni/include/score.h index 36252f6f..f2e453a5 100644 --- a/LEGO1/lego/legoomni/include/score.h +++ b/LEGO1/lego/legoomni/include/score.h @@ -60,7 +60,7 @@ public: MxLong Notify(MxParam& p_param) override; // vtable+0x04 // FUNCTION: LEGO1 0x100010b0 - MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c + MxBool WaitForTransition() override { return TRUE; } // vtable+0x5c // FUNCTION: LEGO1 0x100010c0 // FUNCTION: BETA10 0x100f4f20 diff --git a/LEGO1/lego/legoomni/src/common/legogamestate.cpp b/LEGO1/lego/legoomni/src/common/legogamestate.cpp index 2ec50d7e..f5af3279 100644 --- a/LEGO1/lego/legoomni/src/common/legogamestate.cpp +++ b/LEGO1/lego/legoomni/src/common/legogamestate.cpp @@ -835,7 +835,7 @@ inline void LoadIsle() { LegoWorld* world = FindWorld(*g_isleScript, IsleScript::c__Isle); if (world != NULL) { - if (!world->GetUnknown0xd0Empty()) { + if (!world->NoDisabledObjects()) { NotificationManager()->Send(world, MxNotificationParam(c_notificationType20, NULL)); } } diff --git a/LEGO1/lego/legoomni/src/entity/legoworld.cpp b/LEGO1/lego/legoomni/src/entity/legoworld.cpp index f975f5b6..c9c84915 100644 --- a/LEGO1/lego/legoomni/src/entity/legoworld.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoworld.cpp @@ -70,7 +70,7 @@ MxResult LegoWorld::Create(MxDSAction& p_dsAction) return FAILURE; } - if (!VTable0x54()) { + if (!InitializeCameraController()) { return FAILURE; } @@ -130,10 +130,10 @@ void LegoWorld::Destroy(MxBool p_fromDestructor) } } - while (!m_set0xa8.empty()) { - MxCoreSet::iterator it = m_set0xa8.begin(); + while (!m_objects.empty()) { + MxCoreSet::iterator it = m_objects.begin(); MxCore* object = *it; - m_set0xa8.erase(it); + m_objects.erase(it); if (object->IsA("MxPresenter")) { MxPresenter* presenter = (MxPresenter*) object; @@ -161,7 +161,7 @@ void LegoWorld::Destroy(MxBool p_fromDestructor) } } - if (m_worldId != LegoOmni::e_undefined && m_set0xd0.empty()) { + if (m_worldId != LegoOmni::e_undefined && m_disabledObjects.empty()) { PlantManager()->Reset(m_worldId); BuildingManager()->Reset(); } @@ -229,7 +229,7 @@ MxLong LegoWorld::Notify(MxParam& p_param) // FUNCTION: LEGO1 0x1001f630 // FUNCTION: BETA10 0x100d9fc2 -LegoCameraController* LegoWorld::VTable0x54() +LegoCameraController* LegoWorld::InitializeCameraController() { MxBool success = FALSE; @@ -352,7 +352,7 @@ MxBool LegoWorld::ActorExists(LegoPathActor* p_actor) // FUNCTION: LEGO1 0x1001fda0 // FUNCTION: BETA10 0x100da621 -void LegoWorld::FUN_1001fda0(LegoAnimPresenter* p_presenter) +void LegoWorld::AddPresenterIfInRange(LegoAnimPresenter* p_presenter) { LegoPathControllerListCursor cursor(&m_pathControllerList); LegoPathController* controller; @@ -364,7 +364,7 @@ void LegoWorld::FUN_1001fda0(LegoAnimPresenter* p_presenter) // FUNCTION: LEGO1 0x1001fe90 // FUNCTION: BETA10 0x100da6b5 -void LegoWorld::FUN_1001fe90(LegoAnimPresenter* p_presenter) +void LegoWorld::RemovePresenterFromBoundaries(LegoAnimPresenter* p_presenter) { LegoPathControllerListCursor cursor(&m_pathControllerList); LegoPathController* controller; @@ -481,25 +481,25 @@ void LegoWorld::Add(MxCore* p_object) } #endif else { - MxCoreSet::iterator it = m_set0xa8.find(p_object); - if (it == m_set0xa8.end()) { + MxCoreSet::iterator it = m_objects.find(p_object); + if (it == m_objects.end()) { #ifdef BETA10 if (p_object->IsA("MxPresenter")) { assert(static_cast(p_object)->GetAction()); } #endif - m_set0xa8.insert(p_object); + m_objects.insert(p_object); } else { assert(0); } } - if (m_set0xd0.size() != 0 && p_object->IsA("MxPresenter")) { + if (m_disabledObjects.size() != 0 && p_object->IsA("MxPresenter")) { if (((MxPresenter*) p_object)->IsEnabled()) { ((MxPresenter*) p_object)->Enable(FALSE); - m_set0xd0.insert(p_object); + m_disabledObjects.insert(p_object); } } } @@ -557,15 +557,15 @@ void LegoWorld::Remove(MxCore* p_object) } #endif else { - it = m_set0xa8.find(p_object); - if (it != m_set0xa8.end()) { - m_set0xa8.erase(it); + it = m_objects.find(p_object); + if (it != m_objects.end()) { + m_objects.erase(it); } } - it = m_set0xd0.find(p_object); - if (it != m_set0xd0.end()) { - m_set0xd0.erase(it); + it = m_disabledObjects.find(p_object); + if (it != m_disabledObjects.end()) { + m_disabledObjects.erase(it); } } @@ -617,7 +617,7 @@ MxCore* LegoWorld::Find(const char* p_class, const char* p_name) return NULL; } - for (MxCoreSet::iterator i = m_set0xa8.begin(); i != m_set0xa8.end(); i++) { + for (MxCoreSet::iterator i = m_objects.begin(); i != m_objects.end(); i++) { if ((*i)->IsA(p_class) && (*i)->IsA("MxPresenter")) { assert(((MxPresenter*) (*i))->GetAction()); @@ -664,7 +664,7 @@ MxCore* LegoWorld::Find(const MxAtomId& p_atom, MxS32 p_entityId) } } - for (MxCoreSet::iterator it = m_set0xa8.begin(); it != m_set0xa8.end(); it++) { + for (MxCoreSet::iterator it = m_objects.begin(); it != m_objects.end(); it++) { MxCore* core = *it; if (core->IsA("MxPresenter")) { @@ -686,7 +686,7 @@ void LegoWorld::Enable(MxBool p_enable) { MxCoreSet::iterator it; - if (p_enable && m_set0xd0.size() != 0) { + if (p_enable && m_disabledObjects.size() != 0) { if (CurrentWorld() == this) { return; } @@ -709,8 +709,8 @@ void LegoWorld::Enable(MxBool p_enable) } } - while (m_set0xd0.size() != 0) { - it = m_set0xd0.begin(); + while (m_disabledObjects.size() != 0) { + it = m_disabledObjects.begin(); if ((*it)->IsA("MxPresenter")) { ((MxPresenter*) *it)->Enable(TRUE); @@ -719,7 +719,7 @@ void LegoWorld::Enable(MxBool p_enable) ((LegoPathController*) *it)->Enable(TRUE); } - m_set0xd0.erase(it); + m_disabledObjects.erase(it); } SetCurrentWorld(this); @@ -743,7 +743,7 @@ void LegoWorld::Enable(MxBool p_enable) SetIsWorldActive(TRUE); #endif } - else if (!p_enable && m_set0xd0.size() == 0) { + else if (!p_enable && m_disabledObjects.size() == 0) { MxPresenter* presenter; LegoPathController* controller; LegoPathActor* actor = UserActor(); @@ -753,7 +753,7 @@ void LegoWorld::Enable(MxBool p_enable) } AnimationManager()->Reset(FALSE); - m_set0xd0.insert(this); + m_disabledObjects.insert(this); if (m_worldId != LegoOmni::e_undefined) { PlantManager()->Reset(m_worldId); @@ -766,15 +766,15 @@ void LegoWorld::Enable(MxBool p_enable) while (controlPresenterCursor.Next(presenter)) { if (presenter->IsEnabled()) { - m_set0xd0.insert(presenter); + m_disabledObjects.insert(presenter); presenter->Enable(FALSE); } } - for (MxCoreSet::iterator it = m_set0xa8.begin(); it != m_set0xa8.end(); it++) { + for (MxCoreSet::iterator it = m_objects.begin(); it != m_objects.end(); it++) { if ((*it)->IsA("LegoActionControlPresenter") || ((*it)->IsA("MxPresenter") && ((MxPresenter*) *it)->IsEnabled())) { - m_set0xd0.insert(*it); + m_disabledObjects.insert(*it); ((MxPresenter*) *it)->Enable(FALSE); } } @@ -800,7 +800,7 @@ void LegoWorld::Enable(MxBool p_enable) while (pathControllerCursor.Next(controller)) { controller->Enable(FALSE); - m_set0xd0.insert(controller); + m_disabledObjects.insert(controller); } GetViewManager()->RemoveAll(NULL); @@ -858,7 +858,7 @@ MxBool LegoWorld::PresentersPending() } } - for (MxCoreSet::iterator it = m_set0xa8.begin(); it != m_set0xa8.end(); it++) { + for (MxCoreSet::iterator it = m_objects.begin(); it != m_objects.end(); it++) { if ((*it)->IsA("MxPresenter")) { presenter = (MxPresenter*) *it; diff --git a/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp b/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp index 397a4a77..6ecba8b1 100644 --- a/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp +++ b/LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp @@ -58,7 +58,7 @@ LegoWorldPresenter::~LegoWorldPresenter() PlantManager()->LoadWorldInfo(worldId); AnimationManager()->LoadWorldInfo(worldId); BuildingManager()->LoadWorldInfo(); - result = ((LegoWorld*) m_entity)->VTable0x5c(); + result = ((LegoWorld*) m_entity)->WaitForTransition(); } if (result == FALSE) { diff --git a/LEGO1/lego/legoomni/src/race/legorace.cpp b/LEGO1/lego/legoomni/src/race/legorace.cpp index 91374766..1a01e72f 100644 --- a/LEGO1/lego/legoomni/src/race/legorace.cpp +++ b/LEGO1/lego/legoomni/src/race/legorace.cpp @@ -101,7 +101,7 @@ MxLong LegoRace::Notify(MxParam& p_param) // FUNCTION: BETA10 0x100c7c3f void LegoRace::Enable(MxBool p_enable) { - if (GetUnknown0xd0Empty() != p_enable && !p_enable) { + if (NoDisabledObjects() != p_enable && !p_enable) { Remove(UserActor()); MxU8 oldActorId = GameState()->GetActorId(); diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index d92bbba8..138a9c68 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -1136,7 +1136,7 @@ void LegoAnimPresenter::VTable0x8c() } if (m_currentWorld) { - m_currentWorld->FUN_1001fda0(this); + m_currentWorld->AddPresenterIfInRange(this); if (!m_compositePresenter || !m_compositePresenter->IsA("LegoAnimMMPresenter")) { m_currentWorld->Add(this); } @@ -1148,7 +1148,7 @@ void LegoAnimPresenter::VTable0x8c() void LegoAnimPresenter::VTable0x90() { if (m_currentWorld != NULL) { - m_currentWorld->FUN_1001fe90(this); + m_currentWorld->RemovePresenterFromBoundaries(this); if (m_compositePresenter != NULL && m_compositePresenter->IsA("LegoAnimMMPresenter")) { return; diff --git a/LEGO1/lego/legoomni/src/worlds/act3.cpp b/LEGO1/lego/legoomni/src/worlds/act3.cpp index 5fe765d7..74c2b383 100644 --- a/LEGO1/lego/legoomni/src/worlds/act3.cpp +++ b/LEGO1/lego/legoomni/src/worlds/act3.cpp @@ -888,7 +888,7 @@ void Act3::FUN_10073a60() // FUNCTION: LEGO1 0x10073a90 void Act3::Enable(MxBool p_enable) { - if ((MxBool) m_set0xd0.empty() == p_enable) { + if ((MxBool) m_disabledObjects.empty() == p_enable) { return; } diff --git a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp index 93664c95..15007f72 100644 --- a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp +++ b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp @@ -1290,7 +1290,7 @@ void Infocenter::StopCutscene() } // FUNCTION: LEGO1 0x10070d00 -MxBool Infocenter::VTable0x5c() +MxBool Infocenter::WaitForTransition() { return TRUE; } @@ -1442,10 +1442,10 @@ void Infocenter::StartCredits() { MxPresenter* presenter; - while (!m_set0xa8.empty()) { - MxCoreSet::iterator it = m_set0xa8.begin(); + while (!m_objects.empty()) { + MxCoreSet::iterator it = m_objects.begin(); MxCore* object = *it; - m_set0xa8.erase(it); + m_objects.erase(it); if (object->IsA("MxPresenter")) { presenter = (MxPresenter*) object; diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp index 9ac37ec0..a5130c4c 100644 --- a/LEGO1/lego/legoomni/src/worlds/isle.cpp +++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp @@ -529,7 +529,7 @@ MxLong Isle::HandlePathStruct(LegoPathStructNotificationParam& p_param) // FUNCTION: BETA10 0x10034158 void Isle::Enable(MxBool p_enable) { - if ((MxBool) m_set0xd0.empty() == p_enable) { + if ((MxBool) m_disabledObjects.empty() == p_enable) { return; } diff --git a/LEGO1/lego/legoomni/src/worlds/legoact2.cpp b/LEGO1/lego/legoomni/src/worlds/legoact2.cpp index a1bf0736..7df974fc 100644 --- a/LEGO1/lego/legoomni/src/worlds/legoact2.cpp +++ b/LEGO1/lego/legoomni/src/worlds/legoact2.cpp @@ -522,7 +522,7 @@ void LegoAct2::ReadyWorld() // FUNCTION: BETA10 0x1003bb2d void LegoAct2::Enable(MxBool p_enable) { - if ((MxBool) m_set0xd0.empty() == p_enable) { + if ((MxBool) m_disabledObjects.empty() == p_enable) { return; }