Fixed code and decided on a way to handle virtual table stubs

This commit is contained in:
Cydra 2023-06-23 17:09:04 +02:00
parent 7950a29e8b
commit fc239c4a08
84 changed files with 748 additions and 147 deletions

View File

@ -638,3 +638,23 @@ void Isle::Tick(BOOL sleepIfNotNextFrame)
Sleep(0);
}
// OFFSET: LEGO1 0x10030fc0
void Isle::VTable0x50()
{
// TODO
}
// OFFSET: LEGO1 0x10033180
undefined4 Isle::VTable0x64()
{
// TODO
return undefined4();
}
// OFFSET: LEGO1 0x1003305
void Isle::VTable0x6c(int *param)
{
// TODO
}

View File

@ -10,6 +10,7 @@ class Act2Brick : public LegoPathActor
virtual ~Act2Brick(); // vtable+0x0
virtual long Tickle(); // vtable+08
// VTABLE 0x100d9b60
// SIZE 0x194
};

4
LEGO1/act3shark.cpp Normal file
View File

@ -0,0 +1,4 @@
#include "act3shark.h"
// 0x100f03a0
static char* g_act3SharkString = "Act3Shark";

View File

@ -1,12 +1,11 @@
#ifndef ACT3SHARK_H
#define ACT3SHARK_H
class Act3Shark
#include "legoanimactor.h"
class Act3Shark : public LegoAnimActor
{
// VTABLE 0x100d7920
};
// OFFSET: LEGO1 0x100f03a0
static char* g_act3SharkString = "Act3Shark";
#endif // ACT3SHARK_H

View File

@ -0,0 +1,9 @@
#include "beachhouseentity.h"
// OFFSET: LEGO1 0x100153b
undefined4 BeachHouseEntity::VTable0x50()
{
// TODO
return 0;
}

View File

@ -3,9 +3,13 @@
#include "buildingentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class BeachHouseEntity : public BuildingEntity
{
virtual int FUN_100153b(); // Return is undefined 4-byte value
virtual undefined4 VTable0x50(); // vtable+0x50
// VTABLE 0x100d4a18
// SIZE 0x68

View File

@ -4,4 +4,24 @@
Bike::Bike()
{
// TODO
}
}
// OFFSET: LEGO1 0x100769a0
undefined4 Bike::VTable0xcc()
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x10076aa0
undefined4 Bike::VTable0xd4(undefined4 param)
{
return undefined4();
}
// OFFSET: LEGO1 0x10076920
void Bike::VTable0xe4()
{
// TODO
}

View File

@ -3,14 +3,18 @@
#include "islepathactor.h"
#ifndef undefined4
#define undefined4 int
#endif
class Bike : public IslePathActor
{
public:
Bike();
virtual int __fastcall FUN_100769a0(int*); // vtable+0xcc , return is undefined 4-byte value
virtual int FUN_10076aa0(int param_1); // vtable+0xd4 , return is undefined 4-byte value
virtual void __fastcall FUN_10076920(int* param_1); // vtable+0xe4
virtual undefined4 VTable0xcc(); // vtable+0xcc
virtual undefined4 VTable0xd4(undefined4 param); // vtable+0xd4
virtual void VTable0xe4(); // vtable+0xe4
// VTABLE 0x100d9808
// SIZE 0x74

View File

@ -5,8 +5,9 @@
class BumpBouy
{
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
public:
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
};
#endif // BUMPBOUY_H

View File

@ -28,3 +28,17 @@ MxBool ElevatorBottom::IsClass(const char *name) const
return MxBool();
}
// OFFSET: LEGO1 0x10017f10
undefined4 ElevatorBottom::VTable0x5c()
{
// TODO
return 1;
}
// OFFSET: LEGO1 0x100182c0
void ElevatorBottom::VTable0x68(undefined1 param_1)
{
// TODO
}

View File

@ -3,17 +3,27 @@
#include "legoworld.h"
#ifndef undefined4
#define undefined4 int
#endif
#ifndef undefined1
#define undefined1 char
#endif
class ElevatorBottom : public LegoWorld
{
public:
ElevatorBottom();
virtual ~ElevatorBottom();
virtual ~ElevatorBottom(); // vtable+0x0
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
virtual int FUN_10017f10() { return 1; } // Return is undefined
virtual void FUN_100182c0(char param_1);
virtual undefined4 VTable0x5c(); // vtable+0x5c
virtual void VTable0x68(undefined1 param_1); // vtable+0x68
// VTABLE 0x100d5f20
};
#endif // ELEVATORBOTTOM_H

View File

@ -4,4 +4,12 @@
GasStation::GasStation()
{
// TODO
}
}
// OFFSET: LEGO1 0x10005e70
undefined GasStation::VTable0x64(undefined4 param)
{
// TODO
return undefined();
}

View File

@ -3,13 +3,22 @@
#include "legoworld.h"
#ifndef undefined
#define undefined int
#endif
#ifndef undefined4
#define undefined4 int
#endif
class GasStation : public LegoWorld
{
public:
GasStation();
int FUN_10005e70(int param_1); // Return is undefined 4-byte value
undefined VTable0x64(undefined4 param); // vtable+0x64
// VTABLE 0x100d4650
// SIZE 0x128
// Radio variable at 0x46, in constructor
};

View File

@ -0,0 +1,9 @@
#include "gasstationentity.h"
// OFFSET: LEGO1 0x100151d0
undefined4 GasStationEntity::VTable0x50()
{
// TODO
return 0;
}

View File

@ -3,10 +3,15 @@
#include "buildingentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class GasStationEntity : public BuildingEntity
{
virtual int FUN_100151d0(); // Return unknown 4-byte value
virtual undefined4 VTable0x50(); // vtable+0x50
// VTABLE 0x100d5258
// SIZE 0x68
};

View File

@ -1,6 +1,6 @@
#include "helicopter.h"
// OFFSET: LEGO1 0x100f0130
// 0x100f0130
static char* g_helicopterClassName = "Helicopter";
// OFFSET: LEGO1 0x10001e60
@ -28,3 +28,15 @@ MxBool Helicopter::IsClass(const char *name) const
return MxBool();
}
// OFFSET: LEGO1 0x10003ee0
void Helicopter::VTable0x70(float param_1)
{
// TODO
}
// OFFSET:LEGO1 0x10003360
void Helicopter::VTable0xe4()
{
// TODO
}

View File

@ -9,11 +9,11 @@ class Helicopter : public IslePathActor
Helicopter();
virtual ~Helicopter(); // vtable+0x0
virtual const char* GetClassName() const; // vtable+0x
virtual MxBool IsClass(const char *name) const; // vtable+0x
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
virtual void FUN_10003ee0(float param_1); // 0x70
virtual void __fastcall FUN_10003360(int* param); // vtable+0xe4
virtual void VTable0x70(float param_1); // vtable+0x70
virtual void VTable0xe4(); // vtable+0xe4
// VTABLE 0x100d40f8
};

View File

@ -19,3 +19,9 @@ long Hospital::Notify(MxParam &p)
return 0;
}
// OFFSET: LEGO1 0x10076220
void Hospital::VTable0x68(char param_1)
{
// TODO
}

View File

@ -10,7 +10,7 @@ class Hospital : public LegoWorld
virtual ~Hospital(); // vtable+0x0
virtual long Notify(MxParam &p); // vtable+0x04
virtual void FUN_10076220(char param_1); // vtable+0x68
virtual void VTable0x68(char param_1); // vtable+0x68
// SIZE 0x300
};

9
LEGO1/hospitalentity.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "hospitalentity.h"
// OFFSET: LEGO1 0x10015270
undefined4 HospitalEntity::VTable0x50()
{
// TODO
return undefined4();
}

View File

@ -3,10 +3,15 @@
#include "buildingentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class HospitalEntity : public BuildingEntity
{
virtual int FUN_10015270(); // Return is unknown 4-byte value
virtual undefined4 VTable0x50(); // vtable+0x50
// VTABLE 0x100d5068
// SIZE 0x68
};

View File

@ -8,6 +8,7 @@ class InfoCenterDoor : public LegoWorld
public:
InfoCenterDoor();
// VTABLE 0x100d72d8
// SIZE 0xfc
};

View File

@ -0,0 +1,9 @@
#include "infocenterentity.h"
// OFFSET: LEGO1 0x100150c0
undefined4 InfoCenterEntity::VTable0x50()
{
// TODO
return undefined4();
}

View File

@ -3,9 +3,13 @@
#include "legoentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class InfoCenterEntity : public LegoEntity
{
virtual int FUN_100150c0(); // Return is unknown 4-byte value
virtual undefined4 VTable0x50(); // vtable+0x50
};
#endif // INFOCENTERENTITY_H

View File

@ -3,24 +3,20 @@
#include "legoworld.h"
#include "legoomni.h"
#ifndef undefined4
#define undefined4 int
#endif
class Isle : public LegoWorld
{
public:
Isle();
// OFFSET: LEGO1 0x10015790
static Isle* GetIsle()
{
LegoOmni* legoOmni = LegoOmni::GetInstance();
return legoOmni->isle;
}
virtual void __fastcall FUN_10030fc0(int param_1);
virtual int __fastcall FUN_10033180(int param_1); // Return is undefined 4-byte value
virtual void FUN_1003305(int* param_1);
virtual void VTable0x50(); // vtable+0x50
virtual undefined4 VTable0x64(); // vtable+0x64
virtual void VTable0x6c(int* param); // vtable+0x6c
// VTABLE 0x100d6fb8
// SIZE 0x140
// Radio at 0x12c
};

18
LEGO1/isleactor.cpp Normal file
View File

@ -0,0 +1,18 @@
#include "isleactor.h"
// 0x100f07dc
static char* g_isleActorClassName = "IsleActor";
// OFFSET: LEGO1 0x1000e660
const char *IsleActor::GetClassName() const
{
return g_isleActorClassName;
}
// OFFSET: LEGO1 0x1000e670
MxBool IsleActor::IsClass(const char *name) const
{
// TODO
return MxBool();
}

View File

@ -5,8 +5,10 @@
class IsleActor : public LegoEntity
{
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
// VTABLE 0x100d5178
};
#endif // ISLEACTOR_H
#endif // ISLEACTOR_H

View File

@ -4,4 +4,10 @@
IslePathActor::IslePathActor()
{
// TODO
}
}
// OFFSET: LEGO1 0x1001b5b0
void IslePathActor::VTable0xec(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, void *, char)
{
// TODO
}

View File

@ -3,14 +3,16 @@
#include "legopathactor.h"
#define undefined char
#ifndef undefined
#define undefined int
#endif
class IslePathActor : public LegoPathActor
{
public:
IslePathActor();
virtual void FUN_1001b5b0(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, void*, char); // vtable+0xec
virtual void VTable0xec(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, void*, char); // vtable+0xec
// VTABLE 0x100d4398
// SIZE >= 0x230

View File

@ -4,4 +4,12 @@
JetskiRace::JetskiRace()
{
// TODO
}
}
// OFFSET: LEGO1 0x100166a0
undefined4 JetskiRace::VTable0x70(int param_1)
{
// TODO
return undefined4();
}

View File

@ -3,12 +3,18 @@
#include "legorace.h"
#ifndef undefined4
#define undefined4 int
#endif
class JetskiRace : public LegoRace
{
public:
JetskiRace();
int FUN_100166a0(int param_1); // Return is undefined 4-byte value
undefined4 VTable0x70(int param_1); // vtable+0x70
// VTABLE 0x100d4fe8
};
#endif // JETSKIRACE_H

View File

@ -4,4 +4,10 @@
JukeBoxEntity::JukeBoxEntity()
{
// TODO
}
}
// OFFSET: LEGO1 0x10085dd0
JukeBoxEntity::~JukeBoxEntity()
{
// TODO
}

View File

@ -7,6 +7,7 @@ class JukeBoxEntity : public LegoEntity
{
public:
JukeBoxEntity();
virtual ~JukeBoxEntity(); // vtable+0x0
// VTABLE 0x100da8a0
};

View File

@ -0,0 +1,7 @@
#include "legoactioncontrolpresenter.h"
// OFFSET: LEGO1 0x10043e20
void LegoActionControlPresenter::VTable0x5c(char param)
{
// TODO
}

View File

@ -5,9 +5,10 @@
class LegoActionControlPresenter : public MxMediaPresenter
{
void FUN_10043e20(char param_1);
void FUN_100b54f0(char param_1);
public:
void VTable0x5c(char param); // vtable+0x5c
// VTABLE 0x100d5118
// SIZE 0x68
};

View File

@ -1,6 +1,6 @@
#include "legoanimactor.h"
// OFFSET: LEGO1 0x100f057c
// 0x100f057c
static char* g_legoAnimActorClassName = "LegoAnimActor";
// OFFSET: LEGO1 0x1000fb90
@ -18,5 +18,7 @@ const char *LegoAnimActor::GetClassName() const
// OFFSET: LEGO1 0x1000fbb0
MxBool LegoAnimActor::IsClass(const char *name) const
{
// TODO
return MxBool();
}

View File

@ -5,6 +5,12 @@ LegoBuildingManager::LegoBuildingManager()
{
}
// OFFSET: LEGO1 0x10030150
void LegoBuildingManager::UnknownFunction(int param_1, int param_2, char param_3, LegoBuildingManager *param_4)
{
// TODO
}
// OFFSET: LEGO1 0x1002f9d0
void LegoBuildingManager::Init()
{

View File

@ -8,14 +8,7 @@ class LegoBuildingManager
__declspec(dllexport) static void configureLegoBuildingManager(int param_1);
// OFFSET: LEGO1 0x100157f0
LegoBuildingManager* GetInstance()
{
LegoOmni legoOmni = GetInstance();
return logoOmni->m_legoBuildingManager;
}
void FUN_10030150(int param_1, int param_2, char param_3, LegoBuildingManager* param_4);
void UnknownFunction(int param_1, int param_2, char param_3, LegoBuildingManager* param_4);
private:
void Init();

25
LEGO1/legocachesound.cpp Normal file
View File

@ -0,0 +1,25 @@
#include "legocachesound.h"
// OFFSET: LEGO1 0x100064d0
LegoCacheSound::LegoCacheSound()
{
// TODO
}
// OFFSET: LEGO1 0x10006630
LegoCacheSound::~LegoCacheSound()
{
// TODO
}
// OFFSET: LEGO1 0x10006920
void LegoCacheSound::VTable0x18()
{
// TODO
}
// OFFSET: LEGO1 0x100066d0
void LegoCacheSound::Init()
{
// TODO
}

View File

@ -6,16 +6,12 @@
class LegoCacheSound : public MxCore
{
public:
// OFFSET: LEGO1 0x100064d0
LegoCacheSound();
virtual ~LegoCacheSound(); // vtable+0x0
// OFFSET: LEGO1 0x10006630
~LegoCacheSound();
void FUN_10006920(int param_1);
virtual void VTable0x18(); // vtable+0x18
private:
// OFFSET: LEGO1 0x100066d0
void Init();
// VTABLE 0x100d4718

View File

@ -4,4 +4,10 @@
LegoCameraController::~LegoCameraController()
{
// TODO
}
}
// OFFSET: LEGO1 0x10011ff0
void LegoCameraController::VTable0x44()
{
// TODO
}

View File

@ -1,12 +1,14 @@
#ifndef LEGOCAMERACONTROLLER_H
#define LEGOCAMERACONTROLLER_H
class LegoCameraController
#include "mxcore.h"
class LegoCameraController : public MxCore
{
public:
virtual ~LegoCameraController();
virtual ~LegoCameraController(); // vtable+0x0
virtual void FUN_10011ff0(void* param);
virtual void VTable0x44(); // vtable+0x44
// VTABLE 0x100d57b0
};

View File

@ -4,4 +4,42 @@
LegoCarBuild::LegoCarBuild()
{
// TODO
}
}
// OFFSET: LEGO1 0x10025e70
undefined4 LegoCarBuild::VTable0x64()
{
// TODO
return undefined4();
}
// OFFSET: LEGO1 0x100256c0
void LegoCarBuild::VTable0x68(char param_1)
{
// TODO
}
// OFFSET: LEGO1 0x10022fc0
void LegoCarBuild::VTable0x6c()
{
// TODO
}
// OFFSET: LEGO1 0x10023500
void LegoCarBuild::VTable0x74(float *param_1, float *param_2)
{
// TODO
}
// OFFSET: LEGO1 0x10023570
void LegoCarBuild::VTable0x78(float *param_1, float *param_2)
{
// TODO
}
// OFFSET: LEGO1 0x10023620
void LegoCarBuild::VTable0x7c(float *param_1, float *param_2)
{
// TODO
}

View File

@ -3,17 +3,21 @@
#include "legoworld.h"
#ifndef undefined4
#define undefined4 int
#endif
class LegoCarBuild : public LegoWorld
{
public:
LegoCarBuild();
virtual void FUN_10025e70(int param_1);
virtual void FUN_100256c0(char param_1);
virtual void __fastcall FUN_10022fc0(int* param_1);
virtual void FUN_10023500(float* param_1, float* param_2);
virtual void FUN_10023570(float* param_1, float* param_2);
virtual void FUN_10023620(float* param_1, float* param_2);
virtual undefined4 VTable0x64(); // vtable+0x64
virtual void VTable0x68(char param_1); // vtable+0x68
virtual void VTable0x6c(); // vtable+0x6c
virtual void VTable0x74(float* param_1, float* param_2); // vtable+0x74
virtual void VTable0x78(float* param_1, float* param_2); // vtable+0x78
virtual void VTable0x7c(float* param_1, float* param_2); // vtable+0x7c
};
#endif // LEGOCARBUILD_H

View File

@ -1,6 +1,6 @@
#include "legocontrolmanager.h"
// OFFSET: LEGO1 0x100f31b8
// 0x100f31b8
static char* g_legoControlManagerClassName = "LegoControlManager";
// OFFSET: LEGO1 0x10028d60

View File

@ -6,10 +6,12 @@
class LegoControlManager : public MxCore
{
public:
virtual ~LegoControlManager();
virtual ~LegoControlManager(); // vtable+0x0
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
// VTABLE 0x100d6a80
};
#endif // LEGOCONTROLMANAGER_H

View File

@ -1,6 +1,6 @@
#include "legoentity.h"
// OFFSET: LEG01 0x100f0064
// 0x100f0064
static char* g_legoEntityClassName = "LegoEntity";
// OFFSET: LEGO1 0x100105f0
@ -22,3 +22,35 @@ MxBool LegoEntity::IsClass(const char *name) const
return MxBool();
}
// OFFSET: LEGO1 0x100107e0
undefined4 LegoEntity::VTable0x18(undefined4 param)
{
// TODO
return undefined4();
}
// OFFSET: LEGO1 0x10010810
void LegoEntity::VTable0x1c()
{
// TODO
}
// OFFSET: LEGO1 0x100108a0
void LegoEntity::VTable0x24(undefined4 param_1, undefined1 param_2, undefined1 param_3)
{
// TODO
}
// OFFSET: LEGO1 0x10010790
void LegoEntity::VTable0x28(undefined4 param_1, undefined4 param2)
{
// TODO
}
// OFFSET: LEGO1 0x10010650
void LegoEntity::VTable0x2c(undefined1 param)
{
// TODO
}

View File

@ -3,14 +3,29 @@
#include "mxentity.h"
#ifndef undefined4
#define undefined4 int
#endif
#ifndef undefined1
#define undefined1 char
#endif
class LegoEntity : public MxEntity
{
public:
LegoEntity();
__declspec(dllexport) virtual ~LegoEntity();
__declspec(dllexport) virtual ~LegoEntity(); // vtable+0x0
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
virtual undefined4 VTable0x18(undefined4 param); // vtable+0x18
virtual void VTable0x1c(); // vtable+0x1c
virtual void VTable0x20(char* param); // vtable+0x20
virtual void VTable0x24(undefined4 param_1, undefined1 param_2, undefined1 param_3); // vtable+0x24
virtual void VTable0x28(undefined4 param_1, undefined4 param2); // vtable+0x28
virtual void VTable0x2c(undefined1 param); // vtable+0x2c
};
#endif // LEGOENTITY_H

View File

@ -1,6 +1,6 @@
#include "legojetski.h"
// OFFSET: LEGO1 0x100f053c
// 0x100f053c
static char* g_legoJetskiClassName = "LegoJetski";
// OFFSET: LEGO1 0x10013e80

View File

@ -30,6 +30,24 @@ LegoVideoManager *VideoManager()
return LegoOmni::GetInstance()->GetVideoManager();
}
// OFFSET: LEGO1 0x100157f0
LegoBuildingManager *BuildingManager()
{
return LegoOmni::GetInstance()->GetLegoBuildingManager();
}
// OFFSET: LEGO1 0x10015790
Isle *GetIsle()
{
return LegoOmni::GetInstance()->GetIsle();
}
// OFFSET: LEGO1 0x100157e0
LegoPlantManager *PlantManager()
{
return LegoOmni::GetInstance()->GetLegoPlantManager();
}
// OFFSET: LEGO1 0x1005b5f0
long LegoOmni::Notify(MxParam &p)
{

View File

@ -15,6 +15,8 @@
#include "mxomni.h"
#include "mxtransitionmanager.h"
#include "isle.h"
#include "legobuildingmanager.h"
#include "legoplantmanager.h"
class LegoSoundManager;
@ -48,6 +50,9 @@ class LegoOmni : public MxOmni
LegoVideoManager *GetVideoManager() { return (LegoVideoManager *) m_videoManager; }
LegoInputManager *GetInputManager() { return m_inputMgr; }
Isle *GetIsle() { return m_isle; }
LegoBuildingManager *GetLegoBuildingManager() { return m_buildingManager; }
LegoPlantManager *GetLegoPlantManager() { return m_plantManager; }
private:
int m_unk68;
@ -56,9 +61,10 @@ class LegoOmni : public MxOmni
char m_unk74[0x10];
LegoNavController *m_navController; // 0x84
Isle* m_isle; // 0x88
// LegoPlantManager* m_plantManager // 0x90
// LegoBuildingManager* m_legoBuildingManager // 0x98
char m_unk88[0x10];
char m_unk8c[0x4];
LegoPlantManager* m_plantManager; // 0x90
char m_unk94[0x4];
LegoBuildingManager* m_buildingManager; // 0x98
LegoGameState *m_gameState; // 0x9c
char m_unka0[0x94];
MxBackgroundAudioManager *m_bkgAudioManager; // 0x134
@ -90,4 +96,8 @@ __declspec(dllexport) LegoVideoManager * VideoManager();
__declspec(dllexport) long Start(MxDSAction *a);
LegoBuildingManager* BuildingManager();
Isle* GetIsle();
LegoPlantManager* PlantManager();
#endif // LEGOOMNI_H

View File

@ -1,6 +1,6 @@
#include "legophonemepresenter.h"
// OFFSET: LEGO1 0x100f064c
// 0x100f064c
static char* g_legoPhonemePresenterClassName = "LegoPhonemePresenter";
// OFFSET: LEGO1 0x1004e340
@ -13,4 +13,10 @@ LegoPhonemePresenter::~LegoPhonemePresenter()
const char *LegoPhonemePresenter::GetClassName() const
{
return g_legoPhonemePresenterClassName;
}
}
// OFFSET: LEGO1 0x1004e840
void LegoPhonemePresenter::VTable0x6c()
{
// TODO
}

View File

@ -6,11 +6,13 @@
class LegoPhonemePresenter : public MxFlcPresenter
{
public:
virtual ~LegoPhonemePresenter();
virtual ~LegoPhonemePresenter(); // vtable+0x0
virtual const char* GetClassName() const;
virtual const char* GetClassName() const; // vtable+0xc
virtual void FUN_1004e840(int param_1);
virtual void VTable0x6c(); // vtable+0x6c
// VTABLE 0x100d8040
};
#endif // LEGOPHONEMEPRESENTER_H

View File

@ -1,6 +1,6 @@
#include "legoplantmanager.h"
// OFFSET: LEGO1 0x100f318c
// 0x100f318c
static char* g_LegoPlantManagerName = "LegoPlantManager";
// OFFSET: LEGO1 0x10026220
@ -21,6 +21,12 @@ const char *LegoPlantManager::GetClassName() const
return g_LegoPlantManagerName;
}
// OFFSET: LEGO1 0x10026d70
void LegoPlantManager::UnknownFunction1(int param_1, int param_2)
{
// TODO
}
// OFFSET: LEGO1 0x10026330
void LegoPlantManager::Init()
{

View File

@ -7,21 +7,11 @@ class LegoPlantManager : public MxCore
{
public:
LegoPlantManager();
virtual ~LegoPlantManager();
// OFFSET: LEGO1 0x100157e0
LegoPlantManager* GetInstance()
{
LegoOmni* legoOmni = LegoOmni::GetInstance();
virtual ~LegoPlantManager(); // vtable+0x0
return legoOmni->m_plantManager;
}
virtual const char* GetClassName() const; // vtable+0xc
// Virtual Functions
virtual const char* GetClassName() const;
// Member Functions
void FUN_10026d70(int param_1, int param_2);
void UnknownFunction1(int param_1, int param_2);
private:
void Init();

View File

@ -4,4 +4,22 @@
LegoWorldPresenter::LegoWorldPresenter()
{
// TODO
}
}
// OFFSET: LEGO1 0x10066770
LegoWorldPresenter::~LegoWorldPresenter()
{
// TODO
}
// OFFSET: LEGO1 0x10066ac0
void LegoWorldPresenter::VTable0x1c()
{
// TODO
}
// OFFSET: LEGO1 0x10067a70
void LegoWorldPresenter::VTable0x60(undefined4 param)
{
// TODO
}

View File

@ -3,12 +3,21 @@
#include "legoentitypresenter.h"
#ifndef undefined4
#define undefined4 int
#endif
class LegoWorldPresenter : public LegoEntityPresenter
{
public:
LegoWorldPresenter();
virtual ~LegoWorldPresenter(); // vtable+0x0
__declspec(dllexport) static void configureLegoWorldPresenter(int param_1);
virtual void VTable0x1c(); // vtable0x1c
virtual void VTable0x60(undefined4 param); // vtable+0x60
// VTABLE 0x100d8ee0
};

View File

@ -4,4 +4,16 @@
Motorcycle::Motorcycle()
{
// TODO
}
}
// OFFSET: LEGO1 0x10035c50
void Motorcycle::VTable0xcc()
{
// TODO
}
// OFFSET: LEGO1 0x10035bc0
void Motorcycle::VTable0xe4()
{
// TODO
}

View File

@ -8,8 +8,8 @@ class Motorcycle : public IslePathActor
public:
Motorcycle();
virtual void __fastcall FUN_10035c50(int* param_1);
virtual void __fastcall FUN_10035bc0(int* param_1);
virtual void VTable0xcc(); // vtable+0xcc
virtual void VTable0xe4(); // vtable+0xe4
// VTABLE 0x100d7090
// SIZE 0x16c

View File

@ -1,6 +1,8 @@
#include "mxentity.h"
// OFFSET: LEGO1 0x100f0070
#include "mxatomid.h"
// 0x100f0070
static char* g_mxEntityClassName = "MxEntity";
// OFFSET: LEGO1 0x1000c180
@ -16,3 +18,11 @@ MxBool MxEntity::IsClass(const char *name) const
return MxBool();
}
// OFFSET: LEGO1 0x10001070
undefined4 MxEntity::VTable0x14(undefined4 param_1, MxAtomId *param_2)
{
// TODO
return undefined4();
}

View File

@ -3,11 +3,21 @@
#include "mxcore.h"
#ifndef undefined4
#define undefined4 int
#endif
class MxAtomId;
class MxEntity : public MxCore
{
public:
virtual const char* GetClassName() const;
virtual MxBool IsClass(const char *name) const;
virtual const char* GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
virtual undefined4 VTable0x14(undefined4 param_1, MxAtomId* param_2); // vtable+0x14
// VTABLE 0x100d53a4
};
#endif // MXENTITY_H
#endif // MXENTITY_H

View File

@ -10,6 +10,8 @@ class MxEventPresenter : public MxMediaPresenter
private:
void Init();
// VTABLE 0x100dca88
};
#endif // MXEVENTPRESENTER_H

View File

@ -1,6 +1,6 @@
#include "mxmediapresenter.h"
// OFFSET: LEGO1 0x100f074c
// 0x100f074c
static char* g_mxMediaPresenterClassName = "MxMediaPresenter";
// OFFSET: LEGO1 0x100d4ce0
@ -25,6 +25,20 @@ MxBool MxMediaPresenter::IsClass(const char *name) const
return MxBool();
}
// OFFSET: LEGO1 0x100b5d90
void MxMediaPresenter::VTable0x20()
{
// TODO
}
// OFFSET: LEGO1 0x100b5e10
unsigned int MxMediaPresenter::VTable0x24()
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x100b5ef0
void MxMediaPresenter::DoneTickle()
{

View File

@ -10,8 +10,8 @@ class MxMediaPresenter : public MxPresenter
virtual const char *GetClassName() const; // vtable+0xc, override MxCore
virtual MxBool IsClass(const char *name) const; // vtable+0x10, override MxCore
virtual void __fastcall FUN_100b5d90(int* param); // vtable+0x20, override MxPresenter
virtual int __fastcall FUN_100b5e10(int param); // vtable+0x24, override MxPresenter
virtual void VTable0x20(); // vtable+0x20, override MxPresenter
virtual unsigned int VTable0x24(); // vtable+0x24, override MxPresenter
virtual void DoneTickle(); // vtable+0x2c, override MxPresenter
virtual long StartAction(MxStreamController*, MxDSAction*); // vtable+0x3c, override
virtual void EndAction(); // vtable+0x40, override MxPresenter

View File

@ -1,5 +1,8 @@
#include "mxpresenter.h"
// 0x100f0740
static char* g_mxPresenterClassName = "MxPresenter";
// OFFSET: LEGO1 0x1000bee0
void MxPresenter::DoneTickle()
{
@ -26,6 +29,20 @@ long MxPresenter::Tickle()
return 0;
}
// OFFSET: LEGO1 0x1000bfe0
const char *MxPresenter::GetClassName() const
{
return g_mxPresenterClassName;
}
// OFFSET: LEGO1 0x1000bff0
MxBool MxPresenter::IsClass(const char *name) const
{
// TODO
return MxBool();
}
// OFFSET: LEGO1 0x100b4d80
long MxPresenter::StartAction(MxStreamController *, MxDSAction *)
{
@ -45,3 +62,39 @@ void MxPresenter::Enable(unsigned char)
{
// TODO
}
// OFFSET: LEGO1 0x1000be30
void MxPresenter::VTable0x14()
{
// TODO
}
// OFFSET: LEGO1 0x1000be40
void MxPresenter::VTable0x18()
{
// TODO
}
// OFFSET: LEGO1 0x1000be60
void MxPresenter::VTable0x1c()
{
// TODO
}
// OFFSET: LEGO1 0x1000be80
void MxPresenter::VTable0x20()
{
// TODO
}
// OFFSET: LEGO1 0x1000bea0
void MxPresenter::VTable0x24()
{
// TODO
}
// OFFSET: LEGO1 0x1000bec0
void MxPresenter::VTable0x28()
{
// TODO
}

View File

@ -8,27 +8,26 @@ class MxDSAction;
class MxPresenter : public MxCore
{
public:
__declspec(dllexport) virtual ~MxPresenter(); // vtable+0x0
__declspec(dllexport) virtual long Tickle(); // vtable+0x8
virtual const char *GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
virtual void VTable0x14(); // vtable+0x14
virtual void VTable0x18(); // vtable+0x18
virtual void VTable0x1c(); // vtable+0x1c
virtual void VTable0x20(); // vtable+0x20
virtual void VTable0x24(); // vtable+0x24
virtual void VTable0x28(); // vtable+0x28
protected:
__declspec(dllexport) virtual void DoneTickle(); // vtable+0x2c
__declspec(dllexport) void Init();
__declspec(dllexport) virtual void ParseExtra(); // vtable+0x30
public:
__declspec(dllexport) virtual ~MxPresenter(); // vtable+0x0
__declspec(dllexport) virtual long Tickle(); // vtable+0x8
virtual const char *GetClassName() const; // vtable+0xc
virtual MxBool IsClass(const char *name) const; // vtable+0x10
__declspec(dllexport) virtual long StartAction(MxStreamController *, MxDSAction *); // vtable+0x3c
__declspec(dllexport) virtual void EndAction(); // vtable+0x40
__declspec(dllexport) virtual void Enable(unsigned char); // vtable+0x54
virtual void FUN_1000be30(); // vtable+0x14
virtual void __fastcall FUN_1000be40(int param); // vtable+0x18
virtual void __fastcall FUN_1000be60(int param); // vtable+0x1c
virtual void __fastcall FUN_1000be80(int param); // vtable+0x20
virtual void __fastcall FUN_1000bea0(int param); // vtable+0x24
virtual void __fastcall FUN_1000bec0(int param); // vtable+0x28
// VTABLE 0x100d4d38
};

View File

@ -7,7 +7,7 @@ MxSmkPresenter::MxSmkPresenter()
}
// OFFSET: LEGO1 0x100b38d0
void __fastcall MxSmkPresenter::Init()
void MxSmkPresenter::Init()
{
// TODO
}

View File

@ -9,8 +9,9 @@ class MxSmkPresenter : public MxVideoPresenter
MxSmkPresenter();
private:
void __fastcall Init();
void Init();
// VTABLE 0x100dc348
// SIZE 0x720
};

View File

@ -1,7 +1,17 @@
#include "mxtransitionmanager.h"
// OFFSET: LEGO1 0x1004bac0
int MxTransitionManager::DispatchTransition()
long MxTransitionManager::Tickle()
{
// TODO
return 0;
}
}
// OFFSET: LEGO1 0x1004baa0
undefined4 MxTransitionManager::VTable0x14()
{
// TODO
return undefined4();
}

View File

@ -1,15 +1,23 @@
#ifndef MXTRANSITIONMANAGER_H
#define MXTRANSITIONMANAGER_H
#include "mxcore.h"
class MxVideoPresenter;
class MxTransitionManager
#ifndef undefined4
#define undefined4 int
#endif
class MxTransitionManager : public MxCore
{
public:
__declspec(dllexport) void SetWaitIndicator(MxVideoPresenter *videoPresenter);
virtual int DispatchTransition();
virtual int FUN_1004baa0(); // Return is unknown 4-byte value
virtual long Tickle(); // vtable+0x8
virtual undefined4 VTable0x14(); // vtable+0x14
// VTABLE 0x100d7ea0
};
#endif // MXTRANSITIONMANAGER_H

View File

@ -5,3 +5,21 @@ void MxWavePresenter::Init()
{
// TODO
}
// OFFSET: LEGO1 0x100b2300
void MxWavePresenter::VTable0x60(int param_1)
{
// TODO
}
// OFFSET: LEGO1 0x100b2440
void MxWavePresenter::VTable0x64(int param_1)
{
// TODO
}
// OFFSET: LEGO1 0x100b2470
void MxWavePresenter::VTable0x68(int param_1)
{
// TODO
}

View File

@ -8,9 +8,12 @@ class MxWavePresenter : public MxSoundPresenter
private:
void Init();
virtual void FUN_100b2300(int param_1);
virtual void FUN_100b2440(int param_1);
virtual void FUN_100b2470(int param_1);
public:
virtual void VTable0x60(int param_1); // vtable+0x60
virtual void VTable0x64(int param_1); // vtable+0x64
virtual void VTable0x68(int param_1); // vtable+0x68
// VTABLE 0x100d49a8
// SIZE 0x6c
};

View File

@ -3,4 +3,13 @@
// OFFSET: LEGO1 0x100334b0
Pizzeria::Pizzeria()
{
// TODO
}
// OFFSET: LEGO1 0x10017a50
undefined4 Pizzeria::VTable0x68()
{
// TODO
return undefined4();
}

View File

@ -3,13 +3,18 @@
#include "isleactor.h"
#ifndef undefined4
#define undefined4 int
#endif
class Pizzeria : public IsleActor
{
public:
Pizzeria();
virtual int FUN_10017a50(int param_1); // Return is unknown 4-byte value
virtual undefined4 VTable0x68(); // vtable+0x68
// VTABLE 0x100d5520
// SIZE 0x84
};

9
LEGO1/policeentity.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "policeentity.h"
// OFFSET: LEGO1 0x10015310
undefined4 PoliceEntity::VTable0x50()
{
// TODO
return undefined4();
}

View File

@ -3,9 +3,13 @@
#include "buildingentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class PoliceEntity : public BuildingEntity
{
virtual int FUN_10015310(); // Return is undefined 4-byte value
virtual undefined4 VTable0x50(); // vtable+0x50
// VTABLE 0x100d4ab0
// SIZE 0x68

View File

@ -0,0 +1,9 @@
#include "racestandsentity.h"
// OFFSET: LEGO1 0x10015450
undefined4 RaceStandsEntity::VTable0x50()
{
// TODO
return undefined4();
}

View File

@ -3,11 +3,16 @@
#include "buildingentity.h"
#ifndef undefined4
#define undefined4 int
#endif
class RaceStandsEntity : public BuildingEntity
{
// NOTE(Cydra): Starts transition
int FUN_10015450(); // Return is unknown 4-byte value
undefined4 VTable0x50(); // vtable+0x50
// VTABLE 0x100d48a8
// SIZE 0x68
};

View File

@ -19,3 +19,9 @@ long RegistrationBook::Notify(MxParam &p)
return 0;
}
// OFFSET: LEGO1 0x10078180
void RegistrationBook::VTable0x68(char param_1)
{
// TODO
}

View File

@ -10,7 +10,7 @@ class RegistrationBook : public LegoWorld
virtual ~RegistrationBook(); // vtable+0x0
virtual long Notify(MxParam &p); // vtable+0x4
virtual void FUN_10078180(char param_1); // vtable+0x68
virtual void VTable0x68(char param_1); // vtable+0x68
// VTABLE 0x100d9928
};

View File

@ -4,4 +4,12 @@
SkateBoard::SkateBoard()
{
// TODO
}
}
// OFFSET: LEGO1 0x100100e0
undefined4 SkateBoard::VTable0xcc()
{
// TODO
return undefined4();
}

View File

@ -3,12 +3,16 @@
#include "islepathactor.h"
#ifndef undefined4
#define undefined4 int
#endif
class SkateBoard : public IslePathActor
{
public:
SkateBoard();
virtual int __fastcall FUN_100100e0(int* param_1); // Return is undefined 4-byte value
virtual undefined4 VTable0xcc(); // vtable+0xcc
// VTABLE 0x100d55f0
};

View File

@ -4,4 +4,10 @@
TowTrack::TowTrack()
{
// TODO
}
}
// OFFSET: LEGO1 0x1004d8f0
void TowTrack::VTable0xe4()
{
// TODO
}

View File

@ -8,7 +8,7 @@ class TowTrack : public IslePathActor
public:
TowTrack();
virtual void FUN_1004d8f0(int* param_1); // vtable+0xe4
virtual void VTable0xe4(); // vtable+0xe4
// VTABLE 0x100d7ee0
// SIZE 0x180