From d780ce4316c6fec6db387a8b4116c202e154716d Mon Sep 17 00:00:00 2001 From: jonschz Date: Sun, 9 Feb 2025 23:25:37 +0100 Subject: [PATCH] Match vector implementations to BETA10 --- LEGO1/realtime/vector2d.inl.h | 6 +++--- LEGO1/realtime/vector3d.inl.h | 17 ++++++----------- LEGO1/realtime/vector4d.inl.h | 20 +++++--------------- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/LEGO1/realtime/vector2d.inl.h b/LEGO1/realtime/vector2d.inl.h index fa9b67be..100d4d5f 100644 --- a/LEGO1/realtime/vector2d.inl.h +++ b/LEGO1/realtime/vector2d.inl.h @@ -138,9 +138,9 @@ int Vector2::Unitize() float sq = LenSquared(); if (sq > 0.0f) { - float root = sqrt(sq); - if (root > 0.0f) { - DivImpl(root); + sq = sqrt(sq); + if (sq > 0.0f) { + DivImpl(sq); return 0; } } diff --git a/LEGO1/realtime/vector3d.inl.h b/LEGO1/realtime/vector3d.inl.h index b2da47e2..9e7c17ae 100644 --- a/LEGO1/realtime/vector3d.inl.h +++ b/LEGO1/realtime/vector3d.inl.h @@ -37,8 +37,7 @@ void Vector3::EqualsCross(const float* p_a, const Vector3& p_b) // FUNCTION: BETA10 0x10011100 void Vector3::AddImpl(const float* p_value) { - m_data[0] += p_value[0]; - m_data[1] += p_value[1]; + Vector2::AddImpl(p_value); m_data[2] += p_value[2]; } @@ -55,8 +54,7 @@ void Vector3::AddImpl(float p_value) // FUNCTION: BETA10 0x100111c0 void Vector3::SubImpl(const float* p_value) { - m_data[0] -= p_value[0]; - m_data[1] -= p_value[1]; + Vector2::SubImpl(p_value); m_data[2] -= p_value[2]; } @@ -64,8 +62,7 @@ void Vector3::SubImpl(const float* p_value) // FUNCTION: BETA10 0x10011210 void Vector3::MulImpl(const float* p_value) { - m_data[0] *= p_value[0]; - m_data[1] *= p_value[1]; + Vector2::MulImpl(p_value); m_data[2] *= p_value[2]; } @@ -73,8 +70,7 @@ void Vector3::MulImpl(const float* p_value) // FUNCTION: BETA10 0x10011260 void Vector3::MulImpl(const float& p_value) { - m_data[0] *= p_value; - m_data[1] *= p_value; + Vector2::MulImpl(p_value); m_data[2] *= p_value; } @@ -82,8 +78,7 @@ void Vector3::MulImpl(const float& p_value) // FUNCTION: BETA10 0x100112b0 void Vector3::DivImpl(const float& p_value) { - m_data[0] /= p_value; - m_data[1] /= p_value; + Vector2::DivImpl(p_value); m_data[2] /= p_value; } @@ -91,7 +86,7 @@ void Vector3::DivImpl(const float& p_value) // FUNCTION: BETA10 0x10011300 float Vector3::DotImpl(const float* p_a, const float* p_b) const { - return p_a[0] * p_b[0] + p_a[2] * p_b[2] + p_a[1] * p_b[1]; + return p_a[0] * p_b[0] + p_a[1] * p_b[1] + p_a[2] * p_b[2]; } // FUNCTION: LEGO1 0x10003ba0 diff --git a/LEGO1/realtime/vector4d.inl.h b/LEGO1/realtime/vector4d.inl.h index 856c2bd3..c26ecf46 100644 --- a/LEGO1/realtime/vector4d.inl.h +++ b/LEGO1/realtime/vector4d.inl.h @@ -10,9 +10,7 @@ // FUNCTION: BETA10 0x10048500 void Vector4::AddImpl(const float* p_value) { - m_data[0] += p_value[0]; - m_data[1] += p_value[1]; - m_data[2] += p_value[2]; + Vector3::AddImpl(p_value); m_data[3] += p_value[3]; } @@ -30,9 +28,7 @@ void Vector4::AddImpl(float p_value) // FUNCTION: BETA10 0x100485e0 void Vector4::SubImpl(const float* p_value) { - m_data[0] -= p_value[0]; - m_data[1] -= p_value[1]; - m_data[2] -= p_value[2]; + Vector3::SubImpl(p_value); m_data[3] -= p_value[3]; } @@ -40,9 +36,7 @@ void Vector4::SubImpl(const float* p_value) // FUNCTION: BETA10 0x10048630 void Vector4::MulImpl(const float* p_value) { - m_data[0] *= p_value[0]; - m_data[1] *= p_value[1]; - m_data[2] *= p_value[2]; + Vector3::MulImpl(p_value); m_data[3] *= p_value[3]; } @@ -50,9 +44,7 @@ void Vector4::MulImpl(const float* p_value) // FUNCTION: BETA10 0x10048680 void Vector4::MulImpl(const float& p_value) { - m_data[0] *= p_value; - m_data[1] *= p_value; - m_data[2] *= p_value; + Vector3::MulImpl(p_value); m_data[3] *= p_value; } @@ -60,9 +52,7 @@ void Vector4::MulImpl(const float& p_value) // FUNCTION: BETA10 0x100486d0 void Vector4::DivImpl(const float& p_value) { - m_data[0] /= p_value; - m_data[1] /= p_value; - m_data[2] /= p_value; + Vector3::DivImpl(p_value); m_data[3] /= p_value; }