From 2e971d0e0c319cefad3ed83df7c60ea33b77ab18 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 24 Nov 2023 07:08:51 -0500 Subject: [PATCH] Fix it all --- LEGO1/legorace.cpp | 29 ++++++++++++++++------------- LEGO1/legorace.h | 21 ++++++++++----------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/LEGO1/legorace.cpp b/LEGO1/legorace.cpp index 3eaf56aa..75fbf66e 100644 --- a/LEGO1/legorace.cpp +++ b/LEGO1/legorace.cpp @@ -1,25 +1,23 @@ #include "legorace.h" +#include "mxnotificationmanager.h" + DECOMP_SIZE_ASSERT(LegoRace, 0x144) -#include "mxnotificationmanager.h" -#include "mxomni.h" - // OFFSET: LEGO1 0x1000dab0 -undefined4 LegoRace::vtable0x78(void) +undefined4 LegoRace::VTable0x78(undefined4) { return 0; } // OFFSET: LEGO1 0x1000dac0 STUB -void LegoRace::vtable0x7c() +void LegoRace::VTable0x7c(undefined4, undefined4) { // TODO - return; } // OFFSET: LEGO1 0x1000dae0 -MxBool LegoRace::vtable0x5c() +MxBool LegoRace::VTable0x5c() { return TRUE; } @@ -46,23 +44,30 @@ LegoRace::LegoRace() } // OFFSET: LEGO1 0x10015b70 -undefined4 LegoRace::vtable0x70() +undefined4 LegoRace::VTable0x70(undefined4) { return 0; } // OFFSET: LEGO1 0x10015b80 -undefined4 LegoRace::vtable0x74() +undefined4 LegoRace::VTable0x74(undefined4) { return 0; } // OFFSET: LEGO1 0x10015b90 -MxBool LegoRace::vtable0x64() +MxBool LegoRace::VTable0x64() { return FALSE; } +// OFFSET: LEGO1 0x10015ce0 STUB +MxResult LegoRace::Create(MxDSObject& p_dsObject) +{ + // TODO + return SUCCESS; +} + // OFFSET: LEGO1 0x10015d40 STUB LegoRace::~LegoRace() { @@ -73,13 +78,11 @@ LegoRace::~LegoRace() MxLong LegoRace::Notify(MxParam& p) { // TODO - return 0; } // OFFSET: LEGO1 0x10015ed0 STUB -void LegoRace::vtable0x68(MxBool p_add) +void LegoRace::VTable0x68(MxBool p_add) { // TODO - return; } diff --git a/LEGO1/legorace.h b/LEGO1/legorace.h index 8a8b42c0..935baf09 100644 --- a/LEGO1/legorace.h +++ b/LEGO1/legorace.h @@ -6,6 +6,7 @@ #include "mxtypes.h" // VTABLE 0x100d5db0 +// SIZE 0x144 class LegoRace : public LegoWorld { public: LegoRace(); @@ -26,18 +27,16 @@ class LegoRace : public LegoWorld { return !strcmp(name, LegoRace::ClassName()) || LegoWorld::IsA(name); } - // FIXME: Something is wrong here that is breaking the linking - // virtual MxS32 vtable0x18(int) override; // vtable+0x18 // FIXME: should be virtual MxResult Create(MxDSObject& - // p_dsObject) override; // vtable+0x18 + virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18 + virtual MxBool VTable0x5c() override; // vtable+0x5c + virtual MxBool VTable0x64() override; // vtable+0x64 + virtual void VTable0x68(MxBool p_add) override; // vtable+0x68 + virtual undefined4 VTable0x6c(undefined4) = 0; // vtable+0x6c + virtual undefined4 VTable0x70(undefined4); // vtable+0x70 + virtual undefined4 VTable0x74(undefined4); // vtable+0x74 + virtual undefined4 VTable0x78(undefined4); // vtable+0x78 + virtual void VTable0x7c(undefined4, undefined4); // vtable+0x7c - virtual MxBool vtable0x5c() override; // vtable+0x5c - virtual MxBool vtable0x64() override; // vtable+0x64 - virtual void vtable0x68(MxBool p_add) override; // vtable+0x68 - - virtual undefined4 vtable0x70(); // vtable+0x70 - virtual undefined4 vtable0x74(); // vtable+0x74 - virtual undefined4 vtable0x78(); // vtable+0x78 - virtual void vtable0x7c(); // vtable+0x7c private: undefined4 m_unkf8; // 0xf8 undefined4 m_unkfc; // 0xfc