mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Match LegoAnimPresenter::VTable0x88
This commit is contained in:
parent
e7d341e8bf
commit
e7777ad8de
@ -9,6 +9,7 @@ class LegoMemoryStream;
|
|||||||
class LegoAnimClass;
|
class LegoAnimClass;
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d90c8
|
// VTABLE: LEGO1 0x100d90c8
|
||||||
|
// SIZE 0xc0
|
||||||
class LegoAnimPresenter : public MxVideoPresenter {
|
class LegoAnimPresenter : public MxVideoPresenter {
|
||||||
public:
|
public:
|
||||||
LegoAnimPresenter();
|
LegoAnimPresenter();
|
||||||
@ -27,15 +28,15 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
|||||||
return !strcmp(p_name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(p_name);
|
return !strcmp(p_name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void ReadyTickle() override; // vtable+0x18
|
virtual void ReadyTickle() override; // vtable+0x18
|
||||||
virtual void StartingTickle() override; // vtable+0x1c
|
virtual void StartingTickle() override; // vtable+0x1c
|
||||||
virtual void StreamingTickle() override; // vtable+0x20
|
virtual void StreamingTickle() override; // vtable+0x20
|
||||||
virtual void ParseExtra() override; // vtable+0x30
|
virtual void ParseExtra() override; // vtable+0x30
|
||||||
virtual void Destroy() override; // vtable+0x38
|
virtual void Destroy() override; // vtable+0x38
|
||||||
virtual MxResult StartAction(MxStreamController*, MxDSAction*) override; // vtable+0x3c
|
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||||
virtual void EndAction() override; // vtable+0x40
|
virtual void EndAction() override; // vtable+0x40
|
||||||
virtual void PutFrame(); // vtable+0x6c
|
virtual void PutFrame() override; // vtable+0x6c
|
||||||
virtual MxS32 VTable0x88(MxStreamChunk* p_chunk); // vtable+0x88
|
virtual MxS32 VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
@ -58,10 +59,10 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
|||||||
undefined m_unk0x96; // 0x96
|
undefined m_unk0x96; // 0x96
|
||||||
undefined m_unk0x97; // 0x97
|
undefined m_unk0x97; // 0x97
|
||||||
undefined4 m_unk0x98; // 0x98
|
undefined4 m_unk0x98; // 0x98
|
||||||
MxS16 m_unk0x9c; // 0x9f
|
MxS16 m_unk0x9c; // 0x9c
|
||||||
undefined4 m_unk0xa0; // 0xa0
|
undefined4 m_unk0xa0; // 0xa0
|
||||||
undefined4 m_unk0xa4; // 0xa4
|
undefined4 m_unk0xa4; // 0xa4
|
||||||
Mx3DPointFloat m_vec; // 0xa8
|
Mx3DPointFloat m_unk0xa8; // 0xa8
|
||||||
undefined4 m_unk0xbc; // 0xbc
|
undefined4 m_unk0xbc; // 0xbc
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -69,35 +70,37 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
|||||||
// LegoAnimPresenter::`scalar deleting destructor'
|
// LegoAnimPresenter::`scalar deleting destructor'
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100db768
|
// VTABLE: LEGO1 0x100db768
|
||||||
|
// SIZE 0x08
|
||||||
class LegoAnimClassBase {
|
class LegoAnimClassBase {
|
||||||
public:
|
public:
|
||||||
LegoAnimClassBase();
|
LegoAnimClassBase();
|
||||||
virtual ~LegoAnimClassBase();
|
virtual ~LegoAnimClassBase();
|
||||||
|
|
||||||
virtual void VTable0x4();
|
virtual void VTable0x4(); // vtable+0x04
|
||||||
virtual void VTable0x8();
|
virtual void VTable0x8(); // vtable+0x08
|
||||||
virtual void VTable0xc();
|
virtual void VTable0xc(); // vtable+0x0c
|
||||||
|
|
||||||
undefined4 m_unk0x4;
|
undefined4 m_unk0x4; // 0x04
|
||||||
};
|
};
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10099de0
|
// SYNTHETIC: LEGO1 0x10099de0
|
||||||
// LegoAnimClassBase::`scalar deleting destructor'
|
// LegoAnimClassBase::`scalar deleting destructor'
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100db8d8
|
// VTABLE: LEGO1 0x100db8d8
|
||||||
|
// SIZE 0x18
|
||||||
class LegoAnimClass : public LegoAnimClassBase {
|
class LegoAnimClass : public LegoAnimClassBase {
|
||||||
public:
|
public:
|
||||||
LegoAnimClass();
|
LegoAnimClass();
|
||||||
virtual ~LegoAnimClass() override;
|
virtual ~LegoAnimClass() override;
|
||||||
|
|
||||||
virtual void VTable0x8() override;
|
virtual void VTable0x8() override; // vtable+0x08
|
||||||
virtual void VTable0xc() override;
|
virtual void VTable0xc() override; // vtable+0x0c
|
||||||
virtual MxResult VTable0x10(LegoMemoryStream* p_stream, MxS32);
|
virtual MxResult VTable0x10(LegoMemoryStream* p_stream, MxS32); // vtable+0x10
|
||||||
|
|
||||||
undefined4 m_unk0x8;
|
undefined4 m_unk0x8; // 0x08
|
||||||
undefined4 m_unk0xc;
|
undefined4 m_unk0xc; // 0x0c
|
||||||
undefined4 m_unk0x10;
|
undefined4 m_unk0x10; // 0x10
|
||||||
undefined4 m_unk0x14;
|
undefined4 m_unk0x14; // 0x14
|
||||||
};
|
};
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a0ba0
|
// SYNTHETIC: LEGO1 0x100a0ba0
|
||||||
|
|||||||
@ -7,7 +7,9 @@
|
|||||||
#include "mxdsanim.h"
|
#include "mxdsanim.h"
|
||||||
#include "mxstreamchunk.h"
|
#include "mxstreamchunk.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(LegoAnimPresenter, 0xc0);
|
DECOMP_SIZE_ASSERT(LegoAnimPresenter, 0xc0)
|
||||||
|
DECOMP_SIZE_ASSERT(LegoAnimClassBase, 0x08)
|
||||||
|
DECOMP_SIZE_ASSERT(LegoAnimClass, 0x18)
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10068420
|
// FUNCTION: LEGO1 0x10068420
|
||||||
LegoAnimPresenter::LegoAnimPresenter()
|
LegoAnimPresenter::LegoAnimPresenter()
|
||||||
@ -31,7 +33,7 @@ void LegoAnimPresenter::Init()
|
|||||||
m_unk0x70 = 0;
|
m_unk0x70 = 0;
|
||||||
m_unk0x78 = 0;
|
m_unk0x78 = 0;
|
||||||
m_unk0x7c = 0;
|
m_unk0x7c = 0;
|
||||||
m_vec.Clear();
|
m_unk0xa8.Clear();
|
||||||
m_unk0xa4 = 0;
|
m_unk0xa4 = 0;
|
||||||
m_currentWorld = NULL;
|
m_currentWorld = NULL;
|
||||||
m_unk0x95 = 0;
|
m_unk0x95 = 0;
|
||||||
@ -58,19 +60,21 @@ MxS32 LegoAnimPresenter::VTable0x88(MxStreamChunk* p_chunk)
|
|||||||
{
|
{
|
||||||
MxS32 result = FAILURE;
|
MxS32 result = FAILURE;
|
||||||
LegoMemoryStream stream((char*) p_chunk->GetData());
|
LegoMemoryStream stream((char*) p_chunk->GetData());
|
||||||
|
|
||||||
MxS32 magicSig;
|
MxS32 magicSig;
|
||||||
MxS32 val3;
|
|
||||||
MxS32 val2 = 0;
|
MxS32 val2 = 0;
|
||||||
|
MxS32 val3;
|
||||||
|
|
||||||
if (stream.Read(&magicSig, sizeof(MxS32)) == SUCCESS && magicSig == 0x11) {
|
if (stream.Read(&magicSig, sizeof(MxS32)) == SUCCESS && magicSig == 0x11) {
|
||||||
if (stream.Read(&m_unk0xa4, sizeof(MxU32)) == SUCCESS) {
|
if (stream.Read(&m_unk0xa4, sizeof(MxU32)) == SUCCESS) {
|
||||||
if (stream.Read(m_vec.GetX(), sizeof(float)) == SUCCESS) {
|
if (stream.Read(&m_unk0xa8[0], sizeof(float)) == SUCCESS) {
|
||||||
if (stream.Read(m_vec.GetY(), sizeof(float)) == SUCCESS) {
|
if (stream.Read(&m_unk0xa8[1], sizeof(float)) == SUCCESS) {
|
||||||
if (stream.Read(m_vec.GetZ(), sizeof(float)) == SUCCESS) {
|
if (stream.Read(&m_unk0xa8[2], sizeof(float)) == SUCCESS) {
|
||||||
if (stream.Read(&val2, sizeof(MxS32)) == SUCCESS) {
|
if (stream.Read(&val2, sizeof(MxS32)) == SUCCESS) {
|
||||||
if (stream.Read(&val3, sizeof(MxS32)) == SUCCESS) {
|
if (stream.Read(&val3, sizeof(MxS32)) == SUCCESS) {
|
||||||
m_unk0x64 = new LegoAnimClass();
|
m_unk0x64 = new LegoAnimClass();
|
||||||
if (m_unk0x64) {
|
if (m_unk0x64) {
|
||||||
if (m_unk0x64->VTable0x10(&stream, val3) == SUCCESS) {
|
if (m_unk0x64->VTable0x10(&stream, val2) == SUCCESS) {
|
||||||
result = SUCCESS;
|
result = SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,10 +31,6 @@ class Mx3DPointFloat : public Vector3 {
|
|||||||
|
|
||||||
inline void EqualsCross(Mx3DPointFloat& p_a, Mx3DPointFloat& p_b) { EqualsCrossImpl(p_a.m_data, p_b.m_data); }
|
inline void EqualsCross(Mx3DPointFloat& p_a, Mx3DPointFloat& p_b) { EqualsCrossImpl(p_a.m_data, p_b.m_data); }
|
||||||
|
|
||||||
inline float* GetX() { return &m_elements[0]; }
|
|
||||||
inline float* GetY() { return &m_elements[1]; }
|
|
||||||
inline float* GetZ() { return &m_elements[2]; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float m_elements[3];
|
float m_elements[3];
|
||||||
};
|
};
|
||||||
|
|||||||
@ -11,6 +11,7 @@ enum LookupMode {
|
|||||||
LookupMode_LowerCase2 = 3
|
LookupMode_LowerCase2 = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SIZE 0x04
|
||||||
class MxAtomId {
|
class MxAtomId {
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) MxAtomId(const char*, LookupMode);
|
__declspec(dllexport) MxAtomId(const char*, LookupMode);
|
||||||
@ -30,7 +31,7 @@ class MxAtomId {
|
|||||||
MxAtomIdCounter* GetCounter(const char*, LookupMode);
|
MxAtomIdCounter* GetCounter(const char*, LookupMode);
|
||||||
void Destroy();
|
void Destroy();
|
||||||
|
|
||||||
const char* m_internal;
|
const char* m_internal; // 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXATOMID_H
|
#endif // MXATOMID_H
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user