diff --git a/Driver.cpp b/Driver.cpp index 09a065b9..c8f71f9f 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -854,17 +854,19 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN } // koniec obsługi przelotu na W4 else { // zatrzymanie na W4 - if (!eSignNext) //jeśli nie widzi następnego sygnału - eSignNext = sSpeedTable[i].evEvent; //ustawia dotychczasową - if (mvOccupied->Vel > 0.3) // jeśli jedzie (nie trzeba czekać, aż się - // drgania wytłumią - drzwi zamykane od 1.0) - sSpeedTable[i].fVelNext = 0; // to będzie zatrzymanie - // else if - // ((iDrivigFlags&moveStopCloser)?sSpeedTable[i].fDist<=fMaxProximityDist*(AIControllFlag?1.0:10.0):true) + if( !eSignNext ) { + //jeśli nie widzi następnego sygnału ustawia dotychczasową + eSignNext = sSpeedTable[ i ].evEvent; + } + if( mvOccupied->Vel > 0.3 ) { + // jeśli jedzie (nie trzeba czekać, aż się drgania wytłumią - drzwi zamykane od 1.0) to będzie zatrzymanie + sSpeedTable[ i ].fVelNext = 0; + } else if ((iDrivigFlags & moveStopCloser) ? sSpeedTable[i].fDist + fLength <= - Max0R(sSpeedTable[i].evEvent->ValueGet(2), - fMaxProximityDist + fLength) : + std::max( + sSpeedTable[i].evEvent->ValueGet(2), + 2.0 * fMaxProximityDist + fLength) : // fmaxproximitydist typically equals ~50 m sSpeedTable[i].fDist < d_to_next_sem) // Ra 2F1I: odległość plus długość pociągu musi być mniejsza od długości // peronu, chyba że pociąg jest dłuższy, to wtedy minimalna diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index a50487d4..e647a0e8 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -3331,7 +3331,7 @@ void TMoverParameters::CompressorCheck(double dt) { // zasilanie sprężarki w członie ra z członu silnikowego (sprzęg 1) if( Couplers[ side::rear ].Connected != NULL ) { CompressorFlag = ( - ( ( CompressorAllow ) || ( CompressorStart == start::automatic ) ) + ( ( Couplers[ side::rear ].Connected->CompressorAllow ) || ( CompressorStart == start::automatic ) ) && ( CompressorAllowLocal ) && ( Couplers[ side::rear ].Connected->ConverterFlag ) ); } @@ -3344,7 +3344,7 @@ void TMoverParameters::CompressorCheck(double dt) { // zasilanie sprężarki w członie ra z członu silnikowego (sprzęg 1) if( Couplers[ side::front ].Connected != NULL ) { CompressorFlag = ( - ( ( CompressorAllow ) || ( CompressorStart == start::automatic ) ) + ( ( Couplers[ side::front ].Connected->CompressorAllow ) || ( CompressorStart == start::automatic ) ) && ( CompressorAllowLocal ) && ( Couplers[ side::front ].Connected->ConverterFlag ) ); } @@ -3407,7 +3407,7 @@ void TMoverParameters::CompressorCheck(double dt) { // zasilanie sprężarki w członie ra z członu silnikowego (sprzęg 1) if( Couplers[ side::rear ].Connected != NULL ) { CompressorFlag = ( - ( ( CompressorAllow ) || ( CompressorStart == start::automatic ) ) + ( ( Couplers[ side::rear ].Connected->CompressorAllow ) || ( CompressorStart == start::automatic ) ) && ( CompressorAllowLocal ) && ( Couplers[ side::rear ].Connected->ConverterFlag ) ); } @@ -3420,7 +3420,7 @@ void TMoverParameters::CompressorCheck(double dt) { // zasilanie sprężarki w członie ra z członu silnikowego (sprzęg 1) if( Couplers[ side::front ].Connected != NULL ) { CompressorFlag = ( - ( ( CompressorAllow ) || ( CompressorStart == start::automatic ) ) + ( ( Couplers[ side::front ].Connected->CompressorAllow ) || ( CompressorStart == start::automatic ) ) && ( CompressorAllowLocal ) && ( Couplers[ side::front ].Connected->ConverterFlag ) ); } diff --git a/keyboardinput.cpp b/keyboardinput.cpp index 76d5da28..e092e5c9 100644 --- a/keyboardinput.cpp +++ b/keyboardinput.cpp @@ -334,9 +334,9 @@ keyboard_input::default_bindings() { // epbrakecontroltoggle { GLFW_KEY_Z | keymodifier::control }, // trainbrakeoperationmodeincrease - { GLFW_KEY_KP_3 | keymodifier::shift | keymodifier::control }, + { GLFW_KEY_KP_2 | keymodifier::control }, // trainbrakeoperationmodedecrease - { GLFW_KEY_KP_9 | keymodifier::shift | keymodifier::control }, + { GLFW_KEY_KP_8 | keymodifier::control }, // brakeactingspeedincrease { GLFW_KEY_B | keymodifier::shift }, // brakeactingspeeddecrease diff --git a/uilayer.cpp b/uilayer.cpp index 21b71d02..0898df17 100644 --- a/uilayer.cpp +++ b/uilayer.cpp @@ -429,7 +429,7 @@ ui_layer::update() { uitextline2 += ( vehicle->MoverParameters->OilPump.is_active ? "O" : ( vehicle->MoverParameters->OilPump.is_enabled ? "o" : "." ) ); uitextline2 += ( false == vehicle->MoverParameters->ConverterAllowLocal ? "-" : ( vehicle->MoverParameters->ConverterAllow ? ( vehicle->MoverParameters->ConverterFlag ? "X" : "x" ) : "." ) ); uitextline2 += ( vehicle->MoverParameters->ConvOvldFlag ? "!" : "." ); - uitextline2 += ( false == vehicle->MoverParameters->CompressorAllowLocal ? "-" : ( ( vehicle->MoverParameters->CompressorAllow || vehicle->MoverParameters->CompressorPower > 1 ) ? ( vehicle->MoverParameters->CompressorFlag ? "C" : "c" ) : "." ) ); + uitextline2 += ( vehicle->MoverParameters->CompressorFlag ? "C" : ( false == vehicle->MoverParameters->CompressorAllowLocal ? "-" : ( ( vehicle->MoverParameters->CompressorAllow || vehicle->MoverParameters->CompressorStart == start::automatic ) ? "c" : "." ) ) ); uitextline2 += ( vehicle->MoverParameters->CompressorGovernorLock ? "!" : "." ); auto const train { Global.pWorld->train() };