void SimCarCollideShutdown(int nbcars) { int i; for (i = 0; i < nbcars; i++) { dtDeleteShape(SimCarTable[i].shape); dtDeleteObject(&(SimCarTable[i])); } dtClearDefaultResponse(); }
void SimCarCollideShutdown(int nbcars) { int i; for (i = 0; i < nbcars; i++) { // Check if car has not been removed already (wrecked). if (SimCarTable[i].shape != NULL) { dtDeleteObject(&(SimCarTable[i])); dtDeleteShape(SimCarTable[i].shape); } } unsigned int j; for (j = 0; j < fixedid; j++) { dtClearObjectResponse(&fixedobjects[j]); dtDeleteObject(&fixedobjects[j]); dtDeleteShape(fixedobjects[j]); } fixedid = 0; dtClearDefaultResponse(); }
// Remove wrecked cars to avoid glitches in collision detection and to improve performance. // Called by RemoveCar. void SimCollideRemoveCar(tCar *car, int nbcars) { // Find the car to remove. int i; for (i = 0; i < nbcars; i++) { if (&SimCarTable[i] == car) { break; } } // Remove it. if (SimCarTable[i].shape != NULL) { dtDeleteObject(&(SimCarTable[i])); dtDeleteShape(SimCarTable[i].shape); SimCarTable[i].shape = NULL; } }