iRacingReplayOverlay.Phases.Direction.RuleBattle.SwitchToBattle C# (CSharp) Method

SwitchToBattle() private method

private SwitchToBattle ( iRacingSDK.DataSample data, iRacingSDK.CarDetails newFollower, bool establishingShot = false ) : void
data iRacingSDK.DataSample
newFollower iRacingSDK.CarDetails
establishingShot bool
return void
        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);
        }