From 0659256619cfd0f3f64869631418ac23ffd74653 Mon Sep 17 00:00:00 2001 From: firleju Date: Thu, 8 Dec 2016 21:35:57 +0100 Subject: [PATCH] =?UTF-8?q?Za=C5=82atanie=20dziury=20w=20kranie=20hamulca?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DynObj.cpp | 2 +- McZapkie/Mover.cpp | 4 ++-- McZapkie/hamulce.cpp | 19 +++++++++++-------- McZapkie/hamulce.h | 4 ++-- McZapkie/mctools.cpp | 7 ++++--- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/DynObj.cpp b/DynObj.cpp index d3ba8d4d..8209f140 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -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; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 769cf7af..daf20a7e 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -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; diff --git a/McZapkie/hamulce.cpp b/McZapkie/hamulce.cpp index 8c7d4a46..d6d32ddd 100644 --- a/McZapkie/hamulce.cpp +++ b/McZapkie/hamulce.cpp @@ -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) { diff --git a/McZapkie/hamulce.h b/McZapkie/hamulce.h index bd7d0e38..132d1c0d 100644 --- a/McZapkie/hamulce.h +++ b/McZapkie/hamulce.h @@ -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)); diff --git a/McZapkie/mctools.cpp b/McZapkie/mctools.cpp index a007a04c..5b363a1e 100644 --- a/McZapkie/mctools.cpp +++ b/McZapkie/mctools.cpp @@ -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;