From edb55ae64cb4591a2bdc95d405a51fe50834fa26 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Sun, 9 Jul 2023 19:16:41 -0400 Subject: [PATCH] Push work on MxDSAction/MediaAction/Sound --- LEGO1/mxdsaction.cpp | 8 +++--- LEGO1/mxdsaction.h | 55 ++++++++++++++++++++------------------- LEGO1/mxdsmediaaction.cpp | 13 ++++++--- LEGO1/mxdsmediaaction.h | 11 +++++++- LEGO1/mxdssound.cpp | 2 +- LEGO1/mxdssound.h | 3 +++ 6 files changed, 57 insertions(+), 35 deletions(-) diff --git a/LEGO1/mxdsaction.cpp b/LEGO1/mxdsaction.cpp index e5162f89..b5cf6e75 100644 --- a/LEGO1/mxdsaction.cpp +++ b/LEGO1/mxdsaction.cpp @@ -5,10 +5,12 @@ MxDSAction::MxDSAction() { // TODO this->SetType(MxDSType_Action); + this->m_omni = NULL; + this->m_someTimingField = -0x80000000; } -// OFFSET: LEGO1 0x100ada80 STUB +// OFFSET: LEGO1 0x100ada80 MxDSAction::~MxDSAction() { - // TODO -} + delete this->m_unk7c; +} \ No newline at end of file diff --git a/LEGO1/mxdsaction.h b/LEGO1/mxdsaction.h index e26d28a6..155d7cc2 100644 --- a/LEGO1/mxdsaction.h +++ b/LEGO1/mxdsaction.h @@ -2,6 +2,7 @@ #define MXDSACTION_H #include "mxdsobject.h" +#include "mxomni.h" // VTABLE 0x100dc098 // SIZE 0x94 @@ -23,33 +24,33 @@ class MxDSAction : public MxDSObject { return !strcmp(name, MxDSAction::ClassName()) || MxDSObject::IsA(name); } - - int m_unk2c; - int m_unk30; - int m_unk34; - int m_unk38; - int m_unk3c; - int m_unk40; - int m_unk44; - int m_unk48; - int m_unk4c; - int m_unk50; - int m_unk54; - int m_unk58; - int m_unk5c; - int m_unk60; - int m_unk64; - int m_unk68; - int m_unk6c; - int m_unk70; - int m_unk74; - int m_unk78; - int m_unk7c; - int m_unk80; - int m_unk84; - int m_unk88; - int m_unk8c; - int m_unk90; +private: + MxLong m_unk2c; + MxLong m_unk30; + MxLong m_unk34; + MxLong* m_unk38; + MxLong m_unk3c; + MxLong m_unk40; + MxLong m_unk44; + MxLong m_unk48; + MxLong m_unk4c; + MxLong m_unk50; + MxLong m_unk54; + MxLong m_unk58; + MxLong m_unk5c; + MxLong m_unk60; + MxLong m_unk64; + MxLong m_unk68; + MxLong m_unk6c; + MxLong m_unk70; + MxLong m_unk74; + MxLong m_unk78; + MxLong* m_unk7c; + MxLong m_unk80; + MxLong m_unk84; + MxLong m_unk88; + MxOmni* m_omni; // 0x8c + MxS32 m_someTimingField; // 0x90 }; #endif // MXDSACTION_H diff --git a/LEGO1/mxdsmediaaction.cpp b/LEGO1/mxdsmediaaction.cpp index 5f9c1132..e01c3f90 100644 --- a/LEGO1/mxdsmediaaction.cpp +++ b/LEGO1/mxdsmediaaction.cpp @@ -3,12 +3,19 @@ // OFFSET: LEGO1 0x100c8b40 MxDSMediaAction::MxDSMediaAction() { - // TODO + this->m_unk98 = 0; + this->m_unk9c = 0; + this->m_unka0 = 0; + this->m_unka4 = 0; + this->m_unka8 = 0; + *this->m_unkb4 = 0xffffffff; + this->m_unkb0 = 0; + *this->m_unkac = 1; this->SetType(MxDSType_MediaAction); } -// OFFSET: LEGO1 0x100c8cf0 STUB +// OFFSET: LEGO1 0x100c8cf0 MxDSMediaAction::~MxDSMediaAction() { - // TODO + delete this->m_unk98; } diff --git a/LEGO1/mxdsmediaaction.h b/LEGO1/mxdsmediaaction.h index 5beb12f5..c1868a05 100644 --- a/LEGO1/mxdsmediaaction.h +++ b/LEGO1/mxdsmediaaction.h @@ -1,6 +1,7 @@ #ifndef MXDSMEDIAACTION_H #define MXDSMEDIAACTION_H +#include "decomp.h" #include "mxdsaction.h" // VTABLE 0x100dcd40 @@ -23,7 +24,15 @@ class MxDSMediaAction : public MxDSAction { return !strcmp(name, MxDSMediaAction::ClassName()) || MxDSAction::IsA(name); } - +private: + undefined* m_unk98; + undefined* m_unk9c; + undefined* m_unka0; + undefined* m_unka4; + undefined* m_unka8; + undefined* m_unkb4; + undefined* m_unkb0; + undefined* m_unkac; }; #endif // MXDSMEDIAACTION_H diff --git a/LEGO1/mxdssound.cpp b/LEGO1/mxdssound.cpp index 30894abc..d05f785d 100644 --- a/LEGO1/mxdssound.cpp +++ b/LEGO1/mxdssound.cpp @@ -3,7 +3,7 @@ // OFFSET: LEGO1 0x100c92c0 MxDSSound::MxDSSound() { - // TODO + this->m_lastField = 0x4f; this->SetType(MxDSType_Sound); } diff --git a/LEGO1/mxdssound.h b/LEGO1/mxdssound.h index 45a61d63..17d4d26e 100644 --- a/LEGO1/mxdssound.h +++ b/LEGO1/mxdssound.h @@ -2,6 +2,7 @@ #define MXDSSOUND_H #include "mxdsmediaaction.h" +#include "mxtypes.h" // VTABLE 0x100dcdd0 // SIZE 0xc0 @@ -23,6 +24,8 @@ class MxDSSound : public MxDSMediaAction { return !strcmp(name, MxDSSound::ClassName()) || MxDSMediaAction::IsA(name); } +private: + MxS32 m_lastField; // 0xbc };