Załatanie dziury w kranie hamulca

This commit is contained in:
firleju
2016-12-08 21:35:57 +01:00
parent 77491f3d91
commit 0659256619
5 changed files with 20 additions and 16 deletions

View File

@@ -3492,7 +3492,7 @@ bool TDynamicObject::FastUpdate(double dt)
l.Y = vPosition.z;
l.Z = vPosition.y;
TRotation r;
r.Rx = r.Ry = r.Rz = 0;
r.Rx = r.Ry = r.Rz = 0.0;
// McZapkie: parametry powinny byc pobierane z toru
// ts.R=MyTrack->fRadius;

View File

@@ -7210,7 +7210,7 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir)
// to dac potem do init
if (ReadyFlag) // gotowy do drogi
{
// WriteLog("Ready to depart");
WriteLog("Ready to depart");
CompressedVolume = VeselVolume * MinCompressor * (9.8) / 10;
ScndPipePress = CompressedVolume / VeselVolume;
PipePress = CntrlPipePress;
@@ -7225,7 +7225,7 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir)
}
else
{ // zahamowany}
WriteLog("Bracked");
WriteLog("Braked");
Volume = BrakeVVolume * MaxBrakePress[3];
CompressedVolume = VeselVolume * MinCompressor * 0.55;
ScndPipePress = 5.1;

View File

@@ -24,10 +24,10 @@ double TFV4aM::pos_table[11] = { -2, 6, -1, 0, -2, 1, 4, 6, 0, 0, 0 };
double TMHZ_EN57::pos_table[11] = { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
double TM394::pos_table[11] = { -1, 5, -1, 0, 1, 2, 4, 5, 0, 0, 0 };
double TH14K1::BPT_K[6][2] =
{ (10, 0), (4, 1), (0, 1), (4, 0), (4, -1), (15, -1) };
{ {10, 0}, {4, 1}, {0, 1}, {4, 0}, {4, -1}, {15, -1} };
double TH14K1::pos_table[11] = { -1, 4, -1, 0, 1, 2, 3, 4, 0, 0, 0 };
double TSt113::BPT_K[6][2] =
{ (10, 0), (4, 1), (0, 1), (4, 0), (4, -1), (15, -1) };
{ {10, 0}, {4, 1}, {0, 1}, {4, 0}, {4, -1}, {15, -1} };
double TSt113::BEP_K[7] = { 0, -1, 1, 0, 0, 0, 0 };
double TSt113::pos_table[11] = { -1, 5, -1, 0, 2, 3, 4, 5, 0, 0, 1 };
double TFVel6::pos_table[11] = { -1, 6, -1, 0, 6, 4, 4.7, 5, -1, 0, 1 };
@@ -2233,11 +2233,8 @@ double TFV4aM::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
// ep:=cp/3+pp/3+ep/3;
// ep:=cp;
{
long i_end = 5;
for (i = 0; i < i_end; ++i)
Sounds[i] = 0;
}
for (i = 0; i < 5; ++i)
Sounds[i] = 0;
DP = 0;
i_bcp = Max0R(Min0R(i_bcp, 5.999), -1.999); // na wszelki wypadek, zeby nie wyszlo poza zakres
@@ -2378,8 +2375,14 @@ double TFV4aM::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
int i_pos;
i_pos = lround(pos - 0.5) + 2; // zaokraglone w dol
return
double i, j, k, l;
i = BPT[i_pos][1];
j = BPT[i_pos + 1][1];
k = pos + 2 - i_pos;
l = i + (j - i) * k;
double r =
BPT[i_pos][1] + (BPT[i_pos + 1][1] - BPT[i_pos][1]) * (pos + 2 - i_pos); // interpolacja liniowa
return r;
}
bool TFV4aM::EQ(double pos, double i_pos)
{

View File

@@ -129,8 +129,8 @@ Knorr/West EP -
//7//1.5
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (14, 5.4), (9, 5.0), (6, 4.6), (9, 4.5), (9, 4.0), (9, 3.5), (9, 2.8), (34, 2.8));
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (7, 5.0), (2.0, 5.0), (4.5, 4.6), (4.5, 4.2), (4.5, 3.8), (4.5, 3.4), (4.5, 2.8), (8, 2.8));
static double BPT[ /*?*//*-2..6*/ (6) - (-2) + 1][2] = { (0 , 5.0) , (7 , 5.0) , (2.0 , 5.0) , (4.5 , 4.6) , (4.5 , 4.2) , (4.5 , 3.8) , (4.5 , 3.4) , (4.5 , 2.8) , (8 , 2.8) };
static double BPT_394[ /*?*//*-1..5*/ (5) - (-1) + 1][2] = { (13 , 10.0) , (5 , 5.0) , (0 , -1) , (5 , -1) , (5 , 0.0) , (5 , 0.0) , (18 , 0.0) };
static double BPT[9][2] = { {0 , 5.0} , {7 , 5.0} , {2.0 , 5.0} , {4.5 , 4.6} , {4.5 , 4.2} , {4.5 , 3.8} , {4.5 , 3.4} , {4.5 , 2.8} , {8 , 2.8} };
static double BPT_394[7][2] = { {13 , 10.0} , {5 , 5.0} , {0 , -1} , {5 , -1} , {5 , 0.0} , {5 , 0.0} , {18 , 0.0} };
//double *BPT = zero_based_BPT[2]; //tablica pozycji hamulca dla zakresu -2..6
//double *BPT_394 = zero_based_BPT_394[1]; //tablica pozycji hamulca dla zakresu -1..5
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (12, 5.4), (9, 5.0), (9, 4.6), (9, 4.2), (9, 3.8), (9, 3.4), (9, 2.8), (34, 2.8));

View File

@@ -103,10 +103,11 @@ bool iSetFlag(int &Flag, int Value)
Flag |= Value;
return true; // true, gdy by³o wczeœniej 0 i zosta³o ustawione
}
if (Value < 0)
if ((Flag & abs(Value)) == abs(Value))
if (Value < 0)
Value = abs(Value);
if ((Flag & Value) == Value)
{
Flag |= Value; // Value jest ujemne, czyli zerowanie flagi
Flag &= ~Value; // Value jest ujemne, czyli zerowanie flagi
return true; // true, gdy by³o wczeœniej 1 i zosta³o wyzerowane
}
return false;