Skip to content

Commit d1a56b3

Browse files
committed
Correct track joint initialisation
1 parent e0efe12 commit d1a56b3

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

Source/Orts.Simulation/Simulation/Physics/Train.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,8 @@ public TrainCar LastCar
163163
public bool HuDIsWheelSlip;
164164
public bool IsBrakeSkid;
165165

166+
public bool SoundSetupInitialise = true;
167+
166168
public bool HotBoxSetOnTrain = false;
167169
public int ActivityDurationS
168170
{
@@ -2004,6 +2006,27 @@ public virtual void Update(float elapsedClockSeconds, bool auxiliaryUpdate = tru
20042006
LogTrainSpeed(Simulator.ClockTime);
20052007
}
20062008

2009+
// Initialise track joint trigger points. Only runs once at start up.
2010+
if (SoundSetupInitialise)
2011+
{
2012+
var trackjointdistanceM = (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM;
2013+
float trainLengthM = 0;
2014+
2015+
foreach (var car in Cars)
2016+
{
2017+
car.realTimeTrackJointDistanceM = trackjointdistanceM + trainLengthM;
2018+
trainLengthM += car.CarLengthM;
2019+
2020+
if (trainLengthM > (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM)
2021+
{
2022+
trainLengthM = 0;
2023+
}
2024+
2025+
}
2026+
2027+
SoundSetupInitialise = false;
2028+
}
2029+
20072030
} // end Update
20082031

20092032
//================================================================================================//

Source/Orts.Simulation/Simulation/RollingStocks/TrainCar.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,6 @@ public virtual void Initialize()
865865
Trace.TraceInformation("Tunnel 1 tr perimeter {0} Tunnel 1 tr area {1}", SingleTunnelPerimeterAreaM, SingleTunnelPerimeterAreaM);
866866
Trace.TraceInformation("Tunnel 2 tr perimeter {0} Tunnel 2 tr area {1}", DoubleTunnelPerimeterM, DoubleTunnelCrossSectAreaM2);
867867
#endif
868-
realTimeTrackJointDistanceM = (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM; // Initialise track joint distance
869868
SoundAxleCount = (LocoNumDrvAxles + WagonNumAxles);
870869

871870
}

0 commit comments

Comments
 (0)