Skip to content

Commit fc12d90

Browse files
committed
Fix-F9-reversal-issues
1 parent 96a1a59 commit fc12d90

File tree

6 files changed

+309
-155
lines changed

6 files changed

+309
-155
lines changed

Source/RunActivity/Viewer3D/Cameras.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
using Orts.Simulation.Physics;
3030
using Orts.Simulation.RollingStocks;
3131
using Orts.Simulation.Signalling;
32+
using Orts.Viewer3D.Popups;
3233
using ORTS.Common;
3334
using ORTS.Common.Input;
3435
using ORTS.Settings;
@@ -129,7 +130,10 @@ public virtual void Reset()
129130
public void Activate()
130131
{
131132
ScreenChanged();
132-
OnActivate(Viewer.Camera == this);
133+
if (!Viewer.IsFormationReversed)// Avoids flickering
134+
{
135+
OnActivate(Viewer.Camera == this);
136+
}
133137
Viewer.Camera = this;
134138
Viewer.Simulator.PlayerIsInCab = Style == Styles.Cab || Style == Styles.ThreeDimCab;
135139
Update(ElapsedTime.Zero);
@@ -1076,7 +1080,7 @@ protected override void OnActivate(bool sameCamera)
10761080
}
10771081
else
10781082
{
1079-
isVisibleTrainCarViewerOrWebpage = Viewer.TrainCarOperationsViewerWindow.Visible || (Viewer.TrainCarOperationsWebpage.Connections > 0 && Viewer.TrainCarOperationsWebpage.TrainCarSelected);
1083+
isVisibleTrainCarViewerOrWebpage = (Viewer.TrainCarOperationsWindow.Visible && !Viewer.TrainCarOperationsViewerWindow.Visible) || Viewer.TrainCarOperationsViewerWindow.Visible || (Viewer.TrainCarOperationsWebpage.Connections > 0 && Viewer.TrainCarOperationsWebpage.TrainCarSelected);
10801084
}
10811085

10821086
if (attachedCar == null || attachedCar.Train != Viewer.SelectedTrain || carPosition != oldCarPosition)

Source/RunActivity/Viewer3D/Popups/OSDCars.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,17 @@ public override void PrepareFrame(RenderFrame frame, ORTS.Common.ElapsedTime ela
7878
var newLabels = new Dictionary<TrainCar, LabelPrimitive>(labels.Count);
7979
var cars = Owner.Viewer.World.Trains.Cars;
8080
var cameraLocation = Owner.Viewer.Camera.CameraWorldLocation;
81-
var carID = Owner.Viewer.TrainCarOperationsViewerWindow.CurrentCarID;
81+
8282
//data from Webpage
8383
var trainCarWebpage = Owner.Viewer.TrainCarOperationsWebpage;
84+
var trainCarWebpageActive = trainCarWebpage != null && trainCarWebpage.Connections > 0 && trainCarWebpage.TrainCarSelected;
8485
var carIDWebpage = trainCarWebpage != null && trainCarWebpage.Connections > 0 ? trainCarWebpage.CurrentCarID : "";
85-
bool isVisibleTrainCarViewerOrWebpage = Owner.Viewer.TrainCarOperationsViewerWindow.Visible || (trainCarWebpage != null && trainCarWebpage.Connections > 0 && Owner.Viewer.TrainCarOperationsWebpage.TrainCarSelected);
86+
87+
//shows only one CarID label when traincaroperationsviewer is not visible
88+
var trainCarOperationsViewer = Owner.Viewer.TrainCarOperationsViewerWindow;
89+
var carID = Owner.Viewer.TrainCarOperationsViewerWindow.Visible ? trainCarOperationsViewer.CurrentCarID : trainCarWebpageActive ? trainCarWebpage.CurrentCarID : Owner.Viewer.TrainCarOperationsViewerWindow.CurrentCarID;
90+
91+
bool isVisibleTrainCarViewerOrWebpage = (Owner.Viewer.TrainCarOperationsWindow.Visible && !trainCarOperationsViewer.Visible) || trainCarOperationsViewer.Visible || trainCarWebpageActive;
8692
foreach (var car in cars.Keys)
8793
{
8894
// Calculates distance between camera and platform label.

0 commit comments

Comments
 (0)