Skip to content

Commit 5de4f9f

Browse files
committed
Automatic merge of T1.5.1-799-gb02a6e5d3 and 14 pull requests
- Pull request #570 at 3539862: Experimental glTF 2.0 support with PBR lighting - Pull request #839 at d00beb9: First phase of https://blueprints.launchpad.net/or/+spec/additional-cruise-control-parameters - Pull request #876 at f92de76: docs: add source for documents previously on website to source Documentation folder - Pull request #882 at a055bca: Blueprint/train car operations UI window - Pull request #885 at 8f94333: feat: Add notifications to Menu - Pull request #886 at 6c0785b: Scene viewer extension to TrackViewer - Pull request #892 at 1f5ba4c: Signal Function OPP_SIG_ID_TRAINPATH - Pull request #896 at 5866028: First implementation of https://blueprints.launchpad.net/or/+spec/specific-sounds-for-ai-trains - Pull request #897 at 42f1dd9: feat: Improved system information collection - Pull request #899 at b227eec: Duplex steam engines - Booster Engine addition - Pull request #903 at 9ba83fd: Downloading route content (Github, zip) - Pull request #907 at 9b0b04f: Bug fix for https://bugs.launchpad.net/or/+bug/2047300 Dynamic tracks disappear after long tunnel - Pull request #908 at 4b4afe3: feat: supports switching adhesion precisions - Pull request #911 at 6834af0: docs: Add refactoring as a special type of PR
16 parents 326a3e6 + b02a6e5 + 3539862 + d00beb9 + f92de76 + a055bca + 8f94333 + 6c0785b + 1f5ba4c + 5866028 + 42f1dd9 + b227eec + 9ba83fd + 9b0b04f + 4b4afe3 + 6834af0 commit 5de4f9f

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

Source/Orts.Simulation/Simulation/RollingStocks/MSTSSteamLocomotive.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ public class MSTSSteamLocomotive : MSTSLocomotive
152152
float BoosterCylinderExhaustOpenFactor;
153153
float BoosterEngineSpeedRpM;
154154
bool BoosterAirisLow = false;
155+
int BoosterEngineNumber;
155156

156157
/// <summary>
157158
/// Grate limit of locomotive exceedeed?
@@ -1585,6 +1586,8 @@ public override void Initialize()
15851586
float Tractiveratio = 0.2629f * SteamEngines[i].BoosterCutoff + 0.5971f;
15861587

15871588
SteamEngines[i].MaxTractiveEffortLbf = Tractiveratio * MaxBoilerPressurePSI * Me.ToIn(SteamEngines[i].CylindersDiameterM) * Me.ToIn(SteamEngines[i].CylindersDiameterM) * Me.ToIn(SteamEngines[i].CylindersStrokeM) * SteamEngines[i].BoosterGearRatio / (Me.ToIn(SteamEngines[i].AttachedAxle.WheelRadiusM) * 2.0f);
1589+
1590+
BoosterEngineNumber = i;
15881591
}
15891592
}
15901593

@@ -2593,12 +2596,11 @@ private void UpdateFX(float elapsedClockSeconds)
25932596
TotalNumberCyindersEng1 = SteamEngines[0].NumberCylinders;
25942597
}
25952598

2596-
// Engine #1
2597-
// Find
2599+
// Engine #1
25982600
for (int i = 0; i < TotalNumberCyindersEng1; i++)
25992601
{
26002602
var crankAngleDiffRad = WheelCrankAngleDiffRad[i];
2601-
float normalisedCrankAngleRad = NormalisedCrankAngle(i, crankAngleDiffRad);
2603+
float normalisedCrankAngleRad = NormalisedCrankAngle(0, i, crankAngleDiffRad);
26022604

26032605
// Exhaust crank angle
26042606
float exhaustCrankAngleRad = 0;
@@ -2820,14 +2822,13 @@ private void UpdateFX(float elapsedClockSeconds)
28202822

28212823
if (SteamEngines.Count > 1)
28222824
{
2823-
var TotalNumberCyindersEng2 = SteamEngines[1].NumberCylinders + SteamEngines[1].LPNumberCylinders;
2825+
var TotalNumberCyindersEng2 = SteamEngines[1].NumberCylinders; // currently assume 2nd engine is non-compound
28242826

2825-
// Engine #2
2826-
// Find
2827+
// Engine #2
28272828
for (int i = 0; i < TotalNumberCyindersEng2; i++)
28282829
{
28292830
var crankAngleDiffRad = WheelCrankAngleDiffEng2Rad[i];
2830-
float normalisedCrankAngleRad = NormalisedCrankAngle(i, crankAngleDiffRad);
2831+
float normalisedCrankAngleRad = NormalisedCrankAngle(1,i, crankAngleDiffRad);
28312832

28322833
// Exhaust crank angle
28332834
float exhaustCrankAngleRad = 0;
@@ -2943,7 +2944,7 @@ private void UpdateFX(float elapsedClockSeconds)
29432944

29442945
if (BoosterGearsEngaged)
29452946
{
2946-
normalisedCrankAngleRad = NormalisedCrankAngle(i, crankAngleDiffRad);
2947+
normalisedCrankAngleRad = NormalisedCrankAngle(BoosterEngineNumber,i, crankAngleDiffRad);
29472948
}
29482949
else
29492950
{
@@ -2993,7 +2994,7 @@ private void UpdateFX(float elapsedClockSeconds)
29932994

29942995
if (BoosterGearsEngaged)
29952996
{
2996-
normalisedCrankAngleRad = NormalisedCrankAngle(i, crankAngleDiffRad);
2997+
normalisedCrankAngleRad = NormalisedCrankAngle(BoosterEngineNumber, i, crankAngleDiffRad);
29972998
}
29982999
else
29993000
{
@@ -5763,7 +5764,7 @@ private void UpdateSteamTractiveForce(float elapsedClockSeconds, float locomotiv
57635764
}
57645765

57655766
var crankAngleDiffRad = WheelCrankAngleDiffRad[i];
5766-
float normalisedCrankAngleRad = NormalisedCrankAngle(i, crankAngleDiffRad);
5767+
float normalisedCrankAngleRad = NormalisedCrankAngle(numberofengine, i, crankAngleDiffRad);
57675768

57685769
// Crank angles
57695770
float sin = (float)Math.Sin(crankAngleRad);
@@ -6299,9 +6300,9 @@ private float NormalisedBoosterIdleCrankAngle(int cylinderNumber, float crankAng
62996300
/// <summary>
63006301
/// Normalise crank angle so that it is a value between 0 and 360 starting at the real crank angle difference
63016302
/// </summary>
6302-
private float NormalisedCrankAngle(int cylinderNumber, float crankAngleRad)
6303+
private float NormalisedCrankAngle(int enginenumber, int cylinderNumber, float crankAngleRad)
63036304
{
6304-
float normalisedCrankAngleRad = (float)MathHelper.WrapAngle((float)LocomotiveAxles[0].AxlePositionRad + crankAngleRad);
6305+
float normalisedCrankAngleRad = (float)MathHelper.WrapAngle((float)LocomotiveAxles[enginenumber].AxlePositionRad + crankAngleRad);
63056306

63066307
if (normalisedCrankAngleRad < 0)
63076308
{

0 commit comments

Comments
 (0)