From 072d19d643bf8d69a668d989a1ae192b410c9031 Mon Sep 17 00:00:00 2001 From: Rich Dunne Date: Sat, 17 Oct 2020 07:11:59 -0600 Subject: [PATCH] Path object now has it's own list of collected vehicles. --- SceneManager/Object Classes/Path.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/SceneManager/Object Classes/Path.cs b/SceneManager/Object Classes/Path.cs index af3a743..cef1325 100644 --- a/SceneManager/Object Classes/Path.cs +++ b/SceneManager/Object Classes/Path.cs @@ -1,6 +1,7 @@ using Rage; using System.Collections.Generic; using System.Drawing; +using System.Linq; namespace SceneManager { @@ -10,6 +11,7 @@ namespace SceneManager internal bool IsEnabled { get; set; } internal State State { get; set; } internal List Waypoints = new List(); + internal List CollectedVehicles = new List(); internal Path(int pathNum, State pathState) { @@ -101,5 +103,30 @@ namespace SceneManager } }); } + + internal void LoopForVehiclesToBeDismissed() + { + GameFiber.StartNew(() => + { + while (PathMainMenu.paths.Contains(this)) + { + //Logger.Log($"Dismissing unused vehicles for cleanup"); + foreach (CollectedVehicle cv in CollectedVehicles.Where(cv => cv.Vehicle)) + { + if (!cv.Vehicle.IsDriveable || cv.Vehicle.IsUpsideDown || !cv.Vehicle.HasDriver) + { + if (cv.Vehicle.HasDriver) + { + cv.Vehicle.Driver.Dismiss(); + } + cv.Vehicle.Dismiss(); + } + } + + CollectedVehicles.RemoveAll(cv => !cv.Vehicle); + GameFiber.Sleep(60000); + } + }); + } } }