@@ -4059,33 +4059,14 @@ public void UnconditionalInitializeBrakes()
40594059 MSTSLocomotive lead = (MSTSLocomotive)Cars[LeadLocomotiveIndex];
40604060 if (lead.TrainBrakeController != null)
40614061 {
4062- foreach (MSTSWagon car in Cars)
4062+ foreach (var car in Cars)
40634063 {
4064- if (lead.CarBrakeSystemType != car.CarBrakeSystemType) // Test to see if car brake system is the same as the locomotive
4064+ if (lead.BrakeSystem.GetType() != car.BrakeSystem.GetType())
40654065 {
4066- // If not, change so that they are compatible
4067- car.CarBrakeSystemType = lead.CarBrakeSystemType;
4068- if (lead.BrakeSystem is VacuumSinglePipe)
4069- car.MSTSBrakeSystem = new VacuumSinglePipe(car);
4070- else if (lead.BrakeSystem is AirTwinPipe)
4071- car.MSTSBrakeSystem = new AirTwinPipe(car);
4072- else if (lead.BrakeSystem is AirSinglePipe leadAir)
4073- {
4074- car.MSTSBrakeSystem = new AirSinglePipe(car);
4075- // if emergency reservoir has been set on lead locomotive then also set on trailing cars
4076- if (leadAir.EmergencyReservoirPresent)
4077- {
4078- (car.BrakeSystem as AirSinglePipe).EmergencyReservoirPresent = leadAir.EmergencyReservoirPresent;
4079- }
4080- }
4081- else if (lead.BrakeSystem is EPBrakeSystem ep)
4082- car.MSTSBrakeSystem = new EPBrakeSystem(car, ep.TwoPipes);
4083- else if (lead.BrakeSystem is SingleTransferPipe)
4084- car.MSTSBrakeSystem = new SingleTransferPipe(car);
4085- else
4086- throw new Exception("Unknown brake type");
4087-
4088- car.MSTSBrakeSystem.InitializeFromCopy(lead.BrakeSystem);
4066+ car.BrakeSystem = BrakeSystem.CreateNewLike(lead.BrakeSystem, car);
4067+ car.BrakeSystem.InitializeFromCopy(lead.BrakeSystem, false);
4068+ if (car.BrakeSystem is AirSinglePipe carAir && lead.BrakeSystem is AirSinglePipe leadAir)
4069+ carAir.EmergencyReservoirPresent = leadAir.EmergencyReservoirPresent;
40894070 Trace.TraceInformation("Car and Locomotive Brake System Types Incompatible on Car {0} - Car brakesystem type changed to {1}", car.CarID, car.CarBrakeSystemType);
40904071 }
40914072 }
0 commit comments