From 03d18f621ff7a0479e759383a003c31c83789604 Mon Sep 17 00:00:00 2001 From: Rich Dunne Date: Mon, 21 Sep 2020 11:30:21 -0600 Subject: [PATCH] Added functions to update path blips and path numbers when a single path is deleted. --- SceneManager/Menus/PathMainMenu.cs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/SceneManager/Menus/PathMainMenu.cs b/SceneManager/Menus/PathMainMenu.cs index f58606d..ba94194 100644 --- a/SceneManager/Menus/PathMainMenu.cs +++ b/SceneManager/Menus/PathMainMenu.cs @@ -52,6 +52,7 @@ namespace SceneManager pathMainMenu.AddItem(createNewPath = new UIMenuItem("Create New Path")); createNewPath.ForeColor = Color.Gold; pathMainMenu.AddItem(editPath = new UIMenuNumericScrollerItem("Edit Path", "", 1, paths.Count, 1)); + editPath.Index = 0; editPath.ForeColor = Color.Gold; pathMainMenu.AddItem(disableAllPaths); disableAllPaths.Enabled = true; @@ -152,6 +153,8 @@ namespace SceneManager if (pathsToDelete == Delete.Single) { paths.Remove(path); + UpdatePathNumbers(); + UpdatePathBlips(); BuildPathMenu(); pathMainMenu.Visible = true; Game.LogTrivial($"Path {path.Number} deleted successfully."); @@ -162,6 +165,27 @@ namespace SceneManager EditPathMenu.disablePath.Enabled = true; } + private static void UpdatePathBlips() + { + foreach (Path p in paths) + { + foreach (Waypoint waypoint in p.Waypoints) + { + var blipColor = waypoint.Blip.Color; + waypoint.Blip.Sprite = (BlipSprite)paths.IndexOf(p) + 17; + waypoint.Blip.Color = blipColor; + } + } + } + + private static void UpdatePathNumbers() + { + for (int i = 0; i < paths.Count; i++) + { + paths[i].Number = i + 1; + } + } + private static void PathMenu_OnItemSelected(UIMenu sender, UIMenuItem selectedItem, int index) { if (selectedItem == createNewPath) @@ -268,7 +292,7 @@ namespace SceneManager if (selectedItem == dismissDriver) { - var nearbyVehicle = Game.LocalPlayer.Character.GetNearbyVehicles(1).Where(v => v != Game.LocalPlayer.Character.CurrentVehicle && v.VehicleAndDriverValid()).SingleOrDefault(); + var nearbyVehicle = Game.LocalPlayer.Character.GetNearbyVehicles(16).Where(v => v != Game.LocalPlayer.Character.CurrentVehicle && v.VehicleAndDriverValid()).FirstOrDefault(); if (nearbyVehicle) { var collectedVehicle = VehicleCollector.collectedVehicles.Where(cv => cv.Vehicle == nearbyVehicle).FirstOrDefault();