88using Orts . Formats . Msts ;
99using Orts . MultiPlayer ;
1010using Orts . Simulation ;
11+ using Orts . Simulation . AIs ;
1112using Orts . Simulation . Physics ;
1213using Orts . Simulation . RollingStocks ;
1314using Orts . Simulation . Signalling ;
@@ -333,36 +334,6 @@ public void GenerateView(bool dragging = false)
333334
334335 if ( mapCanvas . Image == null || firstShow ) InitializeImage ( ) ;
335336
336- /*if (firstShow)
337- {
338- if (!MPManager.IsServer())
339- {
340- chkAllowUserSwitch.Visible = false;
341- chkAllowUserSwitch.Checked = false;
342- rmvButton.Visible = false;
343- btnAssist.Visible = false;
344- btnNormal.Visible = false;
345- msgAll.Text = "MSG to Server";
346- }
347- else
348- {
349- msgAll.Text = "MSG to All";
350- }
351- if (MPManager.IsServer())
352- {
353- rmvButton.Visible = true;
354- chkAllowNew.Visible = true;
355- chkAllowUserSwitch.Visible = true;
356- }
357- else
358- {
359- rmvButton.Visible = false;
360- chkAllowNew.Visible = false;
361- chkAllowUserSwitch.Visible = false;
362- chkBoxPenalty.Visible = false;
363- chkPreferGreen.Visible = false;
364- }
365- }*/
366337 if ( firstShow || followTrain )
367338 {
368339 //see who should I look at:
@@ -515,23 +486,29 @@ private void DrawTrack(Graphics g, Pen p, out PointF scaledA, out PointF scaledB
515486
516487 private void DrawTrains ( Graphics g , PointF scaledA , PointF scaledB )
517488 {
518- var margin = 30 * xScale ; //margins to determine if we want to draw a train
489+ var margin = 30 * xScale ; // Margins to determine if we want to draw a train
519490 var margin2 = 5000 * xScale ;
520491
521- //variable for drawing train path
522- var mDist = 5000f ; var pDist = 50 ; //segment length when drawing path
492+ // Variable for drawing train path
493+ var mDist = 5000f ; var pDist = 50 ; // Segment length when drawing path
523494
524495 selectedTrainList . Clear ( ) ;
525496
526497 if ( simulator . TimetableMode )
527498 {
528- // Add the player's train
529- if ( simulator . PlayerLocomotive . Train is Orts . Simulation . AIs . AITrain )
530- selectedTrainList . Add ( simulator . PlayerLocomotive . Train as Orts . Simulation . AIs . AITrain ) ;
499+ // Add the player's train...
500+ if ( simulator . PlayerLocomotive . Train is Simulation . AIs . AITrain )
501+ selectedTrainList . Add ( simulator . PlayerLocomotive . Train as Simulation . AIs . AITrain ) ;
531502
532- // and all the other trains
533- foreach ( var train in simulator . AI . AITrains )
503+ // ...then all the AI trains...
504+ foreach ( AITrain train in simulator . AI . AITrains )
534505 selectedTrainList . Add ( train ) ;
506+
507+ // ...and finally the static consists.
508+ foreach ( Train staticConsist in simulator . Trains . Where ( c => c . TrainType == Train . TRAINTYPE . STATIC ) )
509+ {
510+ selectedTrainList . Add ( staticConsist ) ;
511+ }
535512 }
536513 else
537514 {
@@ -552,7 +529,7 @@ private void DrawTrains(Graphics g, PointF scaledA, PointF scaledB)
552529 else if ( train . Cars != null && train . Cars . Count > 0 )
553530 {
554531 trainName = train . GetTrainName ( train . Cars [ 0 ] . CarID ) ;
555- if ( train . TrainType == Train . TRAINTYPE . AI )
532+ if ( train . TrainType == Train . TRAINTYPE . AI || train . TrainType == Train . TRAINTYPE . STATIC )
556533 trainName = train . Number . ToString ( ) + ":" + train . Name ;
557534
558535 locoCar = train . Cars . Where ( r => r is MSTSLocomotive ) . FirstOrDefault ( ) ;
@@ -686,11 +663,26 @@ private void SetTrainColor(Train t, TrainCar locoCar, TrainCar car)
686663 // inactive loco: RGB 153,128,0
687664 // active car: RGB 0,204,0
688665 // inactive car: RGB 0,153,0
689- trainPen . Color = MapDataProvider . IsActiveTrain ( t as Simulation . AIs . AITrain )
690- ? car is MSTSLocomotive
691- ? ( car == locoCar ) ? Color . FromArgb ( 204 , 170 , 0 ) : Color . FromArgb ( 153 , 128 , 0 )
692- : Color . FromArgb ( 0 , 204 , 0 )
693- : car is MSTSLocomotive ? Color . FromArgb ( 153 , 128 , 0 ) : Color . FromArgb ( 0 , 153 , 0 ) ;
666+ if ( MapDataProvider . IsActiveTrain ( t as AITrain ) )
667+ {
668+ if ( car is MSTSLocomotive )
669+ {
670+ trainPen . Color = ( car == locoCar ) ? Color . FromArgb ( 204 , 170 , 0 ) : Color . FromArgb ( 153 , 128 , 0 ) ;
671+ }
672+ else
673+ {
674+ trainPen . Color = Color . FromArgb ( 0 , 204 , 0 ) ;
675+ }
676+ }
677+ else
678+ {
679+ trainPen . Color = car is MSTSLocomotive ? Color . FromArgb ( 153 , 128 , 0 ) : Color . FromArgb ( 0 , 153 , 0 ) ;
680+ }
681+
682+ if ( t . TrainType == Train . TRAINTYPE . STATIC )
683+ {
684+ trainPen . Color = Color . FromArgb ( 83 , 237 , 214 ) ;
685+ }
694686
695687 // Draw player train with loco in red
696688 if ( t . TrainType == Train . TRAINTYPE . PLAYER && car == locoCar )
0 commit comments