Skip to content

Commit ee6ca68

Browse files
committed
Add sound event for brake overcharging
1 parent 2357ef4 commit ee6ca68

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

Source/Orts.Simulation/Common/Events.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,10 @@ public enum Event
240240
HeatingOn,
241241
AirConditioningOff,
242242
AirConditioningOn,
243+
244+
OverchargeBrakingOn,
245+
OverchargeBrakingOff,
246+
243247
}
244248

245249
public static class Events
@@ -496,6 +500,9 @@ public static Event From(bool mstsBinEnabled, Source source, int eventID)
496500
case 234: return Event.AirConditioningOn;
497501
case 235: return Event.AirConditioningOff;
498502

503+
case 250: return Event.OverchargeBrakingOn;
504+
case 251: return Event.OverchargeBrakingOff;
505+
499506
default: return 0;
500507
}
501508
case Source.MSTSCrossing:

Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,7 @@ public float OdometerM
353353
public float DynamicBrakeDelayS;
354354
public bool DynamicBrakeAutoBailOff;
355355
public bool UsingRearCab;
356+
public bool BrakeOverchargeSoundOn = false;
356357

357358
protected bool DynamicBrakeBlended; // dynamic brake blending is currently active
358359
protected bool DynamicBrakeBlendingEnabled; // dynamic brake blending is configured

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/Brakes/MSTS/AirSinglePipe.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,23 @@ public override void Update(float elapsedClockSeconds)
608608
}
609609
prevCylPressurePSI = AutoCylPressurePSI;
610610
prevBrakePipePressurePSI = BrakeLine1PressurePSI;
611+
612+
var lead = Car as MSTSLocomotive;
613+
614+
if (lead != null && Car.WagonType == MSTSWagon.WagonTypes.Engine)
615+
{
616+
if (lead.TrainBrakeController.TrainBrakeControllerState == ControllerState.Overcharge && !lead.BrakeOverchargeSoundOn)
617+
{
618+
Car.SignalEvent(Event.OverchargeBrakingOn);
619+
lead.BrakeOverchargeSoundOn = true;
620+
}
621+
else if (lead.TrainBrakeController.TrainBrakeControllerState != ControllerState.Overcharge && lead.BrakeOverchargeSoundOn)
622+
{
623+
Car.SignalEvent(Event.OverchargeBrakingOff);
624+
lead.BrakeOverchargeSoundOn = false;
625+
}
626+
}
627+
611628
}
612629
SoundTriggerCounter = SoundTriggerCounter + elapsedClockSeconds;
613630
}

0 commit comments

Comments
 (0)