53 #if defined WIN32 || defined sun 123 memset(car, 0,
sizeof(
tCar));
127 car->
trkPos = carElt->_trkPos;
129 car->
params = carElt->_carHandle;
134 sgMakeCoordMat4(carElt->
pub.
posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z,
156 for (i = 0; i < 2; i++) {
161 for (i = 0; i < 4; i++) {
182 static tdble PULL_Z_OFFSET = 3.0;
183 static tdble PULL_SPD = 0.5;
192 sgMakeCoordMat4(carElt->
pub.
posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z,
195 if (carElt->_pos_Z > (car->
restPos.
pos.
z + PULL_Z_OFFSET)) {
216 sgMakeCoordMat4(carElt->
pub.
posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z,
219 if ((fabs(car->
restPos.
pos.
x - carElt->_pos_X) < 0.5) && (fabs(car->
restPos.
pos.
y - carElt->_pos_Y) < 0.5)) {
229 sgMakeCoordMat4(carElt->
pub.
posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z,
245 if ((s->_maxDammage) && (car->
dammage > s->_maxDammage)) {
254 if ((s->_maxDammage) && (car->
dammage > s->_maxDammage)) {
264 if (fabs(carElt->_speed_x) > 1.0) {
275 for(i = 0; i < 4; i++) {
276 carElt->_skid[i] = 0;
277 carElt->_wheelSpinVel(i) = 0;
278 carElt->_brakeTemp(i) = 0;
282 carElt->_speed_x = 0;
332 for (ncar = 0; ncar < s->_ncars; ncar++) {
337 for (ncar = 0; ncar < s->_ncars; ncar++) {
344 }
else if (((s->_maxDammage) && (car->
dammage > s->_maxDammage)) ||
376 for (i = 0; i < 2; i++){
380 for (i = 0; i < 4; i++){
384 for (i = 0; i < 2; i++){
388 for (i = 0; i < 4; i++){
393 if (s->_raceState == 0) {
413 for (ncar = 0; ncar < s->_ncars; ncar++) {
430 sgMakeCoordMat4(carElt->
pub.
posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z,
432 carElt->_trkPos = car->
trkPos;
434 for (i = 0; i < 4; i++) {
451 carElt->_fuel = car->
fuel;
454 carElt->_dammage = car->
dammage;
481 for (ncar = 0; ncar <
SimNbCars; ncar++) {
494 if (fabs(v->
max - v->
min) >= 0.0001f) {
void SimCarConfig(tCar *car)
#define RM_CAR_STATE_DNF
Car did not finish.
int gear
[-1,6] for gear selection
void SimCarCollideCars(tSituation *s)
Race Manager General Info.
void SimTransmissionUpdate(tCar *car)
int brakeRepartitionCmd
Brake balance "clicks", positive is to the front.
void SimWheelUpdateRide(tCar *car, int index)
cars situation used to inform the GUI and the drivers
tdble brakeCmd
Brake command [0.0, 1.0].
tdble toRight
Distance (+ to left, - to right) relative to the right side of segment.
sgMat4 posMat
position matrix
static void RemoveCar(tCar *car, tSituation *s)
void SimCarUpdate2(tCar *car, tSituation *)
#define RM_CAR_STATE_OUT
Car out of race.
#define RM_CAR_STATE_OUTOFGAS
Out of Gas.
#define RM_CAR_STATE_BROKEN
Engine no more working.
tdble width
Width of the segment (if constant width)
void SimWheelUpdateForce(tCar *car, int index)
void SimWheelUpdateRotation(tCar *car)
Location on the track in local coordinates.
void SimGearboxUpdate(tCar *car)
bool SimAdjustPitCarSetupParam(tCarPitSetupValue *v)
int telemetry(tModInfo *modInfo)
#define RM_CAR_STATE_PULLSIDE
Car pulled out in the air.
void SimBrakeSystemUpdate(tCar *car)
tdble clutchCmd
Clutch command [0.0, 1.0].
void SimCarUpdateWheelPos(tCar *car)
void SimCarCollideShutdown(int nbcars)
void SimWheelUpdateTire(tCar *car, int index)
void SimAxleReConfig(tCar *car, int index)
void SimEngineUpdateTq(tCar *car)
#define DIST(x1, y1, x2, y2)
Distance between two points.
tdble ay
angle along y axis
#define RM_CAR_STATE_NO_SIMU
Do not simulate the car.
#define RAD2DEG(x)
Radian to degree conversion.
int simcollision
For rules etc.
void SimCarCollideConfig(tCar *car, tTrack *track)
#define RM_CAR_STATE_PULLDN
Car pulled out in the air.
int type
Type of description:
void SimUpdate(tSituation *s, double deltaTime, int telemetry)
tPosd relPos
position relative to GC
tdble steer
Steer command [-1.0, 1.0].
tdble toLeft
Distance (- to left, + to right) relative to left side of segment.
tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm)
tDynPt DynGC
GC data (car axis)
void SimAeroUpdate(tCar *car, tSituation *s)
float tdble
Floating point type used in TORCS.
static void ctrlCheck(tCar *car)
void SimEngineShutdown(tCar *car)
void SimTransmissionReConfig(tCar *car)
void SimSteerUpdate(tCar *car)
The Gaming Framework API.
void SimAxleUpdate(tCar *car, int index)
tTrack * track
Current track.
void SimBrakeSystemReConfig(tCar *car)
void SimWheelReConfig(tCar *car, int index)
Dynamic wheel information.
void SimAtmosphereUpdate(tCar *car, tSituation *s)
void SimConfig(tCarElt *carElt, RmInfo *info)
void SimCarCollideInit(tTrack *track)
tTrackSeg * seg
Track segment.
tdble accelCmd
Accelerator command [0.0, 1.0].
int collision
Collision value for graphics and sound, clearing is managed by consumers.
int track(tModInfo *modInfo)
tTrackSeg * seg
Track segment where the wheel is.
#define RM_CAR_STATE_ELIMINATED
Eliminated due to rules infringement.
void SimCarUpdate(tCar *car, tSituation *)
#define RM_CAR_STATE_PIT
Car currently stopped in pits.
tdble az
angle along z axis
tTransmission transmission
void SimWheelResetWear(tCar *car, int index)
void SimWingReConfig(tCar *car, int index)
void SimSteerReConfig(tCar *car)
#define TR_PIT_STATE_FREE
void SimInit(int nbcars, tTrack *track, tdble fuelFactor, tdble damageFactor, tdble tireFactor)
#define TR_LPOS_SEGMENT
Relative to the segment which the point is located, including border and sides, mostly used for conta...
tdble ax
angle along x axis
#define NORM_PI_PI(x)
Angle normalization between -PI and PI.
void SimCollideRemoveCar(tCar *car, int nbcars)
void SimWingUpdate(tCar *car, int index, tSituation *s)
tdble brakeTemp
brake temperature from 0 (cool) to 1.0 (hot)
#define RM_CAR_STATE_PULLUP
Car pulled out in the air.
void SimReConfig(tCarElt *carElt)
tDynPt DynGCg
GC data (world axis)
#define RM_CAR_STATE_FINISH
Car having passed the finish line.