From c188537a1507c930cc72c181e1632a55b3bc7e18 Mon Sep 17 00:00:00 2001 From: Angel Tomkins Date: Sun, 8 Oct 2023 19:40:31 -0400 Subject: [PATCH] Implemented MxVector4::UnknownQuaternionOp 65% similar to the original --- LEGO1/mxvector.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/LEGO1/mxvector.cpp b/LEGO1/mxvector.cpp index a4053105..570509a3 100644 --- a/LEGO1/mxvector.cpp +++ b/LEGO1/mxvector.cpp @@ -453,8 +453,19 @@ MxResult MxVector4::NormalizeQuaternion() return FAILURE; } -// OFFSET: LEGO1 0x10002bf0 STUB +// OFFSET: LEGO1 0x10002bf0 void MxVector4::UnknownQuaternionOp(MxVector4 *p_a, MxVector4 *p_b) { + MxFloat *bDat = p_b->m_data; + MxFloat *aDat = p_a->m_data; -} \ No newline at end of file + this->m_data[3] = aDat[3] * bDat[3] - (bDat[0] * aDat[0] + aDat[2] *bDat[2] + aDat[1] * aDat[1]); + this->m_data[0] = bDat[2] * aDat[1] - bDat[1] * aDat[2]; + this->m_data[1] = aDat[2] * bDat[0] - bDat[2] * aDat[0]; + this->m_data[2] = bDat[1] * aDat[0] - aDat[1] * bDat[0]; + + + m_data[0] = p_b->m_data[3] * p_a->m_data[0] + p_a->m_data[3] * p_b->m_data[0] + m_data[0]; + m_data[1] = p_b->m_data[1] * p_a->m_data[3] + p_a->m_data[1] * p_b->m_data[3] + m_data[1]; + m_data[2] = p_b->m_data[2] * p_a->m_data[3] + p_a->m_data[2] * p_b->m_data[3] + m_data[2]; +}