diff --git a/LEGO1/pizza.cpp b/LEGO1/pizza.cpp index 396ce801..e21a82ea 100644 --- a/LEGO1/pizza.cpp +++ b/LEGO1/pizza.cpp @@ -13,11 +13,11 @@ Pizza::Pizza() } // OFFSET: LEGO1 0x1002c7cf STUB -Pizza* Unk1002c7b0(undefined4 p_param) -{ - // FIXME: Stub, a switch function. I think it adjusts some metadata based on a state. We'll understand this more once we get into Pizzeria - return new Pizza; -} +// MxS32 IsleActor::Notify(MxParam *) +// { +// // TODO +// return 0; +// } // OFFSET: LEGO1 0x10038100 Pizza::~Pizza() @@ -28,8 +28,8 @@ Pizza::~Pizza() // OFFSET: LEGO1 0x100388a0 STUB -Pizza* Unk100388a0(undefined4* p_param) +MxResult Pizza::Tickle() { - // FIXME: Stub, Looks like this function adjusts (or makes?) a new Pizza based on the game state, perhaps PizzaMissionState? - return new Pizza; + // TODO + return SUCCESS; } \ No newline at end of file diff --git a/LEGO1/pizza.h b/LEGO1/pizza.h index ce58923f..42638a4e 100644 --- a/LEGO1/pizza.h +++ b/LEGO1/pizza.h @@ -3,6 +3,7 @@ #include "decomp.h" #include "isleactor.h" +#include "mxcore.h" #include "mxtypes.h" // VTABLE 0x100d7380 @@ -13,7 +14,22 @@ class Pizza : public IsleActor Pizza(); virtual ~Pizza() override; - Pizza* Unk1002c7b0(undefined4 p_param); + // TODO: IsleActor::Notify + // virtual MxS32 IsleActor::Notify(MxParam *) override; // vtable+04 + virtual MxResult Tickle() override; // vtable+08 + + // OFFSET: LEGO1 0x10037f90 + inline const char *ClassName() const //vtable+0c + { + // 0x100f038c + return "Pizza"; + } + + // OFFSET: LEGO1 0x10037fa0 + inline MxBool Pizza::IsA(const char *name) const override //vtable+10 + { + return !strcmp(name, Pizza::ClassName()) || IsleActor::IsA(name); + } private: undefined4 m_unk80; undefined4 m_unk84;