Implement methods to load dta files. (#673)

* Implement methods to load dta files.

* fix style issues

* fix vtables

* fix more style issues

* fix ddtor names

* Remove explicit padding, add annotations, asserts

* Use List template

* trigger CI

* Fix class refactor

* Match code, fix annotations

* Fix

* 98% match

* Fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Nathan M Gilbert
2024-03-15 20:43:45 -04:00
committed by GitHub
parent 4ddd9e200c
commit d07d7edc81
11 changed files with 470 additions and 15 deletions

View File

@@ -3,6 +3,33 @@
#include "legostate.h"
// SIZE 0x30
struct ModelInfo {
char* m_modelName; // 0x00
MxU8 m_unk0x04; // 0x04
float m_location[3]; // 0x08
float m_direction[3]; // 0x14
float m_up[3]; // 0x20
MxU8 m_unk0x2c; // 0x2c
};
// SIZE 0x30
struct AnimInfo {
char* m_animName; // 0x00
undefined4 m_unk0x04; // 0x04
MxS16 m_unk0x08; // 0x08
MxU8 m_unk0x0a; // 0x0a
MxU8 m_unk0x0b; // 0x0b
MxU8 m_unk0x0c; // 0x0c
MxU8 m_unk0x0d; // 0x0d
MxU32 m_unk0x10[4]; // 0x10
MxU8 m_modelCount; // 0x20
ModelInfo* m_models; // 0x24
MxU8 m_unk0x28; // 0x28
MxU8 m_unk0x29; // 0x29
MxS8 m_unk0x2a[3]; // 0x2a
};
// VTABLE: LEGO1 0x100d8d80
// SIZE 0x1c
class AnimState : public LegoState {
@@ -26,6 +53,9 @@ public:
MxBool SetFlag() override; // vtable+0x18
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
void FUN_100651d0(MxU32, AnimInfo*, MxU32&);
void FUN_10065240(MxU32, AnimInfo*, MxU32);
// SYNTHETIC: LEGO1 0x10065130
// AnimState::`scalar deleting destructor'