/// <summary>Disposes of the train</summary> internal new void Dispose() { State = TrainState.Disposed; foreach (var Car in Cars) { Car.ChangeCarSection(CarSectionType.NotVisible); Car.FrontBogie.ChangeSection(-1); Car.RearBogie.ChangeSection(-1); } Sounds.StopAllSounds(this); }
// ================================ internal static void Reset() { // track manager TrackManager.CurrentTrack = new TrackManager.Track(); // train manager TrainManager.Trains = new TrainManager.Train[] { }; // game Interface.ClearMessages(); RouteComment = ""; RouteImage = ""; RouteAccelerationDueToGravity = 9.80665; RouteRailGauge = 1.435; RouteInitialAirPressure = 101325.0; RouteInitialAirTemperature = 293.15; RouteInitialElevation = 0.0; RouteSeaLevelAirPressure = 101325.0; RouteSeaLevelAirTemperature = 293.15; Stations = new Station[] { }; Sections = new Section[] { }; BufferTrackPositions = new double[] { }; MarkerTextures = new Texture[] { }; PointsOfInterest = new PointOfInterest[] { }; BogusPretrainInstructions = new BogusPretrainInstruction[] { }; TrainName = ""; TrainStart = TrainStartMode.EmergencyBrakesNoAts; PreviousFog = new Fog(0.0f, 0.0f, Color24.Grey, 0.0); CurrentFog = new Fog(0.0f, 0.0f, Color24.Grey, 0.5); NextFog = new Fog(0.0f, 0.0f, Color24.Grey, 1.0); NoFogStart = (float)World.BackgroundImageDistance + 200.0f; NoFogEnd = 2.0f * NoFogStart; InfoTotalTriangles = 0; InfoTotalTriangleStrip = 0; InfoTotalQuads = 0; InfoTotalQuadStrip = 0; InfoTotalPolygon = 0; // object manager ObjectManager.Objects = new ObjectManager.StaticObject[16]; ObjectManager.ObjectsUsed = 0; ObjectManager.ObjectsSortedByStart = new int[] { }; ObjectManager.ObjectsSortedByEnd = new int[] { }; ObjectManager.ObjectsSortedByStartPointer = 0; ObjectManager.ObjectsSortedByEndPointer = 0; ObjectManager.LastUpdatedTrackPosition = 0.0; ObjectManager.AnimatedWorldObjects = new ObjectManager.AnimatedWorldObject[4]; ObjectManager.AnimatedWorldObjectsUsed = 0; // renderer / sound Renderer.Reset(); Sounds.StopAllSounds(); GC.Collect(); }