mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Implement/match LegoAnimationManager::AddExtra (#901)
* Implement/match LegoAnimationManager::AddExtra * Rename member * Fix param names * Remove space
This commit is contained in:

committed by
GitHub

parent
a1388adcd7
commit
d9a82323ca
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "actionsfwd.h"
|
||||
#include "decomp.h"
|
||||
#include "legolocations.h"
|
||||
#include "legotraninfolist.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
@@ -10,9 +11,11 @@
|
||||
class AnimState;
|
||||
class LegoAnimPresenter;
|
||||
class LegoEntity;
|
||||
class LegoExtraActor;
|
||||
class LegoFile;
|
||||
class LegoPathBoundary;
|
||||
class LegoROIList;
|
||||
class LegoWorld;
|
||||
struct ModelInfo;
|
||||
class MxDSAction;
|
||||
|
||||
@@ -38,9 +41,9 @@ public:
|
||||
|
||||
// SIZE 0x08
|
||||
struct Vehicle {
|
||||
char* m_name; // 0x00
|
||||
undefined m_unk0x04; // 0x04
|
||||
MxBool m_unk0x05; // 0x05
|
||||
char* m_name; // 0x00
|
||||
MxBool m_unk0x04; // 0x04
|
||||
MxBool m_unk0x05; // 0x05
|
||||
};
|
||||
|
||||
// SIZE 0x18
|
||||
@@ -99,7 +102,7 @@ public:
|
||||
LegoTranInfo* GetTranInfo(MxU32 p_index);
|
||||
void FUN_10062770();
|
||||
void PurgeExtra(MxBool p_und);
|
||||
void AddExtra(MxU32 p_cameraLocation, MxBool p_und);
|
||||
void AddExtra(MxS32 p_location, MxBool p_und);
|
||||
void FUN_10063270(LegoROIList*, LegoAnimPresenter*);
|
||||
void FUN_10063780(LegoROIList* p_list);
|
||||
void FUN_10064670(Vector3*);
|
||||
@@ -143,7 +146,10 @@ private:
|
||||
MxBool FUN_10062650(Vector3& p_position, float p_und, LegoROI* p_roi);
|
||||
MxBool FUN_10062710(AnimInfo& p_info);
|
||||
void FUN_10063aa0();
|
||||
MxBool FUN_10063b90(LegoWorld* p_world, LegoExtraActor* p_actor, MxU8 p_unk0x14, MxU32 p_characterId);
|
||||
void FUN_10063d10();
|
||||
MxBool FUN_10063fb0(LegoLocation::Boundary* p_boundary, LegoWorld* p_world);
|
||||
MxBool FUN_10064120(LegoLocation::Boundary* p_boundary, MxBool, MxBool);
|
||||
void FUN_100648f0(LegoTranInfo*, MxLong);
|
||||
void FUN_10064b50(MxLong p_time);
|
||||
|
||||
@@ -163,7 +169,7 @@ private:
|
||||
MxBool m_unk0x39; // 0x39
|
||||
MxBool m_unk0x3a; // 0x3a
|
||||
Extra m_extras[40]; // 0x3c
|
||||
undefined4 m_unk0x3fc; // 0x3fc
|
||||
MxU32 m_lastExtraCharacterId; // 0x3fc
|
||||
MxBool m_unk0x400; // 0x400
|
||||
MxBool m_unk0x401; // 0x401
|
||||
MxBool m_unk0x402; // 0x402
|
||||
@@ -171,7 +177,7 @@ private:
|
||||
MxLong m_unk0x408; // 0x408
|
||||
MxLong m_unk0x40c; // 0x40c
|
||||
MxLong m_unk0x410; // 0x410
|
||||
MxLong m_unk0x414; // 0x414
|
||||
MxU32 m_unk0x414; // 0x414
|
||||
MxU32 m_numAllowedExtras; // 0x418
|
||||
undefined4 m_unk0x41c; // 0x41c
|
||||
AnimState* m_animState; // 0x420
|
||||
|
@@ -1,31 +0,0 @@
|
||||
#ifndef LEGOCAMERALOCATIONS_H
|
||||
#define LEGOCAMERALOCATIONS_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// SIZE 0x60
|
||||
struct LegoCameraLocation {
|
||||
// SIZE 0x18
|
||||
struct Path {
|
||||
const char* m_name; // 0x00
|
||||
MxS32 m_src; // 0x04
|
||||
float m_srcScale; // 0x08
|
||||
MxS32 m_dest; // 0x0c
|
||||
float m_destScale; // 0x10
|
||||
undefined4 m_unk0x10; // 0x14
|
||||
};
|
||||
|
||||
MxU32 m_index; // 0x00
|
||||
const char* m_name; // 0x04
|
||||
float m_position[3]; // 0x08
|
||||
float m_direction[3]; // 0x14
|
||||
float m_up[3]; // 0x20
|
||||
Path m_pathA; // 0x2c
|
||||
Path m_pathB; // 0x44
|
||||
undefined4 m_unk0x5c; // 0x5c
|
||||
};
|
||||
|
||||
extern LegoCameraLocation g_cameraLocations[70];
|
||||
|
||||
#endif // LEGOCAMERALOCATIONS_H
|
@@ -59,6 +59,7 @@ public:
|
||||
static MxBool Exists(const char* p_key);
|
||||
|
||||
void FUN_100832a0();
|
||||
MxBool FUN_10083b20(const char* p_name);
|
||||
MxU32 GetRefCount(LegoROI* p_roi);
|
||||
void FUN_10083c30(const char* p_name);
|
||||
void FUN_10083db0(LegoROI* p_roi);
|
||||
@@ -69,6 +70,7 @@ public:
|
||||
LegoCharacterInfo* GetInfo(LegoROI* p_roi);
|
||||
MxBool SwitchHat(LegoROI* p_roi);
|
||||
MxU32 FUN_10085140(LegoROI* p_roi, MxBool p_und);
|
||||
MxU8 FUN_10085180(LegoROI* p_roi);
|
||||
LegoROI* FUN_10085210(const char* p_name, const char* p_lodName, MxBool p_createEntity);
|
||||
LegoROI* FUN_10085a80(const char* p_name, const char* p_lodName, MxBool p_createEntity);
|
||||
|
||||
|
@@ -49,11 +49,13 @@ public:
|
||||
MxResult WaitForAnimation() override; // vtable+0x9c
|
||||
void VTable0xa4(MxU8& p_und1, MxS32& p_und2) override; // vtable+0xa4
|
||||
void VTable0xc4() override; // vtable+0xc4
|
||||
virtual MxResult VTable0xc8(); // vtable+0xc8
|
||||
|
||||
virtual MxResult FUN_1002aae0();
|
||||
void Restart();
|
||||
inline void FUN_1002ad8a();
|
||||
|
||||
inline void SetUnknown0x0c(undefined p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002b760
|
||||
// LegoExtraActor::`scalar deleting destructor'
|
||||
|
||||
|
31
LEGO1/lego/legoomni/include/legolocations.h
Normal file
31
LEGO1/lego/legoomni/include/legolocations.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef LEGOLOCATIONS_H
|
||||
#define LEGOLOCATIONS_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// SIZE 0x60
|
||||
struct LegoLocation {
|
||||
// SIZE 0x18
|
||||
struct Boundary {
|
||||
const char* m_name; // 0x00
|
||||
MxS32 m_src; // 0x04
|
||||
float m_srcScale; // 0x08
|
||||
MxS32 m_dest; // 0x0c
|
||||
float m_destScale; // 0x10
|
||||
MxBool m_unk0x10; // 0x14
|
||||
};
|
||||
|
||||
MxU32 m_index; // 0x00
|
||||
const char* m_name; // 0x04
|
||||
float m_position[3]; // 0x08
|
||||
float m_direction[3]; // 0x14
|
||||
float m_up[3]; // 0x20
|
||||
Boundary m_boundaryA; // 0x2c
|
||||
Boundary m_boundaryB; // 0x44
|
||||
undefined4 m_unk0x5c; // 0x5c
|
||||
};
|
||||
|
||||
extern LegoLocation g_locations[70];
|
||||
|
||||
#endif // LEGOLOCATIONS_H
|
@@ -5,7 +5,7 @@
|
||||
#include "mxcore.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
struct LegoCameraLocation;
|
||||
struct LegoLocation;
|
||||
class Vector3;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@@ -72,9 +72,9 @@ public:
|
||||
float p_rs,
|
||||
MxBool p_urs
|
||||
);
|
||||
static MxResult UpdateCameraLocation(MxU32 p_location);
|
||||
static MxResult UpdateCameraLocation(const char* p_location);
|
||||
static LegoCameraLocation* GetCameraLocation(MxU32 p_location);
|
||||
static MxResult UpdateLocation(MxU32 p_location);
|
||||
static MxResult UpdateLocation(const char* p_location);
|
||||
static LegoLocation* GetLocation(MxU32 p_location);
|
||||
|
||||
inline void SetLinearVel(MxFloat p_linearVel) { m_linearVel = p_linearVel; }
|
||||
inline MxFloat GetLinearVel() { return m_linearVel; }
|
||||
|
@@ -46,7 +46,7 @@ public:
|
||||
|
||||
MxResult FUN_10045c20(
|
||||
LegoPathActor* p_actor,
|
||||
const char* p_path,
|
||||
const char* p_name,
|
||||
MxS32 p_src,
|
||||
float p_srcScale,
|
||||
MxS32 p_dest,
|
||||
|
@@ -65,9 +65,9 @@ public:
|
||||
|
||||
MxBool PresentersPending();
|
||||
void Remove(MxCore* p_object);
|
||||
MxResult FUN_1001f720(
|
||||
IslePathActor* p_actor,
|
||||
const char* p_path,
|
||||
MxResult PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
const char* p_name,
|
||||
MxS32 p_src,
|
||||
float p_srcScale,
|
||||
MxS32 p_dest,
|
||||
|
Reference in New Issue
Block a user