diff --git a/DynObj.cpp b/DynObj.cpp index b2d8e257..b0b85b51 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -2702,9 +2702,9 @@ bool TDynamicObject::Update(double dt, double dt1) MoverParameters->CheckEIMIC(dt1); MoverParameters->CheckSpeedCtrl(); - MoverParameters->eimic = Min0R(MoverParameters->eimic, MoverParameters->eimicSpeedCtrl); - MoverParameters->SendCtrlToNext("EIMIC", Max0R(0, MoverParameters->eimic), MoverParameters->CabNo); - auto LBR = Max0R(-MoverParameters->eimic, 0); + auto eimic = Min0R(MoverParameters->eimic, MoverParameters->eimicSpeedCtrl); + MoverParameters->SendCtrlToNext("EIMIC", Max0R(0, eimic), MoverParameters->CabNo); + auto LBR = Max0R(-eimic, 0); // 1. ustal wymagana sile hamowania calego pociagu // - opoznienie moze byc ustalane na podstawie charakterystyki diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index f3de4a89..9567615f 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -5947,16 +5947,18 @@ void TMoverParameters::CheckEIMIC(double dt) eimic = -1.0; break; case 1: - eimic -= clamp(1.0 + eimic, 0.0, dt*0.3); //odejmuj do -1 + eimic -= clamp(1.0 + eimic, 0.0, dt*0.15); //odejmuj do -1 + if (eimic > 0) eimic = 0; break; case 2: - eimic -= clamp(0.0 + eimic, 0.0, dt*0.3); //odejmuj do 0 + eimic -= clamp(0.0 + eimic, 0.0, dt*0.15); //odejmuj do 0 break; case 3: - eimic += clamp(0.0 - eimic, 0.0, dt*0.3); //dodawaj do 0 + eimic += clamp(0.0 - eimic, 0.0, dt*0.15); //dodawaj do 0 break; case 4: - eimic += clamp(1.0 - eimic, 0.0, dt*0.3); //dodawaj do 1 + eimic += clamp(1.0 - eimic, 0.0, dt*0.15); //dodawaj do 1 + if (eimic < 0) eimic = 0; break; } break;