From 95e96c86a1924a98c648fbcd251c9dca5d66c4bb Mon Sep 17 00:00:00 2001 From: aap Date: Thu, 4 Jun 2020 17:39:18 +0200 Subject: [PATCH] minor stuff --- src/math/Quaternion.h | 1 + src/math/math.cpp | 11 +++++++++++ src/vehicles/Automobile.cpp | 7 +++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/math/Quaternion.h b/src/math/Quaternion.h index 1d04bdff..dac49362 100644 --- a/src/math/Quaternion.h +++ b/src/math/Quaternion.h @@ -60,6 +60,7 @@ public: } void Slerp(const CQuaternion &q1, const CQuaternion &q2, float theta, float invSin, float t); + void Set(RwV3d *axis, float angle); void Get(RwMatrix *matrix); }; diff --git a/src/math/math.cpp b/src/math/math.cpp index 29f18d03..0cfc2ce9 100644 --- a/src/math/math.cpp +++ b/src/math/math.cpp @@ -183,6 +183,17 @@ CQuaternion::Slerp(const CQuaternion &q1, const CQuaternion &q2, float theta, fl } } +void +CQuaternion::Set(RwV3d *axis, float angle) +{ + float halfCos = Cos(angle*0.5f); + float halfSin = Sin(angle*0.5f); + x = axis->x*halfSin; + y = axis->y*halfSin; + z = axis->z*halfSin; + w = halfCos; +} + void CQuaternion::Get(RwMatrix *matrix) { diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index 9fe172fa..eb1bad97 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -220,6 +220,7 @@ void CAutomobile::ProcessControl(void) { int i; + float wheelRot; CColModel *colModel; if(bUsingSpecialColModel) @@ -372,11 +373,9 @@ CAutomobile::ProcessControl(void) pHandling->Transmission.CalculateGearForSimpleCar(AutoPilot.m_fMaxTrafficSpeed/50.0f, m_nCurrentGear); - { - float wheelRot = ProcessWheelRotation(WHEEL_STATE_NORMAL, GetForward(), m_vecMoveSpeed, 0.35f); + wheelRot = ProcessWheelRotation(WHEEL_STATE_NORMAL, GetForward(), m_vecMoveSpeed, 0.35f); for(i = 0; i < 4; i++) m_aWheelRotation[i] += wheelRot; - } PlayHornIfNecessary(); ReduceHornCounter(); @@ -618,7 +617,7 @@ CAutomobile::ProcessControl(void) for(i = 0; i < 4; i++){ if(m_aSuspensionSpringRatio[i] < 1.0f){ float bias = pHandling->fSuspensionBias; - if(i == 1 || i == 3) // rear + if(i == CARWHEEL_REAR_LEFT || i == CARWHEEL_REAR_RIGHT) bias = 1.0f - bias; ApplySpringCollision(pHandling->fSuspensionForceLevel,