From f4ab226946bfc7c670868d37adaf1326201acfbf Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Sat, 9 Nov 2024 12:03:01 -0500 Subject: [PATCH] Implement Doors::VTable0x94 (#1136) * Implement Doors::VTable0x94 * Match function --------- Co-authored-by: Christian Semmler --- LEGO1/lego/legoomni/include/doors.h | 10 +++++----- LEGO1/lego/legoomni/src/actors/doors.cpp | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/LEGO1/lego/legoomni/include/doors.h b/LEGO1/lego/legoomni/include/doors.h index 527d1de1..83c551b0 100644 --- a/LEGO1/lego/legoomni/include/doors.h +++ b/LEGO1/lego/legoomni/include/doors.h @@ -7,7 +7,7 @@ // SIZE 0x1f8 class Doors : public LegoPathActor { public: - Doors() : m_unk0x154(0), m_unk0x15c(0), m_unk0x160(0), m_unk0x1f4(0) {} + Doors() : m_unk0x154(0), m_unk0x15c(NULL), m_unk0x160(NULL), m_unk0x1f4(0) {} // FUNCTION: LEGO1 0x1000e430 const char* ClassName() const override // vtable+0x0c @@ -31,12 +31,12 @@ public: private: undefined4 m_unk0x154; // 0x154 - undefined4 m_unk0x158; // 0x158 - undefined4 m_unk0x15c; // 0x15c - undefined4 m_unk0x160; // 0x160 + MxFloat m_unk0x158; // 0x158 + Matrix4* m_unk0x15c; // 0x15c + Matrix4* m_unk0x160; // 0x160 MxMatrix m_unk0x164; // 0x164 MxMatrix m_unk0x1ac; // 0x1ac - undefined4 m_unk0x1f4; // 0x1f4 + MxFloat m_unk0x1f4; // 0x1f4 }; #endif // DOORS_H diff --git a/LEGO1/lego/legoomni/src/actors/doors.cpp b/LEGO1/lego/legoomni/src/actors/doors.cpp index d4aedd7c..2ac676b3 100644 --- a/LEGO1/lego/legoomni/src/actors/doors.cpp +++ b/LEGO1/lego/legoomni/src/actors/doors.cpp @@ -1,12 +1,21 @@ #include "doors.h" +#include "mxmisc.h" +#include "mxtimer.h" + DECOMP_SIZE_ASSERT(Doors, 0x1f8) -// STUB: LEGO1 0x10066100 +// FUNCTION: LEGO1 0x10066100 MxResult Doors::VTable0x94(LegoPathActor* p_actor, MxBool p_bool) { - // TODO - return 0; + if (m_unk0x154 == 1) { + m_unk0x154 = 2; + m_unk0x158 = Timer()->GetTime(); + m_unk0x164 = m_unk0x15c[2]; + m_unk0x1ac = m_unk0x160[2]; + } + + return m_unk0x1f4 < 0.001 ? SUCCESS : FAILURE; } // STUB: LEGO1 0x10066250