29 const int IDXSIZE = 64;
52 edesc = (
struct tEdesc*)malloc((car->
engine.
curve.
nbPts + 1) *
sizeof(
struct tEdesc));
59 edesc[i].rpm = edesc[i - 1].rpm;
60 edesc[i].tq = edesc[i - 1].tq;
68 data->
rads = edesc[i+1].rpm;
70 && (edesc[i+1].tq > maxTq)
72 maxTq = edesc[i+1].tq;
73 rpmMaxTq = data->
rads;
95 data->
a = (edesc[i+1].tq - edesc[i].tq) / (edesc[i+1].rpm - edesc[i].rpm);
96 data->
b = edesc[i].tq - data->
a * edesc[i].rpm;
100 car->
carElt->_engineMaxTq = maxTq;
101 car->
carElt->_enginerpmMaxTq = rpmMaxTq;
133 engine->
Tq = Tmax * (car->
ctrl->
accelCmd * (1.0f + EngBrkK) - EngBrkK);
138 if (car->
fuel <= 0.0) {
171 if (car->
fuel <= 0.0) {
178 freerads = engine->
rads;
184 dp = (
tdble) fabs(dp);
206 engine->
rads = freerads;
void SimEngineConfig(tCar *car)
#define RM_CAR_STATE_BROKEN
Engine no more working.
void SimEngineUpdateTq(tCar *car)
tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm)
float tdble
Floating point type used in TORCS.
void SimEngineShutdown(tCar *car)
tdble accelCmd
Accelerator command [0.0, 1.0].
tdble GfParmGetNum(void *handle, const char *path, const char *key, const char *unit, tdble deflt)
Get a numerical parameter from the parameter set handle.
#define RM_CAR_STATE_ELIMINATED
Eliminated due to rules infringement.
tTransmission transmission
int GfParmGetEltNb(void *handle, const char *path)
Count the number of subsections in a section in the parameter set handle.