diff --git a/LEGO1/legoactor.cpp b/LEGO1/legoactor.cpp index ace8a47c..31c6da6f 100644 --- a/LEGO1/legoactor.cpp +++ b/LEGO1/legoactor.cpp @@ -3,43 +3,49 @@ DECOMP_SIZE_ASSERT(LegoActor, 0x78) // Probably in header -// OFFSET: LEGO1 0x10002cc0 STUB -void LegoActor::VTable0x50() +// OFFSET: LEGO1 0x10002cc0 +MxFloat LegoActor::VTable0x50() { - // TODO + return m_unk68; } -// OFFSET: LEGO1 0x10002cd0 STUB -void LegoActor::VTable0x54() +// OFFSET: LEGO1 0x10002cd0 +void LegoActor::VTable0x54(MxFloat p_unk) { - // TODO + m_unk68 = p_unk; } -// OFFSET: LEGO1 0x10002ce0 STUB -void LegoActor::VTable0x58() +// OFFSET: LEGO1 0x10002ce0 +void LegoActor::VTable0x58(MxFloat p_unk) { - // TODO + m_unk70 = p_unk; } -// OFFSET: LEGO1 0x10002cf0 STUB -void LegoActor::VTable0x5c() +// OFFSET: LEGO1 0x10002cf0 +MxFloat LegoActor::VTable0x5c() { - // TODO + return m_unk70; } -// OFFSET: LEGO1 0x10002d00 STUB -void LegoActor::VTable0x60() +// OFFSET: LEGO1 0x10002d00 +undefined LegoActor::VTable0x60() { - // TODO + return m_unk74; } -// OFFSET: LEGO1 0x10002d10 STUB -void LegoActor::VTable0x64() +// OFFSET: LEGO1 0x10002d10 +void LegoActor::VTable0x64(undefined p_unk) { - // TODO + m_unk74 = p_unk; } // End header +// OFFSET: LEGO1 0x1002d110 LegoActor::LegoActor() { + m_unk68 = 0.0f; + m_unk6c = 0; + m_unk70 = 0.0f; + m_unk10 = 0; + m_unk74 = 0; } diff --git a/LEGO1/legoactor.h b/LEGO1/legoactor.h index 4c943cf6..f4096b06 100644 --- a/LEGO1/legoactor.h +++ b/LEGO1/legoactor.h @@ -23,15 +23,18 @@ public: return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name); } - virtual void VTable0x50(); // vtable+0x50 - virtual void VTable0x54(); // vtable+0x54 - virtual void VTable0x58(); // vtable+0x58 - virtual void VTable0x5c(); // vtable+0x5c - virtual void VTable0x60(); // vtable+0x60 - virtual void VTable0x64(); // vtable+0x64 + virtual MxFloat VTable0x50(); // vtable+0x50 + virtual void VTable0x54(MxFloat p_unk); // vtable+0x54 + virtual void VTable0x58(MxFloat p_unk); // vtable+0x58 + virtual MxFloat VTable0x5c(); // vtable+0x5c + virtual undefined VTable0x60(); // vtable+0x60 + virtual void VTable0x64(undefined p_unk); // vtable+0x64 private: - undefined unk68[0x10]; + MxFloat m_unk68; + undefined4 m_unk6c; + MxFloat m_unk70; + undefined m_unk74; }; #endif // LEGOACTOR_H diff --git a/LEGO1/legoentity.cpp b/LEGO1/legoentity.cpp index 19820154..2a9b4b76 100644 --- a/LEGO1/legoentity.cpp +++ b/LEGO1/legoentity.cpp @@ -3,6 +3,7 @@ #include "define.h" #include "legoomni.h" #include "legoutil.h" +#include "legoworld.h" DECOMP_SIZE_ASSERT(LegoEntity, 0x68) @@ -60,12 +61,12 @@ void LegoEntity::Destroy(MxBool p_fromDestructor) Init(); } -// OFFSET: LEGO1 0x10010880 STUB +// OFFSET: LEGO1 0x10010880 void LegoEntity::SetWorld() { LegoWorld* world = GetCurrentWorld(); if (world != NULL && world != (LegoWorld*) this) { - // TODO: world->AddEntity(this); + world->VTable0x58(this); } } diff --git a/LEGO1/legoentity.h b/LEGO1/legoentity.h index 1da99f3b..c0a16c32 100644 --- a/LEGO1/legoentity.h +++ b/LEGO1/legoentity.h @@ -13,10 +13,7 @@ class LegoEntity : public MxEntity { public: // Inlined at 0x100853f7 - inline LegoEntity() - { - // TODO - } + inline LegoEntity() { Init(); } __declspec(dllexport) virtual ~LegoEntity() override; // vtable+0x0