mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
Definition of stopping distance before PassengerStopPoint
This commit is contained in:
committed by
tmj-fstate
parent
66184922c1
commit
6b705d38dd
20
Driver.cpp
20
Driver.cpp
@@ -858,6 +858,26 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
||||
}
|
||||
} // koniec obsługi przelotu na W4
|
||||
else {
|
||||
if ( !sSpeedTable[i].bMoved )
|
||||
{
|
||||
auto L = 0.0;
|
||||
auto Par1 = sSpeedTable[i].evEvent->ValueGet(1);
|
||||
auto Par2 = sSpeedTable[i].evEvent->ValueGet(2);
|
||||
if ((Par2 > 0) || (fLength < -Par2)) { //użyj tego W4
|
||||
if (Par1 < 0) { //środek
|
||||
L = -Par1 - fLength * 0.5 - 10;
|
||||
}
|
||||
else {
|
||||
L = Par1;
|
||||
}
|
||||
L = std::max(0.0, std::min(L, abs(Par2) - 10 - fLength));
|
||||
sSpeedTable[i].UpdateDistance(L);
|
||||
sSpeedTable[i].bMoved = true;
|
||||
}
|
||||
else {
|
||||
sSpeedTable[i].iFlags = 0;
|
||||
}
|
||||
}
|
||||
// zatrzymanie na W4
|
||||
isatpassengerstop = (
|
||||
// Ra 2F1I: odległość plus długość pociągu musi być mniejsza od długości
|
||||
|
||||
1
Driver.h
1
Driver.h
@@ -131,6 +131,7 @@ class TSpeedPos
|
||||
// zwrotnicy,32-minięty,64=koniec,128=łuk
|
||||
// 0x100=event,0x200=manewrowa,0x400=przystanek,0x800=SBL,0x1000=wysłana komenda,0x2000=W5
|
||||
// 0x4000=semafor,0x10000=zatkanie
|
||||
bool bMoved{ false }; // czy przesunięty (dotyczy punktu zatrzymania w peronie)
|
||||
Math3D::vector3 vPos; // współrzędne XYZ do liczenia odległości
|
||||
struct
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user