diff --git a/LEGO1/lego/legoomni/include/act3.h b/LEGO1/lego/legoomni/include/act3.h index 8b31ea730d..dc81160c8d 100644 --- a/LEGO1/lego/legoomni/include/act3.h +++ b/LEGO1/lego/legoomni/include/act3.h @@ -155,7 +155,7 @@ class Act3 : public LegoWorld { const Matrix4& p_destination, const Matrix4& p_startPosition, const Matrix4& p_endPosition, - const MxQuaternionTransformer& p_unk0x1f4 + const MxQuaternionTransformer& p_quatTransform ); Act3State* m_state; // 0xf8 diff --git a/LEGO1/lego/legoomni/src/worlds/act3.cpp b/LEGO1/lego/legoomni/src/worlds/act3.cpp index af9619ac53..daee3b2d5f 100644 --- a/LEGO1/lego/legoomni/src/worlds/act3.cpp +++ b/LEGO1/lego/legoomni/src/worlds/act3.cpp @@ -793,7 +793,7 @@ void Act3::DebugCopter( const Matrix4& p_destination, const Matrix4& p_startPosition, const Matrix4& p_endPosition, - const MxQuaternionTransformer& p_unk0x1f4 + const MxQuaternionTransformer& p_quatTransform ) { DebugPrintf("Copter matrix...\n\n"); @@ -823,19 +823,17 @@ void Act3::DebugCopter( DebugPrintf("\t%g, %g, %g, %g", EXPAND4(p_endPosition[2])); DebugPrintf("\t%g, %g, %g, %g\n\n", EXPAND4(p_endPosition[3])); - Mx4DPointFloat unk0x00, unk0x18; + Mx4DPointFloat startQuat, endQuat; - if (p_unk0x1f4.GetFlags() != 0) { - // TODO: Match - unk0x00 = p_unk0x1f4.GetStartQuat(); - unk0x18 = p_unk0x1f4.GetEndQuat(); + if (p_quatTransform.GetFlags() != 0) { + p_quatTransform.GetQuat(startQuat, endQuat); DebugPrintf("Source quaternion..."); // STRING: LEGO1 0x100f7864 - DebugPrintf("\t%g, %g, %g, %g\n", EXPAND4(unk0x00)); + DebugPrintf("\t%g, %g, %g, %g\n", EXPAND4(startQuat)); DebugPrintf("Destination quaternion..."); - DebugPrintf("\t%g, %g, %g, %g\n", EXPAND4(unk0x18)); + DebugPrintf("\t%g, %g, %g, %g\n", EXPAND4(endQuat)); } } diff --git a/LEGO1/mxgeometry/mxquaternion.h b/LEGO1/mxgeometry/mxquaternion.h index a5fb006b9c..44218a6dac 100644 --- a/LEGO1/mxgeometry/mxquaternion.h +++ b/LEGO1/mxgeometry/mxquaternion.h @@ -21,8 +21,12 @@ class MxQuaternionTransformer { inline void SetEnd(Vector4& p_v); inline int InterpolateToMatrix(Matrix4& p_matrix, float p_f); - const Vector4& GetStartQuat() const { return m_startQuat; } - const Vector4& GetEndQuat() const { return m_endQuat; } + void GetQuat(Vector4& p_startQuat, Vector4& p_endQuat) const + { + p_startQuat = m_startQuat; + p_endQuat = m_endQuat; + } + undefined4 GetFlags() const { return m_flags; } private: