Push changes

This commit is contained in:
Misha 2024-01-20 14:02:45 -05:00
parent 961282e3c6
commit e579ed7bc0
No known key found for this signature in database
GPG Key ID: 8441D12AEF33FED8
4 changed files with 38 additions and 2 deletions

View File

@ -105,6 +105,7 @@ class LegoOmni : public MxOmni {
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid); LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
void AddWorld(LegoWorld* p_world); void AddWorld(LegoWorld* p_world);
void DeleteEntity(LegoEntity* p_entity);
void FUN_1005b4f0(MxBool p_disable, MxU16 p_flags); void FUN_1005b4f0(MxBool p_disable, MxU16 p_flags);
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; } LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }

View File

@ -60,6 +60,7 @@ class LegoWorld : public LegoEntity {
void FUN_10073430(); void FUN_10073430();
MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value); MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
MxPresenter* FindPresenter(const char* p_presenter, const char* p_name); MxPresenter* FindPresenter(const char* p_presenter, const char* p_name);
MxCore* FUN_10021790(const MxAtomId& p_atom, MxS32 p_objectId);
// SYNTHETIC: LEGO1 0x1001dee0 // SYNTHETIC: LEGO1 0x1001dee0
// LegoWorld::`scalar deleting destructor' // LegoWorld::`scalar deleting destructor'

View File

@ -163,6 +163,12 @@ MxPresenter* LegoWorld::FindPresenter(const char* p_presenter, const char* p_nam
return NULL; return NULL;
} }
// STUB: LEGO1 0x10021790
MxCore* LegoWorld::FUN_10021790(const MxAtomId& p_atom, MxS32 p_objectId)
{
return NULL;
}
// STUB: LEGO1 0x10021a70 // STUB: LEGO1 0x10021a70
void LegoWorld::VTable0x68(MxBool p_add) void LegoWorld::VTable0x68(MxBool p_add)
{ {

View File

@ -19,6 +19,7 @@
#include "mxdsfile.h" #include "mxdsfile.h"
#include "mxomnicreateflags.h" #include "mxomnicreateflags.h"
#include "mxomnicreateparam.h" #include "mxomnicreateparam.h"
#include "mxstreamer.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
@ -605,6 +606,11 @@ void LegoOmni::AddWorld(LegoWorld* p_world)
m_worldList->Append(p_world); m_worldList->Append(p_world);
} }
// STUB: LEGO1 0x1005adb0
void LegoOmni::DeleteEntity(LegoEntity* p_entity)
{
}
// STUB: LEGO1 0x1005af10 // STUB: LEGO1 0x1005af10
void LegoOmni::RemoveWorld(const MxAtomId&, MxLong) void LegoOmni::RemoveWorld(const MxAtomId&, MxLong)
{ {
@ -628,10 +634,32 @@ LegoEntity* LegoOmni::FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_ent
return NULL; return NULL;
} }
// STUB: LEGO1 0x1005b1d0 // FUNCTION: LEGO1 0x1005b1d0
void LegoOmni::DeleteObject(MxDSAction& p_dsAction) void LegoOmni::DeleteObject(MxDSAction& p_dsAction)
{ {
// TODO if (p_dsAction.GetAtomId().GetInternal() != NULL) {
LegoEntity* entity = FindByEntityIdOrAtomId(p_dsAction.GetAtomId(), p_dsAction.GetObjectId());
if (entity) {
DeleteEntity(entity);
return;
}
if (m_currentWorld != NULL) {
MxCore* entity2 = m_currentWorld->FUN_10021790(p_dsAction.GetAtomId(), p_dsAction.GetObjectId());
m_currentWorld->EndAction(entity2);
if (entity2->IsA("MxPresenter")) {
Streamer()->FUN_100b98f0(((MxPresenter*) entity2)->GetAction());
((MxPresenter*) entity2)->EndAction();
}
else {
delete entity2;
}
return;
}
}
MxOmni::DeleteObject(p_dsAction);
} }
// FUNCTION: LEGO1 0x1005b2f0 // FUNCTION: LEGO1 0x1005b2f0