16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 23:19:19 +02:00

prevent AI SpeedCtrlPowerInc deadlock

This commit is contained in:
milek7
2020-11-15 17:48:29 +01:00
parent 54812e8346
commit 9bac45e35b
3 changed files with 25 additions and 15 deletions

View File

@@ -1824,8 +1824,8 @@ public:
void SpeedCtrlButton(int button);
void SpeedCtrlInc();
void SpeedCtrlDec();
void SpeedCtrlPowerInc();
void SpeedCtrlPowerDec();
bool SpeedCtrlPowerInc();
bool SpeedCtrlPowerDec();
/*-funkcje typowe dla lokomotywy spalinowej z przekladnia mechaniczna*/
bool dizel_EngageSwitch(double state);

View File

@@ -7199,18 +7199,28 @@ void TMoverParameters::SpeedCtrlDec()
}
}
void TMoverParameters::SpeedCtrlPowerInc()
bool TMoverParameters::SpeedCtrlPowerInc()
{
if ((SpeedCtrl) && (ScndCtrlPos > 0)) {
SpeedCtrlUnit.DesiredPower = std::min(SpeedCtrlUnit.DesiredPower + SpeedCtrlUnit.PowerStep, SpeedCtrlUnit.MaxPower);
}
if (!(SpeedCtrl && ScndCtrlPos > 0))
return false;
if (SpeedCtrlUnit.DesiredPower == SpeedCtrlUnit.MaxPower)
return false;
SpeedCtrlUnit.DesiredPower = std::min(SpeedCtrlUnit.DesiredPower + SpeedCtrlUnit.PowerStep, SpeedCtrlUnit.MaxPower);
return true;
}
void TMoverParameters::SpeedCtrlPowerDec()
bool TMoverParameters::SpeedCtrlPowerDec()
{
if ((SpeedCtrl) && (ScndCtrlPos > 0)) {
SpeedCtrlUnit.DesiredPower = std::max(SpeedCtrlUnit.DesiredPower - SpeedCtrlUnit.PowerStep, SpeedCtrlUnit.MinPower);
}
if (!(SpeedCtrl && ScndCtrlPos > 0))
return false;
if (SpeedCtrlUnit.DesiredPower == SpeedCtrlUnit.MinPower)
return false;
SpeedCtrlUnit.DesiredPower = std::max(SpeedCtrlUnit.DesiredPower - SpeedCtrlUnit.PowerStep, SpeedCtrlUnit.MinPower);
return true;
}
// *************************************************************************************************