@@ -86,7 +86,7 @@ internal static void ParseTrainData(string FileName, System.Text.Encoding Encodi
8686 double CoefficientOfStaticFriction = 0.35 ;
8787 double CoefficientOfRollingResistance = 0.0025 ;
8888 double AerodynamicDragCoefficient = 1.1 ;
89- TrainManager . AccelerationCurve [ ] AccelerationCurves = new TrainManager . AccelerationCurve [ ] { } ;
89+ TrainManager . BveAccelerationCurve [ ] AccelerationCurves = new TrainManager . BveAccelerationCurve [ ] { } ;
9090 Vector3 Driver = new Vector3 ( ) ;
9191 int DriverCar = 0 ;
9292 double MotorCarMass = 1.0 , TrailerCarMass = 1.0 ;
@@ -123,7 +123,8 @@ internal static void ParseTrainData(string FileName, System.Text.Encoding Encodi
123123 switch ( Lines [ i ] . ToLowerInvariant ( ) ) {
124124 case "#acceleration" :
125125 i ++ ; while ( i < Lines . Length && ! Lines [ i ] . StartsWith ( "#" , StringComparison . Ordinal ) ) {
126- Array . Resize < TrainManager . AccelerationCurve > ( ref AccelerationCurves , n + 1 ) ;
126+ Array . Resize < TrainManager . BveAccelerationCurve > ( ref AccelerationCurves , n + 1 ) ;
127+ AccelerationCurves [ n ] = new TrainManager . BveAccelerationCurve ( ) ;
127128 string t = Lines [ i ] + "," ;
128129 int m = 0 ;
129130 while ( true ) {
@@ -611,7 +612,10 @@ internal static void ParseTrainData(string FileName, System.Text.Encoding Encodi
611612 Train . Cars [ i ] . Specs . BrakeType = BrakeType ;
612613 Train . Cars [ i ] . Specs . ElectropneumaticType = ElectropneumaticType ;
613614 Train . Cars [ i ] . Specs . BrakeControlSpeed = BrakeControlSpeed ;
614- Train . Cars [ i ] . Specs . BrakeDecelerationAtServiceMaximumPressure = BrakeDeceleration ;
615+ Train . Cars [ i ] . Specs . DecelerationCurves = new TrainManager . AccelerationCurve [ ]
616+ {
617+ new TrainManager . BveDecelerationCurve ( BrakeDeceleration ) ,
618+ } ;
615619 Train . Cars [ i ] . Specs . MotorDeceleration = MotorDeceleration ;
616620 Train . Cars [ i ] . Specs . AirBrake . AirCompressorEnabled = false ;
617621 Train . Cars [ i ] . Specs . AirBrake . AirCompressorMinimumPressure = MainReservoirMinimumPressure ;
@@ -834,8 +838,11 @@ internal static void ParseTrainData(string FileName, System.Text.Encoding Encodi
834838 Train . Cars [ i ] . Specs . AirBrake . Type = TrainManager . AirBrakeType . Main ;
835839 Train . Cars [ i ] . Specs . MassEmpty = MotorCarMass ;
836840 Train . Cars [ i ] . Specs . MassCurrent = MotorCarMass ;
837- Train . Cars [ i ] . Specs . AccelerationCurves = AccelerationCurves ;
838- Train . Cars [ i ] . Specs . AccelerationCurvesMultiplier = 1.0 + TrailerCars * TrailerCarMass / ( MotorCars * MotorCarMass ) ;
841+ Array . Resize ( ref Train . Cars [ i ] . Specs . AccelerationCurves , AccelerationCurves . Length ) ;
842+ for ( int j = 0 ; j < AccelerationCurves . Length ; j ++ )
843+ {
844+ Train . Cars [ i ] . Specs . AccelerationCurves [ j ] = AccelerationCurves [ j ] . Clone ( 1.0 + TrailerCars * TrailerCarMass / ( MotorCars * MotorCarMass ) ) ;
845+ }
839846 Train . Cars [ i ] . Specs . AccelerationCurveMaximum = MaximumAcceleration ;
840847 switch ( ReAdhesionDevice ) {
841848 case 0 : // type a:
@@ -884,7 +891,6 @@ internal static void ParseTrainData(string FileName, System.Text.Encoding Encodi
884891 Train . Cars [ i ] . Specs . MassEmpty = TrailerCarMass ;
885892 Train . Cars [ i ] . Specs . MassCurrent = TrailerCarMass ;
886893 Train . Cars [ i ] . Specs . AccelerationCurves = new TrainManager . AccelerationCurve [ ] { } ;
887- Train . Cars [ i ] . Specs . AccelerationCurvesMultiplier = 0.0 ;
888894 Train . Cars [ i ] . Specs . AccelerationCurveMaximum = 0.0 ;
889895 Train . Cars [ i ] . Specs . ReAdhesionDevice . ApplicationFactor = 0.0 ;
890896 Train . Cars [ i ] . Sounds . Motor . SpeedConversionFactor = 18.0 ;
0 commit comments