@@ -352,10 +352,11 @@ public void UpdateTripleValveState(float elapsedClockSeconds)
352352 {
353353 var prevState = TripleValveState ;
354354 var valveType = ( Car as MSTSWagon ) . BrakeValve ;
355+ bool disableGradient = ! ( Car . Train . LeadLocomotive is MSTSLocomotive ) && Car . Train . TrainType != Orts . Simulation . Physics . Train . TRAINTYPE . STATIC ;
355356 if ( valveType == MSTSWagon . BrakeValveType . Distributor )
356357 {
357358 float targetPressurePSI = ( ControlResPressurePSI - BrakeLine1PressurePSI ) * AuxCylVolumeRatio ;
358- if ( targetPressurePSI > AutoCylPressurePSI && EmergencyValveActuationRatePSIpS > 0 && ( prevBrakePipePressurePSI - BrakeLine1PressurePSI ) > Math . Max ( elapsedClockSeconds , 0.0001f ) * EmergencyValveActuationRatePSIpS )
359+ if ( ! disableGradient && targetPressurePSI > AutoCylPressurePSI && EmergencyValveActuationRatePSIpS > 0 && ( prevBrakePipePressurePSI - BrakeLine1PressurePSI ) > Math . Max ( elapsedClockSeconds , 0.0001f ) * EmergencyValveActuationRatePSIpS )
359360 TripleValveState = ValveState . Emergency ;
360361 else if ( targetPressurePSI < AutoCylPressurePSI - ( TripleValveState != ValveState . Release ? 2.2f : 0f )
361362 || targetPressurePSI < 2.2f ) // The latter is a UIC regulation (0.15 bar)
@@ -367,7 +368,7 @@ public void UpdateTripleValveState(float elapsedClockSeconds)
367368 }
368369 else if ( valveType == MSTSWagon . BrakeValveType . TripleValve || valveType == MSTSWagon . BrakeValveType . DistributingValve )
369370 {
370- if ( BrakeLine1PressurePSI < AuxResPressurePSI - 1 && EmergencyValveActuationRatePSIpS > 0 && ( prevBrakePipePressurePSI - BrakeLine1PressurePSI ) > Math . Max ( elapsedClockSeconds , 0.0001f ) * EmergencyValveActuationRatePSIpS )
371+ if ( ! disableGradient && BrakeLine1PressurePSI < AuxResPressurePSI - 1 && EmergencyValveActuationRatePSIpS > 0 && ( prevBrakePipePressurePSI - BrakeLine1PressurePSI ) > Math . Max ( elapsedClockSeconds , 0.0001f ) * EmergencyValveActuationRatePSIpS )
371372 TripleValveState = ValveState . Emergency ;
372373 else if ( BrakeLine1PressurePSI > AuxResPressurePSI + 1 )
373374 TripleValveState = ValveState . Release ;
0 commit comments