Skip to content

Commit f90a98b

Browse files
committed
Add booster sound trigger
1 parent 6162387 commit f90a98b

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

Source/Orts.Formats.Msts/SoundManagmentFile.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public struct CurvePoint
198198

199199
public class VolumeCurve
200200
{
201-
public enum Controls { None, DistanceControlled, SpeedControlled, Variable1Controlled, Variable2_1Controlled, Variable3_1Controlled, Variable4_1Controlled, Variable2Controlled, Variable3Controlled, BrakeCylControlled, CurveForceControlled };
201+
public enum Controls { None, DistanceControlled, SpeedControlled, Variable1Controlled, Variable2_1Controlled, Variable3_1Controlled, Variable4_1Controlled, Variable2Controlled, Variable2BoosterControlled, Variable3Controlled, BrakeCylControlled, CurveForceControlled };
202202

203203
public Controls Control = Controls.None;
204204
public float Granularity = 1.0f;
@@ -218,6 +218,7 @@ public VolumeCurve(STFReader stf)
218218
case "variable3_1controlled": Control = Controls.Variable3_1Controlled; break;
219219
case "variable4_1controlled": Control = Controls.Variable4_1Controlled; break;
220220
case "variable2controlled": Control = Controls.Variable2Controlled; break;
221+
case "variable2BoosterControlled": Control = Controls.Variable2BoosterControlled; break;
221222
case "variable3controlled": Control = Controls.Variable3Controlled; break;
222223
case "brakecylcontrolled": Control = Controls.BrakeCylControlled; break;
223224
case "curveforcecontrolled": Control = Controls.CurveForceControlled; break;

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3022,7 +3022,14 @@ private void UpdateFX(float elapsedClockSeconds)
30223022

30233023
Variable2 = MathHelper.Clamp((CylinderCocksPressureAtmPSI - OneAtmospherePSI) / BoilerPressurePSI * 100f, 0, 100);
30243024

3025-
// Trace.TraceInformation("Variable2 - {0}", Variable2);
3025+
if (SteamBoosterAirOpen && SteamBoosterRunMode && BoosterCylinderSteamExhaustOn && throttle > 0.0)
3026+
{
3027+
Variable2_Booster = SteamChestPressurePSI / MaxBoilerPressurePSI;
3028+
}
3029+
else
3030+
{
3031+
Variable2_Booster = 0;
3032+
}
30263033

30273034
Variable3 = FuelRateSmoothed * 100;
30283035

Source/Orts.Simulation/Simulation/RollingStocks/MSTSWagon.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public enum WindowState
115115
public float Variable2_1;
116116
public float Variable3_1;
117117
public float Variable4_1;
118+
public float Variable2_Booster;
118119

119120
// wag file data
120121
public string MainShapeFileName;
@@ -1818,7 +1819,11 @@ public override void Save(BinaryWriter outf)
18181819
{
18191820
outf.Write(Variable1);
18201821
outf.Write(Variable2);
1822+
outf.Write(Variable2_Booster);
18211823
outf.Write(Variable3);
1824+
outf.Write(Variable2_1);
1825+
outf.Write(Variable3_1);
1826+
outf.Write(Variable4_1);
18221827
outf.Write(IsDavisFriction);
18231828
outf.Write(IsRollerBearing);
18241829
outf.Write(IsLowTorqueRollerBearing);
@@ -1879,7 +1884,11 @@ public override void Restore(BinaryReader inf)
18791884
{
18801885
Variable1 = inf.ReadSingle();
18811886
Variable2 = inf.ReadSingle();
1887+
Variable2_Booster = inf.ReadSingle();
18821888
Variable3 = inf.ReadSingle();
1889+
Variable2_1 = inf.ReadSingle();
1890+
Variable3_1 = inf.ReadSingle();
1891+
Variable4_1 = inf.ReadSingle();
18831892
IsDavisFriction = inf.ReadBoolean();
18841893
IsRollerBearing = inf.ReadBoolean();
18851894
IsLowTorqueRollerBearing = inf.ReadBoolean();

Source/RunActivity/Viewer3D/Sound.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1497,6 +1497,7 @@ private float ReadValue(Orts.Formats.Msts.VolumeCurve.Controls control, MSTSWago
14971497
case Orts.Formats.Msts.VolumeCurve.Controls.Variable2_1Controlled: return car.Variable2_1;
14981498
case Orts.Formats.Msts.VolumeCurve.Controls.Variable3_1Controlled: return car.Variable3_1;
14991499
case Orts.Formats.Msts.VolumeCurve.Controls.Variable4_1Controlled: return car.Variable4_1;
1500+
case Orts.Formats.Msts.VolumeCurve.Controls.Variable2BoosterControlled: return car.Variable2_Booster;
15001501
case Orts.Formats.Msts.VolumeCurve.Controls.Variable2Controlled: return car.Variable2;
15011502
case Orts.Formats.Msts.VolumeCurve.Controls.Variable3Controlled: return car.Variable3;
15021503
case Orts.Formats.Msts.VolumeCurve.Controls.BrakeCylControlled: return car.BrakeSystem.GetCylPressurePSI();

0 commit comments

Comments
 (0)