diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index 24d37daa..ec0f09ed 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1121,6 +1121,11 @@ public: double Spg = 0.0; double MinCompressor = 0.0; double MaxCompressor = 0.0; + double MinCompressor_cabA = 0.0; + double MaxCompressor_cabA = 0.0; + double MinCompressor_cabB = 0.0; + double MaxCompressor_cabB = 0.0; + bool CabDependentCompressor = false; double CompressorSpeed = 0.0; int CompressorList[4][9]; // pozycje świateł, przód - tył, 1 .. 16 double EmergencyValveOn = 0.0; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 6a39bad4..89ff27f4 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -4046,6 +4046,20 @@ void TMoverParameters::CompressorCheck(double dt) { return; } + if (CabDependentCompressor) + { + if (CabActive > 0) + { + MinCompressor = MinCompressor_cabA; + MaxCompressor = MaxCompressor_cabA; + } + if (CabActive < 0) + { + MinCompressor = MinCompressor_cabB; + MaxCompressor = MaxCompressor_cabB; + } + } + //EmergencyValve EmergencyValveOpen = (Compressor > (EmergencyValveOpen ? EmergencyValveOff : EmergencyValveOn)); if (EmergencyValveOpen) { @@ -9775,6 +9789,8 @@ void TMoverParameters::LoadFIZ_Brake( std::string const &line ) { */ extract_value( MinCompressor, "MinCP", line, "" ); extract_value( MaxCompressor, "MaxCP", line, "" ); + extract_value( MinCompressor, "MinCP_B", line, "" ); + extract_value( MaxCompressor, "MaxCP_B", line, "" ); extract_value( CompressorTankValve, "CompressorTankValve", line, "" ); extract_value( CompressorSpeed, "CompressorSpeed", line, "" ); extract_value( EmergencyValveOff, "MinEVP", line, "" ); @@ -9811,6 +9827,22 @@ void TMoverParameters::LoadFIZ_Brake( std::string const &line ) { extract_value( ReleaserEnabledOnlyAtNoPowerPos, "ReleaserPowerPosLock", line, ( ( EngineType == TEngineType::DieselEngine ) || ( EngineType == TEngineType::DieselElectric ) ) ? "yes" : "no" ); + + if (MinCompressor_cabB > 0.0) { + MinCompressor_cabA = MinCompressor; + CabDependentCompressor = true; + } + else { + MinCompressor_cabB = MinCompressor; + } + if (MaxCompressor_cabB > 0.0) + { + MaxCompressor_cabA = MaxCompressor; + CabDependentCompressor = true; + } + else { + MaxCompressor_cabB = MaxCompressor; + } } void TMoverParameters::LoadFIZ_Doors( std::string const &line ) {