LegoRace initial layout (#299)

* LegoRace initial layout

* fix function ordering

* Fix it all

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Joshua Peisach 2023-11-24 07:11:32 -05:00 committed by GitHub
parent 14f05ea823
commit a577b393bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 101 additions and 3 deletions

View file

@ -1,11 +1,73 @@
#include "legorace.h"
// OFFSET: LEGO1 0x10015aa0 STUB
LegoRace::LegoRace()
#include "mxnotificationmanager.h"
DECOMP_SIZE_ASSERT(LegoRace, 0x144)
// OFFSET: LEGO1 0x1000dab0
undefined4 LegoRace::VTable0x78(undefined4)
{
return 0;
}
// OFFSET: LEGO1 0x1000dac0 STUB
void LegoRace::VTable0x7c(undefined4, undefined4)
{
// TODO
}
// OFFSET: LEGO1 0x1000dae0
MxBool LegoRace::VTable0x5c()
{
return TRUE;
}
// OFFSET: LEGO1 0x10015aa0
LegoRace::LegoRace()
{
this->m_unkf8 = 0;
this->m_unkfc = 0;
this->m_unk100 = 0;
this->m_unk104 = 0;
this->m_unk108 = 0;
this->m_unk10c = 0;
this->m_unk140 = 0;
this->m_unk110 = 0;
this->m_unk114 = 0;
this->m_unk118 = 0;
this->m_unk128 = 0;
this->m_unk12c = 0;
this->m_unk120 = 0;
this->m_unk124 = 0;
this->m_unk11c = 0;
NotificationManager()->Register(this);
}
// OFFSET: LEGO1 0x10015b70
undefined4 LegoRace::VTable0x70(undefined4)
{
return 0;
}
// OFFSET: LEGO1 0x10015b80
undefined4 LegoRace::VTable0x74(undefined4)
{
return 0;
}
// OFFSET: LEGO1 0x10015b90
MxBool LegoRace::VTable0x64()
{
return FALSE;
}
// OFFSET: LEGO1 0x10015ce0 STUB
MxResult LegoRace::Create(MxDSObject& p_dsObject)
{
// TODO
return SUCCESS;
}
// OFFSET: LEGO1 0x10015d40 STUB
LegoRace::~LegoRace()
{
@ -16,6 +78,11 @@ LegoRace::~LegoRace()
MxLong LegoRace::Notify(MxParam& p)
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x10015ed0 STUB
void LegoRace::VTable0x68(MxBool p_add)
{
// TODO
}

View file

@ -1,9 +1,12 @@
#ifndef LEGORACE_H
#define LEGORACE_H
#include "decomp.h"
#include "legoworld.h"
#include "mxtypes.h"
// VTABLE 0x100d5db0
// SIZE 0x144
class LegoRace : public LegoWorld {
public:
LegoRace();
@ -23,6 +26,34 @@ class LegoRace : public LegoWorld {
{
return !strcmp(name, LegoRace::ClassName()) || LegoWorld::IsA(name);
}
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
private:
undefined4 m_unkf8; // 0xf8
undefined4 m_unkfc; // 0xfc
undefined4 m_unk100; // 0x100
undefined4 m_unk104; // 0x104
undefined4 m_unk108; // 0x108
undefined4 m_unk10c; // 0x10c
undefined4 m_unk110; // 0x110
undefined4 m_unk114; // 0x114
undefined4 m_unk118; // 0x118
undefined4 m_unk11c; // 0x11c
undefined4 m_unk120; // 0x120 - this may be the current vehcle (function at 0x10015880)
undefined4 m_unk124; // 0x124 - something game state
undefined4 m_unk128; // 0x128
undefined4 m_unk12c; // 0x12c
undefined4 m_unk130[4]; // unconfirmed bytes, ghidra claims these are integers
undefined4 m_unk140;
};
#endif // LEGORACE_H