|
|
@@ -4892,12 +4892,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(); |
|
|
FOV += (DotProduct(car->GetForward(), car->m_vecMoveSpeed) - 0.4f) * (CTimer::GetTimeStep() / CTimer::GetTimeStepFix()); |
|
|
} |
|
|
|
|
|
if (FOV > DefaultFOV) |
|
|
// 0.98f: CAR_FOV_FADE_MULT |
|
|
FOV = Pow(0.98f, CTimer::GetTimeStep()) * (FOV - DefaultFOV) + DefaultFOV; |
|
|
FOV = Pow(0.98f, CTimer::GetTimeStep() / CTimer::GetTimeStepFix()) * (FOV - DefaultFOV) + DefaultFOV; |
|
|
|
|
|
FOV = Clamp(FOV, DefaultFOV, DefaultFOV + 30.0f); |
|
|
} |
|
|
@@ -4965,8 +4965,8 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation, |
|
|
else if (velocityRightHeading > camRightHeading + PI) |
|
|
velocityRightHeading = velocityRightHeading - TWOPI; |
|
|
|
|
|
float betaChangeMult1 = CTimer::GetTimeStep() * CARCAM_SET[camSetArrPos][10]; |
|
|
float betaChangeLimit = CTimer::GetTimeStep() * CARCAM_SET[camSetArrPos][11]; |
|
|
float betaChangeMult1 = (CTimer::GetTimeStep() / CTimer::GetTimeStepFix()) * CARCAM_SET[camSetArrPos][10]; |
|
|
float betaChangeLimit = (CTimer::GetTimeStep() / CTimer::GetTimeStepFix()) * CARCAM_SET[camSetArrPos][11]; |
|
|
|
|
|
float betaChangeMult2 = (car->m_vecMoveSpeed - DotProduct(car->m_vecMoveSpeed, Front) * Front).Magnitude(); |
|
|
|
|
|
@@ -5028,8 +5028,8 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation, |
|
|
} else { |
|
|
targetAlpha = maxAlphaAllowed; |
|
|
} |
|
|
float maxAlphaBlendAmount = CTimer::GetTimeStep() * CARCAM_SET[camSetArrPos][6]; |
|
|
float targetAlphaBlendAmount = (1.0f - Pow(CARCAM_SET[camSetArrPos][5], CTimer::GetTimeStep())) * (targetAlpha - Alpha); |
|
|
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); |
|
|
if (targetAlphaBlendAmount <= maxAlphaBlendAmount) { |
|
|
if (targetAlphaBlendAmount < -maxAlphaBlendAmount) |
|
|
targetAlphaBlendAmount = -maxAlphaBlendAmount; |
|
|
@@ -5038,7 +5038,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation, |
|
|
} |
|
|
|
|
|
// Using GetCarGun(LR/UD) will give us same unprocessed RightStick value as SA |
|
|
float stickX = -(pad->GetCarGunLeftRight()); |
|
|
float stickX = -pad->GetCarGunLeftRight(); |
|
|
float stickY = -pad->GetCarGunUpDown(); |
|
|
|
|
|
// In SA this is for not let num2/num8 move camera when Keyboard & Mouse controls are used. |
|
|
@@ -5125,7 +5125,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::GetTimeStep()); |
|
|
float angleChangeStep = Pow(CARCAM_SET[camSetArrPos][8], CTimer::GetTimeStepFix()); |
|
|
float targetBetaWithStickBlendAmount = betaSpeedFromStickX + (targetBeta - Beta) / Max(CTimer::GetTimeStep(), 1.0f); |
|
|
|
|
|
if (targetBetaWithStickBlendAmount < -newAngleSpeedMaxBlendAmount) |
|
|
@@ -5135,7 +5135,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) |
|
|
if (Abs(BetaSpeed) < 0.0001f * CTimer::GetTimeStepFix()) |
|
|
BetaSpeed = 0.0f; |
|
|
|
|
|
float betaChangePerFrame; |
|
|
@@ -5176,7 +5176,7 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation, |
|
|
AlphaSpeed = maxAlphaSpeed; |
|
|
} |
|
|
|
|
|
if (Abs(AlphaSpeed) < 0.0001f) |
|
|
if (Abs(AlphaSpeed) < 0.0001f * CTimer::GetTimeStepFix()) |
|
|
AlphaSpeed = 0.0f; |
|
|
|
|
|
float alphaWithSpeedAccounted; |
|
|
@@ -5200,12 +5200,12 @@ CCam::Process_FollowCar_SA(const CVector& CameraTarget, float TargetOrientation, |
|
|
} |
|
|
|
|
|
// Prevent unsignificant angle changes |
|
|
if (Abs(lastAlpha - Alpha) < 0.0001f) |
|
|
if (Abs(lastAlpha - Alpha) < 0.0001f * CTimer::GetTimeStepFix()) |
|
|
Alpha = lastAlpha; |
|
|
|
|
|
lastAlpha = Alpha; |
|
|
|
|
|
if (Abs(lastBeta - Beta) < 0.0001f) |
|
|
if (Abs(lastBeta - Beta) < 0.0001f * CTimer::GetTimeStepFix()) |
|
|
Beta = lastBeta; |
|
|
|
|
|
lastBeta = Beta; |
|
|
|