@@ -406,6 +406,7 @@ public float OdometerM
406406 public bool DynamicBrakeAutoBailOff ;
407407 public bool DynamicBrakePartialBailOff ;
408408 public bool DynamicBrakeEngineBrakeReplacement ;
409+ public float DynamicBrakeEngineBrakeReplacementSpeed ;
409410 public bool UsingRearCab ;
410411 public bool BrakeOverchargeSoundOn = false ;
411412 protected bool DynamicBrakeBlendingEnabled ; // dynamic brake blending is configured
@@ -1085,6 +1086,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
10851086 case "engine(ortsdynamicbrakeshasautobailoff" : DynamicBrakeAutoBailOff = stf . ReadBoolBlock ( true ) ; break ;
10861087 case "engine(ortsdynamicbrakeshaspartialbailoff" : DynamicBrakePartialBailOff = stf . ReadBoolBlock ( false ) ; break ;
10871088 case "engine(ortsdynamicbrakereplacementwithenginebrake" : DynamicBrakeEngineBrakeReplacement = stf . ReadBoolBlock ( false ) ; break ;
1089+ case "engine(ortsdynamicbrakereplacementwithenginebrakeatspeed" : DynamicBrakeEngineBrakeReplacementSpeed = stf . ReadFloatBlock ( STFReader . UNITS . SpeedDefaultMPH , null ) ; break ;
10881090 case "engine(dynamicbrakesdelaytimebeforeengaging" : DynamicBrakeDelayS = stf . ReadFloatBlock ( STFReader . UNITS . Time , null ) ; break ;
10891091 case "engine(dynamicbrakesresistorcurrentlimit" : DynamicBrakeMaxCurrentA = stf . ReadFloatBlock ( STFReader . UNITS . Current , null ) ; break ;
10901092 case "engine(numwheels" : MSTSLocoNumDrvWheels = stf . ReadFloatBlock ( STFReader . UNITS . None , 4.0f ) ; if ( MSTSLocoNumDrvWheels < 1 ) STFException . TraceWarning ( stf , "Engine:NumWheels is less than 1, parts of the simulation may not function correctly" ) ; break ;
@@ -1240,6 +1242,7 @@ public override void Copy(MSTSWagon copy)
12401242 DynamicBrakeAutoBailOff = locoCopy . DynamicBrakeAutoBailOff ;
12411243 DynamicBrakePartialBailOff = locoCopy . DynamicBrakePartialBailOff ;
12421244 DynamicBrakeEngineBrakeReplacement = locoCopy . DynamicBrakeEngineBrakeReplacement ;
1245+ DynamicBrakeEngineBrakeReplacementSpeed = locoCopy . DynamicBrakeEngineBrakeReplacementSpeed ;
12431246 DynamicBrakeMaxCurrentA = locoCopy . DynamicBrakeMaxCurrentA ;
12441247 DynamicBrakeSpeed1MpS = locoCopy . DynamicBrakeSpeed1MpS ;
12451248 DynamicBrakeSpeed2MpS = locoCopy . DynamicBrakeSpeed2MpS ;
@@ -1833,6 +1836,11 @@ public override void Initialize()
18331836 }
18341837 }
18351838
1839+ if ( DynamicBrakeEngineBrakeReplacement && DynamicBrakeEngineBrakeReplacementSpeed == 0 )
1840+ {
1841+ DynamicBrakeEngineBrakeReplacementSpeed = DynamicBrakeSpeed2MpS ;
1842+ }
1843+
18361844 // Initialise track sanding parameters
18371845 if ( MaxTrackSandBoxCapacityM3 == 0 )
18381846 {
0 commit comments