From 28f961b86d0c130bd46607b690731dfc42faf238 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Wed, 16 Aug 2023 19:38:26 -0400 Subject: [PATCH] Add MxDSAnim, MxDSEvent, MxDSObjectAction, MxDSStill (#112) * Add MxDSAnim * Add MxDSEvent, MxDSObjectAction, MxDSStill --- LEGO1/mxdsanim.cpp | 29 +++++++++++++++++++++++++++++ LEGO1/mxdsanim.h | 6 +++++- LEGO1/mxdsevent.cpp | 29 +++++++++++++++++++++++++++++ LEGO1/mxdsevent.h | 5 +++++ LEGO1/mxdsobjectaction.cpp | 29 +++++++++++++++++++++++++++++ LEGO1/mxdsobjectaction.h | 5 +++++ LEGO1/mxdsstill.cpp | 29 +++++++++++++++++++++++++++++ LEGO1/mxdsstill.h | 5 +++++ 8 files changed, 136 insertions(+), 1 deletion(-) diff --git a/LEGO1/mxdsanim.cpp b/LEGO1/mxdsanim.cpp index b9b887cd..050d40e0 100644 --- a/LEGO1/mxdsanim.cpp +++ b/LEGO1/mxdsanim.cpp @@ -1,5 +1,7 @@ #include "mxdsanim.h" +DECOMP_SIZE_ASSERT(MxDSAnim, 0xb8) + // OFFSET: LEGO1 0x100c8ff0 MxDSAnim::MxDSAnim() { @@ -10,3 +12,30 @@ MxDSAnim::MxDSAnim() MxDSAnim::~MxDSAnim() { } + +// OFFSET: LEGO1 0x100c91f0 +void MxDSAnim::CopyFrom(MxDSAnim &p_dsAnim) +{ +} + +// OFFSET: LEGO1 0x100c9200 +MxDSAnim &MxDSAnim::operator=(MxDSAnim &p_dsAnim) +{ + if (this == &p_dsAnim) + return *this; + + MxDSMediaAction::operator=(p_dsAnim); + this->CopyFrom(p_dsAnim); + return *this; +} + +// OFFSET: LEGO1 0x100c9230 +MxDSAction *MxDSAnim::Clone() +{ + MxDSAnim *clone = new MxDSAnim(); + + if (clone) + *clone = *this; + + return clone; +} \ No newline at end of file diff --git a/LEGO1/mxdsanim.h b/LEGO1/mxdsanim.h index fdef0859..92890e8e 100644 --- a/LEGO1/mxdsanim.h +++ b/LEGO1/mxdsanim.h @@ -9,9 +9,11 @@ class MxDSAnim : public MxDSMediaAction { public: MxDSAnim(); - virtual ~MxDSAnim() override; + void CopyFrom(MxDSAnim &p_dsAnim); + MxDSAnim &operator=(MxDSAnim &p_dsAnim); + // OFFSET: LEGO1 0x100c9060 inline virtual const char *ClassName() const override // vtable+0x0c { @@ -24,6 +26,8 @@ class MxDSAnim : public MxDSMediaAction { return !strcmp(name, MxDSAnim::ClassName()) || MxDSMediaAction::IsA(name); } + + virtual MxDSAction *Clone(); // vtable+2c; }; #endif // MXDSANIM_H diff --git a/LEGO1/mxdsevent.cpp b/LEGO1/mxdsevent.cpp index b6571075..2894f074 100644 --- a/LEGO1/mxdsevent.cpp +++ b/LEGO1/mxdsevent.cpp @@ -1,5 +1,7 @@ #include "mxdsevent.h" +DECOMP_SIZE_ASSERT(MxDSEvent, 0xb8) + // OFFSET: LEGO1 0x100c95f0 MxDSEvent::MxDSEvent() { @@ -10,3 +12,30 @@ MxDSEvent::MxDSEvent() MxDSEvent::~MxDSEvent() { } + +// OFFSET: LEGO1 0x100c97f0 +void MxDSEvent::CopyFrom(MxDSEvent &p_dsEvent) +{ +} + +// OFFSET: LEGO1 0x100c9800 +MxDSEvent &MxDSEvent::operator=(MxDSEvent &p_dsEvent) +{ + if (this == &p_dsEvent) + return *this; + + MxDSMediaAction::operator=(p_dsEvent); + this->CopyFrom(p_dsEvent); + return *this; +} + +// OFFSET: LEGO1 0x100c9830 +MxDSAction *MxDSEvent::Clone() +{ + MxDSEvent *clone = new MxDSEvent(); + + if (clone) + *clone = *this; + + return clone; +} \ No newline at end of file diff --git a/LEGO1/mxdsevent.h b/LEGO1/mxdsevent.h index 59a00bb5..b8fedace 100644 --- a/LEGO1/mxdsevent.h +++ b/LEGO1/mxdsevent.h @@ -9,6 +9,9 @@ class MxDSEvent : public MxDSMediaAction MxDSEvent(); virtual ~MxDSEvent() override; + void CopyFrom(MxDSEvent &p_dsEvent); + MxDSEvent &operator=(MxDSEvent &p_dsEvent); + // OFFSET: LEGO1 0x100c9660 inline virtual const char *ClassName() const override // vtable+0x0c { @@ -21,6 +24,8 @@ class MxDSEvent : public MxDSMediaAction { return !strcmp(name, MxDSEvent::ClassName()) || MxDSMediaAction::IsA(name); } + + virtual MxDSAction *Clone(); // vtable+2c; }; #endif // MXDSEVENT_H diff --git a/LEGO1/mxdsobjectaction.cpp b/LEGO1/mxdsobjectaction.cpp index d468f30a..a51cdb87 100644 --- a/LEGO1/mxdsobjectaction.cpp +++ b/LEGO1/mxdsobjectaction.cpp @@ -1,5 +1,7 @@ #include "mxdsobjectaction.h" +DECOMP_SIZE_ASSERT(MxDSObjectAction, 0xb8) + // OFFSET: LEGO1 0x100c8870 MxDSObjectAction::MxDSObjectAction() { @@ -10,3 +12,30 @@ MxDSObjectAction::MxDSObjectAction() MxDSObjectAction::~MxDSObjectAction() { } + +// OFFSET: LEGO1 0x100c8a70 +void MxDSObjectAction::CopyFrom(MxDSObjectAction &p_dsObjectAction) +{ +} + +// OFFSET: LEGO1 0x100c8a80 +MxDSObjectAction &MxDSObjectAction::operator=(MxDSObjectAction &p_dsObjectAction) +{ + if (this == &p_dsObjectAction) + return *this; + + MxDSMediaAction::operator=(p_dsObjectAction); + this->CopyFrom(p_dsObjectAction); + return *this; +} + +// OFFSET: LEGO1 0x100c8ab0 +MxDSAction *MxDSObjectAction::Clone() +{ + MxDSObjectAction *clone = new MxDSObjectAction(); + + if (clone) + *clone = *this; + + return clone; +} diff --git a/LEGO1/mxdsobjectaction.h b/LEGO1/mxdsobjectaction.h index 12e147fc..4a1b68bb 100644 --- a/LEGO1/mxdsobjectaction.h +++ b/LEGO1/mxdsobjectaction.h @@ -11,6 +11,8 @@ class MxDSObjectAction : public MxDSMediaAction MxDSObjectAction(); virtual ~MxDSObjectAction() override; + MxDSObjectAction &operator=(MxDSObjectAction &p_dsObjectAction); + // OFFSET: LEGO1 0x100c88e0 inline virtual const char *ClassName() const override // vtable+0x0c { @@ -23,6 +25,9 @@ class MxDSObjectAction : public MxDSMediaAction { return !strcmp(name, MxDSObjectAction::ClassName()) || MxDSMediaAction::IsA(name); } + + virtual MxDSAction *Clone(); // vtable+2c; + virtual void CopyFrom(MxDSObjectAction &p_dsObjectAction); // vtable+44; }; #endif // MXDSOBJECTACTION_H diff --git a/LEGO1/mxdsstill.cpp b/LEGO1/mxdsstill.cpp index 938afe83..6d9a78a2 100644 --- a/LEGO1/mxdsstill.cpp +++ b/LEGO1/mxdsstill.cpp @@ -1,5 +1,7 @@ #include "mxdsstill.h" +DECOMP_SIZE_ASSERT(MxDSStill, 0xb8) + // OFFSET: LEGO1 0x100c98c0 MxDSStill::MxDSStill() { @@ -10,3 +12,30 @@ MxDSStill::MxDSStill() MxDSStill::~MxDSStill() { } + +// OFFSET: LEGO1 0x100c9ac0 +void MxDSStill::CopyFrom(MxDSStill &p_dsStill) +{ +} + +// OFFSET: LEGO1 0x100c9ad0 +MxDSStill &MxDSStill::operator=(MxDSStill &p_dsStill) +{ + if (this == &p_dsStill) + return *this; + + MxDSMediaAction::operator=(p_dsStill); + this->CopyFrom(p_dsStill); + return *this; +} + +// OFFSET: LEGO1 0x100c9b00 +MxDSAction *MxDSStill::Clone() +{ + MxDSStill *clone = new MxDSStill(); + + if (clone) + *clone = *this; + + return clone; +} \ No newline at end of file diff --git a/LEGO1/mxdsstill.h b/LEGO1/mxdsstill.h index 920f890a..084fe931 100644 --- a/LEGO1/mxdsstill.h +++ b/LEGO1/mxdsstill.h @@ -11,6 +11,9 @@ class MxDSStill : public MxDSMediaAction MxDSStill(); virtual ~MxDSStill() override; + void CopyFrom(MxDSStill &p_dsStill); + MxDSStill &operator=(MxDSStill &p_dsStill); + // OFFSET: LEGO1 0x100c9930 inline virtual const char *ClassName() const override // vtable+0x0c { @@ -23,6 +26,8 @@ class MxDSStill : public MxDSMediaAction { return !strcmp(name, MxDSStill::ClassName()) || MxDSMediaAction::IsA(name); } + + virtual MxDSAction *Clone(); // vtable+2c; }; #endif // MXDSSTILL_H