mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-26 09:54:18 +00:00
Merge remote-tracking branch 'upstream/master' into legobackgroundcolor
This commit is contained in:
@@ -24,7 +24,7 @@ public:
|
||||
// OFFSET: LEGO1 0x1005ec90
|
||||
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoAnimationManager::ClassName()) || MxCore::IsA(name);
|
||||
return !strcmp(name, ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
|
||||
__declspec(dllexport) static void configureLegoAnimationManager(int param_1);
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
// OFFSET: LEGO1 0x10011ed0
|
||||
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoCameraController::ClassName()) || MxCore::IsA(name);
|
||||
return !strcmp(name, ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
// OFFSET: LEGO1 0x1006d890
|
||||
inline MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoHideAnimPresenter::ClassName()) || LegoAnimPresenter::IsA(name);
|
||||
return !strcmp(name, ClassName()) || LegoAnimPresenter::IsA(name);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
// OFFSET: LEGO1 0x1006ce60
|
||||
inline MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoLocomotionAnimPresenter::ClassName()) || LegoLoopingAnimPresenter::IsA(name);
|
||||
return !strcmp(name, ClassName()) || LegoLoopingAnimPresenter::IsA(name);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
// OFFSET: LEGO1 0x1000c9b0
|
||||
inline MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoLoopingAnimPresenter::ClassName()) || LegoAnimPresenter::IsA(name);
|
||||
return !strcmp(name, ClassName()) || LegoAnimPresenter::IsA(name);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
// OFFSET: LEGO1 0x10054b90
|
||||
inline MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoNavController::ClassName()) || MxCore::IsA(name);
|
||||
return !strcmp(name, ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
|
||||
void SetControlMax(int p_hMax, int p_vMax);
|
||||
|
||||
@@ -15,13 +15,20 @@ LegoOmni::~LegoOmni()
|
||||
// OFFSET: LEGO1 0x1005ad10
|
||||
LegoOmni *LegoOmni::GetInstance()
|
||||
{
|
||||
return (LegoOmni *) m_instance;
|
||||
return (LegoOmni *)MxOmni::GetInstance();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005ac90
|
||||
void LegoOmni::CreateInstance()
|
||||
{
|
||||
MxOmni::DestroyInstance();
|
||||
MxOmni::SetInstance(new LegoOmni());
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015700
|
||||
LegoOmni *Lego()
|
||||
{
|
||||
return (LegoOmni *) MxOmni::GetInstance();
|
||||
return (LegoOmni *)MxOmni::GetInstance();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015710
|
||||
@@ -30,7 +37,6 @@ LegoSoundManager *SoundManager()
|
||||
return LegoOmni::GetInstance()->GetSoundManager();
|
||||
}
|
||||
|
||||
|
||||
// OFFSET: LEGO1 0x10015720
|
||||
LegoVideoManager *VideoManager()
|
||||
{
|
||||
@@ -79,6 +85,13 @@ LegoNavController *NavController()
|
||||
return LegoOmni::GetInstance()->GetNavController();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015900
|
||||
MxTransitionManager *TransitionManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetTransitionManager();
|
||||
}
|
||||
|
||||
|
||||
// OFFSET: LEGO1 0x1005b5f0
|
||||
long LegoOmni::Notify(MxParam &p)
|
||||
{
|
||||
|
||||
@@ -71,6 +71,7 @@ public:
|
||||
LegoPlantManager *GetLegoPlantManager() { return m_plantManager; }
|
||||
LegoGameState *GetGameState() { return m_gameState; }
|
||||
LegoNavController *GetNavController() { return m_navController; }
|
||||
MxTransitionManager *GetTransitionManager() { return m_transitionManager; }
|
||||
|
||||
private:
|
||||
int m_unk68;
|
||||
@@ -84,7 +85,7 @@ private:
|
||||
char m_unk94[0x4];
|
||||
LegoBuildingManager* m_buildingManager; // 0x98
|
||||
LegoGameState *m_gameState; // 0x9c
|
||||
char m_unka0[0x94];
|
||||
MxDSAction m_action;
|
||||
MxBackgroundAudioManager *m_bkgAudioManager; // 0x134
|
||||
MxTransitionManager *m_transitionManager; // 0x138
|
||||
int m_unk13c;
|
||||
@@ -93,26 +94,19 @@ private:
|
||||
|
||||
__declspec(dllexport) MxBackgroundAudioManager * BackgroundAudioManager();
|
||||
__declspec(dllexport) MxDSObject * CreateStreamObject(MxDSFile *,short);
|
||||
__declspec(dllexport) MxEventManager * EventManager();
|
||||
__declspec(dllexport) LegoGameState * GameState();
|
||||
__declspec(dllexport) const char * GetNoCD_SourceName();
|
||||
__declspec(dllexport) LegoInputManager * InputManager();
|
||||
__declspec(dllexport) LegoOmni * Lego();
|
||||
__declspec(dllexport) MxSoundManager * MSoundManager();
|
||||
__declspec(dllexport) void MakeSourceName(char *, const char *);
|
||||
__declspec(dllexport) MxMusicManager * MusicManager();
|
||||
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
||||
__declspec(dllexport) LegoEntity * PickEntity(long,long);
|
||||
__declspec(dllexport) LegoROI * PickROI(long,long);
|
||||
__declspec(dllexport) void SetOmniUserMessage(void (*)(const char *,int));
|
||||
__declspec(dllexport) LegoSoundManager * SoundManager();
|
||||
__declspec(dllexport) long Start(MxDSAction *);
|
||||
__declspec(dllexport) MxStreamer * Streamer();
|
||||
__declspec(dllexport) MxTickleManager * TickleManager();
|
||||
__declspec(dllexport) MxTransitionManager * TransitionManager();
|
||||
__declspec(dllexport) MxVariableTable * VariableTable();
|
||||
__declspec(dllexport) LegoVideoManager * VideoManager();
|
||||
|
||||
__declspec(dllexport) long Start(MxDSAction *a);
|
||||
|
||||
LegoBuildingManager* BuildingManager();
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
// OFFSET: LEGO1 0x10079f40
|
||||
inline MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, LegoPalettePresenter::ClassName()) || MxVideoPresenter::IsA(name);
|
||||
return !strcmp(name, ClassName()) || MxVideoPresenter::IsA(name);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
MxDSObject::MxDSObject()
|
||||
{
|
||||
this->m_unk0c = 0;
|
||||
this->m_unk10 = 0;
|
||||
this->m_sourceName = NULL;
|
||||
this->m_unk14 = 0;
|
||||
this->m_name = NULL;
|
||||
this->m_objectName = NULL;
|
||||
this->m_unk24 = -1;
|
||||
this->m_unk1c = -1;
|
||||
this->m_unk28 = 0;
|
||||
@@ -18,25 +18,110 @@ MxDSObject::MxDSObject()
|
||||
// OFFSET: LEGO1 0x100bf7e0
|
||||
MxDSObject::~MxDSObject()
|
||||
{
|
||||
// TODO
|
||||
delete[] m_objectName;
|
||||
delete[] m_sourceName;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf870
|
||||
void MxDSObject::CopyFrom(MxDSObject &p_dsObject)
|
||||
{
|
||||
this->SetSourceName(p_dsObject.m_sourceName);
|
||||
this->m_unk14 = p_dsObject.m_unk14;
|
||||
this->SetObjectName(p_dsObject.m_objectName);
|
||||
this->m_unk1c = p_dsObject.m_unk1c;
|
||||
this->m_unk24 = p_dsObject.m_unk24;
|
||||
this->m_atomId = p_dsObject.m_atomId;
|
||||
this->m_unk28 = p_dsObject.m_unk28;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf8c0
|
||||
MxDSObject &MxDSObject::operator=(MxDSObject &p_dsObject)
|
||||
{
|
||||
if (this == &p_dsObject)
|
||||
return *this;
|
||||
|
||||
this->CopyFrom(p_dsObject);
|
||||
return *this;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf8e0
|
||||
void MxDSObject::SetObjectName(const char *p_name)
|
||||
{
|
||||
if (p_name != this->m_name)
|
||||
{
|
||||
free(this->m_name);
|
||||
if (p_name != this->m_objectName) {
|
||||
delete[] this->m_objectName;
|
||||
|
||||
if (p_name) {
|
||||
this->m_name = (char *)malloc(strlen(p_name) + 1);
|
||||
this->m_objectName = new char[strlen(p_name) + 1];
|
||||
|
||||
if (this->m_name) {
|
||||
strcpy(this->m_name, p_name);
|
||||
if (this->m_objectName) {
|
||||
strcpy(this->m_objectName, p_name);
|
||||
}
|
||||
}
|
||||
else {
|
||||
this->m_name = NULL;
|
||||
this->m_objectName = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf950
|
||||
void MxDSObject::SetSourceName(const char *p_sourceName)
|
||||
{
|
||||
if (p_sourceName != this->m_sourceName) {
|
||||
delete[] this->m_sourceName;
|
||||
|
||||
if (p_sourceName) {
|
||||
this->m_sourceName = new char[strlen(p_sourceName) + 1];
|
||||
|
||||
if (this->m_sourceName) {
|
||||
strcpy(this->m_sourceName, p_sourceName);
|
||||
}
|
||||
}
|
||||
else {
|
||||
this->m_sourceName = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf9c0
|
||||
int MxDSObject::unk14()
|
||||
{
|
||||
return 10;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bf9d0
|
||||
unsigned int MxDSObject::CalculateUnk08()
|
||||
{
|
||||
unsigned int unk08;
|
||||
|
||||
if (this->m_sourceName)
|
||||
unk08 = strlen(this->m_sourceName) + 3;
|
||||
else
|
||||
unk08 = 3;
|
||||
|
||||
unk08 += 4;
|
||||
|
||||
if (this->m_objectName)
|
||||
unk08 += strlen(this->m_objectName) + 1;
|
||||
else
|
||||
unk08++;
|
||||
|
||||
unk08 += 4;
|
||||
this->m_unk08 = unk08;
|
||||
return unk08;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bfa20
|
||||
void MxDSObject::Parse(char **p_source, unsigned short p_unk24)
|
||||
{
|
||||
this->SetSourceName(*p_source);
|
||||
*p_source += strlen(this->m_sourceName) + 1;
|
||||
this->m_unk14 = *(int*) *p_source;
|
||||
*p_source += 4;
|
||||
|
||||
this->SetObjectName(*p_source);
|
||||
*p_source += strlen(this->m_objectName) + 1;
|
||||
this->m_unk1c = *(int*) *p_source;
|
||||
*p_source += 4;
|
||||
|
||||
this->m_unk24 = p_unk24;
|
||||
}
|
||||
|
||||
@@ -9,23 +9,25 @@
|
||||
class MxDSObject : public MxCore
|
||||
{
|
||||
public:
|
||||
__declspec(dllexport) void SetObjectName(const char *);
|
||||
__declspec(dllexport) void SetObjectName(const char *p_objectName);
|
||||
|
||||
MxDSObject();
|
||||
virtual ~MxDSObject() override;
|
||||
|
||||
// OFFSET: LEGO1 0x100bf730
|
||||
inline virtual const char *ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// 0x10101400
|
||||
return "MxDSObject";
|
||||
}
|
||||
MxDSObject &operator=(MxDSObject &p_dsObject);
|
||||
void CopyFrom(MxDSObject &p_dsObject);
|
||||
|
||||
// OFFSET: LEGO1 0x100bf730
|
||||
inline virtual const char *ClassName() const override { return "MxDSObject"; }; // vtable+0c
|
||||
|
||||
// OFFSET: LEGO1 0x100bf740
|
||||
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, MxDSObject::ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
inline virtual MxBool IsA(const char *name) const override { return !strcmp(name, MxDSObject::ClassName()) || MxCore::IsA(name); }; // vtable+10;
|
||||
|
||||
virtual int unk14(); // vtable+14;
|
||||
virtual unsigned int CalculateUnk08(); // vtable+18;
|
||||
virtual void Parse(char **p_source, unsigned short p_unk24); // vtable+1c;
|
||||
|
||||
void SetSourceName(const char *p_sourceName);
|
||||
|
||||
inline const MxAtomId& GetAtomId() { return this->m_atomId; }
|
||||
inline int GetUnknown1c() { return this->m_unk1c; }
|
||||
@@ -38,11 +40,11 @@ public:
|
||||
inline void SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; }
|
||||
|
||||
private:
|
||||
int m_unk08;
|
||||
unsigned int m_unk08;
|
||||
short m_unk0c;
|
||||
char* m_unk10;
|
||||
char* m_sourceName;
|
||||
int m_unk14;
|
||||
char *m_name;
|
||||
char *m_objectName;
|
||||
int m_unk1c;
|
||||
MxAtomId m_atomId;
|
||||
short m_unk24;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "mxomni.h"
|
||||
|
||||
// 0x101015b0
|
||||
MxOmni* MxOmni::m_instance = NULL;
|
||||
MxOmni *MxOmni::g_instance = NULL;
|
||||
|
||||
// OFFSET: LEGO1 0x100aef10
|
||||
MxOmni::MxOmni()
|
||||
@@ -33,10 +33,26 @@ void MxOmni::Init()
|
||||
m_unk64 = NULL;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b0690
|
||||
void MxOmni::DestroyInstance()
|
||||
{
|
||||
if (g_instance != NULL)
|
||||
{
|
||||
delete g_instance;
|
||||
g_instance = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b0680
|
||||
MxOmni *MxOmni::GetInstance()
|
||||
{
|
||||
return m_instance;
|
||||
return g_instance;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100af0b0
|
||||
void MxOmni::SetInstance(MxOmni *instance)
|
||||
{
|
||||
g_instance = instance;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100af0c0
|
||||
@@ -67,8 +83,62 @@ long MxOmni::Notify(MxParam &p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acea0
|
||||
MxObjectFactory *ObjectFactory()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetObjectFactory();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100aceb0
|
||||
MxNotificationManager *NotificationManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetNotificationManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acec0
|
||||
MxTickleManager *TickleManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetTickleManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100aced0
|
||||
MxTimer *Timer()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetTimer();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acef0
|
||||
MxStreamer* Streamer()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetStreamer();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf00
|
||||
MxSoundManager* MSoundManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetSoundManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf10
|
||||
MxVideoManager* MVideoManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetVideoManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf20
|
||||
MxVariableTable* VariableTable()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetVariableTable();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf30
|
||||
MxMusicManager* MusicManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetMusicManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf40
|
||||
MxEventManager* EventManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetEventManager();
|
||||
}
|
||||
@@ -35,11 +35,19 @@ public:
|
||||
virtual void Init(); // vtable+14
|
||||
virtual MxResult Create(MxOmniCreateParam &p); // vtable+18
|
||||
virtual void Destroy(); // vtable+1c
|
||||
|
||||
static void SetInstance(MxOmni* instance);
|
||||
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
||||
MxNotificationManager* GetNotificationManager() const { return this->m_notificationManager; }
|
||||
MxTickleManager* GetTickleManager() const { return this->m_tickleManager; }
|
||||
MxTimer* GetTimer() const { return this->m_timer; }
|
||||
|
||||
MxStreamer* GetStreamer() const { return this->m_streamer; }
|
||||
MxSoundManager* GetSoundManager() const { return this->m_soundManager; }
|
||||
MxVideoManager* GetVideoManager() const { return this->m_videoManager; }
|
||||
MxVariableTable* GetVariableTable() const { return this->m_variableTable; }
|
||||
MxMusicManager* GetMusicManager() const { return this->m_musicManager; }
|
||||
MxEventManager* GetEventManager() const { return this->m_eventManager; }
|
||||
protected:
|
||||
static MxOmni* m_instance;
|
||||
static MxOmni* g_instance;
|
||||
|
||||
MxString m_mediaPath; // 0x8
|
||||
HWND *m_windowHandle; // 0x18;
|
||||
@@ -60,7 +68,12 @@ protected:
|
||||
|
||||
unsigned char m_unk64; // 0x64
|
||||
};
|
||||
|
||||
__declspec(dllexport) MxTickleManager * TickleManager();
|
||||
__declspec(dllexport) MxTimer * Timer();
|
||||
__declspec(dllexport) MxStreamer * Streamer();
|
||||
__declspec(dllexport) MxSoundManager * MSoundManager();
|
||||
__declspec(dllexport) MxVariableTable * VariableTable();
|
||||
__declspec(dllexport) MxMusicManager * MusicManager();
|
||||
__declspec(dllexport) MxEventManager * EventManager();
|
||||
|
||||
#endif // MXOMNI_H
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
class MxStreamController : public MxCore
|
||||
{
|
||||
public:
|
||||
|
||||
// OFFSET: LEGO1 0x100c0f10
|
||||
inline virtual const char *ClassName() const override // vtable+0xc
|
||||
{
|
||||
@@ -22,8 +21,6 @@ public:
|
||||
return !strcmp(name, MxStreamController::ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
|
||||
int m_unk00;
|
||||
int m_unk04;
|
||||
int m_unk08;
|
||||
int m_unk0c;
|
||||
int m_unk10;
|
||||
|
||||
@@ -6,7 +6,18 @@
|
||||
// VTABLE 0x100dd100
|
||||
class MxStreamProvider : public MxCore
|
||||
{
|
||||
public:
|
||||
// OFFSET: LEGO1 0x100d07e0
|
||||
inline virtual const char *ClassName() const override // vtable+0x0c
|
||||
{
|
||||
return "MxStreamProvider";
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100d07f0
|
||||
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(name, MxStreamProvider::ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // MXSTREAMPROVIDER_H
|
||||
|
||||
Reference in New Issue
Block a user