@@ -491,9 +491,15 @@ public virtual void LoadFromWagFile(string wagFilePath)
491
491
{
492
492
CarAirHoseHorizontalLengthM = 0.3862f ; // 15.2 inches
493
493
}
494
-
494
+
495
+ // Disable derailment coefficent on "dummy" cars. NB: Ideally this should never be used as "dummy" cars interfer with the overall train physics.
496
+ if ( MSTSWagonNumWheels == 0 && InitWagonNumAxles == 0 )
497
+ {
498
+ DerailmentCoefficientEnabled = false ;
499
+ }
500
+
495
501
// Ensure Drive Axles is set to a default if no OR value added to WAG file
496
- if ( WagonNumAxles == 0 && WagonType != WagonTypes . Engine )
502
+ if ( InitWagonNumAxles == 0 && WagonType != WagonTypes . Engine )
497
503
{
498
504
if ( MSTSWagonNumWheels != 0 && MSTSWagonNumWheels < 6 )
499
505
{
@@ -509,6 +515,10 @@ public virtual void LoadFromWagFile(string wagFilePath)
509
515
Trace . TraceInformation ( "Number of Wagon Axles set to default value of {0}" , WagonNumAxles ) ;
510
516
}
511
517
}
518
+ else
519
+ {
520
+ WagonNumAxles = InitWagonNumAxles ;
521
+ }
512
522
513
523
// Should always be at least one bogie on rolling stock. If is zero then NaN error occurs.
514
524
if ( WagonNumBogies == 0 )
@@ -1369,8 +1379,8 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
1369
1379
break ;
1370
1380
case "wagon(inside" : HasInsideView = true ; ParseWagonInside ( stf ) ; break ;
1371
1381
case "wagon(orts3dcab" : Parse3DCab ( stf ) ; break ;
1372
- case "wagon(numwheels" : MSTSWagonNumWheels = stf . ReadFloatBlock ( STFReader . UNITS . None , 4.0f ) ; break ;
1373
- case "wagon(ortsnumberaxles" : WagonNumAxles = stf . ReadIntBlock ( null ) ; break ;
1382
+ case "wagon(numwheels" : MSTSWagonNumWheels = stf . ReadFloatBlock ( STFReader . UNITS . None , null ) ; break ;
1383
+ case "wagon(ortsnumberaxles" : InitWagonNumAxles = stf . ReadIntBlock ( null ) ; break ;
1374
1384
case "wagon(ortsnumberbogies" : WagonNumBogies = stf . ReadIntBlock ( null ) ; break ;
1375
1385
case "wagon(ortspantographs" :
1376
1386
Pantographs . Parse ( lowercasetoken , stf ) ;
@@ -1455,7 +1465,8 @@ public virtual void Copy(MSTSWagon copy)
1455
1465
AuxTenderWaterMassKG = copy . AuxTenderWaterMassKG ;
1456
1466
TenderWagonMaxCoalMassKG = copy . TenderWagonMaxCoalMassKG ;
1457
1467
TenderWagonMaxWaterMassKG = copy . TenderWagonMaxWaterMassKG ;
1458
- WagonNumAxles = copy . WagonNumAxles ;
1468
+ InitWagonNumAxles = copy . InitWagonNumAxles ;
1469
+ DerailmentCoefficientEnabled = copy . DerailmentCoefficientEnabled ;
1459
1470
WagonNumBogies = copy . WagonNumBogies ;
1460
1471
MSTSWagonNumWheels = copy . MSTSWagonNumWheels ;
1461
1472
MassKG = copy . MassKG ;
0 commit comments