Implement/match LegoPathController::FUN_10045c20 and LegoPathController ctor (#903)

* Implement/match LegoPathController::FUN_10045c20 and LegoPathController ctor

* Remove obsolete struct
This commit is contained in:
Christian Semmler
2024-05-11 09:32:11 -04:00
committed by GitHub
parent c77dd44105
commit 5df947dbb9
9 changed files with 73 additions and 29 deletions

View File

@@ -33,7 +33,7 @@ public:
LegoGameState::Area p_area,
MxAtomId* p_script,
MxS32 p_entityId,
const char* p_path,
const char* p_name,
MxS16 p_src,
float p_srcScale,
MxS16 p_dest,
@@ -45,7 +45,7 @@ public:
m_area = p_area;
m_script = p_script;
m_entityId = p_entityId;
strcpy(m_path, p_path);
strcpy(m_name, p_name);
m_src = p_src;
m_srcScale = p_srcScale;
m_dest = p_dest;
@@ -60,7 +60,7 @@ public:
m_area = p_location.m_area;
m_script = p_location.m_script;
m_entityId = p_location.m_entityId;
strcpy(m_path, p_location.m_path);
strcpy(m_name, p_location.m_name);
m_src = p_location.m_src;
m_srcScale = p_location.m_srcScale;
m_dest = p_location.m_dest;
@@ -73,7 +73,7 @@ public:
LegoGameState::Area m_area; // 0x00
MxAtomId* m_script; // 0x04
MxS32 m_entityId; // 0x08
char m_path[20]; // 0x0c
char m_name[20]; // 0x0c
MxS16 m_src; // 0x20
float m_srcScale; // 0x24
MxS16 m_dest; // 0x28

View File

@@ -119,7 +119,7 @@ public:
inline void SetBoundary(LegoPathBoundary* p_boundary) { m_boundary = p_boundary; }
inline void SetState(MxU32 p_state) { m_state = p_state; }
inline void ClearController() { m_controller = NULL; }
inline void SetController(LegoPathController* p_controller) { m_controller = p_controller; }
// SYNTHETIC: LEGO1 0x1002d800
// LegoPathActor::`scalar deleting destructor'

View File

@@ -2,12 +2,12 @@
#define LEGOPATHCONTROLLER_H
#include "decomp.h"
#include "legopathactor.h"
#include "legopathboundary.h"
#include "mxcore.h"
#include "mxstl/stlcompat.h"
class LegoAnimPresenter;
class LegoPathActor;
class LegoPathBoundary;
class LegoWorld;
class MxAtomId;
class Vector3;
@@ -61,16 +61,30 @@ public:
void FUN_10046bb0(LegoWorld* p_world);
private:
LegoPathBoundary* m_unk0x08; // 0x08
undefined4 m_unk0x0c; // 0x0c
undefined4 m_unk0x10; // 0x10
undefined4 m_unk0x14; // 0x14
MxU16 m_numL; // 0x18
MxU16 m_numE; // 0x1a
MxU16 m_numN; // 0x1c
MxU16 m_numT; // 0x1e
map<undefined*, undefined*, LegoPathControllerComparator> m_pfsE; // 0x20
map<undefined*, undefined*, LegoPathControllerComparator> m_unk0x30; // 0x30
LegoPathBoundary* m_unk0x08; // 0x08
undefined4 m_unk0x0c; // 0x0c
undefined4 m_unk0x10; // 0x10
undefined4 m_unk0x14; // 0x14
MxU16 m_numL; // 0x18
MxU16 m_numE; // 0x1a
MxU16 m_numN; // 0x1c
MxU16 m_numT; // 0x1e
set<undefined*, LegoPathControllerComparator> m_pfsE; // 0x20
LegoPathActorSet m_actors; // 0x30
};
// clang-format off
// TEMPLATE: LEGO1 0x100451a0
// _Tree<unsigned char *,unsigned char *,set<unsigned char *,LegoPathControllerComparator,allocator<unsigned char *> >::_Kfn,LegoPathControllerComparator,allocator<unsigned char *> >::~_Tree<unsigned char *,unsigned char *,set<unsigned char *,LegoPathControl
// TEMPLATE: LEGO1 0x100457e0
// Set<unsigned char *,LegoPathControllerComparator>::~Set<unsigned char *,LegoPathControllerComparator>
// TEMPLATE: LEGO1 0x10045830
// set<unsigned char *,LegoPathControllerComparator,allocator<unsigned char *> >::~set<unsigned char *,LegoPathControllerComparator,allocator<unsigned char *> >
// GLOBAL: LEGO1 0x100f4360
// _Tree<unsigned char *,unsigned char *,set<unsigned char *,LegoPathControllerComparator,allocator<unsigned char *> >::_Kfn,LegoPathControllerComparator,allocator<unsigned char *> >::_Nil
// clang-format on
#endif // LEGOPATHCONTROLLER_H