@@ -414,7 +414,14 @@ private void UpdateWheelForceImage(TrainCar car, int carPosition)
414414 private void UpdateBrakeForceImage ( TrainCar car , int carPosition )
415415 {
416416 var idx = 0 ; // neutral
417- var absForceN = car . BrakeForceN ;
417+ bool isDynamicBrakes = false ;
418+
419+ var absForceN = Math . Abs ( car . BrakeForceN ) ; // using Math.Abs() for safety and consistency
420+ if ( car . WagonType == TrainCar . WagonTypes . Engine && Math . Abs ( car . DynamicBrakeForceN ) > absForceN )
421+ {
422+ absForceN = Math . Abs ( car . DynamicBrakeForceN ) ;
423+ isDynamicBrakes = true ;
424+ }
418425
419426 if ( absForceN > 1000f && BrakeForceScaleN > 1000f ) // exclude improbabl values
420427 {
@@ -425,8 +432,12 @@ private void UpdateBrakeForceImage(TrainCar car, int carPosition)
425432 if ( idx < 0 ) { idx = 0 ; } else if ( idx > 9 ) { idx = 9 ; }
426433 }
427434
428- if ( car . WagonType == TrainCar . WagonTypes . Engine ) { BrakeForceBarGraph [ carPosition ] . Source = new Rectangle ( 1 + idx * BarWidth , BarHight * 2 , BarWidth , HalfBarHight ) ; }
429- else { BrakeForceBarGraph [ carPosition ] . Source = new Rectangle ( 1 + idx * BarWidth , BarHight * 2 + HalfBarHight , BarWidth , HalfBarHight ) ; }
435+ if ( car . WagonType == TrainCar . WagonTypes . Engine )
436+ {
437+ if ( isDynamicBrakes ) { BrakeForceBarGraph [ carPosition ] . Source = new Rectangle ( 1 + idx * BarWidth , BarHight * 2 , BarWidth , HalfBarHight ) ; }
438+ else { BrakeForceBarGraph [ carPosition ] . Source = new Rectangle ( 1 + idx * BarWidth , BarHight * 2 + HalfBarHight , BarWidth , HalfBarHight ) ; }
439+ }
440+ else { BrakeForceBarGraph [ carPosition ] . Source = new Rectangle ( 1 + idx * BarWidth , BarHight * 2 + HalfBarHight * 2 , BarWidth , HalfBarHight ) ; }
430441 }
431442 }
432443}
0 commit comments