- Update shadow's driver

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6362 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: ff56b2a87dd418362f95ce29ab24a5ba0e7269ec
Former-commit-id: e4e01bb6b6d9eaab2aee917e89f44f5fd7c86a62
This commit is contained in:
torcs-ng 2016-02-19 21:02:48 +00:00
parent 37c74f2418
commit b1b4b6cb4f
3 changed files with 17 additions and 4 deletions

View file

@ -425,6 +425,12 @@ double CarModel::CalcMaxLateralF( double spd, double kFriction, double kz ) cons
#endif
}
double CarModel::CalcMaxSpeedCrv() const
{
const double MAX_SPD = 112; // 400 km/h
return G * TYRE_MU / (MAX_SPD * MAX_SPD);
}
void CarModel::CalcSimuSpeeds( double spd0, double dy, double dist, double kFriction, double& minSpd, double& maxSpd ) const
{
// simple speed calc for use in simulation for path optimisation... the

View file

@ -33,6 +33,8 @@ public:
double CalcMaxSpdK() const;
double CalcMaxLateralF(double spd, double kFriction , double kz = 0.0) const;
double CalcMaxSpeedCrv() const;
void CalcSimuSpeeds( double spd0, double dy, double dist, double kFriction, double& minSpd, double& maxSpd ) const;
void CalcSimuSpeedRanges( double spd0, double dist, double kFriction, double& minSpd, double& maxSpd, double& maxDY ) const;

View file

@ -1899,10 +1899,15 @@ void TDriver::AvoidOtherCars(int index, tCarElt* car, double k, double& carTarge
oi.avoidLatchTime = MX(0, oi.avoidLatchTime - s->deltaTime);
double maxSpdK = 15.0 / (110 * 110);
double colTime = fabs(k) > maxSpdK ? 0.5 : 0.7;
double catTime = fabs(k) > maxSpdK ? 0.5 : 2.5;
double cacTime = fabs(k) > maxSpdK ? 0.5 : 2.5;
//double maxSpdK = 15.0 / (110 * 110);
double maxSpdK = m_cm.CalcMaxSpeedCrv();
//double colTime = fabs(k) > maxSpdK ? 0.5 : 0.7;
double colTime = fabs(k) > maxSpdK ? 1.0 : 1.2;
//double catTime = fabs(k) > maxSpdK ? 0.5 : 2.5;
double catTime = fabs(k) > maxSpdK ? 1.0 : 3.0;
//double cacTime = fabs(k) > maxSpdK ? 0.5 : 2.5;
double cacTime = fabs(k) > maxSpdK ? 1.0 : 3.0;
bool catching = ( oi.catchTime < colTime && oi.GotFlags(Opponent::F_COLLIDE)) ||
( oi.catchTime < catTime && oi.GotFlags(Opponent::F_CATCHING)) ||
( oi.catchAccTime < cacTime && oi.GotFlags(Opponent::F_CATCHING_ACC));