Skip to content

Commit 9b3415e

Browse files
committed
Use continuous tractive effort, not peak tractive effort.
In particular, the continuous effort makes much more sense for the Tons per EPA. Also rename variable names to reflect this.
1 parent 53dd604 commit 9b3415e

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Source/RunActivity/Viewer3D/Popups/HelpWindow.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ owner.Viewer.Simulator.PlayerLocomotive is MSTSLocomotive &&
593593
}));
594594
Tabs.Add(new TabData(Tab.TrainInfo, Viewer.Catalog.GetString("Train Info"), (cl) =>
595595
{
596-
var labelWidth = cl.TextHeight * 12;
596+
var labelWidth = cl.TextHeight * 13;
597597
var scrollbox = cl.AddLayoutScrollboxVertical(cl.RemainingWidth);
598598
if (Owner.Viewer.PlayerTrain != null)
599599
{
@@ -1197,16 +1197,16 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
11971197
var lengthM = playerTrain.Length;
11981198
var maxSpeedMps = playerTrain.TrainMaxSpeedMpS;
11991199
float totPowerW = 0f;
1200-
float totMaxTractiveEffortN = 0f;
1201-
string sectionMaxTractiveForce = ""; // using " + " between DPU sets
1200+
float totMaxContTractiveEffortN = 0f;
1201+
string sectionMaxContTractiveForce = ""; // using " + " between DPU sets
12021202
float totMaxDynamicBrakeForceN = 0f;
12031203
string sectionMaxDynamicBrakeForce = ""; // using " + " between DPU sets
12041204
float maxBrakeForceN = 0f;
12051205
float lowestCouplerStrengthN = 9.999e8f; // impossible high force
12061206
float lowestDerailForceN = 9.999e8f; // impossible high force
12071207

12081208
int engCount = 0; string countSeparator = ""; // when set, indicates that subsequent engines are in a separate block
1209-
float engMaxTractiveForceN = 0f; float engMaxDynBrakeForceN = 0f; string forceSeparator = ""; // when set, indicates that subsequent engines are in a separate block
1209+
float engMaxContTractiveForceN = 0f; float engMaxDynBrakeForceN = 0f; string forceSeparator = ""; // when set, indicates that subsequent engines are in a separate block
12101210

12111211
float wagMassKg = 0f; string massSeparator = ""; // when set, indicates that subsequent engines are in a separate block
12121212
int numOperativeBrakes = 0;
@@ -1233,8 +1233,8 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
12331233
engCount++;
12341234
numAxles += eng.LocoNumDrvAxles + eng.GetWagonNumAxles();
12351235
totPowerW += eng.MaxPowerW;
1236-
totMaxTractiveEffortN += eng.MaxForceN;
1237-
engMaxTractiveForceN += eng.MaxForceN;
1236+
totMaxContTractiveEffortN += eng.MaxContinuousForceN > 0 ? eng.MaxContinuousForceN : eng.MaxForceN;
1237+
engMaxContTractiveForceN += eng.MaxContinuousForceN > 0 ? eng.MaxContinuousForceN : eng.MaxForceN;
12381238
totMaxDynamicBrakeForceN += eng.MaxDynamicBrakeForceN;
12391239
engMaxDynBrakeForceN += eng.MaxDynamicBrakeForceN;
12401240

@@ -1256,9 +1256,9 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
12561256
{
12571257
numEngines += countSeparator + engCount.ToString();
12581258
engCount = 0; countSeparator = "+";
1259-
sectionMaxTractiveForce += forceSeparator + FormatStrings.FormatForce(engMaxTractiveForceN, isMetric);
1259+
sectionMaxContTractiveForce += forceSeparator + FormatStrings.FormatForce(engMaxContTractiveForceN, isMetric);
12601260
sectionMaxDynamicBrakeForce += forceSeparator + FormatStrings.FormatForce(engMaxDynBrakeForceN, isMetric);
1261-
engMaxTractiveForceN = 0f; engMaxDynBrakeForceN = 0f; forceSeparator = " + ";
1261+
engMaxContTractiveForceN = 0f; engMaxDynBrakeForceN = 0f; forceSeparator = " + ";
12621262
}
12631263
}
12641264

@@ -1278,7 +1278,7 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
12781278

12791279
if (engCount > 0) { numEngines = numEngines + countSeparator + engCount.ToString(); }
12801280
if (String.IsNullOrEmpty(numEngines)) { numEngines = "0"; }
1281-
if (engMaxTractiveForceN > 0) { sectionMaxTractiveForce += forceSeparator + FormatStrings.FormatForce(engMaxTractiveForceN, isMetric); }
1281+
if (engMaxContTractiveForceN > 0) { sectionMaxContTractiveForce += forceSeparator + FormatStrings.FormatForce(engMaxContTractiveForceN, isMetric); }
12821282
if (engMaxDynBrakeForceN > 0) { sectionMaxDynamicBrakeForce += forceSeparator + FormatStrings.FormatForce(engMaxDynBrakeForceN, isMetric); }
12831283
if (wagMassKg > 0) { sectionMass += massSeparator + FormatStrings.FormatLargeMass(wagMassKg, isMetric, isUK); }
12841284

@@ -1314,8 +1314,8 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
13141314
line.Add(new Label(line.RemainingWidth, line.RemainingHeight, FormatStrings.FormatPower(totPowerW, isMetric, false, false), LabelAlignment.Left));
13151315

13161316
line = scrollbox.AddLayoutHorizontalLineOfText();
1317-
line.Add(new Label(labelWidth, line.RemainingHeight, Viewer.Catalog.GetString("Max Tractive Effort:"), LabelAlignment.Left));
1318-
line.Add(new Label(line.RemainingWidth, line.RemainingHeight, sectionMaxTractiveForce, LabelAlignment.Left));
1317+
line.Add(new Label(labelWidth, line.RemainingHeight, Viewer.Catalog.GetString("Max Continuous Tractive Effort:"), LabelAlignment.Left));
1318+
line.Add(new Label(line.RemainingWidth, line.RemainingHeight, sectionMaxContTractiveForce, LabelAlignment.Left));
13191319

13201320
line = scrollbox.AddLayoutHorizontalLineOfText();
13211321
line.Add(new Label(labelWidth, line.RemainingHeight, Viewer.Catalog.GetString("Max Dynamic Brake Force:"), LabelAlignment.Left));
@@ -1340,7 +1340,7 @@ private void AddAggregatedTrainInfo(Train playerTrain, ControlLayout scrollbox,
13401340
// and should really be defined in the path file.
13411341

13421342
// tons per equivalent powered axle (TPA or TpEPA)
1343-
float tpepa = totMaxTractiveEffortN > 0 ? Kg.ToTUS(totMassKg) / (N.ToLbf(totMaxTractiveEffortN) / 10000f) : 0;
1343+
float tpepa = totMaxContTractiveEffortN > 0 ? Kg.ToTUS(totMassKg) / (N.ToLbf(totMaxContTractiveEffortN) / 10000f) : 0;
13441344
line = scrollbox.AddLayoutHorizontalLineOfText();
13451345
line.Add(new Label(labelWidth, line.RemainingHeight, Viewer.Catalog.GetString("Tons per EPA:"), LabelAlignment.Left));
13461346
line.Add(new Label(line.RemainingWidth, line.RemainingHeight, string.Format("{0:0}", tpepa), LabelAlignment.Left));

0 commit comments

Comments
 (0)