@@ -45,8 +45,10 @@ public class TrainCarOperationsViewerWindow : Window
4545 internal static Texture2D BleedOffValveNotAvailable ;
4646 internal static Texture2D BrakeHoseCon ;
4747 internal static Texture2D BrakeHoseDis ;
48+ internal static Texture2D BrakeHoseFirstCon ;
49+ internal static Texture2D BrakeHoseRearCon ;
4850 internal static Texture2D BrakeHoseFirstDis ;
49- internal static Texture2D BrakeHoseLastDis ;
51+ internal static Texture2D BrakeHoseRearDis ;
5052 internal static Texture2D Coupler ;
5153 internal static Texture2D CouplerFront ;
5254 internal static Texture2D CouplerRear ;
@@ -57,6 +59,7 @@ public class TrainCarOperationsViewerWindow : Window
5759 internal static Texture2D FrontAngleCockOpened ;
5860 internal static Texture2D FrontAngleCockClosed ;
5961 internal static Texture2D FrontAngleCockPartial ;
62+ internal static Texture2D FrontAngleCockNotAvailable ;
6063 internal static Texture2D HandBrakeSet ;
6164 internal static Texture2D HandBrakeNotSet ;
6265 internal static Texture2D HandBrakeNotAvailable ;
@@ -71,6 +74,7 @@ public class TrainCarOperationsViewerWindow : Window
7174 internal static Texture2D RearAngleCockOpened ;
7275 internal static Texture2D RearAngleCockClosed ;
7376 internal static Texture2D RearAngleCockPartial ;
77+ internal static Texture2D RearAngleCockNotAvailable ;
7478 internal static Texture2D ResetBrakesOff ;
7579 internal static Texture2D ResetBrakesOn ;
7680 internal static Texture2D ResetBrakesWarning ;
@@ -206,7 +210,9 @@ protected internal override void Initialize()
206210 Rectangle BrakeHoseConRect = new Rectangle ( 0 , 64 , 32 , 32 ) ;
207211 Rectangle BrakeHoseDisRect = new Rectangle ( 32 , 64 , 32 , 32 ) ;
208212 Rectangle BrakeHoseFirstDisRect = new Rectangle ( 64 , 64 , 32 , 32 ) ;
209- Rectangle BrakeHoseLastDisRect = new Rectangle ( 96 , 64 , 32 , 32 ) ;
213+ Rectangle BrakeHoseRearDisRect = new Rectangle ( 96 , 64 , 32 , 32 ) ;
214+ Rectangle BrakeHoseFirstConRect = new Rectangle ( 64 , 320 , 32 , 32 ) ;
215+ Rectangle BrakeHoseRearConRect = new Rectangle ( 96 , 320 , 32 , 32 ) ;
210216
211217 Rectangle CouplerNotAvailableRect = new Rectangle ( 0 , 96 , 32 , 32 ) ;
212218 Rectangle CouplerFrontRect = new Rectangle ( 32 , 96 , 32 , 32 ) ;
@@ -232,6 +238,8 @@ protected internal override void Initialize()
232238 Rectangle RearAngleCockOpenedRect = new Rectangle ( 96 , 224 , 32 , 32 ) ;
233239 Rectangle FrontAngleCockPartialRect = new Rectangle ( 96 , 160 , 32 , 32 ) ;
234240 Rectangle RearAngleCockPartialRect = new Rectangle ( 96 , 288 , 32 , 32 ) ;
241+ Rectangle FrontAngleCockNotAvailableRect = new Rectangle ( 0 , 320 , 32 , 32 ) ;
242+ Rectangle RearAngleCockNotAvailableRect = new Rectangle ( 32 , 320 , 32 , 32 ) ;
235243
236244 Rectangle PowerOnRect = new Rectangle ( 0 , 288 , 32 , 32 ) ;
237245 Rectangle PowerOffRect = new Rectangle ( 32 , 288 , 32 , 32 ) ;
@@ -256,7 +264,9 @@ protected internal override void Initialize()
256264 BrakeHoseCon = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseConRect ) ;
257265 BrakeHoseDis = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseDisRect ) ;
258266 BrakeHoseFirstDis = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseFirstDisRect ) ;
259- BrakeHoseLastDis = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseLastDisRect ) ;
267+ BrakeHoseRearDis = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseRearDisRect ) ;
268+ BrakeHoseFirstCon = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseFirstConRect ) ;
269+ BrakeHoseRearCon = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , BrakeHoseRearConRect ) ;
260270
261271 Coupler = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , CouplerRect ) ;
262272 CouplerFront = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , CouplerFrontRect ) ;
@@ -268,6 +278,7 @@ protected internal override void Initialize()
268278 FrontAngleCockClosed = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , FrontAngleCockClosedRect ) ;
269279 FrontAngleCockOpened = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , FrontAngleCockOpenedRect ) ;
270280 FrontAngleCockPartial = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , FrontAngleCockPartialRect ) ;
281+ FrontAngleCockNotAvailable = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , FrontAngleCockNotAvailableRect ) ;
271282
272283 HandBrakeNotAvailable = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , HandBrakeNotAvailableRect ) ;
273284 HandBrakeNotSet = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , HandBrakeNotSetRect ) ;
@@ -286,6 +297,7 @@ protected internal override void Initialize()
286297 RearAngleCockClosed = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , RearAngleCockClosedRect ) ;
287298 RearAngleCockOpened = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , RearAngleCockOpenedRect ) ;
288299 RearAngleCockPartial = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , RearAngleCockPartialRect ) ;
300+ RearAngleCockNotAvailable = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , RearAngleCockNotAvailableRect ) ;
289301
290302 ResetBrakesOff = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , ResetBrakesOffRect ) ;
291303 ResetBrakesOn = SharedTextureManager . Get ( GraphicsDeviceRender , TrainOperationsPath , ResetBrakesOnRect ) ;
@@ -846,7 +858,7 @@ public buttonRearBrakeHose(int x, int y, int size, Viewer viewer, TrainCar car,
846858 TrainCarViewer = Viewer . TrainCarOperationsViewerWindow ;
847859 CurrentCar = Viewer . PlayerTrain . Cars [ carPosition ] ;
848860 var last = car == viewer . PlayerTrain . Cars . Last ( ) ;
849- Texture = last ? BrakeHoseLastDis : ( CurrentCar as MSTSWagon ) . BrakeSystem . RearBrakeHoseConnected ? BrakeHoseCon : BrakeHoseDis ;
861+ Texture = last ? BrakeHoseRearDis : ( CurrentCar as MSTSWagon ) . BrakeSystem . RearBrakeHoseConnected ? BrakeHoseCon : BrakeHoseDis ;
850862 Source = new Rectangle ( 0 , 0 , size , size ) ;
851863 if ( ! last )
852864 {
@@ -884,20 +896,26 @@ public buttonFrontAngleCock(int x, int y, int size, Viewer viewer, TrainCar car,
884896 CurrentCar = Viewer . PlayerTrain . Cars [ carPosition ] ;
885897 var first = car == Viewer . PlayerTrain . Cars . First ( ) ;
886898
887- var carAngleCockAOpenAmount = CurrentCar . BrakeSystem . AngleCockAOpenAmount ;
888- var carAngleCockAOpen = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockAOpen ;
889- Texture = ! TrainCarViewer . TrainCarOperationsChanged && first ? FrontAngleCockClosed
890- : carAngleCockAOpenAmount > 0 && carAngleCockAOpenAmount < 1 ? FrontAngleCockPartial
891- : carAngleCockAOpen ? FrontAngleCockOpened
892- : FrontAngleCockClosed ;
893-
894- Source = new Rectangle ( 0 , 0 , size , size ) ;
895- if ( ! first )
899+ if ( CurrentCar . BrakeSystem is VacuumSinglePipe )
896900 {
897- Click += new Action < Control , Point > ( buttonFrontAngleCock_Click ) ;
901+ Texture = FrontAngleCockNotAvailable ;
898902 }
903+ else
904+ {
905+ var carAngleCockAOpenAmount = CurrentCar . BrakeSystem . AngleCockAOpenAmount ;
906+ var carAngleCockAOpen = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockAOpen ;
907+ Texture = ! TrainCarViewer . TrainCarOperationsChanged && first ? FrontAngleCockClosed
908+ : carAngleCockAOpenAmount > 0 && carAngleCockAOpenAmount < 1 ? FrontAngleCockPartial
909+ : carAngleCockAOpen ? FrontAngleCockOpened
910+ : FrontAngleCockClosed ;
911+
912+ if ( ! first )
913+ {
914+ Click += new Action < Control , Point > ( buttonFrontAngleCock_Click ) ;
915+ }
916+ }
917+ Source = new Rectangle ( 0 , 0 , size , size ) ;
899918 }
900-
901919 void buttonFrontAngleCock_Click ( Control arg1 , Point arg2 )
902920 {
903921 new ToggleAngleCockACommand ( Viewer . Log , ( CurrentCar as MSTSWagon ) , ! ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockAOpen ) ;
@@ -929,19 +947,25 @@ public buttonRearAngleCock(int x, int y, int size, Viewer viewer, TrainCar car,
929947 CurrentCar = Viewer . PlayerTrain . Cars [ carPosition ] ;
930948 var last = car == Viewer . PlayerTrain . Cars . Last ( ) ;
931949
932- var carAngleCockBOpenAmount = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockBOpenAmount ;
933- var carAngleCockBOpen = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockBOpen ;
934- Texture = last ? RearAngleCockClosed
935- : carAngleCockBOpenAmount > 0 && carAngleCockBOpenAmount < 1 ? RearAngleCockPartial
936- : carAngleCockBOpen ? RearAngleCockOpened
937- : RearAngleCockClosed ;
938-
939- Source = new Rectangle ( 0 , 0 , size , size ) ;
940-
941- if ( ! last )
950+ if ( CurrentCar . BrakeSystem is VacuumSinglePipe )
942951 {
943- Click += new Action < Control , Point > ( buttonRearAngleCock_Click ) ;
952+ Texture = RearAngleCockNotAvailable ;
944953 }
954+ else
955+ {
956+ var carAngleCockBOpenAmount = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockBOpenAmount ;
957+ var carAngleCockBOpen = ( CurrentCar as MSTSWagon ) . BrakeSystem . AngleCockBOpen ;
958+ Texture = last ? RearAngleCockClosed
959+ : carAngleCockBOpenAmount > 0 && carAngleCockBOpenAmount < 1 ? RearAngleCockPartial
960+ : carAngleCockBOpen ? RearAngleCockOpened
961+ : RearAngleCockClosed ;
962+
963+ if ( ! last )
964+ {
965+ Click += new Action < Control , Point > ( buttonRearAngleCock_Click ) ;
966+ }
967+ }
968+ Source = new Rectangle ( 0 , 0 , size , size ) ;
945969 }
946970
947971 void buttonRearAngleCock_Click ( Control arg1 , Point arg2 )
0 commit comments