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

Next semaphor always look at this which have VelNext = 0

This commit is contained in:
firleju
2016-01-27 11:22:37 +01:00
parent 9ddc1120df
commit c109ef5d15

View File

@@ -1046,21 +1046,24 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
moveSwitchFound; // rozjazd z przodu/pod ogranicza np. sens skanowania wstecz moveSwitchFound; // rozjazd z przodu/pod ogranicza np. sens skanowania wstecz
else if (sSpeedTable[i].iFlags & spEvent) // W4 może się deaktywować else if (sSpeedTable[i].iFlags & spEvent) // W4 może się deaktywować
{ // jeżeli event, może być potrzeba wysłania komendy, aby ruszył { // jeżeli event, może być potrzeba wysłania komendy, aby ruszył
//sprawdzanie eventów pasywnych miniętych // sprawdzanie eventów pasywnych miniętych
if (sSpeedTable[i].fDist < 0.0 && sSemNext == &sSpeedTable[i]) if (sSpeedTable[i].fDist < 0.0 && sSemNext == &sSpeedTable[i])
{ {
WriteLog("TableUpdate: semaphor " + sSemNext->GetName() + " passed"); WriteLog("TableUpdate: semaphor " + sSemNext->GetName() + " passed");
sSemNext = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze sSemNext = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
// zmiennej sprawdzającej dla skanowania w przód // zmiennej sprawdzającej dla skanowania w przód
} }
if (sSpeedTable[i].fDist > 0.0 && !sSemNext && if (sSpeedTable[i].fDist > 0.0 &&
sSpeedTable[i].IsProperSemaphor(OrderCurrentGet())) sSpeedTable[i].IsProperSemaphor(OrderCurrentGet()) &&
{ (!sSemNext ||
sSemNext = &sSpeedTable[i]; // jeśli jest mienięty poprzedni semafor a wcześniej (sSemNext && sSemNext->fVelNext != 0 && sSpeedTable[i].fVelNext == 0)))
// byl nowy to go dorzucamy do zmiennej, żeby cały {
// czas widział najbliższy sSemNext = &sSpeedTable[i]; // jeśli jest mienięty poprzedni
WriteLog("TableUpdate: Next semaphor: " + sSemNext->GetName()); // semafor a wcześniej
} // byl nowy to go dorzucamy do zmiennej, żeby cały
// czas widział najbliższy
WriteLog("TableUpdate: Next semaphor: " + sSemNext->GetName());
}
if (sSpeedTable[i].iFlags & spOutsideStation) if (sSpeedTable[i].iFlags & spOutsideStation)
{ // jeśli W5, to reakcja zależna od trybu jazdy { // jeśli W5, to reakcja zależna od trybu jazdy
if (OrderCurrentGet() & Obey_train) if (OrderCurrentGet() & Obey_train)