FPhysXVehicleManager::~FPhysXVehicleManager() { #if PX_DEBUG_VEHICLE_ON if(TelemetryData4W) { TelemetryData4W->free(); TelemetryData4W = NULL; } TelemetryVehicle = NULL; #endif // Remove the N-wheeled vehicles. while( Vehicles.Num() > 0 ) { RemoveVehicle( Vehicles.Last() ); } // Release batch query data if ( WheelRaycastBatchQuery ) { WheelRaycastBatchQuery->release(); WheelRaycastBatchQuery = NULL; } // Release the friction values used for combinations of tire type and surface type. //if ( SurfaceTirePairs ) //{ // SurfaceTirePairs->release(); // SurfaceTirePairs = NULL; //} }
void CPoolsSA::DeleteAllVehicles ( ) { DEBUG_TRACE("void CPoolsSA::DeleteAllVehicles ( )"); while ( m_vehiclePool.ulCount > 0 ) RemoveVehicle ( m_vehiclePool.ulCount - 1 ); m_vehiclePool.map.clear (); }
void CPoolsSA::RemoveVehicle ( CVehicle* pVehicle, bool bDelete ) { DEBUG_TRACE("void CPoolsSA::RemoveVehicle ( CVehicle * pVehicle, bool bDelete )"); assert ( NULL != pVehicle ); CVehicleSA* pVehicleSA = dynamic_cast < CVehicleSA* > ( pVehicle ); if ( pVehicleSA ) { RemoveVehicle ( pVehicleSA->GetArrayID (), bDelete ); } }