- update Shadow's driver

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

Former-commit-id: 24b3c33fd8ab993634600d06f1b7d3365e6fec38
Former-commit-id: 24bc10452a419100244f43c083b44b732261f3cf
This commit is contained in:
torcs-ng 2020-01-27 01:32:41 +00:00
parent b2e9cc1cd1
commit 6882163572

View file

@ -233,6 +233,7 @@ void TDriver::SetShared( Shared* pShared )
void TDriver::InitTrack(int index, tTrack* pTrack, void* pCarHandle, void** ppCarParmHandle, tSituation* pS ) void TDriver::InitTrack(int index, tTrack* pTrack, void* pCarHandle, void** ppCarParmHandle, tSituation* pS )
{ {
LogSHADOW.info( " # SHADOW's driver :initTrack()\n" ); LogSHADOW.info( " # SHADOW's driver :initTrack()\n" );
*ppCarParmHandle = NULL;
// //
// get the name of the car (e.g. "clkdtm"). // get the name of the car (e.g. "clkdtm").
@ -277,47 +278,59 @@ void TDriver::InitTrack(int index, tTrack* pTrack, void* pCarHandle, void** ppCa
// Discover the car type used // Discover the car type used
void* handle = NULL; void* handle = NULL;
sprintf(buffer, "drivers/%s/%s.xml", MyBotName, MyBotName); sprintf(buffer, "%sdrivers/%s/%s.xml", GfDataDir(),MyBotName, MyBotName);
LogSHADOW.info(" #Path driver : %s\n", buffer); LogSHADOW.info(" #Path driver : %s\n", buffer);
handle = GfParmReadFile(buffer, GFPARM_RMODE_STD); handle = GfParmReadFile(buffer, GFPARM_RMODE_STD);
sprintf(buffer, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, index);
//mCarType = GfParmGetStr(handle, buffer, (char*)ROB_ATTR_CAR, "no good"); if (handle != NULL)
//char baseParamPath[] = buffer; {
LogSHADOW.info("# Shadow driver : %s\n", buffer);
snprintf(buffer, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, index);
//mCarType = GfParmGetStr(handle, buffer, (char*)ROB_ATTR_CAR, "no good");
}
// //
// ok, lets read/merge the car parms. // ok, lets read/merge the car parms.
// //
void* hCarParm = pCarHandle; void* hCarParm = NULL;
char buf[1024]; char buf[1024];
// default params for car type (e.g. clkdtm) // override params for car type on track.
snprintf( buffer, BUFSIZE, "drivers/%s/%s/default.xml", MyBotName, m_carName); snprintf(buffer, BUFSIZE, "%sdrivers/%s/%s/%s.xml", GfDataDir(), MyBotName, m_carName, m_trackName);
LogSHADOW.info(" #Path driver default params for car type: %s\n", buffer); hCarParm = GfParmReadFile(buffer, GFPARM_RMODE_STD);
hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle);
LogSHADOW.info(" #Path driver override params for car type on track : %s\n", buffer);
hCarParm = MergeParamFile(hCarParm, buffer, hCarParm != pCarHandle);
if (hCarParm == NULL)
{
// default params for car type (e.g. clkdtm)
snprintf(buffer, BUFSIZE, "%sdrivers/%s/%s/default.xml", GfDataDir(), MyBotName, m_carName);
LogSHADOW.info(" #Path driver default params for car type: %s\n", buffer);
hCarParm = GfParmReadFile(buffer, GFPARM_RMODE_STD);
}
// override params for car type on track.
snprintf( buffer, BUFSIZE, "drivers/%s/%s/%s.xml", MyBotName, m_carName, m_trackName );
LogSHADOW.info(" #Path driver override params for car type on track : %s\n", buffer);
hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle);
// override params for car type on track of specific race type. // override params for car type on track of specific race type.
snprintf( buffer, BUFSIZE, "%s/%s/%s-%s.xml", MyBotName, m_carName, m_trackName, raceTypeStr[raceType] ); /*snprintf( buffer, BUFSIZE, "%s/%s/%s-%s.xml", MyBotName, m_carName, m_trackName, raceTypeStr[raceType] );
LogSHADOW.info(" #Path driver override params for car type on track of specific race type : %s\n", buffer); LogSHADOW.info(" #Path driver override params for car type on track of specific race type : %s\n", buffer);
hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle); hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle);
// override params for car type on track with specific driver. // override params for car type on track with specific driver.
snprintf( buffer, BUFSIZE, "drivers/%s/%s/%s-drv-%d.xml", MyBotName, m_carName, m_trackName, index ); snprintf( buffer, BUFSIZE, "%sdrivers/%s/%s/%s-drv-%d.xml", GfDataDir(), MyBotName, m_carName, m_trackName, index );
LogSHADOW.info(" #Path driver override params for car type on track with specific driver : %s\n", buffer); LogSHADOW.info(" #Path driver override params for car type on track with specific driver : %s\n", buffer);
hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle); hCarParm = MergeParamFile(hCarParm, buffer, hCarParm != pCarHandle);
// override params for car type on track of specific race type and driver. // override params for car type on track of specific race type and driver.
snprintf( buffer, BUFSIZE, "drivers/%s/%s/%s-%s-drv-%d.xml", MyBotName, m_carName, m_trackName, raceTypeStr[raceType], index ); snprintf( buffer, BUFSIZE, "%sdrivers/%s/%s/%s-%s-drv-%d.xml", GfDataDir(),MyBotName, m_carName, m_trackName, raceTypeStr[raceType], index );
LogSHADOW.info(" #Path driver override params for car type on track of specific race type and driver : %s\n", buffer); LogSHADOW.info(" #Path driver override params for car type on track of specific race type and driver : %s\n", buffer);
hCarParm = MergeParamFile(hCarParm, buf, hCarParm != pCarHandle); hCarParm = MergeParamFile(hCarParm, buffer, hCarParm != pCarHandle);
hCarParm = GfParmReadFile(buf, GFPARM_RMODE_STD); hCarParm = GfParmReadFile(buf, GFPARM_RMODE_STD);
// setup the car param handle to be returned. // setup the car param handle to be returned.*/
*ppCarParmHandle = hCarParm; *ppCarParmHandle = hCarParm;
@ -325,7 +338,7 @@ void TDriver::InitTrack(int index, tTrack* pTrack, void* pCarHandle, void** ppCa
const char* ac3d_car = GfParmGetStr(hCarParm, SECT_GROBJECTS "/" LST_RANGES "/1", PRM_CAR, ""); const char* ac3d_car = GfParmGetStr(hCarParm, SECT_GROBJECTS "/" LST_RANGES "/1", PRM_CAR, "");
double rpm = GfParmGetNum(hCarParm, SECT_PRIV, PRV_GEAR_UP_RPM, (char*)NULL, 8190); double rpm = GfParmGetNum(hCarParm, SECT_PRIV, PRV_GEAR_UP_RPM, "rpm", 8190.0);
m_gearUpRpm = rpm * 2 * PI / 60; m_gearUpRpm = rpm * 2 * PI / 60;
LogSHADOW.info( "*** gear up rpm: %g (%g)\n", rpm, m_gearUpRpm ); LogSHADOW.info( "*** gear up rpm: %g (%g)\n", rpm, m_gearUpRpm );