Skip to content

Commit ac798e9

Browse files
committed
Fix superelevation animating when it shouldn't on some rolling stock
1 parent 759b1a1 commit ac798e9

File tree

1 file changed

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

1 file changed

+6
-6
lines changed

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -4512,9 +4512,9 @@ public void RepositionRearTraveller()
45124512

45134513
// Update car's curve radius and superelevation based on bogie position and move traveller to front bogie
45144514
// Also determine roll angle for superelevation by averaging both bogies
4515-
float roll = traveller.GetVisualElevation();
4515+
float roll = traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation);
45164516
car.UpdateCurvePhys(traveller, new[] { 0, car.CarBogieCentreLengthM });
4517-
roll = (roll + traveller.GetVisualElevation()) / 2.0f;
4517+
roll = (roll + traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation)) / 2.0f;
45184518

45194519
// Normalize across tile boundaries
45204520
x += 2048 * (tileX - traveller.TileX);
@@ -4633,9 +4633,9 @@ public void CalculatePositionOfCars(float elapsedTime, float distance)
46334633

46344634
// Update car's curve radius and superelevation based on bogie position and move traveller to front bogie
46354635
// Outputs rotation angle for superelevation, used below
4636-
float roll = traveller.GetVisualElevation();
4636+
float roll = traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation);
46374637
car.UpdateCurvePhys(traveller, new[] { 0, car.CarBogieCentreLengthM });
4638-
roll = (roll + traveller.GetVisualElevation()) / 2.0f;
4638+
roll = (roll + traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation)) / 2.0f;
46394639

46404640
// Normalize across tile boundaries
46414641
x += 2048 * (tileX - traveller.TileX);
@@ -4714,9 +4714,9 @@ public void CalculatePositionOfEOT()
47144714

47154715
// Update car's curve radius and superelevation based on bogie position and move traveller to front bogie
47164716
// Outputs rotation angle for superelevation, used below
4717-
float roll = traveller.GetVisualElevation();
4717+
float roll = traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation);
47184718
car.UpdateCurvePhys(traveller, new[] { 0, car.CarBogieCentreLengthM });
4719-
roll = (roll + traveller.GetVisualElevation()) / 2.0f;
4719+
roll = (roll + traveller.GetVisualElevation(Simulator.Settings.UseSuperElevation)) / 2.0f;
47204720

47214721
// Normalize across tile boundaries
47224722
x += 2048 * (tileX - traveller.TileX);

0 commit comments

Comments
 (0)