diff --git a/LEGO1/lego/legoomni/include/pizza.h b/LEGO1/lego/legoomni/include/pizza.h index 2ba5e655..7884334d 100644 --- a/LEGO1/lego/legoomni/include/pizza.h +++ b/LEGO1/lego/legoomni/include/pizza.h @@ -3,7 +3,6 @@ #include "decomp.h" #include "isleactor.h" -#include "mxactionnotificationparam.h" // VTABLE: LEGO1 0x100d7380 // SIZE 0x9c @@ -27,29 +26,23 @@ class Pizza : public IsleActor { return !strcmp(p_name, Pizza::ClassName()) || IsleActor::IsA(p_name); } - MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 - - // STUB: LEGO1 0x100383f0 - undefined4 VTable0x68() override { return 0; } // vtable+0x68 - - // STUB: LEGO1 0x10038b10 - undefined4 HandleEndAction(MxEndActionNotificationParam&) override { return 0; } // vtable+0x74 - - // STUB: LEGO1 0x100384f0 - undefined4 VTable0x80(MxParam&) override { return 0; } // vtable+0x80 + MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 + undefined4 VTable0x68() override; // vtable+0x68 + undefined4 HandleEndAction(MxEndActionNotificationParam&) override; // vtable+0x74 + undefined4 VTable0x80(MxParam&) override; // vtable+0x80 // SYNTHETIC: LEGO1 0x100380e0 // Pizza::`scalar deleting destructor' private: - undefined4 m_unk0x7c; - undefined4 m_unk0x80; - undefined4 m_unk0x84; - undefined4 m_unk0x88; - undefined4 m_unk0x8c; - undefined4 m_unk0x90; - undefined4 m_unk0x94; - undefined m_unk0x98; + undefined4 m_unk0x7c; // 0x7c + undefined4 m_unk0x80; // 0x80 + undefined4 m_unk0x84; // 0x84 + undefined4 m_unk0x88; // 0x88 + undefined4 m_unk0x8c; // 0x8c + undefined4 m_unk0x90; // 0x90 + undefined4 m_unk0x94; // 0x94 + undefined m_unk0x98; // 0x98 }; #endif // PIZZA_H diff --git a/LEGO1/lego/legoomni/include/pizzeria.h b/LEGO1/lego/legoomni/include/pizzeria.h index 422b3a8a..e4de7b6c 100644 --- a/LEGO1/lego/legoomni/include/pizzeria.h +++ b/LEGO1/lego/legoomni/include/pizzeria.h @@ -24,8 +24,7 @@ class Pizzeria : public IsleActor { } MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 - - undefined4 VTable0x68() override; // vtable+0x68 + undefined4 VTable0x68() override; // vtable+0x68 // SYNTHETIC: LEGO1 0x1000e8d0 // Pizzeria::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/src/actors/isleactor.cpp b/LEGO1/lego/legoomni/src/actors/isleactor.cpp index faea5357..7d8dae64 100644 --- a/LEGO1/lego/legoomni/src/actors/isleactor.cpp +++ b/LEGO1/lego/legoomni/src/actors/isleactor.cpp @@ -15,10 +15,12 @@ MxResult IsleActor::Create(MxDSAction& p_dsAction) if (ret == SUCCESS) { m_world = CurrentWorld(); + if (!m_world) { ret = FAILURE; } } + return ret; } @@ -29,25 +31,25 @@ MxLong IsleActor::Notify(MxParam& p_param) switch (((MxNotificationParam&) p_param).GetNotification()) { case c_notificationType0: - result = this->VTable0x6c(); + result = VTable0x6c(); break; case c_notificationEndAction: - result = this->HandleEndAction((MxEndActionNotificationParam&) p_param); + result = HandleEndAction((MxEndActionNotificationParam&) p_param); break; case c_notificationButtonUp: - result = this->HandleButtonUp((MxNotificationParam&) p_param); + result = HandleButtonUp((MxNotificationParam&) p_param); break; case c_notificationButtonDown: - result = this->HandleButtonDown((MxNotificationParam&) p_param); + result = HandleButtonDown((MxNotificationParam&) p_param); break; case c_notificationType11: - result = this->VTable0x68(); + result = VTable0x68(); break; case c_notificationType18: - result = this->VTable0x70(); + result = VTable0x70(); break; case c_notificationType19: - result = this->VTable0x80((MxParam&) p_param); + result = VTable0x80(p_param); break; } diff --git a/LEGO1/lego/legoomni/src/actors/pizza.cpp b/LEGO1/lego/legoomni/src/actors/pizza.cpp index e21effe1..6a16c580 100644 --- a/LEGO1/lego/legoomni/src/actors/pizza.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizza.cpp @@ -30,9 +30,30 @@ MxResult Pizza::Create(MxDSAction& p_dsAction) return SUCCESS; } +// STUB: LEGO1 0x100383f0 +undefined4 Pizza::VTable0x68() +{ + // TODO + return 0; +} + +// STUB: LEGO1 0x100384f0 +undefined4 Pizza::VTable0x80(MxParam&) +{ + // TODO + return 0; +} + // STUB: LEGO1 0x100388a0 MxResult Pizza::Tickle() { // TODO return SUCCESS; } + +// STUB: LEGO1 0x10038b10 +undefined4 Pizza::HandleEndAction(MxEndActionNotificationParam&) +{ + // TODO + return 0; +}