isle/LEGO1/mxsmkpresenter.h
Joshua Peisach 22ac0b9296
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>
2023-11-04 14:47:35 +01:00

62 lines
1.4 KiB
C++

#ifndef MXSMKPRESENTER_H
#define MXSMKPRESENTER_H
#include "decomp.h"
#include "mxvideopresenter.h"
#include <smk.h>
// VTABLE 0x100dc348
// SIZE 0x720
class MxSmkPresenter : public MxVideoPresenter {
public:
MxSmkPresenter();
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 VTable0x5c(undefined4 p_unknown1) override;
virtual void VTable0x60() override;
virtual void VTable0x68(undefined4 p_unknown1) override; // vtable+0x68
virtual void VTable0x70() override;
virtual MxU32 VTable0x88();
struct MxSmack {
Smack m_smack;
// Unknown for the time being. Not an immediately
// recognizable part of the SMK standard...
undefined m_unk0x3f4[784];
undefined4* m_unk0x6a0;
undefined4* m_unk0x6a4;
undefined4* m_unk0x6a8;
undefined4* m_unk0x6ac;
undefined4* m_unk0x6b0;
undefined4* m_unk0x6b4;
};
MxSmack m_mxSmack;
undefined4 m_unk0x71c;
private:
void Init();
void Destroy(MxBool p_fromDestructor);
// This should most likely be in a separate translation unit
static void FUN_100c5d40(MxSmack* p_mxSmack);
};
#endif // MXSMKPRESENTER_H