Skip to content

Commit 556ad1d

Browse files
committed
Correct bug in Joint distance loop
1 parent 2b45594 commit 556ad1d

File tree

1 file changed

+27
-6
lines changed
  • Source/Orts.Simulation/Simulation/Physics

1 file changed

+27
-6
lines changed

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

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2009,13 +2009,27 @@ public virtual void Update(float elapsedClockSeconds, bool auxiliaryUpdate = tru
20092009
// Initialise track joint trigger points. Sets the trigger point for the track joint reletative to other cars.
20102010
// This is then reset every time a track joint is triggered, and positioned the same distance apart, hence reletative positions are maintained.
20112011
// Only runs once at start up.
2012-
if (TrackJointSoundSetupInitialise)
2012+
if (TrackJointSoundSetupInitialise && (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM > 0)
20132013
{
20142014
var trackjointdistanceM = (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM;
20152015
var trainLengthM = 0.0f;
20162016
var cummulativeTrackJointDistanceM = 0.0f;
20172017
var remainDistanceM = (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM;
20182018

2019+
// Set values for printing
2020+
bool concretesleepers = false;
2021+
2022+
if ((float)Simulator.TRK.Tr_RouteFile.ConcreteSleepers == 1)
2023+
{
2024+
concretesleepers = true;
2025+
}
2026+
2027+
if (Simulator.Settings.VerboseConfigurationMessages && Simulator.TRK.Tr_RouteFile.TrackSoundDefaultContinuousPlay)
2028+
{
2029+
Trace.TraceInformation("======================================================================================================================");
2030+
Trace.TraceInformation("TType Track Sounds Initialisation - Concrete Sleepers = {0}, Track Joint Distance = {1} m", concretesleepers, (float)Simulator.TRK.Tr_RouteFile.DistanceBetweenTrackJointsM);
2031+
}
2032+
20192033

20202034
foreach (var car in Cars)
20212035
{
@@ -2031,14 +2045,14 @@ public virtual void Update(float elapsedClockSeconds, bool auxiliaryUpdate = tru
20312045
remainDistanceM -= car.CarLengthM;
20322046

20332047

2034-
// Trace.TraceInformation("Initialise Track Joints> - CarID {0} RealDistance {1} TrainLength {2} TRackJointDistance {3} CarLength {4} CumDistance {5} RemDistance {6}", car.CarID, car.realTimeTrackJointDistanceM, trainLengthM, trackjointdistanceM, car.CarLengthM, cummulativeTrackJointDistanceM, remainDistanceM);
2048+
// Trace.TraceInformation("Initialise Track Joints> - CarID {0} RealDistance {1} TrainLength {2} TRackJointDistance {3} CarLength {4} CumDistance {5} RemDistance {6}", car.CarID, car.realTimeTrackJointDistanceM, trainLengthM, trackjointdistanceM, car.CarLengthM, cummulativeTrackJointDistanceM, remainDistanceM);
20352049

20362050
// the next track joint has been reached reset all parameters in preparation for the next pass
20372051
if (remainDistanceM < 0.0f)
20382052
{
20392053
cummulativeTrackJointDistanceM = Math.Abs(remainDistanceM);
20402054
remainDistanceM = trackjointdistanceM - cummulativeTrackJointDistanceM;
2041-
// Trace.TraceInformation("Reset> - Cum {0} Rem {1}", cummulativeTrackJointDistanceM, remainDistanceM);
2055+
// Trace.TraceInformation("Reset> - Cum {0} Rem {1}", cummulativeTrackJointDistanceM, remainDistanceM);
20422056
}
20432057

20442058
}
@@ -2051,26 +2065,33 @@ public virtual void Update(float elapsedClockSeconds, bool auxiliaryUpdate = tru
20512065
cummulativeTrackJointDistanceM += trackjointdistanceM;
20522066
remainDistanceM -= car.CarLengthM;
20532067

2054-
// Trace.TraceInformation("Initialise Track Joints< - CarID {0} RealDistance {1} TrainLength {2} TRackJointDistance {3} CarLength {4} CumDistance {5} RemDistance {6}", car.CarID, car.realTimeTrackJointDistanceM, trainLengthM, trackjointdistanceM, car.CarLengthM, cummulativeTrackJointDistanceM, remainDistanceM);
2068+
// Trace.TraceInformation("Initialise Track Joints< - CarID {0} RealDistance {1} TrainLength {2} TRackJointDistance {3} CarLength {4} CumDistance {5} RemDistance {6}", car.CarID, car.realTimeTrackJointDistanceM, trainLengthM, trackjointdistanceM, car.CarLengthM, cummulativeTrackJointDistanceM, remainDistanceM);
20552069

20562070
if (remainDistanceM < 0.0f)
20572071
{
20582072

20592073
while (Math.Abs(remainDistanceM) > trackjointdistanceM)
20602074
{
20612075
remainDistanceM += trackjointdistanceM;
2062-
// Trace.TraceInformation("Reset Remain< - CarID {0}, remainDistanceM {1}", car.CarID, remainDistanceM);
2076+
// Trace.TraceInformation("Reset Remain< - CarID {0}, remainDistanceM {1}", car.CarID, remainDistanceM);
20632077
}
20642078

20652079
cummulativeTrackJointDistanceM = Math.Abs(remainDistanceM);
20662080
remainDistanceM = trackjointdistanceM - cummulativeTrackJointDistanceM;
2067-
// Trace.TraceInformation("Reset< - Cum {0} Rem {1}", cummulativeTrackJointDistanceM, remainDistanceM);
2081+
// Trace.TraceInformation("Reset< - Cum {0} Rem {1}", cummulativeTrackJointDistanceM, remainDistanceM);
20682082
}
20692083

20702084
}
20712085

2086+
if (Simulator.Settings.VerboseConfigurationMessages && Simulator.TRK.Tr_RouteFile.TrackSoundDefaultContinuousPlay)
2087+
{
2088+
Trace.TraceInformation("CarID {0}, Dist from Joint = {1} m, Car Length = {2} m, Train Length = {3} m, Axle Count = {4}", car.CarID, car.realTimeTrackJointDistanceM, car.CarLengthM, trainLengthM, car.SoundAxleCount);
2089+
}
2090+
20722091
}
20732092

2093+
Trace.TraceInformation("======================================================================================================================");
2094+
20742095
TrackJointSoundSetupInitialise = false;
20752096
}
20762097

0 commit comments

Comments
 (0)