Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation (#877)

* Refactor LegoOmni::PathContainer into IslePathActor::SpawnLocation

* Add beta annotation

* Type var
This commit is contained in:
Christian Semmler
2024-05-02 10:51:41 -04:00
committed by GitHub
parent 0bf39c7108
commit 72cbd1fc60
7 changed files with 444 additions and 114 deletions

View File

@@ -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