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

Added loop to ensure driver is deleted before the vehicle upon dismiss from world

This commit is contained in:
Rich Dunne 2020-09-22 14:24:59 -06:00
parent 64c7afed14
commit d684d57cb2

View file

@ -40,13 +40,19 @@ namespace SceneManager
if (dismissOption == DismissOption.FromWorld) if (dismissOption == DismissOption.FromWorld)
{ {
Game.LogTrivial($"Dismissed {Vehicle.Model.Name} from the world"); Game.LogTrivial($"Dismissed {Vehicle.Model.Name} from the world");
if (Vehicle.HasDriver)
{
while (Vehicle.Driver)
{
Vehicle.Driver.Dismiss();
Vehicle.Driver.Delete(); Vehicle.Driver.Delete();
GameFiber.Yield();
}
}
Vehicle.Delete(); Vehicle.Delete();
return; return;
} }
Dismissed = true;
Dismissed = false;
Driver.Tasks.Clear(); Driver.Tasks.Clear();
if(StoppedAtWaypoint) if(StoppedAtWaypoint)
{ {
@ -66,12 +72,17 @@ namespace SceneManager
{ {
Logger.Log($"Dismissed from waypoint."); Logger.Log($"Dismissed from waypoint.");
SkipWaypoint = true; SkipWaypoint = true;
GameFiber.StartNew(() =>
{
GameFiber.Sleep(100);
SkipWaypoint = false; SkipWaypoint = false;
});
} }
if(dismissOption == DismissOption.FromWaypoint && CurrentWaypoint.Number == Path.Waypoints.Count || dismissOption == DismissOption.FromPath) if(dismissOption == DismissOption.FromWaypoint && CurrentWaypoint.Number == Path.Waypoints.Count || dismissOption == DismissOption.FromPath)
{ {
Logger.Log($"Dismissed from path."); Logger.Log($"Dismissed from path.");
Dismissed = true;
GameFiber.StartNew(() => GameFiber.StartNew(() =>
{ {
// check if the vehicle is near any of the path's collector waypoints // check if the vehicle is near any of the path's collector waypoints