void SwitchToBattle(DataSample data, CarDetails newFollower, bool establishingShot = false)
{
if (establishingShot)
TraceInfo.WriteLine("{0} New Battle started - Searching for a LookingAtCar camera", data.Telemetry.SessionTimeSpan);
var cameraTypes = establishingShot ? new[] { CameraAngle.LookingAtCar } : new[] { CameraAngle.LookingInfrontOfCar, CameraAngle.LookingBehindCar, CameraAngle.LookingAtCar };
var newFollowerPosition = newFollower.Car(data).Position;
battleLeader = data.Telemetry.Cars.First(c => c.Position == newFollowerPosition - 1).Details;
battleFollower = newFollower;
car = newFollower;
camera = cameraControl.FindACamera(cameraTypes, adjustedCamera, 2);
if (establishingShot)
adjustedCamera = camera;
else
adjustedCamera = null;
if (camera.CameraAngle == CameraAngle.LookingBehindCar)
{
TraceInfo.WriteLine("{0} Changing to forward car, with reverse camera", data.Telemetry.SessionTimeSpan);
car = battleLeader;
}
TraceInfo.WriteLine("{0} Changing camera to driver: {1}; camera: {2}; within {3}",
data.Telemetry.SessionTimeSpan,
car.UserName,
camera.CameraName,
battleGap);
cameraControl.CameraOnDriver(car.CarNumberRaw, camera.CameraNumber);
}