From 283973f7730e04f372242646358614a63229bf38 Mon Sep 17 00:00:00 2001 From: firleju Date: Tue, 8 Nov 2016 19:37:02 +0100 Subject: [PATCH] Ostatnie poprawki init. Wyzerowanie macierzy liczby animacji. --- DynObj.cpp | 42 +++++++++++++++++++++++++++++------------- DynObj.h | 2 +- McZapkie/Mover.cpp | 7 ------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/DynObj.cpp b/DynObj.cpp index 5772c200..4a6ddcf0 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -1607,12 +1607,14 @@ TDynamicObject::TDynamicObject() RaLightsSet(0, 0); // początkowe zerowanie stanu świateł // Ra: domyślne ilości animacji dla zgodności wstecz (gdy brak ilości podanych // w MMD) - iAnimType[ANIM_WHEELS] = 8; // 0-osie (8) - iAnimType[ANIM_DOORS] = 8; // 1-drzwi (8) - iAnimType[ANIM_LEVERS] = 4; // 2-wahacze (4) - np. nogi konia - iAnimType[ANIM_BUFFERS] = 4; // 3-zderzaki (4) - iAnimType[ANIM_BOOGIES] = 2; // 4-wózki (2) - iAnimType[ANIM_PANTS] = 2; // 5-pantografy (2) + // ustawienie liczby modeli animowanych podczas konstruowania obiektu a nie na 0 + // prowadzi prosto do wysypów jeśli źle zdefiniowane mmd + iAnimType[ANIM_WHEELS] = 0; // 0-osie (8) + iAnimType[ANIM_DOORS] = 0; // 1-drzwi (8) + iAnimType[ANIM_LEVERS] = 0; // 2-wahacze (4) - np. nogi konia + iAnimType[ANIM_BUFFERS] = 0; // 3-zderzaki (4) + iAnimType[ANIM_BOOGIES] = 0; // 4-wózki (2) + iAnimType[ANIM_PANTS] = 0; // 5-pantografy (2) iAnimType[ANIM_STEAMS] = 0; // 6-tłoki (napęd parowozu) iAnimations = 0; // na razie nie ma żadnego pAnimations = NULL; @@ -1738,6 +1740,20 @@ TDynamicObject::Init(string Name, // nazwa pojazdu, np. "EU07-424" Type_Name); return 0.0; // zerowa długość to brak pojazdu } + // ustawienie pozycji hamulca + MoverParameters->LocalBrakePos = 0; + if (driveractive) + { + if (Cab == 0) + MoverParameters->BrakeCtrlPos = + floor(MoverParameters->Handle->GetPos(bh_NP)); + else + MoverParameters->BrakeCtrlPos = floor(MoverParameters->Handle->GetPos(bh_RP)); + } + else + MoverParameters->BrakeCtrlPos = + floor(MoverParameters->Handle->GetPos(bh_NP)); + MoverParameters->BrakeLevelSet( MoverParameters->BrakeCtrlPos); // poprawienie hamulca po ewentualnym // przestawieniu przez Pascal @@ -1810,7 +1826,7 @@ TDynamicObject::Init(string Name, // nazwa pojazdu, np. "EU07-424" if (ActPar.find("1") != string::npos) // wylaczanie 10% { - if (random(10) < 1) // losowanie 1/10 + if (Random(10) < 1) // losowanie 1/10 { MoverParameters->BrakeStatus |= 128; // wylacz MoverParameters->Hamulec->ForceEmptiness(); @@ -1819,7 +1835,7 @@ TDynamicObject::Init(string Name, // nazwa pojazdu, np. "EU07-424" } if (ActPar.find("X") != string::npos) // agonalny wylaczanie 20%, usrednienie przekladni { - if (random(100) < 20) // losowanie 20/100 + if (Random(100) < 20) // losowanie 20/100 { MoverParameters->BrakeStatus |= 128; // wylacz MoverParameters->Hamulec->ForceEmptiness(); @@ -1828,7 +1844,7 @@ TDynamicObject::Init(string Name, // nazwa pojazdu, np. "EU07-424" if (MoverParameters->BrakeCylMult[2] * MoverParameters->BrakeCylMult[1] > 0.01) // jesli jest nastawiacz mechaniczny PL { - float rnd = random(100); + float rnd = Random(100); if (rnd < 20) // losowanie 20/100 usrednienie { MoverParameters->BrakeCylMult[2] = MoverParameters->BrakeCylMult[1] = @@ -4221,10 +4237,10 @@ void TDynamicObject::LoadMMediaFile(string BaseDir, string TypeName, delete fs; return; } - if (fs->width() == 0) - { - return delete fs; - }; + // if (fs->width() == 0) + // { + // return delete fs; + // }; string asAnimName; bool Stop_InternalData = false; //char *buf = new char[size + 1]; // ciąg bajtów o długości równej rozmiwarowi pliku diff --git a/DynObj.h b/DynObj.h index 9c8b3b6f..0766feaf 100644 --- a/DynObj.h +++ b/DynObj.h @@ -469,7 +469,7 @@ class TDynamicObject // void UpdatePos(); // McZapkie-260202 - void LoadMMediaFile(std::string BaseDir, std::string TypeName, std::string ReplacableSkin); + void LoadMMediaFile(string BaseDir, string TypeName, string ReplacableSkin); inline double ABuGetDirection() // ABu. { diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 21154082..b7e133e1 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -6926,12 +6926,6 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir) ScndPipePress = CompressedVolume / VeselVolume; PipePress = CntrlPipePress; BrakePress = 0; - LocalBrakePos = 0; - - if (CabNo == 0) - BrakeCtrlPos = floor(Handle->GetPos(bh_NP)); // Q: TODO: Trunc na floor - else - BrakeCtrlPos = floor(Handle->GetPos(bh_RP)); MainSwitch(false); PantFront(true); PantRear(true); @@ -6950,7 +6944,6 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir) PipeBrakePress = MaxBrakePress[3]; BrakePress = MaxBrakePress[3]; LocalBrakePos = 0; - BrakeCtrlPos = Trunc(Handle->GetPos(bh_NP)); // Q: TODO: Trunc na floor LimPipePress = LowPipePress; }