Add missing ClassName's and IsA's (#262)

* Add missing ClassName's and IsA's

Exceptions: LegoAnimActor as it does something weird with a call to another private/inlined function(?) and RaceStandsEntity which seems to have two vtables

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Joshua Peisach 2023-11-04 09:47:35 -04:00 committed by GitHub
parent 24e889ee3d
commit 22ac0b9296
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 119 additions and 2 deletions

View file

@ -4,6 +4,20 @@
#include "mxcore.h" #include "mxcore.h"
// VTABLE 0x100dc9a0 // VTABLE 0x100dc9a0
class MxNextActionDataStart : public MxCore {}; class MxNextActionDataStart : public MxCore {
public:
// OFFSET: LEGO1 0x100c1900
inline virtual const char* ClassName() const override // vtable+0xc
{
// 0x101025a0
return "MxNextActionDataStart";
}
// OFFSET: LEGO1 0x100c1910
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxNextActionDataStart::ClassName()) || MxCore::IsA(name);
}
};
#endif // MXNEXTACTIONDATASTART_H #endif // MXNEXTACTIONDATASTART_H

View file

@ -9,6 +9,19 @@ class MxRAMStreamProvider : public MxStreamProvider {
MxRAMStreamProvider(); MxRAMStreamProvider();
virtual ~MxRAMStreamProvider() override; virtual ~MxRAMStreamProvider() override;
// OFFSET: LEGO1 0x100d0970
inline virtual const char* ClassName() const override // vtable+0xc
{
// 0x10102864
return "MxRAMStreamProvider";
}
// OFFSET: LEGO1 0x100d0980
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxRAMStreamProvider::ClassName()) || MxStreamProvider::IsA(name);
}
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; // vtable+0x14 virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; // vtable+0x14
virtual MxU32 GetFileSize() override; // vtable+0x18 virtual MxU32 GetFileSize() override; // vtable+0x18
virtual MxU32 GetStreamBuffersNum() override; // vtable+0x1c virtual MxU32 GetStreamBuffersNum() override; // vtable+0x1c

View file

@ -13,6 +13,19 @@ class MxSmkPresenter : public MxVideoPresenter {
MxSmkPresenter(); MxSmkPresenter();
virtual ~MxSmkPresenter() override; virtual ~MxSmkPresenter() override;
// OFFSET: LEGO1 0x100b3730
inline virtual const char* ClassName() const override // vtable+0xc
{
// 0x10101e38
return "MxSmkPresenter";
}
// OFFSET: LEGO1 0x100b3740
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxSmkPresenter::ClassName()) || MxVideoPresenter::IsA(name);
}
virtual void Destroy() override; virtual void Destroy() override;
virtual void VTable0x5c(undefined4 p_unknown1) override; virtual void VTable0x5c(undefined4 p_unknown1) override;
virtual void VTable0x60() override; virtual void VTable0x60() override;

View file

@ -8,6 +8,19 @@
// SIZE 0x6c // SIZE 0x6c
class MxStillPresenter : public MxVideoPresenter { class MxStillPresenter : public MxVideoPresenter {
public: public:
// OFFSET: LEGO1 0x100435c0
inline virtual const char* ClassName() const override // vtable+0xc
{
// 0x100f0184
return "MxStillPresenter";
}
// OFFSET: LEGO1 0x100435d0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxStillPresenter::ClassName()) || MxVideoPresenter::IsA(name);
}
virtual void ParseExtra() override; // vtable+0x30 virtual void ParseExtra() override; // vtable+0x30
MxStillPresenter() { m_unk68 = 0; } MxStillPresenter() { m_unk68 = 0; }

View file

@ -4,6 +4,19 @@
#include "mxdschunk.h" #include "mxdschunk.h"
// VTABLE 0x100dc2a8 // VTABLE 0x100dc2a8
class MxStreamChunk : public MxDSChunk {}; class MxStreamChunk : public MxDSChunk {
// OFFSET: LEGO1 0x100b1fe0
inline virtual const char* ClassName() const override // vtable+0xc
{
// 0x10101e5c
return "MxStreamChunk";
}
// OFFSET: LEGO1 0x100b1ff0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxStreamChunk::ClassName()) || MxDSChunk::IsA(name);
}
};
#endif // MXSTREAMCHUNK_H #endif // MXSTREAMCHUNK_H

View file

@ -7,6 +7,18 @@
// SIZE 0x84 // SIZE 0x84
class Pizzeria : public IsleActor { class Pizzeria : public IsleActor {
public: public:
// OFFSET: LEGO1 0x1000e780
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x100f0380
return "Pizzeria";
}
// OFFSET: LEGO1 0x1000e790
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Pizzeria::ClassName()) || IsleActor::IsA(name);
}
}; };
#endif // PIZZERIASTATE_H #endif // PIZZERIASTATE_H

View file

@ -8,6 +8,19 @@
class PizzeriaState : public LegoState { class PizzeriaState : public LegoState {
public: public:
PizzeriaState(); PizzeriaState();
// OFFSET: LEGO1 0x10017c20
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x100f0370
return "PizzeriaState";
}
// OFFSET: LEGO1 0x10017c30
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, PizzeriaState::ClassName()) || LegoState::IsA(name);
}
}; };
#endif // PIZZERIASTATE_H #endif // PIZZERIASTATE_H

View file

@ -7,6 +7,19 @@
class Radio : public MxCore { class Radio : public MxCore {
public: public:
virtual ~Radio() override; virtual ~Radio() override;
// OFFSET: LEGO1 0x1002c8e0
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x100f328c
return "Radio";
}
// OFFSET: LEGO1 0x1002c8f0
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, Radio::ClassName()) || MxCore::IsA(name);
}
}; };
#endif // RADIO_H #endif // RADIO_H

View file

@ -11,6 +11,19 @@ class RegistrationBook : public LegoWorld {
virtual ~RegistrationBook() override; // vtable+0x0 virtual ~RegistrationBook() override; // vtable+0x0
virtual MxLong Notify(MxParam& p) override; // vtable+0x4 virtual MxLong Notify(MxParam& p) override; // vtable+0x4
// OFFSET: LEGO1 0x10076e10
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x100f04c8
return "RegistrationBook";
}
// OFFSET: LEGO1 0x10076e20
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, RegistrationBook::ClassName()) || LegoWorld::IsA(name);
}
}; };
#endif // REGISTRATIONBOOK_H #endif // REGISTRATIONBOOK_H