public override void Abort() { _particle?.Delete(); Prop prop = _prop; if (prop != null) { prop.Delete(); } _peds?.ForEach(delegate(Ped ped) { Blip currentBlip = ped.CurrentBlip; if (currentBlip.Handle != 0) { currentBlip.Remove(); } ped.Delete(); }); Blip blip = _blip; if (blip != null) { blip.Remove(); } if (MenuConrtoller.BarPool.ToList().Contains(_timerBar)) { MenuConrtoller.BarPool.Remove(_timerBar); } }
public override void CleanUp() { _particle.Delete(); _peds?.ForEach(delegate(Ped ped) { Blip currentBlip = ped.CurrentBlip; if (currentBlip.Handle != 0) { currentBlip.Remove(); } ped.AlwaysKeepTask = true; ped.IsPersistent = false; }); Blip blip = _blip; if (blip != null) { blip.Remove(); } if (MenuConrtoller.BarPool.ToList().Contains(_timerBar)) { MenuConrtoller.BarPool.Remove(_timerBar); } }
/// <summary> /// Destroy assets used for Strafe Run, either by force or gracefully /// </summary> /// <param name="force"></param> public virtual void destructor(bool force = false) { // if the strafe run is not currently active, and the force flag is false, then do nothing if (!_isActive && !force) { return; } try { foreach (Vehicle strafeVehicle in strafeVehiclesList) { strafeVehicle.AttachedBlip.Delete(); // if destroying by force if (force) { strafeVehicle.Driver.Delete(); strafeVehicle.Delete(); } // if destroying gracefully, command the pilot to fly away. Mark crew and vehicle as no longer needed else { strafeVehicle.Driver.Task.FleeFrom(_targetPos); strafeVehicle.Driver.MarkAsNoLongerNeeded(); strafeVehicle.MarkAsNoLongerNeeded(); } } strafeVehiclesList.Clear(); //_jdamDrops.Clear(); // free each ped in the initial targets list foreach (Ped p in initialTargetList) { p.MarkAsNoLongerNeeded(); } } catch { } // free PTFX assets from memory, and remove end any particle FX try { if (force) { targetMarkerPtfxAsset.MarkAsNoLongerNeeded(); } targetMarkerPtfx.Delete(); } catch { } // try to reset cinematic camera to default game cam try { if (_cinematic) { cineCamCtrler.destructor(); } } catch { } // reset settings _isActive = false; _lastDistance = float.PositiveInfinity; }