private void WatchCameraFootage()
        {
            CCTVShowing = true;
            Game.LocalPlayer.HasControl = false;
            Game.FadeScreenOut(1500, true);
            NativeFunction.Natives.SET_TIMECYCLE_MODIFIER("CAMERA_BW");
            if (Game.LocalPlayer.Character.LastVehicle.Exists())

            {
                OldLastVehiclePos = Game.LocalPlayer.Character.LastVehicle.Position;
                Game.LocalPlayer.Character.LastVehicle.IsVisible = false;
                Game.LocalPlayer.Character.LastVehicle.SetPositionZ(Game.LocalPlayer.Character.LastVehicle.Position.Z + 8f);
                Game.LocalPlayer.Character.LastVehicle.IsPositionFrozen = true;
            }
            bool DateTimeChanged = false;

            try
            {
                OldDateTime    = World.DateTime;
                World.DateTime = DateTime.Now;
                //World.IsTimeOfDayFrozen = true;
                DateTimeChanged = true;
            }
            catch (Exception e) { }


            Game.LocalPlayer.Character.IsVisible = false;
            Shopkeeper.IsVisible = false;
            Vector3 suspectOldPosition = SuspectCar.Position;
            Rotator suspectOldRotator  = SuspectCar.Rotation;
            Vector3 PlayerOldPos       = Game.LocalPlayer.Character.Position;
            Vector3 ShopkeeperOldPos   = Shopkeeper.Position;

            Game.LocalPlayer.Character.SetPositionZ(Game.LocalPlayer.Character.Position.Z + 8f);
            Game.LocalPlayer.Character.IsPositionFrozen = true;
            Shopkeeper.SetPositionZ(Shopkeeper.Position.Z + 8f);
            Shopkeeper.IsPositionFrozen = true;

            SuspectCar.Position = SpawnPoint;
            Camera cam = new Camera(true);

            cam.Position = SuspectCar.GetOffsetPosition(Vector3.RelativeFront * 4.4f);
            cam.SetPositionZ(cam.Position.Z + 3.6f);
            Vector3 directionFromShopkeeperToCar = (SuspectCar.Position - cam.Position);

            directionFromShopkeeperToCar.Normalize();
            cam.Rotation = directionFromShopkeeperToCar.ToRotator();
            Suspect.Tasks.PerformDrivingManeuver(VehicleManeuver.Wait);
            GameFiber.Wait(100);
            SuspectCar.IsPositionFrozen = true;

            GameFiber.Sleep(2000);

            Game.FadeScreenIn(1500, true);
            CCTVCamNumber     = AssortedCalloutsHandler.rnd.Next(1, 20);
            Game.FrameRender += DrawCCTVText;
            Game.DisplaySubtitle("~b~Shopkeeper~s~: There they are! Bastard!", 6600);
            GameFiber.Sleep(6500);
            Game.FadeScreenOut(1500, true);
            CCTVShowing = false;
            Game.LocalPlayer.Character.IsVisible = true;
            if (Game.LocalPlayer.Character.LastVehicle.Exists())
            {
                Game.LocalPlayer.Character.LastVehicle.Position         = OldLastVehiclePos;
                Game.LocalPlayer.Character.LastVehicle.IsPositionFrozen = false;
                Game.LocalPlayer.Character.LastVehicle.IsVisible        = true;
            }
            //World.IsTimeOfDayFrozen = false;
            if (DateTimeChanged)
            {
                World.DateTime = OldDateTime;
            }
            Shopkeeper.IsVisible = true;
            Game.LocalPlayer.Character.IsPositionFrozen = false;
            Shopkeeper.IsPositionFrozen         = false;
            Game.LocalPlayer.Character.Position = PlayerOldPos;
            Shopkeeper.Position = ShopkeeperOldPos;


            SuspectCar.Position         = suspectOldPosition;
            SuspectCar.Rotation         = suspectOldRotator;
            SuspectCar.IsPositionFrozen = false;
            Game.LocalPlayer.HasControl = true;
            cam.Delete();
            Suspect.Tasks.CruiseWithVehicle(SuspectCar, 17f, VehicleDrivingFlags.DriveAroundVehicles | VehicleDrivingFlags.DriveAroundObjects | VehicleDrivingFlags.DriveAroundPeds);
            Rage.Native.NativeFunction.Natives.SET_DRIVE_TASK_DRIVING_STYLE(Suspect, 786603);
            GameFiber.Sleep(2000);
            NativeFunction.CallByName <uint>("CLEAR_TIMECYCLE_MODIFIER");
            Game.FadeScreenIn(1500, true);
        }
        public override void End()
        {
            CalloutRunning = false;
            Rage.Native.NativeFunction.Natives.RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER();
            if (Game.LocalPlayer.Character.Exists())
            {
                if (Game.LocalPlayer.Character.IsDead)
                {
                    GameFiber.Wait(1500);
                    Functions.PlayScannerAudio("OFFICER HAS_BEEN_FATALLY_SHOT NOISE_SHORT OFFICER_NEEDS_IMMEDIATE_ASSISTANCE");
                    GameFiber.Wait(3000);
                }
            }
            else
            {
                GameFiber.Wait(1500);
                Functions.PlayScannerAudio("OFFICER HAS_BEEN_FATALLY_SHOT NOISE_SHORT OFFICER_NEEDS_IMMEDIATE_ASSISTANCE");
                GameFiber.Wait(3000);
            }
            base.End();

            if (PoliceOfficerBlip.Exists())
            {
                PoliceOfficerBlip.Delete();
            }

            if (CalloutFinished)
            {
                if (PoliceOfficer.Exists())
                {
                    PoliceOfficer.Dismiss();
                }
                if (PoliceCar.Exists())
                {
                    PoliceCar.Dismiss();
                }
                if (Suspect.Exists())
                {
                    if (!Suspect.IsInAnyVehicle(false))
                    {
                        Suspect.Dismiss();
                    }
                    else
                    {
                        if (Suspect.CurrentVehicle.Driver == Suspect)
                        {
                            Suspect.Dismiss();
                        }
                        else
                        {
                            Suspect.Delete();
                        }
                    }
                }
                if (SuspectCar.Exists())
                {
                    SuspectCar.Dismiss();
                }
            }
            else
            {
                if (PoliceCar.Exists())
                {
                    PoliceCar.Delete();
                }


                if (PoliceOfficer.Exists())
                {
                    PoliceOfficer.Delete();
                }
                if (Suspect.Exists())
                {
                    Suspect.Delete();
                }
                if (SuspectCar.Exists())
                {
                    SuspectCar.Delete();
                }
            }
        }