Skip to content

Commit 0bd4776

Browse files
committed
Automatic merge of T1.5.1-794-g4cad06780 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 0a9d939: feat: Improved system information collection - Pull request #899 at 28fe751: Duplex steam engines - Booster Engine addition - Pull request #903 at 7353625: Downloading route content (Github, zip) - Pull request #906 at 5850660: Bug fix for https://bugs.launchpad.net/or/+bug/2047299 Crash loading a 3Dcab-only loco - 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
16 parents 2c7e7e8 + 4cad067 + 3539862 + d00beb9 + f92de76 + a055bca + 8f94333 + 6c0785b + 1f5ba4c + 5866028 + 0a9d939 + 28fe751 + 7353625 + 5850660 + 9b0b04f + 4b4afe3 commit 0bd4776

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

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

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,14 +2343,14 @@ public override void Update(float elapsedClockSeconds)
23432343
// Trace.TraceInformation("Idle Mode - Timer {0} GearPeriod {1} Reset {2} BoosterHeating {3} Sync {4}", BoosterIdleHeatingTimerS, BoosterGearEngageTimePeriodS, BoosterIdleHeatingTimerReset, BoosterIdleHeatingTimePeriodS, BoosterGearSyncTimePeriodS);
23442344
}
23452345
// Run mode
2346-
else if (SteamBoosterAirOpen && SteamBoosterIdle && SteamBoosterLatchedLocked && !BoosterAirisLow && throttle > 0.01)
2346+
else if (SteamBoosterAirOpen && SteamBoosterIdle && !BoosterAirisLow)
23472347
{
23482348
SteamBoosterIdleMode = false;
23492349
SteamBoosterRunMode = true;
23502350

23512351
// Trace.TraceInformation("Run Mode - Timer {0} GearPeriod {1}", BoosterGearEngageTimeS, BoosterGearEngageTimePeriodS);
23522352

2353-
if (BoosterGearEngageTimerS > BoosterGearEngageTimePeriodS) // Booster gears engaged
2353+
if (BoosterGearEngageTimerS > BoosterGearEngageTimePeriodS && SteamBoosterLatchedLocked && throttle > 0.01) // Booster gears engaged
23542354
{
23552355
enginethrottle = throttle;
23562356
BoosterCylinderSteamExhaustOn = true;
@@ -2427,12 +2427,23 @@ public override void Update(float elapsedClockSeconds)
24272427

24282428
// Calculate steam pressure for booster steam gauge
24292429
if (SteamEngines[i].AuxiliarySteamEngineType == SteamEngine.AuxiliarySteamEngineTypes.Booster)
2430-
{
2431-
if (SteamEngines[i].LogSteamChestPressurePSI > CabSteamChestPressurePSI && SteamBoosterRunMode && SteamBoosterAirOpen)
2430+
{
2431+
if (SteamBoosterRunMode && SteamEngines[i].LogSteamChestPressurePSI > PrevCabSteamBoosterPressurePSI)
24322432
{
24332433
CabSteamBoosterPressurePSI = SteamEngines[i].LogSteamChestPressurePSI;
24342434
PrevCabSteamBoosterPressurePSI = CabSteamBoosterPressurePSI;
24352435
}
2436+
else if (SteamBoosterRunMode && SteamEngines[i].LogSteamChestPressurePSI < PrevCabSteamBoosterPressurePSI)
2437+
{
2438+
var DesiredBoosterPressure = SteamEngines[i].LogSteamChestPressurePSI;
2439+
2440+
if (DesiredBoosterPressure < PrevCabSteamBoosterPressurePSI)
2441+
{
2442+
CabSteamBoosterPressurePSI = PrevCabSteamBoosterPressurePSI - 1;
2443+
CabSteamBoosterPressurePSI = MathHelper.Clamp(CabSteamBoosterPressurePSI, 0, MaxBoilerPressurePSI);
2444+
PrevCabSteamBoosterPressurePSI = CabSteamBoosterPressurePSI;
2445+
}
2446+
}
24362447
else if (SteamBoosterIdleMode)
24372448
{
24382449
var DesiredBoosterPressure = (BoosterIdleChokeSizeIn / BoosterMaxIdleChokeSizeIn) * BoilerPressurePSI;
@@ -2443,8 +2454,12 @@ public override void Update(float elapsedClockSeconds)
24432454
CabSteamBoosterPressurePSI = MathHelper.Clamp(CabSteamBoosterPressurePSI, 0, MaxBoilerPressurePSI);
24442455
PrevCabSteamBoosterPressurePSI = CabSteamBoosterPressurePSI;
24452456
}
2457+
else
2458+
{
2459+
CabSteamBoosterPressurePSI = PrevCabSteamBoosterPressurePSI;
2460+
}
24462461
}
2447-
else
2462+
else // Booster disabled
24482463
{
24492464
var DesiredBoosterPressure = 0;
24502465

@@ -2453,16 +2468,10 @@ public override void Update(float elapsedClockSeconds)
24532468
CabSteamBoosterPressurePSI = PrevCabSteamBoosterPressurePSI - 1;
24542469
CabSteamBoosterPressurePSI = MathHelper.Clamp(CabSteamBoosterPressurePSI, 0, MaxBoilerPressurePSI);
24552470
PrevCabSteamBoosterPressurePSI = CabSteamBoosterPressurePSI;
2456-
}
2471+
}
24572472
}
24582473
}
24592474

2460-
if (SteamEngines[i].LogSteamChestPressurePSI > CabSteamChestPressurePSI && SteamEngines[i].AuxiliarySteamEngineType == SteamEngine.AuxiliarySteamEngineTypes.Booster)
2461-
{
2462-
CabSteamBoosterPressurePSI = SteamEngines[i].LogSteamChestPressurePSI;
2463-
}
2464-
2465-
24662475
if (SteamEngines[i].MeanEffectivePressurePSI > MeanEffectivePressurePSI)
24672476
{
24682477
MeanEffectivePressurePSI = SteamEngines[i].MeanEffectivePressurePSI;

0 commit comments

Comments
 (0)