- apply patch for constant len path & buffer to 1024 from Robert
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6753 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 58f4b114252a1e279f51c42b5e0dba31dcbdecfb Former-commit-id: e64b75a1795a27eee04ca3305918cfe998d304ca
This commit is contained in:
parent
5d448cdaaf
commit
34b663615f
7 changed files with 73 additions and 44 deletions
|
@ -139,7 +139,7 @@ static void ReCareerNewResultXml( const char* filename, double date )
|
|||
{
|
||||
void *results;
|
||||
|
||||
snprintf( buf, 1024, filename, "results", "", "", "", "" );
|
||||
snprintf( buf, sizeof(buf), filename, "results", "", "", "", "" );
|
||||
ReInfo->results = GfParmReadFile( buf, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT );
|
||||
results = ReInfo->results;
|
||||
|
||||
|
@ -159,7 +159,7 @@ static void ReCareerNewResult( const char* filename, const char *suffix, const c
|
|||
{
|
||||
void *results;
|
||||
|
||||
snprintf( buf, 1024, filename, "results", "_", suffix, group, "s" );
|
||||
snprintf( buf, sizeof(buf), filename, "results", "_", suffix, group, "s" );
|
||||
results = GfParmReadFile( buf, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT );
|
||||
|
||||
GfParmSetStr(subparam, RM_SECT_SUBFILES, RM_ATTR_RESULTSUBFILE, buf);
|
||||
|
@ -226,12 +226,12 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
|
|||
GfLogDebug(" %d : human #%d, ext=%d\n", xx,
|
||||
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1),
|
||||
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 1));
|
||||
sprintf( buf, "%s/%d", RM_SECT_DRIVERS, xx + 1 );
|
||||
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, xx + 1 );
|
||||
GfParmSetStr(curParam, buf, RM_ATTR_MODULE, "human");
|
||||
GfParmSetNum(curParam, buf, RM_ATTR_IDX, NULL, GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1 ) );
|
||||
GfParmSetNum(curParam, buf, RM_ATTR_EXTENDED, NULL, GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS,
|
||||
RM_ATTR_EXTENDED, NULL, 1) );
|
||||
sprintf( buf, "%s/%s/%d/%d/%s", RM_SECT_CLASSPOINTS, "human",
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d/%s", RM_SECT_CLASSPOINTS, "human",
|
||||
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 1),
|
||||
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1 ),
|
||||
GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
|
||||
|
@ -246,15 +246,15 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
|
|||
|
||||
/* Now it is certain that a bot should be added : no humans at this point */
|
||||
GfLogDebug(" %d : simplix #%d, ext=%d\n", xx, xx, 1);
|
||||
sprintf( buf, "%s/%d", RM_SECT_DRIVERS, xx + 1 );
|
||||
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, xx + 1 );
|
||||
path2 = strdup( buf );
|
||||
GfParmSetStr(curParam, path2, RM_ATTR_MODULE, "simplix");
|
||||
GfParmSetNum(curParam, path2, RM_ATTR_IDX, NULL, (tdble)xx);
|
||||
GfParmSetNum(curParam, path2, RM_ATTR_EXTENDED, NULL, 1);
|
||||
free( path2 );
|
||||
sprintf( buf, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, "simplix", 1, xx );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, "simplix", 1, xx );
|
||||
path2 = strdup( buf );
|
||||
snprintf( buf, 1024, "%s %s", GfParmGetCurStr(ReInfo->params, RM_SECT_FIRSTNAME, RM_ATTR_NAME, "Foo"),
|
||||
snprintf( buf, sizeof(buf), "%s %s", GfParmGetCurStr(ReInfo->params, RM_SECT_FIRSTNAME, RM_ATTR_NAME, "Foo"),
|
||||
GfParmGetCurStr(ReInfo->params, RM_SECT_LASTNAME, RM_ATTR_NAME, "Bar") );
|
||||
GfParmSetStr(curParam, path2, RM_ATTR_NAME, buf);
|
||||
if( GfParmListSeekNext(ReInfo->params, RM_SECT_FIRSTNAME) != 0 )
|
||||
|
@ -264,7 +264,7 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
|
|||
GfParmSetNum(curParam, path2, RM_ATTR_SKILLLEVEL, NULL, (tdble) ReCareerNewSkill( GfParmGetEltNb( ReInfo->params, RM_SECT_CLASSES ), classNb ) );
|
||||
|
||||
/* Add a driver to the result section */
|
||||
snprintf( buf, 1024, "%s/%s/%d/%d/%s", RE_SECT_CLASSPOINTS, "simplix", 1, xx, GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d/%s", RE_SECT_CLASSPOINTS, "simplix", 1, xx, GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
|
||||
GfParmSetNum( curResult, buf, RE_ATTR_POINTS, NULL, 1.0f );
|
||||
|
||||
free(path2);
|
||||
|
@ -289,7 +289,7 @@ static void ReCareerNewAddTeams( void *curParam, void *curResult, int curIndex,
|
|||
GfParmListSeekFirst( curParam, RM_SECT_TEAMS );
|
||||
do {
|
||||
if( cur >= start ) {
|
||||
snprintf( buf, 1024, "%s/%s", RE_SECT_TEAMINFO, GfParmGetCurStr( curParam, RM_SECT_TEAMS, RM_ATTR_NAME, "" ) );
|
||||
snprintf( buf, sizeof(buf), "%s/%s", RE_SECT_TEAMINFO, GfParmGetCurStr( curParam, RM_SECT_TEAMS, RM_ATTR_NAME, "" ) );
|
||||
GfParmSetNum( curResult, buf, RE_ATTR_POINTS, NULL, 1.0f );
|
||||
if( GfParmIsFormula( curParam, RM_SECT_TEAMS, RM_ATTR_CARNAME ) == 0 )
|
||||
GfParmSetFormula( curResult, buf, RM_ATTR_CARNAME, GfParmGetCurFormula( curParam, RM_SECT_TEAMS, RM_ATTR_CARNAME ) );
|
||||
|
@ -364,10 +364,10 @@ static void* ReCareerNewGroup( const char *filename, void *param, const char *gr
|
|||
char *params_filename;
|
||||
|
||||
/* Save the params in a new file and open it */
|
||||
snprintf( buf, 1024, filename, "params", "_", GfParmGetStr(param, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, ""), groupAlpha, "s" );
|
||||
snprintf( buf, sizeof(buf), filename, "params", "_", GfParmGetStr(param, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, ""), groupAlpha, "s" );
|
||||
params_filename = strdup( buf );
|
||||
strncpy( buf, GfParmGetName(param), 1024 );
|
||||
ReCareerUtilManipString( buf, groupNumber, 1024 );
|
||||
snprintf( buf, sizeof(buf), "%s", GfParmGetName(param) );
|
||||
ReCareerUtilManipString( buf, groupNumber, sizeof(buf) );
|
||||
GfParmWriteFile( params_filename, param, buf );
|
||||
subparam = GfParmReadFile( params_filename, GFPARM_RMODE_STD );
|
||||
free( params_filename );
|
||||
|
@ -378,16 +378,16 @@ static void* ReCareerNewGroup( const char *filename, void *param, const char *gr
|
|||
|
||||
/* Set name and description */
|
||||
GfParmSetVariable( subparam, RM_SECT_HEADER, "number", (tdble)groupNumber );
|
||||
strncpy( buf, GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, "" ), 1024 );
|
||||
snprintf( buf, sizeof(buf), "%s", GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, "" ) );
|
||||
GfParmSetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, buf );
|
||||
strncpy( buf, GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, "" ), 1024 );
|
||||
snprintf( buf, sizeof(buf), "%s", GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, "" ) );
|
||||
GfParmSetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, buf );
|
||||
GfParmRemoveVariable( subparam, RM_SECT_HEADER, "number" );
|
||||
|
||||
/* Set that it is not the last subfile */
|
||||
GfParmSetStr( subparam, RM_SECT_SUBFILES, RM_ATTR_LASTSUBFILE, RM_VAL_NO );
|
||||
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_TOTALNUM, NULL, (tdble)totalTracks );
|
||||
snprintf( buf, 1024, "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName( ReInfo->params, RM_SECT_CLASSES ), RM_SECT_TRACKS );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName( ReInfo->params, RM_SECT_CLASSES ), RM_SECT_TRACKS );
|
||||
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_MINNUM, NULL, (float)((int)GfParmGetNum( ReInfo->params, buf, RM_ATTR_MINNUM, NULL, (tdble)1 )) );
|
||||
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_MAXNUM, NULL, (float)((int)GfParmGetNum( ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, (tdble)totalTracks )) );
|
||||
|
||||
|
@ -404,7 +404,7 @@ static void* ReCareerNewClass( const char* filename, void *prevParam, void **fir
|
|||
int xx;
|
||||
|
||||
/* Open subfile */
|
||||
snprintf( buf, 1024, "%sconfig/raceman/%s", GfLocalDir(), GfParmGetCurStr(ReInfo->params, RM_SECT_CLASSES, RM_ATTR_SUBFILE, "") );
|
||||
snprintf( buf, sizeof(buf), "%sconfig/raceman/%s", GfLocalDir(), GfParmGetCurStr(ReInfo->params, RM_SECT_CLASSES, RM_ATTR_SUBFILE, "") );
|
||||
subparam = GfParmReadFile( buf, GFPARM_RMODE_STD );
|
||||
if( !subparam ) {
|
||||
GfLogError( "Subfile %s not found\n", buf );
|
||||
|
@ -472,7 +472,7 @@ static void ReCareerNewParams( const char* filename, double date )
|
|||
|
||||
/* Calculate the maximum number of needed tracks */
|
||||
do {
|
||||
snprintf( buf, 1024, "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName(ReInfo->params, RM_SECT_CLASSES), RM_SECT_TRACKS );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName(ReInfo->params, RM_SECT_CLASSES), RM_SECT_TRACKS );
|
||||
if( totalTracks < 0 || totalTracks < (int)GfParmGetNum(ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, 1) )
|
||||
totalTracks = (int)GfParmGetNum(ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, 1);
|
||||
} while( GfParmListSeekNext(ReInfo->params, RM_SECT_CLASSES) == 0 );
|
||||
|
@ -513,7 +513,7 @@ void ReCareerNew()
|
|||
|
||||
t = time(NULL);
|
||||
stm = localtime(&t);
|
||||
snprintf( buf, 1024, "%sresults/%s/%%s-%4d-%02d-%02d-%02d-%02d%%s%%s%%s.xml%%s", GfLocalDir(), ReInfo->_reFilename,
|
||||
snprintf( buf, sizeof(buf), "%sresults/%s/%%s-%4d-%02d-%02d-%02d-%02d%%s%%s%%s.xml%%s", GfLocalDir(), ReInfo->_reFilename,
|
||||
stm->tm_year + 1900, stm->tm_mon + 1, stm->tm_mday, stm->tm_hour, stm->tm_min );
|
||||
filename = strdup(buf); // Makes it possible to reuse buf
|
||||
ReCareerNewParams(filename, (double)t);
|
||||
|
@ -611,7 +611,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
|
|||
newDrivers[ xx ]->module = strdup( GfParmGetCurStr( curParam, RM_SECT_DRIVERS, RM_ATTR_MODULE, "" ) );
|
||||
newDrivers[ xx ]->extended = (int)GfParmGetCurNum( curParam, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 0 );
|
||||
newDrivers[ xx ]->idx = (int)GfParmGetCurNum( curParam, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 0 );
|
||||
snprintf( buf, 1024, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
|
||||
newDrivers[ xx ]->name = strdup( GfParmGetStr( curParam, buf, RM_ATTR_NAME, "" ) );
|
||||
newDrivers[ xx ]->skill = GfParmGetNum( curParam, buf, RM_ATTR_SKILLLEVEL, NULL, 5.0f );
|
||||
newDrivers[ xx ]->classPointList = (double*)malloc( sizeof( double ) * info->nbClasses );
|
||||
|
@ -622,7 +622,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
|
|||
|
||||
/* Get class points */
|
||||
classPosition[ xx - *listLength ] = (int*)malloc( sizeof(int) * info->nbClasses );
|
||||
snprintf( buf, 1024, "%s/%s/%d/%d", RE_SECT_CLASSPOINTS, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RE_SECT_CLASSPOINTS, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
|
||||
for( yy = 0; yy < info->nbClasses; ++yy )
|
||||
{
|
||||
newDrivers[ xx ]->classPointList[ yy ] = 0.0f;
|
||||
|
@ -675,7 +675,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
|
|||
{
|
||||
if( strcmp( info->classes[ yy ].suffix, GfParmGetCurStr( curParam, RM_SECT_ENDOFSEASON_CLASSPOINTS, RM_ATTR_SUFFIX, "" )) == 0 )
|
||||
{
|
||||
snprintf( buf, 1024, "%s/%s", RM_SECT_ENDOFSEASON_CLASSPOINTS,
|
||||
snprintf( buf, sizeof(buf), "%s/%s", RM_SECT_ENDOFSEASON_CLASSPOINTS,
|
||||
GfParmListGetCurEltName( curParam, RM_SECT_ENDOFSEASON_CLASSPOINTS ) );
|
||||
GfParmSetVariable( curParam, buf, "curClassPos", (tdble)classPosition[ xx - *listLength ][ yy ] );
|
||||
GfParmSetVariable( curParam, buf, "curClassPoints", (tdble)newDrivers[ xx ]->classPointList[ yy ] );
|
||||
|
@ -906,15 +906,15 @@ static void ReCareerNextTracks( void *subparam )
|
|||
|
||||
while( curResultIndex < (int)floor( (double)(xx * ( total - 1 )) / (double)( number - 1 ) + 0.5f ) + 1 ) {
|
||||
/* Free round */
|
||||
snprintf( buf, 1024, "%s/%d", RM_SECT_TRACKS, curResultIndex );
|
||||
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_TRACKS, curResultIndex );
|
||||
GfParmSetStr( subparam, buf, RM_ATTR_NAME, "free" );
|
||||
GfParmSetStr( subparam, buf, RM_ATTR_CATEGORY, "free" );
|
||||
++curResultIndex;
|
||||
}
|
||||
|
||||
snprintf( buf, 1024, "%s/%s", RM_SECT_ALLOWEDTRACKS, trackEltNames[ trackIndex ] );
|
||||
snprintf( buf, sizeof(buf), "%s/%s", RM_SECT_ALLOWEDTRACKS, trackEltNames[ trackIndex ] );
|
||||
path = strdup( buf );
|
||||
snprintf( buf, 1024, "%s/%d", RM_SECT_TRACKS, curResultIndex );
|
||||
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_TRACKS, curResultIndex );
|
||||
|
||||
GfParmSetStr( subparam, buf, RM_ATTR_NAME, GfParmGetStr( subparam, path, RM_ATTR_NAME, "free" ) );
|
||||
GfParmSetStr( subparam, buf, RM_ATTR_CATEGORY, GfParmGetStr( subparam, path, RM_ATTR_CATEGORY, "free" ) );
|
||||
|
@ -972,7 +972,7 @@ static void ReCareerNextWrite( tCareerInfo *info )
|
|||
for( zz = 0; zz < curGroupPtr->nbTeams; ++zz ) {
|
||||
for( uu = 0; uu < curGroupPtr->teams[ zz ].nbDrivers; ++uu ) {
|
||||
/* Fill Drivers Section */
|
||||
snprintf( buf, 1024, "%s/%d", RM_SECT_DRIVERS, yy );
|
||||
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, yy );
|
||||
GfParmSetStr( curParam, buf, RM_ATTR_MODULE, curGroupPtr->teams[ zz ].drivers[ uu ]->module );
|
||||
GfParmSetNum( curParam, buf, RM_ATTR_IDX, NULL, (tdble)curGroupPtr->teams[ zz ].drivers[ uu ]->idx );
|
||||
GfParmSetNum( curParam, buf, RM_ATTR_EXTENDED, NULL, (tdble)curGroupPtr->teams[ zz ].drivers[ uu ]->extended );
|
||||
|
@ -982,7 +982,7 @@ static void ReCareerNextWrite( tCareerInfo *info )
|
|||
// pDriver->extended ? " extended" : "");
|
||||
|
||||
/* Fill Driver Info */
|
||||
snprintf( buf, 1024, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, curGroupPtr->teams[ zz ].drivers[ uu ]->module,
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, curGroupPtr->teams[ zz ].drivers[ uu ]->module,
|
||||
curGroupPtr->teams[ zz ].drivers[ uu ]->extended,
|
||||
curGroupPtr->teams[ zz ].drivers[ uu ]->idx );
|
||||
GfParmSetStr( curParam, buf, RM_ATTR_NAME, curGroupPtr->teams[ zz ].drivers[ uu ]->name );
|
||||
|
|
|
@ -865,7 +865,7 @@ ReCarsManageCar(tCarElt *car, bool& bestLapChanged)
|
|||
int result;
|
||||
|
||||
GfLogInfo("Re-reading best lap\n");
|
||||
sprintf(command, "SELECT datablob FROM car0 where lap=%d", car->_bestLap);
|
||||
snprintf(command, sizeof(command), "SELECT datablob FROM car0 where lap=%d", car->_bestLap);
|
||||
result = sqlite3_prepare_v2(replayDB, command, -1, &ghostcarBlob, 0);
|
||||
|
||||
if (result) {
|
||||
|
|
|
@ -73,6 +73,8 @@ static const char *aPszSkillLevelNames[] =
|
|||
{ ROB_VAL_ARCADE, ROB_VAL_SEMI_ROOKIE, ROB_VAL_ROOKIE, ROB_VAL_AMATEUR, ROB_VAL_SEMI_PRO, ROB_VAL_PRO };
|
||||
static const int NSkillLevels = (int)(sizeof(aPszSkillLevelNames)/sizeof(char*));
|
||||
|
||||
static const size_t PathLenMax = 1024;
|
||||
|
||||
// The list of robot modules loaded for the race.
|
||||
tModList *ReRacingRobotsModList = 0;
|
||||
|
||||
|
@ -95,7 +97,7 @@ ReReset(void)
|
|||
ReInfo->robModList = &ReRacingRobotsModList;
|
||||
|
||||
// Load Race engine params.
|
||||
char buf[256];
|
||||
char buf[PathLenMax];
|
||||
snprintf(buf, sizeof(buf), "%s%s", GfLocalDir(), RACE_ENG_CFG);
|
||||
ReInfo->_reParam = GfParmReadFile(buf, GFPARM_RMODE_REREAD | GFPARM_RMODE_CREAT);
|
||||
}
|
||||
|
@ -470,10 +472,10 @@ static tCarElt* reLoadSingleCar( int carindex, int listindex, int modindex, int
|
|||
{
|
||||
tCarElt *elt;
|
||||
tMemoryPool oldPool;
|
||||
char path[256];
|
||||
char path2[256];
|
||||
char buf[256];
|
||||
char buf2[256];
|
||||
char path[PathLenMax];
|
||||
char path2[PathLenMax];
|
||||
char buf[PathLenMax];
|
||||
char buf2[PathLenMax];
|
||||
char const *str;
|
||||
char const *category;
|
||||
char const *subcategory;
|
||||
|
@ -946,12 +948,12 @@ ReInitCars(void)
|
|||
int result;
|
||||
|
||||
if (replayRecord) {
|
||||
sprintf(command, "DROP TABLE IF EXISTS car%d", i);
|
||||
snprintf(command, sizeof(command), "DROP TABLE IF EXISTS car%d", i);
|
||||
result = sqlite3_exec(replayDB, command, 0, 0, 0);
|
||||
if (result) GfLogInfo("Replay: Unable to drop table car%d: %s\n", i, sqlite3_errmsg(replayDB));
|
||||
}
|
||||
|
||||
sprintf(command, "CREATE TABLE IF NOT EXISTS car%d (timestamp, lap, datablob BLOB)", i);
|
||||
snprintf(command, sizeof(command), "CREATE TABLE IF NOT EXISTS car%d (timestamp, lap, datablob BLOB)", i);
|
||||
result = sqlite3_exec(replayDB, command, 0, 0, 0);
|
||||
if (result) {
|
||||
GfLogInfo("Replay: Unable to create table car%d: %s\n", i, sqlite3_errmsg(replayDB));
|
||||
|
@ -960,7 +962,7 @@ ReInitCars(void)
|
|||
|
||||
if (replayReplay) {
|
||||
// Build index to allow faster read access
|
||||
sprintf(command, "CREATE UNIQUE INDEX IF NOT EXISTS index%d ON car%d (timestamp)", i, i);
|
||||
snprintf(command, sizeof(command), "CREATE UNIQUE INDEX IF NOT EXISTS index%d ON car%d (timestamp)", i, i);
|
||||
result = sqlite3_exec(replayDB, command, 0, 0, 0);
|
||||
if (result) GfLogInfo("Replay: Unable to create index car%d: %s\n", i, sqlite3_errmsg(replayDB));
|
||||
}
|
||||
|
|
|
@ -932,7 +932,7 @@ void ReSituationUpdater::replaySituation(tRmInfo*& pSource)
|
|||
memcpy(&pTgtCar->pitcmd, &pSrcCar->pitcmd, sizeof(tCarPitCmd));
|
||||
|
||||
// and write to database
|
||||
sprintf(command, "INSERT INTO car%d (timestamp, lap, datablob) VALUES (%f, %d, ?)", nCarInd,
|
||||
snprintf(command, sizeof(command), "INSERT INTO car%d (timestamp, lap, datablob) VALUES (%f, %d, ?)", nCarInd,
|
||||
pSource->s->currentTime, pSrcCar->_laps);
|
||||
|
||||
result = sqlite3_prepare_v2(replayDB, command, -1, &replayBlobs[nCarInd], 0);
|
||||
|
|
|
@ -730,6 +730,33 @@ reTrackInitSimuWeather(void)
|
|||
if (!file.is_open())
|
||||
{
|
||||
GfLogError("Failed to open %s\n", weatherfile.str().c_str());
|
||||
int clouds = TR_CLOUDS_NONE;
|
||||
int rain = TR_RAIN_NONE;
|
||||
// Really random clouds.
|
||||
clouds = rand() % (TR_CLOUDS_FULL);
|
||||
|
||||
// Update track local info.
|
||||
trackLocal->rain = rain;
|
||||
trackLocal->hail = 0;
|
||||
trackLocal->snow = 0;
|
||||
trackLocal->clouds = clouds;
|
||||
trackLocal->cloud_altitude = 5500.0 * 0.3048;
|
||||
trackLocal->water = rain;
|
||||
trackLocal->airtemperature = 15.0f;
|
||||
trackLocal->dewp = 5.0f;
|
||||
trackLocal->airpressure = 101300;
|
||||
trackLocal->airdensity = 1.219f;
|
||||
trackLocal->windspeed = (tdble)(rand() % 100);
|
||||
trackLocal->winddir = (tdble)(rand() % 359);
|
||||
trackLocal->relativehumidity = 65.0f;
|
||||
trackLocal->visibility = (tdble)(rand() % 12000);
|
||||
|
||||
reTrackInitWeatherValues();
|
||||
|
||||
if ((trackLocal->visibility < 300) & (rain < 1))
|
||||
trackLocal->visibility = 300;
|
||||
|
||||
ReTrackUpdate();
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ int RmGetFeaturesList( void* param )
|
|||
int raceFeatureMask = -1; // All bits set to 1.
|
||||
void *robhdle;
|
||||
|
||||
char path[ 256 ];
|
||||
char path[ 1024 ];
|
||||
char buf[ 1024 ];
|
||||
int xx, yy;
|
||||
int features_index;
|
||||
|
@ -80,15 +80,15 @@ int RmGetFeaturesList( void* param )
|
|||
for( xx = 1; xx < nCars + 1; ++xx )
|
||||
{
|
||||
/* Open robot */
|
||||
sprintf( path, "%s/%d", RM_SECT_DRIVERS, xx );
|
||||
snprintf( path, sizeof(path), "%s/%d", RM_SECT_DRIVERS, xx );
|
||||
cardllname = GfParmGetStr( param, path, RM_ATTR_MODULE, "" );
|
||||
caridx = (int)GfParmGetNum( param, path, RM_ATTR_IDX, NULL, 0 );
|
||||
sprintf( buf, "%s/drivers/%s/%s.xml", GfLocalDir(), cardllname, cardllname );
|
||||
snprintf( buf, sizeof(buf), "%s/drivers/%s/%s.xml", GfLocalDir(), cardllname, cardllname );
|
||||
robhdle = GfParmReadFile( buf, GFPARM_RMODE_STD );
|
||||
|
||||
if( !robhdle )
|
||||
{
|
||||
sprintf( buf, "drivers/%s/%s.xml", cardllname, cardllname );
|
||||
snprintf( buf, sizeof(buf), "drivers/%s/%s.xml", cardllname, cardllname );
|
||||
robhdle = GfParmReadFile( buf, GFPARM_RMODE_STD );
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ int RmGetFeaturesList( void* param )
|
|||
|
||||
driverFeatureMask = 0;
|
||||
|
||||
sprintf( buf, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
|
||||
if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_TYPE, ROB_VAL_ROBOT ), ROB_VAL_HUMAN ) == 0 )
|
||||
{
|
||||
if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_LEVEL, ROB_VAL_ARCADE ), ROB_VAL_ARCADE ) == 0 )
|
||||
|
@ -117,7 +117,7 @@ int RmGetFeaturesList( void* param )
|
|||
/*RM_FEATURE_SC | RM_FEATURE_YELLOW | RM_FEATURE_BLUE | RM_FEATURE_RED | RM_FEATURE_PITEXIT |*/
|
||||
} else if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_TYPE, ROB_VAL_ROBOT ), ROB_VAL_ROBOT ) == 0 )
|
||||
{
|
||||
sprintf( buf, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
|
||||
snprintf( buf, sizeof(buf), "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
|
||||
features = GfParmGetStr( robhdle, buf, ROB_ATTR_FEATURES, "" );
|
||||
features_index = 0;
|
||||
buf_index = 0;
|
||||
|
|
|
@ -102,8 +102,8 @@ bool ReWebMetar::ReWebMetarFtp(const string& m)
|
|||
CURL *curl;
|
||||
CURLcode res;
|
||||
|
||||
char buffer[256];
|
||||
snprintf(buffer, 255, "%sconfig/weather.txt", GetLocalDir());
|
||||
char buffer[1024];
|
||||
snprintf(buffer, sizeof(buffer), "%sconfig/weather.txt", GetLocalDir());
|
||||
GfLogDebug("Save Weather file in = %s\n", buffer);
|
||||
GfLogDebug("URL WebMetar = %s\n", m.c_str());
|
||||
|
||||
|
|
Loading…
Reference in a new issue