Cleanup Simplix LS1

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

Former-commit-id: b482822bd99d33fac3316876811b6b6e1ecc6b25
Former-commit-id: 367cd7a11b06a31822a1e9e1684bcb94e7e2d664
This commit is contained in:
wdbee 2010-11-06 11:59:38 +00:00
parent 63ba3850f3
commit c8c4129b14
3 changed files with 174 additions and 171 deletions

View file

@ -9,7 +9,7 @@
//
// File : unitdriver.cpp
// Created : 2007.11.25
// Last changed : 2010.11.04
// Last changed : 2010.11.06
// Copyright : © 2007-2010 Wolf-Dieter Beelitz
// eMail : wdb@wdbee.de
// Version : 3.00.000
@ -351,7 +351,7 @@ TDriver::TDriver(int Index):
oJumpOffset(0.0),
oFirstJump(true)
{
// GfOut("#TDriver::TDriver() >>>\n");
// //GfOut("#TDriver::TDriver() >>>\n");
int I;
oIndex = Index; // Save own index
oExtended = // Determine if it
@ -371,7 +371,7 @@ TDriver::TDriver(int Index):
TDriver::LengthMargin = LENGTH_MARGIN; // Initialize safty margin
// GfOut("#<<< TDriver::TDriver()\n");
// //GfOut("#<<< TDriver::TDriver()\n");
}
//==========================================================================*
@ -380,7 +380,7 @@ TDriver::TDriver(int Index):
//--------------------------------------------------------------------------*
TDriver::~TDriver()
{
// GfOut("#TDriver::~TDriver() >>>\n");
// //GfOut("#TDriver::~TDriver() >>>\n");
delete [] oOpponents;
if (oCarType != NULL)
@ -393,7 +393,7 @@ TDriver::~TDriver()
delete oSysFooStuckX;
if (oSysFooStuckY != NULL)
delete oSysFooStuckY;
// GfOut("#<<< TDriver::~TDriver()\n");
// //GfOut("#<<< TDriver::~TDriver()\n");
}
//==========================================================================*
@ -454,10 +454,10 @@ void TDriver::SetBotName(void* RobotSettings, char* Value)
, Section, ROB_ATTR_RACENUM // defined in corresponding
, (char *) NULL, (tdble) oIndex + 1); // section, index as default
GfOut("#Bot name : %s\n",oBotName);
GfOut("#Team name : %s\n",oTeamName);
GfOut("#Car type : %s\n",oCarType);
GfOut("#Race number : %d\n",oRaceNumber);
//GfOut("#Bot name : %s\n",oBotName);
//GfOut("#Team name : %s\n",oTeamName);
//GfOut("#Car type : %s\n",oCarType);
//GfOut("#Race number : %d\n",oRaceNumber);
};
//==========================================================================*
@ -471,23 +471,23 @@ void TDriver::AdjustBrakes(PCarHandle Handle)
TDriver::BrakeLimit =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BRAKE_LIMIT,0,
(float) TDriver::BrakeLimit);
GfOut("#BrakeLimit %g\n",TDriver::BrakeLimit);
//GfOut("#BrakeLimit %g\n",TDriver::BrakeLimit);
TDriver::BrakeLimitBase =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BRAKE_LIMIT_BASE,0,
(float) TDriver::BrakeLimitBase);
GfOut("#BrakeLimitBase %g\n",TDriver::BrakeLimitBase);
//GfOut("#BrakeLimitBase %g\n",TDriver::BrakeLimitBase);
TDriver::BrakeLimitScale =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BRAKE_LIMIT_SCALE,0,
(float) TDriver::BrakeLimitScale);
GfOut("#BrakeLimitScale %g\n",TDriver::BrakeLimitScale);
//GfOut("#BrakeLimitScale %g\n",TDriver::BrakeLimitScale);
TDriver::SpeedLimitBase =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SPEED_LIMIT_BASE,0,
(float) TDriver::SpeedLimitBase);
GfOut("#SpeedLimitBase %g\n",TDriver::SpeedLimitBase);
//GfOut("#SpeedLimitBase %g\n",TDriver::SpeedLimitBase);
TDriver::SpeedLimitScale =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SPEED_LIMIT_SCALE,0,
(float) TDriver::SpeedLimitScale);
GfOut("#SpeedLimitScale %g\n",TDriver::SpeedLimitScale);
//GfOut("#SpeedLimitScale %g\n",TDriver::SpeedLimitScale);
}
};
//==========================================================================*
@ -501,10 +501,10 @@ void TDriver::AdjustDriving(
Param.oCarParam.oScaleBrake = ScaleBrake *
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_BRAKE,NULL,0.85f);
if(Qualification)
Param.oCarParam.oScaleBrake =
Param.oCarParam.oScaleBrake = ScaleBrake *
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_BRAKE_Q,NULL,
(float) Param.oCarParam.oScaleBrake);
GfOut("#Scale Brake: %g\n",Param.oCarParam.oScaleBrake);
//GfOut("#Scale Brake: %g\n",Param.oCarParam.oScaleBrake);
//Param.oCarParam.oScaleBrake -= 0.1;
oJumpOffset =
@ -518,52 +518,52 @@ void TDriver::AdjustDriving(
Param.oCarParam.oScaleBump;
Param.oCarParam.oScaleBumpRight =
Param.oCarParam.oScaleBump;
GfOut("#Scale Bump: %g\n",Param.oCarParam.oScaleBump);
//GfOut("#Scale Bump: %g\n",Param.oCarParam.oScaleBump);
Param.oCarParam.oScaleBumpOuter =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_BUMPOUTER,NULL,
(float) Param.oCarParam.oScaleBump);
GfOut("#Scale Bump Outer: %g\n",Param.oCarParam.oScaleBumpOuter);
//GfOut("#Scale Bump Outer: %g\n",Param.oCarParam.oScaleBumpOuter);
Param.oCarParam.oScaleMu = ScaleMu *
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_MU,NULL,
(float) Param.oCarParam.oScaleMu);
if(Qualification)
Param.oCarParam.oScaleMu =
Param.oCarParam.oScaleMu = ScaleMu *
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_MU_Q,NULL,
(float) Param.oCarParam.oScaleMu);
GfOut("#Scale Mu: %g\n",Param.oCarParam.oScaleMu);
//GfOut("#Scale Mu: %g\n",Param.oCarParam.oScaleMu);
//Param.oCarParam.oScaleMu -= 0.1;
Param.oCarParam.oScaleMinMu =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_MIN_MU,NULL,
(float) Param.oCarParam.oScaleMinMu);
GfOut("#Scale Min Mu %g\n",Param.oCarParam.oScaleMinMu);
//GfOut("#Scale Min Mu %g\n",Param.oCarParam.oScaleMinMu);
oSideScaleMu =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SIDE_MU,NULL,
oSideScaleMu);
GfOut("#Side Scale Mu%g\n",oSideScaleMu);
//GfOut("#Side Scale Mu%g\n",oSideScaleMu);
oScaleMuRain =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_RAIN_MU,NULL,
(float) oScaleMuRain);
GfOut("#Scale Mu Rain%g\n",oScaleMuRain);
//GfOut("#Scale Mu Rain%g\n",oScaleMuRain);
oSideScaleBrake =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SIDE_BRAKE,NULL,
oSideScaleBrake);
GfOut("#Side Scale Brake%g\n",oSideScaleBrake);
//GfOut("#Side Scale Brake%g\n",oSideScaleBrake);
oScaleBrakeRain =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_RAIN_BRAKE,NULL,
(float) oScaleBrakeRain);
GfOut("#Scale Brake Rain%g\n",oScaleBrakeRain);
//GfOut("#Scale Brake Rain%g\n",oScaleBrakeRain);
oAvoidScale =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_AVOID_SCALE,0,
(float) oAvoidScale);
GfOut("#oAvoidScale %g\n",oAvoidScale);
//GfOut("#oAvoidScale %g\n",oAvoidScale);
if (oTrack->width < 11)
oAvoidWidth = 0.5;
@ -577,13 +577,13 @@ void TDriver::AdjustDriving(
oAvoidWidth =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_AVOID_WIDTH,0,
(float) oAvoidWidth);
GfOut("#oAvoidWidth %g\n",oAvoidWidth);
//GfOut("#oAvoidWidth %g\n",oAvoidWidth);
oLookAhead = Param.Fix.oLength;
oLookAhead =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_LOOKAHEAD,0,
(float) oLookAhead);
GfOut("#oLookAhead %g\n",oLookAhead);
//GfOut("#oLookAhead %g\n",oLookAhead);
if (GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_ACCEL_OUT,0,1) != 0)
UseAccelOut();
@ -599,66 +599,66 @@ void TDriver::AdjustDriving(
Param.Fix.oBorderInner =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BORDER_INNER,0,
(float) Param.Fix.oBorderInner);
GfOut("#Border Inner: %g\n",Param.Fix.oBorderInner);
//GfOut("#Border Inner: %g\n",Param.Fix.oBorderInner);
Param.Fix.oBorderOuter =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BORDER_OUTER,0,
(float) Param.Fix.oBorderOuter);
GfOut("#Border Outer: %g\n",Param.Fix.oBorderOuter);
//GfOut("#Border Outer: %g\n",Param.Fix.oBorderOuter);
Param.Fix.oMaxBorderInner =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_MAX_BORDER_INNER,0,
(float) Param.Fix.oMaxBorderInner);
GfOut("#Max Border Inner: %g\n",Param.Fix.oMaxBorderInner);
//GfOut("#Max Border Inner: %g\n",Param.Fix.oMaxBorderInner);
Param.Fix.oBorderScale =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_BORDER_SCALE,0,
(float) Param.Fix.oBorderScale);
GfOut("#Border Scale: %g\n",Param.Fix.oBorderScale);
//GfOut("#Border Scale: %g\n",Param.Fix.oBorderScale);
oFlyHeight =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_FLY_HEIGHT,"m",
(float) oFlyHeight);
GfOut("#FLY_HEIGHT %g\n",oFlyHeight);
//GfOut("#FLY_HEIGHT %g\n",oFlyHeight);
oLookAhead =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_LOOKAHEAD,0,
(float) Param.Fix.oLength);
GfOut("#LookAhead %g\n",oLookAhead);
//GfOut("#LookAhead %g\n",oLookAhead);
oOmegaAhead = Param.Fix.oLength;
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_OMEGAAHEAD,0,
(float) Param.Fix.oLength);
GfOut("#OmegaAhead %g\n",oOmegaAhead);
//GfOut("#OmegaAhead %g\n",oOmegaAhead);
oOmegaAheadFactor =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_OMEGAAHEADFACTOR,0,
(float) oOmegaAheadFactor);
GfOut("#OmegaAheadFactor %g\n",oOmegaAheadFactor);
//GfOut("#OmegaAheadFactor %g\n",oOmegaAheadFactor);
oInitialBrakeCoeff = oBrakeCoeff[0];
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_INIT_BRAKE,0,
(float) oBrakeCoeff[0]);
GfOut("#oInitialBrakeCoeff %g\n",oInitialBrakeCoeff);
//GfOut("#oInitialBrakeCoeff %g\n",oInitialBrakeCoeff);
}
oLookAheadFactor =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_LOOKAHEADFACTOR,0,
(float)oLookAheadFactor);
GfOut("#LookAheadFactor %g\n",oLookAheadFactor);
//GfOut("#LookAheadFactor %g\n",oLookAheadFactor);
oScaleSteer =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_SCALE_STEER,0,
(float) oScaleSteer);
GfOut("#oScaleSteer %g\n",oScaleSteer);
//GfOut("#oScaleSteer %g\n",oScaleSteer);
oStayTogether =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_STAY_TOGETHER,0,10);
GfOut("#oStayTogether %g\n",oStayTogether);
//GfOut("#oStayTogether %g\n",oStayTogether);
oCrvComp =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_CRV_COMP,0,1) != 0;
GfOut("#oCrvComp %s\n",oCrvComp ? "true" : "false");
//GfOut("#oCrvComp %s\n",oCrvComp ? "true" : "false");
for (int I = 0; I <= NBR_BRAKECOEFF; I++) // Initialize braking
oBrakeCoeff[I] = oInitialBrakeCoeff;
@ -666,72 +666,72 @@ void TDriver::AdjustDriving(
oTclRange =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TCL_RANGE,0,
(float)oTclRange);
GfOut("#oTclRange %g\n",oTclRange);
//GfOut("#oTclRange %g\n",oTclRange);
oTclSlip =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TCL_SLIP,0,
(float)oTclSlip);
GfOut("#oTclSlip %g\n",oTclSlip);
//GfOut("#oTclSlip %g\n",oTclSlip);
oTclFactor =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TCL_FACTOR,0,
(float)oTclFactor);
GfOut("#oTclFactor %g\n",oTclFactor);
//GfOut("#oTclFactor %g\n",oTclFactor);
/*
oTclAccel =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TCL_ACCEL,0,
(float)oTclAccel);
GfOut("#oTclAccel %g\n",oTclAccel);
//GfOut("#oTclAccel %g\n",oTclAccel);
oTclAccelFactor =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TCL_ACCELFACTOR,0,
(float)oTclAccelFactor);
GfOut("#oTclAccelFactor %g\n",oTclAccelFactor);
//GfOut("#oTclAccelFactor %g\n",oTclAccelFactor);
*/
oDriftFactor =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_DRIFT_FACTOR,0,
(float)oDriftFactor);
GfOut("#oDriftFactor %g\n",oDriftFactor);
//GfOut("#oDriftFactor %g\n",oDriftFactor);
oAbsDelta =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_ABS_DELTA,0,
(float)oAbsDelta);
GfOut("#oAbsDelta %g\n",oAbsDelta);
//GfOut("#oAbsDelta %g\n",oAbsDelta);
oAbsScale =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_ABS_SCALE,0,
(float)oAbsScale);
GfOut("#oAbsScale %g\n",oAbsScale);
//GfOut("#oAbsScale %g\n",oAbsScale);
oClutchDelta =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_CLUTCH_DELTA,0,
(float)oClutchDelta);
GfOut("#oClutchDelta %g\n",oClutchDelta);
//GfOut("#oClutchDelta %g\n",oClutchDelta);
oClutchMax =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_CLUTCH_MAX,0,
(float)oClutchMax);
GfOut("#oClutchMax %g\n",oClutchMax);
//GfOut("#oClutchMax %g\n",oClutchMax);
oClutchRange =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_CLUTCH_RANGE,0,
(float)oClutchRange);
GfOut("#oClutchRange %g\n",oClutchRange);
//GfOut("#oClutchRange %g\n",oClutchRange);
oClutchRelease =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_CLUTCH_RELEASE,0,
(float)oClutchRelease);
GfOut("#oClutchRelease %g\n",oClutchRelease);
//GfOut("#oClutchRelease %g\n",oClutchRelease);
oTeamEnabled =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_TEAM_ENABLE,0,
(float)oTeamEnabled) != 0;
GfOut("#oTeamEnabled %d\n",oTeamEnabled);
//GfOut("#oTeamEnabled %d\n",oTeamEnabled);
oDryCode = (int)
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_WEATHER_DRY,0,
(float)oDryCode);
GfOut("#oDryCode %d\n",oDryCode);
//GfOut("#oDryCode %d\n",oDryCode);
// ... Adjust driving
};
//==========================================================================*
@ -744,64 +744,64 @@ void TDriver::AdjustPitting(PCarHandle Handle)
// Adjust pitting ...
Param.Pit.oUseFirstPit = (int)
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_USE_FIRST,0,1);
GfOut("#oUseFirstPit %d\n",Param.Pit.oUseFirstPit);
//GfOut("#oUseFirstPit %d\n",Param.Pit.oUseFirstPit);
Param.Pit.oUseSmoothPit = (int)
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_USE_SMOOTH,0,0);
GfOut("#oUseSmoothPit %d\n",Param.Pit.oUseSmoothPit);
//GfOut("#oUseSmoothPit %d\n",Param.Pit.oUseSmoothPit);
Param.Pit.oLaneEntryOffset =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PITLANE_ENTRY,0,3.0f);
GfOut("#oLaneEntryOffset %g\n",Param.Pit.oLaneEntryOffset);
//GfOut("#oLaneEntryOffset %g\n",Param.Pit.oLaneEntryOffset);
Param.Pit.oLaneExitOffset =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PITLANE_EXIT,0,5.0f);
GfOut("#oLaneExitOffset %g\n",Param.Pit.oLaneExitOffset);
//GfOut("#oLaneExitOffset %g\n",Param.Pit.oLaneExitOffset);
Param.Pit.oEntryLong =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_ENTRY_LONG,0,0);
GfOut("#oEntryLong %g\n",Param.Pit.oEntryLong);
//GfOut("#oEntryLong %g\n",Param.Pit.oEntryLong);
Param.Pit.oExitLong =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_EXIT_LONG,0,0);
GfOut("#oExitLong %g\n",Param.Pit.oExitLong);
//GfOut("#oExitLong %g\n",Param.Pit.oExitLong);
Param.Pit.oExitLength =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_EXIT_LEN,0,0);
GfOut("#oExitLength %g\n",Param.Pit.oExitLength);
//GfOut("#oExitLength %g\n",Param.Pit.oExitLength);
Param.Pit.oLatOffset =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_LAT_OFFS,0,0.0);
GfOut("#Lateral Pit Offset %f\n",Param.Pit.oLatOffset);
//GfOut("#Lateral Pit Offset %f\n",Param.Pit.oLatOffset);
Param.Pit.oLongOffset =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_LONG_OFFS,0,0.0);
GfOut("#Longitudinal Pit Offset %f\n",Param.Pit.oLongOffset);
//GfOut("#Longitudinal Pit Offset %f\n",Param.Pit.oLongOffset);
Param.oCarParam.oScaleBrakePit =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_SCALE_BRAKE,0,
(float) MIN(1.0,Param.oCarParam.oScaleBrake));
GfOut("#ScaleBrakePit %g\n",Param.oCarParam.oScaleBrakePit);
//GfOut("#ScaleBrakePit %g\n",Param.oCarParam.oScaleBrakePit);
Param.Pit.oStoppingDist =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_STOP_DIST,0,1.5);
GfOut("#oStoppingDist %g\n",Param.Pit.oStoppingDist);
//GfOut("#oStoppingDist %g\n",Param.Pit.oStoppingDist);
Param.Fix.oPitBrakeDist =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_BRAKE_DIST,0,150.0);
GfOut("#oPitBrakeDist %g\n",Param.Fix.oPitBrakeDist);
//GfOut("#oPitBrakeDist %g\n",Param.Fix.oPitBrakeDist);
Param.Fix.oPitMinEntrySpeed =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_MINENTRYSPEED,0,24.5);
GfOut("#oPitMinEntrySpeed %g\n",Param.Fix.oPitMinEntrySpeed);
//GfOut("#oPitMinEntrySpeed %g\n",Param.Fix.oPitMinEntrySpeed);
Param.Fix.oPitMinExitSpeed =
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_MINEXITSPEED,0,24.5);
GfOut("#oPitMinExitSpeed %g\n",Param.Fix.oPitMinExitSpeed);
//GfOut("#oPitMinExitSpeed %g\n",Param.Fix.oPitMinExitSpeed);
oTestPitStop = (int)
GfParmGetNum(Handle,TDriver::SECT_PRIV,PRV_PIT_TEST_STOP,0,0);
GfOut("#TestPitStop %d\n",oTestPitStop);
//GfOut("#TestPitStop %d\n",oTestPitStop);
// ... Adjust pitting
};
//==========================================================================*
@ -816,17 +816,17 @@ void TDriver::AdjustSkilling(PCarHandle Handle)
{
oSkilling = false;
oSkill = 1.0;
GfOut("#No skilling: Skill %g\n",oSkill);
//GfOut("#No skilling: Skill %g\n",oSkill);
Param.Tmp.oSkill = 1.0;
}
else
{
oSkillOffset = MAX(0.0,MIN(10.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,
"offset skill", (char *) NULL, (float) oSkillOffset)));
GfOut("#SkillOffset: %g\n", oSkillOffset);
//GfOut("#SkillOffset: %g\n", oSkillOffset);
oSkillScale = MAX(0.0,MIN(10.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,
"scale skill", (char *) NULL, (float) oSkillScale)));
GfOut("#SkillScale: %g\n", oSkillScale);
//GfOut("#SkillScale: %g\n", oSkillScale);
oLookAhead = oLookAhead / (1+oSkillGlobal/24);
oLookAheadFactor = oLookAheadFactor / (1+oSkillGlobal/24);
@ -840,8 +840,8 @@ void TDriver::AdjustSkilling(PCarHandle Handle)
}
Param.Tmp.oSkill = 1.0 + oSkill;
GfOut("\n#>>>Skilling: Skill %g oSkillGlobal %g oSkillDriver %g oLookAhead %g oLookAheadFactor %g effSkill:%g\n\n",
oSkill,oSkillGlobal,oSkillDriver,oLookAhead,oLookAheadFactor,Param.Tmp.oSkill);
//GfOut("\n#>>>Skilling: Skill %g oSkillGlobal %g oSkillDriver %g oLookAhead %g oLookAheadFactor %g effSkill:%g\n\n",
// oSkill,oSkillGlobal,oSkillDriver,oLookAhead,oLookAheadFactor,Param.Tmp.oSkill);
}
// ... Adjust skilling
};
@ -858,49 +858,49 @@ void TDriver::GetSkillingParameters
int SkillEnabled = 0;
snprintf(PathFilenameBuffer, BUFLEN, // In default.xml
"%s/default.xml", BaseParamPath); // of the robot
GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself
//GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself
void* SkillHandle = GfParmReadFile
(PathFilename, GFPARM_RMODE_REREAD);
if (SkillHandle)
{
SkillEnabled = (int) MAX(0,MIN(1,(int) GfParmGetNum(SkillHandle,
"skilling", "enable", (char *) NULL, 0.0)));
GfOut("#SkillEnabled %d\n",SkillEnabled);
//GfOut("#SkillEnabled %d\n",SkillEnabled);
oTeamEnabled =
GfParmGetNum(SkillHandle,"team","enable",0,(float) oTeamEnabled) != 0;
GfOut("#oTeamEnabled %d\n",oTeamEnabled);
//GfOut("#oTeamEnabled %d\n",oTeamEnabled);
}
if (SkillEnabled > 0) // If skilling is enabled
{ // Get Skill level
oSkilling = true; // of TORCS-Installation
GfOut("#Skilling: On\n");
//GfOut("#Skilling: On\n");
void* SkillHandle = NULL;
snprintf(PathFilenameBuffer, BUFLEN,
"%sconfig/raceman/extra/skill.xml",GetLocalDir());
GfOut("#skill.xml: %s\n", PathFilename);
//GfOut("#skill.xml: %s\n", PathFilename);
SkillHandle = GfParmReadFile
(PathFilename, GFPARM_RMODE_REREAD);
if (SkillHandle)
{
oSkillGlobal = MAX(0.0,MIN(10.0,GfParmGetNum(SkillHandle,
"skill", "level", (char *) NULL, 10.0)));
GfOut("#LocalDir: SkillGlobal: %g\n", oSkillGlobal);
//GfOut("#LocalDir: SkillGlobal: %g\n", oSkillGlobal);
}
else
{
snprintf(PathFilenameBuffer, BUFLEN,
"%sconfig/raceman/extra/skill.xml",GetDataDir());
GfOut("#skill.xml: %s\n", PathFilename);
//GfOut("#skill.xml: %s\n", PathFilename);
SkillHandle = GfParmReadFile
(PathFilename, GFPARM_RMODE_REREAD);
if (SkillHandle)
{
oSkillGlobal = MAX(0.0,MIN(10.0,GfParmGetNum(SkillHandle,
"skill", "level", (char *) NULL, 10.0)));
GfOut("#DataDir: SkillGlobal: %g\n", oSkillGlobal);
//GfOut("#DataDir: SkillGlobal: %g\n", oSkillGlobal);
}
}
@ -908,24 +908,24 @@ void TDriver::GetSkillingParameters
//int SkillEnabled = 0;
snprintf(PathFilenameBuffer,BUFLEN,"%s/%d/skill.xml",
BaseParamPath,oIndex);
GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself
//GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself
SkillHandle = GfParmReadFile
(PathFilename, GFPARM_RMODE_REREAD);
if (SkillHandle)
{
oSkillDriver = GfParmGetNum(SkillHandle,"skill","level",0,0.0);
oSkillDriver = MIN(1.0, MAX(0.0, oSkillDriver));
GfOut("#oSkillDriver: %g\n", oSkillDriver);
//GfOut("#oSkillDriver: %g\n", oSkillDriver);
oDriverAggression =
GfParmGetNum(SkillHandle, "skill", "aggression", (char *)NULL, 0.0);
GfOut("#oDriverAggression: %g\n", oDriverAggression);
//GfOut("#oDriverAggression: %g\n", oDriverAggression);
}
}
else
{
oSkilling = false;
GfOut("#Skilling: Off\n");
//GfOut("#Skilling: Off\n");
}
// ... Global skilling from Andrew Sumner
};
@ -944,7 +944,7 @@ void TDriver::SetPathAndFilenameForRacinglines()
oPathToWriteTo = PathToWriteToBuffer;
if (GfDirCreate(oPathToWriteTo) == GF_DIR_CREATION_FAILED)
{
GfOut("#Unable to create path for racinglines: >%s<",oPathToWriteTo);
//GfOut("#Unable to create path for racinglines: >%s<",oPathToWriteTo);
};
snprintf(TrackLoadBuffer,sizeof(TrackLoadBuffer),"%s/%d-%s.trk",
@ -984,7 +984,7 @@ void TDriver::InitTrack
(PTrack Track, PCarHandle CarHandle,
PCarSettings *CarSettings, PSituation Situation)
{
GfOut("#\n\n\n#TDriver::InitTrack >>> \n\n\n");
//GfOut("#\n\n\n#TDriver::InitTrack >>> \n\n\n");
oTrack = Track; // save pointers
#ifdef SPEED_DREAMS
@ -1021,17 +1021,17 @@ void TDriver::InitTrack
oMaxFuel = GfParmGetNum(CarHandle // Maximal möglicher
, SECT_CAR, PRM_TANK // Tankinhalt
, (char*) NULL, 100.0);
GfOut("#oMaxFuel (TORCS) = %.1f\n",oMaxFuel);
//GfOut("#oMaxFuel (TORCS) = %.1f\n",oMaxFuel);
oMaxPressure = GfParmGetNum(CarHandle // Maximal möglicher
, "Brake System", MAXPRESSURE // Bremsdruck
, (char*) NULL, (float) oMaxPressure);
GfOut("#oMaxPressure = %.1f\n",oMaxPressure);
//GfOut("#oMaxPressure = %.1f\n",oMaxPressure);
oBrakeScale *= MAX(1.0,INITIAL_BRAKE_PRESSURE / oMaxPressure);
GfOut("#oBrakeScale = %.3f\n",oBrakeScale);
//GfOut("#oBrakeScale = %.3f\n",oBrakeScale);
oBrakeForceMax *= oBrakeScale/INITIAL_BRAKE_SCALE;
GfOut("#oBrakeForceMax = %.3f\n",oBrakeForceMax);
//GfOut("#oBrakeForceMax = %.3f\n",oBrakeForceMax);
// Next Params out of the own files
PCarHandle Handle = NULL; // Start with "empty file"
@ -1040,7 +1040,7 @@ void TDriver::InitTrack
// Default params for car type (e.g. .../ROBOT_DIR/sc-petrol/default.xml)
snprintf(Buf,sizeof(Buf),"%s/%s/default.xml",
BaseParamPath,oCarType);
GfOut("#Default params for car type: %s\n", Buf);
//GfOut("#Default params for car type: %s\n", Buf);
Handle = TUtils::MergeParamFile(Handle,Buf);
// Override params for track (Pitting)
@ -1079,7 +1079,7 @@ void TDriver::InitTrack
TDriver::LengthMargin =
GfParmGetNum(Handle,TDriver::SECT_PRIV,
PRV_LENGTH_MARGIN,0,LENGTH_MARGIN);
GfOut("#LengthMargin %.2f\n",TDriver::LengthMargin);
//GfOut("#LengthMargin %.2f\n",TDriver::LengthMargin);
// Check test flag:
const char* ForceLane = GfParmGetStr(Handle,
@ -1101,7 +1101,7 @@ void TDriver::InitTrack
|| (oSituation->_raceType == RM_TYPE_QUALIF))
{
Qualification = true;
GfOut("#Qualification = True\n");
//GfOut("#Qualification = True\n");
NBRRL = 1;
}
}
@ -1144,17 +1144,17 @@ void TDriver::InitTrack
float Reserve = GfParmGetNum(Handle // Reserve in m
, TDriver::SECT_PRIV, PRV_RESERVE
, (char*) NULL, 2000);
GfOut("#Reserve: %.0f\n",Reserve);
//GfOut("#Reserve: %.0f\n",Reserve);
oStrategy->oReserve = Reserve;
oFuelNeeded =
oStrategy->SetFuelAtRaceStart // Fueling and pitting
(oTrack,CarSettings,oSituation,Fuel); // strategy
GfOut("#oFuelNeeded: %.1f\n",oFuelNeeded);
//GfOut("#oFuelNeeded: %.1f\n",oFuelNeeded);
// ... Setup initial fuel for race
Meteorology();
GfOut("#\n\n\n#<<< TDriver::InitTrack\n\n\n");
//GfOut("#\n\n\n#<<< TDriver::InitTrack\n\n\n");
}
//==========================================================================*
@ -1167,18 +1167,18 @@ bool TDriver::CheckPitSharing()
if (OwnPit == NULL) // If pit is NULL
{ // nothing to do
GfOut("\n\nPit = NULL\n\n"); // here
//GfOut("\n\nPit = NULL\n\n"); // here
return false;
}
if (OwnPit->freeCarIndex > 1)
{
GfOut("\n\nPitSharing = true\n\n");
//GfOut("\n\nPitSharing = true\n\n");
return true;
}
else
{
GfOut("\n\nPitSharing = false\n\n");
//GfOut("\n\nPitSharing = false\n\n");
return false;
}
}
@ -1413,9 +1413,9 @@ int TDriver::PitCmd()
//--------------------------------------------------------------------------*
void TDriver::EndRace()
{
GfOut("#TDriver::EndRace() >>>\n");
//GfOut("#TDriver::EndRace() >>>\n");
oStrategy->PitRelease(); // Release pit if eliminated
GfOut("#<<< TDriver::EndRace()\n");
//GfOut("#<<< TDriver::EndRace()\n");
}
//==========================================================================*
@ -1506,10 +1506,10 @@ int TDriver::GetWeather()
//--------------------------------------------------------------------------*
void TDriver::FindRacinglines()
{
GfOut("#Update car parameters ...\n");
//GfOut("#Update car parameters ...\n");
Param.Update(); // update car parameters
GfOut("# ... set track ...\n");
//GfOut("# ... set track ...\n");
if(oCommonData->Track != oTrackDesc.Track()) // New track?
{
oCommonData->Track = oTrackDesc.Track(); // Save pointer
@ -1519,10 +1519,10 @@ void TDriver::FindRacinglines()
#endif
}
GfOut("# ... load smooth path ...\n");
//GfOut("# ... load smooth path ...\n");
if (oSituation->_raceType == RM_TYPE_PRACTICE)
{
GfOut("# ... make smooth path ...\n");
//GfOut("# ... make smooth path ...\n");
oRacingLine[oRL_FREE].MakeSmoothPath // Calculate a smooth path
(&oTrackDesc, Param, // as main racingline
TClothoidLane::TOptions(oBumpMode));
@ -1536,7 +1536,7 @@ void TDriver::FindRacinglines()
&oTrackDesc, Param, // as main racingline
TClothoidLane::TOptions(oBumpMode)))
{
GfOut("# ... make smooth path ...\n");
//GfOut("# ... make smooth path ...\n");
oRacingLine[oRL_FREE].MakeSmoothPath // Calculate a smooth path
(&oTrackDesc, Param, // as main racingline
TClothoidLane::TOptions(oBumpMode));
@ -1548,7 +1548,7 @@ void TDriver::FindRacinglines()
&oTrackDesc, Param, // as main racingline
TClothoidLane::TOptions(oBumpMode)))
{
GfOut("# ... make smooth path ...\n");
//GfOut("# ... make smooth path ...\n");
oRacingLine[oRL_FREE].MakeSmoothPath // Calculate a smooth path
(&oTrackDesc, Param, // as main racingline
TClothoidLane::TOptions(oBumpMode));
@ -1576,7 +1576,7 @@ void TDriver::FindRacinglines()
&oTrackDesc, Param, // avoid to left racingline
TClothoidLane::TOptions(oBumpMode, FLT_MAX, -oAvoidWidth, true)))
{
GfOut("# ... make avoid path left ...\n");
//GfOut("# ... make avoid path left ...\n");
oRacingLine[oRL_LEFT].MakeSmoothPath // Avoid to left racingline
(&oTrackDesc, Param,
@ -1595,7 +1595,7 @@ void TDriver::FindRacinglines()
&oTrackDesc, Param, // avoid to right racingline
TClothoidLane::TOptions(oBumpMode, -oAvoidWidth, FLT_MAX, true)))
{
GfOut("# ... make avoid path right ...\n");
//GfOut("# ... make avoid path right ...\n");
oRacingLine[oRL_RIGHT].MakeSmoothPath // Avoid to right racingline
(&oTrackDesc, Param,
@ -1609,7 +1609,7 @@ void TDriver::FindRacinglines()
{
for (int I = 0; I < NBRRL; I++) // Adjust racinglines
{ // using car parameters
GfOut("# ... adjust pit path %d ...\n",I);
//GfOut("# ... adjust pit path %d ...\n",I);
oStrategy->oPit->oPitLane[I].MakePath
(oPitLoad[I],&oRacingLine[I], Param, I);
@ -1629,7 +1629,7 @@ void TDriver::FindRacinglines()
oRacingLine[I].PropagateBreaking(1);
oRacingLine[I].PropagateAcceleration(1);
}
GfOut("# ... Done\n");
//GfOut("# ... Done\n");
}
//==========================================================================*
@ -1645,8 +1645,8 @@ void TDriver::TeamInfo()
#else
oTeam = oCommonData->TeamManager.Add(oCar,oSituation);
#endif
GfOut("#\n# %s Team: %s Teamindex: %d\n#\n",
oBotName, oCar->_teamname, oTeamIndex);
//GfOut("#\n# %s Team: %s Teamindex: %d\n#\n",
// oBotName, oCar->_teamname, oTeamIndex);
}
//==========================================================================*
@ -1771,7 +1771,7 @@ void TDriver::DetectFlight()
if (oFirstJump)
{
oJumpOffset = - oJumping - 0.03;
GfOut("#oJumpOffset: %g\n",oJumpOffset);
//GfOut("#oJumpOffset: %g\n",oJumpOffset);
oFirstJump = false;
}
@ -1785,7 +1785,7 @@ void TDriver::DetectFlight()
}
//if (oJumping > 0)
// GfOut("#%g\n",oJumping);
// //GfOut("#%g\n",oJumping);
}
//==========================================================================*
@ -1910,12 +1910,14 @@ void TDriver::InitCa()
float FrontWingAngle =
GfParmGetNum(oCarHandle, SECT_FRNTWING,
PRM_WINGANGLE, (char*) NULL, 0.0);
//GfOut("#FrontWingAngle %g\n",FrontWingAngle * 180 / PI);
float RearWingArea =
GfParmGetNum(oCarHandle, SECT_REARWING,
PRM_WINGAREA, (char*) NULL, 0.0f);
float RearWingAngle =
GfParmGetNum(oCarHandle, SECT_REARWING,
PRM_WINGANGLE, (char*) NULL, 0.0f);
//GfOut("#RearWingAngle %g\n",RearWingAngle * 180 / PI);
FrontWingArea = FrontWingArea * sin(FrontWingAngle);
RearWingArea = RearWingArea * sin(RearWingAngle);
@ -2291,8 +2293,9 @@ void TDriver::InitAdaptiveShiftLevels()
}
for (J = 1; J < oLastGear; J++)
GfOut("#%d: Rpm: %g(%g) -> Rpm: %g(%g)\n",J,oShift[J]*RpmFactor,oShift[J],ToRpm[J]*RpmFactor,ToRpm[J]);
//for (J = 1; J < oLastGear; J++)
// GfOut("#%d: Rpm: %g(%g) -> Rpm: %g(%g)\n",
//J,oShift[J]*RpmFactor,oShift[J],ToRpm[J]*RpmFactor,ToRpm[J]);
free(DataPoints);
free(Edesc);

View file

@ -8,7 +8,7 @@
//
// File : unitmain.cpp
// Created : 2008.01.27
// Last changed : 2010.11.04
// Last changed : 2010.11.06
// Copyright : © 2007-2010 Wolf-Dieter Beelitz
// eMail : wdb@wdbee.de
// Version : 3.00.000
@ -333,18 +333,18 @@ int moduleWelcomeV1_00
memset(DriverNames, 0, MAXNBBOTS*DRIVERLEN);
memset(DriverDescs, 0, MAXNBBOTS*DRIVERLEN);
GfOut("\n");
GfOut("#Interface Version: %d.%d\n",
welcomeIn->itfVerMajor,welcomeIn->itfVerMinor);
//GfOut("\n");
//GfOut("#Interface Version: %d.%d\n",
// welcomeIn->itfVerMajor,welcomeIn->itfVerMinor);
// Get filehandle for robot's xml-file
void *RobotSettings = GetFileHandle(welcomeIn->name);
// Let's look what we have to provide here
if (RobotSettings)
{
GfOut("#Robot name : %s\n",RobName);
GfOut("#Robot directory : %s\n",RobPathDir);
GfOut("#Robot XML-file : %s\n",RobPathXML);
//GfOut("#Robot name : %s\n",RobName);
//GfOut("#Robot directory : %s\n",RobPathDir);
//GfOut("#Robot XML-file : %s\n",RobPathXML);
char Buffer[BUFSIZE];
char *Section = Buffer;
@ -391,8 +391,8 @@ int moduleWelcomeV1_00
else
{
// Handle error here
GfOut("#Robot XML-Path not found: (%s) or (%s) %s\n\n",
GetLocalDir(),GetDataDir(),RobPathXMLRel);
//GfOut("#Robot XML-Path not found: (%s) or (%s) %s\n\n",
// GetLocalDir(),GetDataDir(),RobPathXMLRel);
NBBOTS = 0;
welcomeOut->maxNbItf = NBBOTS;
@ -435,9 +435,9 @@ extern "C" int moduleWelcome
return moduleWelcomeV1_00(welcomeIn, welcomeOut);
}
GfOut("\n");
GfOut("#Unhandled Interface Version: %d.%d\n",
welcomeIn->itfVerMajor,welcomeIn->itfVerMinor);
//GfOut("\n");
//GfOut("#Unhandled Interface Version: %d.%d\n",
// welcomeIn->itfVerMajor,welcomeIn->itfVerMinor);
welcomeOut->maxNbItf = 0;
return -1;
}
@ -452,9 +452,9 @@ extern "C" int moduleWelcome
//--------------------------------------------------------------------------*
extern "C" int moduleInitialize(tModInfo *ModInfo)
{
GfOut("\n");
GfOut("#Initialize from %s ...\n",RobPathXML);
GfOut("#NBBOTS: %d (of %d)\n",NBBOTS,MAXNBBOTS);
//GfOut("\n");
//GfOut("#Initialize from %s ...\n",RobPathXML);
//GfOut("#NBBOTS: %d (of %d)\n",NBBOTS,MAXNBBOTS);
#ifdef ROB_SECT_ARBITRARY
// Clear all structures.
@ -489,7 +489,7 @@ extern "C" int moduleInitialize(tModInfo *ModInfo)
}
#endif //ROB_SECT_ARBITRARY
GfOut("# ... Initialized\n\n");
//GfOut("# ... Initialized\n\n");
return 0;
}
@ -500,8 +500,8 @@ extern "C" int moduleInitialize(tModInfo *ModInfo)
//--------------------------------------------------------------------------*
extern "C" int moduleTerminate()
{
GfOut("\n");
GfOut("#Terminated %s\n",RobName);
//GfOut("\n");
//GfOut("#Terminated %s\n",RobName);
return 0;
}
@ -512,8 +512,8 @@ extern "C" int moduleTerminate()
//--------------------------------------------------------------------------*
int simplixEntryPoint(tModInfo *ModInfo, void *RobotSettings)
{
GfOut("\n");
GfOut("#Torcs backward compatibility scheme used\n");
//GfOut("\n");
//GfOut("#Torcs backward compatibility scheme used\n");
NBBOTS = MIN(10,NBBOTS);
memset(ModInfo, 0, NBBOTS*sizeof(tModInfo));
@ -609,7 +609,7 @@ static int InitFuncPt(int Index, void *Pt)
if (cRobotType == RTYPE_SIMPLIX)
{
GfOut("#cRobotType == RTYPE_SIMPLIX\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_Identity;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix;
@ -619,7 +619,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_TRB1)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_TRB1\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_TRB1\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_TRB1;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_Identity;
@ -629,7 +629,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_SC)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_SC\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_SC\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix_SC;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_Identity;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_SC;
@ -639,7 +639,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_36GP)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_36GP\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_36GP\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_Identity;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_36GP;
@ -650,7 +650,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_MPA1)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_MPA1\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_MPA1\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix_MPA1;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_Identity;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_Identity;
@ -660,7 +660,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_LS1)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_LS1\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_LS1\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_TRB1;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_Identity;
@ -670,7 +670,7 @@ static int InitFuncPt(int Index, void *Pt)
}
else if (cRobotType == RTYPE_SIMPLIX_MP5)
{
GfOut("#cRobotType == RTYPE_SIMPLIX_MP5\n");
//GfOut("#cRobotType == RTYPE_SIMPLIX_MP5\n");
cInstances[Index-IndexOffset].cRobot->CalcSkillingFoo = &TDriver::CalcSkilling_simplix;
cInstances[Index-IndexOffset].cRobot->CalcFrictionFoo = &TDriver::CalcFriction_simplix_Identity;
cInstances[Index-IndexOffset].cRobot->CalcCrvFoo = &TDriver::CalcCrv_simplix_Identity;
@ -815,18 +815,18 @@ static void Shutdown(int Index)
tInstanceInfo *copy;
#endif //ROB_SECT_ARBITRARY
GfOut("\n");
GfOut("\n");
GfOut("#Clock\n");
GfOut("#Total Time used: %g sec\n",cInstances[Index-IndexOffset].cTicks/1000.0);
GfOut("#Min Time used: %g msec\n",cInstances[Index-IndexOffset].cMinTicks);
GfOut("#Max Time used: %g msec\n",cInstances[Index-IndexOffset].cMaxTicks);
GfOut("#Mean Time used: %g msec\n",cInstances[Index-IndexOffset].cTicks/cInstances[Index-IndexOffset].cTickCount);
GfOut("#Long Time Steps: %d\n",cInstances[Index-IndexOffset].cLongSteps);
GfOut("#Critical Steps : %d\n",cInstances[Index-IndexOffset].cCriticalSteps);
GfOut("#Unused Steps : %d\n",cInstances[Index-IndexOffset].cUnusedCount);
GfOut("\n");
GfOut("\n");
//GfOut("\n");
//GfOut("\n");
//GfOut("#Clock\n");
//GfOut("#Total Time used: %g sec\n",cInstances[Index-IndexOffset].cTicks/1000.0);
//GfOut("#Min Time used: %g msec\n",cInstances[Index-IndexOffset].cMinTicks);
//GfOut("#Max Time used: %g msec\n",cInstances[Index-IndexOffset].cMaxTicks);
//GfOut("#Mean Time used: %g msec\n",cInstances[Index-IndexOffset].cTicks/cInstances[Index-IndexOffset].cTickCount);
//GfOut("#Long Time Steps: %d\n",cInstances[Index-IndexOffset].cLongSteps);
//GfOut("#Critical Steps : %d\n",cInstances[Index-IndexOffset].cCriticalSteps);
//GfOut("#Unused Steps : %d\n",cInstances[Index-IndexOffset].cUnusedCount);
//GfOut("\n");
//GfOut("\n");
cInstances[Index-IndexOffset].cRobot->Shutdown();
delete cInstances[Index-IndexOffset].cRobot;

View file

@ -2,17 +2,17 @@
// unitstrategy.cpp
//--------------------------------------------------------------------------*
// TORCS: "The Open Racing Car Simulator"
// A robot for Speed Dreams-Version 1.4.0
// A robot for Speed Dreams-Version 1.4.0/2.X
//--------------------------------------------------------------------------*
// Pitstop strategy
// Boxenstop-Strategie
//
// File : unitstrategy.cpp
// Created : 2007.02.20
// Last changed : 2009.07.26
// Last changed : 2010.11.06
// Copyright : © 2007-2009 Wolf-Dieter Beelitz
// eMail : wdb@wdbee.de
// Version : 2.00.000
// Version : 3.00.000
//--------------------------------------------------------------------------*
// Teile diese Unit basieren auf dem erweiterten Robot-Tutorial bt
//
@ -348,12 +348,12 @@ double TSimpleStrategy::SetFuelAtRaceStart
oMaxFuel =
GfParmGetNum(*CarSettings,TDriver::SECT_PRIV, // Maximal möglicher
PRV_MAX_FUEL,(char*) NULL,oMaxFuel); // Tankinhalt
GfOut("#oMaxFuel (private) = %.1f\n",oMaxFuel);
//GfOut("#oMaxFuel (private) = %.1f\n",oMaxFuel);
oStartFuel =
GfParmGetNum(*CarSettings,TDriver::SECT_PRIV, // Tankinhalt beim Start
PRV_START_FUEL,(char*) NULL,(float) oStartFuel);
GfOut("#oStartFuel (private) = %.1f\n",oStartFuel);
//GfOut("#oStartFuel (private) = %.1f\n",oStartFuel);
if ((!TDriver::Qualification) // Fürs Rennen
&& (oStartFuel > 0))
@ -367,7 +367,7 @@ double TSimpleStrategy::SetFuelAtRaceStart
oMinLaps = (int)
GfParmGetNum(*CarSettings,TDriver::SECT_PRIV, // Mindestanzahl an Runden
PRV_MIN_LAPS,(char*) NULL,(float) oMinLaps); // die mit dem Tankinhalt
GfOut("#oMinLaps (private) = %d\n",oMinLaps); // möglich sein müssen
//GfOut("#oMinLaps (private) = %d\n",oMinLaps); // möglich sein müssen
if (Fuel == 0) // Wenn nichts bekannt ist,
Fuel = oMaxFuel; // Volltanken
@ -566,7 +566,7 @@ void TSimpleStrategy::CheckPitState(float PitScaleBrake)
{ // We can't stop here (to early or to late)
if (oPit->oPitLane[0].Overrun(TrackPos))
{ // if to late
GfOut("#Overrun 1: %g\n",TrackPos);
//GfOut("#Overrun 1: %g\n",TrackPos);
PitRelease();
oState = PIT_EXIT_WAIT;
// pit stop finished, need to exit pits now.
@ -590,13 +590,13 @@ void TSimpleStrategy::CheckPitState(float PitScaleBrake)
oPitTicker++; // Check time to start service
if (oPitTicker > 150) // Check Timer
{ // If we have to wait to long
GfOut("#oPitTicker: %d\n",oPitTicker);
//GfOut("#oPitTicker: %d\n",oPitTicker);
PitRelease(); // Something went wrong, we have
oState = PIT_EXIT_WAIT; // to leave and release pit for teammate
}
else if (oPit->oPitLane[0].Overrun(TrackPos))
{ // If we couldn't stop in place
GfOut("#Overrun 2: %g\n",TrackPos);
//GfOut("#Overrun 2: %g\n",TrackPos);
PitRelease(); // We have to release the pit
oState = PIT_EXIT_WAIT; // for teammate
}
@ -624,7 +624,7 @@ void TSimpleStrategy::CheckPitState(float PitScaleBrake)
oPitStartTicker--;
if (oPitStartTicker < 0)
{
GfOut("#PIT_EXIT: mts%g (mdb%gm)\n",oMinTimeSlot,oMinDistBack);
//GfOut("#PIT_EXIT: mts%g (mdb%gm)\n",oMinTimeSlot,oMinDistBack);
oState = PIT_EXIT;
}
oCar->ctrl.lightCmd = RM_LIGHT_HEAD2; // Only small lights on