@@ -4878,6 +4878,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
}
float nextDistance = Max (newDistance, minDistForVehType);
static float frameTime = CTimer::GetTimeStepFix ();
CA_MAX_DISTANCE = newDistance;
CA_MIN_DISTANCE = 3 .5f ;
@@ -4892,12 +4893,12 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
if (isCar || isBike) {
// 0.4f: CAR_FOV_START_SPEED
if (DotProduct (car->GetForward (), car->m_vecMoveSpeed ) > 0 .4f )
FOV += (DotProduct (car->GetForward (), car->m_vecMoveSpeed ) - 0 .4f ) * (CTimer::GetTimeStep () / CTimer::GetTimeStepFix () );
FOV += (DotProduct (car->GetForward (), car->m_vecMoveSpeed ) - 0 .4f ) * (CTimer::GetTimeStep () / frameTime );
}
if (FOV > DefaultFOV)
// 0.98f: CAR_FOV_FADE_MULT
FOV = Pow (0 .98f , CTimer::GetTimeStep () / CTimer::GetTimeStepFix () ) * (FOV - DefaultFOV) + DefaultFOV;
FOV = Pow (0 .98f , CTimer::GetTimeStep () / frameTime ) * (FOV - DefaultFOV) + DefaultFOV;
FOV = Clamp (FOV, DefaultFOV, DefaultFOV + 30 .0f );
}
@@ -4965,8 +4966,8 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
else if (velocityRightHeading > camRightHeading + PI)
velocityRightHeading = velocityRightHeading - TWOPI;
float betaChangeMult1 = (CTimer::GetTimeStep () / CTimer::GetTimeStepFix () ) * CARCAM_SET[camSetArrPos][10 ];
float betaChangeLimit = (CTimer::GetTimeStep () / CTimer::GetTimeStepFix () ) * CARCAM_SET[camSetArrPos][11 ];
float betaChangeMult1 = (CTimer::GetTimeStep () / frameTime ) * CARCAM_SET[camSetArrPos][10 ];
float betaChangeLimit = (CTimer::GetTimeStep () / frameTime ) * CARCAM_SET[camSetArrPos][11 ];
float betaChangeMult2 = (car->m_vecMoveSpeed - DotProduct (car->m_vecMoveSpeed , Front) * Front).Magnitude ();
@@ -5028,8 +5029,8 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
} else {
targetAlpha = maxAlphaAllowed;
}
float maxAlphaBlendAmount = (CTimer::GetTimeStep () / CTimer::GetTimeStepFix () ) * CARCAM_SET[camSetArrPos][6 ];
float targetAlphaBlendAmount = (1 .0f - Pow (CARCAM_SET[camSetArrPos][5 ], CTimer::GetTimeStep () / CTimer::GetTimeStepFix ( ))) * (targetAlpha - Alpha);
float maxAlphaBlendAmount = (CTimer::GetTimeStep () / frameTime ) * CARCAM_SET[camSetArrPos][6 ];
float targetAlphaBlendAmount = (1 .0f - Pow (CARCAM_SET[camSetArrPos][5 ], ( CTimer::GetTimeStep () / frameTime ))) * (targetAlpha - Alpha);
if (targetAlphaBlendAmount <= maxAlphaBlendAmount) {
if (targetAlphaBlendAmount < -maxAlphaBlendAmount)
targetAlphaBlendAmount = -maxAlphaBlendAmount;
@@ -5125,7 +5126,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
float betaSpeedFromStickX = xMovement * CARCAM_SET[camSetArrPos][12 ];
float newAngleSpeedMaxBlendAmount = CARCAM_SET[camSetArrPos][9 ];
float angleChangeStep = Pow (CARCAM_SET[camSetArrPos][8 ], CTimer::GetTimeStepFix () );
float angleChangeStep = Pow (CARCAM_SET[camSetArrPos][8 ], frameTime );
float targetBetaWithStickBlendAmount = betaSpeedFromStickX + (targetBeta - Beta) / Max (CTimer::GetTimeStep (), 1 .0f );
if (targetBetaWithStickBlendAmount < -newAngleSpeedMaxBlendAmount)
@@ -5135,7 +5136,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
float angleChangeStepLeft = 1 .0f - angleChangeStep;
BetaSpeed = targetBetaWithStickBlendAmount * angleChangeStepLeft + angleChangeStep * BetaSpeed;
if (Abs (BetaSpeed) < 0 .0001f * CTimer::GetTimeStepFix () )
if (Abs (BetaSpeed) < 0 .0001f * frameTime )
BetaSpeed = 0 .0f ;
float betaChangePerFrame;
@@ -5176,7 +5177,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
AlphaSpeed = maxAlphaSpeed;
}
if (Abs (AlphaSpeed) < 0 .0001f * CTimer::GetTimeStepFix () )
if (Abs (AlphaSpeed) < 0 .0001f * frameTime )
AlphaSpeed = 0 .0f ;
float alphaWithSpeedAccounted;
@@ -5200,12 +5201,12 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation,
}
// Prevent unsignificant angle changes
if (Abs (lastAlpha - Alpha) < 0 .0001f * CTimer::GetTimeStepFix () )
if (Abs (lastAlpha - Alpha) < 0 .0001f * frameTime )
Alpha = lastAlpha;
lastAlpha = Alpha;
if (Abs (lastBeta - Beta) < 0 .0001f * CTimer::GetTimeStepFix () )
if (Abs (lastBeta - Beta) < 0 .0001f * frameTime )
Beta = lastBeta;
lastBeta = Beta;