diff options
author | aap <aap@papnet.eu> | 2020-05-18 16:55:38 +0200 |
---|---|---|
committer | aap <aap@papnet.eu> | 2020-05-18 16:55:38 +0200 |
commit | 2588e69849c3a0e4d8c234a3a0e425fceb973d97 (patch) | |
tree | 61cb91e2c8f751390c0a74488cb4809697bd54b0 /src/vehicles | |
parent | fixes for braking and cloud rotation at high fps (diff) | |
download | re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar.gz re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar.bz2 re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar.lz re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar.xz re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.tar.zst re3-2588e69849c3a0e4d8c234a3a0e425fceb973d97.zip |
Diffstat (limited to 'src/vehicles')
-rw-r--r-- | src/vehicles/Automobile.cpp | 6 | ||||
-rw-r--r-- | src/vehicles/Vehicle.cpp | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index 83fe44d5..2212ddff 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -871,8 +871,14 @@ CAutomobile::ProcessControl(void) CVector wheelFwd = GetForward(); CVector wheelRight = GetRight(); +#ifdef FIX_BUGS + // Not sure if this is needed, but brake usually has timestep as a factor + if(bIsHandbrakeOn) + brake = 20000.0f * CTimer::GetTimeStepFix(); +#else if(bIsHandbrakeOn) brake = 20000.0f; +#endif if(m_aWheelTimer[CARWHEEL_REAR_LEFT] > 0.0f){ if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier)) diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index f85f0d50..6646f7f3 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -487,6 +487,11 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon if(contactSpeedRight != 0.0f){ // exert opposing force right = -contactSpeedRight/wheelsOnGround; +#ifdef FIX_BUGS + // contactSpeedRight is independent of framerate but right has timestep as a factor + // so we probably have to fix this + right *= CTimer::GetTimeStepFix(); +#endif if(wheelStatus == WHEEL_STATUS_BURST){ float fwdspeed = Min(contactSpeedFwd, 0.3f); @@ -507,6 +512,11 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon } }else if(contactSpeedFwd != 0.0f){ fwd = -contactSpeedFwd/wheelsOnGround; +#ifdef FIX_BUGS + // contactSpeedFwd is independent of framerate but fwd has timestep as a factor + // so we probably have to fix this + fwd *= CTimer::GetTimeStepFix(); +#endif if(!bBraking){ if(m_fGasPedal < 0.01f){ |