1
0
Fork 0
mirror of https://github.com/isledecomp/isle.git synced 2025-04-05 19:24:58 -04:00

Order symbols in LegoWorld ()

* Partially order `LegoWorld` symbols

* Further order `LegoWorld`
This commit is contained in:
Christian Semmler 2025-01-09 17:31:45 -07:00 committed by GitHub
parent 58d3bd39e1
commit ee2bcb4d53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 31 additions and 45 deletions
LEGO1
lego/legoomni
include
src/entity
omni/include

View file

@ -1,15 +1,18 @@
#ifndef LEGOWORLD_H
#define LEGOWORLD_H
// clang-format off
#include "mxpresenterlist.h"
#include "legoentitylist.h"
#include "legocachesoundlist.h"
// clang-format on
#include "legoentity.h"
#include "legomain.h"
#include "legopathcontrollerlist.h"
#include "mxpresenterlist.h"
#include "roi/legoroi.h"
class LegoCacheSoundList;
class LegoCameraController;
class LegoEntityList;
class LegoPathBoundary;
class LegoHideAnimPresenter;
@ -44,8 +47,26 @@ public:
LegoWorld();
~LegoWorld() override; // vtable+0x00
MxLong Notify(MxParam& p_param) override; // vtable+0x04
MxResult Tickle() override; // vtable+0x08
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
// 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
// FUNCTION: LEGO1 0x100010a0
virtual void VTable0x60() {} // vtable+0x60
// FUNCTION: LEGO1 0x1001d680
virtual MxBool Escape() { return FALSE; } // vtable+0x64
virtual void Enable(MxBool p_enable); // vtable+0x68
// FUNCTION: LEGO1 0x1001d690
// FUNCTION: BETA10 0x10017660
@ -62,19 +83,6 @@ public:
return !strcmp(p_name, LegoWorld::ClassName()) || LegoEntity::IsA(p_name);
}
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
virtual MxBool VTable0x5c(); // vtable+0x5c
// FUNCTION: LEGO1 0x100010a0
virtual void VTable0x60() {} // vtable+0x60
virtual MxBool Escape(); // vtable+0x64
virtual void Enable(MxBool p_enable); // vtable+0x68
MxBool PresentersPending();
void Remove(MxCore* p_object);
MxResult PlaceActor(

View file

@ -4,11 +4,9 @@
#include "legoanimationmanager.h"
#include "legoanimpresenter.h"
#include "legobuildingmanager.h"
#include "legocachesoundlist.h"
#include "legocachesoundmanager.h"
#include "legocameracontroller.h"
#include "legocontrolmanager.h"
#include "legoentitylist.h"
#include "legogamestate.h"
#include "legoinputmanager.h"
#include "legolocomotionanimpresenter.h"
@ -47,20 +45,6 @@ LegoWorld::LegoWorld() : m_list0x68(TRUE)
NotificationManager()->Register(this);
}
// FUNCTION: LEGO1 0x1001d670
// FUNCTION: BETA10 0x10017530
MxBool LegoWorld::VTable0x5c()
{
// The BETA10 match could also be LegoWorld::Escape(), only the child classes might be able to tell
return FALSE;
}
// FUNCTION: LEGO1 0x1001d680
MxBool LegoWorld::Escape()
{
return FALSE;
}
// FUNCTION: LEGO1 0x1001dfa0
LegoWorld::~LegoWorld()
{

View file

@ -12,13 +12,14 @@ public:
SetDestroy(Destroy);
}
virtual MxS8 Compare(T, T) { return 0; } // vtable+0x14
~MxCollection() override {}
static void Destroy(T) {}
void SetDestroy(void (*p_customDestructor)(T)) { this->m_customDestructor = p_customDestructor; }
~MxCollection() override {}
virtual MxS8 Compare(T, T) { return 0; }
protected:
MxU32 m_count; // 0x08
void (*m_customDestructor)(T); // 0x0c

View file

@ -46,8 +46,7 @@ template <class T>
class MxList : protected MxCollection<T> {
public:
MxList() { m_first = m_last = NULL; }
~MxList() override;
~MxList() override { DeleteAll(); }
void Append(T p_obj) { InsertEntry(p_obj, this->m_last, NULL); }
void Prepend(T p_obj) { InsertEntry(p_obj, NULL, this->m_first); }
@ -127,12 +126,6 @@ public:
MxPtrListCursor(MxPtrList<T>* p_list) : MxListCursor<T*>(p_list) {}
};
template <class T>
MxList<T>::~MxList()
{
DeleteAll();
}
// Delete entries and values
template <class T>
inline void MxList<T>::DeleteAll()