Implement/match LegoAnimationManager::FUN_100605e0 (#872)

* Implement/match LegoAnimationManager::FUN_100605e0

* Remove padding

* Fix annotation
This commit is contained in:
Christian Semmler
2024-04-30 10:02:58 -04:00
committed by GitHub
parent b902790c54
commit 20dee07b9c
7 changed files with 160 additions and 45 deletions

View File

@@ -18,15 +18,16 @@ struct AnimInfo {
char* m_animName; // 0x00
MxU32 m_objectId; // 0x04
MxS16 m_unk0x08; // 0x08
MxU8 m_unk0x0a; // 0x0a
MxBool m_unk0x0a; // 0x0a
MxU8 m_unk0x0b; // 0x0b
MxU8 m_unk0x0c; // 0x0c
MxU8 m_unk0x0d; // 0x0d
MxU32 m_unk0x10[4]; // 0x10
MxU8 m_modelCount; // 0x20
MxS16 m_unk0x22; // 0x22
ModelInfo* m_models; // 0x24
MxU8 m_unk0x28; // 0x28
MxU8 m_unk0x29; // 0x29
MxBool m_unk0x29; // 0x29
MxS8 m_unk0x2a[3]; // 0x2a
};

View File

@@ -80,13 +80,13 @@ public:
MxResult FUN_10060dc0(
IsleScript::Script p_objectId,
MxMatrix* p_matrix,
undefined p_param3,
MxBool p_param3,
undefined p_param4,
undefined4 p_param5,
undefined p_param6,
LegoROI* p_roi,
MxBool p_param6,
MxBool p_param7,
MxBool p_param8,
undefined p_param9
MxBool p_param9
);
void FUN_10061010(undefined4);
void FUN_100617c0(MxS32, MxU16&, MxU16&);
@@ -108,21 +108,25 @@ private:
void Init();
MxResult FUN_100605e0(
MxU32 p_index,
MxU8 p_unk0x0a,
MxBool p_unk0x0a,
MxMatrix* p_matrix,
undefined,
undefined4,
undefined,
MxBool,
MxBool,
undefined
MxBool p_bool1,
LegoROI* p_roi,
MxBool p_bool2,
MxBool p_bool3,
MxBool p_bool4,
MxBool p_bool5
);
MxResult FUN_100609f0(MxU32 p_objectId, MxMatrix* p_matrix, MxBool p_und1, MxBool p_und2);
void DeleteAnimations();
MxS8 GetCharacterIndex(const char* p_name);
MxBool FUN_100623a0(AnimInfo& p_info);
void FUN_10062580(AnimInfo& p_info);
MxBool FUN_10062710(AnimInfo& p_info);
void FUN_10063aa0();
void FUN_100648f0(LegoTranInfo*, MxLong);
MxU32 m_scriptIndex; // 0x08
MxS32 m_scriptIndex; // 0x08
MxU16 m_animCount; // 0x0c
MxU16 m_unk0x0e; // 0x0e
MxU16 m_unk0x10; // 0x10

View File

@@ -4,6 +4,7 @@
#include "decomp.h"
#include "mxgeometry/mxmatrix.h"
struct AnimInfo;
class LegoAnimMMPresenter;
// SIZE 0x78
@@ -30,7 +31,7 @@ struct LegoTranInfo {
m_unk0x2c.SetIdentity();
}
undefined4 m_unk0x00; // 0x00
AnimInfo* m_animInfo; // 0x00
MxU32 m_index; // 0x04
LegoROI* m_unk0x08; // 0x08
MxMatrix* m_unk0x0c; // 0x0c

View File

@@ -64,10 +64,4 @@ void PlayMusic(JukeboxScript::Script p_script);
void SetIsWorldActive(MxBool p_isWorldActive);
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
// FUNCTION: LEGO1 0x10015890
inline MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction)
{
return LegoOmni::GetInstance()->StartActionIfUnknown0x13c(p_dsAction);
}
#endif // MISC_H