Start IslePathActor (#93)

* Start IslePathActor

* Update types/add needed type in LegoPathActor for Pizza

Yes, this is a recommit because last time I pushed my cmake dir

* Fix types in  islepathactor

* Adjust variables

* add size asserts

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
This commit is contained in:
Joshua Peisach 2023-08-03 14:10:54 -04:00 committed by GitHub
parent db2b98c248
commit ff13dc691c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 46 additions and 4 deletions

View file

@ -45,6 +45,7 @@ add_library(lego1 SHARED
LEGO1/jukeboxentity.cpp LEGO1/jukeboxentity.cpp
LEGO1/jukeboxstate.cpp LEGO1/jukeboxstate.cpp
LEGO1/legoact2state.cpp LEGO1/legoact2state.cpp
LEGO1/legoactor.cpp
LEGO1/legoactioncontrolpresenter.cpp LEGO1/legoactioncontrolpresenter.cpp
LEGO1/legoactor.cpp LEGO1/legoactor.cpp
LEGO1/legoanimactor.cpp LEGO1/legoanimactor.cpp

View file

@ -1 +1,17 @@
#include "islepathactor.h" #include "islepathactor.h"
DECOMP_SIZE_ASSERT(IslePathActor, 0x160)
// OFFSET: LEGO1 0x1001a200
IslePathActor::IslePathActor()
{
this->m_pLegoWorld = NULL;
this->m_unk13c = 6.0;
this->m_unk15c = 1.0;
this->m_unk158 = 0;
}
// OFFSET: LEGO1 0x10002e10
IslePathActor::~IslePathActor()
{
}

View file

@ -2,12 +2,17 @@
#define ISLEPATHACTOR_H #define ISLEPATHACTOR_H
#include "legopathactor.h" #include "legopathactor.h"
#include "legoworld.h"
#include "mxtypes.h"
// VTABLE 0x100d4398 // VTABLE 0x100d4398
// SIZE >= 0x230 // SIZE 0x160
class IslePathActor : public LegoPathActor class IslePathActor : public LegoPathActor
{ {
public: public:
IslePathActor();
~IslePathActor();
// OFFSET: LEGO1 0x10002ea0 // OFFSET: LEGO1 0x10002ea0
inline virtual const char *ClassName() const override // vtable+0x0c inline virtual const char *ClassName() const override // vtable+0x0c
{ {
@ -20,6 +25,11 @@ class IslePathActor : public LegoPathActor
{ {
return !strcmp(name, IslePathActor::ClassName()) || LegoPathActor::IsA(name); return !strcmp(name, IslePathActor::ClassName()) || LegoPathActor::IsA(name);
} }
private:
LegoWorld* m_pLegoWorld; // 0x154
MxFloat m_unk158;
MxFloat m_unk15c;
}; };
#endif // ISLEPATHACTOR_H #endif // ISLEPATHACTOR_H

View file

@ -23,7 +23,7 @@ class LegoActor : public LegoEntity
} }
private: private:
undefined unk04_[0x68]; undefined unk68[0x10];
}; };

View file

@ -1,5 +1,7 @@
#include "legoentity.h" #include "legoentity.h"
DECOMP_SIZE_ASSERT(LegoEntity, 0x68)
// OFFSET: LEGO1 0x1000c290 // OFFSET: LEGO1 0x1000c290
LegoEntity::~LegoEntity() LegoEntity::~LegoEntity()
{ {

View file

@ -4,6 +4,7 @@
#include "mxentity.h" #include "mxentity.h"
// VTABLE 0x100d4858 // VTABLE 0x100d4858
// SIZE 0x68 (probably)
class LegoEntity : public MxEntity class LegoEntity : public MxEntity
{ {
public: public:

View file

@ -1,5 +1,7 @@
#include "legopathactor.h" #include "legopathactor.h"
DECOMP_SIZE_ASSERT(LegoPathActor, 0x154)
// OFFSET: LEGO1 0x1002d700 STUB // OFFSET: LEGO1 0x1002d700 STUB
LegoPathActor::LegoPathActor() LegoPathActor::LegoPathActor()
{ {

View file

@ -2,6 +2,7 @@
#define LEGOPATHACTOR_H #define LEGOPATHACTOR_H
#include "legoactor.h" #include "legoactor.h"
#include "mxtypes.h"
// VTABLE 0x100d6e28 // VTABLE 0x100d6e28
// SIZE 0x154 (from inlined construction at 0x1000a346) // SIZE 0x154 (from inlined construction at 0x1000a346)
@ -25,6 +26,10 @@ class LegoPathActor : public LegoActor
return !strcmp(name, LegoPathActor::ClassName()) || LegoActor::IsA(name); return !strcmp(name, LegoPathActor::ClassName()) || LegoActor::IsA(name);
} }
// TODO: the types. Pizza needs this as public:
undefined unk78[0xc4];
MxS32 m_unk13c;
undefined unk140[0x14];
}; };
#endif // LEGOPATHACTOR_H #endif // LEGOPATHACTOR_H

View file

@ -1,5 +1,7 @@
#include "mxentity.h" #include "mxentity.h"
DECOMP_SIZE_ASSERT(MxEntity, 0x68)
// OFFSET: LEGO1 0x1001d190 // OFFSET: LEGO1 0x1001d190
MxEntity::MxEntity() MxEntity::MxEntity()
{ {
@ -9,4 +11,4 @@ MxEntity::MxEntity()
// OFFSET: LEGO1 0x1000c110 // OFFSET: LEGO1 0x1000c110
MxEntity::~MxEntity() MxEntity::~MxEntity()
{ {
} }

View file

@ -1,11 +1,13 @@
#ifndef MXENTITY_H #ifndef MXENTITY_H
#define MXENTITY_H #define MXENTITY_H
#include "decomp.h"
#include "mxatomid.h" #include "mxatomid.h"
#include "mxcore.h" #include "mxcore.h"
#include "mxtypes.h" #include "mxtypes.h"
// VTABLE 0x100d5390 // VTABLE 0x100d5390
// SIZE 0x68 or less
class MxEntity : public MxCore class MxEntity : public MxCore
{ {
public: public:
@ -27,6 +29,7 @@ class MxEntity : public MxCore
private: private:
MxS32 m_mxEntityId; // 0x8 MxS32 m_mxEntityId; // 0x8
MxAtomId m_atom; // 0xc MxAtomId m_atom; // 0xc
undefined m_unk10[0x58];
}; };
#endif // MXENTITY_H #endif // MXENTITY_H