Use reference on MxDSObject Deserialize calls (#767)

This commit is contained in:
MS
2024-04-03 12:06:53 -04:00
committed by GitHub
parent 56827fb2c4
commit ce134e79ef
17 changed files with 74 additions and 65 deletions

View File

@@ -45,7 +45,7 @@ public:
undefined4 VTable0x14() override; // vtable+14;
MxU32 GetSizeOnDisk() override; // vtable+18;
void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
virtual MxLong GetDuration(); // vtable+24;
virtual void SetDuration(MxLong p_duration); // vtable+28;
virtual MxDSAction* Clone(); // vtable+2c;

View File

@@ -33,7 +33,7 @@ public:
undefined4 VTable0x14() override; // vtable+14;
MxU32 GetSizeOnDisk() override; // vtable+18;
void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
MxDSAction* Clone() override; // vtable+2c;
void CopyMediaSrcPath(const char* p_mediaSrcPath);

View File

@@ -29,7 +29,7 @@ public:
undefined4 VTable0x14() override; // vtable+14;
MxU32 GetSizeOnDisk() override; // vtable+18;
void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
void SetAtomId(MxAtomId p_atomId) override; // vtable+20;
MxDSAction* Clone() override; // vtable+2c;
void MergeFrom(MxDSAction& p_dsAction) override; // vtable+30;

View File

@@ -46,7 +46,7 @@ public:
virtual undefined4 VTable0x14(); // vtable+14;
virtual MxU32 GetSizeOnDisk(); // vtable+18;
virtual void Deserialize(MxU8** p_source, MxS16 p_unk0x24); // vtable+1c;
virtual void Deserialize(MxU8*& p_source, MxS16 p_unk0x24); // vtable+1c;
inline virtual void SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; } // vtable+20;
inline Type GetType() const { return (Type) this->m_type; }
@@ -79,7 +79,7 @@ private:
MxPresenter* m_unk0x28; // 0x28
};
MxDSObject* DeserializeDSObjectDispatch(MxU8**, MxS16);
MxDSObject* DeserializeDSObjectDispatch(MxU8*&, MxS16);
// FUNCTION: ISLE 0x401c40
// MxDSObject::SetAtomId

View File

@@ -29,7 +29,7 @@ public:
}
MxU32 GetSizeOnDisk() override; // vtable+18;
void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
MxDSAction* Clone() override; // vtable+2c;
// SYNTHETIC: LEGO1 0x100cb840

View File

@@ -27,7 +27,7 @@ public:
}
MxU32 GetSizeOnDisk() override; // vtable+18;
void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
void Deserialize(MxU8*& p_source, MxS16 p_unk0x24) override; // vtable+1c;
MxDSAction* Clone() override; // vtable+2c;
inline MxS32 GetVolume() const { return m_volume; }

View File

@@ -30,32 +30,32 @@ inline T Max(T p_t1, T p_t2)
}
template <class T>
inline void GetScalar(MxU8** p_source, T& p_dest)
inline void GetScalar(MxU8*& p_source, T& p_dest)
{
p_dest = *(T*) *p_source;
*p_source += sizeof(T);
p_dest = *(T*) p_source;
p_source += sizeof(T);
}
template <class T>
inline T GetScalar(T** p_source)
inline T GetScalar(T*& p_source)
{
T val = **p_source;
*p_source += 1;
T val = *p_source;
p_source += 1;
return val;
}
template <class T>
inline void GetDouble(MxU8** p_source, T& p_dest)
inline void GetDouble(MxU8*& p_source, T& p_dest)
{
p_dest = *(double*) *p_source;
*p_source += sizeof(double);
p_dest = *(double*) p_source;
p_source += sizeof(double);
}
template <class T>
inline void GetString(MxU8** p_source, char** p_dest, T* p_obj, void (T::*p_setter)(const char*))
inline void GetString(MxU8*& p_source, char*& p_dest, T* p_obj, void (T::*p_setter)(const char*))
{
(p_obj->*p_setter)((char*) *p_source);
*p_source += strlen(*p_dest) + 1;
(p_obj->*p_setter)((char*) p_source);
p_source += strlen(p_dest) + 1;
}
MxBool GetRectIntersection(