mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation (#877)
* Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation * Add beta annotation * Type var
This commit is contained in:

committed by
GitHub

parent
0bf39c7108
commit
72cbd1fc60
@@ -1,18 +1,78 @@
|
||||
#ifndef ISLEPATHACTOR_H
|
||||
#define ISLEPATHACTOR_H
|
||||
|
||||
#include "legocontrolmanager.h"
|
||||
#include "legoendanimnotificationparam.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legopathactor.h"
|
||||
#include "legoworld.h"
|
||||
#include "mxtype19notificationparam.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
class LegoEndAnimNotificationParam;
|
||||
class LegoWorld;
|
||||
class MxType19NotificationParam;
|
||||
|
||||
// VTABLE: LEGO1 0x100d4398
|
||||
// SIZE 0x160
|
||||
class IslePathActor : public LegoPathActor {
|
||||
public:
|
||||
// SIZE 0x38
|
||||
struct SpawnLocation {
|
||||
SpawnLocation() {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b1b0
|
||||
SpawnLocation(
|
||||
LegoGameState::Area p_area,
|
||||
MxAtomId* p_script,
|
||||
MxS32 p_entityId,
|
||||
const char* p_key,
|
||||
undefined2 p_unk0x20,
|
||||
float p_unk0x24,
|
||||
undefined2 p_unk0x28,
|
||||
float p_unk0x2c,
|
||||
undefined4 p_unk0x30,
|
||||
JukeboxScript::Script p_music
|
||||
)
|
||||
{
|
||||
m_area = p_area;
|
||||
m_script = p_script;
|
||||
m_entityId = p_entityId;
|
||||
strcpy(m_key, p_key);
|
||||
m_unk0x20 = p_unk0x20;
|
||||
m_unk0x24 = p_unk0x24;
|
||||
m_unk0x28 = p_unk0x28;
|
||||
m_unk0x2c = p_unk0x2c;
|
||||
m_unk0x30 = p_unk0x30;
|
||||
m_music = p_music;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b230
|
||||
SpawnLocation& operator=(const SpawnLocation& p_container)
|
||||
{
|
||||
m_area = p_container.m_area;
|
||||
m_script = p_container.m_script;
|
||||
m_entityId = p_container.m_entityId;
|
||||
strcpy(m_key, p_container.m_key);
|
||||
m_unk0x20 = p_container.m_unk0x20;
|
||||
m_unk0x24 = p_container.m_unk0x24;
|
||||
m_unk0x28 = p_container.m_unk0x28;
|
||||
m_unk0x2c = p_container.m_unk0x2c;
|
||||
m_unk0x30 = p_container.m_unk0x30;
|
||||
m_music = p_container.m_music;
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
LegoGameState::Area m_area; // 0x00
|
||||
MxAtomId* m_script; // 0x04
|
||||
MxS32 m_entityId; // 0x08
|
||||
char m_key[20]; // 0x0c
|
||||
undefined2 m_unk0x20; // 0x20
|
||||
float m_unk0x24; // 0x24
|
||||
undefined2 m_unk0x28; // 0x28
|
||||
float m_unk0x2c; // 0x2c
|
||||
undefined4 m_unk0x30; // 0x30
|
||||
JukeboxScript::Script m_music; // 0x34
|
||||
};
|
||||
|
||||
IslePathActor();
|
||||
|
||||
// FUNCTION: LEGO1 0x10002e10
|
||||
@@ -64,6 +124,8 @@ public:
|
||||
|
||||
void FUN_1001b660();
|
||||
|
||||
static void RegisterSpawnLocations();
|
||||
|
||||
protected:
|
||||
LegoWorld* m_world; // 0x154
|
||||
IslePathActor* m_unk0x158; // 0x158
|
||||
|
@@ -167,7 +167,7 @@ private:
|
||||
MxLong m_unk0x40c; // 0x40c
|
||||
MxLong m_unk0x410; // 0x410
|
||||
undefined4 m_unk0x414; // 0x414
|
||||
undefined4 m_unk0x418; // 0x418
|
||||
MxU32 m_numAllowedExtras; // 0x418
|
||||
undefined4 m_unk0x41c; // 0x41c
|
||||
AnimState* m_animState; // 0x420
|
||||
LegoROIList* m_unk0x424; // 0x424
|
||||
|
@@ -54,8 +54,9 @@ public:
|
||||
e_unk20,
|
||||
e_unk21,
|
||||
e_pizzeriaExterior,
|
||||
|
||||
e_garageExterior = 25,
|
||||
e_unk23,
|
||||
e_unk24,
|
||||
e_garageExterior,
|
||||
e_garage,
|
||||
e_garadoor,
|
||||
e_unk28,
|
||||
@@ -73,14 +74,17 @@ public:
|
||||
e_unk40,
|
||||
e_unk41,
|
||||
e_unk42,
|
||||
|
||||
e_unk45 = 45,
|
||||
e_unk43,
|
||||
e_unk44,
|
||||
e_unk45,
|
||||
e_act2main,
|
||||
e_act3script,
|
||||
e_unk48,
|
||||
e_unk49,
|
||||
|
||||
e_jukeboxw = 53,
|
||||
e_unk50,
|
||||
e_unk51,
|
||||
e_unk52,
|
||||
e_jukeboxw,
|
||||
e_unk54,
|
||||
e_unk55,
|
||||
e_histbook,
|
||||
|
@@ -103,65 +103,6 @@ public:
|
||||
MxAtomId* m_atomId; // 0x18
|
||||
};
|
||||
|
||||
// SIZE 0x38
|
||||
struct PathContainer {
|
||||
PathContainer() {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b1b0
|
||||
PathContainer(
|
||||
undefined4 p_unk0x00,
|
||||
MxAtomId* p_script,
|
||||
undefined4 p_unk0x04,
|
||||
const char* p_key,
|
||||
undefined2 p_unk0x20,
|
||||
float p_unk0x24,
|
||||
undefined2 p_unk0x28,
|
||||
float p_unk0x2c,
|
||||
undefined4 p_unk0x30,
|
||||
MxS32 p_unk0x34
|
||||
)
|
||||
{
|
||||
m_unk0x00 = p_unk0x00;
|
||||
m_script = p_script;
|
||||
m_unk0x04 = p_unk0x04;
|
||||
strcpy(m_key, p_key);
|
||||
m_unk0x20 = p_unk0x20;
|
||||
m_unk0x24 = p_unk0x24;
|
||||
m_unk0x28 = p_unk0x28;
|
||||
m_unk0x2c = p_unk0x2c;
|
||||
m_unk0x30 = p_unk0x30;
|
||||
m_unk0x34 = p_unk0x34;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b230
|
||||
PathContainer& operator=(const PathContainer& p_container)
|
||||
{
|
||||
m_unk0x00 = p_container.m_unk0x00;
|
||||
m_script = p_container.m_script;
|
||||
m_unk0x04 = p_container.m_unk0x04;
|
||||
strcpy(m_key, p_container.m_key);
|
||||
m_unk0x20 = p_container.m_unk0x20;
|
||||
m_unk0x24 = p_container.m_unk0x24;
|
||||
m_unk0x28 = p_container.m_unk0x28;
|
||||
m_unk0x2c = p_container.m_unk0x2c;
|
||||
m_unk0x30 = p_container.m_unk0x30;
|
||||
m_unk0x34 = p_container.m_unk0x34;
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
MxAtomId* m_script; // 0x04
|
||||
undefined4 m_unk0x04; // 0x08
|
||||
char m_key[20]; // 0x0c
|
||||
undefined2 m_unk0x20; // 0x20
|
||||
float m_unk0x24; // 0x24
|
||||
undefined2 m_unk0x28; // 0x28
|
||||
float m_unk0x2c; // 0x2c
|
||||
undefined4 m_unk0x30; // 0x30
|
||||
MxS32 m_unk0x34; // 0x34
|
||||
};
|
||||
|
||||
LegoOmni();
|
||||
~LegoOmni() override; // vtable+00
|
||||
|
||||
|
Reference in New Issue
Block a user