From 1dcf29b454273cc97590298c1e9501b98b397cc5 Mon Sep 17 00:00:00 2001 From: Cydra Date: Thu, 22 Jun 2023 00:06:09 +0200 Subject: [PATCH] More classes and implementation details. Still not checked for any errors --- LEGO1/act2brick.cpp | 16 ++++++++- LEGO1/act2brick.h | 2 ++ LEGO1/bike.h | 4 +++ LEGO1/elevatorbottom.cpp | 8 +++++ LEGO1/elevatorbottom.h | 4 +++ LEGO1/helicopter.cpp | 25 +++++++++++++- LEGO1/helicopter.h | 11 +++++- LEGO1/hospital.cpp | 16 ++++++++- LEGO1/hospital.h | 4 +++ LEGO1/isle.h | 4 +++ LEGO1/islepathactor.h | 7 +++- LEGO1/legoanimmmpresenter.h | 3 +- LEGO1/legocameracontroller.cpp | 7 ++++ LEGO1/legocameracontroller.h | 5 +++ LEGO1/legocarbuildanimpresenter.cpp | 8 ++++- LEGO1/legocarbuildanimpresenter.h | 1 + LEGO1/legocontrolmanager.cpp | 24 +++++++++++++ LEGO1/legocontrolmanager.h | 4 +++ LEGO1/legoentitypresenter.cpp | 6 ++++ LEGO1/legoentitypresenter.h | 1 + LEGO1/legojetski.cpp | 18 ++++++++++ LEGO1/legojetski.h | 16 +++++++++ LEGO1/legopalettepresenter.cpp | 6 ++++ LEGO1/legopalettepresenter.h | 1 + LEGO1/legoraceactor.h | 4 ++- LEGO1/legosoundmanager.cpp | 13 ++++++++ LEGO1/legosoundmanager.h | 13 ++++++++ LEGO1/legotexturepresenter.cpp | 7 ++++ LEGO1/legotexturepresenter.h | 4 +++ LEGO1/motorcycle.h | 3 ++ LEGO1/mxcompositepresenter.cpp | 16 ++++++++- LEGO1/mxcompositepresenter.h | 3 ++ LEGO1/mxmediapresenter.cpp | 52 +++++++++++++++++++++++++++++ LEGO1/mxmediapresenter.h | 13 ++++++++ LEGO1/mxpresenter.cpp | 47 ++++++++++++++++++++++++++ LEGO1/mxpresenter.h | 26 +++++++++++---- LEGO1/mxwavepresenter.h | 3 ++ LEGO1/pizzeria.h | 2 ++ LEGO1/racecar.cpp | 8 ++++- LEGO1/racecar.h | 1 + LEGO1/radio.cpp | 7 ++++ LEGO1/radio.h | 3 ++ LEGO1/registrationbook.cpp | 16 ++++++++- LEGO1/registrationbook.h | 4 ++- LEGO1/skateboard.h | 4 +++ LEGO1/towtrack.h | 2 ++ 46 files changed, 432 insertions(+), 20 deletions(-) create mode 100644 LEGO1/legocameracontroller.cpp create mode 100644 LEGO1/legocontrolmanager.cpp create mode 100644 LEGO1/legojetski.cpp create mode 100644 LEGO1/legojetski.h create mode 100644 LEGO1/legosoundmanager.cpp create mode 100644 LEGO1/legosoundmanager.h create mode 100644 LEGO1/legotexturepresenter.cpp create mode 100644 LEGO1/mxmediapresenter.cpp create mode 100644 LEGO1/mxpresenter.cpp create mode 100644 LEGO1/radio.cpp diff --git a/LEGO1/act2brick.cpp b/LEGO1/act2brick.cpp index 3e1554e0..fbaf90ab 100644 --- a/LEGO1/act2brick.cpp +++ b/LEGO1/act2brick.cpp @@ -4,4 +4,18 @@ Act2Brick::Act2Brick() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x1007a470 +Act2Brick::~Act2Brick() +{ + // TODO +} + +// OFFSET: LEGO1 0x1007a7f0 +long Act2Brick::Tickle() +{ + // TODO + + return 0; +} diff --git a/LEGO1/act2brick.h b/LEGO1/act2brick.h index d5e1a0e9..8d3843c2 100644 --- a/LEGO1/act2brick.h +++ b/LEGO1/act2brick.h @@ -7,7 +7,9 @@ class Act2Brick : public LegoPathActor { public: Act2Brick(); + virtual ~Act2Brick(); // vtable+0x0 + virtual long Tickle(); // vtable+08 // VTABLE 0x100d9b60 // SIZE 0x194 }; diff --git a/LEGO1/bike.h b/LEGO1/bike.h index 51b0d432..0bb93b65 100644 --- a/LEGO1/bike.h +++ b/LEGO1/bike.h @@ -8,6 +8,10 @@ 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 + // VTABLE 0x100d9808 // SIZE 0x74 }; diff --git a/LEGO1/elevatorbottom.cpp b/LEGO1/elevatorbottom.cpp index 36ff2bdd..341ef4d6 100644 --- a/LEGO1/elevatorbottom.cpp +++ b/LEGO1/elevatorbottom.cpp @@ -9,6 +9,12 @@ ElevatorBottom::ElevatorBottom() // TODO } +// OFFSET: LEGO1 0x10018060 +ElevatorBottom::~ElevatorBottom() +{ + // TODO +} + // OFFSET: LEGO1 0x10017f20 const char *ElevatorBottom::GetClassName() const { @@ -18,5 +24,7 @@ const char *ElevatorBottom::GetClassName() const // OFFSET: LEGO1 0x10017f30 MxBool ElevatorBottom::IsClass(const char *name) const { + // TODO + return MxBool(); } diff --git a/LEGO1/elevatorbottom.h b/LEGO1/elevatorbottom.h index e7c91ed1..14493ec4 100644 --- a/LEGO1/elevatorbottom.h +++ b/LEGO1/elevatorbottom.h @@ -7,9 +7,13 @@ class ElevatorBottom : public LegoWorld { public: ElevatorBottom(); + virtual ~ElevatorBottom(); virtual const char* GetClassName() const; virtual MxBool IsClass(const char *name) const; + + virtual int FUN_10017f10() { return 1; } // Return is undefined + virtual void FUN_100182c0(char param_1); }; #endif // ELEVATORBOTTOM_H diff --git a/LEGO1/helicopter.cpp b/LEGO1/helicopter.cpp index 7b18a353..ff431d30 100644 --- a/LEGO1/helicopter.cpp +++ b/LEGO1/helicopter.cpp @@ -1,7 +1,30 @@ #include "helicopter.h" +// OFFSET: LEGO1 0x100f0130 +static char* g_helicopterClassName = "Helicopter"; + // OFFSET: LEGO1 0x10001e60 Helicopter::Helicopter() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x10003230 +Helicopter::~Helicopter() +{ + // TODO +} + +// OFFSET: LEGO1 0x10003070 +const char *Helicopter::GetClassName() const +{ + return g_helicopterClassName; +} + +// OFFSET: LEGO1 0x10003080 +MxBool Helicopter::IsClass(const char *name) const +{ + // TODO + + return MxBool(); +} diff --git a/LEGO1/helicopter.h b/LEGO1/helicopter.h index b4ffc3a3..f32e9d54 100644 --- a/LEGO1/helicopter.h +++ b/LEGO1/helicopter.h @@ -7,6 +7,15 @@ class Helicopter : public IslePathActor { public: Helicopter(); + virtual ~Helicopter(); // vtable+0x0 + + virtual const char* GetClassName() const; // vtable+0x + virtual MxBool IsClass(const char *name) const; // vtable+0x + + virtual void FUN_10003ee0(float param_1); // 0x70 + virtual void __fastcall FUN_10003360(int* param); // vtable+0xe4 + + // VTABLE 0x100d40f8 }; -#endif // HELICOPTER_H \ No newline at end of file +#endif // HELICOPTER_H diff --git a/LEGO1/hospital.cpp b/LEGO1/hospital.cpp index 577b8cca..1b29ab0f 100644 --- a/LEGO1/hospital.cpp +++ b/LEGO1/hospital.cpp @@ -4,4 +4,18 @@ Hospital::Hospital() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x100747f0 +Hospital::~Hospital() +{ + // TODO +} + +// OFFSET: LEGO1 0x10074990 +long Hospital::Notify(MxParam &p) +{ + // TODO + + return 0; +} diff --git a/LEGO1/hospital.h b/LEGO1/hospital.h index ed31cd9c..e1e81bfa 100644 --- a/LEGO1/hospital.h +++ b/LEGO1/hospital.h @@ -7,7 +7,11 @@ class Hospital : public LegoWorld { public: Hospital(); + virtual ~Hospital(); // vtable+0x0 + virtual long Notify(MxParam &p); // vtable+0x04 + virtual void FUN_10076220(char param_1); // vtable+0x68 + // SIZE 0x300 }; diff --git a/LEGO1/isle.h b/LEGO1/isle.h index 4f903699..bbbb3ef1 100644 --- a/LEGO1/isle.h +++ b/LEGO1/isle.h @@ -17,6 +17,10 @@ static Isle* GetIsle() 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); + // SIZE 0x140 // Radio at 0x12c }; diff --git a/LEGO1/islepathactor.h b/LEGO1/islepathactor.h index 1569ad1d..3d9dbfc2 100644 --- a/LEGO1/islepathactor.h +++ b/LEGO1/islepathactor.h @@ -3,12 +3,17 @@ #include "legopathactor.h" +#define undefined char + class IslePathActor : public LegoPathActor { public: IslePathActor(); + virtual void FUN_1001b5b0(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, void*, char); // vtable+0xec + + // VTABLE 0x100d4398 // SIZE >= 0x230 }; -#endif // ISLEPATHACTOR_H \ No newline at end of file +#endif // ISLEPATHACTOR_H diff --git a/LEGO1/legoanimmmpresenter.h b/LEGO1/legoanimmmpresenter.h index 21e74859..33b802f1 100644 --- a/LEGO1/legoanimmmpresenter.h +++ b/LEGO1/legoanimmmpresenter.h @@ -10,7 +10,6 @@ class LegoAnimMMPresenter : public MxCompositePresenter // VTABLE 0x100d7de8 // SIZE 0x74 -} - +}; #endif // LEGOANIMMMPRESENTER_H diff --git a/LEGO1/legocameracontroller.cpp b/LEGO1/legocameracontroller.cpp new file mode 100644 index 00000000..7fb1fd12 --- /dev/null +++ b/LEGO1/legocameracontroller.cpp @@ -0,0 +1,7 @@ +#include "legocameracontroller.h" + +// OFFSET: LEGO1 0x10011f70 +LegoCameraController::~LegoCameraController() +{ + // TODO +} \ No newline at end of file diff --git a/LEGO1/legocameracontroller.h b/LEGO1/legocameracontroller.h index 914e5374..9fd2b304 100644 --- a/LEGO1/legocameracontroller.h +++ b/LEGO1/legocameracontroller.h @@ -3,7 +3,12 @@ class LegoCameraController { +public: + virtual ~LegoCameraController(); + virtual void FUN_10011ff0(void* param); + + // VTABLE 0x100d57b0 }; #endif // LEGOCAMERACONTROLLER_H diff --git a/LEGO1/legocarbuildanimpresenter.cpp b/LEGO1/legocarbuildanimpresenter.cpp index 5dd20d27..34542606 100644 --- a/LEGO1/legocarbuildanimpresenter.cpp +++ b/LEGO1/legocarbuildanimpresenter.cpp @@ -4,4 +4,10 @@ LegoCarBuildAnimPresenter::LegoCarBuildAnimPresenter() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x10078680 +LegoCarBuildAnimPresenter::~LegoCarBuildAnimPresenter() +{ + // TODO +} diff --git a/LEGO1/legocarbuildanimpresenter.h b/LEGO1/legocarbuildanimpresenter.h index 07f8ddd2..58b9d331 100644 --- a/LEGO1/legocarbuildanimpresenter.h +++ b/LEGO1/legocarbuildanimpresenter.h @@ -7,6 +7,7 @@ class LegoCarBuildAnimPresenter : public LegoAnimPresenter { public: LegoCarBuildAnimPresenter(); + virtual ~LegoCarBuildAnimPresenter(); // vtable+0x0 }; #endif // LEGOCARBUILDANIMPRESENTER_H diff --git a/LEGO1/legocontrolmanager.cpp b/LEGO1/legocontrolmanager.cpp new file mode 100644 index 00000000..1fe5c847 --- /dev/null +++ b/LEGO1/legocontrolmanager.cpp @@ -0,0 +1,24 @@ +#include "legocontrolmanager.h" + +// OFFSET: LEGO1 0x100f31b8 +static char* g_legoControlManagerClassName = "LegoControlManager"; + +// OFFSET: LEGO1 0x10028d60 +LegoControlManager::~LegoControlManager() +{ + // TODO +} + +// OFFSET: LEGO1 0x10028cb0 +const char *LegoControlManager::GetClassName() const +{ + return g_legoControlManagerClassName; +} + +// OFFSET: LEGO1 0x10028cc0 +MxBool LegoControlManager::IsClass(const char *name) const +{ + // TODO + + return MxBool(); +} diff --git a/LEGO1/legocontrolmanager.h b/LEGO1/legocontrolmanager.h index d1c03968..483181b2 100644 --- a/LEGO1/legocontrolmanager.h +++ b/LEGO1/legocontrolmanager.h @@ -5,7 +5,11 @@ class LegoControlManager : public MxCore { +public: + virtual ~LegoControlManager(); + virtual const char* GetClassName() const; + virtual MxBool IsClass(const char *name) const; }; #endif // LEGOCONTROLMANAGER_H diff --git a/LEGO1/legoentitypresenter.cpp b/LEGO1/legoentitypresenter.cpp index e59b5302..04b6ad77 100644 --- a/LEGO1/legoentitypresenter.cpp +++ b/LEGO1/legoentitypresenter.cpp @@ -6,6 +6,12 @@ LegoEntityPresenter::LegoEntityPresenter() // TODO } +// OFFSET: LEGO1 0x100535d0 +LegoEntityPresenter::~LegoEntityPresenter() +{ + // TODO +} + // OFFSET: LEG01 0x100535c0 void LegoEntityPresenter::Init() { diff --git a/LEGO1/legoentitypresenter.h b/LEGO1/legoentitypresenter.h index 29c878b7..fdbb12d5 100644 --- a/LEGO1/legoentitypresenter.h +++ b/LEGO1/legoentitypresenter.h @@ -7,6 +7,7 @@ class LegoEntityPresenter : public MxCompositePresenter { public: LegoEntityPresenter(); + virtual ~LegoEntityPresenter(); // vtable+0x0 private: void Init(); diff --git a/LEGO1/legojetski.cpp b/LEGO1/legojetski.cpp new file mode 100644 index 00000000..d5318950 --- /dev/null +++ b/LEGO1/legojetski.cpp @@ -0,0 +1,18 @@ +#include "legojetski.h" + +// OFFSET: LEGO1 0x100f053c +static char* g_legoJetskiClassName = "LegoJetski"; + +// OFFSET: LEGO1 0x10013e80 +const char *LegoJetski::GetClassName() const +{ + return g_legoJetskiClassName; +} + +// OFFSET: LEGO1 0x10013ea0 +MxBool LegoJetski::IsClass(const char *name) const +{ + // TODO + + return MxBool(); +} diff --git a/LEGO1/legojetski.h b/LEGO1/legojetski.h new file mode 100644 index 00000000..92efb082 --- /dev/null +++ b/LEGO1/legojetski.h @@ -0,0 +1,16 @@ +#ifndef LEGOJETSKI_H +#define LEGOJETSKI_H + +#include "legojetskiraceactor.h" + +class LegoJetski : public LegoJetskiRaceActor +{ +public: + virtual const char* GetClassName() const; + virtual MxBool IsClass(const char *name) const; + + // VTABLE 0x100d5a40 +}; + + +#endif // LEGOJETSKI_H diff --git a/LEGO1/legopalettepresenter.cpp b/LEGO1/legopalettepresenter.cpp index df13a492..668a90b7 100644 --- a/LEGO1/legopalettepresenter.cpp +++ b/LEGO1/legopalettepresenter.cpp @@ -6,6 +6,12 @@ LegoPalettePresenter::LegoPalettePresenter() // TODO } +// OFFSET: LEGO1 0x1007a070 +LegoPalettePresenter::~LegoPalettePresenter() +{ + // TODO +} + // OFFSET: LEGO1 0x1007a0d0 void LegoPalettePresenter::Init() { diff --git a/LEGO1/legopalettepresenter.h b/LEGO1/legopalettepresenter.h index 54eb1a9b..4efd3b8d 100644 --- a/LEGO1/legopalettepresenter.h +++ b/LEGO1/legopalettepresenter.h @@ -7,6 +7,7 @@ class LegoPalettePresenter : public MxVideoPresenter { public: LegoPalettePresenter(); + virtual ~LegoPalettePresenter(); // vtable+0x0 private: void Init(); diff --git a/LEGO1/legoraceactor.h b/LEGO1/legoraceactor.h index 1081c658..51362f17 100644 --- a/LEGO1/legoraceactor.h +++ b/LEGO1/legoraceactor.h @@ -1,7 +1,9 @@ #ifndef LEGORACEACTOR_H #define LEGORACEACTOR_H -class LegoRaceActor +#include "legoanimactor.h" + +class LegoRaceActor : public LegoAnimActor { }; diff --git a/LEGO1/legosoundmanager.cpp b/LEGO1/legosoundmanager.cpp new file mode 100644 index 00000000..d2e5a559 --- /dev/null +++ b/LEGO1/legosoundmanager.cpp @@ -0,0 +1,13 @@ +#include "legosoundmanager.h" + +// OFFSET: LEGO1 0x100298a0 +LegoSoundManager::LegoSoundManager() +{ + // TODO +} + +// OFFSET: LEGO1 0x10029940 +LegoSoundManager::~LegoSoundManager() +{ + // TODO +} diff --git a/LEGO1/legosoundmanager.h b/LEGO1/legosoundmanager.h new file mode 100644 index 00000000..32edeb90 --- /dev/null +++ b/LEGO1/legosoundmanager.h @@ -0,0 +1,13 @@ +#ifndef LEGOSOUNDMANAGER_H +#define LEGOSOUNDMANAGER_H + +#include "mxsoundmanager.h" + +class LegoSoundManager : public MxSoundManager +{ +public: + LegoSoundManager(); + virtual ~LegoSoundManager(); +}; + +#endif // LEGOSOUNDMANAGER_H diff --git a/LEGO1/legotexturepresenter.cpp b/LEGO1/legotexturepresenter.cpp new file mode 100644 index 00000000..e338abfe --- /dev/null +++ b/LEGO1/legotexturepresenter.cpp @@ -0,0 +1,7 @@ +#include "legotexturepresenter.h" + +// OFFSET: LEGO1 0x1004fcb0 +void LegoTexturePresenter::DoneTickle() +{ + // TODO +} \ No newline at end of file diff --git a/LEGO1/legotexturepresenter.h b/LEGO1/legotexturepresenter.h index 7215bb92..d23bdba9 100644 --- a/LEGO1/legotexturepresenter.h +++ b/LEGO1/legotexturepresenter.h @@ -5,6 +5,10 @@ class LegoTexturePresenter : public MxMediaPresenter { +public: + virtual void DoneTickle(); // vtable+0x2c, override MxPresenter + + // VTABLE 0x // SIZE 0x54 }; diff --git a/LEGO1/motorcycle.h b/LEGO1/motorcycle.h index 39942de7..6972f9e5 100644 --- a/LEGO1/motorcycle.h +++ b/LEGO1/motorcycle.h @@ -8,6 +8,9 @@ class Motorcycle : public IslePathActor public: Motorcycle(); + virtual void __fastcall FUN_10035c50(int* param_1); + virtual void __fastcall FUN_10035bc0(int* param_1); + // VTABLE 0x100d7090 // SIZE 0x16c }; diff --git a/LEGO1/mxcompositepresenter.cpp b/LEGO1/mxcompositepresenter.cpp index 5dc7dfd7..304037d5 100644 --- a/LEGO1/mxcompositepresenter.cpp +++ b/LEGO1/mxcompositepresenter.cpp @@ -4,4 +4,18 @@ MxCompositePresenter::MxCompositePresenter() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x100b6390 +MxCompositePresenter::~MxCompositePresenter() +{ + // TODO +} + +// OFFSET: LEGO1 0x100b6760 +long MxCompositePresenter::Notify(MxParam &p) +{ + // TODO + + return 0; +} diff --git a/LEGO1/mxcompositepresenter.h b/LEGO1/mxcompositepresenter.h index b43579b8..d21884ea 100644 --- a/LEGO1/mxcompositepresenter.h +++ b/LEGO1/mxcompositepresenter.h @@ -7,6 +7,9 @@ class MxCompositePresenter : public MxPresenter { public: MxCompositePresenter(); + virtual ~MxCompositePresenter(); // vtable+0x0 + + virtual long Notify(MxParam &p); // vtable+0x4, MxCore override // VTABLE 0x100dc618 }; diff --git a/LEGO1/mxmediapresenter.cpp b/LEGO1/mxmediapresenter.cpp new file mode 100644 index 00000000..dd0ce252 --- /dev/null +++ b/LEGO1/mxmediapresenter.cpp @@ -0,0 +1,52 @@ +#include "mxmediapresenter.h" + +// OFFSET: LEGO1 0x100f074c +static char* g_mxMediaPresenterClassName = "MxMediaPresenter"; + +// OFFSET: LEGO1 0x100d4ce0 +long MxMediaPresenter::Tickle() +{ + // TODO + + return 0; +} + +// OFFSET: LEGO1 0x100d4ce4 +const char *MxMediaPresenter::GetClassName() const +{ + return g_mxMediaPresenterClassName; +} + +// OFFSET: LEGO1 0x1000c5d0 +MxBool MxMediaPresenter::IsClass(const char *name) const +{ + // TODO + + return MxBool(); +} + +// OFFSET: LEGO1 0x100b5ef0 +void MxMediaPresenter::DoneTickle() +{ + // TODO +} + +// OFFSET: LEGO1 0x100b5700 +long MxMediaPresenter::StartAction(MxStreamController *, MxDSAction *) +{ + // TODO + + return 0; +} + +// OFFSET: LEGO1 0x100b5bc0 +void MxMediaPresenter::EndAction() +{ + // TODO +} + +// OFFSET: LEGO1 0x100b6030 +void MxMediaPresenter::Enable(unsigned char param) +{ + // TODO +} diff --git a/LEGO1/mxmediapresenter.h b/LEGO1/mxmediapresenter.h index a68da3c1..1b83c1c1 100644 --- a/LEGO1/mxmediapresenter.h +++ b/LEGO1/mxmediapresenter.h @@ -5,6 +5,19 @@ class MxMediaPresenter : public MxPresenter { +public: + virtual long Tickle(); // vtable+0x8, override MxCore + 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 DoneTickle(); // vtable+0x2c, override MxPresenter + virtual long StartAction(MxStreamController*, MxDSAction*); // vtable+0x3c, override + virtual void EndAction(); // vtable+0x40, override MxPresenter + virtual void Enable(unsigned char param); // vtable+0x54, override MxPresenter + + // VTABLE 0x100d4cd8 }; #endif // MXMEDIAPRESENTER_H diff --git a/LEGO1/mxpresenter.cpp b/LEGO1/mxpresenter.cpp new file mode 100644 index 00000000..714f5af1 --- /dev/null +++ b/LEGO1/mxpresenter.cpp @@ -0,0 +1,47 @@ +#include "mxpresenter.h" + +// OFFSET: LEGO1 0x1000bee0 +void MxPresenter::DoneTickle() +{ + // TODO +} + +// OFFSET: LEGO1 0x100b4fc0 +void MxPresenter::ParseExtra() +{ + // TODO +} + +// OFFSET: LEGO1 0x1000c070 +MxPresenter::~MxPresenter() +{ + // TODO +} + +// OFFSET: LEGO1 0x100b5200 +long MxPresenter::Tickle() +{ + // TODO + + return 0; +} + +// OFFSET: LEGO1 0x100b4d80 +long MxPresenter::StartAction(MxStreamController *, MxDSAction *) +{ + // TODO + + return 0; +} + +// OFFSET: LEGO1 0x100d4d74 +void MxPresenter::EndAction() +{ + // TODO +} + +// OFFSET: LEGO1 0x100d4d8c +void MxPresenter::Enable(unsigned char) +{ + // TODO +} diff --git a/LEGO1/mxpresenter.h b/LEGO1/mxpresenter.h index f933f964..79ea3128 100644 --- a/LEGO1/mxpresenter.h +++ b/LEGO1/mxpresenter.h @@ -9,15 +9,27 @@ class MxDSAction; class MxPresenter : public MxCore { protected: - __declspec(dllexport) virtual void DoneTickle(); + __declspec(dllexport) virtual void DoneTickle(); // vtable+0x2c __declspec(dllexport) void Init(); - __declspec(dllexport) virtual void ParseExtra(); + __declspec(dllexport) virtual void ParseExtra(); // vtable+0x30 public: - __declspec(dllexport) virtual ~MxPresenter(); - __declspec(dllexport) virtual void Enable(unsigned char); - __declspec(dllexport) virtual void EndAction(); - __declspec(dllexport) virtual long StartAction(MxStreamController *, MxDSAction *); - __declspec(dllexport) virtual long Tickle(); + __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 }; #endif // MXPRESENTER_H diff --git a/LEGO1/mxwavepresenter.h b/LEGO1/mxwavepresenter.h index ba2ee2d6..79ff7020 100644 --- a/LEGO1/mxwavepresenter.h +++ b/LEGO1/mxwavepresenter.h @@ -8,6 +8,9 @@ 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); // SIZE 0x6c }; diff --git a/LEGO1/pizzeria.h b/LEGO1/pizzeria.h index 5e67fd52..aa673285 100644 --- a/LEGO1/pizzeria.h +++ b/LEGO1/pizzeria.h @@ -8,6 +8,8 @@ class Pizzeria : public IsleActor public: Pizzeria(); + virtual int FUN_10017a50(int param_1); // Return is unknown 4-byte value + // SIZE 0x84 }; diff --git a/LEGO1/racecar.cpp b/LEGO1/racecar.cpp index 265fd18e..a7f255c3 100644 --- a/LEGO1/racecar.cpp +++ b/LEGO1/racecar.cpp @@ -4,4 +4,10 @@ RaceCar::RaceCar() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x10028420 +RaceCar::~RaceCar() +{ + // TODO +} diff --git a/LEGO1/racecar.h b/LEGO1/racecar.h index 9ca8d819..393477a7 100644 --- a/LEGO1/racecar.h +++ b/LEGO1/racecar.h @@ -7,6 +7,7 @@ class RaceCar : public IslePathActor { public: RaceCar(); + virtual ~RaceCar(); // vtable+0x0 // VTABLE 0x100d6918 // SIZE 0x diff --git a/LEGO1/radio.cpp b/LEGO1/radio.cpp new file mode 100644 index 00000000..db9d9167 --- /dev/null +++ b/LEGO1/radio.cpp @@ -0,0 +1,7 @@ +#include "radio.h" + +// OFFSET: LEGO1 0x1002c990 +Radio::~Radio() +{ + // TODO +} \ No newline at end of file diff --git a/LEGO1/radio.h b/LEGO1/radio.h index 8f294ee6..5a8d6f02 100644 --- a/LEGO1/radio.h +++ b/LEGO1/radio.h @@ -5,6 +5,9 @@ class Radio : public MxCore { +public: + virtual ~Radio(); + // VTABLE 0x100d6d10 }; diff --git a/LEGO1/registrationbook.cpp b/LEGO1/registrationbook.cpp index 8e6ff8b6..32c3273f 100644 --- a/LEGO1/registrationbook.cpp +++ b/LEGO1/registrationbook.cpp @@ -4,4 +4,18 @@ RegistrationBook::RegistrationBook() { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x10076f50 +RegistrationBook::~RegistrationBook() +{ + // TODO +} + +// OFFSET: LEGO1 0x100770e0 +long RegistrationBook::Notify(MxParam &p) +{ + // TODO + + return 0; +} diff --git a/LEGO1/registrationbook.h b/LEGO1/registrationbook.h index c55051bb..8462ede4 100644 --- a/LEGO1/registrationbook.h +++ b/LEGO1/registrationbook.h @@ -7,8 +7,10 @@ class RegistrationBook : public LegoWorld { public: RegistrationBook(); + virtual ~RegistrationBook(); // vtable+0x0 - void FUN_10078180(char param_1); + virtual long Notify(MxParam &p); // vtable+0x4 + virtual void FUN_10078180(char param_1); // vtable+0x68 // VTABLE 0x100d9928 }; diff --git a/LEGO1/skateboard.h b/LEGO1/skateboard.h index 9afc4eaf..e5ca1758 100644 --- a/LEGO1/skateboard.h +++ b/LEGO1/skateboard.h @@ -7,6 +7,10 @@ class SkateBoard : public IslePathActor { public: SkateBoard(); + + virtual int __fastcall FUN_100100e0(int* param_1); // Return is undefined 4-byte value + + // VTABLE 0x100d55f0 }; #endif // SKATEBOARD_H diff --git a/LEGO1/towtrack.h b/LEGO1/towtrack.h index da04fb0c..412a3673 100644 --- a/LEGO1/towtrack.h +++ b/LEGO1/towtrack.h @@ -8,6 +8,8 @@ class TowTrack : public IslePathActor public: TowTrack(); + virtual void FUN_1004d8f0(int* param_1); // vtable+0xe4 + // VTABLE 0x100d7ee0 // SIZE 0x180 };