forked from speed-dreams/speed-dreams-code
- update shadow's driver
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6192 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 0c1c5699e197e649c89f2ca5bb0101c26c4808a9 Former-commit-id: df1356c81f246f622d12642ed102363061d3e16c
This commit is contained in:
parent
2372e4a7f2
commit
8ac9ebcc7c
4 changed files with 84 additions and 6 deletions
|
@ -60,7 +60,12 @@ CarModel::CarModel()
|
|||
|
||||
KZ_SCALE(0),
|
||||
BUMP_FACTOR(0),
|
||||
WIDTH(2)
|
||||
WIDTH(2),
|
||||
HASTYC(false),
|
||||
TYRECONDITIONFRONT(0),
|
||||
TYRECONDITIONREAR(0),
|
||||
TYRETREADDEPTHFRONT(0),
|
||||
TYRETREADDEPTHREAR(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -126,13 +131,16 @@ double CarModel::CalcMaxSpeed(double k, double k1, double kz, double kFriction,
|
|||
|
||||
double MuF = kFriction * TYRE_MU_F * MU_SCALE;
|
||||
double MuR = kFriction * TYRE_MU_R * MU_SCALE;
|
||||
/*if (oDriver->oCarHasTYC)
|
||||
|
||||
if (HASTYC)
|
||||
{
|
||||
double TcF = oDriver->TyreConditionFront();
|
||||
double TcR = oDriver->TyreConditionRear();
|
||||
Mu = MIN(TcF*MuF,TcR*MuR) / oTmpCarParam->oSkill;
|
||||
double TcF = TYRECONDITIONFRONT;
|
||||
double TcR = TYRECONDITIONREAR;
|
||||
MuF = TcF * MuF;
|
||||
MuR = TcR * MuR;
|
||||
Mu = MIN(MuF, MuR) / SKILL;
|
||||
}
|
||||
else*/
|
||||
else
|
||||
Mu = MIN(MuF, MuR); // oTmpCarParam->oSkill;
|
||||
|
||||
Den = (AbsCrv - ScaleBump * kz) - (CA_FW * MuF + CA_RW * MuR
|
||||
|
@ -247,6 +255,17 @@ double CarModel::CalcBreaking(double k0, double kz0, double k1, double kz1, doub
|
|||
MU = (MU_F + MU_R) * 0.5;
|
||||
}
|
||||
|
||||
if (HASTYC)
|
||||
{
|
||||
double TcF = TYRECONDITIONFRONT;
|
||||
double TcR = TYRECONDITIONREAR;
|
||||
MU_F = TcF * MU_F;
|
||||
MU_R = TcR * MU_R;
|
||||
MU = MIN(MU_F, MU_R) / SKILL;
|
||||
}
|
||||
else
|
||||
MU = MIN(MU_F, MU_R); // oTmpCarParam->oSkill;
|
||||
|
||||
double CD = CD_BODY * (1.0 + DAMAGE / 10000.0) + CD_WING;
|
||||
|
||||
double Gdown = GRAVITY * cs * cs2;
|
||||
|
|
|
@ -69,6 +69,11 @@ public:
|
|||
double KZ_SCALE; // bump sensitivity.
|
||||
double BUMP_FACTOR; // bump sensitivity factor.
|
||||
double WIDTH; // width of car (m).
|
||||
bool HASTYC;
|
||||
double TYRECONDITIONFRONT;
|
||||
double TYRECONDITIONREAR;
|
||||
double TYRETREADDEPTHFRONT;
|
||||
double TYRETREADDEPTHREAR;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -689,6 +689,17 @@ void TDriver::NewRace( tCarElt* pCar, tSituation* pS )
|
|||
initWheelPos();
|
||||
initBrake();
|
||||
|
||||
if(HasTYC)
|
||||
{
|
||||
m_cm.HASTYC = true;
|
||||
m_cm.TYRECONDITIONFRONT = TyreConditionFront();
|
||||
m_cm.TYRECONDITIONREAR = TyreConditionRear();
|
||||
m_cm.TYRETREADDEPTHFRONT = TyreTreadDepthFront();
|
||||
m_cm.TYRETREADDEPTHREAR = TyreTreadDepthRear();
|
||||
}
|
||||
else
|
||||
m_cm.HASTYC = false;
|
||||
|
||||
m_cm.BRAKEFORCE = BrakeForce;
|
||||
|
||||
m_cm.FUEL = 0;//pCar->_fuel;
|
||||
|
@ -1511,6 +1522,20 @@ void TDriver::Drive( tSituation* s )
|
|||
{
|
||||
m_cm.FUEL = 5 * floor(carFuel / 5);
|
||||
m_cm.DAMAGE = car->_dammage;
|
||||
|
||||
if(HasTYC)
|
||||
{
|
||||
m_cm.TYRECONDITIONFRONT = TyreConditionFront();
|
||||
m_cm.TYRECONDITIONREAR = TyreConditionRear();
|
||||
m_cm.TYRETREADDEPTHFRONT = TyreTreadDepthFront();
|
||||
m_cm.TYRETREADDEPTHREAR = TyreTreadDepthRear();
|
||||
|
||||
m_cm2.TYRECONDITIONFRONT = TyreConditionFront();
|
||||
m_cm2.TYRECONDITIONREAR = TyreConditionRear();
|
||||
m_cm2.TYRETREADDEPTHFRONT = TyreTreadDepthFront();
|
||||
m_cm2.TYRETREADDEPTHREAR = TyreTreadDepthRear();
|
||||
}
|
||||
|
||||
m_cm2.FUEL = m_cm.FUEL;
|
||||
m_cm2.DAMAGE = m_cm.DAMAGE;
|
||||
|
||||
|
@ -3478,3 +3503,28 @@ bool TDriver::CheckPitSharing()
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
double TDriver::TyreConditionFront()
|
||||
{
|
||||
return MIN(car->_tyreCondition(0), car->_tyreCondition(1));
|
||||
}
|
||||
|
||||
double TDriver::TyreConditionRear()
|
||||
{
|
||||
return MIN(car->_tyreCondition(2), car->_tyreCondition(3));
|
||||
}
|
||||
|
||||
double TDriver::TyreTreadDepthFront()
|
||||
{
|
||||
double Right = (car->_tyreTreadDepth(0) - car->_tyreCritTreadDepth(0));
|
||||
double Left = (car->_tyreTreadDepth(1) - car->_tyreCritTreadDepth(1));
|
||||
return 100 * MIN(Right, Left);
|
||||
}
|
||||
|
||||
double TDriver::TyreTreadDepthRear()
|
||||
{
|
||||
double Right = (car->_tyreTreadDepth(2) - car->_tyreCritTreadDepth(2));
|
||||
double Left = (car->_tyreTreadDepth(3) - car->_tyreCritTreadDepth(3));
|
||||
return 100 * MIN(Right, Left);
|
||||
}
|
||||
|
||||
|
|
|
@ -273,6 +273,10 @@ public:
|
|||
void LearnBraking(double Pos); // Learn braking parameters
|
||||
void DetectFlight();
|
||||
double FlightControl(double Steer); // Prepare landing
|
||||
double TyreConditionFront();
|
||||
double TyreConditionRear();
|
||||
double TyreTreadDepthFront();
|
||||
double TyreTreadDepthRear();
|
||||
|
||||
bool m_UseFilterAccel;
|
||||
bool m_UseAccelOut;
|
||||
|
|
Loading…
Reference in a new issue