diff --git a/CMakeLists.txt b/CMakeLists.txt index fa4de1e5..4bb6398b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,7 @@ add_library(lego1 SHARED LEGO1/jukeboxentity.cpp LEGO1/jukeboxstate.cpp LEGO1/legoact2state.cpp + LEGO1/legoactor.cpp LEGO1/legoactioncontrolpresenter.cpp LEGO1/legoanimactor.cpp LEGO1/legoanimationmanager.cpp diff --git a/LEGO1/islepathactor.cpp b/LEGO1/islepathactor.cpp index d6386044..0024b4bc 100644 --- a/LEGO1/islepathactor.cpp +++ b/LEGO1/islepathactor.cpp @@ -1,5 +1,7 @@ #include "islepathactor.h" +DECOMP_SIZE_ASSERT(IslePathActor, 0x160) + // OFFSET: LEGO1 0x1001a200 IslePathActor::IslePathActor() { @@ -12,4 +14,4 @@ IslePathActor::IslePathActor() // OFFSET: LEGO1 0x10002e10 IslePathActor::~IslePathActor() { -} \ No newline at end of file +} diff --git a/LEGO1/islepathactor.h b/LEGO1/islepathactor.h index a21b4195..f4574355 100644 --- a/LEGO1/islepathactor.h +++ b/LEGO1/islepathactor.h @@ -6,7 +6,7 @@ #include "mxtypes.h" // VTABLE 0x100d4398 -// SIZE >= 0x230 +// SIZE 0x160 class IslePathActor : public LegoPathActor { public: diff --git a/LEGO1/legoactor.cpp b/LEGO1/legoactor.cpp new file mode 100644 index 00000000..c26cc1fc --- /dev/null +++ b/LEGO1/legoactor.cpp @@ -0,0 +1,3 @@ +#include "legoactor.h" + +DECOMP_SIZE_ASSERT(LegoActor, 0x78) diff --git a/LEGO1/legoactor.h b/LEGO1/legoactor.h index 9b23e943..b35df90b 100644 --- a/LEGO1/legoactor.h +++ b/LEGO1/legoactor.h @@ -20,6 +20,10 @@ class LegoActor : public LegoEntity { return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name); } + +private: + undefined unk68[0x10]; + }; #endif // LEGOACTOR_H diff --git a/LEGO1/legoentity.cpp b/LEGO1/legoentity.cpp index b79bc587..b8ed69f9 100644 --- a/LEGO1/legoentity.cpp +++ b/LEGO1/legoentity.cpp @@ -1,5 +1,7 @@ #include "legoentity.h" +DECOMP_SIZE_ASSERT(LegoEntity, 0x68) + // OFFSET: LEGO1 0x1000c290 LegoEntity::~LegoEntity() { diff --git a/LEGO1/legoentity.h b/LEGO1/legoentity.h index 46aea940..fdfe997f 100644 --- a/LEGO1/legoentity.h +++ b/LEGO1/legoentity.h @@ -4,6 +4,7 @@ #include "mxentity.h" // VTABLE 0x100d4858 +// SIZE 0x68 (probably) class LegoEntity : public MxEntity { public: diff --git a/LEGO1/legopathactor.cpp b/LEGO1/legopathactor.cpp index 336cdc13..f1c39b82 100644 --- a/LEGO1/legopathactor.cpp +++ b/LEGO1/legopathactor.cpp @@ -1,5 +1,7 @@ #include "legopathactor.h" +DECOMP_SIZE_ASSERT(LegoPathActor, 0x154) + // OFFSET: LEGO1 0x1002d700 STUB LegoPathActor::LegoPathActor() { diff --git a/LEGO1/legopathactor.h b/LEGO1/legopathactor.h index 7a2b1402..7e524b08 100644 --- a/LEGO1/legopathactor.h +++ b/LEGO1/legopathactor.h @@ -27,7 +27,9 @@ class LegoPathActor : public LegoActor } // TODO: the types. Pizza needs this as public: + undefined unk78[0xc4]; MxS32 m_unk13c; + undefined unk140[0x14]; }; #endif // LEGOPATHACTOR_H diff --git a/LEGO1/mxentity.cpp b/LEGO1/mxentity.cpp index 1b5ea84f..da536504 100644 --- a/LEGO1/mxentity.cpp +++ b/LEGO1/mxentity.cpp @@ -1,5 +1,7 @@ #include "mxentity.h" +DECOMP_SIZE_ASSERT(MxEntity, 0x68) + // OFFSET: LEGO1 0x1001d190 MxEntity::MxEntity() { @@ -9,4 +11,4 @@ MxEntity::MxEntity() // OFFSET: LEGO1 0x1000c110 MxEntity::~MxEntity() { -} \ No newline at end of file +} diff --git a/LEGO1/mxentity.h b/LEGO1/mxentity.h index a7e26e37..dc959c35 100644 --- a/LEGO1/mxentity.h +++ b/LEGO1/mxentity.h @@ -1,11 +1,13 @@ #ifndef MXENTITY_H #define MXENTITY_H +#include "decomp.h" #include "mxatomid.h" #include "mxcore.h" #include "mxtypes.h" // VTABLE 0x100d5390 +// SIZE 0x68 or less class MxEntity : public MxCore { public: @@ -27,6 +29,7 @@ class MxEntity : public MxCore private: MxS32 m_mxEntityId; // 0x8 MxAtomId m_atom; // 0xc + undefined m_unk10[0x58]; }; #endif // MXENTITY_H