mirror of
https://github.com/isledecomp/isle.git
synced 2025-12-09 23:53:02 +00:00
Beta match and cleanup of MxDS* classes (#1432)
* Clean up / beta match MxDS* classes * ;)
This commit is contained in:
@@ -47,17 +47,17 @@ public:
|
|||||||
return !strcmp(p_name, MxDSAction::ClassName()) || MxDSObject::IsA(p_name);
|
return !strcmp(p_name, MxDSAction::ClassName()) || MxDSObject::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
undefined4 VTable0x14() override; // vtable+14;
|
undefined4 VTable0x14() override; // vtable+0x14
|
||||||
MxU32 GetSizeOnDisk() override; // vtable+18;
|
MxU32 GetSizeOnDisk() override; // vtable+0x18
|
||||||
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
|
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+0x1c
|
||||||
virtual MxLong GetDuration(); // vtable+24;
|
virtual MxLong GetDuration(); // vtable+0x24
|
||||||
virtual void SetDuration(MxLong p_duration); // vtable+28;
|
virtual void SetDuration(MxLong p_duration); // vtable+0x28
|
||||||
virtual MxDSAction* Clone(); // vtable+2c;
|
virtual MxDSAction* Clone(); // vtable+0x2c
|
||||||
virtual void MergeFrom(MxDSAction& p_dsAction); // vtable+30;
|
virtual void MergeFrom(MxDSAction& p_dsAction); // vtable+0x30
|
||||||
virtual MxBool HasId(MxU32 p_objectId); // vtable+34;
|
virtual MxBool HasId(MxU32 p_objectId); // vtable+0x34
|
||||||
virtual void SetUnknown90(MxLong p_unk0x90); // vtable+38;
|
virtual void SetUnknown90(MxLong p_unk0x90); // vtable+0x38
|
||||||
virtual MxLong GetUnknown90(); // vtable+3c;
|
virtual MxLong GetUnknown90(); // vtable+0x3c
|
||||||
virtual MxLong GetElapsedTime(); // vtable+40;
|
virtual MxLong GetElapsedTime(); // vtable+0x40
|
||||||
|
|
||||||
void AppendExtra(MxU16 p_extraLength, const char* p_extraData);
|
void AppendExtra(MxU16 p_extraLength, const char* p_extraData);
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public:
|
|||||||
} // vtable+0x14
|
} // vtable+0x14
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9cb0
|
// FUNCTION: LEGO1 0x100c9cb0
|
||||||
|
// FUNCTION: BETA10 0x1015add0
|
||||||
static void Destroy(MxDSAction* p_action) { delete p_action; }
|
static void Destroy(MxDSAction* p_action) { delete p_action; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c9dc0
|
// SYNTHETIC: LEGO1 0x100c9dc0
|
||||||
@@ -139,4 +140,7 @@ public:
|
|||||||
// TEMPLATE: BETA10 0x1015bd90
|
// TEMPLATE: BETA10 0x1015bd90
|
||||||
// MxList<MxDSAction *>::DeleteAll
|
// MxList<MxDSAction *>::DeleteAll
|
||||||
|
|
||||||
|
// TEMPLATE: BETA10 0x1015be20
|
||||||
|
// MxListCursor<MxDSAction *>::HasMatch
|
||||||
|
|
||||||
#endif // MXDSACTIONLIST_H
|
#endif // MXDSACTIONLIST_H
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
class MxDSAnim : public MxDSMediaAction {
|
class MxDSAnim : public MxDSMediaAction {
|
||||||
public:
|
public:
|
||||||
MxDSAnim();
|
MxDSAnim();
|
||||||
|
MxDSAnim(MxDSAnim& p_dsAnim);
|
||||||
~MxDSAnim() override;
|
~MxDSAnim() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSAnim& p_dsAnim);
|
void CopyFrom(MxDSAnim& p_dsAnim);
|
||||||
@@ -23,14 +24,16 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9070
|
// FUNCTION: LEGO1 0x100c9070
|
||||||
|
// FUNCTION: BETA10 0x1015d8b0
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSAnim::ClassName()) || MxDSMediaAction::IsA(p_name);
|
return !strcmp(p_name, MxDSAnim::ClassName()) || MxDSMediaAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c9180
|
// SYNTHETIC: LEGO1 0x100c9180
|
||||||
|
// SYNTHETIC: BETA10 0x1015d910
|
||||||
// MxDSAnim::`scalar deleting destructor'
|
// MxDSAnim::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
class MxDSEvent : public MxDSMediaAction {
|
class MxDSEvent : public MxDSMediaAction {
|
||||||
public:
|
public:
|
||||||
MxDSEvent();
|
MxDSEvent();
|
||||||
|
MxDSEvent(MxDSEvent& p_dsEvent);
|
||||||
~MxDSEvent() override;
|
~MxDSEvent() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSEvent& p_dsEvent);
|
void CopyFrom(MxDSEvent& p_dsEvent);
|
||||||
@@ -22,14 +23,16 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9670
|
// FUNCTION: LEGO1 0x100c9670
|
||||||
|
// FUNCTION: BETA10 0x1015da30
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSEvent::ClassName()) || MxDSMediaAction::IsA(p_name);
|
return !strcmp(p_name, MxDSEvent::ClassName()) || MxDSMediaAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c9780
|
// SYNTHETIC: LEGO1 0x100c9780
|
||||||
|
// SYNTHETIC: BETA10 0x1015da90
|
||||||
// MxDSEvent::`scalar deleting destructor'
|
// MxDSEvent::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,10 @@
|
|||||||
class MxDSMediaAction : public MxDSAction {
|
class MxDSMediaAction : public MxDSAction {
|
||||||
public:
|
public:
|
||||||
MxDSMediaAction();
|
MxDSMediaAction();
|
||||||
|
MxDSMediaAction(MxDSMediaAction& p_dsMediaAction);
|
||||||
~MxDSMediaAction() override;
|
~MxDSMediaAction() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSMediaAction& p_dsMediaAction);
|
void CopyFrom(MxDSMediaAction& p_dsMediaAction);
|
||||||
MxDSMediaAction(MxDSMediaAction& p_dsMediaAction);
|
|
||||||
MxDSMediaAction& operator=(MxDSMediaAction& p_dsMediaAction);
|
MxDSMediaAction& operator=(MxDSMediaAction& p_dsMediaAction);
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c8be0
|
// FUNCTION: LEGO1 0x100c8be0
|
||||||
@@ -35,10 +35,10 @@ public:
|
|||||||
// SYNTHETIC: BETA10 0x1015d810
|
// SYNTHETIC: BETA10 0x1015d810
|
||||||
// MxDSMediaAction::`scalar deleting destructor'
|
// MxDSMediaAction::`scalar deleting destructor'
|
||||||
|
|
||||||
undefined4 VTable0x14() override; // vtable+14;
|
undefined4 VTable0x14() override; // vtable+0x14
|
||||||
MxU32 GetSizeOnDisk() override; // vtable+18;
|
MxU32 GetSizeOnDisk() override; // vtable+0x18
|
||||||
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
|
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+0x1c
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
void CopyMediaSrcPath(const char* p_mediaSrcPath);
|
void CopyMediaSrcPath(const char* p_mediaSrcPath);
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
class MxDSMultiAction : public MxDSAction {
|
class MxDSMultiAction : public MxDSAction {
|
||||||
public:
|
public:
|
||||||
MxDSMultiAction();
|
MxDSMultiAction();
|
||||||
|
MxDSMultiAction(MxDSMultiAction& p_dsMultiAction);
|
||||||
~MxDSMultiAction() override;
|
~MxDSMultiAction() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSMultiAction& p_dsMultiAction);
|
void CopyFrom(MxDSMultiAction& p_dsMultiAction);
|
||||||
@@ -24,29 +25,31 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9f60
|
// FUNCTION: LEGO1 0x100c9f60
|
||||||
|
// FUNCTION: BETA10 0x1015b1b0
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSMultiAction::ClassName()) || MxDSAction::IsA(p_name);
|
return !strcmp(p_name, MxDSMultiAction::ClassName()) || MxDSAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
undefined4 VTable0x14() override; // vtable+14;
|
undefined4 VTable0x14() override; // vtable+0x14
|
||||||
MxU32 GetSizeOnDisk() override; // vtable+18;
|
MxU32 GetSizeOnDisk() override; // vtable+0x18
|
||||||
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
|
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+0x1c
|
||||||
void SetAtomId(MxAtomId p_atomId) override; // vtable+20;
|
void SetAtomId(MxAtomId p_atomId) override; // vtable+0x20
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
void MergeFrom(MxDSAction& p_dsAction) override; // vtable+30;
|
void MergeFrom(MxDSAction& p_dsAction) override; // vtable+0x30
|
||||||
MxBool HasId(MxU32 p_objectId) override; // vtable+34;
|
MxBool HasId(MxU32 p_objectId) override; // vtable+0x34
|
||||||
void SetUnknown90(MxLong p_unk0x90) override; // vtable+38;
|
void SetUnknown90(MxLong p_unk0x90) override; // vtable+0x38
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1004e180
|
// FUNCTION: BETA10 0x1004e180
|
||||||
MxDSActionList* GetActionList() const { return m_actions; }
|
MxDSActionList* GetActionList() const { return m_actionList; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100ca040
|
// SYNTHETIC: LEGO1 0x100ca040
|
||||||
|
// SYNTHETIC: BETA10 0x1015b210
|
||||||
// MxDSMultiAction::`scalar deleting destructor'
|
// MxDSMultiAction::`scalar deleting destructor'
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxU32 m_sizeOnDisk; // 0x94
|
MxU32 m_sizeOnDisk; // 0x94
|
||||||
MxDSActionList* m_actions; // 0x98
|
MxDSActionList* m_actionList; // 0x98
|
||||||
};
|
};
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1004ad10
|
// SYNTHETIC: LEGO1 0x1004ad10
|
||||||
|
|||||||
@@ -55,23 +55,23 @@ public:
|
|||||||
|
|
||||||
// FUNCTION: LEGO1 0x100bf730
|
// FUNCTION: LEGO1 0x100bf730
|
||||||
// FUNCTION: BETA10 0x1012bdd0
|
// FUNCTION: BETA10 0x1012bdd0
|
||||||
const char* ClassName() const override { return "MxDSObject"; } // vtable+0c
|
const char* ClassName() const override { return "MxDSObject"; } // vtable+0x0c
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100bf740
|
// FUNCTION: LEGO1 0x100bf740
|
||||||
// FUNCTION: BETA10 0x1012bd70
|
// FUNCTION: BETA10 0x1012bd70
|
||||||
MxBool IsA(const char* p_name) const override
|
MxBool IsA(const char* p_name) const override
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSObject::ClassName()) || MxCore::IsA(p_name);
|
return !strcmp(p_name, MxDSObject::ClassName()) || MxCore::IsA(p_name);
|
||||||
} // vtable+10;
|
} // vtable+0x10
|
||||||
|
|
||||||
virtual undefined4 VTable0x14(); // vtable+14;
|
virtual undefined4 VTable0x14(); // vtable+0x14
|
||||||
virtual MxU32 GetSizeOnDisk(); // vtable+18;
|
virtual MxU32 GetSizeOnDisk(); // vtable+0x18
|
||||||
virtual void Deserialize(MxU8*& p_source, MxS16 p_unk0x24); // vtable+1c;
|
virtual void Deserialize(MxU8*& p_source, MxS16 p_unk0x24); // vtable+0x1c
|
||||||
|
|
||||||
// FUNCTION: ISLE 0x401c40
|
// FUNCTION: ISLE 0x401c40
|
||||||
// FUNCTION: LEGO1 0x10005530
|
// FUNCTION: LEGO1 0x10005530
|
||||||
// FUNCTION: BETA10 0x100152e0
|
// FUNCTION: BETA10 0x100152e0
|
||||||
virtual void SetAtomId(MxAtomId p_atomId) { m_atomId = p_atomId; } // vtable+20;
|
virtual void SetAtomId(MxAtomId p_atomId) { m_atomId = p_atomId; } // vtable+0x20
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1012ef90
|
// FUNCTION: BETA10 0x1012ef90
|
||||||
Type GetType() const { return (Type) m_type; }
|
Type GetType() const { return (Type) m_type; }
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
class MxDSObjectAction : public MxDSMediaAction {
|
class MxDSObjectAction : public MxDSMediaAction {
|
||||||
public:
|
public:
|
||||||
MxDSObjectAction();
|
MxDSObjectAction();
|
||||||
|
MxDSObjectAction(MxDSObjectAction& p_dsObjectAction);
|
||||||
~MxDSObjectAction() override;
|
~MxDSObjectAction() override;
|
||||||
|
|
||||||
MxDSObjectAction& operator=(MxDSObjectAction& p_dsObjectAction);
|
MxDSObjectAction& operator=(MxDSObjectAction& p_dsObjectAction);
|
||||||
@@ -22,15 +23,17 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c88f0
|
// FUNCTION: LEGO1 0x100c88f0
|
||||||
|
// FUNCTION: BETA10 0x1015c640
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSObjectAction::ClassName()) || MxDSMediaAction::IsA(p_name);
|
return !strcmp(p_name, MxDSObjectAction::ClassName()) || MxDSMediaAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
virtual void CopyFrom(MxDSObjectAction& p_dsObjectAction); // vtable+44;
|
virtual void CopyFrom(MxDSObjectAction& p_dsObjectAction); // vtable+0x44
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c8a00
|
// SYNTHETIC: LEGO1 0x100c8a00
|
||||||
|
// SYNTHETIC: BETA10 0x1015c720
|
||||||
// MxDSObjectAction::`scalar deleting destructor'
|
// MxDSObjectAction::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
class MxDSParallelAction : public MxDSMultiAction {
|
class MxDSParallelAction : public MxDSMultiAction {
|
||||||
public:
|
public:
|
||||||
MxDSParallelAction();
|
MxDSParallelAction();
|
||||||
|
MxDSParallelAction(MxDSParallelAction& p_dsParallelAction);
|
||||||
~MxDSParallelAction() override;
|
~MxDSParallelAction() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSParallelAction& p_dsParallelAction);
|
void CopyFrom(MxDSParallelAction& p_dsParallelAction);
|
||||||
@@ -23,20 +24,23 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100caf10
|
// FUNCTION: LEGO1 0x100caf10
|
||||||
|
// FUNCTION: BETA10 0x1015b3c0
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSParallelAction::ClassName()) || MxDSMultiAction::IsA(p_name);
|
return !strcmp(p_name, MxDSParallelAction::ClassName()) || MxDSMultiAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100cb020
|
MxLong GetDuration() override; // vtable+0x24
|
||||||
// MxDSParallelAction::`scalar deleting destructor'
|
|
||||||
|
|
||||||
MxLong GetDuration() override; // vtable+24;
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100caef0
|
// FUNCTION: LEGO1 0x100caef0
|
||||||
|
// FUNCTION: BETA10 0x1015b370
|
||||||
void SetDuration(MxLong p_duration) override { m_duration = p_duration; } // vtable+0x28
|
void SetDuration(MxLong p_duration) override { m_duration = p_duration; } // vtable+0x28
|
||||||
|
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x100cb020
|
||||||
|
// SYNTHETIC: BETA10 0x1015b420
|
||||||
|
// MxDSParallelAction::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDSPARALLELACTION_H
|
#endif // MXDSPARALLELACTION_H
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
class MxDSSelectAction : public MxDSParallelAction {
|
class MxDSSelectAction : public MxDSParallelAction {
|
||||||
public:
|
public:
|
||||||
MxDSSelectAction();
|
MxDSSelectAction();
|
||||||
|
MxDSSelectAction(MxDSSelectAction& p_dsSelectAction);
|
||||||
~MxDSSelectAction() override;
|
~MxDSSelectAction() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSSelectAction& p_dsSelectAction);
|
void CopyFrom(MxDSSelectAction& p_dsSelectAction);
|
||||||
@@ -25,16 +26,18 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb700
|
// FUNCTION: LEGO1 0x100cb700
|
||||||
|
// FUNCTION: BETA10 0x1015b480
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSSelectAction::ClassName()) || MxDSParallelAction::IsA(p_name);
|
return !strcmp(p_name, MxDSSelectAction::ClassName()) || MxDSParallelAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxU32 GetSizeOnDisk() override; // vtable+18;
|
MxU32 GetSizeOnDisk() override; // vtable+0x18
|
||||||
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
|
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+0x1c
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100cb840
|
// SYNTHETIC: LEGO1 0x100cb840
|
||||||
|
// SYNTHETIC: BETA10 0x1015b4e0
|
||||||
// MxDSSelectAction::`scalar deleting destructor'
|
// MxDSSelectAction::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
class MxDSSerialAction : public MxDSMultiAction {
|
class MxDSSerialAction : public MxDSMultiAction {
|
||||||
public:
|
public:
|
||||||
MxDSSerialAction();
|
MxDSSerialAction();
|
||||||
|
MxDSSerialAction(MxDSSerialAction& p_dsSerialAction);
|
||||||
~MxDSSerialAction() override;
|
~MxDSSerialAction() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSSerialAction& p_dsSerialAction);
|
void CopyFrom(MxDSSerialAction& p_dsSerialAction);
|
||||||
@@ -24,22 +25,24 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100caae0
|
// FUNCTION: LEGO1 0x100caae0
|
||||||
|
// FUNCTION: BETA10 0x1015b2d0
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSSerialAction::ClassName()) || MxDSMultiAction::IsA(p_name);
|
return !strcmp(p_name, MxDSSerialAction::ClassName()) || MxDSMultiAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxLong GetDuration() override; // vtable+24;
|
MxLong GetDuration() override; // vtable+0x24
|
||||||
void SetDuration(MxLong p_duration) override; // vtable+28;
|
void SetDuration(MxLong p_duration) override; // vtable+0x28
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100cabf0
|
// SYNTHETIC: LEGO1 0x100cabf0
|
||||||
|
// SYNTHETIC: BETA10 0x1015b330
|
||||||
// MxDSSerialAction::`scalar deleting destructor'
|
// MxDSSerialAction::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MxDSActionListCursor* m_cursor;
|
MxDSActionListCursor* m_cursor; // 0x9c
|
||||||
undefined4 m_unk0xa0;
|
undefined4 m_unk0xa0; // 0xa0
|
||||||
undefined4 m_unk0xa4;
|
undefined4 m_unk0xa4; // 0xa4
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDSSERIALACTION_H
|
#endif // MXDSSERIALACTION_H
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
class MxDSSound : public MxDSMediaAction {
|
class MxDSSound : public MxDSMediaAction {
|
||||||
public:
|
public:
|
||||||
MxDSSound();
|
MxDSSound();
|
||||||
|
MxDSSound(MxDSSound& p_dsSound);
|
||||||
~MxDSSound() override;
|
~MxDSSound() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSSound& p_dsSound);
|
void CopyFrom(MxDSSound& p_dsSound);
|
||||||
@@ -23,19 +24,21 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9340
|
// FUNCTION: LEGO1 0x100c9340
|
||||||
|
// FUNCTION: BETA10 0x1015d970
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSSound::ClassName()) || MxDSMediaAction::IsA(p_name);
|
return !strcmp(p_name, MxDSSound::ClassName()) || MxDSMediaAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxU32 GetSizeOnDisk() override; // vtable+18;
|
MxU32 GetSizeOnDisk() override; // vtable+0x18
|
||||||
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
|
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+0x1c
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1008d060
|
// FUNCTION: BETA10 0x1008d060
|
||||||
MxS32 GetVolume() const { return m_volume; }
|
MxS32 GetVolume() const { return m_volume; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c9450
|
// SYNTHETIC: LEGO1 0x100c9450
|
||||||
|
// SYNTHETIC: BETA10 0x1015d9d0
|
||||||
// MxDSSound::`scalar deleting destructor'
|
// MxDSSound::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
class MxDSStill : public MxDSMediaAction {
|
class MxDSStill : public MxDSMediaAction {
|
||||||
public:
|
public:
|
||||||
MxDSStill();
|
MxDSStill();
|
||||||
|
MxDSStill(MxDSStill& p_dsStill);
|
||||||
~MxDSStill() override;
|
~MxDSStill() override;
|
||||||
|
|
||||||
void CopyFrom(MxDSStill& p_dsStill);
|
void CopyFrom(MxDSStill& p_dsStill);
|
||||||
@@ -23,14 +24,16 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9940
|
// FUNCTION: LEGO1 0x100c9940
|
||||||
|
// FUNCTION: BETA10 0x1015daf0
|
||||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, MxDSStill::ClassName()) || MxDSMediaAction::IsA(p_name);
|
return !strcmp(p_name, MxDSStill::ClassName()) || MxDSMediaAction::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSAction* Clone() override; // vtable+2c;
|
MxDSAction* Clone() override; // vtable+0x2c
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100c9a50
|
// SYNTHETIC: LEGO1 0x100c9a50
|
||||||
|
// SYNTHETIC: BETA10 0x1015db50
|
||||||
// MxDSStill::`scalar deleting destructor'
|
// MxDSStill::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public:
|
|||||||
|
|
||||||
MxDSStreamingAction* CopyFrom(MxDSStreamingAction& p_dsStreamingAction);
|
MxDSStreamingAction* CopyFrom(MxDSStreamingAction& p_dsStreamingAction);
|
||||||
|
|
||||||
MxBool HasId(MxU32 p_objectId) override; // vtable+0x34;
|
MxBool HasId(MxU32 p_objectId) override; // vtable+0x34
|
||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
void SetInternalAction(MxDSAction* p_dsAction);
|
void SetInternalAction(MxDSAction* p_dsAction);
|
||||||
|
|||||||
@@ -6,20 +6,29 @@ DECOMP_SIZE_ASSERT(MxDSAnim, 0xb8)
|
|||||||
// FUNCTION: BETA10 0x1015cd71
|
// FUNCTION: BETA10 0x1015cd71
|
||||||
MxDSAnim::MxDSAnim()
|
MxDSAnim::MxDSAnim()
|
||||||
{
|
{
|
||||||
this->SetType(e_anim);
|
m_type = e_anim;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c91a0
|
// FUNCTION: LEGO1 0x100c91a0
|
||||||
|
// FUNCTION: BETA10 0x1015cde9
|
||||||
MxDSAnim::~MxDSAnim()
|
MxDSAnim::~MxDSAnim()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c91f0
|
// FUNCTION: LEGO1 0x100c91f0
|
||||||
|
// FUNCTION: BETA10 0x1015ce51
|
||||||
void MxDSAnim::CopyFrom(MxDSAnim& p_dsAnim)
|
void MxDSAnim::CopyFrom(MxDSAnim& p_dsAnim)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015ce69
|
||||||
|
MxDSAnim::MxDSAnim(MxDSAnim& p_dsAnim) : MxDSMediaAction(p_dsAnim)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsAnim);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9200
|
// FUNCTION: LEGO1 0x100c9200
|
||||||
|
// FUNCTION: BETA10 0x1015ceea
|
||||||
MxDSAnim& MxDSAnim::operator=(MxDSAnim& p_dsAnim)
|
MxDSAnim& MxDSAnim::operator=(MxDSAnim& p_dsAnim)
|
||||||
{
|
{
|
||||||
if (this == &p_dsAnim) {
|
if (this == &p_dsAnim) {
|
||||||
@@ -27,11 +36,12 @@ MxDSAnim& MxDSAnim::operator=(MxDSAnim& p_dsAnim)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMediaAction::operator=(p_dsAnim);
|
MxDSMediaAction::operator=(p_dsAnim);
|
||||||
this->CopyFrom(p_dsAnim);
|
CopyFrom(p_dsAnim);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9230
|
// FUNCTION: LEGO1 0x100c9230
|
||||||
|
// FUNCTION: BETA10 0x1015cf31
|
||||||
MxDSAction* MxDSAnim::Clone()
|
MxDSAction* MxDSAnim::Clone()
|
||||||
{
|
{
|
||||||
MxDSAnim* clone = new MxDSAnim();
|
MxDSAnim* clone = new MxDSAnim();
|
||||||
|
|||||||
@@ -6,20 +6,29 @@ DECOMP_SIZE_ASSERT(MxDSEvent, 0xb8)
|
|||||||
// FUNCTION: BETA10 0x1015d2e5
|
// FUNCTION: BETA10 0x1015d2e5
|
||||||
MxDSEvent::MxDSEvent()
|
MxDSEvent::MxDSEvent()
|
||||||
{
|
{
|
||||||
this->SetType(e_event);
|
m_type = e_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c97a0
|
// FUNCTION: LEGO1 0x100c97a0
|
||||||
|
// FUNCTION: BETA10 0x1015d35d
|
||||||
MxDSEvent::~MxDSEvent()
|
MxDSEvent::~MxDSEvent()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c97f0
|
// FUNCTION: LEGO1 0x100c97f0
|
||||||
|
// FUNCTION: BETA10 0x1015d3c5
|
||||||
void MxDSEvent::CopyFrom(MxDSEvent& p_dsEvent)
|
void MxDSEvent::CopyFrom(MxDSEvent& p_dsEvent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015d3dd
|
||||||
|
MxDSEvent::MxDSEvent(MxDSEvent& p_dsEvent) : MxDSMediaAction(p_dsEvent)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsEvent);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9800
|
// FUNCTION: LEGO1 0x100c9800
|
||||||
|
// FUNCTION: BETA10 0x1015d45e
|
||||||
MxDSEvent& MxDSEvent::operator=(MxDSEvent& p_dsEvent)
|
MxDSEvent& MxDSEvent::operator=(MxDSEvent& p_dsEvent)
|
||||||
{
|
{
|
||||||
if (this == &p_dsEvent) {
|
if (this == &p_dsEvent) {
|
||||||
@@ -27,11 +36,12 @@ MxDSEvent& MxDSEvent::operator=(MxDSEvent& p_dsEvent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMediaAction::operator=(p_dsEvent);
|
MxDSMediaAction::operator=(p_dsEvent);
|
||||||
this->CopyFrom(p_dsEvent);
|
CopyFrom(p_dsEvent);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9830
|
// FUNCTION: LEGO1 0x100c9830
|
||||||
|
// FUNCTION: BETA10 0x1015d4a5
|
||||||
MxDSAction* MxDSEvent::Clone()
|
MxDSAction* MxDSEvent::Clone()
|
||||||
{
|
{
|
||||||
MxDSEvent* clone = new MxDSEvent();
|
MxDSEvent* clone = new MxDSEvent();
|
||||||
|
|||||||
@@ -87,8 +87,9 @@ void MxDSMediaAction::CopyMediaSrcPath(const char* p_mediaSrcPath)
|
|||||||
if (m_mediaSrcPath) {
|
if (m_mediaSrcPath) {
|
||||||
strcpy(m_mediaSrcPath, p_mediaSrcPath);
|
strcpy(m_mediaSrcPath, p_mediaSrcPath);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
MxTrace("MxDSMediaAction: name allocation failed: %s.\n", p_mediaSrcPath);
|
MxTrace("MxDSMediaAction: name allocation failed: %s.\n", p_mediaSrcPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_mediaSrcPath = NULL;
|
m_mediaSrcPath = NULL;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#include "mxdsmultiaction.h"
|
#include "mxdsmultiaction.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxDSMultiAction, 0x9c)
|
DECOMP_SIZE_ASSERT(MxDSMultiAction, 0x9c)
|
||||||
DECOMP_SIZE_ASSERT(MxDSActionList, 0x1c);
|
DECOMP_SIZE_ASSERT(MxDSActionList, 0x1c);
|
||||||
DECOMP_SIZE_ASSERT(MxDSActionListCursor, 0x10);
|
DECOMP_SIZE_ASSERT(MxDSActionListCursor, 0x10);
|
||||||
@@ -8,33 +10,40 @@ DECOMP_SIZE_ASSERT(MxDSActionListCursor, 0x10);
|
|||||||
// FUNCTION: BETA10 0x10159410
|
// FUNCTION: BETA10 0x10159410
|
||||||
MxDSMultiAction::MxDSMultiAction()
|
MxDSMultiAction::MxDSMultiAction()
|
||||||
{
|
{
|
||||||
this->SetType(e_multiAction);
|
m_type = e_multiAction;
|
||||||
this->m_actions = new MxDSActionList;
|
m_actionList = new MxDSActionList;
|
||||||
this->m_actions->SetDestroy(MxDSActionList::Destroy);
|
assert(m_actionList);
|
||||||
|
m_actionList->SetDestroy(MxDSActionList::Destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca060
|
// FUNCTION: LEGO1 0x100ca060
|
||||||
|
// FUNCTION: BETA10 0x10159518
|
||||||
MxDSMultiAction::~MxDSMultiAction()
|
MxDSMultiAction::~MxDSMultiAction()
|
||||||
{
|
{
|
||||||
if (this->m_actions) {
|
delete m_actionList;
|
||||||
delete this->m_actions;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca0d0
|
// FUNCTION: LEGO1 0x100ca0d0
|
||||||
// FUNCTION: BETA10 0x101595ad
|
// FUNCTION: BETA10 0x101595ad
|
||||||
void MxDSMultiAction::CopyFrom(MxDSMultiAction& p_dsMultiAction)
|
void MxDSMultiAction::CopyFrom(MxDSMultiAction& p_dsMultiAction)
|
||||||
{
|
{
|
||||||
this->m_actions->DeleteAll();
|
m_actionList->DeleteAll();
|
||||||
|
|
||||||
MxDSActionListCursor cursor(p_dsMultiAction.m_actions);
|
MxDSActionListCursor cursor(p_dsMultiAction.m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
this->m_actions->Append(action->Clone());
|
m_actionList->Append(action->Clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10159660
|
||||||
|
MxDSMultiAction::MxDSMultiAction(MxDSMultiAction& p_dsMultiAction) : MxDSAction(p_dsMultiAction)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsMultiAction);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca260
|
// FUNCTION: LEGO1 0x100ca260
|
||||||
|
// FUNCTION: BETA10 0x101596e1
|
||||||
MxDSMultiAction& MxDSMultiAction::operator=(MxDSMultiAction& p_dsMultiAction)
|
MxDSMultiAction& MxDSMultiAction::operator=(MxDSMultiAction& p_dsMultiAction)
|
||||||
{
|
{
|
||||||
if (this == &p_dsMultiAction) {
|
if (this == &p_dsMultiAction) {
|
||||||
@@ -42,16 +51,17 @@ MxDSMultiAction& MxDSMultiAction::operator=(MxDSMultiAction& p_dsMultiAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSAction::operator=(p_dsMultiAction);
|
MxDSAction::operator=(p_dsMultiAction);
|
||||||
this->CopyFrom(p_dsMultiAction);
|
CopyFrom(p_dsMultiAction);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca290
|
// FUNCTION: LEGO1 0x100ca290
|
||||||
|
// FUNCTION: BETA10 0x10159728
|
||||||
void MxDSMultiAction::SetUnknown90(MxLong p_unk0x90)
|
void MxDSMultiAction::SetUnknown90(MxLong p_unk0x90)
|
||||||
{
|
{
|
||||||
this->m_unk0x90 = p_unk0x90;
|
m_unk0x90 = p_unk0x90;
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
action->SetUnknown90(p_unk0x90);
|
action->SetUnknown90(p_unk0x90);
|
||||||
@@ -59,11 +69,12 @@ void MxDSMultiAction::SetUnknown90(MxLong p_unk0x90)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca370
|
// FUNCTION: LEGO1 0x100ca370
|
||||||
|
// FUNCTION: BETA10 0x101597ce
|
||||||
void MxDSMultiAction::MergeFrom(MxDSAction& p_dsMultiAction)
|
void MxDSMultiAction::MergeFrom(MxDSAction& p_dsMultiAction)
|
||||||
{
|
{
|
||||||
MxDSAction::MergeFrom(p_dsMultiAction);
|
MxDSAction::MergeFrom(p_dsMultiAction);
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
action->MergeFrom(p_dsMultiAction);
|
action->MergeFrom(p_dsMultiAction);
|
||||||
@@ -71,13 +82,14 @@ void MxDSMultiAction::MergeFrom(MxDSAction& p_dsMultiAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca450
|
// FUNCTION: LEGO1 0x100ca450
|
||||||
|
// FUNCTION: BETA10 0x10159874
|
||||||
MxBool MxDSMultiAction::HasId(MxU32 p_objectId)
|
MxBool MxDSMultiAction::HasId(MxU32 p_objectId)
|
||||||
{
|
{
|
||||||
if (this->GetObjectId() == p_objectId) {
|
if (GetObjectId() == p_objectId) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
if (action->HasId(p_objectId)) {
|
if (action->HasId(p_objectId)) {
|
||||||
@@ -89,6 +101,7 @@ MxBool MxDSMultiAction::HasId(MxU32 p_objectId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca550
|
// FUNCTION: LEGO1 0x100ca550
|
||||||
|
// FUNCTION: BETA10 0x10159959
|
||||||
MxDSAction* MxDSMultiAction::Clone()
|
MxDSAction* MxDSMultiAction::Clone()
|
||||||
{
|
{
|
||||||
MxDSMultiAction* clone = new MxDSMultiAction();
|
MxDSMultiAction* clone = new MxDSMultiAction();
|
||||||
@@ -101,11 +114,12 @@ MxDSAction* MxDSMultiAction::Clone()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca5e0
|
// FUNCTION: LEGO1 0x100ca5e0
|
||||||
|
// FUNCTION: BETA10 0x10159a03
|
||||||
undefined4 MxDSMultiAction::VTable0x14()
|
undefined4 MxDSMultiAction::VTable0x14()
|
||||||
{
|
{
|
||||||
undefined4 result = MxDSAction::VTable0x14();
|
undefined4 result = MxDSAction::VTable0x14();
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
result += action->VTable0x14();
|
result += action->VTable0x14();
|
||||||
@@ -115,22 +129,26 @@ undefined4 MxDSMultiAction::VTable0x14()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca6c0
|
// FUNCTION: LEGO1 0x100ca6c0
|
||||||
|
// FUNCTION: BETA10 0x10159aaf
|
||||||
MxU32 MxDSMultiAction::GetSizeOnDisk()
|
MxU32 MxDSMultiAction::GetSizeOnDisk()
|
||||||
{
|
{
|
||||||
MxU32 totalSizeOnDisk = MxDSAction::GetSizeOnDisk() + 16;
|
MxU32 totalSizeOnDisk = MxDSAction::GetSizeOnDisk();
|
||||||
|
totalSizeOnDisk += 12;
|
||||||
|
totalSizeOnDisk += 4;
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
totalSizeOnDisk += action->GetSizeOnDisk();
|
totalSizeOnDisk += action->GetSizeOnDisk();
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_sizeOnDisk = totalSizeOnDisk - MxDSAction::GetSizeOnDisk();
|
m_sizeOnDisk = totalSizeOnDisk - MxDSAction::GetSizeOnDisk();
|
||||||
|
|
||||||
return totalSizeOnDisk;
|
return totalSizeOnDisk;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca7b0
|
// FUNCTION: LEGO1 0x100ca7b0
|
||||||
|
// FUNCTION: BETA10 0x10159b79
|
||||||
void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||||
{
|
{
|
||||||
MxDSAction::Deserialize(p_source, p_unk0x24);
|
MxDSAction::Deserialize(p_source, p_unk0x24);
|
||||||
@@ -149,7 +167,7 @@ void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
|||||||
MxDSAction* action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
MxDSAction* action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
||||||
p_source += extraFlag;
|
p_source += extraFlag;
|
||||||
|
|
||||||
this->m_actions->Append(action);
|
m_actionList->Append(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,11 +175,12 @@ void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca8c0
|
// FUNCTION: LEGO1 0x100ca8c0
|
||||||
|
// FUNCTION: BETA10 0x10159c37
|
||||||
void MxDSMultiAction::SetAtomId(MxAtomId p_atomId)
|
void MxDSMultiAction::SetAtomId(MxAtomId p_atomId)
|
||||||
{
|
{
|
||||||
MxDSAction::SetAtomId(p_atomId);
|
MxDSAction::SetAtomId(p_atomId);
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
action->SetAtomId(p_atomId);
|
action->SetAtomId(p_atomId);
|
||||||
|
|||||||
@@ -6,20 +6,29 @@ DECOMP_SIZE_ASSERT(MxDSObjectAction, 0xb8)
|
|||||||
// FUNCTION: BETA10 0x1015c3b0
|
// FUNCTION: BETA10 0x1015c3b0
|
||||||
MxDSObjectAction::MxDSObjectAction()
|
MxDSObjectAction::MxDSObjectAction()
|
||||||
{
|
{
|
||||||
this->SetType(e_objectAction);
|
m_type = e_objectAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c8a20
|
// FUNCTION: LEGO1 0x100c8a20
|
||||||
|
// FUNCTION: BETA10 0x1015c428
|
||||||
MxDSObjectAction::~MxDSObjectAction()
|
MxDSObjectAction::~MxDSObjectAction()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c8a70
|
// FUNCTION: LEGO1 0x100c8a70
|
||||||
|
// FUNCTION: BETA10 0x1015c490
|
||||||
void MxDSObjectAction::CopyFrom(MxDSObjectAction& p_dsObjectAction)
|
void MxDSObjectAction::CopyFrom(MxDSObjectAction& p_dsObjectAction)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015c4a8
|
||||||
|
MxDSObjectAction::MxDSObjectAction(MxDSObjectAction& p_dsObjectAction) : MxDSMediaAction(p_dsObjectAction)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsObjectAction);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c8a80
|
// FUNCTION: LEGO1 0x100c8a80
|
||||||
|
// FUNCTION: BETA10 0x1015c529
|
||||||
MxDSObjectAction& MxDSObjectAction::operator=(MxDSObjectAction& p_dsObjectAction)
|
MxDSObjectAction& MxDSObjectAction::operator=(MxDSObjectAction& p_dsObjectAction)
|
||||||
{
|
{
|
||||||
if (this == &p_dsObjectAction) {
|
if (this == &p_dsObjectAction) {
|
||||||
@@ -27,11 +36,12 @@ MxDSObjectAction& MxDSObjectAction::operator=(MxDSObjectAction& p_dsObjectAction
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMediaAction::operator=(p_dsObjectAction);
|
MxDSMediaAction::operator=(p_dsObjectAction);
|
||||||
this->CopyFrom(p_dsObjectAction);
|
CopyFrom(p_dsObjectAction);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c8ab0
|
// FUNCTION: LEGO1 0x100c8ab0
|
||||||
|
// FUNCTION: BETA10 0x1015c573
|
||||||
MxDSAction* MxDSObjectAction::Clone()
|
MxDSAction* MxDSObjectAction::Clone()
|
||||||
{
|
{
|
||||||
MxDSObjectAction* clone = new MxDSObjectAction();
|
MxDSObjectAction* clone = new MxDSObjectAction();
|
||||||
|
|||||||
@@ -8,20 +8,29 @@ DECOMP_SIZE_ASSERT(MxDSParallelAction, 0x9c)
|
|||||||
// FUNCTION: BETA10 0x1015a14d
|
// FUNCTION: BETA10 0x1015a14d
|
||||||
MxDSParallelAction::MxDSParallelAction()
|
MxDSParallelAction::MxDSParallelAction()
|
||||||
{
|
{
|
||||||
this->SetType(e_parallelAction);
|
m_type = e_parallelAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb040
|
// FUNCTION: LEGO1 0x100cb040
|
||||||
|
// FUNCTION: BETA10 0x1015a1c5
|
||||||
MxDSParallelAction::~MxDSParallelAction()
|
MxDSParallelAction::~MxDSParallelAction()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb090
|
// FUNCTION: LEGO1 0x100cb090
|
||||||
|
// FUNCTION: BETA10 0x1015a22d
|
||||||
void MxDSParallelAction::CopyFrom(MxDSParallelAction& p_dsParallelAction)
|
void MxDSParallelAction::CopyFrom(MxDSParallelAction& p_dsParallelAction)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015a245
|
||||||
|
MxDSParallelAction::MxDSParallelAction(MxDSParallelAction& p_dsParallelAction) : MxDSMultiAction(p_dsParallelAction)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsParallelAction);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb0a0
|
// FUNCTION: LEGO1 0x100cb0a0
|
||||||
|
// FUNCTION: BETA10 0x1015a2c6
|
||||||
MxDSParallelAction& MxDSParallelAction::operator=(MxDSParallelAction& p_dsParallelAction)
|
MxDSParallelAction& MxDSParallelAction::operator=(MxDSParallelAction& p_dsParallelAction)
|
||||||
{
|
{
|
||||||
if (this == &p_dsParallelAction) {
|
if (this == &p_dsParallelAction) {
|
||||||
@@ -29,11 +38,12 @@ MxDSParallelAction& MxDSParallelAction::operator=(MxDSParallelAction& p_dsParall
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMultiAction::operator=(p_dsParallelAction);
|
MxDSMultiAction::operator=(p_dsParallelAction);
|
||||||
this->CopyFrom(p_dsParallelAction);
|
CopyFrom(p_dsParallelAction);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb0d0
|
// FUNCTION: LEGO1 0x100cb0d0
|
||||||
|
// FUNCTION: BETA10 0x1015a30d
|
||||||
MxDSAction* MxDSParallelAction::Clone()
|
MxDSAction* MxDSParallelAction::Clone()
|
||||||
{
|
{
|
||||||
MxDSParallelAction* clone = new MxDSParallelAction();
|
MxDSParallelAction* clone = new MxDSParallelAction();
|
||||||
@@ -46,13 +56,14 @@ MxDSAction* MxDSParallelAction::Clone()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb160
|
// FUNCTION: LEGO1 0x100cb160
|
||||||
|
// FUNCTION: BETA10 0x1015a3b7
|
||||||
MxLong MxDSParallelAction::GetDuration()
|
MxLong MxDSParallelAction::GetDuration()
|
||||||
{
|
{
|
||||||
if (this->m_duration) {
|
if (m_duration) {
|
||||||
return this->m_duration;
|
return m_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
|
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
@@ -62,7 +73,7 @@ MxLong MxDSParallelAction::GetDuration()
|
|||||||
|
|
||||||
MxLong duration = action->GetDuration();
|
MxLong duration = action->GetDuration();
|
||||||
if (duration == -1) {
|
if (duration == -1) {
|
||||||
this->m_duration = -1;
|
m_duration = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,18 +90,18 @@ MxLong MxDSParallelAction::GetDuration()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (duration == -1) {
|
if (duration == -1) {
|
||||||
this->m_duration = -1;
|
m_duration = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->m_duration < duration) {
|
if (m_duration < duration) {
|
||||||
this->m_duration = duration;
|
m_duration = duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->IsBit3()) {
|
if (IsBit3()) {
|
||||||
this->m_duration *= this->m_loopCount;
|
m_duration *= m_loopCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this->m_duration;
|
return m_duration;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,44 +13,51 @@ DECOMP_SIZE_ASSERT(MxListEntry<MxString>, 0x18)
|
|||||||
// FUNCTION: BETA10 0x1015a515
|
// FUNCTION: BETA10 0x1015a515
|
||||||
MxDSSelectAction::MxDSSelectAction()
|
MxDSSelectAction::MxDSSelectAction()
|
||||||
{
|
{
|
||||||
this->SetType(e_selectAction);
|
m_type = e_selectAction;
|
||||||
this->m_unk0xac = new MxStringList;
|
m_unk0xac = new MxStringList;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb8d0
|
// FUNCTION: LEGO1 0x100cb8d0
|
||||||
|
// FUNCTION: BETA10 0x1015a5fd
|
||||||
MxDSSelectAction::~MxDSSelectAction()
|
MxDSSelectAction::~MxDSSelectAction()
|
||||||
{
|
{
|
||||||
if (this->m_unk0xac) {
|
delete m_unk0xac;
|
||||||
delete this->m_unk0xac;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cb950
|
// FUNCTION: LEGO1 0x100cb950
|
||||||
// FUNCTION: BETA10 0x1015a6ae
|
// FUNCTION: BETA10 0x1015a6ae
|
||||||
void MxDSSelectAction::CopyFrom(MxDSSelectAction& p_dsSelectAction)
|
void MxDSSelectAction::CopyFrom(MxDSSelectAction& p_dsSelectAction)
|
||||||
{
|
{
|
||||||
this->m_unk0x9c = p_dsSelectAction.m_unk0x9c;
|
m_unk0x9c = p_dsSelectAction.m_unk0x9c;
|
||||||
|
|
||||||
this->m_unk0xac->DeleteAll();
|
m_unk0xac->DeleteAll();
|
||||||
|
|
||||||
MxStringListCursor cursor(p_dsSelectAction.m_unk0xac);
|
MxStringListCursor cursor(p_dsSelectAction.m_unk0xac);
|
||||||
MxString string;
|
MxString string;
|
||||||
while (cursor.Next(string)) {
|
while (cursor.Next(string)) {
|
||||||
this->m_unk0xac->Append(string);
|
m_unk0xac->Append(string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015a7ad
|
||||||
|
MxDSSelectAction::MxDSSelectAction(MxDSSelectAction& p_dsSelectAction) : MxDSParallelAction(p_dsSelectAction)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsSelectAction);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cbd50
|
// FUNCTION: LEGO1 0x100cbd50
|
||||||
|
// FUNCTION: BETA10 0x1015a84f
|
||||||
MxDSSelectAction& MxDSSelectAction::operator=(MxDSSelectAction& p_dsSelectAction)
|
MxDSSelectAction& MxDSSelectAction::operator=(MxDSSelectAction& p_dsSelectAction)
|
||||||
{
|
{
|
||||||
if (this != &p_dsSelectAction) {
|
if (this != &p_dsSelectAction) {
|
||||||
MxDSParallelAction::operator=(p_dsSelectAction);
|
MxDSParallelAction::operator=(p_dsSelectAction);
|
||||||
this->CopyFrom(p_dsSelectAction);
|
CopyFrom(p_dsSelectAction);
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cbd80
|
// FUNCTION: LEGO1 0x100cbd80
|
||||||
|
// FUNCTION: BETA10 0x1015a88e
|
||||||
MxDSAction* MxDSSelectAction::Clone()
|
MxDSAction* MxDSSelectAction::Clone()
|
||||||
{
|
{
|
||||||
MxDSSelectAction* clone = new MxDSSelectAction();
|
MxDSSelectAction* clone = new MxDSSelectAction();
|
||||||
@@ -63,13 +70,14 @@ MxDSAction* MxDSSelectAction::Clone()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cbe10
|
// FUNCTION: LEGO1 0x100cbe10
|
||||||
|
// FUNCTION: BETA10 0x1015a938
|
||||||
MxU32 MxDSSelectAction::GetSizeOnDisk()
|
MxU32 MxDSSelectAction::GetSizeOnDisk()
|
||||||
{
|
{
|
||||||
MxU32 totalSizeOnDisk = MxDSParallelAction::GetSizeOnDisk();
|
MxU32 totalSizeOnDisk = MxDSParallelAction::GetSizeOnDisk();
|
||||||
|
|
||||||
totalSizeOnDisk += strlen(this->m_unk0x9c.GetData()) + 1;
|
totalSizeOnDisk += strlen(m_unk0x9c.GetData()) + 1;
|
||||||
|
|
||||||
MxStringListCursor cursor(this->m_unk0xac);
|
MxStringListCursor cursor(m_unk0xac);
|
||||||
MxString string;
|
MxString string;
|
||||||
while (cursor.Next(string)) {
|
while (cursor.Next(string)) {
|
||||||
totalSizeOnDisk += strlen(string.GetData()) + 1;
|
totalSizeOnDisk += strlen(string.GetData()) + 1;
|
||||||
@@ -77,7 +85,7 @@ MxU32 MxDSSelectAction::GetSizeOnDisk()
|
|||||||
|
|
||||||
// Note: unlike the other classes, MxDSSelectAction does not have its own
|
// Note: unlike the other classes, MxDSSelectAction does not have its own
|
||||||
// sizeOnDisk member. Instead, it overrides the one from MxDSMultiAction.
|
// sizeOnDisk member. Instead, it overrides the one from MxDSMultiAction.
|
||||||
this->m_sizeOnDisk = totalSizeOnDisk;
|
m_sizeOnDisk = totalSizeOnDisk;
|
||||||
|
|
||||||
return totalSizeOnDisk;
|
return totalSizeOnDisk;
|
||||||
}
|
}
|
||||||
@@ -86,25 +94,26 @@ MxU32 MxDSSelectAction::GetSizeOnDisk()
|
|||||||
// FUNCTION: BETA10 0x1015aa30
|
// FUNCTION: BETA10 0x1015aa30
|
||||||
void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||||
{
|
{
|
||||||
|
MxDSAction* action = NULL;
|
||||||
MxString string;
|
MxString string;
|
||||||
MxDSAction::Deserialize(p_source, p_unk0x24);
|
MxDSAction::Deserialize(p_source, p_unk0x24);
|
||||||
|
|
||||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||||
p_source += 12;
|
p_source += 12;
|
||||||
|
|
||||||
this->m_unk0x9c = (char*) p_source;
|
m_unk0x9c = (char*) p_source;
|
||||||
|
|
||||||
if (!strnicmp(this->m_unk0x9c.GetData(), "RANDOM_", strlen("RANDOM_"))) {
|
if (strnicmp(m_unk0x9c.GetData(), "RANDOM_", strlen("RANDOM_")) != 0) {
|
||||||
|
string = VariableTable()->GetVariable((char*) p_source);
|
||||||
|
}
|
||||||
|
else {
|
||||||
char buffer[10];
|
char buffer[10];
|
||||||
MxS16 value = atoi(&this->m_unk0x9c.GetData()[strlen("RANDOM_")]);
|
MxS16 value = atoi(&m_unk0x9c.GetData()[strlen("RANDOM_")]);
|
||||||
|
|
||||||
srand(Timer()->GetTime());
|
srand(Timer()->GetTime());
|
||||||
MxS32 random = rand() % value;
|
MxS32 random = rand() % value;
|
||||||
string = itoa((MxS16) random, buffer, 10);
|
string = itoa((MxS16) random, buffer, 10);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
string = VariableTable()->GetVariable((char*) p_source);
|
|
||||||
}
|
|
||||||
|
|
||||||
p_source += strlen((char*) p_source) + 1;
|
p_source += strlen((char*) p_source) + 1;
|
||||||
|
|
||||||
@@ -113,7 +122,7 @@ void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
|||||||
|
|
||||||
if (count) {
|
if (count) {
|
||||||
MxS32 index = -1;
|
MxS32 index = -1;
|
||||||
this->m_unk0xac->DeleteAll();
|
m_unk0xac->DeleteAll();
|
||||||
|
|
||||||
MxU32 i;
|
MxU32 i;
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
@@ -121,7 +130,7 @@ void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
|||||||
index = i;
|
index = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_unk0xac->Append((char*) p_source);
|
m_unk0xac->Append((char*) p_source);
|
||||||
p_source += strlen((char*) p_source) + 1;
|
p_source += strlen((char*) p_source) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,10 +138,10 @@ void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
|||||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||||
p_source += 8;
|
p_source += 8;
|
||||||
|
|
||||||
MxDSAction* action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
||||||
|
|
||||||
if (index == i) {
|
if (index == i) {
|
||||||
this->m_actions->Append(action);
|
m_actionList->Append(action);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
delete action;
|
delete action;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "mxdsserialaction.h"
|
#include "mxdsserialaction.h"
|
||||||
|
|
||||||
|
#include "mxdebug.h"
|
||||||
#include "mxdsmediaaction.h"
|
#include "mxdsmediaaction.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxDSSerialAction, 0xa8)
|
DECOMP_SIZE_ASSERT(MxDSSerialAction, 0xa8)
|
||||||
@@ -8,33 +9,43 @@ DECOMP_SIZE_ASSERT(MxDSSerialAction, 0xa8)
|
|||||||
// FUNCTION: BETA10 0x10159cf3
|
// FUNCTION: BETA10 0x10159cf3
|
||||||
MxDSSerialAction::MxDSSerialAction()
|
MxDSSerialAction::MxDSSerialAction()
|
||||||
{
|
{
|
||||||
this->SetType(e_serialAction);
|
m_type = e_serialAction;
|
||||||
this->m_cursor = new MxDSActionListCursor(this->m_actions);
|
m_cursor = new MxDSActionListCursor(m_actionList);
|
||||||
this->m_unk0xa0 = 0;
|
m_unk0xa0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100caac0
|
// FUNCTION: LEGO1 0x100caac0
|
||||||
|
// FUNCTION: BETA10 0x1015b280
|
||||||
void MxDSSerialAction::SetDuration(MxLong p_duration)
|
void MxDSSerialAction::SetDuration(MxLong p_duration)
|
||||||
{
|
{
|
||||||
this->m_duration = p_duration;
|
m_duration = p_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cac10
|
// FUNCTION: LEGO1 0x100cac10
|
||||||
|
// FUNCTION: BETA10 0x10159dd1
|
||||||
MxDSSerialAction::~MxDSSerialAction()
|
MxDSSerialAction::~MxDSSerialAction()
|
||||||
{
|
{
|
||||||
if (this->m_cursor) {
|
delete m_cursor;
|
||||||
delete this->m_cursor;
|
m_cursor = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
this->m_cursor = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cac90
|
// FUNCTION: LEGO1 0x100cac90
|
||||||
|
// FUNCTION: BETA10 0x10159e73
|
||||||
void MxDSSerialAction::CopyFrom(MxDSSerialAction& p_dsSerialAction)
|
void MxDSSerialAction::CopyFrom(MxDSSerialAction& p_dsSerialAction)
|
||||||
{
|
{
|
||||||
|
if (p_dsSerialAction.m_cursor->HasMatch() || p_dsSerialAction.m_unk0xa0) {
|
||||||
|
MxTrace("copying a serialAction while someone is traversing it's list\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10159ec2
|
||||||
|
MxDSSerialAction::MxDSSerialAction(MxDSSerialAction& p_dsSerialAction) : MxDSMultiAction(p_dsSerialAction)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsSerialAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100caca0
|
// FUNCTION: LEGO1 0x100caca0
|
||||||
|
// FUNCTION: BETA10 0x10159f43
|
||||||
MxDSSerialAction& MxDSSerialAction::operator=(MxDSSerialAction& p_dsSerialAction)
|
MxDSSerialAction& MxDSSerialAction::operator=(MxDSSerialAction& p_dsSerialAction)
|
||||||
{
|
{
|
||||||
if (this == &p_dsSerialAction) {
|
if (this == &p_dsSerialAction) {
|
||||||
@@ -42,11 +53,12 @@ MxDSSerialAction& MxDSSerialAction::operator=(MxDSSerialAction& p_dsSerialAction
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMultiAction::operator=(p_dsSerialAction);
|
MxDSMultiAction::operator=(p_dsSerialAction);
|
||||||
this->CopyFrom(p_dsSerialAction);
|
CopyFrom(p_dsSerialAction);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cacd0
|
// FUNCTION: LEGO1 0x100cacd0
|
||||||
|
// FUNCTION: BETA10 0x10159f8a
|
||||||
MxDSAction* MxDSSerialAction::Clone()
|
MxDSAction* MxDSSerialAction::Clone()
|
||||||
{
|
{
|
||||||
MxDSSerialAction* clone = new MxDSSerialAction();
|
MxDSSerialAction* clone = new MxDSSerialAction();
|
||||||
@@ -59,30 +71,29 @@ MxDSAction* MxDSSerialAction::Clone()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100cad60
|
// FUNCTION: LEGO1 0x100cad60
|
||||||
|
// FUNCTION: BETA10 0x1015a034
|
||||||
MxLong MxDSSerialAction::GetDuration()
|
MxLong MxDSSerialAction::GetDuration()
|
||||||
{
|
{
|
||||||
if (this->m_duration) {
|
if (m_duration) {
|
||||||
return this->m_duration;
|
return m_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(m_actionList);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
|
|
||||||
while (cursor.Next(action)) {
|
while (cursor.Next(action)) {
|
||||||
if (!action) {
|
if (action) {
|
||||||
continue;
|
m_duration += action->GetDuration() + action->GetStartTime();
|
||||||
}
|
|
||||||
|
|
||||||
this->m_duration += action->GetDuration() + action->GetStartTime();
|
if (action->IsA("MxDSMediaAction")) {
|
||||||
|
MxLong sustainTime = ((MxDSMediaAction*) action)->GetSustainTime();
|
||||||
|
|
||||||
if (action->IsA("MxDSMediaAction")) {
|
if (sustainTime && sustainTime != -1) {
|
||||||
MxLong sustainTime = ((MxDSMediaAction*) action)->GetSustainTime();
|
m_duration += sustainTime;
|
||||||
|
}
|
||||||
if (sustainTime && sustainTime != -1) {
|
|
||||||
this->m_duration += sustainTime;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this->m_duration;
|
return m_duration;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,37 @@
|
|||||||
#include "mxdssound.h"
|
#include "mxdssound.h"
|
||||||
|
|
||||||
#include "mxutilities.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxDSSound, 0xc0)
|
DECOMP_SIZE_ASSERT(MxDSSound, 0xc0)
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c92c0
|
// FUNCTION: LEGO1 0x100c92c0
|
||||||
// FUNCTION: BETA10 0x1015cfdb
|
// FUNCTION: BETA10 0x1015cfdb
|
||||||
MxDSSound::MxDSSound()
|
MxDSSound::MxDSSound()
|
||||||
{
|
{
|
||||||
this->m_volume = 0x4f;
|
m_type = e_sound;
|
||||||
this->SetType(e_sound);
|
m_volume = 0x4f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9470
|
// FUNCTION: LEGO1 0x100c9470
|
||||||
|
// FUNCTION: BETA10 0x1015d060
|
||||||
MxDSSound::~MxDSSound()
|
MxDSSound::~MxDSSound()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c94c0
|
// FUNCTION: LEGO1 0x100c94c0
|
||||||
|
// FUNCTION: BETA10 0x1015d0c8
|
||||||
void MxDSSound::CopyFrom(MxDSSound& p_dsSound)
|
void MxDSSound::CopyFrom(MxDSSound& p_dsSound)
|
||||||
{
|
{
|
||||||
this->SetType(p_dsSound.GetType());
|
m_type = p_dsSound.m_type;
|
||||||
this->m_volume = p_dsSound.m_volume;
|
m_volume = p_dsSound.m_volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015d100
|
||||||
|
MxDSSound::MxDSSound(MxDSSound& p_dsSound) : MxDSMediaAction(p_dsSound)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsSound);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c94e0
|
// FUNCTION: LEGO1 0x100c94e0
|
||||||
|
// FUNCTION: BETA10 0x1015d181
|
||||||
MxDSSound& MxDSSound::operator=(MxDSSound& p_dsSound)
|
MxDSSound& MxDSSound::operator=(MxDSSound& p_dsSound)
|
||||||
{
|
{
|
||||||
if (this == &p_dsSound) {
|
if (this == &p_dsSound) {
|
||||||
@@ -32,11 +39,12 @@ MxDSSound& MxDSSound::operator=(MxDSSound& p_dsSound)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMediaAction::operator=(p_dsSound);
|
MxDSMediaAction::operator=(p_dsSound);
|
||||||
this->CopyFrom(p_dsSound);
|
CopyFrom(p_dsSound);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9510
|
// FUNCTION: LEGO1 0x100c9510
|
||||||
|
// FUNCTION: BETA10 0x1015d1c8
|
||||||
MxDSAction* MxDSSound::Clone()
|
MxDSAction* MxDSSound::Clone()
|
||||||
{
|
{
|
||||||
MxDSSound* clone = new MxDSSound();
|
MxDSSound* clone = new MxDSSound();
|
||||||
@@ -49,18 +57,21 @@ MxDSAction* MxDSSound::Clone()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c95a0
|
// FUNCTION: LEGO1 0x100c95a0
|
||||||
|
// FUNCTION: BETA10 0x1015d272
|
||||||
void MxDSSound::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
void MxDSSound::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||||
{
|
{
|
||||||
MxDSMediaAction::Deserialize(p_source, p_unk0x24);
|
MxDSMediaAction::Deserialize(p_source, p_unk0x24);
|
||||||
|
m_volume = *(MxS32*) p_source;
|
||||||
GetScalar(p_source, this->m_volume);
|
p_source += sizeof(m_volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c95d0
|
// FUNCTION: LEGO1 0x100c95d0
|
||||||
|
// FUNCTION: BETA10 0x1015d2b0
|
||||||
MxU32 MxDSSound::GetSizeOnDisk()
|
MxU32 MxDSSound::GetSizeOnDisk()
|
||||||
{
|
{
|
||||||
MxU32 totalSizeOnDisk = MxDSMediaAction::GetSizeOnDisk();
|
MxU32 totalSizeOnDisk = MxDSMediaAction::GetSizeOnDisk();
|
||||||
|
totalSizeOnDisk += sizeof(m_volume);
|
||||||
|
|
||||||
this->m_sizeOnDisk = sizeof(this->m_volume);
|
m_sizeOnDisk = sizeof(m_volume);
|
||||||
return totalSizeOnDisk + 4;
|
return totalSizeOnDisk;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,20 +6,29 @@ DECOMP_SIZE_ASSERT(MxDSStill, 0xb8)
|
|||||||
// FUNCTION: BETA10 0x1015d54f
|
// FUNCTION: BETA10 0x1015d54f
|
||||||
MxDSStill::MxDSStill()
|
MxDSStill::MxDSStill()
|
||||||
{
|
{
|
||||||
this->SetType(e_still);
|
m_type = e_still;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9a70
|
// FUNCTION: LEGO1 0x100c9a70
|
||||||
|
// FUNCTION: BETA10 0x1015d5c7
|
||||||
MxDSStill::~MxDSStill()
|
MxDSStill::~MxDSStill()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9ac0
|
// FUNCTION: LEGO1 0x100c9ac0
|
||||||
|
// FUNCTION: BETA10 0x1015d62f
|
||||||
void MxDSStill::CopyFrom(MxDSStill& p_dsStill)
|
void MxDSStill::CopyFrom(MxDSStill& p_dsStill)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1015d647
|
||||||
|
MxDSStill::MxDSStill(MxDSStill& p_dsStill) : MxDSMediaAction(p_dsStill)
|
||||||
|
{
|
||||||
|
CopyFrom(p_dsStill);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9ad0
|
// FUNCTION: LEGO1 0x100c9ad0
|
||||||
|
// FUNCTION: BETA10 0x1015d6c8
|
||||||
MxDSStill& MxDSStill::operator=(MxDSStill& p_dsStill)
|
MxDSStill& MxDSStill::operator=(MxDSStill& p_dsStill)
|
||||||
{
|
{
|
||||||
if (this == &p_dsStill) {
|
if (this == &p_dsStill) {
|
||||||
@@ -27,11 +36,12 @@ MxDSStill& MxDSStill::operator=(MxDSStill& p_dsStill)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxDSMediaAction::operator=(p_dsStill);
|
MxDSMediaAction::operator=(p_dsStill);
|
||||||
this->CopyFrom(p_dsStill);
|
CopyFrom(p_dsStill);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c9b00
|
// FUNCTION: LEGO1 0x100c9b00
|
||||||
|
// FUNCTION: BETA10 0x1015d70f
|
||||||
MxDSAction* MxDSStill::Clone()
|
MxDSAction* MxDSStill::Clone()
|
||||||
{
|
{
|
||||||
MxDSStill* clone = new MxDSStill();
|
MxDSStill* clone = new MxDSStill();
|
||||||
|
|||||||
Reference in New Issue
Block a user