mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Match MxDSAction::CopyFrom (#104)
* Match MxDSAction::CopyFrom * Fix src/dest * Update mxvector.h * Update mxvector.h * Update mxvector.h * Update mxdsaction.cpp
This commit is contained in:
parent
bd9dca0d3f
commit
88bfb3c419
2 changed files with 37 additions and 13 deletions
|
@ -51,10 +51,9 @@ void MxDSAction::CopyFrom(MxDSAction &p_dsAction)
|
||||||
this->m_duration = p_dsAction.m_duration;
|
this->m_duration = p_dsAction.m_duration;
|
||||||
this->m_loopCount = p_dsAction.m_loopCount;
|
this->m_loopCount = p_dsAction.m_loopCount;
|
||||||
|
|
||||||
// TODO
|
this->m_location.CopyFrom(p_dsAction.m_location);
|
||||||
// this->m_location.SetVector(p_dsAction.m_location.GetData());
|
this->m_direction.CopyFrom(p_dsAction.m_direction);
|
||||||
// this->m_direction.SetVector(p_dsAction.m_direction.GetData());
|
this->m_up.CopyFrom(p_dsAction.m_up);
|
||||||
// this->m_up.SetVector(p_dsAction.m_up.GetData());
|
|
||||||
|
|
||||||
FUN_100ADE60(p_dsAction.m_unk80, p_dsAction.m_unk7c);
|
FUN_100ADE60(p_dsAction.m_unk80, p_dsAction.m_unk7c);
|
||||||
this->m_unk84 = p_dsAction.m_unk84;
|
this->m_unk84 = p_dsAction.m_unk84;
|
||||||
|
|
|
@ -57,8 +57,8 @@ class MxVector2
|
||||||
virtual void DivScalar(float *p_value);
|
virtual void DivScalar(float *p_value);
|
||||||
|
|
||||||
// vtable + 0x6C
|
// vtable + 0x6C
|
||||||
virtual void SetVector(MxVector2 *other);
|
virtual void SetVector(MxVector2 *p_other);
|
||||||
virtual void SetVector(float *other);
|
virtual void SetVector(float *p_other);
|
||||||
|
|
||||||
inline float& operator[](size_t idx) { return m_data[idx]; }
|
inline float& operator[](size_t idx) { return m_data[idx]; }
|
||||||
inline const float operator[](size_t idx) const { return m_data[idx]; }
|
inline const float operator[](size_t idx) const { return m_data[idx]; }
|
||||||
|
@ -134,12 +134,29 @@ class MxVector4 : public MxVector3
|
||||||
class MxVector3Data : public MxVector3
|
class MxVector3Data : public MxVector3
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
inline MxVector3Data() : MxVector3(&x) {}
|
inline MxVector3Data() : MxVector3(storage) {}
|
||||||
inline MxVector3Data(float p_x, float p_y, float p_z)
|
inline MxVector3Data(float p_x, float p_y, float p_z)
|
||||||
: MxVector3(&x)
|
: MxVector3(storage)
|
||||||
, x(p_x), y(p_y), z(p_z)
|
, x(p_x), y(p_y), z(p_z)
|
||||||
{}
|
{}
|
||||||
float x, y, z;
|
|
||||||
|
union {
|
||||||
|
float storage[3];
|
||||||
|
struct {
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float z;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
void CopyFrom(MxVector3Data &p_other) {
|
||||||
|
EqualsImpl(p_other.m_data);
|
||||||
|
|
||||||
|
float *dest = this->storage;
|
||||||
|
float *src = p_other.storage;
|
||||||
|
for (size_t i = sizeof(storage) / sizeof(float); i > 0; --i)
|
||||||
|
*dest++ = *src++;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// VTABLE 0x100d41e8
|
// VTABLE 0x100d41e8
|
||||||
|
@ -147,8 +164,16 @@ class MxVector3Data : public MxVector3
|
||||||
class MxVector4Data : public MxVector4
|
class MxVector4Data : public MxVector4
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
inline MxVector4Data() : MxVector4(&x) {}
|
inline MxVector4Data() : MxVector4(storage) {}
|
||||||
float x, y, z, w;
|
union {
|
||||||
|
float storage[4];
|
||||||
|
struct {
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float z;
|
||||||
|
float w;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXVECTOR_H
|
#endif // MXVECTOR_H
|
Loading…
Reference in a new issue