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