1
Fork 0
mirror of https://github.com/thegeneralist01/Scene-Manager-DevRepo synced 2026-01-11 23:50:29 +01:00

Fixed DismissDriver, attempted to fix emergency vehicle sirens turning on when dismissed

This commit is contained in:
Rich Dunne 2020-09-06 09:20:34 -06:00
parent 1d2e64ff88
commit f770a6298f

View file

@ -15,10 +15,8 @@ namespace SceneManager
public static UIMenuItem createNewPath { get; private set; } public static UIMenuItem createNewPath { get; private set; }
public static UIMenuItem deleteAllPaths; public static UIMenuItem deleteAllPaths;
public static UIMenuNumericScrollerItem<int> editPath = new UIMenuNumericScrollerItem<int>("Edit Path", "", 1, paths.Count, 1); public static UIMenuNumericScrollerItem<int> editPath = new UIMenuNumericScrollerItem<int>("Edit Path", "", 1, paths.Count, 1);
//public static UIMenuListScrollerItem<int> editPath { get; private set; }
public static UIMenuListScrollerItem<string> directOptions { get; private set; } public static UIMenuListScrollerItem<string> directOptions { get; private set; }
public static UIMenuNumericScrollerItem<int> directDriver = new UIMenuNumericScrollerItem<int>("Direct nearest driver to path", "", 1, paths.Count, 1); public static UIMenuNumericScrollerItem<int> directDriver = new UIMenuNumericScrollerItem<int>("Direct nearest driver to path", "", 1, paths.Count, 1);
//public static UIMenuListScrollerItem<int> directDriver { get; private set; }
public static UIMenuListScrollerItem<string> dismissDriver { get; private set; } public static UIMenuListScrollerItem<string> dismissDriver { get; private set; }
public static UIMenuCheckboxItem disableAllPaths { get; private set; } public static UIMenuCheckboxItem disableAllPaths { get; private set; }
@ -85,11 +83,6 @@ namespace SceneManager
return ref paths; return ref paths;
} }
//public static void AddPathToPathCountList(int indexToInsertAt, int pathNum)
//{
// pathsNum.Insert(indexToInsertAt, pathNum);
//}
private static bool VehicleAndDriverValid(this Vehicle v) private static bool VehicleAndDriverValid(this Vehicle v)
{ {
if (v && v.HasDriver && v.Driver && v.Driver.IsAlive) if (v && v.HasDriver && v.Driver && v.Driver.IsAlive)
@ -141,9 +134,9 @@ namespace SceneManager
Game.LogTrivial($"Removing yield zone and waypoint blips"); Game.LogTrivial($"Removing yield zone and waypoint blips");
foreach (Waypoint waypoint in path.Waypoints) foreach (Waypoint waypoint in path.Waypoints)
{ {
if (waypoint.YieldZone != 0) if (waypoint.SpeedZone != 0)
{ {
World.RemoveSpeedZone(waypoint.YieldZone); waypoint.RemoveSpeedZone();
} }
if (waypoint.Blip) if (waypoint.Blip)
{ {
@ -161,9 +154,6 @@ namespace SceneManager
if (pathsToDelete == Delete.Single) if (pathsToDelete == Delete.Single)
{ {
paths.RemoveAt(index); paths.RemoveAt(index);
//Game.LogTrivial("pathsNum count: " + pathsNum.Count);
//Game.LogTrivial("index: " + index);
//pathsNum.RemoveAt(index);
BuildPathMenu(); BuildPathMenu();
pathMainMenu.Visible = true; pathMainMenu.Visible = true;
Game.LogTrivial($"Path {path.Number} deleted."); Game.LogTrivial($"Path {path.Number} deleted.");
@ -209,14 +199,13 @@ namespace SceneManager
} }
foreach (Path path in paths) foreach (Path path in paths)
{ {
foreach(Waypoint waypoint in path.Waypoints.Where(wp => wp.YieldZone != 0)) foreach(Waypoint waypoint in path.Waypoints.Where(wp => wp.SpeedZone != 0))
{ {
World.RemoveSpeedZone(waypoint.YieldZone); waypoint.RemoveSpeedZone();
} }
path.Waypoints.Clear(); path.Waypoints.Clear();
} }
paths.Clear(); paths.Clear();
//pathsNum.Clear();
BuildPathMenu(); BuildPathMenu();
pathMainMenu.Visible = true; pathMainMenu.Visible = true;
Game.LogTrivial($"All paths deleted"); Game.LogTrivial($"All paths deleted");
@ -340,12 +329,14 @@ namespace SceneManager
Game.LogTrivial($"Dismiss from path"); Game.LogTrivial($"Dismiss from path");
if (nearbyVehicle.IsInCollectedVehicles()) if (nearbyVehicle.IsInCollectedVehicles())
{ {
var collectedVehicle = VehicleCollector.collectedVehicles.Where(cv => cv.Vehicle == nearbyVehicle) as CollectedVehicle; var collectedVehicle = VehicleCollector.collectedVehicles.Where(cv => cv.Vehicle == nearbyVehicle).First();
if (collectedVehicle != null) if (collectedVehicle != null)
{ {
collectedVehicle.SetDismissNow(true); collectedVehicle.SetDismissNow(true);
collectedVehicle.SetStoppedAtWaypoint(false);
collectedVehicle.Vehicle.Driver.Tasks.Clear(); collectedVehicle.Vehicle.Driver.Tasks.Clear();
collectedVehicle.Vehicle.Driver.Dismiss(); collectedVehicle.Vehicle.Driver.Dismiss();
collectedVehicle.Vehicle.IsSirenOn = false;
Game.LogTrivial($"Dismissed driver of {collectedVehicle.Vehicle.Model.Name} from path {collectedVehicle.Path}"); Game.LogTrivial($"Dismissed driver of {collectedVehicle.Vehicle.Model.Name} from path {collectedVehicle.Path}");
} }
} }
@ -359,12 +350,13 @@ namespace SceneManager
Game.LogTrivial($"Dismiss from waypoint"); Game.LogTrivial($"Dismiss from waypoint");
if (nearbyVehicle.IsInCollectedVehicles()) if (nearbyVehicle.IsInCollectedVehicles())
{ {
var collectedVehicle = VehicleCollector.collectedVehicles.Where(cv => cv.Vehicle == nearbyVehicle) as CollectedVehicle; var collectedVehicle = VehicleCollector.collectedVehicles.Where(cv => cv.Vehicle == nearbyVehicle).First();
if(collectedVehicle != null) if (collectedVehicle != null)
{ {
collectedVehicle.SetStoppedAtWaypoint(false); collectedVehicle.SetStoppedAtWaypoint(false);
collectedVehicle.Vehicle.Driver.Tasks.Clear(); collectedVehicle.Vehicle.Driver.Tasks.Clear();
collectedVehicle.Vehicle.Driver.Dismiss(); collectedVehicle.Vehicle.Driver.Dismiss();
collectedVehicle.Vehicle.IsSirenOn = false;
if (collectedVehicle.CurrentWaypoint == collectedVehicle.TotalWaypoints && !collectedVehicle.StoppedAtWaypoint) if (collectedVehicle.CurrentWaypoint == collectedVehicle.TotalWaypoints && !collectedVehicle.StoppedAtWaypoint)
{ {
@ -389,12 +381,14 @@ namespace SceneManager
{ {
nearbyVehicle.Driver.Tasks.Clear(); nearbyVehicle.Driver.Tasks.Clear();
nearbyVehicle.Driver.Dismiss(); nearbyVehicle.Driver.Dismiss();
nearbyVehicle.IsSirenOn = false;
Game.LogTrivial($"Dismissed driver of {nearbyVehicle.Model.Name} (in collection)"); Game.LogTrivial($"Dismissed driver of {nearbyVehicle.Model.Name} (in collection)");
} }
else else
{ {
nearbyVehicle.Driver.Tasks.Clear(); nearbyVehicle.Driver.Tasks.Clear();
nearbyVehicle.Driver.Dismiss(); nearbyVehicle.Driver.Dismiss();
nearbyVehicle.IsSirenOn = false;
Game.LogTrivial($"Dismissed driver of {nearbyVehicle.Model.Name} (was not in collection)"); Game.LogTrivial($"Dismissed driver of {nearbyVehicle.Model.Name} (was not in collection)");
} }
break; break;
@ -420,14 +414,6 @@ namespace SceneManager
foreach (Path path in paths) foreach (Path path in paths)
{ {
path.DisablePath(); path.DisablePath();
foreach (Waypoint waypoint in path.Waypoints)
{
waypoint.Blip.Alpha = 0.5f;
if (waypoint.CollectorRadiusBlip)
{
waypoint.CollectorRadiusBlip.Alpha = 0.25f;
}
}
} }
Game.LogTrivial($"All paths disabled."); Game.LogTrivial($"All paths disabled.");
} }
@ -436,14 +422,6 @@ namespace SceneManager
foreach (Path path in paths) foreach (Path path in paths)
{ {
path.EnablePath(); path.EnablePath();
foreach (Waypoint waypoint in path.Waypoints)
{
waypoint.Blip.Alpha = 1f;
if (waypoint.CollectorRadiusBlip)
{
waypoint.CollectorRadiusBlip.Alpha = 0.5f;
}
}
} }
Game.LogTrivial($"All paths enabled."); Game.LogTrivial($"All paths enabled.");
} }