- Update skilling for Shadow's driver

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

Former-commit-id: fc4abd7649db4e121c35b445a7152132bcf98563
Former-commit-id: 60f6bad08cdf632a7d4b6e80f9effb4f4b3d6a21
This commit is contained in:
torcs-ng 2016-02-28 01:59:28 +00:00
parent f191794922
commit 8609c66c8a
2 changed files with 22 additions and 17 deletions

View file

@ -416,6 +416,7 @@ void TDriver::GetSkillingParameters()
LogSHADOW.debug("#DriverAggression: %g\n", DriverAggression);
SkillDriver = (float)((SkillGlobal + SkillDriver * 2) * (1.0 + SkillDriver));
Skill = (float)((SkillGlobal + SkillDriver * 2) * (1.0 + SkillDriver));
}
GfParmReleaseHandle(SkillHandle);
@ -1522,6 +1523,8 @@ void TDriver::Drive( tSituation* s )
m_avoidTVel = 0;
}
CurrSimTime = s->currentTime;
double carFuel = car->_fuel;
if(HasTYC)
@ -1781,14 +1784,21 @@ void TDriver::Drive( tSituation* s )
}
}
CalcSkill();
if (!HasESP)
//brk = filterBrake(car, brk);
//oBrake = FilterBrakeSpeed(oBrake);
if (!HasABS)
brk = ApplyAbs(car, brk);
//brk = ApplyAbs(car, brk);
steer = FlightControl(steer);
brk *= BrakeAdjustPerc;
//acc *= BrakeAdjustPerc;
acc = filterDrifting(acc);
if (!HasTCL)
@ -3306,12 +3316,12 @@ double TDriver::CalcFriction_shadow_REF(const double Crv)
//==========================================================================*
// Skilling
//--------------------------------------------------------------------------*
double TDriver::CalcSkill(tSituation *s, double TargetSpeed)
void TDriver::CalcSkill()
{
if (Skilling && (RM_TYPE_PRACTICE != s->_raceType)
if (Skilling && (RM_TYPE_PRACTICE != m_Situation->_raceType)
&& m_Strategy->OutOfPitlane())
{
if ((SkillAdjustTimer == -1.0) || (TDriver::CurrSimTime - SkillAdjustTimer > SkillAdjustLimit))
if ((SkillAdjustTimer == -1.0) || (CurrSimTime - SkillAdjustTimer > SkillAdjustLimit))
{
double Rand1 = (double) getRandom() / 65536.0;
double Rand2 = (double) getRandom() / 65536.0;
@ -3321,31 +3331,26 @@ double TDriver::CalcSkill(tSituation *s, double TargetSpeed)
DecelAdjustTarget = (Skill / 4 * Rand1);
// brake to use
BrakeAdjustTarget = MAX(0.7, 1.0 - MAX(0.0, Skill/10 * (Rand2 - 0.7)));
BrakeAdjustTarget = MAX(0.85, 1.0 - MAX(0.0, Skill/15 * (Rand2 - 0.85)));
LogSHADOW.debug("Brake Adjust Target = %.2f\n", BrakeAdjustTarget);
// how long this skill mode to last for
SkillAdjustLimit = 5.0 + Rand3 * 50.0;
SkillAdjustTimer = TDriver::CurrSimTime;
SkillAdjustTimer = CurrSimTime;
if (DecelAdjustPerc < DecelAdjustTarget)
DecelAdjustPerc += MIN(s->deltaTime*4, DecelAdjustTarget - DecelAdjustPerc);
DecelAdjustPerc += MIN(m_Situation->deltaTime*4, DecelAdjustTarget - DecelAdjustPerc);
else
DecelAdjustPerc -= MIN(s->deltaTime*4, DecelAdjustPerc - DecelAdjustTarget);
DecelAdjustPerc -= MIN(m_Situation->deltaTime*4, DecelAdjustPerc - DecelAdjustTarget);
if (BrakeAdjustPerc < BrakeAdjustTarget)
BrakeAdjustPerc += MIN(s->deltaTime*2, BrakeAdjustTarget - BrakeAdjustPerc);
BrakeAdjustPerc += MIN(m_Situation->deltaTime*2, BrakeAdjustTarget - BrakeAdjustPerc);
else
BrakeAdjustPerc -= MIN(s->deltaTime*2, BrakeAdjustPerc - BrakeAdjustTarget);
BrakeAdjustPerc -= MIN(m_Situation->deltaTime*2, BrakeAdjustPerc - BrakeAdjustTarget);
}
LogSHADOW.debug("#TS: %g DAP: %g (%g)", TargetSpeed, DecelAdjustPerc,(1 - DecelAdjustPerc/10));
TargetSpeed *= (1 - Skill/SkillMax * DecelAdjustPerc/20);
LogSHADOW.debug("#TS: %g\n", TargetSpeed);
LogSHADOW.debug("CalcSkill DAP: %g (%g)\n ", DecelAdjustPerc,(1 - DecelAdjustPerc/10));
LogSHADOW.debug("#%g %g\n", DecelAdjustPerc,(1 - DecelAdjustPerc/10));
}
return TargetSpeed;
}
//==========================================================================*

View file

@ -237,7 +237,7 @@ public:
double (TDriver::*CalcCrvFoo)(double Crv);
double (TDriver::*CalcHairpinFoo)(double Speed, double AbsCrv);
double CalcSkill(tSituation *s, double TargetSpeed);
void CalcSkill();
void CalcSkilling_shadow();
void CalcSkilling_shadow_LS1();
void CalcSkilling_shadow_LS2();