@@ -587,15 +587,15 @@ public override void Update(float elapsedClockSeconds)
587587 }
588588 }
589589 }
590- if ( loco . DynamicBrakeAutoBailOff && loco . DynamicBrakePercent > 0 && Car . MaxBrakeForceN > 0 )
590+ if ( loco . DynamicBrakePercent > 0 && Car . MaxBrakeForceN > 0 )
591591 {
592- var requiredBrakeForceN = Math . Min ( AutoCylPressurePSI / MaxCylPressurePSI , 1 ) * Car . MaxBrakeForceN ;
593- var localBrakeForceN = loco . DynamicBrakeForceN + Math . Min ( CylPressurePSI / MaxCylPressurePSI , 1 ) * Car . MaxBrakeForceN ;
594- if ( localBrakeForceN > requiredBrakeForceN - 0.15f * Car . MaxBrakeForceN )
592+ if ( loco . DynamicBrakePartialBailOff )
595593 {
596- isolateAutoBrake = true ;
597- if ( loco . DynamicBrakePartialBailOff )
594+ var requiredBrakeForceN = Math . Min ( AutoCylPressurePSI / MaxCylPressurePSI , 1 ) * Car . MaxBrakeForceN ;
595+ var localBrakeForceN = loco . DynamicBrakeForceN + Math . Min ( CylPressurePSI / MaxCylPressurePSI , 1 ) * Car . MaxBrakeForceN ;
596+ if ( localBrakeForceN > requiredBrakeForceN - 0.15f * Car . MaxBrakeForceN )
598597 {
598+ isolateAutoBrake = true ;
599599 var compensatedPressurePSI = Math . Min ( Math . Max ( ( requiredBrakeForceN - loco . DynamicBrakeForceN ) / Car . MaxBrakeForceN * MaxCylPressurePSI , 0 ) , MaxCylPressurePSI ) ;
600600 if ( CylPressurePSI < BrakeLine3PressurePSI )
601601 CylPressurePSI = BrakeLine3PressurePSI ;
@@ -614,10 +614,23 @@ public override void Update(float elapsedClockSeconds)
614614 CylPressurePSI += dp ;
615615 }
616616 }
617- else
617+ }
618+ else if ( loco . DynamicBrakeAutoBailOff )
619+ {
620+ if ( loco . DynamicBrakeForceCurves == null )
618621 {
622+ isolateAutoBrake = true ;
619623 CylPressurePSI = BrakeLine3PressurePSI ;
620624 }
625+ else
626+ {
627+ var dynforce = loco . DynamicBrakeForceCurves . Get ( 1.0f , loco . AbsSpeedMpS ) ;
628+ if ( ( loco . MaxDynamicBrakeForceN == 0 && dynforce > 0 ) || dynforce > loco . MaxDynamicBrakeForceN * 0.6 )
629+ {
630+ isolateAutoBrake = true ;
631+ CylPressurePSI = BrakeLine3PressurePSI ;
632+ }
633+ }
621634 }
622635 }
623636 }
0 commit comments