Imlpement/match LegoAnimMMPresenter::ParseExtra and related (#822)

* Imlpement/match LegoAnimMMPresenter::ParseExtra and related

* sort
This commit is contained in:
Christian Semmler
2024-04-20 09:32:10 -04:00
committed by GitHub
parent 2ce9ff06fc
commit 5021f66de2
6 changed files with 114 additions and 36 deletions

View File

@@ -87,6 +87,7 @@ public:
);
void FUN_10061010(undefined4);
void FUN_100617c0(MxS32, MxU16&, MxU32&);
LegoTranInfo* GetTranInfo(MxU32 p_index);
MxS8 FUN_10062360(char*);
void FUN_10062770();
void FUN_100627d0(MxBool);

View File

@@ -4,6 +4,7 @@
#include "mxcompositepresenter.h"
class LegoWorld;
struct LegoTranInfo;
// VTABLE: LEGO1 0x100d7de8
// SIZE 0x74
@@ -42,17 +43,17 @@ public:
MxBool FUN_1004b8b0();
private:
MxPresenter* m_unk0x4c; // 0x4c
undefined4 m_unk0x50; // 0x50
undefined4 m_unk0x54; // 0x54
undefined m_unk0x58; // 0x58
undefined m_unk0x59; // 0x59
undefined4 m_unk0x5c; // 0x5c
undefined4 m_unk0x60; // 0x60
LegoWorld* m_unk0x64; // 0x64
undefined4 m_unk0x68; // 0x68
undefined4 m_unk0x6c; // 0x6c
undefined4 m_unk0x70; // 0x70
MxPresenter* m_unk0x4c; // 0x4c
undefined4 m_unk0x50; // 0x50
undefined4 m_unk0x54; // 0x54
undefined m_unk0x58; // 0x58
MxBool m_unk0x59; // 0x59
MxU32 m_animmanId; // 0x5c
LegoTranInfo* m_tranInfo; // 0x60
LegoWorld* m_unk0x64; // 0x64
undefined4 m_unk0x68; // 0x68
undefined4 m_unk0x6c; // 0x6c
undefined4 m_unk0x70; // 0x70
};
#endif // LEGOANIMMMPRESENTER_H

View File

@@ -4,6 +4,8 @@
#include "decomp.h"
#include "mxgeometry/mxmatrix.h"
class LegoAnimMMPresenter;
// SIZE 0x78
struct LegoTranInfo {
enum {
@@ -20,7 +22,7 @@ struct LegoTranInfo {
m_unk0x14 = FALSE;
m_unk0x1c = NULL;
m_unk0x20 = NULL;
m_unk0x24 = 0;
m_presenter = NULL;
m_unk0x15 = TRUE;
m_unk0x28 = TRUE;
m_unk0x29 = TRUE;
@@ -28,22 +30,22 @@ struct LegoTranInfo {
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
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
LegoAnimMMPresenter* m_presenter; // 0x24
MxBool m_unk0x28; // 0x28
MxBool m_unk0x29; // 0x29
MxMatrix m_unk0x2c; // 0x2c
MxU32 m_flags; // 0x74
};
#endif // LEGOTRANINFO_H

View File

@@ -21,6 +21,19 @@ public:
LegoTranInfoList() : MxPtrList<LegoTranInfo>(FALSE) {}
};
// VTABLE: LEGO1 0x100d8cf0
// class MxListCursor<LegoTranInfo *>
// VTABLE: LEGO1 0x100d8d08
// class MxPtrListCursor<LegoTranInfo>
// VTABLE: LEGO1 0x100d8d20
// SIZE 0x10
class LegoTranInfoListCursor : public MxPtrListCursor<LegoTranInfo> {
public:
LegoTranInfoListCursor(LegoTranInfoList* p_list) : MxPtrListCursor<LegoTranInfo>(p_list) {}
};
// TEMPLATE: LEGO1 0x1005fdf0
// MxCollection<LegoTranInfo *>::Compare
@@ -48,4 +61,22 @@ public:
// SYNTHETIC: LEGO1 0x100600d0
// MxPtrList<LegoTranInfo>::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x100612f0
// LegoTranInfoListCursor::`scalar deleting destructor'
// FUNCTION: LEGO1 0x10061360
// MxPtrListCursor<LegoTranInfo>::~MxPtrListCursor<LegoTranInfo>
// SYNTHETIC: LEGO1 0x100613b0
// MxListCursor<LegoTranInfo *>::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x10061420
// MxPtrListCursor<LegoTranInfo>::`scalar deleting destructor'
// FUNCTION: LEGO1 0x10061490
// MxListCursor<LegoTranInfo *>::~MxListCursor<LegoTranInfo *>
// FUNCTION: LEGO1 0x100614e0
// LegoTranInfoListCursor::~LegoTranInfoListCursor
#endif // LEGOTRANINFOLIST_H