mirror of
https://github.com/GTAmodding/re3.git
synced 2025-05-10 17:03:30 +00:00
Merge 10f42aa2b9
into 3233ffe1c4
This commit is contained in:
commit
d5a1fa216d
2 changed files with 14 additions and 13 deletions
|
@ -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();
|
||||
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()) * (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() * CARCAM_SET[camSetArrPos][10];
|
||||
float betaChangeLimit = CTimer::GetTimeStep() * 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() * CARCAM_SET[camSetArrPos][6];
|
||||
float targetAlphaBlendAmount = (1.0f - Pow(CARCAM_SET[camSetArrPos][5], CTimer::GetTimeStep())) * (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;
|
||||
|
@ -5038,7 +5039,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 +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::GetTimeStep());
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
if (Abs(lastAlpha - Alpha) < 0.0001f * frameTime)
|
||||
Alpha = lastAlpha;
|
||||
|
||||
lastAlpha = Alpha;
|
||||
|
||||
if (Abs(lastBeta - Beta) < 0.0001f)
|
||||
if (Abs(lastBeta - Beta) < 0.0001f * frameTime)
|
||||
Beta = lastBeta;
|
||||
|
||||
lastBeta = Beta;
|
||||
|
|
|
@ -404,7 +404,7 @@ ScreenDroplets::ProcessCameraMovement(void)
|
|||
CVector camPos = camMat->pos;
|
||||
CVector camUp = camMat->at;
|
||||
ms_camMoveDelta = camPos - ms_prevCamPos;
|
||||
ms_camMoveDist = ms_camMoveDelta.Magnitude();
|
||||
ms_camMoveDist = ms_camMoveDelta.Magnitude() / CTimer::GetTimeStepFix();
|
||||
|
||||
ms_prevCamUp = camUp;
|
||||
ms_prevCamPos = camPos;
|
||||
|
|
Loading…
Add table
Reference in a new issue