Setup files read in correct order.

First working copy.
Re #183.

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

Former-commit-id: 3fa52e9b1b348fb553d7aa651983e46e7c00ddaf
Former-commit-id: 5fb6c0c302f467869d91e816e82116b6abe32080
This commit is contained in:
kmetykog 2010-09-30 23:01:00 +00:00
parent 1f911e766d
commit 31ef09abde
5 changed files with 532 additions and 55 deletions

View file

@ -49,6 +49,10 @@ static int
static double colour[] = {1.0, 0.0, 0.0, 0.0};
#define DEFAULTCARTYPE "trb1-cavallo-360rb"
#define SLOW_TRACK_LIMIT 2.4
#define FAST_TRACK_LIMIT 4.0
KDriver::KDriver(int index):Driver(index)
{
m_rgtinc = m_lftinc = 0.0;
@ -578,15 +582,18 @@ KDriver::filterSidecollOffset(Opponent *o, const double incfactor)
* Initialize the robot on a track.
* For this reason it looks up any setup files.
*
* Setup files are in this director path:
* Setup files are in a directory path like:
* drivers/kilo
* |- default.xml (skill)
* |- default.xml (skill enable)
* tracks
* | |-<trackname>.xml (track-specific parameters)
* |
* |
* <carname>
* |-<trackname>.xml (setup for given track)
* |-<trackname>.xml (setup for the given track)
* |-def-slow.xml (setup for undefined, slow tracks)
* |-def-norm.xml (setup for undefined, normal tracks)
* |-def-fast.xml (setup for undefined, fast tracks)
*
* @param [in] t the track
* @param [out] carHandle
@ -613,9 +620,9 @@ KDriver::initTrack(tTrack * t, void *carHandle, void **carParmHandle,
if(carParmHandle)
cout << "default xml loaded" << endl;
#endif
buf.str(string());
//Try to load the track-based informations
buf.str(string());
buf << botPath.str() << "tracks/" << trackname;
void *newhandle = GfParmReadFile(buf.str().c_str(), GFPARM_RMODE_STD);
#ifdef DEBUG
@ -623,20 +630,8 @@ KDriver::initTrack(tTrack * t, void *carHandle, void **carParmHandle,
if(newhandle)
cout << "track-based xml loaded" << endl;
#endif
buf.str(string());
//Merge the above two setups
if(newhandle) {
//If there is a default setup loaded, merge settings with custom track setup
if(*carParmHandle)
*carParmHandle =
GfParmMergeHandles(*carParmHandle, newhandle,
(GFPARM_MMODE_SRC | GFPARM_MMODE_DST |
GFPARM_MMODE_RELSRC | GFPARM_MMODE_RELDST));
//Otherwise no need to merge
else
*carParmHandle = newhandle;
}//if newhandle
mergeCarSetups(*carParmHandle, newhandle);
#ifdef DEBUG
cout << "merge #1" << endl;
#endif
@ -653,6 +648,7 @@ KDriver::initTrack(tTrack * t, void *carHandle, void **carParmHandle,
#endif
//Load setup tailored for car+track
buf.str(string());
buf << botPath.str() << m_carType << "/" << trackname;
newhandle = GfParmReadFile(buf.str().c_str(), GFPARM_RMODE_STD);
#ifdef DEBUG
@ -661,6 +657,12 @@ KDriver::initTrack(tTrack * t, void *carHandle, void **carParmHandle,
cout << "car+track xml loaded" << endl;
#endif
//If there is no tailored setup, let's load a default one
// based on the track charateristics.
if(!newhandle)
newhandle = loadDefaultSetup();
//~ mergeCarSetups(*carParmHandle, newhandle);
//Merge the above two setups
if(newhandle) {
//If there is a default setup loaded, merge settings with custom track setup
@ -678,29 +680,6 @@ KDriver::initTrack(tTrack * t, void *carHandle, void **carParmHandle,
#endif
//If there was no car+track setup,
//decide the character of the track and choose 1 of 3 default setups.
double dLength = 0.0;
double dCurves = 0.0;
tTrackSeg *pSeg = track->seg;
do {
if(pSeg->type == TR_STR)
dLength += pSeg->length;
else {
dLength += pSeg->radius * pSeg->arc;
dCurves += RAD2DEG(pSeg->arc);
}
pSeg = pSeg->next;
} while(pSeg != track->seg);
#ifdef DEBUG
cout << "Track " << track->name
<< " length: " << dLength
<< " curves: " << dCurves
<< " ratio: " << dLength / dCurves
<< endl;
#endif
// Create a pit stop strategy object.
strategy = new KStrategy();
// Init fuel.
@ -865,21 +844,20 @@ KDriver::calcSpeed()
accelcmd = brakecmd = 0.0;
double speed;
switch(mode)
{
case AVOIDING:
case BEING_OVERLAPPED:
speed = avoidspeed;
break;
case CORRECTING:
speed = racespeed -
(racespeed - avoidspeed) * MAX(0.0, (correcttimer - simtime) / 7.0);
break;
default:
speed = racespeed;
}//switch mode
switch(mode) {
case AVOIDING:
case BEING_OVERLAPPED:
speed = avoidspeed;
break;
case CORRECTING:
speed = racespeed -
(racespeed - avoidspeed) * MAX(0.0, (correcttimer - simtime) / 7.0);
break;
default:
speed = racespeed;
}//switch mode
double x = (10 + car->_speed_x) * (speed - car->_speed_x) / 200;
@ -889,3 +867,80 @@ KDriver::calcSpeed()
brakecmd = MIN(1.0, -(MAX(10.0, brakedelay * 0.7)) * x);
}//calcSpeed
/**
* Decides the character of the track
* and chooses 1 of 3 default setups.
* Loads the appropriate setup file and
* returns it's handler.
*
* @return Handler to the loaded default setup
*/
void *
KDriver::loadDefaultSetup() const
{
void *ret = NULL;
double dLength = 0.0;
double dCurves = 0.0;
//Count length and degrees of all turns
tTrackSeg *pSeg = track->seg;
do {
if(pSeg->type == TR_STR)
dLength += pSeg->length;
else {
dLength += pSeg->radius * pSeg->arc;
dCurves += RAD2DEG(pSeg->arc);
}
pSeg = pSeg->next;
} while(pSeg != track->seg);
double dRatio = dLength / dCurves;
#ifdef DEBUG
cout << "Track " << track->name
<< " length: " << dLength
<< " curves: " << dCurves
<< " ratio: " << dRatio
<< endl;
#endif
stringstream buf;
buf << "drivers/" << bot << "/" << m_carType;
if(dRatio < SLOW_TRACK_LIMIT) {
//Slow track
buf << "/def-slow.xml";
} else if (dRatio < FAST_TRACK_LIMIT) {
//Normal track
buf << "/def-norm.xml";
} else {
//Fast track
buf << "/def-fast.xml";
}//if dRatio
ret = GfParmReadFile(buf.str().c_str(), GFPARM_RMODE_STD);
#ifdef DEBUG
cout << "Decision of setup: " << buf.str() << endl;
if(ret)
cout << "Def-XXX xml loaded" << endl;
#endif
return ret;
}//loadDefaultSetup
void
KDriver::mergeCarSetups(void *oldHandle, void *newHandle)
{
if(newHandle) {
if(oldHandle)
oldHandle = GfParmMergeHandles(oldHandle, newHandle,
(GFPARM_MMODE_SRC | GFPARM_MMODE_DST |
GFPARM_MMODE_RELSRC | GFPARM_MMODE_RELDST));
//Otherwise no need to merge
else
oldHandle = newHandle;
}//if newHandle
}//mergeCarSetups

View file

@ -64,6 +64,8 @@ protected:
double filterTakeoverOffset(Opponent *o);
double filterSidecollOffset(Opponent *o, const double);
void checkPitStatus(tSituation *s);
void * loadDefaultSetup() const;
void mergeCarSetups(void *oldHandle, void *newHandle);
//'own' variables
double m_mincatchdist;

View file

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE params SYSTEM "../../../src/libs/tgf/params.dtd">
<!-- Trb1-Cavallo-360RB default setup for fast tracks. -->
<params name="trb1-cavallo-360rb" type="template" mode="mw">
<section name="Front Wing">
<attnum name="angle" unit="deg" min="0" max="12" val="2"/>
</section>
<section name="Rear Wing">
<attnum name="angle" unit="deg" min="0" max="18" val="3"/>
</section>
<section name="Gearbox">
<section name="gears">
<section name="r">
<attnum name="ratio" min="-3" max="0" val="-3.0"/>
</section>
<section name="1">
<attnum name="ratio" min="0" max="5" val="3.0"/>
</section>
<section name="2">
<attnum name="ratio" min="0" max="5" val="1.9"/>
</section>
<section name="3">
<attnum name="ratio" min="0" max="5" val="1.4"/>
</section>
<section name="4">
<attnum name="ratio" min="0" max="5" val="1.2"/>
</section>
<section name="5">
<attnum name="ratio" min="0" max="5" val="1.05"/>
</section>
<section name="6">
<attnum name="ratio" min="0" max="5" val="0.93"/>
</section>
</section>
</section>
<section name="Rear Differential">
<attstr name="type" in="SPOOL,FREE,LIMITED SLIP" val="LIMITED SLIP"/>
<attnum name="ratio" min="0" max="10" val="3.25"/>
</section>
<section name="Brake System">
<attnum name="front-rear brake repartition" min="0.3" max="0.7" val="0.55"/>
<attnum name="max pressure" unit="kPa" min="100" max="150000" val="40000"/>
</section>
<section name="Front Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Rear Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Front Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Front Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="private">
<attnum name="fuelperlap" unit="kg/lap" val="3.5"/>
<attnum name="CornerSpeed" val="19.5"/>
<attnum name="CornerAccel" val="1.1"/>
<attnum name="BrakeDelay" val="12.0"/>
<attnum name="AvoidSpeedAdjust" val="2.0"/>
<attnum name="ExtMargin" val="1.9"/>
<attnum name="IntMargin" val="0.2"/>
<attnum name="MinCornerInverse" val="0.003"/>
</section>
</params>

View file

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE params SYSTEM "../../../src/libs/tgf/params.dtd">
<!-- Trb1-Cavallo-360RB default setup for normal tracks. -->
<params name="trb1-cavallo-360rb" type="template" mode="mw">
<section name="Front Wing">
<attnum name="angle" unit="deg" min="0" max="12" val="8"/>
</section>
<section name="Rear Wing">
<attnum name="angle" unit="deg" min="0" max="18" val="10"/>
</section>
<section name="Gearbox">
<section name="gears">
<section name="r">
<attnum name="ratio" min="-3" max="0" val="-3.0"/>
</section>
<section name="1">
<attnum name="ratio" min="0" max="5" val="3.896"/>
</section>
<section name="2">
<attnum name="ratio" min="0" max="5" val="2.468"/>
</section>
<section name="3">
<attnum name="ratio" min="0" max="5" val="1.818"/>
</section>
<section name="4">
<attnum name="ratio" min="0" max="5" val="1.429"/>
</section>
<section name="5">
<attnum name="ratio" min="0" max="5" val="1.169"/>
</section>
<section name="6">
<attnum name="ratio" min="0" max="5" val="1"/>
</section>
</section>
</section>
<section name="Rear Differential">
<attstr name="type" in="SPOOL,FREE,LIMITED SLIP" val="LIMITED SLIP"/>
<attnum name="ratio" min="0" max="10" val="3.15"/>
</section>
<section name="Brake System">
<attnum name="front-rear brake repartition" min="0.3" max="0.7" val="0.55"/>
<attnum name="max pressure" unit="kPa" min="100" max="150000" val="40000"/>
</section>
<section name="Front Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Rear Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Front Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Front Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="simplix private">
<attnum name="skill" min="-1" max="10.0" val="0.0"/>
<attnum name="pit test stop" min="0" max="1" val="0"/>
<attnum name="qualification" min="0" max="1" val="0"/>
<attnum name="reserve" min="0.0" max="20000.0" val="2000"/>
<attnum name="start fuel" min="-1" max="100.0" val="-1"/>
<attnum name="fuelper100km" min="1.0" max="100.0" val="70.0"/>
<attnum name="lookaheadfactor" min="0.0" max="0.5" val="0.05"/>
<attnum name="avoid width" min="0.0" max="3.0" val="0.5"/>
<attnum name="scale avoid" min="1.0" max="20.0" val="10.0"/>
<attnum name="scale brake" min="0" max="1" val="0.8"/>
<attnum name="scale bump" min="0" max="1" val="0.4"/>
<attnum name="scale bump outer" min="0" max="2" val="0.6"/>
<attnum name="scale min mu" min="0.1" max="1.0" val="0.8"/>
<attnum name="scale mu" min="0" max="2" val="0.85"/>
<attnum name="scale steer" min="0.1" max="2.0" val="1.0"/>
<attnum name="stay together" min="10.0" max="2000.0" val="10"/>
<attnum name="length margin" min="1.0" max="10.0" val="2.0"/>
</section>
</params>

View file

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE params SYSTEM "../../../src/libs/tgf/params.dtd">
<!-- Trb1-Cavallo-360RB default setup for slow tracks. -->
<params name="trb1-cavallo-360rb" type="template" mode="mw">
<section name="Front Wing">
<attnum name="angle" unit="deg" min="0" max="12" val="10"/>
</section>
<section name="Rear Wing">
<attnum name="angle" unit="deg" min="0" max="18" val="16"/>
</section>
<section name="Gearbox">
<section name="gears">
<section name="r">
<attnum name="ratio" min="-3" max="0" val="-3.0"/>
</section>
<section name="1">
<attnum name="ratio" min="0" max="5" val="3.896"/>
</section>
<section name="2">
<attnum name="ratio" min="0" max="5" val="2.468"/>
</section>
<section name="3">
<attnum name="ratio" min="0" max="5" val="1.818"/>
</section>
<section name="4">
<attnum name="ratio" min="0" max="5" val="1.429"/>
</section>
<section name="5">
<attnum name="ratio" min="0" max="5" val="1.169"/>
</section>
<section name="6">
<attnum name="ratio" min="0" max="5" val="1"/>
</section>
</section>
</section>
<section name="Rear Differential">
<attstr name="type" in="SPOOL,FREE,LIMITED SLIP" val="LIMITED SLIP"/>
<attnum name="ratio" min="0" max="10" val="3.15"/>
</section>
<section name="Brake System">
<attnum name="front-rear brake repartition" min="0.3" max="0.7" val="0.55"/>
<attnum name="max pressure" unit="kPa" min="100" max="150000" val="40000"/>
</section>
<section name="Front Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Rear Anti-Roll Bar">
<attnum name="spring" unit="lbs/in" min="0" max="5000" val="0"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.2"/>
<attnum name="bellcrank" min="1" max="5" val="2.5"/>
</section>
<section name="Front Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Right Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Rear Left Wheel">
<attnum name="ride height" unit="mm" min="100" max="200" val="100"/>
<attnum name="toe" unit="deg" min="-5" max="5" val="0"/>
<attnum name="camber" min="-5" max="0" unit="deg" val="-5"/>
</section>
<section name="Front Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Front Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.07"/>
<attnum name="bellcrank" min="0.1" max="5" val="0.9"/>
<attnum name="packers" unit="mm" min="0" max="50" val="10"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="300"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Right Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="Rear Left Suspension">
<attnum name="spring" unit="lbs/in" min="0" max="10000" val="5500"/>
<attnum name="suspension course" unit="m" min="0" max="0.2" val="0.13"/>
<attnum name="bellcrank" min="0.1" max="5" val="1.1"/>
<attnum name="packers" unit="mm" min="0" max="50" val="0"/>
<attnum name="slow bump" unit="lbs/in/s" min="0" max="1000" val="400"/>
<attnum name="slow rebound" unit="lbs/in/s" min="0" max="1000" val="500"/>
<attnum name="fast bump" unit="lbs/in/s" min="0" max="1000" val="60"/>
<attnum name="fast rebound" unit="lbs/in/s" min="0" max="1000" val="60"/>
</section>
<section name="simplix private">
<attnum name="skill" min="-1" max="10.0" val="0.0"/>
<attnum name="pit test stop" min="0" max="1" val="0"/>
<attnum name="qualification" min="0" max="1" val="0"/>
<attnum name="reserve" min="0.0" max="20000.0" val="2000"/>
<attnum name="start fuel" min="-1" max="100.0" val="-1"/>
<attnum name="fuelper100km" min="1.0" max="100.0" val="70.0"/>
<attnum name="lookaheadfactor" min="0.0" max="0.5" val="0.05"/>
<attnum name="avoid width" min="0.0" max="3.0" val="0.5"/>
<attnum name="scale avoid" min="1.0" max="20.0" val="10.0"/>
<attnum name="scale brake" min="0" max="1" val="0.8"/>
<attnum name="scale bump" min="0" max="1" val="0.4"/>
<attnum name="scale bump outer" min="0" max="2" val="0.6"/>
<attnum name="scale min mu" min="0.1" max="1.0" val="0.8"/>
<attnum name="scale mu" min="0" max="2" val="0.85"/>
<attnum name="scale steer" min="0.1" max="2.0" val="1.0"/>
<attnum name="stay together" min="10.0" max="2000.0" val="10"/>
<attnum name="length margin" min="1.0" max="10.0" val="2.0"/>
</section>
</params>