diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2021-01-01 11:21:42 +0100 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2021-01-01 11:21:42 +0100 |
commit | 575845772fc3f5385eab56044cf97ef0ce930e17 (patch) | |
tree | 1b51da6e1759bac72bec1392435c453eaee60158 /src/vehicles/Bike.cpp | |
parent | lcs car ctrl 2 (diff) | |
parent | Merge branch 'miami' of github.com:GTAmodding/re3 into miami (diff) | |
download | re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar.gz re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar.bz2 re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar.lz re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar.xz re3-575845772fc3f5385eab56044cf97ef0ce930e17.tar.zst re3-575845772fc3f5385eab56044cf97ef0ce930e17.zip |
Diffstat (limited to 'src/vehicles/Bike.cpp')
-rw-r--r-- | src/vehicles/Bike.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/vehicles/Bike.cpp b/src/vehicles/Bike.cpp index 62633464..0cfbedc1 100644 --- a/src/vehicles/Bike.cpp +++ b/src/vehicles/Bike.cpp @@ -93,9 +93,9 @@ CBike::CBike(int32 id, uint8 CreatedBy) SetModelIndex(id); - pHandling = mod_HandlingManager.GetHandlingData((eHandlingId)mi->m_handlingId); - pBikeHandling = mod_HandlingManager.GetBikePointer((eHandlingId)mi->m_handlingId); - pFlyingHandling = mod_HandlingManager.GetFlyingPointer((eHandlingId)mi->m_handlingId); + pHandling = mod_HandlingManager.GetHandlingData((tVehicleType)mi->m_handlingId); + pBikeHandling = mod_HandlingManager.GetBikePointer((tVehicleType)mi->m_handlingId); + pFlyingHandling = mod_HandlingManager.GetFlyingPointer((tVehicleType)mi->m_handlingId); m_bike_unused1 = 20.0f; m_bike_unused2 = 0; @@ -202,9 +202,11 @@ CVector vecTestResistance(0.9995f, 0.9f, 0.95f); float fDAxisX = 1.0f; float fDAxisXExtra = 100.0f; float fDAxisY = 1000.0f; -float fInAirXRes = 0.88f; +float fInAirXRes = 0.98f; float fFlySpeedMult = -0.6f; +#pragma optimize("", off) // a workaround for another compiler bug =P, original had optimize off for this function too though + void CBike::ProcessControl(void) { @@ -476,7 +478,7 @@ CBike::ProcessControl(void) if(m_vecMoveSpeedAvg.MagnitudeSqr() <= sq(moveSpeedLimit*CTimer::GetTimeStep()) && m_vecTurnSpeedAvg.MagnitudeSqr() <= sq(turnSpeedLimit*CTimer::GetTimeStep()) && - m_fDistanceTravelled < distanceLimit && + m_fDistanceTravelled < distanceLimit || makeStatic){ m_nStaticFrames++; @@ -1144,7 +1146,12 @@ CBike::ProcessControl(void) float suspChange = m_aSuspensionSpringRatioPrev[i] - m_aSuspensionSpringRatio[i]; if(suspChange > 0.3f && (i == BIKESUSP_F1 || i == BIKESUSP_R1) && speedsq > 0.04f){ if(GetStatus() == STATUS_PLAYER || GetStatus() == STATUS_PHYSICS){ +#ifdef FIX_BUGS + // only two wheels but 4 suspensions + if(m_wheelStatus[i/2] == WHEEL_STATUS_BURST) +#else if(m_wheelStatus[i] == WHEEL_STATUS_BURST) +#endif DMAudio.PlayOneShot(m_audioEntityId, SOUND_CAR_JUMP_2, suspChange); else DMAudio.PlayOneShot(m_audioEntityId, SOUND_CAR_JUMP, suspChange); @@ -1213,7 +1220,8 @@ CBike::ProcessControl(void) // Balance bike if(bBalancedByRider || bIsBeingPickedUp || bIsStanding){ - float onSideness = clamp(DotProduct(GetRight(), m_vecAvgSurfaceNormal), -1.0f, 1.0f); + float onSideness = DotProduct(GetRight(), m_vecAvgSurfaceNormal); + onSideness = clamp(onSideness, -1.0f, 1.0f); CVector worldCOM = Multiply3x3(GetMatrix(), m_vecCentreOfMass); // Keep bike upright if(bBalancedByRider){ @@ -1256,6 +1264,8 @@ CBike::ProcessControl(void) } } +#pragma optimize("", on) + void CBike::Teleport(CVector pos) { @@ -1596,7 +1606,7 @@ CBike::PreRender(void) CVector forkAxis(0.0f, Sin(DEGTORAD(mi->m_bikeSteerAngle)), -Cos(DEGTORAD(mi->m_bikeSteerAngle))); forkAxis.Normalise(); // as if that's not already the case CQuaternion quat; - quat.Set((RwV3d*)&forkAxis, -m_fWheelAngle); + quat.Set(&forkAxis, -m_fWheelAngle); quat.Get(rot.m_attachment); rot.Update(); |