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;
	//}
}
Beispiel #2
0
void CPoolsSA::DeleteAllVehicles ( )
{
    DEBUG_TRACE("void CPoolsSA::DeleteAllVehicles ( )");

    while ( m_vehiclePool.ulCount > 0 )
        RemoveVehicle ( m_vehiclePool.ulCount - 1 );
    m_vehiclePool.map.clear ();
}
Beispiel #3
0
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 );
    }
}