mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-02-16 19:50:52 -05:00
parent
74329d681b
commit
af1745db18
19 changed files with 513 additions and 162 deletions
|
@ -1,8 +1,10 @@
|
|||
#include "helicopter.h"
|
||||
#include "act3.h"
|
||||
#include "legoomni.h"
|
||||
#include "legoanimationmanager.h"
|
||||
#include "legocontrolmanager.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legoomni.h"
|
||||
#include "legoutil.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(Helicopter, 0x230)
|
||||
|
@ -40,4 +42,35 @@ void Helicopter::GetState()
|
|||
{
|
||||
m_state = (HelicopterState *)GameState()->GetState("HelicopterState");
|
||||
if (!m_state) m_state = (HelicopterState *)GameState()->CreateState("HelicopterState");
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10003360
|
||||
void Helicopter::VTable0xe4()
|
||||
{
|
||||
if (!GameState()->GetUnknown10()) {
|
||||
VTable0xe8(0x28, TRUE, 7);
|
||||
}
|
||||
IslePathActor::VTable0xe4();
|
||||
if (!GameState()->GetUnknown10()) {
|
||||
GameState()->SetUnknown424(0x3c);
|
||||
if (GetCurrentVehicle()) {
|
||||
if (GetCurrentVehicle()->IsA("IslePathActor")) {
|
||||
((IslePathActor *)GetCurrentVehicle())->VTable0xe8(0x37, TRUE, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
m_state->SetUnknown8(0);
|
||||
FUN_1003ee00(m_unk22c, 0x16);
|
||||
FUN_1003ee00(m_unk22c, 0x17);
|
||||
FUN_1003ee00(m_unk22c, 0x18);
|
||||
FUN_1003ee00(m_unk22c, 0x19);
|
||||
FUN_1003ee00(m_unk22c, 0x1a);
|
||||
FUN_1003ee00(m_unk22c, 0x1b);
|
||||
FUN_1003ee00(m_unk22c, 0x1c);
|
||||
FUN_1003ee00(m_unk22c, 0x1d);
|
||||
FUN_1003ee00(m_unk22c, 0x1e);
|
||||
FUN_1003ee00(m_unk22c, 0x1f);
|
||||
AnimationManager()->FUN_1005f6d0(TRUE);
|
||||
ControlManager()->Unregister(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ public:
|
|||
}
|
||||
|
||||
virtual MxResult InitFromMxDSObject(MxDSObject &p_dsObject) override; // vtable+0x18
|
||||
virtual void VTable0xe4() override;
|
||||
|
||||
// OFFSET: LEGO1 0x10003210 TEMPLATE
|
||||
// Helicopter::`scalar deleting destructor'
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef HELICOPTERSTATE_H
|
||||
#define HELICOPTERSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostate.h"
|
||||
|
||||
// VTABLE 0x100d5418
|
||||
|
@ -20,6 +21,10 @@ public:
|
|||
{
|
||||
return !strcmp(name, HelicopterState::ClassName()) || LegoState::IsA(name);
|
||||
}
|
||||
|
||||
inline void SetUnknown8(undefined4 p_unk8) { m_unk8 = p_unk8; }
|
||||
protected:
|
||||
undefined4 m_unk8;
|
||||
};
|
||||
|
||||
#endif // HELICOPTERSTATE_H
|
||||
|
|
|
@ -2,6 +2,38 @@
|
|||
|
||||
DECOMP_SIZE_ASSERT(IslePathActor, 0x160)
|
||||
|
||||
// Probably in header
|
||||
// OFFSET: LEGO1 0x10002df0 STUB
|
||||
void IslePathActor::VTable0xd0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002e00 STUB
|
||||
void IslePathActor::VTable0xdc()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002e70 STUB
|
||||
void IslePathActor::VTable0xcc()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002e80 STUB
|
||||
void IslePathActor::VTable0xd4()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002e90 STUB
|
||||
void IslePathActor::VTable0xd8()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
// End header
|
||||
|
||||
// OFFSET: LEGO1 0x1001a200
|
||||
IslePathActor::IslePathActor()
|
||||
{
|
||||
|
@ -14,4 +46,28 @@ IslePathActor::IslePathActor()
|
|||
// OFFSET: LEGO1 0x1001a280
|
||||
MxResult IslePathActor::InitFromMxDSObject(MxDSObject &p_dsObject) {
|
||||
return MxEntity::InitFromMxDSObject(p_dsObject);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1001a350 STUB
|
||||
void IslePathActor::VTable0xe0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1001a3f0 STUB
|
||||
void IslePathActor::VTable0xe4()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1001b2a0 STUB
|
||||
void IslePathActor::VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1001b5b0 STUB
|
||||
void IslePathActor::VTable0xec()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
|
|
@ -33,6 +33,15 @@ public:
|
|||
}
|
||||
|
||||
virtual MxResult InitFromMxDSObject(MxDSObject &p_dsObject) override; // vtable+0x18
|
||||
virtual void VTable0xcc(); // vtable+0xcc
|
||||
virtual void VTable0xd0(); // vtable+0xd0
|
||||
virtual void VTable0xd4(); // vtable+0xd4
|
||||
virtual void VTable0xd8(); // vtable+0xd8
|
||||
virtual void VTable0xdc(); // vtable+0xdc
|
||||
virtual void VTable0xe0(); // vtable+0xe0
|
||||
virtual void VTable0xe4(); // vtable+0xe4
|
||||
virtual void VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3); // vtable+0xe8
|
||||
virtual void VTable0xec(); // vtable+0xec
|
||||
|
||||
inline void SetWorld(LegoWorld *p_world) { m_pLegoWorld = p_world; }
|
||||
inline LegoWorld *GetWorld() { return m_pLegoWorld; }
|
||||
|
|
|
@ -2,7 +2,44 @@
|
|||
|
||||
DECOMP_SIZE_ASSERT(LegoActor, 0x78)
|
||||
|
||||
// OFFSET: LEGO1 0x1002d110 STUB
|
||||
// Probably in header
|
||||
// OFFSET: LEGO1 0x10002cc0 STUB
|
||||
void LegoActor::VTable0x50()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002cd0 STUB
|
||||
void LegoActor::VTable0x54()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002ce0 STUB
|
||||
void LegoActor::VTable0x58()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002cf0 STUB
|
||||
void LegoActor::VTable0x5c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d00 STUB
|
||||
void LegoActor::VTable0x60()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d10 STUB
|
||||
void LegoActor::VTable0x64()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
// End header
|
||||
|
||||
LegoActor::LegoActor()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,13 @@ public:
|
|||
return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name);
|
||||
}
|
||||
|
||||
virtual void VTable0x50(); // vtable+0x50
|
||||
virtual void VTable0x54(); // vtable+0x54
|
||||
virtual void VTable0x58(); // vtable+0x58
|
||||
virtual void VTable0x5c(); // vtable+0x5c
|
||||
virtual void VTable0x60(); // vtable+0x60
|
||||
virtual void VTable0x64(); // vtable+0x64
|
||||
|
||||
private:
|
||||
undefined unk68[0x10];
|
||||
|
||||
|
|
|
@ -3,9 +3,16 @@
|
|||
// 0x100f74f8
|
||||
int g_legoAnimationManagerConfig = 1;
|
||||
|
||||
// OFFSET: LEGO1 0x1005eb50
|
||||
void LegoAnimationManager::configureLegoAnimationManager(int param_1)
|
||||
{
|
||||
g_legoAnimationManagerConfig = param_1;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005eb60 STUB
|
||||
LegoAnimationManager::LegoAnimationManager()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005ed30 STUB
|
||||
|
@ -14,6 +21,18 @@ LegoAnimationManager::~LegoAnimationManager()
|
|||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005f130 STUB
|
||||
void LegoAnimationManager::Init()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005f6d0 STUB
|
||||
void LegoAnimationManager::FUN_1005f6d0(MxBool p)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100619f0 STUB
|
||||
MxLong LegoAnimationManager::Notify(MxParam &p)
|
||||
{
|
||||
|
@ -29,15 +48,3 @@ MxResult LegoAnimationManager::Tickle()
|
|||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005f130 STUB
|
||||
void LegoAnimationManager::Init()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005eb50
|
||||
void LegoAnimationManager::configureLegoAnimationManager(int param_1)
|
||||
{
|
||||
g_legoAnimationManagerConfig = param_1;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,8 @@ public:
|
|||
return !strcmp(name, ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
|
||||
void FUN_1005f6d0(MxBool p);
|
||||
|
||||
__declspec(dllexport) static void configureLegoAnimationManager(int param_1);
|
||||
|
||||
private:
|
||||
|
|
|
@ -36,6 +36,7 @@ public:
|
|||
void FUN_1003a720(MxU32 p_unk);
|
||||
void HandleAction(MxU32 p_unk);
|
||||
|
||||
inline MxU32 GetUnknown10() { return m_unk10; }
|
||||
inline void SetUnknown424(undefined4 p_unk424) { m_unk424 = p_unk424; }
|
||||
|
||||
private:
|
||||
|
|
|
@ -146,16 +146,52 @@ LegoVideoManager *VideoManager()
|
|||
return LegoOmni::GetInstance()->GetVideoManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100157f0
|
||||
LegoBuildingManager *BuildingManager()
|
||||
// OFFSET: LEGO1 0x10015730
|
||||
MxBackgroundAudioManager *BackgroundAudioManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetLegoBuildingManager();
|
||||
return LegoOmni::GetInstance()->GetBackgroundAudioManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015740
|
||||
LegoInputManager *InputManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetInputManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015750
|
||||
LegoControlManager *ControlManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetInputManager()->GetControlManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015760
|
||||
LegoGameState *GameState()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetGameState();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015770
|
||||
LegoAnimationManager *AnimationManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetAnimationManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015780
|
||||
LegoNavController *NavController()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetNavController();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015790
|
||||
Isle *GetIsle()
|
||||
LegoWorld *GetCurrentVehicle()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetIsle();
|
||||
return LegoOmni::GetInstance()->GetCurrentVehicle();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100157a0
|
||||
LegoWorld *GetCurrentWorld()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetCurrentWorld();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100157e0
|
||||
|
@ -164,10 +200,22 @@ LegoPlantManager *PlantManager()
|
|||
return LegoOmni::GetInstance()->GetLegoPlantManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015730
|
||||
MxBackgroundAudioManager *BackgroundAudioManager()
|
||||
// OFFSET: LEGO1 0x100157f0
|
||||
LegoBuildingManager *BuildingManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetBackgroundAudioManager();
|
||||
return LegoOmni::GetInstance()->GetLegoBuildingManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015800
|
||||
GifManager *GetGifManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetGifManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015900
|
||||
MxTransitionManager *TransitionManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetTransitionManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c0280
|
||||
|
@ -205,36 +253,6 @@ MxDSObject *CreateStreamObject(MxDSFile *p_file, MxS16 p_ofs)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015740
|
||||
LegoInputManager *InputManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetInputManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015750
|
||||
LegoControlManager *ControlManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetInputManager()->GetControlManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015760
|
||||
LegoGameState *GameState()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetGameState();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015780
|
||||
LegoNavController *NavController()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetNavController();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015900
|
||||
MxTransitionManager *TransitionManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetTransitionManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10053430
|
||||
const char *GetNoCD_SourceName()
|
||||
{
|
||||
|
@ -244,7 +262,7 @@ const char *GetNoCD_SourceName()
|
|||
// OFFSET: LEGO1 0x1005b5f0
|
||||
MxLong LegoOmni::Notify(MxParam &p)
|
||||
{
|
||||
// FIXME: Stub
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -273,7 +291,7 @@ void LegoOmni::Init()
|
|||
m_unk78 = 0;
|
||||
m_currentWorld = NULL;
|
||||
m_unk80 = FALSE;
|
||||
m_isle = NULL;
|
||||
m_currentVehicle = NULL;
|
||||
m_unkLegoSaveDataWriter = NULL;
|
||||
m_plantManager = NULL;
|
||||
m_gameState = NULL;
|
||||
|
@ -299,7 +317,7 @@ MxResult LegoOmni::Create(COMPAT_CONST MxOmniCreateParam &p)
|
|||
// OFFSET: LEGO1 0x10058c30 STUB
|
||||
void LegoOmni::Destroy()
|
||||
{
|
||||
// FIXME: Stub
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005b580
|
||||
|
@ -312,26 +330,24 @@ MxResult LegoOmni::Start(MxDSAction* action)
|
|||
return result;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005b1d0 STUB
|
||||
MxResult LegoOmni::DeleteObject(MxDSAction &ds)
|
||||
{
|
||||
// FIXME: Stub
|
||||
// TODO
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1005b3c0 STUB
|
||||
MxBool LegoOmni::DoesEntityExist(MxDSAction &ds)
|
||||
{
|
||||
// FIXME: Stub
|
||||
// TODO
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LegoOmni::vtable0x2c()
|
||||
// OFFSET: LEGO1 0x1005b2f0 STUB
|
||||
int LegoOmni::Vtable0x30(char*, int, MxCore*)
|
||||
{
|
||||
// FIXME: Stub
|
||||
}
|
||||
|
||||
int LegoOmni::vtable0x30(char*, int, MxCore*)
|
||||
{
|
||||
// FIXME: Stub
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -355,15 +371,3 @@ void LegoOmni::StopTimer()
|
|||
MxOmni::StopTimer();
|
||||
SetAppCursor(0);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100157a0
|
||||
LegoWorld *GetCurrentWorld()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetCurrentWorld();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10015800
|
||||
GifManager *GetGifManager()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetGifManager();
|
||||
}
|
|
@ -58,27 +58,28 @@ public:
|
|||
virtual void Init() override; // vtable+14
|
||||
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p) override; // vtable+18
|
||||
virtual void Destroy() override; // vtable+1c
|
||||
virtual MxResult Start(MxDSAction* action) override;
|
||||
virtual MxResult DeleteObject(MxDSAction &ds) override;
|
||||
virtual MxBool DoesEntityExist(MxDSAction &ds) override;
|
||||
virtual void vtable0x2c() override;
|
||||
virtual int vtable0x30(char*, int, MxCore*) override;
|
||||
virtual void NotifyCurrentEntity(MxNotificationParam *p_param) override;
|
||||
virtual void StartTimer() override;
|
||||
virtual void StopTimer() override;
|
||||
virtual MxResult Start(MxDSAction* action) override; // vtable+20
|
||||
virtual MxResult DeleteObject(MxDSAction &ds) override; // vtable+24
|
||||
virtual MxBool DoesEntityExist(MxDSAction &ds) override; // vtable+28
|
||||
virtual int Vtable0x30(char*, int, MxCore*) override; // vtable+30
|
||||
virtual void NotifyCurrentEntity(MxNotificationParam *p_param) override; //vtable+34
|
||||
virtual void StartTimer() override; // vtable+38
|
||||
virtual void StopTimer() override; //vtable+3c
|
||||
|
||||
LegoVideoManager *GetVideoManager() { return (LegoVideoManager *) m_videoManager; }
|
||||
LegoSoundManager *GetSoundManager() { return (LegoSoundManager *)m_soundManager;}
|
||||
MxBackgroundAudioManager *GetBackgroundAudioManager() { return m_bkgAudioManager; }
|
||||
LegoVideoManager *GetVideoManager() { return (LegoVideoManager *)m_videoManager; }
|
||||
LegoSoundManager *GetSoundManager() { return (LegoSoundManager *)m_soundManager; }
|
||||
|
||||
LegoInputManager *GetInputManager() { return m_inputMgr; }
|
||||
Isle *GetIsle() { return m_isle; }
|
||||
LegoBuildingManager *GetLegoBuildingManager() { return m_buildingManager; }
|
||||
LegoPlantManager *GetLegoPlantManager() { return m_plantManager; }
|
||||
LegoGameState *GetGameState() { return m_gameState; }
|
||||
LegoNavController *GetNavController() { return m_navController; }
|
||||
MxTransitionManager *GetTransitionManager() { return m_transitionManager; }
|
||||
LegoWorld *GetCurrentWorld() { return m_currentWorld; }
|
||||
GifManager *GetGifManager() { return m_gifManager; }
|
||||
LegoWorld *GetCurrentWorld() { return m_currentWorld; }
|
||||
LegoNavController *GetNavController() { return m_navController; }
|
||||
LegoWorld *GetCurrentVehicle() { return m_currentVehicle; }
|
||||
LegoPlantManager *GetLegoPlantManager() { return m_plantManager; }
|
||||
LegoAnimationManager *GetAnimationManager() { return m_animationManager; }
|
||||
LegoBuildingManager *GetLegoBuildingManager() { return m_buildingManager; }
|
||||
LegoGameState *GetGameState() { return m_gameState; }
|
||||
MxBackgroundAudioManager *GetBackgroundAudioManager() { return m_bkgAudioManager; }
|
||||
MxTransitionManager *GetTransitionManager() { return m_transitionManager; }
|
||||
|
||||
private:
|
||||
undefined4 m_unk68;
|
||||
|
@ -89,10 +90,10 @@ private:
|
|||
LegoWorld *m_currentWorld;
|
||||
MxBool m_unk80;
|
||||
LegoNavController *m_navController; // 0x84
|
||||
Isle* m_isle; // 0x88
|
||||
LegoUnkSaveDataWriter* m_unkLegoSaveDataWriter;
|
||||
LegoPlantManager* m_plantManager; // 0x90
|
||||
LegoAnimationManager* m_animationManager;
|
||||
LegoWorld *m_currentVehicle; // 0x88
|
||||
LegoUnkSaveDataWriter *m_unkLegoSaveDataWriter;
|
||||
LegoPlantManager *m_plantManager; // 0x90
|
||||
LegoAnimationManager *m_animationManager;
|
||||
LegoBuildingManager* m_buildingManager; // 0x98
|
||||
LegoGameState *m_gameState; // 0x9c
|
||||
MxDSAction m_action;
|
||||
|
@ -101,25 +102,26 @@ private:
|
|||
MxBool m_unk13c;
|
||||
};
|
||||
|
||||
__declspec(dllexport) MxBackgroundAudioManager * BackgroundAudioManager();
|
||||
__declspec(dllexport) MxDSObject * CreateStreamObject(MxDSFile *,MxS16);
|
||||
__declspec(dllexport) LegoGameState * GameState();
|
||||
__declspec(dllexport) const char * GetNoCD_SourceName();
|
||||
__declspec(dllexport) LegoInputManager * InputManager();
|
||||
__declspec(dllexport) LegoOmni * Lego();
|
||||
__declspec(dllexport) MxBackgroundAudioManager *BackgroundAudioManager();
|
||||
__declspec(dllexport) MxDSObject *CreateStreamObject(MxDSFile *, MxS16);
|
||||
__declspec(dllexport) LegoGameState *GameState();
|
||||
__declspec(dllexport) const char *GetNoCD_SourceName();
|
||||
__declspec(dllexport) LegoInputManager *InputManager();
|
||||
__declspec(dllexport) LegoOmni *Lego();
|
||||
__declspec(dllexport) void MakeSourceName(char *, const char *);
|
||||
__declspec(dllexport) LegoEntity * PickEntity(MxLong,MxLong);
|
||||
__declspec(dllexport) LegoROI * PickROI(MxLong,MxLong);
|
||||
__declspec(dllexport) void SetOmniUserMessage(void (*)(const char *,int));
|
||||
__declspec(dllexport) LegoSoundManager * SoundManager();
|
||||
__declspec(dllexport) LegoEntity *PickEntity(MxLong,MxLong);
|
||||
__declspec(dllexport) LegoROI *PickROI(MxLong,MxLong);
|
||||
__declspec(dllexport) void SetOmniUserMessage(void (*)(const char *, int));
|
||||
__declspec(dllexport) LegoSoundManager *SoundManager();
|
||||
__declspec(dllexport) MxResult Start(MxDSAction*);
|
||||
__declspec(dllexport) MxTransitionManager * TransitionManager();
|
||||
__declspec(dllexport) LegoVideoManager * VideoManager();
|
||||
__declspec(dllexport) MxTransitionManager *TransitionManager();
|
||||
__declspec(dllexport) LegoVideoManager *VideoManager();
|
||||
|
||||
LegoBuildingManager* BuildingManager();
|
||||
LegoControlManager* ControlManager();
|
||||
Isle* GetIsle();
|
||||
LegoPlantManager* PlantManager();
|
||||
LegoAnimationManager *AnimationManager();
|
||||
LegoBuildingManager *BuildingManager();
|
||||
LegoControlManager *ControlManager();
|
||||
LegoWorld *GetCurrentVehicle();
|
||||
LegoPlantManager *PlantManager();
|
||||
MxBool KeyValueStringParse(char *, const char *, const char *);
|
||||
LegoWorld *GetCurrentWorld();
|
||||
GifManager *GetGifManager();
|
||||
|
|
|
@ -2,6 +2,86 @@
|
|||
|
||||
DECOMP_SIZE_ASSERT(LegoPathActor, 0x154)
|
||||
|
||||
// Probably in header
|
||||
// OFFSET: LEGO1 0x10002d20 STUB
|
||||
void LegoPathActor::VTable0x78()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d30 STUB
|
||||
void LegoPathActor::VTable0x7c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d40 STUB
|
||||
void LegoPathActor::VTable0x90()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d50 STUB
|
||||
void LegoPathActor::VTable0x94()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d60 STUB
|
||||
void LegoPathActor::VTable0xa0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d70 STUB
|
||||
void LegoPathActor::VTable0xac()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d80 STUB
|
||||
void LegoPathActor::VTable0xb0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002d90 STUB
|
||||
void LegoPathActor::VTable0xb4()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002da0 STUB
|
||||
void LegoPathActor::VTable0xb8()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002db0 STUB
|
||||
void LegoPathActor::VTable0xbc()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002dc0 STUB
|
||||
void LegoPathActor::VTable0xc0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002dd0 STUB
|
||||
void LegoPathActor::VTable0xc4()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10002de0 STUB
|
||||
void LegoPathActor::VTable0xc8()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
// End header
|
||||
|
||||
// OFFSET: LEGO1 0x1002d700 STUB
|
||||
LegoPathActor::LegoPathActor()
|
||||
{
|
||||
|
@ -13,3 +93,75 @@ LegoPathActor::~LegoPathActor()
|
|||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002d8d0 STUB
|
||||
void LegoPathActor::VTable0x80()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002d9c0 STUB
|
||||
void LegoPathActor::VTable0x88()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002de10 STUB
|
||||
void LegoPathActor::VTable0x84()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002e100 STUB
|
||||
void LegoPathActor::VTable0x8c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002e740 STUB
|
||||
void LegoPathActor::VTable0x74()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002e790 STUB
|
||||
void LegoPathActor::VTable0x70()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002e8b0 STUB
|
||||
void LegoPathActor::VTable0x98()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002e8d0 STUB
|
||||
void LegoPathActor::VTable0x6c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002ebe0 STUB
|
||||
void LegoPathActor::VTable0x68()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002f1b0 STUB
|
||||
void LegoPathActor::VTable0x9c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002f650 STUB
|
||||
void LegoPathActor::VTable0xa4()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1002f700 STUB
|
||||
void LegoPathActor::VTable0xa8()
|
||||
{
|
||||
// TODO
|
||||
}
|
|
@ -25,6 +25,33 @@ public:
|
|||
{
|
||||
return !strcmp(name, LegoPathActor::ClassName()) || LegoActor::IsA(name);
|
||||
}
|
||||
|
||||
virtual void VTable0x68(); // vtable+0x68
|
||||
virtual void VTable0x6c(); // vtable+0x6c
|
||||
virtual void VTable0x70(); // vtable+0x70
|
||||
virtual void VTable0x74(); // vtable+0x74
|
||||
virtual void VTable0x78(); // vtable+0x78
|
||||
virtual void VTable0x7c(); // vtable+0x7c
|
||||
virtual void VTable0x80(); // vtable+0x80
|
||||
virtual void VTable0x84(); // vtable+0x84
|
||||
virtual void VTable0x88(); // vtable+0x88
|
||||
virtual void VTable0x8c(); // vtable+0x8c
|
||||
virtual void VTable0x90(); // vtable+0x90
|
||||
virtual void VTable0x94(); // vtable+0x94
|
||||
virtual void VTable0x98(); // vtable+0x98
|
||||
virtual void VTable0x9c(); // vtable+0x9c
|
||||
virtual void VTable0xa0(); // vtable+0xa0
|
||||
virtual void VTable0xa4(); // vtable+0xa4
|
||||
virtual void VTable0xa8(); // vtable+0xa8
|
||||
virtual void VTable0xac(); // vtable+0xac
|
||||
virtual void VTable0xb0(); // vtable+0xb0
|
||||
virtual void VTable0xb4(); // vtable+0xb4
|
||||
virtual void VTable0xb8(); // vtable+0xb8
|
||||
virtual void VTable0xbc(); // vtable+0xbc
|
||||
virtual void VTable0xc0(); // vtable+0xc0
|
||||
virtual void VTable0xc4(); // vtable+0xc4
|
||||
virtual void VTable0xc8(); // vtable+0xc8
|
||||
|
||||
protected:
|
||||
// TODO: the types
|
||||
undefined unk78[0xc4];
|
||||
|
|
|
@ -103,6 +103,12 @@ void ConvertHSVToRGB(float h, float s, float v, float *r_out, float *b_out, floa
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1003ee00 STUB
|
||||
void FUN_1003ee00(MxAtomId &p_atomId, MxS32 p_id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1003ef40
|
||||
void SetAppCursor(WPARAM p_wparam)
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <windows.h>
|
||||
|
||||
#include "extra.h"
|
||||
#include "mxatomid.h"
|
||||
|
||||
template <class T>
|
||||
inline T Abs(T p_t)
|
||||
|
@ -54,6 +55,7 @@ inline void GetString(char **p_source, const char *&p_dest, T *p_obj, void (T::*
|
|||
|
||||
ExtraActionType MatchActionString(const char *);
|
||||
void ConvertHSVToRGB(float r, float g, float b, float* out_r, float* out_g, float* out_b);
|
||||
void FUN_1003ee00(MxAtomId &p_atomId, MxS32 p_id);
|
||||
void SetAppCursor(WPARAM p_wparam);
|
||||
|
||||
#endif // LEGOUTIL_H
|
||||
|
|
|
@ -56,7 +56,7 @@ void MxOmni::Init()
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b0090
|
||||
MxResult MxOmni::Start(MxDSAction* p_dsAction)
|
||||
MxResult MxOmni::Start(MxDSAction *p_dsAction)
|
||||
{
|
||||
MxResult result = FAILURE;
|
||||
if(p_dsAction->GetAtomId().GetInternal() != NULL && p_dsAction->GetObjectId() != -1 && m_streamer != NULL)
|
||||
|
@ -87,13 +87,13 @@ MxBool MxOmni::DoesEntityExist(MxDSAction &p_dsAction)
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b00e0 STUB
|
||||
void MxOmni::vtable0x2c()
|
||||
void MxOmni::Vtable0x2c()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100aefb0 STUB
|
||||
int MxOmni::vtable0x30(char*, int, MxCore*)
|
||||
int MxOmni::Vtable0x30(char *, int, MxCore *)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
|
@ -332,7 +332,7 @@ MxLong MxOmni::Notify(MxParam &p)
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b0880 STUB
|
||||
MxResult MxOmni::HandleNotificationType2(MxParam& p_param)
|
||||
MxResult MxOmni::HandleNotificationType2(MxParam &p_param)
|
||||
{
|
||||
// TODO STUB
|
||||
return FAILURE;
|
||||
|
@ -369,37 +369,37 @@ MxAtomIdCounterSet *AtomIdCounterSet()
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acef0
|
||||
MxStreamer* Streamer()
|
||||
MxStreamer *Streamer()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetStreamer();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf00
|
||||
MxSoundManager* MSoundManager()
|
||||
MxSoundManager *MSoundManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetSoundManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf10
|
||||
MxVideoManager* MVideoManager()
|
||||
MxVideoManager *MVideoManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetVideoManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf20
|
||||
MxVariableTable* VariableTable()
|
||||
MxVariableTable *VariableTable()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetVariableTable();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf30
|
||||
MxMusicManager* MusicManager()
|
||||
MxMusicManager *MusicManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetMusicManager();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100acf40
|
||||
MxEventManager* EventManager()
|
||||
MxEventManager *EventManager()
|
||||
{
|
||||
return MxOmni::GetInstance()->GetEventManager();
|
||||
}
|
||||
|
|
|
@ -42,59 +42,59 @@ public:
|
|||
virtual void Init(); // vtable+14
|
||||
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p); // vtable+18
|
||||
virtual void Destroy(); // vtable+1c
|
||||
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
||||
virtual MxResult Start(MxDSAction *p_dsAction); // vtable+20
|
||||
virtual MxResult DeleteObject(MxDSAction &p_dsAction); // vtable+24
|
||||
virtual MxBool DoesEntityExist(MxDSAction &p_dsAction); // vtable+28
|
||||
virtual void vtable0x2c(); // vtable+2c
|
||||
virtual int vtable0x30(char*, int, MxCore*); // vtable+30
|
||||
virtual void Vtable0x2c(); // vtable+2c
|
||||
virtual int Vtable0x30(char*, int, MxCore *); // vtable+30
|
||||
virtual void NotifyCurrentEntity(MxNotificationParam *p_param); // vtable+34
|
||||
virtual void StartTimer(); // vtable+38
|
||||
virtual void StopTimer(); // vtable+3c
|
||||
virtual MxBool IsTimerRunning(); //vtable+40
|
||||
static void SetInstance(MxOmni* instance);
|
||||
static void SetInstance(MxOmni *instance);
|
||||
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
||||
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; }
|
||||
MxAtomIdCounterSet* GetAtomIdCounterSet() const { return this->m_atomIdCounterSet; }
|
||||
MxResult HandleNotificationType2(MxParam& p_param);
|
||||
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; }
|
||||
MxAtomIdCounterSet *GetAtomIdCounterSet() const { return this->m_atomIdCounterSet; }
|
||||
MxResult HandleNotificationType2(MxParam &p_param);
|
||||
protected:
|
||||
static MxOmni* g_instance;
|
||||
static MxOmni *g_instance;
|
||||
|
||||
MxString m_mediaPath; // 0x8
|
||||
HWND m_windowHandle; // 0x18;
|
||||
MxObjectFactory *m_objectFactory; // 0x1C
|
||||
MxVariableTable* m_variableTable; //0x20
|
||||
MxTickleManager* m_tickleManager; //0x24
|
||||
MxNotificationManager* m_notificationManager; //0x28
|
||||
MxVariableTable *m_variableTable; //0x20
|
||||
MxTickleManager *m_tickleManager; //0x24
|
||||
MxNotificationManager *m_notificationManager; //0x28
|
||||
MxVideoManager *m_videoManager; //0x2C
|
||||
MxSoundManager* m_soundManager; //0x30
|
||||
MxMusicManager* m_musicManager; //0x34
|
||||
MxEventManager* m_eventManager; //0x38
|
||||
MxTimer* m_timer; //0x3C
|
||||
MxStreamer* m_streamer; //0x40
|
||||
MxSoundManager *m_soundManager; //0x30
|
||||
MxMusicManager *m_musicManager; //0x34
|
||||
MxEventManager *m_eventManager; //0x38
|
||||
MxTimer *m_timer; //0x3C
|
||||
MxStreamer *m_streamer; //0x40
|
||||
|
||||
MxAtomIdCounterSet* m_atomIdCounterSet; // 0x44
|
||||
MxAtomIdCounterSet *m_atomIdCounterSet; // 0x44
|
||||
|
||||
MxCriticalSection m_criticalsection; // 0x48
|
||||
|
||||
MxBool m_timerRunning; // 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();
|
||||
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
||||
__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();
|
||||
__declspec(dllexport) MxNotificationManager *NotificationManager();
|
||||
|
||||
MxResult DeleteObject(MxDSAction &p_dsAction);
|
||||
MxVideoManager *MVideoManager();
|
||||
|
|
|
@ -47,7 +47,7 @@ void MxPresenter::ParseExtra()
|
|||
|
||||
token = strtok(NULL, g_parseExtraTokens);
|
||||
MxS32 val = token ? atoi(token) : 0;
|
||||
MxS32 result = MxOmni::GetInstance()->vtable0x30(t_token, val, this);
|
||||
MxS32 result = MxOmni::GetInstance()->Vtable0x30(t_token, val, this);
|
||||
|
||||
m_action->SetFlags(m_action->GetFlags() | MxDSAction::Flag_Parsed);
|
||||
|
||||
|
|
Loading…
Reference in a new issue