mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 01:14:19 +00:00
Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo (#820)
* Implement LegoAnimationManager::FUN_100609f0 / LegoTranInfo * use NULL
This commit is contained in:
committed by
GitHub
parent
fb0f35188b
commit
d5dd8db46e
@@ -71,8 +71,9 @@ public:
|
||||
MxResult ReadAnimInfo(LegoFile* p_file, AnimInfo* p_info);
|
||||
MxResult ReadModelInfo(LegoFile* p_file, ModelInfo* p_info);
|
||||
void DeleteAnimations();
|
||||
MxResult StartEntityAction(MxDSAction& p_dsAction, LegoEntity* p_entity);
|
||||
void FUN_10060570(MxBool);
|
||||
MxResult FUN_100609f0(MxU32 p_objectId, MxMatrix* p_matrix, MxBool p_und1, MxBool p_und2);
|
||||
MxResult StartEntityAction(MxDSAction& p_dsAction, LegoEntity* p_entity);
|
||||
undefined4 FUN_10060dc0(
|
||||
IsleScript::Script,
|
||||
undefined4,
|
||||
@@ -87,6 +88,8 @@ public:
|
||||
void FUN_10061010(undefined4);
|
||||
void FUN_100617c0(MxS32, MxU16&, MxU32&);
|
||||
MxS8 FUN_10062360(char*);
|
||||
void FUN_10062770();
|
||||
void FUN_100627d0(MxBool);
|
||||
void FUN_100629b0(MxU32, MxBool);
|
||||
void FUN_10064670(MxBool);
|
||||
void FUN_10064740(MxBool);
|
||||
@@ -99,25 +102,27 @@ public:
|
||||
private:
|
||||
void Init();
|
||||
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
MxU32 m_scriptIndex; // 0x08
|
||||
MxU16 m_animCount; // 0x0c
|
||||
MxU16 m_unk0x0e; // 0x0e
|
||||
MxU32 m_unk0x10; // 0x10
|
||||
AnimInfo* m_anims; // 0x14
|
||||
undefined m_unk0x018[8]; // 0x18
|
||||
undefined m_unk0x18[4]; // 0x18
|
||||
MxU32 m_unk0x1c; // 0x1c
|
||||
LegoTranInfoList* m_tranInfoList; // 0x20
|
||||
LegoTranInfoList* m_tranInfoList2; // 0x24
|
||||
undefined4 m_unk0x28[2]; // 0x28
|
||||
undefined4 m_unk0x30[2]; // 0x30
|
||||
undefined m_unk0x38; // 0x38
|
||||
undefined m_unk0x39; // 0x39
|
||||
MxBool m_unk0x39; // 0x39
|
||||
undefined m_unk0x3a; // 0x3a
|
||||
Unknown0x3c m_unk0x3c[40]; // 0x3c
|
||||
undefined4 m_unk0x3fc; // 0x3fc
|
||||
MxU8 m_unk0x400; // 0x400
|
||||
undefined m_unk0x401; // 0x401
|
||||
MxU8 m_unk0x402; // 0x402
|
||||
undefined m_unk0x403[0x1d]; // 0x403
|
||||
MxLong m_unk0x404; // 0x404
|
||||
undefined m_unk0x408[0x18]; // 0x408
|
||||
AnimState* m_animState; // 0x420
|
||||
undefined4 m_unk0x424; // 0x424
|
||||
undefined m_unk0x428; // 0x428
|
||||
|
||||
@@ -72,10 +72,10 @@ public:
|
||||
ScriptContainer()
|
||||
{
|
||||
m_index = -1;
|
||||
m_script = NULL;
|
||||
m_atomId = NULL;
|
||||
}
|
||||
|
||||
ScriptContainer(MxS32 p_index, const char* p_key, MxAtomId* p_script)
|
||||
ScriptContainer(MxS32 p_index, const char* p_key, MxAtomId* p_atomId)
|
||||
{
|
||||
m_index = p_index;
|
||||
|
||||
@@ -83,7 +83,7 @@ public:
|
||||
strcpy(m_key, p_key);
|
||||
}
|
||||
|
||||
m_script = p_script;
|
||||
m_atomId = p_atomId;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005ac50
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
{
|
||||
m_index = p_container.m_index;
|
||||
strcpy(m_key, p_container.m_key);
|
||||
m_script = p_container.m_script;
|
||||
m_atomId = p_container.m_atomId;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ public:
|
||||
|
||||
MxS32 m_index; // 0x00
|
||||
char m_key[20]; // 0x04
|
||||
MxAtomId* m_script; // 0x18
|
||||
MxAtomId* m_atomId; // 0x18
|
||||
};
|
||||
|
||||
// SIZE 0x38
|
||||
@@ -199,11 +199,12 @@ public:
|
||||
void CreateBackgroundAudio();
|
||||
void RemoveWorld(const MxAtomId& p_atom, MxLong p_objectId);
|
||||
MxResult RegisterScripts();
|
||||
const char* GetScriptName(MxU32 p_index);
|
||||
MxAtomId* GetScriptAtom(MxU32 p_index);
|
||||
MxS32 GetScriptIndex(const char* p_key);
|
||||
void DeleteAction();
|
||||
|
||||
static MxS32 GetCurrPathInfo(LegoPathBoundary**, MxS32&);
|
||||
const char* FindScript(MxU32 p_id);
|
||||
static void CreateInstance();
|
||||
static LegoOmni* GetInstance();
|
||||
|
||||
@@ -231,10 +232,7 @@ public:
|
||||
inline void SetExit(MxBool p_exit) { m_exit = p_exit; }
|
||||
inline MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction)
|
||||
{
|
||||
if (m_unk0x13c) {
|
||||
return Start(&p_dsAction);
|
||||
}
|
||||
return SUCCESS;
|
||||
return m_unk0x13c ? Start(&p_dsAction) : SUCCESS;
|
||||
}
|
||||
inline void SetUnknown13c(MxBool p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
|
||||
|
||||
|
||||
@@ -2,10 +2,48 @@
|
||||
#define LEGOTRANINFO_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxgeometry/mxmatrix.h"
|
||||
|
||||
// SIZE 0x78
|
||||
struct LegoTranInfo { // See FUN_100609f0 for construction
|
||||
undefined m_unk0x00[0x78]; // 0x00
|
||||
struct LegoTranInfo {
|
||||
enum {
|
||||
c_bit2 = 0x02
|
||||
};
|
||||
|
||||
LegoTranInfo()
|
||||
{
|
||||
m_index = 0;
|
||||
m_unk0x08 = 0;
|
||||
m_unk0x0c = NULL;
|
||||
m_unk0x10 = FALSE;
|
||||
m_unk0x12 = -1;
|
||||
m_unk0x14 = FALSE;
|
||||
m_unk0x1c = NULL;
|
||||
m_unk0x20 = NULL;
|
||||
m_unk0x24 = 0;
|
||||
m_unk0x15 = TRUE;
|
||||
m_unk0x28 = TRUE;
|
||||
m_unk0x29 = TRUE;
|
||||
m_flags = 0;
|
||||
m_unk0x2c.SetIdentity();
|
||||
}
|
||||
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
MxU32 m_index; // 0x04
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
MxMatrix* m_unk0x0c; // 0x0c
|
||||
MxBool m_unk0x10; // 0x10
|
||||
MxS16 m_unk0x12; // 0x12
|
||||
MxBool m_unk0x14; // 0x14
|
||||
MxBool m_unk0x15; // 0x15
|
||||
MxU32 m_objectId; // 0x18
|
||||
undefined4* m_unk0x1c; // 0x1c
|
||||
undefined4* m_unk0x20; // 0x20
|
||||
undefined4 m_unk0x24; // 0x24
|
||||
MxBool m_unk0x28; // 0x28
|
||||
MxBool m_unk0x29; // 0x29
|
||||
MxMatrix m_unk0x2c; // 0x2c
|
||||
MxU32 m_flags; // 0x74
|
||||
};
|
||||
|
||||
#endif // LEGOTRANINFO_H
|
||||
|
||||
Reference in New Issue
Block a user