@@ -80,7 +80,8 @@ public float SetSpeedMpS
8080 public bool AntiWheelSpinEquipped = false ;
8181 public float AntiWheelSpinSpeedDiffThreshold = 0.5f ;
8282 public float DynamicBrakeMaxForceAtSelectorStep = 0 ;
83- protected float trainBrakePercent = 0 ;
83+ float trainBrakePercent ;
84+ public float TrainBrakePercent { get { return trainBrakePercent ; } }
8485 protected float trainLength = 0 ;
8586 public int TrainLengthMeters = 0 ;
8687 public float CurrentSelectedSpeedMpS = 0 ;
@@ -131,6 +132,7 @@ public enum SpeedSelectorMode { Parking, Neutral, On, Start }
131132 public bool ForceResetIncludeDynamicBrake = false ;
132133 public bool ZeroSelectedSpeedWhenPassingToThrottleMode = false ;
133134 public bool DynamicBrakeCommandHasPriorityOverCruiseControl = true ;
135+ public bool TrainBrakeCommandHasPriorityOverCruiseControl = true ;
134136 public bool HasIndependentThrottleDynamicBrakeLever = false ;
135137 public bool HasProportionalSpeedSelector = false ;
136138 public bool SpeedSelectorIsDiscrete = false ;
@@ -248,6 +250,7 @@ public CruiseControl(CruiseControl other, MSTSLocomotive locomotive)
248250 ForceResetIncludeDynamicBrake = other . ForceResetIncludeDynamicBrake ;
249251 ZeroSelectedSpeedWhenPassingToThrottleMode = other . ZeroSelectedSpeedWhenPassingToThrottleMode ;
250252 DynamicBrakeCommandHasPriorityOverCruiseControl = other . DynamicBrakeCommandHasPriorityOverCruiseControl ;
253+ TrainBrakeCommandHasPriorityOverCruiseControl = other . TrainBrakeCommandHasPriorityOverCruiseControl ;
251254 HasIndependentThrottleDynamicBrakeLever = other . HasIndependentThrottleDynamicBrakeLever ;
252255 HasProportionalSpeedSelector = other . HasProportionalSpeedSelector ;
253256 DisableManualSwitchToManualWhenSetForceNotAtZero = other . DisableManualSwitchToManualWhenSetForceNotAtZero ;
@@ -347,6 +350,7 @@ public void Parse(STFReader stf)
347350 case "forceresetincludedynamicbrake" : ForceResetIncludeDynamicBrake = stf . ReadBoolBlock ( false ) ; break ;
348351 case "zeroselectedspeedwhenpassingtothrottlemode" : ZeroSelectedSpeedWhenPassingToThrottleMode = stf . ReadBoolBlock ( false ) ; break ;
349352 case "dynamicbrakecommandhaspriorityovercruisecontrol" : DynamicBrakeCommandHasPriorityOverCruiseControl = stf . ReadBoolBlock ( true ) ; break ;
353+ case "trainbrakecommandhaspriorityovercruisecontrol" : TrainBrakeCommandHasPriorityOverCruiseControl = stf . ReadBoolBlock ( true ) ; break ;
350354 case "hasindependentthrottledynamicbrakelever" : HasIndependentThrottleDynamicBrakeLever = stf . ReadBoolBlock ( false ) ; break ;
351355 case "hasproportionalspeedselector" : HasProportionalSpeedSelector = stf . ReadBoolBlock ( false ) ; break ;
352356 case "speedselectorisdiscrete" : SpeedSelectorIsDiscrete = stf . ReadBoolBlock ( false ) ; break ;
@@ -540,10 +544,6 @@ public void Update(float elapsedClockSeconds)
540544 Locomotive . ThrottlePercent = 0 ;
541545 Locomotive . DynamicBrakePercent = - CCThrottleOrDynBrakePercent ;
542546 }
543- if ( prevTrainBrakePercent != trainBrakePercent && ! TrainBrakePriority )
544- {
545- Locomotive . TrainBrakeController . SetPercent ( trainBrakePercent ) ; // TODO: do not move actual train brake lever
546- }
547547 IsActive = true ;
548548 }
549549 if ( ! IsActive && wasActive )
0 commit comments