mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 09:38:14 -05:00
🍕 (#79)
* start pizza * Add some pizza vtable functions (they are stubs at the moment) Unknown parameter types, likely either Pizzeria or PizzaMissionState. * Pizza: Add/update functions as according to MxCore inheritance IsleActor::Notify needs to be stubbed --------- Co-authored-by: Kai Kaufman <ktkaufman@wpi.edu> * match pizza destructor * Update pizza members * add size asserts --------- Co-authored-by: Kai Kaufman <ktkaufman@wpi.edu> Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
This commit is contained in:
parent
fa5417f58a
commit
ac89815663
6 changed files with 61 additions and 4 deletions
|
@ -46,6 +46,7 @@ add_library(lego1 SHARED
|
||||||
LEGO1/jukeboxstate.cpp
|
LEGO1/jukeboxstate.cpp
|
||||||
LEGO1/legoact2state.cpp
|
LEGO1/legoact2state.cpp
|
||||||
LEGO1/legoactioncontrolpresenter.cpp
|
LEGO1/legoactioncontrolpresenter.cpp
|
||||||
|
LEGO1/legoactor.cpp
|
||||||
LEGO1/legoanimactor.cpp
|
LEGO1/legoanimactor.cpp
|
||||||
LEGO1/legoanimationmanager.cpp
|
LEGO1/legoanimationmanager.cpp
|
||||||
LEGO1/legoanimmmpresenter.cpp
|
LEGO1/legoanimmmpresenter.cpp
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
#include "isleactor.h"
|
#include "isleactor.h"
|
||||||
|
|
||||||
|
// NOTE: This is copied from base class LegoActor. IsleActor may in fact be larger but we don't know yet.
|
||||||
|
DECOMP_SIZE_ASSERT(IsleActor, 0x78)
|
||||||
|
|
3
LEGO1/legoactor.cpp
Normal file
3
LEGO1/legoactor.cpp
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#include "legoactor.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(LegoActor, 0x78)
|
|
@ -1,6 +1,7 @@
|
||||||
#ifndef LEGOACTOR_H
|
#ifndef LEGOACTOR_H
|
||||||
#define LEGOACTOR_H
|
#define LEGOACTOR_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
#include "legoentity.h"
|
#include "legoentity.h"
|
||||||
|
|
||||||
// VTABLE 0x100d6d68
|
// VTABLE 0x100d6d68
|
||||||
|
@ -20,6 +21,10 @@ class LegoActor : public LegoEntity
|
||||||
{
|
{
|
||||||
return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name);
|
return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined unk04_[0x68];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOACTOR_H
|
#endif // LEGOACTOR_H
|
||||||
|
|
|
@ -1,13 +1,30 @@
|
||||||
#include "pizza.h"
|
#include "pizza.h"
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10037ef0 STUB
|
#include "decomp.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(Pizza, 0x9c);
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x10037ef0
|
||||||
Pizza::Pizza()
|
Pizza::Pizza()
|
||||||
{
|
{
|
||||||
// TODO
|
// FIXME: This inherits from LegoActor, probably why this isn't matching
|
||||||
|
this->m_unk80 = 0;
|
||||||
|
this->m_unk84 = 0;
|
||||||
|
this->m_unk88 = 0;
|
||||||
|
this->m_unk8c = -1;
|
||||||
|
this->m_unk98 = 0;
|
||||||
|
this->m_unk90 = 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10038100 STUB
|
// OFFSET: LEGO1 0x10038100
|
||||||
Pizza::~Pizza()
|
Pizza::~Pizza()
|
||||||
{
|
{
|
||||||
// TODO
|
TickleManager()->Unregister(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100388a0
|
||||||
|
MxResult Pizza::Tickle()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
#define PIZZA_H
|
#define PIZZA_H
|
||||||
|
|
||||||
#include "isleactor.h"
|
#include "isleactor.h"
|
||||||
|
#include "mxcore.h"
|
||||||
|
#include "mxomni.h"
|
||||||
|
#include "mxticklemanager.h"
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
// VTABLE 0x100d7380
|
// VTABLE 0x100d7380
|
||||||
// SIZE 0x9c
|
// SIZE 0x9c
|
||||||
|
@ -11,6 +15,30 @@ class Pizza : public IsleActor
|
||||||
Pizza();
|
Pizza();
|
||||||
virtual ~Pizza() override;
|
virtual ~Pizza() override;
|
||||||
|
|
||||||
|
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:
|
||||||
|
MxS32 m_unk78;
|
||||||
|
MxS32 m_unk7c;
|
||||||
|
MxS32 m_unk80;
|
||||||
|
MxS32 m_unk84;
|
||||||
|
MxS32 m_unk88;
|
||||||
|
MxS32 m_unk8c;
|
||||||
|
MxU32 m_unk90;
|
||||||
|
MxS32 m_unk94;
|
||||||
|
MxS32 m_unk98;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PIZZA_H
|
#endif // PIZZA_H
|
||||||
|
|
Loading…
Reference in a new issue