@@ -406,6 +406,7 @@ public float OdometerM
406
406
public bool DynamicBrakeAutoBailOff ;
407
407
public bool DynamicBrakePartialBailOff ;
408
408
public bool DynamicBrakeEngineBrakeReplacement ;
409
+ public float DynamicBrakeEngineBrakeReplacementSpeed ;
409
410
public bool UsingRearCab ;
410
411
public bool BrakeOverchargeSoundOn = false ;
411
412
protected bool DynamicBrakeBlendingEnabled ; // dynamic brake blending is configured
@@ -1085,6 +1086,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
1085
1086
case "engine(ortsdynamicbrakeshasautobailoff" : DynamicBrakeAutoBailOff = stf . ReadBoolBlock ( true ) ; break ;
1086
1087
case "engine(ortsdynamicbrakeshaspartialbailoff" : DynamicBrakePartialBailOff = stf . ReadBoolBlock ( false ) ; break ;
1087
1088
case "engine(ortsdynamicbrakereplacementwithenginebrake" : DynamicBrakeEngineBrakeReplacement = stf . ReadBoolBlock ( false ) ; break ;
1089
+ case "engine(ortsdynamicbrakereplacementwithenginebrakeatspeed" : DynamicBrakeEngineBrakeReplacementSpeed = stf . ReadFloatBlock ( STFReader . UNITS . SpeedDefaultMPH , null ) ; break ;
1088
1090
case "engine(dynamicbrakesdelaytimebeforeengaging" : DynamicBrakeDelayS = stf . ReadFloatBlock ( STFReader . UNITS . Time , null ) ; break ;
1089
1091
case "engine(dynamicbrakesresistorcurrentlimit" : DynamicBrakeMaxCurrentA = stf . ReadFloatBlock ( STFReader . UNITS . Current , null ) ; break ;
1090
1092
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)
1240
1242
DynamicBrakeAutoBailOff = locoCopy . DynamicBrakeAutoBailOff ;
1241
1243
DynamicBrakePartialBailOff = locoCopy . DynamicBrakePartialBailOff ;
1242
1244
DynamicBrakeEngineBrakeReplacement = locoCopy . DynamicBrakeEngineBrakeReplacement ;
1245
+ DynamicBrakeEngineBrakeReplacementSpeed = locoCopy . DynamicBrakeEngineBrakeReplacementSpeed ;
1243
1246
DynamicBrakeMaxCurrentA = locoCopy . DynamicBrakeMaxCurrentA ;
1244
1247
DynamicBrakeSpeed1MpS = locoCopy . DynamicBrakeSpeed1MpS ;
1245
1248
DynamicBrakeSpeed2MpS = locoCopy . DynamicBrakeSpeed2MpS ;
@@ -1833,6 +1836,11 @@ public override void Initialize()
1833
1836
}
1834
1837
}
1835
1838
1839
+ if ( DynamicBrakeEngineBrakeReplacement && DynamicBrakeEngineBrakeReplacementSpeed == 0 )
1840
+ {
1841
+ DynamicBrakeEngineBrakeReplacementSpeed = DynamicBrakeSpeed2MpS ;
1842
+ }
1843
+
1836
1844
// Initialise track sanding parameters
1837
1845
if ( MaxTrackSandBoxCapacityM3 == 0 )
1838
1846
{
0 commit comments