Skip to content

Commit ffc93eb

Browse files
committed
Add parameter to set train brake increase/decrease speed
1 parent 8bb3bfe commit ffc93eb

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed
-20.5 KB
Binary file not shown.

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/CruiseControl.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ public enum SpeedSelectorMode { Parking, Neutral, On, Start }
8888
public float ThrottleFullRangeDecreaseTimeSeconds = 6;
8989
public float DynamicBrakeFullRangeIncreaseTimeSeconds;
9090
public float DynamicBrakeFullRangeDecreaseTimeSeconds;
91+
public float TrainBrakeFullRangeIncreaseTimeSeconds = 10;
92+
public float TrainBrakeFullRangeDecreaseTimeSeconds = 5;
9193
public float ParkingBrakeEngageSpeed = 0;
9294
public float ParkingBrakePercent = 0;
9395
public bool SkipThrottleDisplay = false;
@@ -209,6 +211,8 @@ public CruiseControl(CruiseControl other, MSTSLocomotive locomotive)
209211
ThrottleFullRangeDecreaseTimeSeconds = other.ThrottleFullRangeDecreaseTimeSeconds;
210212
DynamicBrakeFullRangeIncreaseTimeSeconds = other.DynamicBrakeFullRangeIncreaseTimeSeconds;
211213
DynamicBrakeFullRangeDecreaseTimeSeconds = other.DynamicBrakeFullRangeDecreaseTimeSeconds;
214+
TrainBrakeFullRangeIncreaseTimeSeconds = other.TrainBrakeFullRangeIncreaseTimeSeconds;
215+
TrainBrakeFullRangeDecreaseTimeSeconds = other.TrainBrakeFullRangeDecreaseTimeSeconds;
212216
ParkingBrakeEngageSpeed = other.ParkingBrakeEngageSpeed;
213217
ParkingBrakePercent = other.ParkingBrakePercent;
214218
DisableZeroForceStep = other.DisableZeroForceStep;
@@ -270,6 +274,8 @@ public void Parse(STFReader stf)
270274
case "resetforceafteranybraking": ResetForceAfterAnyBraking = stf.ReadBoolBlock(false); break;
271275
case "dynamicbrakefullrangeincreasetimeseconds": DynamicBrakeFullRangeIncreaseTimeSeconds = stf.ReadFloatBlock(STFReader.UNITS.Any, 5); break;
272276
case "dynamicbrakefullrangedecreasetimeseconds": DynamicBrakeFullRangeDecreaseTimeSeconds = stf.ReadFloatBlock(STFReader.UNITS.Any, 5); break;
277+
case "trainbrakefullrangeincreasetimeseconds": TrainBrakeFullRangeIncreaseTimeSeconds = stf.ReadFloatBlock(STFReader.UNITS.Any, 10); break;
278+
case "trainbrakefullrangedecreasetimeseconds": TrainBrakeFullRangeDecreaseTimeSeconds = stf.ReadFloatBlock(STFReader.UNITS.Any, 5); break;
273279
case "parkingbrakeengagespeed": ParkingBrakeEngageSpeed = stf.ReadFloatBlock(STFReader.UNITS.Speed, 0); break;
274280
case "parkingbrakepercent": ParkingBrakePercent = stf.ReadFloatBlock(STFReader.UNITS.Any, 0); break;
275281
case "maxpowerthreshold": MaxPowerThreshold = stf.ReadFloatBlock(STFReader.UNITS.Any, 0); break;
@@ -1361,9 +1367,9 @@ void SetTrainBrake(ref float brakePercent, float elapsedClockSeconds, float delt
13611367
{
13621368
CCIsUsingTrainBrake = true;
13631369
if (RelativeAccelerationMpSS > -MaxDecelerationMpSS + 0.01f)
1364-
brakePercent += 10*elapsedClockSeconds;
1370+
brakePercent += 100/TrainBrakeFullRangeIncreaseTimeSeconds*elapsedClockSeconds;
13651371
else if (RelativeAccelerationMpSS < -MaxDecelerationMpSS - 0.01f)
1366-
brakePercent -= 20*elapsedClockSeconds;
1372+
brakePercent -= 100/TrainBrakeFullRangeDecreaseTimeSeconds*elapsedClockSeconds;
13671373
brakePercent = MathHelper.Clamp(brakePercent, TrainBrakeMinPercentValue - 3.0f, TrainBrakeMaxPercentValue);
13681374
}
13691375
}

0 commit comments

Comments
 (0)