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

Removed unused code. Fixed vehicles being stuck when the driver is removed at a stop waypoint

This commit is contained in:
Rich Dunne 2021-01-10 08:36:52 -07:00
parent ad36c50546
commit b7c9a5acf6

View file

@ -11,22 +11,12 @@ namespace SceneManager.Objects
internal Vehicle Vehicle { get; private set; } internal Vehicle Vehicle { get; private set; }
internal Path Path { get; private set; } internal Path Path { get; private set; }
internal Waypoint CurrentWaypoint { get; private set; } internal Waypoint CurrentWaypoint { get; private set; }
internal Waypoint NextWaypoint { get; private set; }
internal bool StoppedAtWaypoint { get; private set; } = false; internal bool StoppedAtWaypoint { get; private set; } = false;
internal bool Dismissed { get; private set; } = false; internal bool Dismissed { get; private set; } = false;
internal bool Directed { get; set; } = false; internal bool Directed { get; set; } = false;
internal bool SkipWaypoint { get; private set; } = false; internal bool SkipWaypoint { get; private set; } = false;
internal bool ReadyForDirectTasks { get; private set; } = true; internal bool ReadyForDirectTasks { get; private set; } = true;
internal CollectedVehicle(Vehicle vehicle, Path path, Waypoint currentWaypoint)
{
Vehicle = vehicle;
Driver = Vehicle.Driver;
Path = path;
CurrentWaypoint = currentWaypoint;
SetPersistence();
}
internal CollectedVehicle(Vehicle vehicle, Path path) internal CollectedVehicle(Vehicle vehicle, Path path)
{ {
Vehicle = vehicle; Vehicle = vehicle;
@ -292,8 +282,17 @@ namespace SceneManager.Objects
} }
} }
internal void Dismiss(DismissOption dismissOption = DismissOption.FromPath, Path newPath = null) internal void Dismiss(Dismiss dismissOption = Utils.Dismiss.FromPath, Path newPath = null)
{ {
if(Vehicle)
{
Rage.Native.NativeFunction.Natives.x260BE8F09E326A20(Driver.LastVehicle, 0f, 1, true);
Vehicle.Dismiss();
}
if (Driver)
{
Driver.Dismiss();
}
if (!Vehicle) if (!Vehicle)
{ {
Game.LogTrivial($"Vehicle is null."); Game.LogTrivial($"Vehicle is null.");
@ -305,25 +304,15 @@ namespace SceneManager.Objects
return; return;
} }
if (dismissOption == DismissOption.FromWorld) if (dismissOption == Utils.Dismiss.FromWorld)
{ {
DismissFromWorld(); DismissFromWorld();
return; return;
} }
if (dismissOption == DismissOption.FromPlayer) if (dismissOption == Utils.Dismiss.FromPlayer)
{ {
Dismissed = true; DismissFromPlayer();
//if (Driver)
//{
Driver.Dismiss();
//}
//if (Vehicle)
//{
Vehicle.Dismiss();
Rage.Native.NativeFunction.Natives.x260BE8F09E326A20(Vehicle, 0f, 1, true);
//}
Path.CollectedVehicles.Remove(this);
return; return;
} }
@ -331,28 +320,34 @@ namespace SceneManager.Objects
{ {
StoppedAtWaypoint = false; StoppedAtWaypoint = false;
Rage.Native.NativeFunction.Natives.x260BE8F09E326A20(Driver.LastVehicle, 0f, 1, true); Rage.Native.NativeFunction.Natives.x260BE8F09E326A20(Driver.LastVehicle, 0f, 1, true);
//if (Driver)
//{
Driver.Tasks.CruiseWithVehicle(5f); Driver.Tasks.CruiseWithVehicle(5f);
//}
} }
Driver.Tasks.Clear(); Driver.Tasks.Clear();
if (dismissOption == DismissOption.FromWaypoint) if (dismissOption == Utils.Dismiss.FromWaypoint)
{ {
DismissFromWaypoint(); DismissFromWaypoint();
} }
if (dismissOption == DismissOption.FromPath) if (dismissOption == Utils.Dismiss.FromPath)
{ {
DismissFromPath(); DismissFromPath();
} }
if(dismissOption == DismissOption.FromDirected) if(dismissOption == Utils.Dismiss.FromDirected)
{ {
DismissFromDirect(); DismissFromDirect();
} }
void DismissFromPlayer()
{
Dismissed = true;
Driver.Dismiss();
Rage.Native.NativeFunction.Natives.x260BE8F09E326A20(Vehicle, 0f, 1, true);
Vehicle.Dismiss();
Path.CollectedVehicles.Remove(this);
}
void DismissFromWorld() void DismissFromWorld()
{ {
Game.LogTrivial($"Dismissed {Vehicle.Model.Name} [{Vehicle.Handle}] from the world"); Game.LogTrivial($"Dismissed {Vehicle.Model.Name} [{Vehicle.Handle}] from the world");