// Module entry point (Torcs backward compatibility scheme). extern "C" int usr(tModInfo *modInfo) { NBBOTS = 10; memset(DriverNames, 0, NBBOTS * DRIVERLEN); memset(DriverDescs, 0, NBBOTS * DRIVERLEN); // Filehandle for robot's xml-file void *robot_settings = getFileHandle(); // Let's look what we have to provide here if (robot_settings) { char SectionBuf[BUFSIZE]; char *Section = SectionBuf; snprintf(SectionBuf, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, 0); for (int i = 0; i < NBBOTS; ++i) { const char *DriverName = GfParmGetStr(robot_settings, Section, ROB_ATTR_NAME, defaultBotName[i]); strncpy(&DriverNames[i * DRIVERLEN], DriverName, DRIVERLEN - 1); const char *DriverDesc = GfParmGetStr(robot_settings, Section, ROB_ATTR_DESC, defaultBotDesc[i]); strncpy(&DriverDescs[i * DRIVERLEN], DriverDesc, DRIVERLEN - 1); } } return moduleInitialize(modInfo); }
//==========================================================================* // Module entry point (Torcs backward compatibility scheme). //--------------------------------------------------------------------------* int simplixEntryPoint(tModInfo *ModInfo, void *RobotSettings) { LogSimplix.debug("\n#Torcs backward compatibility scheme used\n"); NBBOTS = MIN(10,NBBOTS); memset(ModInfo, 0, NBBOTS*sizeof(tModInfo)); DriverNames = (char *) calloc(10,DRIVERLEN); DriverDescs = (char *) calloc(10,DESCRPLEN); memset(DriverNames, 0, 10*DRIVERLEN); memset(DriverDescs, 0, 10*DESCRPLEN); char SectionBuf[BUFSIZE]; char *Section = SectionBuf; snprintf( SectionBuf, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, 0); int I; for (I = 0; I < NBBOTS; I++) { snprintf( SectionBuf, BUFSIZE, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, I + IndexOffset ); const char *DriverName = GfParmGetStr( RobotSettings, Section, (char *) ROB_ATTR_NAME, defaultBotName[I]); strncpy(&DriverNames[I*DRIVERLEN], DriverName, DRIVERLEN-1); const char *DriverDesc = GfParmGetStr( RobotSettings, Section, (char *) ROB_ATTR_DESC, defaultBotDesc[I]); strncpy(&DriverDescs[I*DESCRPLEN], DriverDesc, DESCRPLEN-1); } return moduleInitialize(ModInfo); }