LegoActor implementation (#253)

* LegoActor

* LegoEntity

* Replace float with MxFloat

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha 2023-10-30 09:15:43 -04:00 committed by GitHub
parent f4646a7075
commit 787d932825
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 31 deletions

View file

@ -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;
}

View file

@ -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

View file

@ -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);
}
}

View file

@ -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