diff --git a/.clang-format b/.clang-format index bc6a82db..88f88f48 100644 --- a/.clang-format +++ b/.clang-format @@ -4,9 +4,11 @@ IndentWidth: 4 --- Language: Cpp AlignEscapedNewlinesLeft: true +AlignTrailingComments: false BreakBeforeBraces: Allman BreakBeforeTernaryOperators: false AllowShortBlocksOnASingleLine: false AllowShortIfStatementsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty ColumnLimit: 100 --- diff --git a/AdvSound.cpp b/AdvSound.cpp index af5c6374..6872b5e7 100644 --- a/AdvSound.cpp +++ b/AdvSound.cpp @@ -32,10 +32,12 @@ TAdvancedSound::~TAdvancedSound() // SoundShut.Stop(); } -void TAdvancedSound::Free() {} +void TAdvancedSound::Free() +{ +} -void TAdvancedSound::Init(char *NameOn, char *Name, char *NameOff, - double DistanceAttenuation, vector3 pPosition) +void TAdvancedSound::Init(char *NameOn, char *Name, char *NameOff, double DistanceAttenuation, + vector3 pPosition) { SoundStart.Init(NameOn, DistanceAttenuation, pPosition.x, pPosition.y, pPosition.z, true); SoundCommencing.Init(Name, DistanceAttenuation, pPosition.x, pPosition.y, pPosition.z, true); @@ -131,8 +133,7 @@ void TAdvancedSound::Update(bool ListenerInside, vector3 NewPosition) } } -void TAdvancedSound::UpdateAF(double A, double F, bool ListenerInside, - vector3 NewPosition) +void TAdvancedSound::UpdateAF(double A, double F, bool ListenerInside, vector3 NewPosition) { // update, ale z amplituda i czestotliwoscia if ((State == ss_Commencing) && (SoundCommencing.AM > 0)) { diff --git a/AdvSound.h b/AdvSound.h index 41d168bb..2eb97358 100644 --- a/AdvSound.h +++ b/AdvSound.h @@ -38,7 +38,7 @@ class TAdvancedSound TAdvancedSound(); ~TAdvancedSound(); void Init(char *NameOn, char *Name, char *NameOff, double DistanceAttenuation, - vector3 pPosition); + vector3 pPosition); void Load(TQueryParserComp *Parser, vector3 pPosition); void TurnOn(bool ListenerInside, vector3 NewPosition); void TurnOff(bool ListenerInside, vector3 NewPosition); diff --git a/AirCoupler.cpp b/AirCoupler.cpp index 76100d20..91a6c592 100644 --- a/AirCoupler.cpp +++ b/AirCoupler.cpp @@ -14,9 +14,14 @@ http://mozilla.org/MPL/2.0/. #include "AirCoupler.h" #include "Timer.h" -TAirCoupler::TAirCoupler() { Clear(); } +TAirCoupler::TAirCoupler() +{ + Clear(); +} -TAirCoupler::~TAirCoupler() {} +TAirCoupler::~TAirCoupler() +{ +} int TAirCoupler::GetStatus() { // zwraca 1, jeśli istnieje model prosty, 2 gdy skośny diff --git a/AnimModel.cpp b/AnimModel.cpp index c14327f5..56d2e406 100644 --- a/AnimModel.cpp +++ b/AnimModel.cpp @@ -115,7 +115,7 @@ void TAnimContainer::SetRotateAnim(vector3 vNewRotateAngles, double fNewRotateSp */ if (evDone) { // dołączyć model do listy aniomowania, żeby animacje były przeliczane również bez - // wyświetlania + // wyświetlania if (iAnim >= 0) { // jeśli nie jest jeszcze na liście animacyjnej acAnimNext = TAnimModel::acAnimList; // pozostałe doklić sobie jako ogon @@ -138,7 +138,7 @@ void TAnimContainer::SetTranslateAnim(vector3 vNewTranslate, double fNewSpeed) */ if (evDone) { // dołączyć model do listy aniomowania, żeby animacje były przeliczane również bez - // wyświetlania + // wyświetlania if (iAnim >= 0) { // jeśli nie jest jeszcze na liście animacyjnej acAnimNext = TAnimModel::acAnimList; // pozostałe doklić sobie jako ogon @@ -179,7 +179,7 @@ void TAnimContainer::AnimSetVMD(double fNewSpeed) //-+-+ - dłoń ma w górze zamiast na pasie w pozycji początkowej //+--+ - głowa do tyłu (broda w górę) w pozycji początkowej //--++ - pozycja początkowa dobra, trąca u góry, ale z rękami jakoś nie tak, kółko w - //przeciwną stronę + // przeciwną stronę //++++ - kładzie się brzuchem do góry //-+++ - ręce w górze na początku, zamiast w dół, łokieć jakby w przeciwną stronę //+-++ - nie podnosi ręki do głowy @@ -223,7 +223,7 @@ void TAnimContainer::UpdateModel() vTranslation += s; else vTranslation = vTranslateTo; // koniec animacji, "koniec animowania" uruchomi - // się w następnej klatce + // się w następnej klatce } else { // koniec animowania @@ -233,7 +233,7 @@ void TAnimContainer::UpdateModel() iAnim &= ~2; // wyłączyć zmianę pozycji submodelu if (evDone) Global::AddToQuery(evDone, NULL); // wykonanie eventu informującego o - // zakończeniu + // zakończeniu } } if (fRotateSpeed != 0) @@ -300,7 +300,7 @@ void TAnimContainer::UpdateModel() fRotateSpeed = 0.0; if (evDone) Global::AddToQuery(evDone, NULL); // wykonanie eventu informującego o - // zakończeniu + // zakończeniu } } if (fAngleSpeed != 0.0) @@ -364,7 +364,7 @@ void TAnimContainer::UpdateModelIK() { case at_IK11: // stopa: ustawić w kierunku czubka (pierwszy potomny) d = ch->Translation1Get(); // wektor względem aktualnego układu (nie uwzględnia - // obrotu) + // obrotu) k = float3(RadToDeg(atan2(d.z, hypot(d.x, d.y))), 0.0, -RadToDeg(atan2(d.y, d.x))); // proste skierowanie na punkt pSubModel->SetRotateIK1(k); @@ -378,7 +378,7 @@ void TAnimContainer::UpdateModelIK() // potem wyliczyć ewentualne odchylenie w tej i następnej // w sumie to proste, jak wyznaczenie kątów w trójkącie o znanej długości boków... d = ch->Translation2Get(); // wektor względem aktualnego układu (nie uwzględnia - // obrotu) + // obrotu) // if () { // kość IK jest dalej niż pozycja spoczynkowa k = float3(RadToDeg(atan2(d.z, hypot(d.x, d.y))), 0.0, @@ -456,7 +456,7 @@ bool TAnimModel::Init(AnsiString asName, AnsiString asReplacableTexture) 0x31310031; // tekstura z kanałem alfa - nie renderować w cyklu nieprzezroczystych else iTexAlpha = 0x30300030; // tekstura nieprzezroczysta - nie renderować w cyklu - // przezroczystych + // przezroczystych return (Init(TModelsManager::GetModel(asName.c_str()))); } @@ -684,10 +684,12 @@ void TAnimModel::RenderAlphaVBO(vector3 *vPosition) //--------------------------------------------------------------------------- bool TAnimModel::TerrainLoaded() { // zliczanie kwadratów kilometrowych (główna linia po Next) do tworznia tablicy - return (this ? pModel != NULL : false); }; + return (this ? pModel != NULL : false); +}; int TAnimModel::TerrainCount() { // zliczanie kwadratów kilometrowych (główna linia po Next) do tworznia tablicy - return pModel ? pModel->TerrainCount() : 0; }; + return pModel ? pModel->TerrainCount() : 0; +}; TSubModel *__fastcall TAnimModel::TerrainSquare(int n) { // pobieranie wskaźników do pierwszego submodelu return pModel ? pModel->TerrainSquare(n) : 0; @@ -721,7 +723,7 @@ void TAnimModel::Advanced() if (!strcmp(pCurrent->pMovementData->cBone, (pCurrent->pMovementData + 1)->cBone)) { // jak kolejna ramka dotyczy tego samego submodelu, ustawić animację do - // kolejnej ramki + // kolejnej ramki ++pCurrent->pMovementData; // kolejna klatka pCurrent->AnimSetVMD( pAdvanced->fFrequency / @@ -773,7 +775,7 @@ void TAnimModel::AnimationVND(void *pData, double a, double b, double c, double { pSub->pMovementData = pAdvanced->pMovementData + i; // gotów do animowania pSub->AnimSetVMD(0.0); // usuawienie pozycji początkowej (powinna być zerowa, - // inaczej będzie skok) + // inaczej będzie skok) } name = AnsiString(pAdvanced->pMovementData[i].cBone); // nowa nazwa do pomijania } diff --git a/AnimModel.h b/AnimModel.h index 8f539e9f..adfe2c46 100644 --- a/AnimModel.h +++ b/AnimModel.h @@ -72,7 +72,7 @@ class TAnimContainer public: TAnimContainer *pNext; TAnimContainer *acAnimNext; // lista animacji z eventem, które muszą być przeliczane również bez - // wyświetlania + // wyświetlania TAnimContainer(); ~TAnimContainer(); bool Init(TSubModel *pNewSubModel); @@ -80,7 +80,10 @@ class TAnimContainer // std::string(pSubModel?pSubModel->asName.c_str():""); }; // std::string inline GetName() { return std::string(pSubModel?pSubModel->pName:""); // }; - char *__fastcall NameGet() { return (pSubModel ? pSubModel->pName : NULL); }; + char *__fastcall NameGet() + { + return (pSubModel ? pSubModel->pName : NULL); + }; // void SetRotateAnim(vector3 vNewRotateAxis, double fNewDesiredAngle, double // fNewRotateSpeed, bool bResetAngle=false); void SetRotateAnim(vector3 vNewRotateAngles, double fNewRotateSpeed); @@ -90,7 +93,10 @@ class TAnimContainer void UpdateModel(); void UpdateModelIK(); bool InMovement(); // czy w trakcie animacji? - double _fastcall AngleGet() { return vRotateAngles.z; }; // jednak ostatnia, T3D ma inny układ + double _fastcall AngleGet() + { + return vRotateAngles.z; + }; // jednak ostatnia, T3D ma inny układ vector3 _fastcall TransGet() { return vector3(-vTranslation.x, vTranslation.z, vTranslation.y); @@ -101,7 +107,10 @@ class TAnimContainer pSubModel->WillBeAnimated(); }; void EventAssign(TEvent *ev); - TEvent *__fastcall Event() { return evDone; }; + TEvent *__fastcall Event() + { + return evDone; + }; }; class TAnimAdvanced @@ -141,7 +150,7 @@ class TAnimModel public: GLuint ReplacableSkinId[5]; // McZapkie-020802: zmienialne skory static TAnimContainer *acAnimList; // lista animacji z eventem, które muszą być przeliczane - // również bez wyświetlania + // również bez wyświetlania TAnimModel(); ~TAnimModel(); bool Init(TModel3d *pNewModel); diff --git a/Button.h b/Button.h index cc54588d..013e0d61 100644 --- a/Button.h +++ b/Button.h @@ -25,7 +25,10 @@ class TButton TButton(); ~TButton(); void Clear(int i = -1); - inline void FeedbackBitSet(int i) { iFeedbackBit = 1 << i; }; + inline void FeedbackBitSet(int i) + { + iFeedbackBit = 1 << i; + }; inline void Turn(bool to) { bOn = to; @@ -46,7 +49,10 @@ class TButton bOn = !bOn; Update(); }; - inline bool Active() { return (pModelOn) || (pModelOff); }; + inline bool Active() + { + return (pModelOn) || (pModelOff); + }; void Init(AnsiString asName, TModel3d *pModel, bool bNewOn = false); void Load(TQueryParserComp *Parser, TModel3d *pModel1, TModel3d *pModel2 = NULL); }; diff --git a/Camera.cpp b/Camera.cpp index 596c2f82..c7e5daa1 100644 --- a/Camera.cpp +++ b/Camera.cpp @@ -157,7 +157,7 @@ vector3 TCamera::GetDirection() bool TCamera::SetMatrix() { glRotated(-Roll * 180.0f / M_PI, 0, 0, 1); // po wyłączeniu tego kręci się pojazd, a sceneria - // nie + // nie glRotated(-Pitch * 180.0f / M_PI, 1, 0, 0); glRotated(-Yaw * 180.0f / M_PI, 0, 1, 0); // w zewnętrznym widoku: kierunek patrzenia diff --git a/Camera.h b/Camera.h index c74c7ac8..cc666323 100644 --- a/Camera.h +++ b/Camera.h @@ -38,7 +38,10 @@ class TCamera vector3 CrossPos; double CrossDist; void Init(vector3 NPos, vector3 NAngle); - void Reset() { Pitch = Yaw = Roll = 0; }; + void Reset() + { + Pitch = Yaw = Roll = 0; + }; void OnCursorMove(double x, double y); void Update(); vector3 GetDirection(); diff --git a/Console.cpp b/Console.cpp index d2dc8fa2..f5d99f99 100644 --- a/Console.cpp +++ b/Console.cpp @@ -274,7 +274,10 @@ void Console::BitsUpdate(int mask) } }; -bool Console::Pressed(int x) { return Global::bActive && (GetKeyState(x) < 0); }; // na razie tak - czyta się tylko klawiatura +bool Console::Pressed(int x) +{ + return Global::bActive && (GetKeyState(x) < 0); +}; // na razie tak - czyta się tylko klawiatura void Console::ValueSet(int x, double y) { // ustawienie wartości (y) na kanale analogowym (x) @@ -353,5 +356,11 @@ void Console::OnKeyUp(int k) else iButton[char(k) >> 5] &= ~(1 << (k & 31)); // wyłącz monostabilny podstawowy }; -int Console::KeyDownConvert(int k) { return int(ktTable[k & 0x3FF].iDown); }; -int Console::KeyUpConvert(int k) { return int(ktTable[k & 0x3FF].iUp); }; +int Console::KeyDownConvert(int k) +{ + return int(ktTable[k & 0x3FF].iDown); +}; +int Console::KeyUpConvert(int k) +{ + return int(ktTable[k & 0x3FF].iUp); +}; diff --git a/Console/LPT.cpp b/Console/LPT.cpp index 95f59f8e..5098af4e 100644 --- a/Console/LPT.cpp +++ b/Console/LPT.cpp @@ -48,4 +48,7 @@ bool TLPT::Connect(int port) return bool(OutPort); }; -void TLPT::Out(int x) { OutPort(address, x); }; // wysłanie bajtu do portu +void TLPT::Out(int x) +{ + OutPort(address, x); +}; // wysłanie bajtu do portu diff --git a/Console/PoKeys55.cpp b/Console/PoKeys55.cpp index 70c8214f..d816a7ee 100644 --- a/Console/PoKeys55.cpp +++ b/Console/PoKeys55.cpp @@ -39,7 +39,10 @@ TPoKeys55::TPoKeys55() bNoError = true; }; //--------------------------------------------------------------------------- -TPoKeys55::~TPoKeys55() { Close(); }; +TPoKeys55::~TPoKeys55() +{ + Close(); +}; //--------------------------------------------------------------------------- bool TPoKeys55::Close() { // rozłączenie komunikacji @@ -86,7 +89,7 @@ bool TPoKeys55::Connect() { ErrorStatus = GetLastError(); if (ERROR_NO_MORE_ITEMS == ErrorStatus) // Did we reach the end of the list of matching - // devices in the DeviceInfoTable? + // devices in the DeviceInfoTable? { // Cound not find the device. Must not have been attached. SetupDiDestroyDeviceInfoList( DeviceInfoTable); // Clean up the old structure we no longer need. @@ -138,7 +141,7 @@ bool TPoKeys55::Connect() // free(PropertyValueBuffer); //No longer need the PropertyValueBuffer,free the memory to // prevent potential memory leaks delete PropertyValueBuffer; // No longer need the PropertyValueBuffer,free the memory to - // prevent potential memory leaks + // prevent potential memory leaks // Convert both strings to lower case. This makes the code more robust/portable accross OS // Versions DeviceIDFromRegistry = DeviceIDFromRegistry.LowerCase(); @@ -202,12 +205,11 @@ bool TPoKeys55::Connect() return false; } //--------------------------------------------------------------------------- -bool TPoKeys55::Write(unsigned char c, unsigned char b3, unsigned char b4, - unsigned char b5) +bool TPoKeys55::Write(unsigned char c, unsigned char b3, unsigned char b4, unsigned char b5) { DWORD BytesWritten = 0; OutputBuffer[0] = 0; // The first byte is the "Report ID" and does not get transmitted over the - // USB bus. Always set=0. + // USB bus. Always set=0. OutputBuffer[1] = 0xBB; // 0xBB - bajt rozpoznawczy dla PoKeys55 OutputBuffer[2] = iLastCommand = c; // operacja: 0x31: blokowy odczyt wejść OutputBuffer[3] = b3; // np. numer pinu (o 1 mniej niż numer na płytce) @@ -233,7 +235,7 @@ bool TPoKeys55::Read() { DWORD BytesRead = 0; InputBuffer[0] = 0; // The first byte is the "Report ID" and does not get transmitted over the - // USB bus. Always set=0. + // USB bus. Always set=0. // Now get the response packet from the firmware. // The following call to ReadFIle() retrieves 64 bytes of data from the USB device. ReadFile(ReadHandle, &InputBuffer, 65, &BytesRead, @@ -361,7 +363,7 @@ bool TPoKeys55::Update(bool pause) if (!iRepeats) bNoError = true; // jest OK else if (iRepeats >= 10) // youBy 2014-07: przy 5 powtórzeniach sieje mi pauzą po 2 razy na - // sekundę, a przy 10 jest ok + // sekundę, a przy 10 jest ok { // przekroczenie liczby prób wymusza kolejną fazę ++iFaza; iRepeats = 1; // w nowej fazie nowe szanse, ale nie od 0! diff --git a/Console/PoKeys55.h b/Console/PoKeys55.h index 905e425c..9815dead 100644 --- a/Console/PoKeys55.h +++ b/Console/PoKeys55.h @@ -28,8 +28,7 @@ class TPoKeys55 ~TPoKeys55(); bool Connect(); bool Close(); - bool Write(unsigned char c, unsigned char b3, unsigned char b4 = 0, - unsigned char b5 = 0); + bool Write(unsigned char c, unsigned char b3, unsigned char b4 = 0, unsigned char b5 = 0); bool Read(); bool ReadLoop(int i); AnsiString Version(); diff --git a/Data.h b/Data.h index 969d41fa..2d002e7c 100644 --- a/Data.h +++ b/Data.h @@ -17,7 +17,8 @@ struct TDist { int x, y; }; -const TDist SectorOrder[] = { // tabela współrzędnych sektorów, posortowana wg odległości +const TDist SectorOrder[] = { + // tabela współrzędnych sektorów, posortowana wg odległości {0, 0}, // 0.00 {1, 0}, // 1.00 {0, 1}, // 1.00 diff --git a/Driver.cpp b/Driver.cpp index ee9a6275..1d640c9f 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -87,7 +87,8 @@ const double HardAcceleration = 0.9; const double PrepareTime = 2.0; //[s] przebłyski świadomości przy odpalaniu bool WriteLogFlag = false; -AnsiString StopReasonTable[] = { // przyczyny zatrzymania ruchu AI +AnsiString StopReasonTable[] = { + // przyczyny zatrzymania ruchu AI "", // stopNone, //nie ma powodu - powinien jechać "Off", // stopSleep, //nie został odpalony, to nie pojedzie "Semaphore", // stopSem, //semafor zamknięty @@ -153,7 +154,7 @@ void TSpeedPos::CommandCheck() } else if (command == cm_OutsideStation) { // w trybie manewrowym: skanować od niej wstecz i stanąć po wyjechaniu za sygnalizator i - // zmienić kierunek + // zmienić kierunek // w trybie pociągowym: można przyspieszyć do wskazanej prędkości (po zjechaniu z rozjazdów) fVelNext = -1; iFlags |= 0x2100; // W5 @@ -185,7 +186,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len) else { iFlags ^= 32; // 32-minięty - będziemy liczyć odległość względem przeciwnego końca - // toru (nadal może być z przodu i ogdaniczać) + // toru (nadal może być z przodu i ogdaniczać) if ((iFlags & 0x43) == 3) // tylko jeśli (istotny) tor, bo eventy są punktowe if (trTrack) // może być NULL, jeśli koniec toru (????) vPos = @@ -195,14 +196,14 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len) } } else if (fDist < 50.0) // przy dużym kącie łuku iloczyn skalarny bardziej zaniży odległość - // niż cięciwa + // niż cięciwa fDist = iska; // ale przy małych odległościach rzut na chwilową prostą ruchu da - // dokładniejsze wartości + // dokładniejsze wartości } if (fDist > 0.0) // nie może być 0.0, a przypadkiem mogło by się trafić i było by źle if ((iFlags & 32) == 0) // 32 ustawione, gdy obiekt już został minięty { // jeśli obiekt nie został minięty, można od niego zliczać narastająco (inaczej może być - // problem z wektorem kierunku) + // problem z wektorem kierunku) len = fDist = len + fDist; // zliczanie dlugości narastająco *p = vPos; // nowy punkt odniesienia *dir = Normalize(v); // nowy wektor kierunku od poprzedniego obiektu do aktualnego @@ -212,14 +213,14 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len) if (trTrack) // może być NULL, jeśli koniec toru (???) { fVelNext = trTrack->VelocityGet(); // aktualizacja prędkości (może być zmieniana - // eventem) + // eventem) int i; if ((i = iFlags & 0xF0000000) != 0) { // jeśli skrzyżowanie, ograniczyć prędkość przy skręcaniu if (abs(i) > 0x10000000) //±1 to jazda na wprost, ±2 nieby też, ale z przecięciem - //głównej drogi - chyba że jest równorzędne... + // głównej drogi - chyba że jest równorzędne... fVelNext = 30.0; // uzależnić prędkość od promienia; albo niech będzie - // ograniczona w skrzyżowaniu (velocity z ujemną wartością) + // ograniczona w skrzyżowaniu (velocity z ujemną wartością) if ((iFlags & 32) == 0) // jeśli nie wjechał if (trTrack->iNumDynamics > 0) // a skrzyżowanie zawiera pojazd fVelNext = @@ -249,7 +250,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len) } else if (iFlags & 0x100) // jeśli event { // odczyt komórki pamięci najlepiej by było zrobić jako notyfikację, czyli zmiana komórki - // wywoła jakąś podaną funkcję + // wywoła jakąś podaną funkcję CommandCheck(); // sprawdzenie typu komendy w evencie i określenie prędkości } return false; @@ -351,7 +352,7 @@ bool TController::TableNotFound(TEvent *e) void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) { // skanowanie trajektorii na odległość (fDistance) od (pVehicle) w kierunku przodu składu i - // uzupełnianie tabelki + // uzupełnianie tabelki if (!iDirection) // kierunek pojazdu z napędem { // jeśli kierunek jazdy nie jest okreslony iTableDirection = 0; // czekamy na ustawienie kierunku @@ -385,8 +386,8 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) if ((iLast + 1) % iSpeedTableSize == iFirst) // jeśli nadal jest zapełniona return; // nic się nie da zrobić if ((iLast + 2) % iSpeedTableSize == iFirst) // musi być jeszcze miejsce wolne na - // ewentualny event, bo tor jeszcze nie - // sprawdzony + // ewentualny event, bo tor jeszcze nie + // sprawdzony return; // już lepiej, ale jeszcze nie tym razem sSpeedTable[iLast].iFlags &= 0xBE; // kontynuować próby doskanowania } @@ -401,8 +402,8 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) fCurrentDistance = sSpeedTable[iLast].fDist; // aktualna odległość do jego Point1 fTrackLength = sSpeedTable[iLast].iFlags & 0x60 ? 0.0 : pTrack->Length(); // nie doliczać długości gdy: - // 32-minięty początek, - // 64-jazda do końca toru + // 32-minięty początek, + // 64-jazda do końca toru } if (fCurrentDistance < fDistance) { // jeśli w ogóle jest po co analizować @@ -414,17 +415,17 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) if ((pEvent = CheckTrackEvent(fLastDir, pTrack)) != NULL) // jeśli jest semafor na tym torze { // trzeba sprawdzić tabelkę, bo dodawanie drugi raz tego samego przystanku nie - // jest korzystne + // jest korzystne if (TableNotFound(pEvent)) // jeśli nie ma if (TableAddNew()) { if (sSpeedTable[iLast].Set(pEvent, fCurrentDistance)) // dodanie odczytu sygnału fDistance = fCurrentDistance; // jeśli sygnał stop, to nie ma - // potrzeby dalej skanować + // potrzeby dalej skanować } } // event dodajemy najpierw, żeby móc sprawdzić, czy tor został dodany po - // odczytaniu prędkości następnego + // odczytaniu prędkości następnego if ((pTrack->VelocityGet() == 0.0) // zatrzymanie || (pTrack->iAction) // jeśli tor ma własności istotne dla skanowania || (pTrack->VelocityGet() != fLastVel)) // następuje zmiana prędkości @@ -437,7 +438,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) 5 : 1); // dodanie odcinka do tabelki z flagą kierunku wejścia if (pTrack->eType == tt_Cross) // na skrzyżowaniach trzeba wybrać segment, - // po którym pojedzie pojazd + // po którym pojedzie pojazd { // dopiero tutaj jest ustalany kierunek segmentu na skrzyżowaniu sSpeedTable[iLast].iFlags |= (pTrack->CrossSegment((fLastDir < 0) ? tLast->iPrevDirection : @@ -453,7 +454,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) if (int(fLastDir) * sSpeedTable[iLast].iFlags < 0) fLastDir = -fLastDir; if (AIControllFlag) // dla AI na razie losujemy kierunek na kolejnym - // skrzyżowaniu + // skrzyżowaniu iRouteWanted = 1 + random(3); } } @@ -499,7 +500,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) if (pTrack->VelocityGet() < 0 ? tLast->VelocityGet() > 0 : pTrack->VelocityGet() > tLast->VelocityGet()) { // jeśli kolejny ma większą prędkość niż poprzedni, to zapamiętać poprzedni - // (do czasu wyjechania) + // (do czasu wyjechania) if ((sSpeedTable[iLast].iFlags & 3) == 3 ? (sSpeedTable[iLast].trTrack != tLast) : true) // jeśli nie był dodany do tabelki @@ -515,7 +516,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) true : ((iLast + 2) % iSpeedTableSize == iFirst)) // czy tabelka się nie zatka? { // jest ryzyko nieznalezienia ograniczenia - ograniczyć prędkość do pozwalającej - // na zatrzymanie na końcu przeskanowanej drogi + // na zatrzymanie na końcu przeskanowanej drogi TablePurger(); // usunąć pilnie zbędne pozycje if (((iLast + 3) % iSpeedTableSize == iFirst) ? true : @@ -532,7 +533,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) } } fTrackLength = pTrack->Length(); // zwiększenie skanowanej odległości tylko jeśli - // istnieje dalszy tor + // istnieje dalszy tor } else { // definitywny koniec skanowania, chyba że dalej puszczamy samochód po gruncie... @@ -541,7 +542,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle) tLast, fCurrentDistance, fLastDir < 0 ? 0x45 : 0x41); // zapisanie ostatniego sprawdzonego toru return; // to ostatnia pozycja, bo NULL nic nie da, a może się podpiąć obrotnica, - // czy jakieś transportery + // czy jakieś transportery } } if (TableAddNew()) @@ -569,7 +570,7 @@ void TController::TableCheck(double fDistance) if (sSpeedTable[i].Update(&pos, &dir, len)) { iLast = i; // wykryta zmiana zwrotnicy - konieczne ponowne przeskanowanie - // dalszej części + // dalszej części break; // nie kontynuujemy pętli, trzeba doskanować ciąg dalszy } if (sSpeedTable[i].iFlags & 2) // jeśli odcinek @@ -592,10 +593,10 @@ void TController::TableCheck(double fDistance) if ((mvOccupied->CategoryFlag & 1) ? false : sSpeedTable[i].fDist < -fLength) { // pociąg staje zawsze, a samochód tylko jeśli nie przejedzie całą - // długością (może być zaskoczony zmianą) + // długością (może być zaskoczony zmianą) sSpeedTable[i].iFlags &= ~1; // degradacja pozycji dla samochodu; - // semafory usuwane tylko przy sprawdzaniu, - // bo wysyłają komendy + // semafory usuwane tylko przy sprawdzaniu, + // bo wysyłają komendy } } // if (sSpeedTable[i].fDist<-20.0*fLength) //jeśli to coś jest 20 razy dalej niż @@ -624,8 +625,7 @@ void TController::TableCheck(double fDistance) } }; -TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fNext, - double &fAcc) +TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fNext, double &fAcc) { // ustalenie parametrów, zwraca typ komendy, jeśli sygnał podaje prędkość do jazdy // fVelDes - prędkość zadana // fDist - dystans w jakim należy rozważyć ruch @@ -663,7 +663,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN if (sSpeedTable[i].fDist < 200.0) // przy 160km/h jedzie 44m/s, to da dokładność rzędu 5 sekund { // zaliczamy posterunek w pewnej odległości przed (choć W4 nie zasłania - // już semafora) +// już semafora) #if LOGSTOPS WriteLog(pVehicle->asName + " as " + TrainParams->TrainName + ": at " + AnsiString(GlobalTime->hh) + ":" + AnsiString(GlobalTime->mm) + @@ -671,8 +671,8 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN #endif fLastStopExpDist = mvOccupied->DistCounter + 0.250 + 0.001 * fLength; // przy jakim dystansie (stanie - // licznika) ma przesunąć na - // następny postój + // licznika) ma przesunąć na + // następny postój TrainParams->UpdateMTable( GlobalTime->hh, GlobalTime->mm, asNextStop.SubString(20, asNextStop.Length())); @@ -691,7 +691,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN if (!eSignNext) eSignNext = sSpeedTable[i].evEvent; if (mvOccupied->Vel > 0.3) // jeśli jedzie (nie trzeba czekać, aż się - // drgania wytłumią - drzwi zamykane od 1.0) + // drgania wytłumią - drzwi zamykane od 1.0) sSpeedTable[i].fVelNext = 0; // to będzie zatrzymanie // else if // ((iDrivigFlags&moveStopCloser)?sSpeedTable[i].fDist<=fMaxProximityDist*(AIControllFlag?1.0:10.0):true) @@ -707,15 +707,15 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN { // jeśli się zatrzymał przy W4, albo stał w momencie zobaczenia W4 if (!AIControllFlag) // AI tylko sobie otwiera drzwi iDrivigFlags &= ~moveStopCloser; // w razie przełączenia na AI ma - // nie podciągać do W4, gdy - // użytkownik zatrzymał za daleko + // nie podciągać do W4, gdy + // użytkownik zatrzymał za daleko if ((iDrivigFlags & moveDoorOpened) == 0) { // drzwi otwierać jednorazowo iDrivigFlags |= moveDoorOpened; // nie wykonywać drugi raz if (mvOccupied->DoorOpenCtrl == 1) //(mvOccupied->TrainType==dt_EZT) { // otwieranie drzwi w EZT if (AIControllFlag) // tylko AI otwiera drzwi EZT, użytkownik - // musi samodzielnie + // musi samodzielnie if (!mvOccupied->DoorLeftOpened && !mvOccupied->DoorRightOpened) { // otwieranie drzwi @@ -723,9 +723,9 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN int(floor(sSpeedTable[i].evEvent->ValueGet(2))) % 10; // p7=platform side (1:left, 2:right, 3:both) int lewe = (iDirection > 0) ? 1 : 2; // jeśli jedzie do - // tyłu, to drzwi - // otwiera - // odwrotnie + // tyłu, to drzwi + // otwiera + // odwrotnie int prawe = (iDirection > 0) ? 2 : 1; if (p2 & lewe) mvOccupied->DoorLeft(true); @@ -738,31 +738,31 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN } else { // otwieranie drzwi w składach wagonowych - docelowo wysyłać - // komendę zezwolenia na otwarcie drzwi + // komendę zezwolenia na otwarcie drzwi int p7, lewe, prawe; // p7=platform side (1:left, 2:right, 3:both) p7 = int(floor(sSpeedTable[i].evEvent->ValueGet(2))) % 10; // tu będzie jeszcze długość peronu zaokrąglona do 10m - // (20m bezpieczniej, bo nie modyfikuje bitu 1) + // (20m bezpieczniej, bo nie modyfikuje bitu 1) TDynamicObject *p = pVehicles[0]; // pojazd na czole składu while (p) { // otwieranie drzwi w pojazdach - flaga zezwolenia była by - // lepsza + // lepsza lewe = (p->DirectionGet() > 0) ? 1 : 2; // jeśli jedzie do - // tyłu, to drzwi - // otwiera odwrotnie + // tyłu, to drzwi + // otwiera odwrotnie prawe = 3 - lewe; p->MoverParameters->BatterySwitch(true); // wagony muszą - // mieć baterię - // załączoną do - // otwarcia - // drzwi... + // mieć baterię + // załączoną do + // otwarcia + // drzwi... if (p7 & lewe) p->MoverParameters->DoorLeft(true); if (p7 & prawe) p->MoverParameters->DoorRight(true); p = p->Next(); // pojazd podłączony z tyłu (patrząc od - // czoła) + // czoła) } // if (p7&3) //żeby jeszcze poczekał chwilę, zanim zamknie // WaitingSet(10); //10 sekund (wziąć z rozkładu????) @@ -770,8 +770,8 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN if (fStopTime > -5) // na końcu rozkładu się ustawia 60s i tu by było skrócenie WaitingSet(10); // 10 sekund (wziąć z rozkładu????) - czekanie - // niezależne od sposobu obsługi drzwi, bo - // opóźnia również kierownika + // niezależne od sposobu obsługi drzwi, bo + // opóźnia również kierownika } if (TrainParams->UpdateMTable( GlobalTime->hh, GlobalTime->mm, @@ -782,10 +782,10 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN else iDrivigFlags &= ~moveLate; // przyjazd o czasie if (TrainParams->DirectionChange()) // jeśli "@" w rozkładzie, to - // wykonanie dalszych komend + // wykonanie dalszych komend { // wykonanie kolejnej komendy, nie dotyczy ostatniej stacji if (iDrivigFlags & movePushPull) // SN61 ma się też nie ruszać, - // chyba że ma wagony + // chyba że ma wagony { iDrivigFlags |= moveStopHere; // EZT ma stać przy peronie if (OrderNextGet() != Change_direction) @@ -800,15 +800,15 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN else // a dla lokomotyw... iDrivigFlags &= ~(moveStopPoint | moveStopHere); // pozwolenie na - // przejechanie za W4 - // przed czasem i nie - // ma stać + // przejechanie za W4 + // przed czasem i nie + // ma stać JumpToNextOrder(); // przejście do kolejnego rozkazu (zmiana - // kierunku, odczepianie) + // kierunku, odczepianie) iDrivigFlags &= ~moveStopCloser; // ma nie podjeżdżać pod W4 po - // przeciwnej stronie + // przeciwnej stronie sSpeedTable[i].iFlags = 0; // ten W4 nie liczy się już zupełnie - // (nie wyśle SetVelocity) + // (nie wyśle SetVelocity) sSpeedTable[i].fVelNext = -1; // jechać continue; // nie analizować prędkości } @@ -829,7 +829,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN fLastStopExpDist = mvOccupied->DistCounter + 0.050 + 0.001 * fLength; // przy jakim dystansie (stanie licznika) - // ma przesunąć na następny postój + // ma przesunąć na następny postój // Controlled-> //zapisać odległość do przejechania TrainParams->StationIndexInc(); // przejście do następnej asNextStop = @@ -844,16 +844,16 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN #endif if (int(floor(sSpeedTable[i].evEvent->ValueGet(1))) & 1) iDrivigFlags |= moveStopHere; // nie podjeżdżać do semafora, - // jeśli droga nie jest wolna + // jeśli droga nie jest wolna iDrivigFlags |= moveStopCloser; // do następnego W4 podjechać - // blisko (z dociąganiem) + // blisko (z dociąganiem) iDrivigFlags &= ~moveStartHorn; // bez trąbienia przed odjazdem sSpeedTable[i].iFlags = 0; // nie liczy się już zupełnie (nie wyśle SetVelocity) sSpeedTable[i].fVelNext = -1; // można jechać za W4 if (go == cm_Unknown) // jeśli nie było komendy wcześniej go = cm_Ready; // gotów do odjazdu z W4 (semafor może - // zatrzymać) + // zatrzymać) if (tsGuardSignal) // jeśli mamy głos kierownika, to odegrać iDrivigFlags |= moveGuardSignal; continue; // nie analizować prędkości @@ -880,10 +880,10 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN fLastStopExpDist = -1.0f; // nie ma rozkładu, nie ma usuwania stacji WaitingSet(60); // tak ze 2 minuty, aż wszyscy wysiądą JumpToNextOrder(); // wykonanie kolejnego rozkazu (Change_direction - // albo Shunt) + // albo Shunt) iDrivigFlags |= moveStopHere | moveStartHorn; // ma się nie ruszać - // aż do momentu - // podania sygnału + // aż do momentu + // podania sygnału continue; // nie analizować prędkości } // koniec obsługi ostatniej stacji } // if (MoverParameters->Vel==0.0) @@ -907,12 +907,12 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN { // jeśli W5, to reakcja zależna od trybu jazdy if (OrderCurrentGet() & Obey_train) { // w trybie pociągowym: można przyspieszyć do wskazanej prędkości (po - // zjechaniu z rozjazdów) + // zjechaniu z rozjazdów) v = -1.0; // ignorować? if (sSpeedTable[i].fDist < 0.0) // jeśli wskaźnik został minięty { VelSignal = v; //!!! ustawienie, gdy przejechany jest lepsze niż wcale, - //ale to jeszcze nie to + // ale to jeszcze nie to // iStationStart=TrainParams->StationIndex; //zaktualizować // wyświetlanie rozkładu } @@ -921,12 +921,12 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN } else { // w trybie manewrowym: skanować od niego wstecz, stanąć po wyjechaniu za - // sygnalizator i zmienić kierunek + // sygnalizator i zmienić kierunek v = 0.0; // zmiana kierunku może być podanym sygnałem, ale wypadało by - // zmienić światło wcześniej + // zmienić światło wcześniej if (!(iDrivigFlags & moveSwitchFound)) // jeśli nie ma rozjazdu iDrivigFlags |= moveTrackEnd; // to dalsza jazda trwale ograniczona (W5, - // koniec toru) + // koniec toru) } } else if (sSpeedTable[i].iFlags & 0x800) @@ -937,8 +937,8 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN eSignSkip = sSpeedTable[i] .evEvent; // to można go pominąć (wziąć drugą prędkosć) iDrivigFlags |= moveVisibility; // jazda na widoczność - skanować - // możliwość kolizji i nie podjeżdżać - // zbyt blisko + // możliwość kolizji i nie podjeżdżać + // zbyt blisko // usunąć flagę po podjechaniu blisko semafora zezwalającego na jazdę // ostrożnie interpretować sygnały - semafor może zezwalać na jazdę // pociągu z przodu! @@ -953,22 +953,22 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN else { // zawalidrogi nie ma (albo pojazd jest samochodem), sprawdzić sygnał if (sSpeedTable[i].iFlags & 0x200) // jeśli Tm - w zasadzie to sprawdzić - // komendę! + // komendę! { // jeśli podana prędkość manewrowa if ((OrderCurrentGet() & Obey_train) ? v == 0.0 : false) { // jeśli tryb pociągowy a tarcze ma ShuntVelocity 0 0 v = -1; // ignorować, chyba że prędkość stanie się niezerowa if (sSpeedTable[i].iFlags & 0x20) // a jak przejechana sSpeedTable[i].iFlags = 0; // to można usunąć, bo podstawowy automat - // usuwa tylko niezerowe + // usuwa tylko niezerowe } else if (go <= cm_Ready) // jeśli jeszcze nie ma komendy if (v != 0.0) // komenda jest tylko gdy ma jechać, bo stoi na podstawie - // tabelki + // tabelki { // jeśli nie było komendy wcześniej - pierwsza się liczy - ustawianie - // VelSignal + // VelSignal go = cm_ShuntVelocity; // w trybie pociągowym tylko jeśli włącza - // tryb manewrowy (v!=0.0) + // tryb manewrowy (v!=0.0) // Ra 2014-06: (VelSignal) nie może być tu ustawiane, bo Tm może być // daleko // VelSignal=v; //nie do końca tak, to jest druga prędkość @@ -977,16 +977,16 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN if (sSpeedTable[i].fDist < 0.0) // jeśli przejechany { VelSignal = v; //!!! ustawienie, gdy przejechany jest lepsze niż - //wcale, ale to jeszcze nie to + // wcale, ale to jeszcze nie to sSpeedTable[i].iFlags = 0; // to można usunąć (nie mogą być usuwane w skanowaniu) } } } else // if (sSpeedTable[i].iFlags&0x100) //jeśli semafor !!! Komendę trzeba - // sprawdzić !!!! + // sprawdzić !!!! if (go <= cm_Ready) // jeśli nie było komendy wcześniej - pierwsza się liczy - // - ustawianie VelSignal + // - ustawianie VelSignal if (v < 0.0 ? true : v >= 1.0) // bo wartość 0.1 służy do hamowania tylko { go = cm_SetVelocity; // może odjechać @@ -999,17 +999,17 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN if (sSpeedTable[i].fDist < 0.0) // jeśli przejechany { VelSignal = v; //!!! ustawienie, gdy przejechany jest lepsze niż - //wcale, ale to jeszcze nie to + // wcale, ale to jeszcze nie to if (sSpeedTable[i].iFlags & 0x100) // jeśli semafor if ((sSpeedTable[i].evEvent != eSignSkip) ? true : (sSpeedTable[i].fVelNext != 0.0)) // ale inny niż ten, - // na którym minięto - // S1, chyba że się - // już zmieniło + // na którym minięto + // S1, chyba że się + // już zmieniło iDrivigFlags &= ~moveVisibility; // sygnał zezwalający na - // jazdę wyłącza jazdę na - // widoczność (S1 na SBL) + // jazdę wyłącza jazdę na + // widoczność (S1 na SBL) sSpeedTable[i].iFlags = 0; // to można usunąć (nie mogą być usuwane w skanowaniu) } @@ -1021,9 +1021,9 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN moveStopHere) // jeśli ma stać, dostaje komendę od razu go = cm_Command; // komenda z komórki, do wykonania po zatrzymaniu else if (sSpeedTable[i].fDist <= 20.0) // jeśli ma dociągnąć, to niech - // dociąga (moveStopCloser - // dotyczy dociągania do W4, nie - // semafora) + // dociąga (moveStopCloser + // dotyczy dociągania do W4, nie + // semafora) go = cm_Command; // komenda z komórki, do wykonania po zatrzymaniu } } // jeśli nie ma zawalidrogi @@ -1039,8 +1039,8 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN ((sSpeedTable[i].iFlags & 0x501) == 0x501) && (d > fMaxProximityDist) : false) a = (iDrivigFlags & moveStopCloser) ? fAcc : 0.0; // ma podjechać bliżej - - // czy na pewno w tym - // miejscu taki warunek? + // czy na pewno w tym + // miejscu taki warunek? else { a = (v * v - mvOccupied->Vel * mvOccupied->Vel) / @@ -1063,11 +1063,11 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN continue; // i tyle wystarczy } else // event trzyma tylko jeśli VelNext=0, nawet po przejechaniu (nie powinno - // dotyczyć samochodów?) + // dotyczyć samochodów?) a = (v == 0.0 ? -1.0 : fAcc); // ruszanie albo hamowanie if (a < fAcc) { // mniejsze przyspieszenie to mniejsza możliwość rozpędzenia się albo konieczność - // hamowania + // hamowania // jeśli droga wolna, to może być a>1.0 i się tu nie załapuje // if (mvOccupied->Vel>10.0) fAcc = a; // zalecane przyspieszenie (nie musi być uwzględniane przez AI) @@ -1078,7 +1078,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN { // jeśli nie ma wskazań do hamowania, można podać drogę i prędkość na jej końcu fNext = v; // istotna jest prędkość na końcu tego odcinka fDist = d; // dlugość odcinka (kolejne pozycje mogą wydłużać drogę, jeśli - // prędkość jest stała) + // prędkość jest stała) } } // if (v>=0.0) if (fNext >= 0.0) @@ -1106,7 +1106,7 @@ void TController::TablePurger() (sSpeedTable[i].fVelNext < 0) && ((sSpeedTable[i].iFlags & 0xAB) == 0xA3) : true) { // jeśli jest to minięty (0x20) tor (0x03) do liczenia cięciw (0x80), a nie zwrotnica - // (0x08) + // (0x08) for (; k > 0; --k, i = (i + 1) % iSpeedTableSize) sSpeedTable[i] = sSpeedTable[(i + 1) % iSpeedTableSize]; // skopiowanie // WriteLog("Odtykacz usuwa pozycję"); @@ -1136,8 +1136,8 @@ void TController::TablePurger() //--------------------------------------------------------------------------- TController::TController(bool AI, TDynamicObject *NewControll, bool InitPsyche, - bool primary // czy ma aktywnie prowadzić? - ) + bool primary // czy ma aktywnie prowadzić? + ) { iEngineActive = 0; LastUpdatedTime = 0.0; @@ -1270,18 +1270,18 @@ TController::TController(bool AI, TDynamicObject *NewControll, bool InitPsyche, fLastStopExpDist = -1.0f; iRouteWanted = 3; // powiedzmy, że ma jechać prosto (1=w lewo) iCoupler = 0; // sprzęg; niezerowy gdy ma być podłączanie; samo podłączanie w trybie Connect - // (wcześniej może być np. Prepare_engine) + // (wcześniej może być np. Prepare_engine) fOverhead1 = 3000.0; // informacja o napięciu w sieci trakcyjnej (0=brak drutu, zatrzymaj!) fOverhead2 = -1.0; // informacja o sposobie jazdy (-1=normalnie, 0=bez prądu, >0=z opuszczonym i - // ograniczeniem prędkości) + // ograniczeniem prędkości) iOverheadZero = 0; // suma bitowa jezdy bezprądowej, bity ustawiane przez pojazdy z - // podniesionymi pantografami + // podniesionymi pantografami iOverheadDown = 0; // suma bitowa opuszczenia pantografów, bity ustawiane przez pojazdy z - // podniesionymi pantografami + // podniesionymi pantografami fAccDesiredAv = 0.0; // uśrednione przyspieszenie z kolejnych przebłysków świadomości, żeby - // ograniczyć migotanie + // ograniczyć migotanie fVoltage = 0.0; // uśrednione napięcie sieci: przy spadku poniżej wartości minimalnej opóźnić - // rozruch o losowy czas + // rozruch o losowy czas }; void TController::CloseLog() @@ -1359,12 +1359,12 @@ void TController::OrdersClear() void TController::Activation() { // umieszczenie obsady w odpowiednim członie, wykonywane wyłącznie gdy steruje AI iDirection = iDirectionOrder; // kierunek (względem sprzęgów pojazdu z AI) właśnie został - // ustalony (zmieniony) + // ustalony (zmieniony) if (iDirection) { // jeśli jest ustalony kierunek TDynamicObject *old = pVehicle, *d = pVehicle; // w tym siedzi AI TController *drugi; // jakby były dwa, to zamienić miejscami, a nie robić wycieku pamięci - // poprzez nadpisanie + // poprzez nadpisanie int brake = mvOccupied->LocalBrakePos; while (mvControlling->MainCtrlPos) // samo zapętlenie DecSpeed() nie wystarcza :/ DecSpeed(true); // wymuszenie zerowania nastawnika jazdy @@ -1394,13 +1394,13 @@ void TController::Activation() if (d) { drugi = d->Mechanik; // zapamiętanie tego, co ewentualnie tam siedzi, żeby w razie - // dwóch zamienić miejscami + // dwóch zamienić miejscami d->Mechanik = this; // na razie bilokacja d->MoverParameters->SetInternalCommand( "", 0, 0); // usunięcie ewentualnie zalegającej komendy (Change_direction?) if (d->DirectionGet() != pVehicle->DirectionGet()) // jeśli są przeciwne do siebie iDirection = -iDirection; // to będziemy jechać w drugą stronę względem - // zasiedzianego pojazdu + // zasiedzianego pojazdu pVehicle->Mechanik = drugi; // wsadzamy tego, co ewentualnie był (podwójna trakcja) pVehicle->MoverParameters->CabNo = 0; // wyłączanie kabin po drodze pVehicle->MoverParameters->ActiveCab = 0; // i zaznaczenie, że nie ma tam nikogo @@ -1413,7 +1413,7 @@ void TController::Activation() { // jeśli zmieniony został pojazd prowadzony Global::pWorld->CabChange(old, pVehicle); // ewentualna zmiana kabiny użytkownikowi ControllingSet(); // utworzenie połączenia do sterowanego pojazdu (może się zmienić) - - // silnikowy dla EZT + // silnikowy dla EZT } if (mvControlling->EngineType == DieselEngine) // dla 2Ls150 - przed ustawieniem kierunku - można zmienić tryb pracy @@ -1491,12 +1491,12 @@ void TController::AutoRewident() bdelay_P); break; case bdelay_G: // towarowy G - wszystko na G, jeśli nie ma to P (powinno się wyłączyć - // hamulec) + // hamulec) d->MoverParameters->BrakeDelaySwitch( TestFlag(d->MoverParameters->BrakeDelays, bdelay_G) ? bdelay_G : bdelay_P); break; case bdelay_R: // towarowy GP - lokomotywa oraz 5 pierwszych pojazdów przy niej na G, reszta - // na P + // na P if (d->MoverParameters->Power > 1) { d->MoverParameters->BrakeDelaySwitch(bdelay_G); @@ -1581,12 +1581,12 @@ bool TController::CheckVehicles(TOrders user) p->RaLightsSet(0, 0); // gasimy światła if (p->MoverParameters->EnginePowerSource.SourceType == CurrentCollector) { // jeśli pojazd posiada pantograf, to przydzielamy mu maskę, którą będzie informował o - // jeździe bezprądowej + // jeździe bezprądowej p->iOverheadMask = pantmask; pantmask << 1; // przesunięcie bitów, max. 32 pojazdy z pantografami w składzie } d = p->DirectionSet(d ? 1 : -1); // zwraca położenie następnego (1=zgodny,0=odwrócony - - // względem czoła składu) + // względem czoła składu) p->fScanDist = 300.0; // odległość skanowania w poszukiwaniu innych pojazdów p->ctOwner = this; // dominator oznacza swoje terytorium p = p->Next(); // pojazd podłączony od tyłu (licząc od czoła) @@ -1612,24 +1612,24 @@ bool TController::CheckVehicles(TOrders user) else if (OrderCurrentGet() == Disconnect) if (mvOccupied->ActiveDir > 0) // jak ma kierunek do przodu Lights(16, 0); //światła manewrowe (Tb1) tylko z przodu, aby nie pozostawić - //odczepionego ze światłem + // odczepionego ze światłem else // jak dociska Lights(0, 16); //światła manewrowe (Tb1) tylko z przodu, aby nie pozostawić - //odczepionego ze światłem + // odczepionego ze światłem } else // Ra 2014-02: lepiej tu niż w pętli obsługującej komendy, bo tam się zmieni informacja - // o składzie + // o składzie switch (user) // gdy człowiek i gdy nastąpiło połącznie albo rozłączenie { case Change_direction: while (OrderCurrentGet() & (Change_direction)) JumpToNextOrder(); // zmianę kierunku też można olać, ale zmienić kierunek - // skanowania! + // skanowania! break; case Connect: while (OrderCurrentGet() & (Change_direction)) JumpToNextOrder(); // zmianę kierunku też można olać, ale zmienić kierunek - // skanowania! + // skanowania! if (OrderCurrentGet() & (Connect)) { // jeśli miało być łączenie, zakładamy, że jest dobrze (sprawdzić?) iCoupler = 0; // koniec z doczepianiem @@ -1637,20 +1637,20 @@ bool TController::CheckVehicles(TOrders user) JumpToNextOrder(); // wykonanie następnej komendy if (OrderCurrentGet() & (Change_direction)) JumpToNextOrder(); // zmianę kierunku też można olać, ale zmienić kierunek - // skanowania! + // skanowania! } break; case Disconnect: while (OrderCurrentGet() & (Change_direction)) JumpToNextOrder(); // zmianę kierunku też można olać, ale zmienić kierunek - // skanowania! + // skanowania! if (OrderCurrentGet() & (Disconnect)) { // wypadało by sprawdzić, czy odczepiono wagony w odpowiednim miejscu - // (iVehicleCount) + // (iVehicleCount) JumpToNextOrder(); // wykonanie następnej komendy if (OrderCurrentGet() & (Change_direction)) JumpToNextOrder(); // zmianę kierunku też można olać, ale zmienić kierunek - // skanowania! + // skanowania! } } // Ra 2014-09: tymczasowo prymitywne ustawienie warunku pod kątem SN61 @@ -1685,7 +1685,7 @@ int TController::OrderDirectionChange(int newdir, TMoverParameters *Vehicle) int testd = newdir; if (Vehicle->Vel < 0.5) { // jeśli prawie stoi, można zmienić kierunek, musi być wykonane dwukrotnie, bo za pierwszym - // razem daje na zero + // razem daje na zero switch (newdir * Vehicle->CabNo) { // DirectionBackward() i DirectionForward() to zmiany względem kabiny case -1: // if (!Vehicle->DirectionBackward()) testd=0; break; @@ -1719,7 +1719,7 @@ void TController::WaitingSet(double Seconds) void TController::SetVelocity(double NewVel, double NewVelNext, TStopReason r) { // ustawienie nowej prędkości WaitingTime = -WaitingExpireTime; // przypisujemy -WaitingExpireTime, a potem porównujemy z - // zerem + // zerem MaxVelFlag = False; // Ra: to nie jest używane MinVelFlag = False; // Ra: to nie jest używane /* nie używane @@ -1745,11 +1745,11 @@ void TController::SetVelocity(double NewVel, double NewVelNext, TStopReason r) 1.0)) // jesli stoi (na razie, bo chyba powinien też, gdy hamuje przed semaforem) if (iDrivigFlags & moveStartHorn) // jezeli trąbienie włączone if (!(iDrivigFlags & (moveStartHornDone | moveConnect))) // jeśli nie zatrąbione - // i nie jest to moment - // podłączania składu + // i nie jest to moment + // podłączania składu if (mvOccupied->CategoryFlag & 1) // tylko pociągi trąbią (unimogi tylko na - // torach, więc trzeba raczej sprawdzać - // tor) + // torach, więc trzeba raczej sprawdzać + // tor) if ((NewVel >= 1.0) || (NewVel < 0.0)) // o ile prędkość jest znacząca { // fWarningDuration=0.3; //czas trąbienia // if (AIControllFlag) //jak siedzi krasnoludek, to włączy trąbienie @@ -1982,7 +1982,7 @@ bool TController::PrepareEngine() OK = mvControlling->MainSwitch(true); if (mvControlling->EngineType == DieselEngine) { // Ra 2014-06: dla SN61 trzeba wrzucić pierwszą pozycję - nie wiem, czy tutaj... - // kiedyś działało... + // kiedyś działało... if (!mvControlling->MainCtrlPos) { if (mvControlling->RList[0].R == @@ -2221,14 +2221,14 @@ bool TController::IncSpeed() if (fabs(mvControlling->Im) < (fReady < 0.4 ? mvControlling->Imin : mvControlling->IminLo)) { // Ra: wywalał nadmiarowy, bo Im może być ujemne; jak nie odhamowany, to nie - // przesadzać z prądem + // przesadzać z prądem if ((mvOccupied->Vel <= 30) || (mvControlling->Imax > mvControlling->ImaxLo) || (fVoltage + fVoltage < mvControlling->EnginePowerSource.CollectorParameters.MinV + mvControlling->EnginePowerSource.CollectorParameters.MaxV)) { // bocznik na szeregowej przy ciezkich bruttach albo przy wysokim rozruchu - // pod górę albo przy niskim napięciu + // pod górę albo przy niskim napięciu if (mvControlling->MainCtrlPos ? mvControlling->RList[mvControlling->MainCtrlPos].R > 0.0 : true) // oporowa @@ -2252,13 +2252,13 @@ bool TController::IncSpeed() if (mvControlling->MainCtrlPos < mvControlling->MainCtrlPosNo - 1) // a nie jest ostatnia pozycja mvControlling->DecScndCtrl(2); // to bocznik na zero po chamsku - // (ktoś miał to poprawić...) + // (ktoś miał to poprawić...) OK = mvControlling->IncMainCtrl(1); } if ((mvControlling->MainCtrlPos > 2) && (mvControlling->Im == 0)) // brak prądu na dalszych pozycjach Need_TryAgain = true; // nie załączona lokomotywa albo wywalił - // nadmiarowy + // nadmiarowy else if (!OK) // nie da się wrzucić kolejnej pozycji OK = mvControlling->IncScndCtrl(1); // to dać bocznik } @@ -2285,7 +2285,7 @@ bool TController::IncSpeed() case DieselEngine: if (mvControlling->ShuntModeAllow) { // dla 2Ls150 można zmienić tryb pracy, jeśli jest w liniowym i nie daje rady (wymaga - // zerowania kierunku) + // zerowania kierunku) // mvControlling->ShuntMode=(OrderList[OrderPos]&Shunt)||(fMass>224000.0); } if ((mvControlling->Vel > mvControlling->dizel_minVelfullengage) && @@ -2384,13 +2384,13 @@ void TController::SpeedSet() else switch (mvControlling->MainCtrlPos) { // ruch nastawnika uzależniony jest od aktualnie ustawionej - // pozycji + // pozycji case 0: if (mvControlling->MainCtrlActualPos) // jeśli kułakowy nie jest - // wyzerowany + // wyzerowany break; // to czekać na wyzerowanie mvControlling->IncMainCtrl(1); // przetok; bez "break", bo nie - // ma czekania na 1. pozycji + // ma czekania na 1. pozycji case 1: if (VelDesired >= 20) mvControlling->IncMainCtrl(1); // szeregowa @@ -2442,10 +2442,10 @@ void TController::SpeedSet() if (mvControlling->Imax * mvControlling->Voltage / (fMass * fAccGravity) < -2.8) // a na niskim się za szybko nie pojedzie { // włączenie wysokiego rozruchu; - // (I*U)[A*V=W=kg*m*m/sss]/(m[kg]*a[m/ss])=v[m/s]; 2.8m/ss=10km/h + // (I*U)[A*V=W=kg*m*m/sss]/(m[kg]*a[m/ss])=v[m/s]; 2.8m/ss=10km/h if (mvControlling->RList[mvControlling->MainCtrlPos].Bn > 1) { // jeśli jedzie na równoległym, to zbijamy do szeregowego, aby włączyć - // wysoki rozruch + // wysoki rozruch if (mvControlling->ScndCtrlPos > 0) // jeżeli jest bocznik mvControlling->DecScndCtrl( 2); // wyłączyć bocznik, bo może blokować skręcenie NJ @@ -2567,9 +2567,9 @@ void TController::RecognizeCommand() } void TController::PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2, - const TLocation &NewLocation, TStopReason reason) + const TLocation &NewLocation, TStopReason reason) { // wysłanie komendy przez event PutValues, jak pojazd ma obsadę, to wysyła tutaj, a nie do pojazdu - // bezpośrednio + // bezpośrednio vector3 sl; sl.x = -NewLocation.X; // zamiana na współrzędne scenerii sl.z = NewLocation.Y; @@ -2579,7 +2579,7 @@ void TController::PutCommand(AnsiString NewCommand, double NewValue1, double New } bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2, - const vector3 *NewLocation, TStopReason reason) + const vector3 *NewLocation, TStopReason reason) { // analiza komendy if (NewCommand == "CabSignal") { // SHP wyzwalane jest przez człon z obsadą, ale obsługiwane przez silnikowy @@ -2594,7 +2594,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New fOverhead1 = NewValue1; // informacja o napięciu w sieci trakcyjnej (0=brak drutu, zatrzymaj!) fOverhead2 = NewValue2; // informacja o sposobie jazdy (-1=normalnie, 0=bez prądu, >0=z - // opuszczonym i ograniczeniem prędkości) + // opuszczonym i ograniczeniem prędkości) return true; // załatwione } else if (NewCommand == "Emergency_brake") // wymuszenie zatrzymania, niezależnie kto prowadzi @@ -2668,7 +2668,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New } } if (NewLocation) // jeśli podane współrzędne eventu/komórki ustawiającej rozkład (trainset - // nie podaje) + // nie podaje) { vector3 v = *NewLocation - pVehicle->GetPosition(); // wektor do punktu sterującego vector3 d = pVehicle->VectorFront(); // wektor wskazujący przód @@ -2686,7 +2686,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New */ if (AIControllFlag) // jeśli prowadzi komputer Activation(); // umieszczenie obsługi we właściwym członie, ustawienie nawrotnika w - // przód + // przód } /* else @@ -2706,7 +2706,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New // DirectionForward(false); //jedziemy do tyłu (nawrotnik do tyłu) // CheckVehicles(); //sprawdzenie składu, AI zapali światła TableClear(); // wyczyszczenie tabelki prędkości, bo na nowo trzeba określić kierunek i - // sprawdzić przystanki + // sprawdzić przystanki OrdersInit( fabs(NewValue1)); // ustalenie tabelki komend wg rozkładu oraz prędkości początkowej // if (NewValue1!=0.0) if (!AIControllFlag) DirectionForward(NewValue1>0.0); //ustawienie @@ -2723,10 +2723,10 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New { // o ile jazda if (!iEngineActive) OrderNext(Prepare_engine); // trzeba odpalić silnik najpierw, światła ustawi - // JumpToNextOrder() + // JumpToNextOrder() // if (OrderList[OrderPos]!=Obey_train) //jeśli nie pociągowa OrderNext(Obey_train); // to uruchomić jazdę pociągową (od razu albo po odpaleniu - // silnika + // silnika OrderCheck(); // jeśli jazda pociągowa teraz, to wykonać niezbędne operacje } if (NewValue1 != 0.0) // jeśli jechać @@ -2734,7 +2734,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New else iDrivigFlags |= moveStopHere; // stać do momentu podania komendy jazdy SetVelocity(NewValue1, NewValue2, reason); // bylo: nic nie rob bo SetVelocity zewnetrznie - // jest wywolywane przez dynobj.cpp + // jest wywolywane przez dynobj.cpp } else if (NewCommand == "SetProximityVelocity") { @@ -2793,7 +2793,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New if (NewValue1 == 0.0) iDirectionOrder = -iDirection; // zmiana na przeciwny niż obecny else if (NewLocation) // jeśli podane współrzędne eventu/komórki ustawiającej rozkład - // (trainset nie podaje) + // (trainset nie podaje) { vector3 v = *NewLocation - pVehicle->GetPosition(); // wektor do punktu sterującego vector3 d = pVehicle->VectorFront(); // wektor wskazujący przód @@ -2823,7 +2823,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New else if (NewCommand == "Shunt") { // NewValue1 - ilość wagonów (-1=wszystkie); NewValue2: 0=odczep, 1..63=dołącz, -1=bez zmian //-3,-y - podłączyć do całego stojącego składu (sprzęgiem y>=1), zmienić kierunek i czekać w - //trybie pociągowym + // trybie pociągowym //-2,-y - podłączyć do całego stojącego składu (sprzęgiem y>=1), zmienić kierunek i czekać //-2, y - podłączyć do całego stojącego składu (sprzęgiem y>=1) i czekać //-1,-y - podłączyć do całego stojącego składu (sprzęgiem y>=1) i jechać w powrotną stronę @@ -2847,7 +2847,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New OrderPush(Disconnect); // a odczep już po zmianie kierunku } else if (NewValue2 < 0.0) // jeśli wszystkie, a sprzęg ujemny, to tylko zmiana kierunku - // po podczepieniu + // po podczepieniu { // np. Shunt -1 -3 iDirectionOrder = -iDirection; // jak się podczepi, to jazda w przeciwną stronę OrderNext(Change_direction); @@ -2880,7 +2880,7 @@ bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double New } if (NewValue1 < -1.5) // jeśli -2/-3, czyli czekanie z ruszeniem na sygnał iDrivigFlags |= moveStopHere; // nie podjeżdżać do semafora, jeśli droga nie jest wolna - // (nie dotyczy Connect) + // (nie dotyczy Connect) if (NewValue1 < -2.5) // jeśli OrderNext(Obey_train); // to potem jazda pociągowa else @@ -3065,17 +3065,17 @@ bool TController::UpdateSituation(double dt) if (mvControlling->EnginePowerSource.SourceType == CurrentCollector) { if (mvOccupied->ScndPipePress > 4.3) // gdy główna sprężarka bezpiecznie nabije - // ciśnienie + // ciśnienie mvControlling->bPantKurek3 = true; // to można przestawić kurek na zasilanie pantografów z głównej pneumatyki fVoltage = 0.5 * (fVoltage + fabs(mvControlling->RunningTraction.TractionVoltage)); // uśrednione napięcie - // sieci: przy spadku - // poniżej wartości - // minimalnej opóźnić - // rozruch o losowy - // czas + // sieci: przy spadku + // poniżej wartości + // minimalnej opóźnić + // rozruch o losowy + // czas if (fVoltage < mvControlling->EnginePowerSource.CollectorParameters .MinV) // gdy rozłączenie WS z powodu niskiego napięcia if (fActionTime >= 0) // jeśli czas oczekiwania nie został ustawiony @@ -3086,14 +3086,14 @@ bool TController::UpdateSituation(double dt) { // jeżeli jedzie if (iDrivigFlags & moveDoorOpened) // jeśli drzwi otwarte if (mvOccupied->Vel > 1.0) // nie zamykać drzwi przy drganiach, bo zatrzymanie na W4 - // akceptuje niewielkie prędkości + // akceptuje niewielkie prędkości Doors(false); // przy prowadzeniu samochodu trzeba każdą oś odsuwać oddzielnie, inaczej kicha wychodzi if (mvOccupied->CategoryFlag & 2) // jeśli samochód // if (fabs(mvOccupied->OffsetTrackH)Dim.W) //Ra: szerokość drogi tu // powinna być? if (!mvOccupied->ChangeOffsetH(-0.01 * mvOccupied->Vel * dt)) // ruch w poprzek - // drogi + // drogi mvOccupied->ChangeOffsetH(0.01 * mvOccupied->Vel * dt); // Ra: co to miało być, to nie wiem if (mvControlling->EnginePowerSource.SourceType == CurrentCollector) @@ -3200,7 +3200,7 @@ bool TController::UpdateSituation(double dt) double scanmax = (mvOccupied->Vel > 5.0) ? 400 + fBrakeDist : 50.0 * fDriverDist; // 1000m dla stojących pociągów; Ra 2015-01: przy - // dłuższej drodze skanowania AI jeździ spokojniej + // dłuższej drodze skanowania AI jeździ spokojniej // 2. Sprawdzić, czy tabelka pokrywa założony odcinek (nie musi, jeśli jest STOP). // 3. Sprawdzić, czy trajektoria ruchu przechodzi przez zwrotnice - jeśli tak, to sprawdzić, // czy stan się nie zmienił. @@ -3216,7 +3216,7 @@ bool TController::UpdateSituation(double dt) { // tu bedzie logika sterowania if (mvOccupied->CommandIn.Command != "") if (!mvOccupied->RunInternalCommand()) // rozpoznaj komende bo lokomotywa jej nie - // rozpoznaje + // rozpoznaje RecognizeCommand(); // samo czyta komendę wstawioną do pojazdu? if (mvOccupied->SecuritySystem.Status > 1) // jak zadziałało CA/SHP if (!mvOccupied->SecuritySystemReset()) // to skasuj @@ -3236,7 +3236,7 @@ bool TController::UpdateSituation(double dt) fMinProximityDist = -0.01; fMaxProximityDist = 0.0; //[m] dojechać maksymalnie fVelPlus = 0.5; // dopuszczalne przekroczenie prędkości na ograniczeniu bez - // hamowania + // hamowania fVelMinus = 0.5; // margines prędkości powodujący załączenie napędu if (AIControllFlag) { // to robi tylko AI, wersję dla człowieka trzeba dopiero zrobić @@ -3245,9 +3245,9 @@ bool TController::UpdateSituation(double dt) if (pVehicles[0]->DirectionGet() > 0) // jeśli sprzęg 0 { // sprzęg 0 - próba podczepienia if (pVehicles[0]->MoverParameters->Couplers[0].Connected) // jeśli jest coś - // wykryte (a - // chyba jest, - // nie?) + // wykryte (a + // chyba jest, + // nie?) if (pVehicles[0]->MoverParameters->Attach( 0, 2, pVehicles[0]->MoverParameters->Couplers[0].Connected, iCoupler)) @@ -3263,9 +3263,9 @@ bool TController::UpdateSituation(double dt) else // if (pVehicles[0]->MoverParameters->DirAbsolute<0) //jeśli sprzęg 1 { // sprzęg 1 - próba podczepienia if (pVehicles[0]->MoverParameters->Couplers[1].Connected) // jeśli jest coś - // wykryte (a - // chyba jest, - // nie?) + // wykryte (a + // chyba jest, + // nie?) if (pVehicles[0]->MoverParameters->Attach( 1, 2, pVehicles[0]->MoverParameters->Couplers[1].Connected, iCoupler)) @@ -3314,7 +3314,7 @@ bool TController::UpdateSituation(double dt) fMinProximityDist = 0.0; fMaxProximityDist = 5.0; //[m] w takim przedziale odległości powinien stanąć fVelPlus = 2.0; // dopuszczalne przekroczenie prędkości na ograniczeniu bez - // hamowania + // hamowania fVelMinus = 1.0; // margines prędkości powodujący załączenie napędu // VelReduced=5; //[km/h] // if (mvOccupied->Vel<0.5) //jeśli już prawie stanął @@ -3364,7 +3364,7 @@ bool TController::UpdateSituation(double dt) if (n) { // jeśli jeszcze nie koniec p = p->Prev(); // kolejny w stronę czoła składu (licząc od - // tyłu), bo dociskamy + // tyłu), bo dociskamy if (!p) iVehicleCount = -2, n = 0; // nie ma co dalej sprawdzać, doczepianie zakończone @@ -3373,7 +3373,7 @@ bool TController::UpdateSituation(double dt) if (p ? p->MoverParameters->Couplers[d].CouplingFlag == 0 : true) iVehicleCount = -2; // odczepiono, co było do odczepienia else if (!p->Dettach(d)) // zwraca maskę bitową połączenia; usuwa - // własność pojazdów + // własność pojazdów { // tylko jeśli odepnie // WriteLog("Odczepiony od strony "); iVehicleCount = -2; @@ -3401,16 +3401,16 @@ bool TController::UpdateSituation(double dt) .PipePressureVal; // tu może być 0 albo -1 nawet if (p < 3.9) p = 3.9; // TODO: zabezpieczenie przed dziwnymi CHK do czasu wyjaśnienia - // sensu 0 oraz -1 w tym miejscu + // sensu 0 oraz -1 w tym miejscu if (mvOccupied->BrakeSystem == ElectroPneumatic ? mvOccupied->BrakePress > 2 : mvOccupied->PipePress < p + 0.1) { // jeśli w miarę został zahamowany (ciśnienie mniejsze niż podane na - // pozycji 3, zwyle 0.37) + // pozycji 3, zwyle 0.37) if (mvOccupied->BrakeSystem == ElectroPneumatic) mvOccupied->BrakeLevelSet(0); // wyłączenie EP, gdy wystarczy (może - // nie być potrzebne, bo na początku - // jest) + // nie być potrzebne, bo na początku + // jest) // WriteLog("Luzowanie lokomotywy i zmiana kierunku"); mvOccupied->BrakeReleaser(1); // wyluzuj lokomotywę; a ST45? mvOccupied->DecLocalBrakeLevel(10); // zwolnienie hamulca @@ -3418,7 +3418,7 @@ bool TController::UpdateSituation(double dt) DirectionForward(mvOccupied->ActiveDir < 0); // zmiana kierunku jazdy na przeciwny (dociskanie) CheckVehicles(); // od razu zmienić światła (zgasić) - bez tego się nie - // odczepi + // odczepi fStopTime = 0.0; // nie ma na co czekać z odczepianiem } } @@ -3508,7 +3508,7 @@ bool TController::UpdateSituation(double dt) // OrderList[OrderPos]:=Shunt; //Ra: to nie może tak być, bo scenerie robią // Jump_to_first_order i przechodzi w manewrowy JumpToNextOrder(); // w następnym jest Shunt albo Obey_train, moze też być - // Change_direction, Connect albo Disconnect + // Change_direction, Connect albo Disconnect // if OrderList[OrderPos]<>Wait_for_Orders) // if BrakeSystem=Pneumatic) //napelnianie uderzeniowe na wstepie // if BrakeSubsystem=Oerlikon) @@ -3596,7 +3596,7 @@ bool TController::UpdateSituation(double dt) (iDrivigFlags & moveStopHere) : false) WaitingTime = -WaitingExpireTime; // zakaz ruszania z miejsca bez otrzymania - // wolnej drogi + // wolnej drogi else if (mvOccupied->CategoryFlag & 1) { // jeśli pociąg if (AIControllFlag) @@ -3627,9 +3627,9 @@ bool TController::UpdateSituation(double dt) } else if ((VelSignal == 0.0) && (VelNext > 0.0) && (mvOccupied->Vel < 1.0)) if (iCoupler ? true : (iDrivigFlags & moveStopHere) == 0) // Ra: tu jest coś nie - // tak, bo bez tego - // warunku ruszało w - // manewrowym !!!! + // tak, bo bez tego + // warunku ruszało w + // manewrowym !!!! SetVelocity(VelNext, VelNext, stopSem); // omijanie SBL } // koniec samoistnego odjeżdżania if (AIControllFlag) @@ -3655,10 +3655,10 @@ bool TController::UpdateSituation(double dt) if (mvOccupied->Vel < 0.1) { // jeśli się zatrzymał, to zmieniamy kierunek jazdy, a nawet kabinę/człon Activation(); // ustawienie zadanego wcześniej kierunku i ewentualne - // przemieszczenie AI + // przemieszczenie AI PrepareEngine(); JumpToNextOrder(); // następnie robimy, co jest do zrobienia (Shunt albo - // Obey_train) + // Obey_train) if (OrderList[OrderPos] & (Shunt | Connect)) // jeśli dalej mamy manewry if ((iDrivigFlags & moveStopHere) == 0) // o ile nie stać w miejscu { // jechać od razu w przeciwną stronę i nie trąbić z tego tytułu @@ -3690,7 +3690,7 @@ bool TController::UpdateSituation(double dt) // przeszkody // no chyba żeby to uwzgldnić już w (ActualProximityDist) VelDesired = fVelMax; // wstępnie prędkość maksymalna dla pojazdu(-ów), będzie - // następnie ograniczana + // następnie ograniczana if (TrainParams) // jeśli ma rozkład if (TrainParams->TTVmax > 0.0) // i ograniczenie w rozkładzie VelDesired = Min0R(VelDesired, @@ -3699,9 +3699,9 @@ bool TController::UpdateSituation(double dt) // Ra: odczyt (ActualProximityDist), (VelNext) i (AccPreferred) z tabelki prędkosci AccDesired = AccPreferred; // AccPreferred wynika z osobowości mechanika VelNext = VelDesired; // maksymalna prędkość wynikająca z innych czynników niż - // trajektoria ruchu + // trajektoria ruchu ActualProximityDist = scanmax; // funkcja Update() może pozostawić wartości bez - // zmian + // zmian // hm, kiedyś semafory wysyłały SetVelocity albo ShuntVelocity i ustawły tak // VelSignal - a teraz jak to zrobić? TCommandType comm = TableUpdate(VelDesired, ActualProximityDist, VelNext, @@ -3721,7 +3721,7 @@ bool TController::UpdateSituation(double dt) break; // ale jak coś z przodu zamyka, to ma stać if (iDrivigFlags & moveStopCloser) VelSignal = VelDesired; // niech jedzie, jak W4 puściło - nie, ma czekać na - // sygnał z sygnalizatora! + // sygnał z sygnalizatora! case cm_SetVelocity: // od wersji 357 semafor nie budzi wyłączonej lokomotywy if (!(OrderList[OrderPos] & ~(Obey_train | Shunt))) // jedzie w dowolnym trybie albo Wait_for_orders @@ -3772,12 +3772,12 @@ bool TController::UpdateSituation(double dt) if (comm == cm_Command) // jeśli komenda Shunt iDrivigFlags |= moveStopHere; // to ją odbierz bez przemieszczania się (np. - // odczep wagony po dopchnięciu do końca toru) + // odczep wagony po dopchnięciu do końca toru) iDirectionOrder = -iDirection; // zmiana kierunku jazdy OrderList[OrderPos] = TOrders(OrderList[OrderPos] | Change_direction); // zmiana kierunku - // bez psucia - // kolejnych komend + // bez psucia + // kolejnych komend } } double vel = mvOccupied->Vel; // prędkość w kierunku jazdy @@ -3788,11 +3788,11 @@ bool TController::UpdateSituation(double dt) // Ra: jazda na widoczność if (pVehicles[0]->fTrackBlock < 1000.0) // przy 300m stał z zapamiętaną kolizją { // Ra 2F3F: przy jeździe pociągowej nie powinien dojeżdżać do poprzedzającego - // składu + // składu if ((mvOccupied->CategoryFlag & 1) ? ((OrderCurrentGet() & (Connect | Obey_train)) == Obey_train) : false) // jeśli jesteśmy pociągiem a jazda pociągowa i nie ściąganie ze - // szlaku + // szlaku { pVehicles[0]->ABuScanObjects(pVehicles[0]->DirectionGet(), 1000.0); // skanowanie sprawdzające @@ -3802,7 +3802,7 @@ bool TController::UpdateSituation(double dt) if (VelNext != 0.0) // a następny sygnał zezwala na jazdę if (pVehicles[0]->fTrackBlock < ActualProximityDist) // i jest bliżej (tu by trzeba było wstawić - // odległość do semafora, z pominięciem SBL + // odległość do semafora, z pominięciem SBL VelDesired = 0.0; // to stoimy } else @@ -3821,7 +3821,7 @@ bool TController::UpdateSituation(double dt) 0) // jeśli to coś jest podłączone sprzęgiem wirtualnym { // wyliczanie optymalnego przyspieszenia do jazdy na widoczność double k = c->Connected->Vel; // prędkość pojazdu z przodu (zakładając, - // że jedzie w tę samą stronę!!!) + // że jedzie w tę samą stronę!!!) if (k < vel + 10) // porównanie modułów prędkości [km/h] { // zatroszczyć się trzeba, jeśli tamten nie jedzie znacząco szybciej double d = @@ -3840,7 +3840,7 @@ bool TController::UpdateSituation(double dt) { AccPreferred = -1.0; // to hamuj maksymalnie VelNext = VelDesired = 0.0; // i nie pakuj się na - // tamtego + // tamtego } } else // jeśli oba jadą, to przyhamuj lekko i ogranicz prędkość @@ -3852,19 +3852,19 @@ bool TController::UpdateSituation(double dt) AccPreferred = fAccThreshold; // to przyhamuj troszkę VelNext = VelDesired = int(k); // to chyba już sobie - // dohamuje według - // uznania + // dohamuje według + // uznania } } ReactionTime = 0.1; // orientuj się, bo jest goraco } else { // jeśli odległość jest większa, ustalić maksymalne możliwe - // przyspieszenie (hamowanie) + // przyspieszenie (hamowanie) k = (k * k - vel * vel) / (25.92 * d); // energia kinetyczna - // dzielona przez masę i - // drogę daje - // przyspieszenie + // dzielona przez masę i + // drogę daje + // przyspieszenie if (k > 0.0) k *= 1.5; // jedź szybciej, jeśli możesz // double ak=(c->Connected->V>0?1.0:-1.0)*c->Connected->AccS; @@ -3892,7 +3892,7 @@ bool TController::UpdateSituation(double dt) } // sprawdzamy możliwe ograniczenia prędkości if (OrderCurrentGet() & (Shunt | Obey_train)) // w Connect nie, bo moveStopHere - // odnosi się do stanu po połączeniu + // odnosi się do stanu po połączeniu if (iDrivigFlags & moveStopHere) // jeśli ma czekać na wolną drogę if (vel == 0.0) // a stoi if (VelNext == 0.0) // a wyjazdu nie ma @@ -3910,9 +3910,9 @@ bool TController::UpdateSituation(double dt) mvOccupied->RunningTrack.Velmax); // uwaga na ograniczenia szlakowej! if (VelforDriver >= 0) // tu jest zero przy zmianie kierunku jazdy VelDesired = Min0R(VelDesired, VelforDriver); // Ra: tu może być 40, jeśli - // mechanik nie ma znajomości - // szlaaku, albo kierowca jeździ - // 70 + // mechanik nie ma znajomości + // szlaaku, albo kierowca jeździ + // 70 if (TrainParams) if (TrainParams->CheckTrainLatency() < 5.0) if (TrainParams->TTVmax > 0.0) @@ -3923,10 +3923,10 @@ bool TController::UpdateSituation(double dt) if (VelDesired > 0.0) if (VelNext > 0.0) { // jeśli można jechać, to odpalić dźwięk kierownika oraz zamknąć drzwi w - // składzie + // składzie if (iDrivigFlags & moveGuardSignal) { // komunikat od kierownika tu, bo musi być wolna droga i odczekany czas - // stania + // stania iDrivigFlags &= ~moveGuardSignal; // tylko raz nadać tsGuardSignal->Stop(); // w zasadzie to powinien mieć flagę, czy jest dźwiękiem radiowym, czy @@ -3955,15 +3955,15 @@ bool TController::UpdateSituation(double dt) if (!mvOccupied ->DoorOpenCtrl) // jeśli drzwi niesterowane przez maszynistę Doors(false); // a EZT zamknie dopiero po odegraniu komunikatu - // kierownika + // kierownika } if (mvOccupied->V == 0.0) AbsAccS = fAccGravity; // Ra 2014-03: jesli skład stoi, to działa na niego - // składowa styczna grawitacji + // składowa styczna grawitacji else AbsAccS = iDirection * mvOccupied->AccS; // przyspieszenie chwilowe, liczone - // jako różnica skierowanej prędkości w - // czasie +// jako różnica skierowanej prędkości w +// czasie // if (mvOccupied->V<0.0) AbsAccS=-AbsAccS; //Ra 2014-03: to trzeba przemyśleć // if (vel<0) //jeżeli się stacza w tył; 2014-03: to jest bez sensu, bo vel>=0 // AbsAccS=-AbsAccS; //to przyspieszenie też działa wtedy w nieodpowiednią stronę @@ -3977,12 +3977,12 @@ bool TController::UpdateSituation(double dt) // ustalanie zadanego przyspieszenia //(ActualProximityDist) - odległość do miejsca zmniejszenia prędkości //(AccPreferred) - wynika z psychyki oraz uwzglęnia już ewentualne zderzenie z - //pojazdem z przodu, ujemne gdy należy hamować + // pojazdem z przodu, ujemne gdy należy hamować //(AccDesired) - uwzględnia sygnały na drodze ruchu, ujemne gdy należy hamować //(fAccGravity) - chwilowe przspieszenie grawitacyjne, ujemne działa przeciwnie do - //zadanego kierunku jazdy + // zadanego kierunku jazdy //(AbsAccS) - chwilowe przyspieszenie pojazu (uwzględnia grawitację), ujemne działa - //przeciwnie do zadanego kierunku jazdy + // przeciwnie do zadanego kierunku jazdy //(AccDesired) porównujemy z (fAccGravity) albo (AbsAccS) // if ((VelNext>=0.0)&&(ActualProximityDist>=0)&&(mvOccupied->Vel>=VelNext)) //gdy // zbliza sie i jest za szybko do NOWEGO @@ -3994,25 +3994,25 @@ bool TController::UpdateSituation(double dt) (ActualProximityDist > fMaxProximityDist * (1 + 0.1 * vel)) : false) // dojedz do semafora/przeszkody { // jeśli jedzie wolniej niż można i jest wystarczająco daleko, to można - // przyspieszyć + // przyspieszyć if (AccPreferred > 0.0) // jeśli nie ma zawalidrogi AccDesired = AccPreferred; // VelDesired:=Min0R(VelDesired,VelReduced+VelNext); } else if (ActualProximityDist > fMinProximityDist) { // jedzie szybciej, niż trzeba na końcu ActualProximityDist, ale jeszcze - // jest daleko + // jest daleko if (vel < VelNext + 40.0) // dwustopniowe hamowanie - niski przy małej różnicy { // jeśli jedzie wolniej niż VelNext+35km/h //Ra: 40, żeby nie - // kombinował na zwrotnicach + // kombinował na zwrotnicach if (VelNext == 0.0) { // jeśli ma się zatrzymać, musi być to robione precyzyjnie i - // skutecznie + // skutecznie if (ActualProximityDist < fMaxProximityDist) // jak minął już maksymalny dystans { // po prostu hamuj (niski stopień) //ma stanąć, a jest w - // drodze hamowania albo ma jechać + // drodze hamowania albo ma jechać AccDesired = fAccThreshold; // hamowanie tak, aby stanąć VelDesired = 0.0; // Min0R(VelDesired,VelNext); } @@ -4020,18 +4020,18 @@ bool TController::UpdateSituation(double dt) { // jeśli ma stanąć, a mieści się w drodze hamowania if (vel < 10.0) // jeśli prędkość jest łatwa do zatrzymania { // tu jest trochę problem, bo do punktu zatrzymania dobija - // na raty + // na raty // AccDesired=AccDesired<0.0?0.0:0.1*AccPreferred; AccDesired = AccPreferred; // proteza trochę; jak tu - // wychodzi 0.05, to loki - // mają problem utrzymać - // takie przyspieszenie + // wychodzi 0.05, to loki + // mają problem utrzymać + // takie przyspieszenie } else if (vel <= 30.0) // trzymaj 30 km/h AccDesired = Min0R(0.5 * AccDesired, AccPreferred); // jak jest tu 0.5, to - // samochody się - // dobijają do siebie + // samochody się + // dobijają do siebie else AccDesired = 0.0; } @@ -4040,19 +4040,19 @@ bool TController::UpdateSituation(double dt) VelNext + fVelPlus) // jeśli niewielkie przekroczenie // AccDesired=0.0; AccDesired = Min0R(0.0, AccPreferred); // proteza trochę: to - // niech nie hamuje, - // chyba że coś z - // przodu + // niech nie hamuje, + // chyba że coś z + // przodu else AccDesired = -(vel * vel) / (25.92 * (ActualProximityDist + 0.1)); //-fMinProximityDist));//-0.1; - ////mniejsze opóźnienie przy - //małej różnicy + ////mniejsze opóźnienie przy + // małej różnicy ReactionTime = 0.1; // i orientuj się szybciej, jak masz stanąć } else if (vel < VelNext + fVelPlus) // jeśli niewielkie - // przekroczenie, ale ma jechać + // przekroczenie, ale ma jechać AccDesired = Min0R(0.0, AccPreferred); // to olej (zacznij luzować) else @@ -4064,7 +4064,7 @@ bool TController::UpdateSituation(double dt) 0.1); // mniejsze opóźnienie przy małej różnicy if (ActualProximityDist < fMaxProximityDist) ReactionTime = 0.1; // i orientuj się szybciej, jeśli w - // krytycznym przedziale + // krytycznym przedziale } } else // przy dużej różnicy wysoki stopień (1,25 potrzebnego opoznienia) @@ -4103,7 +4103,7 @@ bool TController::UpdateSituation(double dt) AccDesired = AccPreferred; // dociagnij do semafora; else VelDesired = 0.0; //,AccDesired=-fabs(fAccGravity); //stoj (hamuj z siłą - //równą składowej stycznej grawitacji) + // równą składowej stycznej grawitacji) } else VelDesired = 0.0; // VelNext=0 i stoi bliżej niż fMaxProximityDist @@ -4125,7 +4125,7 @@ bool TController::UpdateSituation(double dt) // koniec predkosci aktualnej if (fAccThreshold > -0.3) // bez sensu, ale dla towarowych korzystnie { // Ra 2014-03: to nie uwzględnia odległości i zaczyna hamować, jak tylko zobaczy - // W4 + // W4 if ((AccDesired > 0.0) && (VelNext >= 0.0)) // wybieg bądź lekkie hamowanie, warunki byly zamienione if (vel > VelNext + 100.0) // lepiej zaczac hamowac @@ -4214,9 +4214,9 @@ bool TController::UpdateSituation(double dt) #endif if (AccDesired > 0.1) if (vel < 10.0) // Ra 2F1H: jeśli prędkość jest mała, a można przyspieszać, - // to nie ograniczać przyspieszenia do 0.5m/ss + // to nie ograniczać przyspieszenia do 0.5m/ss AccDesired = 0.9; // przy małych prędkościach może być trudno utrzymać - // małe przyspieszenie + // małe przyspieszenie // Ra 2F1I: wyłączyć kiedyś to uśrednianie i przeanalizować skanowanie, czemu // migocze if (AccDesired > -0.15) // hamowania lepeiej nie uśredniać @@ -4251,7 +4251,7 @@ bool TController::UpdateSituation(double dt) else if (((fAccGravity < -0.01) ? AccDesired < 0.0 : AbsAccS > AccDesired) || (vel > VelDesired)) // jak za bardzo przyspiesza albo prędkość - // przekroczona + // przekroczona DecSpeed(); // pojedyncze cofnięcie pozycji, bo na zero to przesada } // yB: usunięte różne dziwne warunki, oddzielamy część zadającą od wykonawczej @@ -4261,7 +4261,7 @@ bool TController::UpdateSituation(double dt) if (AbsAccS < AccDesired) // jeśli przyspieszenie pojazdu jest mniejsze niż żądane oraz if (vel < VelDesired - fVelMinus) // jeśli prędkość w kierunku czoła jest - // mniejsza od dozwolonej o margines + // mniejsza od dozwolonej o margines if ((ActualProximityDist > fMaxProximityDist) ? true : (vel < VelNext)) IncSpeed(); // to można przyspieszyć // if ((AbsAccS AccDesired) || (mvOccupied->BrakeCtrlPos < 0)) : false) // hamować bardziej, gdy aktualne opóźnienie hamowania - // mniejsze niż (AccDesired) + // mniejsze niż (AccDesired) IncBrake(); else if (OrderList[OrderPos] != Disconnect) // przy odłączaniu nie zwalniamy tu hamulca @@ -4324,7 +4324,7 @@ bool TController::UpdateSituation(double dt) if (fBrakeTime < 0 ? true : (AccDesired < fAccGravity - 0.3) || (mvOccupied->BrakeCtrlPos <= 0)) if (!IncBrake()) // jeśli upłynął czas reakcji hamulca, chyba że - // nagłe albo luzował + // nagłe albo luzował MinVelFlag = true; else { @@ -4397,7 +4397,7 @@ bool TController::UpdateSituation(double dt) } // if (AIControllFlag) else { // tu mozna dać komunikaty tekstowe albo słowne: przyspiesz, hamuj (lekko, - // średnio, mocno) + // średnio, mocno) } } // kierunek różny od zera else @@ -4564,9 +4564,15 @@ void TController::OrdersDump() } }; -TOrders TController::OrderCurrentGet() { return OrderList[OrderPos]; } +TOrders TController::OrderCurrentGet() +{ + return OrderList[OrderPos]; +} -TOrders TController::OrderNextGet() { return OrderList[OrderPos + 1]; } +TOrders TController::OrderNextGet() +{ + return OrderList[OrderPos + 1]; +} void TController::OrdersInit(double fVel) { // wypełnianie tabelki rozkazów na podstawie rozkładu @@ -4805,7 +4811,7 @@ TCommandType TController::BackwardScan() // zwraca true, jeśli należy odwrócić kierunek jazdy pojazdu if ((OrderList[OrderPos] & ~(Shunt | Connect))) return cm_Unknown; // skanowanie sygnałów tylko gdy jedzie w trybie manewrowym albo czeka na - // rozkazy + // rozkazy vector3 sl; int startdir = -pVehicles[0]->DirectionGet(); // kierunek jazdy względem sprzęgów pojazdu na czele @@ -4876,7 +4882,7 @@ TCommandType TController::BackwardScan() (mvOccupied->Vel > 0.0) && (OrderCurrentGet() != Shunt) : false) { // jeśli semafor jest daleko, a pojazd jedzie, to informujemy o - // zmianie prędkości +// zmianie prędkości // jeśli jedzie manewrowo, musi dostać SetVelocity, żeby sie na pociągowy przełączył // Mechanik->PutCommand("SetProximityVelocity",scandist,vmechmax,sl); #if LOGBACKSCAN @@ -4888,11 +4894,11 @@ TCommandType TController::BackwardScan() return (vmechmax > 0) ? cm_SetVelocity : cm_Unknown; } else // ustawiamy prędkość tylko wtedy, gdy ma ruszyć, stanąć albo ma - // stać + // stać // if ((MoverParameters->Vel==0.0)||(vmechmax==0.0)) //jeśli stoi lub ma // stanąć/stać { // semafor na tym torze albo lokomtywa stoi, a ma ruszyć, albo ma - // stanąć, albo nie ruszać +// stanąć, albo nie ruszać // stop trzeba powtarzać, bo inaczej zatrąbi i pojedzie sam // PutCommand("SetVelocity",vmechmax,e->Params[9].asMemCell->Value2(),&sl,stopSem); #if LOGBACKSCAN @@ -4913,7 +4919,7 @@ TCommandType TController::BackwardScan() { // jeśli tarcza jest daleko, to: //- jesli pojazd jedzie, to informujemy o zmianie prędkości //- jeśli stoi, to z własnej inicjatywy może podjechać pod zamkniętą - //tarczę + // tarczę if (mvOccupied->Vel > 0.0) // tylko jeśli jedzie { // Mechanik->PutCommand("SetProximityVelocity",scandist,vmechmax,sl); #if LOGBACKSCAN @@ -4925,11 +4931,11 @@ TCommandType TController::BackwardScan() return (iDrivigFlags & moveTrackEnd) ? cm_ChangeDirection : cm_Unknown; // jeśli jedzie na W5 albo koniec toru, - // to można zmienić kierunek + // to można zmienić kierunek } } else // ustawiamy prędkość tylko wtedy, gdy ma ruszyć, albo stanąć albo - // ma stać pod tarczą + // ma stać pod tarczą { // stop trzeba powtarzać, bo inaczej zatrąbi i pojedzie sam // if ((MoverParameters->Vel==0.0)||(vmechmax==0.0)) //jeśli jedzie // lub ma stanąć/stać @@ -4944,7 +4950,7 @@ TCommandType TController::BackwardScan() } if ((vmechmax != 0.0) && (scandist < 100.0)) { // jeśli Tm w odległości do 100m podaje zezwolenie na jazdę, to od - // razu ją ignorujemy, aby móc szukać kolejnej +// razu ją ignorujemy, aby móc szukać kolejnej // eSignSkip=e; //wtedy uznajemy ignorowaną przy poszukiwaniu nowej #if LOGBACKSCAN WriteLog(edir + "- will be ignored due to Ms2"); @@ -5029,7 +5035,7 @@ void TController::TakeControl(bool yes) // Activation(); //przeniesie użytkownika w ostatnio wybranym kierunku CheckVehicles(); // ustawienie świateł TableClear(); // ponowne utworzenie tabelki, bo człowiek mógł pojechać niezgodnie z - // sygnałami + // sygnałami } else { // a teraz użytkownik @@ -5054,15 +5060,30 @@ void TController::DirectionForward(bool forward) mvControlling->IncMainCtrl(1); //żeby nie zgasł }; -AnsiString TController::Relation() { return TrainParams->ShowRelation(); }; // zwraca relację pociągu +AnsiString TController::Relation() +{ + return TrainParams->ShowRelation(); +}; // zwraca relację pociągu -AnsiString TController::TrainName() { return TrainParams->TrainName; }; // zwraca relację pociągu +AnsiString TController::TrainName() +{ + return TrainParams->TrainName; +}; // zwraca relację pociągu -int TController::StationCount() { return TrainParams->StationCount; }; // zwraca ilość stacji (miejsc zatrzymania) +int TController::StationCount() +{ + return TrainParams->StationCount; +}; // zwraca ilość stacji (miejsc zatrzymania) -int TController::StationIndex() { return TrainParams->StationIndex; }; // zwraca indeks aktualnej stacji (miejsca zatrzymania) +int TController::StationIndex() +{ + return TrainParams->StationIndex; +}; // zwraca indeks aktualnej stacji (miejsca zatrzymania) -bool TController::IsStop() { return TrainParams->IsStop(); }; // informuje, czy jest zatrzymanie na najbliższej stacji +bool TController::IsStop() +{ + return TrainParams->IsStop(); +}; // informuje, czy jest zatrzymanie na najbliższej stacji void TController::MoveTo(TDynamicObject *to) { // przesunięcie AI do innego pojazdu (przy zmianie kabiny) @@ -5087,7 +5108,7 @@ AnsiString TController::TableText(int i) { // pozycja tabelki prędkości i = (iFirst + i) % iSpeedTableSize; // numer pozycji if (i != iLast) // w (iLast) znajduje się kolejny tor do przeskanowania, ale nie jest ona - // aktywną + // aktywną return sSpeedTable[i].TableText(); return ""; // wskaźnik końca }; @@ -5123,9 +5144,9 @@ void TController::RouteSwitch(int d) if ((sSpeedTable[i].iFlags & 32) == 0) // odcinek nie może być miniętym if (sSpeedTable[i].trTrack->eType == tt_Cross) // jeśli skrzyżowanie { // obcięcie tabelki skanowania przed skrzyżowaniem, aby ponownie - // wybrać drogę + // wybrać drogę iLast = i - 1; // ponowne skanowanie skrzyżowania (w zwrotnicach - // jest iLast=i, ale tam jest prościej) + // jest iLast=i, ale tam jest prościej) if (iLast < 0) iLast += iSpeedTableSize; // bo tabelka jest zapętlona return; diff --git a/Driver.h b/Driver.h index bc4e053d..c72116d1 100644 --- a/Driver.h +++ b/Driver.h @@ -164,7 +164,7 @@ class TController double fLastStopExpDist; // odległość wygasania ostateniego przystanku double ReactionTime; // czas reakcji Ra: czego i na co? świadomości AI double fBrakeTime; // wpisana wartość jest zmniejszana do 0, gdy ujemna należy zmienić nastawę - // hamulca + // hamulca private: double fReady; // poziom odhamowania wagonów bool Ready; // ABu: stan gotowosci do odjazdu - sprawdzenie odhamowania wagonow @@ -178,7 +178,7 @@ class TController public: bool AIControllFlag; // rzeczywisty/wirtualny maszynista int iRouteWanted; // oczekiwany kierunek jazdy (0-stop,1-lewo,2-prawo,3-prosto) np. odpala - // migacz lub czeka na stan zwrotnicy + // migacz lub czeka na stan zwrotnicy private: TDynamicObject *pVehicle; // pojazd w którym siedzi sterujący TDynamicObject * @@ -194,17 +194,17 @@ class TController int iGuardRadio; // numer kanału radiowego kierownika (0, gdy nie używa radia) public: double AccPreferred; // preferowane przyspieszenie (wg psychiki kierującego, zmniejszana przy - // wykryciu kolizji) + // wykryciu kolizji) double AccDesired; // przyspieszenie, jakie ma utrzymywać (<0:nie przyspieszaj,<-0.1:hamuj) double VelDesired; // predkość, z jaką ma jechać, wynikająca z analizy tableki; <=VelSignal double fAccDesiredAv; // uśrednione przyspieszenie z kolejnych przebłysków świadomości, żeby - // ograniczyć migotanie + // ograniczyć migotanie private: double VelforDriver; // prędkość, używana przy zmianie kierunku (ograniczenie przy nieznajmości - // szlaku?) + // szlaku?) double VelSignal; // predkość zadawana przez semafor (funkcją SetVelocity()) double VelLimit; // predkość zadawana przez event jednokierunkowego ograniczenia prędkości - // (PutValues albo komendą) + // (PutValues albo komendą) public: double VelNext; // prędkość, jaka ma być po przejechaniu długości ProximityDist private: @@ -215,7 +215,7 @@ class TController ActualProximityDist; // odległość brana pod uwagę przy wyliczaniu prędkości i przyspieszenia private: vector3 vCommandLocation; // polozenie wskaznika, sygnalizatora lub innego obiektu do ktorego - // odnosi sie komenda + // odnosi sie komenda TOrders OrderList[maxorders]; // lista rozkazów int OrderPos, OrderTop; // rozkaz aktualny oraz wolne miejsce do wstawiania nowych std::ofstream LogFile; // zapis parametrow fizycznych @@ -226,7 +226,7 @@ class TController int iDirectionOrder; //żadany kierunek jazdy (służy do zmiany kierunku) int iVehicleCount; // ilość pojazdów do odłączenia albo zabrania ze składu (-1=wszystkie) int iCoupler; // maska sprzęgu, jaką należy użyć przy łączeniu (po osiągnięciu trybu Connect), 0 - // gdy jazda bez łączenia + // gdy jazda bez łączenia int iDriverFailCount; // licznik błędów AI bool Need_TryAgain; // true, jeśli druga pozycja w elektryku nie załapała bool Need_BrakeRelease; @@ -235,13 +235,13 @@ class TController double fMinProximityDist; // minimalna oległość do przeszkody, jaką należy zachować double fOverhead1; // informacja o napięciu w sieci trakcyjnej (0=brak drutu, zatrzymaj!) double fOverhead2; // informacja o sposobie jazdy (-1=normalnie, 0=bez prądu, >0=z opuszczonym i - // ograniczeniem prędkości) + // ograniczeniem prędkości) int iOverheadZero; // suma bitowa jezdy bezprądowej, bity ustawiane przez pojazdy z - // podniesionymi pantografami + // podniesionymi pantografami int iOverheadDown; // suma bitowa opuszczenia pantografów, bity ustawiane przez pojazdy z - // podniesionymi pantografami + // podniesionymi pantografami double fVoltage; // uśrednione napięcie sieci: przy spadku poniżej wartości minimalnej opóźnić - // rozruch o losowy czas + // rozruch o losowy czas private: double fMaxProximityDist; // akceptowalna odległość stanięcia przed przeszkodą TStopReason eStopReason; // powód zatrzymania przy ustawieniu zerowej prędkości @@ -268,15 +268,18 @@ class TController void ControllingSet(); // znajduje człon do sterowania void AutoRewident(); // ustawia hamulce w składzie public: - Mtable::TTrainParameters *__fastcall Timetable() { return TrainParams; }; + Mtable::TTrainParameters *__fastcall Timetable() + { + return TrainParams; + }; void PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2, - const _mover::TLocation &NewLocation, TStopReason reason = stopComm); + const _mover::TLocation &NewLocation, TStopReason reason = stopComm); bool PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2, - const vector3 *NewLocation, TStopReason reason = stopComm); + const vector3 *NewLocation, TStopReason reason = stopComm); bool UpdateSituation(double dt); // uruchamiac przynajmniej raz na sekundę // procedury dotyczace rozkazow dla maszynisty void SetVelocity(double NewVel, double NewVelNext, - TStopReason r = stopNone); // uaktualnia informacje o prędkości + TStopReason r = stopNone); // uaktualnia informacje o prędkości bool SetProximityVelocity( double NewDist, double NewVelNext); // uaktualnia informacje o prędkości przy nastepnym semaforze @@ -298,8 +301,8 @@ class TController void OrdersClear(); void OrdersDump(); TController(bool AI, TDynamicObject *NewControll, bool InitPsyche, - bool primary = true // czy ma aktywnie prowadzić? - ); + bool primary = true // czy ma aktywnie prowadzić? + ); AnsiString OrderCurrent(); void WaitingSet(double Seconds); @@ -319,8 +322,7 @@ class TController TEvent *__fastcall TableCheckTrackEvent(double fDirection, TTrack *Track); void TableTraceRoute(double fDistance, TDynamicObject *pVehicle = NULL); void TableCheck(double fDistance); - TCommandType TableUpdate(double &fVelDes, double &fDist, double &fNext, - double &fAcc); + TCommandType TableUpdate(double &fVelDes, double &fDist, double &fNext, double &fAcc); void TablePurger(); private: // Ra: stare funkcje skanujące, używane do szukania sygnalizatora z tyłu @@ -342,8 +344,14 @@ class TController int StationCount(); int StationIndex(); bool IsStop(); - bool Primary() { return this ? bool(iDrivigFlags & movePrimary) : false; }; - int inline DrivigFlags() { return iDrivigFlags; }; + bool Primary() + { + return this ? bool(iDrivigFlags & movePrimary) : false; + }; + int inline DrivigFlags() + { + return iDrivigFlags; + }; void MoveTo(TDynamicObject *to); void DirectionInitial(); AnsiString TableText(int i); diff --git a/DynObj.cpp b/DynObj.cpp index 7c72b402..32f55c71 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -54,7 +54,7 @@ void TAnimPant::AKP_4E() fLenL1 = 1.22; // 1.176289 w modelach fLenU1 = 1.755; // 1.724482197 w modelach fHoriz = 0.535; // 0.54555075 przesunięcie ślizgu w długości pojazdu względem osi obrotu dolnego - // ramienia + // ramienia fHeight = 0.07; // wysokość ślizgu ponad oś obrotu fWidth = 0.635; // połowa szerokości ślizgu, 0.635 dla AKP-1 i AKP-4E fAngleL0 = DegToRad(2.8547285515689267247882521833308); @@ -68,7 +68,7 @@ void TAnimPant::AKP_4E() hvPowerWire = NULL; fWidthExtra = 0.381; //(2.032m-1.027)/2 // poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach - fHeightExtra[0] = 0.0; //+0.0762 + fHeightExtra[0] = 0.0; //+0.0762 fHeightExtra[1] = -0.01; //+0.1524 fHeightExtra[2] = -0.03; //+0.2286 fHeightExtra[3] = -0.07; //+0.3048 @@ -131,7 +131,8 @@ TAnim::~TAnim() break; } }; -void TAnim::Parovoz(){// animowanie tłoka i rozrządu parowozu +void TAnim::Parovoz(){ + // animowanie tłoka i rozrządu parowozu }; //--------------------------------------------------------------------------- TDynamicObject *__fastcall TDynamicObject::FirstFind(int &coupler_nr) @@ -288,7 +289,10 @@ TDynamicObject* TDynamicObject::GetFirstCabDynamic(int cpl_type) }; */ -void TDynamicObject::ABuSetModelShake(vector3 mShake) { modelShake = mShake; }; +void TDynamicObject::ABuSetModelShake(vector3 mShake) +{ + modelShake = mShake; +}; int TDynamicObject::GetPneumatic(bool front, bool red) { @@ -413,7 +417,7 @@ void TDynamicObject::UpdateDoorRotate(TAnim *pAnim) { // animacja drzwi - obrót if (pAnim->smAnimated) { // if (MoverParameters->DoorOpenMethod==2) //obrotowe albo dwójłomne (trzeba kombinowac - // submodelami i ShiftL=90,R=180) + // submodelami i ShiftL=90,R=180) if (pAnim->iNumber & 1) pAnim->smAnimated->SetRotate(float3(1, 0, 0), dDoorMoveR); else @@ -425,7 +429,7 @@ void TDynamicObject::UpdateDoorFold(TAnim *pAnim) { // animacja drzwi - obrót if (pAnim->smAnimated) { // if (MoverParameters->DoorOpenMethod==2) //obrotowe albo dwójłomne (trzeba kombinowac - // submodelami i ShiftL=90,R=180) + // submodelami i ShiftL=90,R=180) if (pAnim->iNumber & 1) { pAnim->smAnimated->SetRotate(float3(0, 0, 1), dDoorMoveR); @@ -849,7 +853,7 @@ void __inline TDynamicObject::ABuLittleUpdate(double ObjSqrDist) } if (MoverParameters->Battery) { // sygnały czoła pociagu //Ra: wyświetlamy bez ograniczeń odległości, by były widoczne z - // daleka + // daleka if (TestFlag(iLights[0], 1)) { btHeadSignals11.TurnOn(); @@ -899,7 +903,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindNearestObject(TTrack *Track, TDynamicObject *MyPointer, int &CouplNr) { // zwraca wskaznik do obiektu znajdujacego sie na torze (Track), którego sprzęg jest najblizszy - // kamerze + // kamerze // służy np. do łączenia i rozpinania sprzęgów // WE: Track - tor, na ktorym odbywa sie poszukiwanie // MyPointer - wskaznik do obiektu szukajacego @@ -926,7 +930,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindNearestObject(TTrack *Track, { // wektor [kamera-sprzeg0], potem [kamera-sprzeg1] // Powinno byc wyliczone, ale nie zaszkodzi drugi raz: //(bo co, jesli nie wykonuje sie obrotow wozkow?) - Ra: ale zawsze są liczone - //współrzędne sprzęgów + // współrzędne sprzęgów // Track->Dynamics[i]->modelRot.z=ABuAcos(Track->Dynamics[i]->Axle0.pPosition-Track->Dynamics[i]->Axle1.pPosition); // poz=Track->Dynamics[i]->vPosition; //pozycja środka pojazdu // kon=vector3( //położenie przodu względem środka @@ -1101,7 +1105,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindObject(TTrack *Track, int Scan 0; // to, bo (ScanDir>=0) if (Track->iCategoryFlag & 254) // trajektoria innego typu niż tor kolejowy { // dla torów nie ma sensu tego sprawdzać, rzadko co jedzie po jednej - // szynie i się mija + // szynie i się mija // Ra: mijanie samochodów wcale nie jest proste // Przesuniecie wzgledne pojazdow. Wyznaczane, zeby sprawdzic, // czy pojazdy faktycznie sie zderzaja (moga byc przesuniete @@ -1120,7 +1124,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindObject(TTrack *Track, int Scan if (RelOffsetH + RelOffsetH > MoverParameters->Dim.W + Track->Dynamics[i]->MoverParameters->Dim.W) continue; // odległość większa od połowy sumy szerokości - kolizji - // nie będzie + // nie będzie // jeśli zahaczenie jest niewielkie, a jest miejsce na poboczu, to // zjechać na pobocze } @@ -1147,7 +1151,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindObject(TTrack *Track, int Scan 1; // odwrotnie, bo (ScanDir<0) if (Track->iCategoryFlag & 254) // trajektoria innego typu niż tor kolejowy { // dla torów nie ma sensu tego sprawdzać, rzadko co jedzie po jednej - // szynie i się mija + // szynie i się mija // Ra: mijanie samochodów wcale nie jest proste // Przesunięcie względne pojazdów. Wyznaczane, żeby sprawdzić, // czy pojazdy faktycznie się zderzają (mogą być przesunięte @@ -1166,7 +1170,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindObject(TTrack *Track, int Scan if (RelOffsetH + RelOffsetH > MoverParameters->Dim.W + Track->Dynamics[i]->MoverParameters->Dim.W) continue; // odległość większa od połowy sumy szerokości - kolizji - // nie będzie + // nie będzie } iMinDist = i; // potencjalna kolizja MinDist = TestDist; // odleglość pomiędzy aktywnymi osiami pojazdów @@ -1175,7 +1179,7 @@ TDynamicObject *__fastcall TDynamicObject::ABuFindObject(TTrack *Track, int Scan } } dist += MinDist; // doliczenie odległości przeszkody albo długości odcinka do przeskanowanej - // odległości + // odległości return (iMinDist >= 0) ? Track->Dynamics[iMinDist] : NULL; } dist += Track->Length(); // doliczenie długości odcinka do przeskanowanej odległości @@ -1227,7 +1231,7 @@ void TDynamicObject::CouplersDettach(double MinDist, int MyScanDir) if ((PrevConnectedNo ? PrevConnected->NextConnected : PrevConnected->PrevConnected) == this) { // Ra: nie rozłączamy znalezionego, jeżeli nie do nas podłączony (może jechać w - // innym kierunku) + // innym kierunku) PrevConnected->MoverParameters->Couplers[PrevConnectedNo].Connected = NULL; if (PrevConnectedNo == 0) { @@ -1257,7 +1261,7 @@ void TDynamicObject::CouplersDettach(double MinDist, int MyScanDir) if ((NextConnectedNo ? NextConnected->NextConnected : NextConnected->PrevConnected) == this) { // Ra: nie rozłączamy znalezionego, jeżeli nie do nas podłączony (może jechać w - // innym kierunku) + // innym kierunku) NextConnected->MoverParameters->Couplers[NextConnectedNo].Connected = NULL; if (NextConnectedNo == 0) { @@ -1289,7 +1293,7 @@ void TDynamicObject::ABuScanObjects(int ScanDir, double ScanDist) FirstAxle->GetTrack(); // tor na którym "stoi" skrajny wózek (może być inny niż tor pojazdu) if (FirstAxle->GetDirection() < 0) // czy oś jest ustawiona w stronę Point1? ScanDir = -ScanDir; // jeśli tak, to kierunek szukania będzie przeciwny (teraz względem - // toru) + // toru) Byte MyCouplFound; // numer sprzęgu do podłączenia w obiekcie szukajacym MyCouplFound = (MyScanDir < 0) ? 1 : 0; Byte CouplFound; // numer sprzęgu w znalezionym obiekcie (znaleziony wypełni) @@ -1511,7 +1515,7 @@ TDynamicObject::TDynamicObject() cp1 = cp2 = sp1 = sp2 = 0; iDirection = 1; // stoi w kierunku tradycyjnym (0, gdy jest odwrócony) iAxleFirst = 0; // numer pierwszej osi w kierunku ruchu (przełączenie następuje, gdy osie sa na - // tym samym torze) + // tym samym torze) iInventory = 0; // flagi bitowe posiadanych submodeli (zaktualizuje się po wczytaniu MMD) 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) @@ -1536,7 +1540,7 @@ TDynamicObject::TDynamicObject() fScanDist = 300.0; // odległość skanowania, zwiększana w trybie łączenia ctOwner = NULL; // na początek niczyj iOverheadMask = 0; // maska przydzielana przez AI pojazdom posiadającym pantograf, aby wymuszały - // jazdę bezprądową + // jazdę bezprądową tmpTraction.TractionVoltage = 0; // Ra 2F1H: prowizorka, trzeba przechować napięcie, żeby nie wywalało WS pod izolatorem fAdjustment = 0.0; // korekcja odległości pomiędzy wózkami (np. na łukach) @@ -1651,7 +1655,7 @@ double TDynamicObject::Init( int dlugosc = MoreParams.Length(); ActPar = MoreParams.SubString(1, kropka - 1).UpperCase(); // pierwszy parametr; MoreParams = MoreParams.SubString(kropka + 1, dlugosc - kropka); // reszta do dalszej - // obrobki + // obrobki kropka = MoreParams.Pos("."); if (ActPar.SubString(1, 1) == "B") // jesli hamulce @@ -1780,13 +1784,13 @@ double TDynamicObject::Init( { // ustawianie samochodow na poboczu albo na środku drogi if (Track->fTrackWidth < 3.5) // jeśli droga wąska MoverParameters->OffsetTrackH = 0.0; // to stawiamy na środku, niezależnie od stanu - // ruchu + // ruchu else if (driveractive) // od 3.5m do 8.0m jedzie po środku pasa, dla szerszych w odległości - // 1.5m + // 1.5m MoverParameters->OffsetTrackH = Track->fTrackWidth <= 8.0 ? -Track->fTrackWidth * 0.25 : -1.5; else // jak stoi, to kołem na poboczu i pobieramy szerokość razem z poboczem, ale nie z - // chodnikiem + // chodnikiem MoverParameters->OffsetTrackH = -0.5 * (Track->WidthTotal() - MoverParameters->Dim.W) + 0.05; iHornWarning = 0; // nie będzie trąbienia po podaniu zezwolenia na jazdę @@ -1889,7 +1893,7 @@ double TDynamicObject::Init( smBuforPrawy[i]->WillBeAnimated(); } for (int i = 0; i < iAxles; i++) // wyszukiwanie osi (0 jest na końcu, dlatego dodajemy - // długość?) + // długość?) dRailPosition[i] = (Reversed ? -dWheelsPosition[i] : (dWheelsPosition[i] + MoverParameters->Dim.L)) + fDist; @@ -1943,7 +1947,7 @@ double TDynamicObject::Init( break; } Move(0.0001); // potrzebne do wyliczenia aktualnej pozycji; nie może być zero, bo nie przeliczy - // pozycji + // pozycji // teraz jeszcze trzeba przypisać pojazdy do nowego toru, bo przesuwanie początkowe osi nie // zrobiło tego ABuCheckMyTrack(); // zmiana toru na ten, co oś Axle0 (oś z przodu) @@ -2009,11 +2013,11 @@ void TDynamicObject::Move(double fDistance) bEnabled &= Axle1.Move(fDistance, iAxleFirst); // oś z tyłu pojazdu prusza się pierwsza bEnabled &= Axle0.Move(fDistance /*-fAdjustment*/, !iAxleFirst); // oś z przodu pojazdu } - else //gf: bez wywolania Move na postoju nie ma event0 - { - bEnabled&=Axle1.Move(fDistance,iAxleFirst); //oś z tyłu pojazdu prusza się pierwsza - bEnabled&=Axle0.Move(fDistance,!iAxleFirst); //oś z przodu pojazdu - } + else // gf: bez wywolania Move na postoju nie ma event0 + { + bEnabled &= Axle1.Move(fDistance, iAxleFirst); // oś z tyłu pojazdu prusza się pierwsza + bEnabled &= Axle0.Move(fDistance, !iAxleFirst); // oś z przodu pojazdu + } if (fDistance != 0.0) // nie liczyć ponownie, jeśli stoi { // liczenie pozycji pojazdu tutaj, bo jest używane w wielu miejscach vPosition = 0.5 * (Axle1.pPosition + Axle0.pPosition); //środek między skrajnymi osiami @@ -2049,7 +2053,7 @@ void TDynamicObject::Move(double fDistance) } mMatrix.Identity(); // to też można by od razu policzyć, ale potrzebne jest do wyświetlania mMatrix.BasisChange(vLeft, vUp, vFront); // przesuwanie jest jednak rzadziej niż - // renderowanie + // renderowanie mMatrix = Inverse(mMatrix); // wyliczenie macierzy dla pojazdu (potrzebna tylko do wyświetlania?) // if (MoverParameters->CategoryFlag&2) @@ -2076,7 +2080,7 @@ void TDynamicObject::Move(double fDistance) TTrack *t0 = Axle0.GetTrack(); // już po przesunięciu TTrack *t1 = Axle1.GetTrack(); if ((t0->eEnvironment == e_flat) && (t1->eEnvironment == e_flat)) // może być - // e_bridge... + // e_bridge... fShade = 0.0; // standardowe oświetlenie else { // jeżeli te tory mają niestandardowy stopień zacienienia (e_canyon, e_tunnel) @@ -2171,11 +2175,11 @@ void TDynamicObject::AttachPrev(TDynamicObject *Object, int iType) if ((MoverParameters->Power < 1.0) && (Object->MoverParameters->Power > 1.0)) // my nie mamy mocy, ale ten drugi ma iLights = Object->MoverParameters->iLights; // to w tym z mocą będą światła - // załączane, a w tym bez tylko widoczne + // załączane, a w tym bez tylko widoczne else if ((MoverParameters->Power > 1.0) && (Object->MoverParameters->Power < 1.0)) // my mamy moc, ale ten drugi nie ma Object->iLights = MoverParameters->iLights; // to w tym z mocą będą światła - // załączane, a w tym bez tylko widoczne + // załączane, a w tym bez tylko widoczne return; // SetPneumatic(1,1); //Ra: to i tak się nie wykonywało po return // SetPneumatic(1,0); @@ -2337,10 +2341,10 @@ bool TDynamicObject::Update(double dt, double dt1) // if ((!MoverParameters->PantCompFlag)&&(MoverParameters->CompressedVolume>=2.8)) // MoverParameters->PantVolume=MoverParameters->CompressedVolume; if (MoverParameters->PantPress < (MoverParameters->TrainType == dt_EZT ? 2.4 : 3.5)) - { // 3.5 wg http://www.transportszynowy.pl/eu06-07pneumat.php + { // 3.5 wg http://www.transportszynowy.pl/eu06-07pneumat.php //"Wyłączniki ciśnieniowe odbieraków prądu wyłączają sterowanie wyłącznika szybkiego - //oraz uniemożliwiają podniesienie odbieraków prądu, gdy w instalacji rozrządu - //ciśnienie spadnie poniżej wartości 3,5 bara." + // oraz uniemożliwiają podniesienie odbieraków prądu, gdy w instalacji rozrządu + // ciśnienie spadnie poniżej wartości 3,5 bara." // Ra 2013-12: Niebugocław mówi, że w EZT podnoszą się przy 2.5 // if (!MoverParameters->PantCompFlag) // MoverParameters->PantVolume=MoverParameters->CompressedVolume; @@ -2375,7 +2379,7 @@ bool TDynamicObject::Update(double dt, double dt1) ts.R = -0.5 * MoverParameters->BDist / sin(ts.R * 0.5); if ((ts.R > 15000.0) || (ts.R < -15000.0)) ts.R = 0.0; // szkoda czasu na zbyt duże promienie, 4km to promień nie wymagający - // przechyłki + // przechyłki } else ts.R = 0.0; @@ -2383,7 +2387,7 @@ bool TDynamicObject::Update(double dt, double dt1) // Ra: składową pochylenia wzdłużnego mamy policzoną w jednostkowym wektorze vFront ts.Len = 1.0; // Max0R(MoverParameters->BDist,MoverParameters->ADist); ts.dHtrack = -vFront.y; // Axle1.pPosition.y-Axle0.pPosition.y; //wektor między skrajnymi osiami - // (!!!odwrotny) + // (!!!odwrotny) ts.dHrail = (Axle1.GetRoll() + Axle0.GetRoll()) * 0.5; //średnia przechyłka pudła // TTrackParam tp; tp.Width = MyTrack->fTrackWidth; @@ -2447,14 +2451,14 @@ bool TDynamicObject::Update(double dt, double dt1) */ NoVoltTime = NoVoltTime + dt; if (NoVoltTime > 0.2) // jeśli brak zasilania dłużej niż 0.2 sekundy (25km/h pod - // izolatorem daje 0.15s) + // izolatorem daje 0.15s) { // Ra 2F1H: prowizorka, trzeba przechować napięcie, żeby nie wywalało WS pod - // izolatorem + // izolatorem if (MoverParameters->Vel > 0.5) // jeśli jedzie if (MoverParameters->PantFrontUp || MoverParameters->PantRearUp) // Ra 2014-07: doraźna blokada logowania - // zimnych lokomotyw - zrobić to trzeba - // inaczej + // zimnych lokomotyw - zrobić to trzeba + // inaczej // if (NoVoltTime>0.02) //tu można ograniczyć czas rozłączenia // if (DebugModeFlag) //logowanie nie zawsze if (MoverParameters->Mains) @@ -2744,7 +2748,7 @@ bool TDynamicObject::Update(double dt, double dt1) if (pants[0].fParamPants->hvPowerWire && pants[1].fParamPants->hvPowerWire) // i oba podłączone do drutów fPantCurrent = fCurrent * 0.5; // to dzielimy prąd równo na oba (trochę bez - // sensu, ale lepiej tak niż podwoić prąd) + // sensu, ale lepiej tak niż podwoić prąd) for (int i = 0; i < iAnimType[ANIM_PANTS]; ++i) { // pętla po wszystkich pantografach p = pants[i].fParamPants; @@ -2780,7 +2784,7 @@ bool TDynamicObject::Update(double dt, double dt1) (MoverParameters->PantRearVolt == 0.0)) sPantUp.Play(vol, 0, MechInside, vPosition); if (p->hvPowerWire) // TODO: wyliczyć trzeba prąd przypadający na pantograf i - // wstawić do GetVoltage() + // wstawić do GetVoltage() { MoverParameters->PantFrontVolt = p->hvPowerWire->VoltageGet(MoverParameters->Voltage, fPantCurrent); @@ -2804,7 +2808,7 @@ bool TDynamicObject::Update(double dt, double dt1) (MoverParameters->PantFrontVolt == 0.0)) sPantUp.Play(vol, 0, MechInside, vPosition); if (p->hvPowerWire) // TODO: wyliczyć trzeba prąd przypadający na pantograf i - // wstawić do GetVoltage() + // wstawić do GetVoltage() { MoverParameters->PantRearVolt = p->hvPowerWire->VoltageGet(MoverParameters->Voltage, fPantCurrent); @@ -2833,7 +2837,7 @@ bool TDynamicObject::Update(double dt, double dt1) { if (PantDiff > 0.001) // jeśli nie dolega do drutu { // jeśli poprzednia wysokość jest mniejsza niż pożądana, zwiększyć kąt dolnego - // ramienia zgodnie z ciśnieniem + // ramienia zgodnie z ciśnieniem if (pantspeedfactor > 0.55 * PantDiff) // 0.55 to około pochodna kąta po wysokości k += 0.55 * PantDiff; // ograniczenie "skoku" w danej klatce @@ -2889,7 +2893,7 @@ bool TDynamicObject::Update(double dt, double dt1) { // to coś wyłączało dźwięk silnika w ST43! MoverParameters->ConverterFlag = false; MoverParameters->CompressorFlag = false; // Ra: to jest wątpliwe - wyłączenie - // sprężarki powinno być w jednym miejscu! + // sprężarki powinno być w jednym miejscu! } } } @@ -3013,7 +3017,7 @@ bool TDynamicObject::Update(double dt, double dt1) else { CouplCounter = 25; // a bezruch nie, ale trzeba zaktualizować odległość, bo zawalidroga może - // sobie pojechać + // sobie pojechać } if (MoverParameters->DerailReason > 0) { @@ -3366,7 +3370,7 @@ void TDynamicObject::RenderSounds() if ((MoverParameters->DynamicBrakeFlag) && (MoverParameters->EnginePower > 0.1) && (MoverParameters->EngineType == ElectricSeriesMotor)) // Szociu - 29012012 - jeżeli uruchomiony jest hamulec - // elektrodynamiczny, odtwarzany jest dźwięk silnika + // elektrodynamiczny, odtwarzany jest dźwięk silnika vol += 0.8; if (enginevolume > 0.0001) @@ -3601,7 +3605,7 @@ void TDynamicObject::RenderSounds() if (MoverParameters->DoorClosureWarning) { if (MoverParameters->DepartureSignal) // NBMX sygnal odjazdu, MC: pod warunkiem ze jest - // zdefiniowane w chk + // zdefiniowane w chk sDepartureSignal.TurnOn(MechInside, GetPosition()); else sDepartureSignal.TurnOff(MechInside, GetPosition()); @@ -3755,7 +3759,7 @@ void TDynamicObject::RenderAlpha() // McZapkie-250202 // wczytywanie pliku z danymi multimedialnymi (dzwieki) void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, - AnsiString ReplacableSkin) + AnsiString ReplacableSkin) { double dSDist; TFileStream *fs; @@ -3806,7 +3810,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, } if ((i = asModel.Pos(",")) > 0) { // Ra 2015-01: może szukać przecinka w nazwie modelu, a po przecinku była by liczba - // tekstur? + // tekstur? if (i < asModel.Length()) iMultiTex = asModel[i + 1] - '0'; if (iMultiTex < 0) @@ -3866,7 +3870,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, if (!ReplacableSkin.IsEmpty()) { // próba wycięcia trzeciej nazwy iMultiTex = -4; // skoro zostało coś po kresce, to są co - // najmniej cztery + // najmniej cztery ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID( NULL, NULL, @@ -3902,7 +3906,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, Global::iDynamicFiltering); if (ReplacableSkinID[4]) iMultiTex = 4; // jak są cztery, to blokujemy podmianę tekstury - // rozkładem + // rozkładem } } } @@ -3918,22 +3922,22 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering); if (TTexturesManager::GetAlpha(ReplacableSkinID[1])) iAlpha = 0x31310031; // tekstura -1 z kanałem alfa - nie renderować w cyklu - // nieprzezroczystych + // nieprzezroczystych else iAlpha = 0x30300030; // wszystkie tekstury nieprzezroczyste - nie renderować w - // cyklu przezroczystych + // cyklu przezroczystych if (ReplacableSkinID[2]) if (TTexturesManager::GetAlpha(ReplacableSkinID[2])) iAlpha |= 0x02020002; // tekstura -2 z kanałem alfa - nie renderować w cyklu - // nieprzezroczystych + // nieprzezroczystych if (ReplacableSkinID[3]) if (TTexturesManager::GetAlpha(ReplacableSkinID[3])) iAlpha |= 0x04040004; // tekstura -3 z kanałem alfa - nie renderować w cyklu - // nieprzezroczystych + // nieprzezroczystych if (ReplacableSkinID[4]) if (TTexturesManager::GetAlpha(ReplacableSkinID[4])) iAlpha |= 0x08080008; // tekstura -4 z kanałem alfa - nie renderować w cyklu - // nieprzezroczystych + // nieprzezroczystych } // Winger 040304 - ladowanie przedsionkow dla EZT if (MoverParameters->TrainType == dt_EZT) @@ -3984,7 +3988,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, str = Parser->GetNextSymbol().LowerCase(); if (str == AnsiString("animations:")) { // Ra: ustawienie ilości poszczególnych animacji - musi być jako pierwsze, inaczej - // ilości będą domyślne + // ilości będą domyślne if (!pAnimations) { // jeśli nie ma jeszcze tabeli animacji, można odczytać nowe ilości int co = 0, ile; @@ -3992,7 +3996,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, do { // kolejne liczby to ilość animacj, -1 to znacznik końca ile = Parser->GetNextSymbol().ToIntDef(-1); // ilość danego typu - // animacji + // animacji // if (co==ANIM_PANTS) // if (!Global::bLoadTraction) // if (!DebugModeFlag) //w debugmode pantografy mają "niby działać" @@ -4030,7 +4034,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, if (j == ANIM_PANTS) // zliczamy poprzednie animacje if (!pants) if (iAnimType[ANIM_PANTS]) // o ile jakieś pantografy są (a - // domyślnie są) + // domyślnie są) pants = pAnimations + k; // zapamiętanie na potrzeby wyszukania submodeli pAnimations[k].iShift = sm; // przesunięcie do przydzielenia wskaźnika @@ -4082,7 +4086,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, if (pAnimations[i].smAnimated) { //++iAnimatedAxles; pAnimations[i].smAnimated->WillBeAnimated(); // wyłączenie optymalizacji - // transformu + // transformu pAnimations[i].yUpdate = UpdateAxle; // animacja osi pAnimations[i].fMaxDist = 50 * @@ -4092,8 +4096,8 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, MoverParameters ->WheelDiameter; // 50m do kwadratu, a średnica do trzeciej pAnimations[i].fMaxDist *= Global::fDistanceFactor; // współczynnik - // przeliczeniowy - // jakości ekranu + // przeliczeniowy + // jakości ekranu } } // Ra: ustawianie indeksów osi @@ -4121,12 +4125,12 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, else if ((k >= '1') && (k <= '9')) { pAnimations[i++].dWheelAngle = dWheelAngle + m; // obrót osi - // tocznych + // tocznych --k; // następna będzie albo taka sama, albo bierzemy kolejny znak } else k = MoverParameters->AxleArangement[j++]; // pobranie kolejnego - // znaku + // znaku } } } @@ -4162,17 +4166,17 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, // m(3)[1]=m[3][1]+0.054; //w górę o wysokość ślizgu (na razie tak) if ((mdModel->Flags() & 0x8000) == 0) // jeśli wczytano z T3D m.InitialRotate(); // może być potrzebny dodatkowy obrót, jeśli - // wczytano z T3D, tzn. przed wykonaniem - // Init() + // wczytano z T3D, tzn. przed wykonaniem + // Init() pants[i].fParamPants->vPos.z = m[3][0]; // przesunięcie w bok (asymetria) pants[i].fParamPants->vPos.y = m[3][1]; // przesunięcie w górę odczytane z modelu if ((sm = pants[i].smElement[0]->ChildGet()) != NULL) { // jeśli ma potomny, można policzyć długość (odległość potomnego - // od osi obrotu) + // od osi obrotu) m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik, nie - // trzeba kopiować + // trzeba kopiować // może trzeba: pobrać macierz dolnego ramienia, wyzerować // przesunięcie, przemnożyć przez macierz górnego pants[i].fParamPants->fHoriz = -fabs(m[3][1]); @@ -4189,18 +4193,18 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, // pants[i].fParamPants->fAngleL0=pants[i].fParamPants->fAngleL; pants[i].fParamPants->fAngleL = pants[i].fParamPants->fAngleL0; // początkowy kąt dolnego - // ramienia + // ramienia if ((sm = sm->ChildGet()) != NULL) { // jeśli dalej jest ślizg, można policzyć długość górnego - // ramienia + // ramienia m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik, - // nie trzeba kopiować + // nie trzeba kopiować // trzeba by uwzględnić macierz dolnego ramienia, żeby // uzyskać kąt do poziomu... pants[i].fParamPants->fHoriz += fabs(m(3)[1]); // różnica długości rzutów ramion na - // płaszczyznę podstawy (jedna dodatnia, - // druga ujemna) + // płaszczyznę podstawy (jedna dodatnia, + // druga ujemna) pants[i].fParamPants->fLenU1 = hypot(m[3][1], m[3][2]); // po osi OX nie potrzeba // pants[i].fParamPants->pantu=acos((1.22*cos(pants[i].fParamPants->fAngleL)+0.535)/1.755); @@ -4210,7 +4214,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, pants[i].fParamPants->fAngleU0 = atan2(fabs(m[3][2]), fabs(m[3][1])); // początkowy kąt górnego - // ramienia, odczytany z modelu + // ramienia, odczytany z modelu // if (pants[i].fParamPants->fAngleU0fAngleU0+=M_PI; //gdyby w odwrotną // stronę wyszło @@ -4225,25 +4229,25 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, // Ra: ze względu na to, że niektóre modele pantografów są // zrąbane, ich mierzenie ma obecnie ograniczony sens sm->ParentMatrix(&m); // pobranie macierzy transformacji - // pivota ślizgu względem wstawienia - // pojazdu + // pivota ślizgu względem wstawienia + // pojazdu if ((mdModel->Flags() & 0x8000) == 0) // jeśli wczytano z - // T3D + // T3D m.InitialRotate(); // może być potrzebny dodatkowy - // obrót, jeśli wczytano z T3D, tzn. - // przed wykonaniem Init() + // obrót, jeśli wczytano z T3D, tzn. + // przed wykonaniem Init() float det = Det(m); if (fabs(det - 1.0) < 0.001) // dopuszczamy 1 promil błędu - // na skalowaniu ślizgu + // na skalowaniu ślizgu { // skalowanie jest w normie, można pobrać wymiary z modelu pants[i].fParamPants->fHeight = sm->MaxY(m); // przeliczenie maksimum wysokości - // wierzchołków względem macierzy + // wierzchołków względem macierzy pants[i].fParamPants->fHeight -= m[3][1]; // odjęcie wysokości pivota ślizgu pants[i].fParamPants->vPos.x = m[3][2]; // przy okazji odczytać z modelu pozycję w - // długości + // długości // ErrorLog("Model OK: "+asModel+", // height="+pants[i].fParamPants->fHeight); // ErrorLog("Model OK: "+asModel+", @@ -4282,7 +4286,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, if (pants[i].fParamPants->vPos.y == 0.0) { // jeśli pierwsze ramię nie ustawiło tej wartości, próbować drugim //!!!! docelowo zrobić niezależną animację ramion z każdej - //strony + // strony m = float4x4( *sm->GetMatrix()); // skopiowanie, bo będziemy mnożyć m(3)[1] = @@ -4345,7 +4349,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, double pant1x = Parser->GetNextSymbol().ToDouble(); double pant2x = Parser->GetNextSymbol().ToDouble(); double pant1h = Parser->GetNextSymbol().ToDouble(); // wysokość pierwszego - // ślizgu + // ślizgu double pant2h = Parser->GetNextSymbol().ToDouble(); // wysokość drugiego ślizgu if (pant1h > 0.5) pant1h = pant2h; // tu może być zbyt duża wartość @@ -4484,8 +4488,8 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, if (pAnimations[i + j].smAnimated) { //++iAnimatedDoors; pAnimations[i + j].smAnimated->WillBeAnimated(); // wyłączenie - // optymalizacji - // transformu + // optymalizacji + // transformu switch (MoverParameters->DoorOpenMethod) { // od razu zapinamy potrzebny typ animacji case 1: @@ -4557,7 +4561,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, ((MoverParameters->EngineType == ElectricSeriesMotor) || (MoverParameters->EngineType == ElectricInductionMotor)))) // plik z dzwiekiem wentylatora, mnozniki i - // ofsety amp. i czest. + // ofsety amp. i czest. { str = Parser->GetNextSymbol(); rsWentylator.Init(str.c_str(), Parser->GetNextSymbol().ToDouble(), @@ -4630,7 +4634,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, rsDerailment.FA = 0.0; } else if (str == AnsiString("dieselinc:")) // dzwiek przy wlazeniu na obroty - // woodwarda + // woodwarda { str = Parser->GetNextSymbol(); rsDiesielInc.Init(str.c_str(), Parser->GetNextSymbol().ToDouble(), @@ -4769,7 +4773,7 @@ void TDynamicObject::RadioStop() { // zatrzymanie pojazdu if (Mechanik) // o ile ktoś go prowadzi if (MoverParameters->SecuritySystem.RadioStop) // jeśli pojazd ma RadioStop i jest on - // aktywny + // aktywny Mechanik->PutCommand("Emergency_brake", 1.0, 1.0, &vPosition, stopRadio); }; @@ -4828,7 +4832,7 @@ int TDynamicObject::DirectionSet(int d) ABuScanObjects(-1, 300); } return 1 - (iDirection ? NextConnectedNo : PrevConnectedNo); // informacja o położeniu - // następnego + // następnego }; TDynamicObject *__fastcall TDynamicObject::PrevAny() @@ -4865,7 +4869,7 @@ double TDynamicObject::NextDistance(double d) TDynamicObject *__fastcall TDynamicObject::Neightbour(int &dir) { // ustalenie następnego (1) albo poprzedniego (0) w składzie bez względu na prawidłowość - // iDirection + // iDirection int d = dir; // zapamiętanie kierunku dir = 1 - (dir ? NextConnectedNo : PrevConnectedNo); // nowa wartość return (d ? (MoverParameters->Couplers[1].CouplingFlag ? NextConnected : NULL) : @@ -4891,14 +4895,14 @@ void TDynamicObject::CoupleDist() if (MoverParameters->Couplers[0].CouplingFlag == 0) // jeśli wirtualny if (MoverParameters->Couplers[0].CoupleDist < 300.0) // i mniej niż 300m { // przez MoverParameters->Couplers[0].Connected nie da się dostać do DynObj, stąd - // prowizorka + // prowizorka // WriteLog("Collision of // "+AnsiString(MoverParameters->Couplers[0].CoupleDist)+"m detected by // "+asName+":0."); w = 0.5 * (MoverParameters->Couplers[0].Connected->Dim.W + MoverParameters->Dim.W); // minimalna odległość minięcia d = -DotProduct(vLeft, vCoulpler[0]); // odległość prostej ruchu od początku - // układu współrzędnych + // układu współrzędnych d = fabs( DotProduct(vLeft, ((TMoverParameters *)(MoverParameters->Couplers[0].Connected)) @@ -4919,7 +4923,7 @@ void TDynamicObject::CoupleDist() w = 0.5 * (MoverParameters->Couplers[1].Connected->Dim.W + MoverParameters->Dim.W); // minimalna odległość minięcia d = -DotProduct(vLeft, vCoulpler[1]); // odległość prostej ruchu od początku - // układu współrzędnych + // układu współrzędnych d = fabs( DotProduct(vLeft, ((TMoverParameters *)(MoverParameters->Couplers[1].Connected)) @@ -4935,7 +4939,7 @@ void TDynamicObject::CoupleDist() TDynamicObject *__fastcall TDynamicObject::ControlledFind() { // taka proteza: chcę podłączyć kabinę EN57 bezpośrednio z silnikowym, aby nie robić tego przez - // ukrotnienie + // ukrotnienie // drugi silnikowy i tak musi być ukrotniony, podobnie jak kolejna jednostka // lepiej by było przesyłać komendy sterowania, co jednak wymaga przebudowy transmisji komend // (LD) diff --git a/DynObj.h b/DynObj.h index 6680302a..854e1a46 100644 --- a/DynObj.h +++ b/DynObj.h @@ -102,13 +102,13 @@ class TAnimPant class TAnim { // klasa animowanej części pojazdu (koła, drzwi, pantografy, burty, napęd parowozu, siłowniki - // itd.) + // itd.) public: union { TSubModel *smAnimated; // animowany submodel (jeśli tylko jeden, np. oś) TSubModel **smElement; // jeśli animowanych elementów jest więcej (pantograf, napęd - // parowozu) + // parowozu) int iShift; // przesunięcie przed przydzieleniem wskaźnika }; union @@ -153,7 +153,7 @@ class TDynamicObject TTrackFollower Axle0; // oś z przodu (od sprzęgu 0) TTrackFollower Axle1; // oś z tyłu (od sprzęgu 1) int iAxleFirst; // numer pierwszej osi w kierunku ruchu (oś wiążąca pojazd z torem i wyzwalająca - // eventy) + // eventy) float fAxleDist; // rozstaw wózków albo osi do liczenia proporcji zacienienia vector3 modelRot; // obrot pudła względem świata - do przeanalizowania, czy potrzebne!!! // bool bCameraNear; //blisko kamer są potrzebne dodatkowe obliczenia szczegółów @@ -189,7 +189,7 @@ class TDynamicObject TSubModel ** pAnimated; // lista animowanych submodeli (może być ich więcej niż obiektów animujących) double dWheelAngle[3]; // kąty obrotu kół: 0=przednie toczne, 1=napędzające i wiązary, 2=tylne - // toczne + // toczne void UpdateNone(TAnim *pAnim){}; // animacja pusta (funkcje ustawiania submodeli, gdy blisko kamery) void UpdateAxle(TAnim *pAnim); // animacja osi @@ -332,20 +332,32 @@ class TDynamicObject public: int *iLights; // wskaźnik na bity zapalonych świateł (własne albo innego członu) double fTrackBlock; // odległość do przeszkody do dalszego ruchu (wykrywanie kolizji z innym - // pojazdem) + // pojazdem) TDynamicObject *__fastcall PrevAny(); TDynamicObject *__fastcall Prev(); TDynamicObject *__fastcall Next(); TDynamicObject *__fastcall NextC(int C); double NextDistance(double d = -1.0); - void SetdMoveLen(double dMoveLen) { MoverParameters->dMoveLen = dMoveLen; } - void ResetdMoveLen() { MoverParameters->dMoveLen = 0; } - double GetdMoveLen() { return MoverParameters->dMoveLen; } + void SetdMoveLen(double dMoveLen) + { + MoverParameters->dMoveLen = dMoveLen; + } + void ResetdMoveLen() + { + MoverParameters->dMoveLen = 0; + } + double GetdMoveLen() + { + return MoverParameters->dMoveLen; + } int GetPneumatic(bool front, bool red); void SetPneumatic(bool front, bool red); AnsiString asName; - AnsiString GetName() { return this ? asName : AnsiString(""); }; + AnsiString GetName() + { + return this ? asName : AnsiString(""); + }; TRealSound rsDiesielInc; // youBy TRealSound rscurve; // youBy @@ -375,10 +387,10 @@ class TDynamicObject int iAlpha; // maska przezroczystości tekstur int iMultiTex; //<0 tekstury wskazane wpisem, >0 tekstury z przecinkami, =0 jedna int iOverheadMask; // maska przydzielana przez AI pojazdom posiadającym pantograf, aby wymuszały - // jazdę bezprądową + // jazdę bezprądową TTractionParam tmpTraction; double fAdjustment; // korekcja - docelowo przenieść do TrkFoll.cpp wraz z odległością od - // poprzedniego + // poprzedniego TDynamicObject(); ~TDynamicObject(); double TDynamicObject::Init( // zwraca długość pojazdu albo 0, jeśli błąd @@ -395,7 +407,10 @@ class TDynamicObject void Render(); void RenderAlpha(); void RenderSounds(); - inline vector3 GetPosition() { return vPosition; }; + inline vector3 GetPosition() + { + return vPosition; + }; inline vector3 HeadPosition() { return vCoulpler[iDirection ^ 1]; @@ -408,13 +423,34 @@ class TDynamicObject { return iAxleFirst ? Axle1.pPosition : Axle0.pPosition; }; - inline vector3 VectorFront() { return vFront; }; - inline vector3 VectorUp() { return vUp; }; - inline vector3 VectorLeft() { return vLeft; }; - inline double *__fastcall Matrix() { return mMatrix.getArray(); }; - inline double GetVelocity() { return MoverParameters->Vel; }; - inline double GetLength() { return MoverParameters->Dim.L; }; - inline double GetWidth() { return MoverParameters->Dim.W; }; + inline vector3 VectorFront() + { + return vFront; + }; + inline vector3 VectorUp() + { + return vUp; + }; + inline vector3 VectorLeft() + { + return vLeft; + }; + inline double *__fastcall Matrix() + { + return mMatrix.getArray(); + }; + inline double GetVelocity() + { + return MoverParameters->Vel; + }; + inline double GetLength() + { + return MoverParameters->Dim.L; + }; + inline double GetWidth() + { + return MoverParameters->Dim.W; + }; inline TTrack *__fastcall GetTrack() { return (iAxleFirst ? Axle1.GetTrack() : Axle0.GetTrack()); @@ -422,8 +458,7 @@ class TDynamicObject // void UpdatePos(); // McZapkie-260202 - void LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, - AnsiString ReplacableSkin); + void LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName, AnsiString ReplacableSkin); inline double ABuGetDirection() // ABu. { @@ -463,7 +498,7 @@ class TDynamicObject TDynamicObject *__fastcall ControlledFind(); void ParamSet(int what, int into); int RouteWish(TTrack *tr); // zapytanie do AI, po którym segmencie skrzyżowania - // jechać + // jechać void DestinationSet(AnsiString to); AnsiString TextureTest(AnsiString &name); void OverheadTrack(float o); diff --git a/EU07.cpp b/EU07.cpp index 1c4879e1..bdfadfa6 100644 --- a/EU07.cpp +++ b/EU07.cpp @@ -83,7 +83,7 @@ USEUNIT("Console\LPT.cpp"); //--------------------------------------------------------------------------- #include "World.h" -HDC hDC = NULL; // Private GDI Device Context +HDC hDC = NULL; // Private GDI Device Context HGLRC hRC = NULL; // Permanent Rendering Context HWND hWnd = NULL; // Holds Our Window Handle @@ -122,15 +122,15 @@ GLvoid ReSizeGLScene(GLsizei width, GLsizei height) // resize and initialize the { WindowWidth = width; WindowHeight = height; - if (height == 0) // prevent a divide by zero by - height = 1; // making height equal one + if (height == 0) // prevent a divide by zero by + height = 1; // making height equal one glViewport(0, 0, width, height); // Reset The Current Viewport - glMatrixMode(GL_PROJECTION); // select the Projection Matrix - glLoadIdentity(); // reset the Projection Matrix + glMatrixMode(GL_PROJECTION); // select the Projection Matrix + glLoadIdentity(); // reset the Projection Matrix // calculate the aspect ratio of the window gluPerspective(45.0f, (GLdouble)width / (GLdouble)height, 0.2f, 2500.0f); glMatrixMode(GL_MODELVIEW); // select the Modelview Matrix - glLoadIdentity(); // reset the Modelview Matrix + glLoadIdentity(); // reset the Modelview Matrix } //--------------------------------------------------------------------------- @@ -172,7 +172,7 @@ GLvoid KillGLWindow(GLvoid) // properly kill the window if (fullscreen) // Are We In Fullscreen Mode? { ChangeDisplaySettings(NULL, 0); // if so switch back to the desktop - ShowCursor(TRUE); // show mouse pointer + ShowCursor(TRUE); // show mouse pointer } // KillFont(); } @@ -186,31 +186,31 @@ GLvoid KillGLWindow(GLvoid) // properly kill the window BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscreenflag) { - GLuint PixelFormat; // holds the results after searching for a match - HINSTANCE hInstance; // holds the instance of the application - WNDCLASS wc; // windows class structure - DWORD dwExStyle; // window extended style - DWORD dwStyle; // window style - RECT WindowRect; // grabs rectangle upper left / lower right values - WindowRect.left = (long)0; // set left value to 0 - WindowRect.right = (long)width; // set right value to requested width - WindowRect.top = (long)0; // set top value to 0 + GLuint PixelFormat; // holds the results after searching for a match + HINSTANCE hInstance; // holds the instance of the application + WNDCLASS wc; // windows class structure + DWORD dwExStyle; // window extended style + DWORD dwStyle; // window style + RECT WindowRect; // grabs rectangle upper left / lower right values + WindowRect.left = (long)0; // set left value to 0 + WindowRect.right = (long)width; // set right value to requested width + WindowRect.top = (long)0; // set top value to 0 WindowRect.bottom = (long)height; // set bottom value to requested height fullscreen = fullscreenflag; // set the global fullscreen flag - hInstance = GetModuleHandle(NULL); // grab an instance for our window + hInstance = GetModuleHandle(NULL); // grab an instance for our window wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // redraw on size, and own DC for window. - wc.lpfnWndProc = (WNDPROC)WndProc; // wndproc handles messages - wc.cbClsExtra = 0; // no extra window data - wc.cbWndExtra = 0; // no extra window data - wc.hInstance = hInstance; // set the instance - wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // load the default icon - wc.hCursor = LoadCursor(NULL, IDC_ARROW); // load the arrow pointer - wc.hbrBackground = NULL; // no background required for GL - wc.lpszMenuName = NULL; // we don't want a menu + wc.lpfnWndProc = (WNDPROC)WndProc; // wndproc handles messages + wc.cbClsExtra = 0; // no extra window data + wc.cbWndExtra = 0; // no extra window data + wc.hInstance = hInstance; // set the instance + wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // load the default icon + wc.hCursor = LoadCursor(NULL, IDC_ARROW); // load the arrow pointer + wc.hbrBackground = NULL; // no background required for GL + wc.lpszMenuName = NULL; // we don't want a menu wc.lpszClassName = "EU07"; // nazwa okna do komunikacji zdalnej - // // Set The Class Name + // // Set The Class Name if (!arbMultisampleSupported) // tylko dla pierwszego okna if (!RegisterClass(&wc)) // Attempt To Register The Window Class @@ -223,9 +223,9 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree if (fullscreen) // Attempt Fullscreen Mode? { - DEVMODE dmScreenSettings; // device mode + DEVMODE dmScreenSettings; // device mode memset(&dmScreenSettings, 0, sizeof(dmScreenSettings)); // makes sure memory's cleared - dmScreenSettings.dmSize = sizeof(dmScreenSettings); // size of the devmode structure + dmScreenSettings.dmSize = sizeof(dmScreenSettings); // size of the devmode structure // tolaris-240403: poprawka na odswiezanie monitora // locate primary monitor... @@ -254,9 +254,9 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree dmScreenSettings.dmDisplayFrequency = refreshrate; dmScreenSettings.dmFields = DM_DISPLAYFREQUENCY; } - dmScreenSettings.dmPelsWidth = width; // selected screen width + dmScreenSettings.dmPelsWidth = width; // selected screen width dmScreenSettings.dmPelsHeight = height; // selected screen height - dmScreenSettings.dmBitsPerPel = bits; // selected bits per pixel + dmScreenSettings.dmBitsPerPel = bits; // selected bits per pixel dmScreenSettings.dmFields = dmScreenSettings.dmFields | DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; @@ -282,13 +282,13 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree if (fullscreen) // Are We Still In Fullscreen Mode? { - dwExStyle = WS_EX_APPWINDOW; // Window Extended Style + dwExStyle = WS_EX_APPWINDOW; // Window Extended Style dwStyle = WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; // Windows Style - ShowCursor(FALSE); // Hide Mouse Pointer + ShowCursor(FALSE); // Hide Mouse Pointer } else { - dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended Style + dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended Style dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; // Windows Style } @@ -297,19 +297,19 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree // Create The Window if (NULL == - (hWnd = CreateWindowEx(dwExStyle, // Extended Style For The Window - "EU07", // Class Name - title, // Window Title - dwStyle | // Defined Window Style + (hWnd = CreateWindowEx(dwExStyle, // Extended Style For The Window + "EU07", // Class Name + title, // Window Title + dwStyle | // Defined Window Style WS_CLIPSIBLINGS | // Required Window Style - WS_CLIPCHILDREN, // Required Window Style + WS_CLIPCHILDREN, // Required Window Style 0, - 0, // Window Position + 0, // Window Position WindowRect.right - WindowRect.left, // Calculate Window Width WindowRect.bottom - WindowRect.top, // Calculate Window Height - NULL, // No Parent Window - NULL, // No Menu - hInstance, // Instance + NULL, // No Parent Window + NULL, // No Menu + hInstance, // Instance NULL))) // Dont Pass Anything To WM_CREATE { KillGLWindow(); // Reset The Display @@ -321,24 +321,24 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree static PIXELFORMATDESCRIPTOR pfd = // pfd Tells Windows How We Want Things To Be { sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor - 1, // Version Number - PFD_DRAW_TO_WINDOW | // Format Must Support Window - PFD_SUPPORT_OPENGL | // Format Must Support OpenGL - PFD_DOUBLEBUFFER, // Must Support Double Buffering - PFD_TYPE_RGBA, // Request An RGBA Format - bits, // Select Our Color Depth + 1, // Version Number + PFD_DRAW_TO_WINDOW | // Format Must Support Window + PFD_SUPPORT_OPENGL | // Format Must Support OpenGL + PFD_DOUBLEBUFFER, // Must Support Double Buffering + PFD_TYPE_RGBA, // Request An RGBA Format + bits, // Select Our Color Depth 0, - 0, 0, 0, 0, 0, // Color Bits Ignored - 0, // No Alpha Buffer - 0, // Shift Bit Ignored - 0, // No Accumulation Buffer - 0, 0, 0, 0, // Accumulation Bits Ignored - 24, // 32Bit Z-Buffer (Depth Buffer) - 0, // No Stencil Buffer - 0, // No Auxiliary Buffer + 0, 0, 0, 0, 0, // Color Bits Ignored + 0, // No Alpha Buffer + 0, // Shift Bit Ignored + 0, // No Accumulation Buffer + 0, 0, 0, 0, // Accumulation Bits Ignored + 24, // 32Bit Z-Buffer (Depth Buffer) + 0, // No Stencil Buffer + 0, // No Auxiliary Buffer PFD_MAIN_PLANE, // Main Drawing Layer - 0, // Reserved - 0, 0, 0 // Layer Masks Ignored + 0, // Reserved + 0, 0, 0 // Layer Masks Ignored }; if (NULL == (hDC = GetDC(hWnd))) // Did We Get A Device Context? @@ -413,9 +413,9 @@ BOOL CreateGLWindow(char *title, int width, int height, int bits, bool fullscree return CreateGLWindow(title, width, height, bits, fullscreenflag); // rekurencja } - ShowWindow(hWnd, SW_SHOW); // show the window - SetForegroundWindow(hWnd); // slightly higher priority - SetFocus(hWnd); // sets keyboard focus to the window + ShowWindow(hWnd, SW_SHOW); // show the window + SetForegroundWindow(hWnd); // slightly higher priority + SetFocus(hWnd); // sets keyboard focus to the window ReSizeGLScene(width, height); // set up our perspective GL screen if (!InitGL()) // initialize our newly created GL Window @@ -579,7 +579,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window } case WM_MOVE: // przesuwanie okna? { - mx = WindowWidth / 2 + LOWORD(lParam); // horizontal position + mx = WindowWidth / 2 + LOWORD(lParam); // horizontal position my = WindowHeight / 2 + HIWORD(lParam); // vertical position // SetCursorPos(mx,my); break; @@ -739,7 +739,7 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance // DrawGLScene() // if (!pause) // if (Global::bInactivePause?Global::bActive:true) //tak nie, bo spada z góry - if (World.Update()) // Was There A Quit Received? + if (World.Update()) // Was There A Quit Received? SwapBuffers(hDC); // Swap Buffers (Double Buffering) else done = true; //[F10] or DrawGLScene signalled a quit @@ -754,6 +754,3 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance KillGLWindow(); // kill the window return (msg.wParam); // exit the program } - - - diff --git a/EvLaunch.cpp b/EvLaunch.cpp index 523e8b0c..b77593a8 100644 --- a/EvLaunch.cpp +++ b/EvLaunch.cpp @@ -43,9 +43,14 @@ TEventLauncher::TEventLauncher() iCheckMask = 0; } -TEventLauncher::~TEventLauncher() { SafeDeleteArray(szText); } +TEventLauncher::~TEventLauncher() +{ + SafeDeleteArray(szText); +} -void TEventLauncher::Init() {} +void TEventLauncher::Init() +{ +} bool TEventLauncher::Load(cParser *parser) { // wczytanie wyzwalacza zdarzeń diff --git a/Event.cpp b/Event.cpp index e4f584b4..fc3265df 100644 --- a/Event.cpp +++ b/Event.cpp @@ -31,7 +31,7 @@ TEvent::TEvent(AnsiString m) // asName=""; //czy nazwa eventu jest niezbędna w tym przypadku? chyba nie evNext = evNext2 = NULL; bEnabled = false; // false dla eventów używanych do skanowania sygnałów (nie dodawane do - // kolejki) + // kolejki) asNodeName = m; // nazwa obiektu powiązanego iQueued = 0; // nie został dodany do kolejki // bIsHistory=false; @@ -91,7 +91,7 @@ void TEvent::Conditions(cParser *parser, AnsiString s) if (!asNodeName.IsEmpty()) { // podczepienie łańcucha, jeśli nie jest pusty Params[9].asText = new char[asNodeName.Length() + 1]; // usuwane i zamieniane na - // wskaźnik + // wskaźnik strcpy(Params[9].asText, asNodeName.c_str()); } parser->getTokens(); @@ -313,7 +313,7 @@ void TEvent::Load(cParser *parser, vector3 *org) case tp_PutValues: parser->getTokens(3); *parser >> Params[3].asdouble >> Params[4].asdouble >> Params[5].asdouble; // położenie - // X,Y,Z + // X,Y,Z if (org) { // przesunięcie // tmp->pCenter.RotateY(aRotate.y/180.0*M_PI); //Ra 2014-11: uwzględnienie rotacji @@ -330,7 +330,7 @@ void TEvent::Load(cParser *parser, vector3 *org) if (str.Pos("#")) str = str.SubString(1, str.Pos("#") - 1); // obcięcie unikatowości bEnabled = false; // nie do kolejki (dla SetVelocity też, ale jak jest do toru - // dowiązany) + // dowiązany) Params[6].asCommand = cm_PassengerStopPoint; } else if (str == "SetVelocity") diff --git a/FadeSound.cpp b/FadeSound.cpp index 5213c69e..f369d85d 100644 --- a/FadeSound.cpp +++ b/FadeSound.cpp @@ -27,9 +27,14 @@ TFadeSound::TFadeSound() fTime = 0; } -TFadeSound::~TFadeSound() { Free(); } +TFadeSound::~TFadeSound() +{ + Free(); +} -void TFadeSound::Free() {} +void TFadeSound::Free() +{ +} void TFadeSound::Init(char *Name, float fNewFade) { @@ -47,7 +52,10 @@ void TFadeSound::TurnOn() fTime = fFade; } -void TFadeSound::TurnOff() { State = ss_ShuttingDown; } +void TFadeSound::TurnOff() +{ + State = ss_ShuttingDown; +} void TFadeSound::Update() { diff --git a/FadeSound.h b/FadeSound.h index 85f58dbd..65dabbc9 100644 --- a/FadeSound.h +++ b/FadeSound.h @@ -26,7 +26,10 @@ class TFadeSound void Init(char *Name, float fNewFade); void TurnOn(); void TurnOff(); - bool Playing() { return (State == ss_Commencing || State == ss_Starting); }; + bool Playing() + { + return (State == ss_Commencing || State == ss_Starting); + }; void Free(); void Update(); void Volume(long vol); diff --git a/Float3d.h b/Float3d.h index d1122c7f..4e0fc10a 100644 --- a/Float3d.h +++ b/Float3d.h @@ -37,7 +37,10 @@ inline float3 &operator+=(float3 &v1, const float3 &v2) v1.z += v2.z; return v1; }; -inline float3 operator-(const float3 &v) { return float3(-v.x, -v.y, -v.z); }; +inline float3 operator-(const float3 &v) +{ + return float3(-v.x, -v.y, -v.z); +}; inline float3 operator-(const float3 &v1, const float3 &v2) { return float3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z); @@ -46,8 +49,14 @@ inline float3 operator+(const float3 &v1, const float3 &v2) { return float3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z); }; -double inline float3::Length() const { return sqrt(x * x + y * y + z * z); }; -inline float3 operator/(const float3 &v, double k) { return float3(v.x / k, v.y / k, v.z / k); }; +double inline float3::Length() const +{ + return sqrt(x * x + y * y + z * z); +}; +inline float3 operator/(const float3 &v, double k) +{ + return float3(v.x / k, v.y / k, v.z / k); +}; inline float3 SafeNormalize(const float3 &v) { // bezpieczna normalizacja (wektor długości 1.0) double l = v.Length(); @@ -79,8 +88,14 @@ class float4 z = c; w = d; }; - double inline float4::LengthSquared() const { return x * x + y * y + z * z + w * w; }; - double inline float4::Length() const { return sqrt(x * x + y * y + z * z + w * w); }; + double inline float4::LengthSquared() const + { + return x * x + y * y + z * z + w * w; + }; + double inline float4::Length() const + { + return sqrt(x * x + y * y + z * z + w * w); + }; }; inline float4 operator*(const float4 &q1, const float4 &q2) { // mnożenie to prawie jak mnożenie macierzy @@ -177,15 +192,24 @@ class float4x4 for (int i = 0; i < 16; ++i) e[i] = f[i]; }; - float *__fastcall operator()(int i) { return &e[i << 2]; } - const float *__fastcall readArray(void) { return e; } + float *__fastcall operator()(int i) + { + return &e[i << 2]; + } + const float *__fastcall readArray(void) + { + return e; + } void Identity() { for (int i = 0; i < 16; ++i) e[i] = 0; e[0] = e[5] = e[10] = e[15] = 1.0f; } - const float *operator[](int i) const { return &e[i << 2]; }; + const float *operator[](int i) const + { + return &e[i << 2]; + }; void InitialRotate() { // taka specjalna rotacja, nie ma co ciągać trygonometrii float f; @@ -206,7 +230,10 @@ class float4x4 return true; } void Quaternion(float4 *q); - inline float3 *TranslationGet() { return (float3 *)(e + 12); } + inline float3 *TranslationGet() + { + return (float3 *)(e + 12); + } }; inline float3 operator*(const float4x4 &m, const float3 &v) diff --git a/Gauge.cpp b/Gauge.cpp index 0421eef7..1772754f 100644 --- a/Gauge.cpp +++ b/Gauge.cpp @@ -46,8 +46,8 @@ void TGauge::Clear() fDesiredValue = 0; }; -void TGauge::Init(TSubModel *NewSubModel, TGaugeType eNewType, double fNewScale, - double fNewOffset, double fNewFriction, double fNewValue) +void TGauge::Init(TSubModel *NewSubModel, TGaugeType eNewType, double fNewScale, double fNewOffset, + double fNewFriction, double fNewValue) { // ustawienie parametrów animacji submodelu if (NewSubModel) { // warunek na wszelki wypadek, gdyby się submodel nie podłączył @@ -168,7 +168,7 @@ void TGauge::Update() case gt_Digital: // Ra 2014-07: licznik cyfrowy sm = SubModel->ChildGet(); AnsiString n = FormatFloat("0000000000", floor(fValue)); // na razie tak trochę bez - // sensu + // sensu do { // pętla po submodelach potomnych i obracanie ich o kąt zależy od cyfry w (fValue) if (sm->pName) diff --git a/Gauge.h b/Gauge.h index 228d0ab2..703c3f4b 100644 --- a/Gauge.h +++ b/Gauge.h @@ -22,7 +22,7 @@ typedef enum gt_Rotate, // obrót gt_Move, // przesunięcie równoległe gt_Wiper, // obrót trzech kolejnych submodeli o ten sam kąt (np. wycieraczka, drzwi - // harmonijkowe) + // harmonijkowe) gt_Digital // licznik cyfrowy, np. kilometrów } TGaugeType; @@ -49,15 +49,17 @@ class TGauge // zmienne "gg" ~TGauge(); void Clear(); void Init(TSubModel *NewSubModel, TGaugeType eNewTyp, double fNewScale = 1, - double fNewOffset = 0, double fNewFriction = 0, double fNewValue = 0); - bool Load(TQueryParserComp *Parser, TModel3d *md1, TModel3d *md2 = NULL, - double mul = 1.0); + double fNewOffset = 0, double fNewFriction = 0, double fNewValue = 0); + bool Load(TQueryParserComp *Parser, TModel3d *md1, TModel3d *md2 = NULL, double mul = 1.0); void PermIncValue(double fNewDesired); void IncValue(double fNewDesired); void DecValue(double fNewDesired); void UpdateValue(double fNewDesired); void PutValue(double fNewDesired); - float GetValue() { return fValue; }; + float GetValue() + { + return fValue; + }; void Update(); void Render(); void AssignFloat(float *fValue); diff --git a/Geom.cpp b/Geom.cpp index 4ea477c8..6d42ab00 100644 --- a/Geom.cpp +++ b/Geom.cpp @@ -19,11 +19,17 @@ http://mozilla.org/MPL/2.0/. #include "Globals.h" #include "Geom.h" -__fastcall TGeometry::TGeometry() {} +__fastcall TGeometry::TGeometry() +{ +} -__fastcall TGeometry::~TGeometry() {} +__fastcall TGeometry::~TGeometry() +{ +} -bool TGeometry::Init() {} +bool TGeometry::Init() +{ +} vector3 TGeometry::Load(TQueryParserComp *Parser) { @@ -113,7 +119,9 @@ vector3 TGeometry::Load(TQueryParserComp *Parser) tmp->fSquareRadius += r; } -bool TGeometry::Render() {} +bool TGeometry::Render() +{ +} //--------------------------------------------------------------------------- #pragma package(smart_init) diff --git a/Globals.cpp b/Globals.cpp index 1a6be1a6..bce123ba 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -263,16 +263,16 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp) else if (str == AnsiString("wireframe")) bWireFrame = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("debugmode")) // McZapkie! - DebugModeFlag uzywana w mover.pas, - // warto tez blokowac cheaty gdy false + // warto tez blokowac cheaty gdy false DebugModeFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("soundenabled")) // McZapkie-040302 - blokada dzwieku - przyda - // sie do debugowania oraz na komp. bez karty - // dzw. + // sie do debugowania oraz na komp. bez karty + // dzw. bSoundEnabled = (GetNextSymbol().LowerCase() == AnsiString("yes")); // else if (str==AnsiString("renderalpha")) //McZapkie-1312302 - dwuprzebiegowe renderowanie // bRenderAlpha=(GetNextSymbol().LowerCase()==AnsiString("yes")); else if (str == AnsiString("physicslog")) // McZapkie-030402 - logowanie parametrow - // fizycznych dla kazdego pojazdu z maszynista + // fizycznych dla kazdego pojazdu z maszynista WriteLogFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("physicsdeactivation")) // McZapkie-291103 - usypianie fizyki PhysicActivationFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); @@ -310,7 +310,7 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp) fFriction = GetNextSymbol().ToDouble(); else if (str == AnsiString("livetraction")) { // Winger 160404 - zaleznosc napiecia loka od trakcji; Ra 2014-03: teraz prąd przy braku - // sieci + // sieci bLiveTraction = (GetNextSymbol().LowerCase() == AnsiString("yes")); } else if (str == AnsiString("skyenabled")) @@ -418,7 +418,7 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp) else if (str == AnsiString("slowmotion")) // tworzenie plików binarnych iSlowMotionMask = GetNextSymbol().ToIntDef(-1); // domyślnie -1 else if (str == AnsiString("modifytga")) // czy korygować pliki TGA dla szybszego - // wczytywania + // wczytywania iModifyTGA = GetNextSymbol().ToIntDef(0); // domyślnie 0 else if (str == AnsiString("hideconsole")) // hunter-271211: ukrywanie konsoli bHideConsole = (GetNextSymbol().LowerCase() == AnsiString("yes")); diff --git a/Globals.h b/Globals.h index b0bdb96d..327a1186 100644 --- a/Globals.h +++ b/Globals.h @@ -19,11 +19,11 @@ http://mozilla.org/MPL/2.0/. using namespace Math3D; // definicje klawiszy -const int k_IncMainCtrl = 0; //[Num+] +const int k_IncMainCtrl = 0; //[Num+] const int k_IncMainCtrlFAST = 1; //[Num+] [Shift] -const int k_DecMainCtrl = 2; //[Num-] +const int k_DecMainCtrl = 2; //[Num-] const int k_DecMainCtrlFAST = 3; //[Num-] [Shift] -const int k_IncScndCtrl = 4; //[Num/] +const int k_IncScndCtrl = 4; //[Num/] const int k_IncScndCtrlFAST = 5; const int k_DecScndCtrl = 6; const int k_DecScndCtrlFAST = 7; @@ -151,7 +151,7 @@ class TTranscripts ~TTranscripts(); void AddLine(char *txt, float show, float hide, bool it); void Add(char *txt, float len, - bool backgorund = false); // dodanie tekstów, długość dźwięku, czy istotne + bool backgorund = false); // dodanie tekstów, długość dźwięku, czy istotne void Update(); // usuwanie niepotrzebnych (ok. 10 razy na sekundę) }; @@ -206,7 +206,10 @@ class Global static AnsiString asHumanCtrlVehicle; static void LoadIniFile(AnsiString asFileName); static void InitKeys(AnsiString asFileName); - inline static vector3 GetCameraPosition() { return pCameraPosition; }; + inline static vector3 GetCameraPosition() + { + return pCameraPosition; + }; static void SetCameraPosition(vector3 pNewCameraPosition); static void SetCameraRotation(double Yaw); static int iWriteLogEnabled; // maska bitowa: 1-zapis do pliku, 2-okienko diff --git a/Ground.cpp b/Ground.cpp index 85e62ffe..88a6a0b4 100644 --- a/Ground.cpp +++ b/Ground.cpp @@ -276,7 +276,7 @@ void TGroundNode::RaRenderVBO() glColor3ub(Diffuse[0], Diffuse[1], Diffuse[2]); if (TextureID) glBindTexture(GL_TEXTURE_2D, TextureID); // Ustaw aktywną teksturę - glDrawArrays(iType, iVboPtr, iNumVerts); // Narysuj naraz wszystkie trójkąty + glDrawArrays(iType, iVboPtr, iNumVerts); // Narysuj naraz wszystkie trójkąty } void TGroundNode::RenderVBO() @@ -284,7 +284,7 @@ void TGroundNode::RenderVBO() double mgn = SquareMagnitude(pCenter - Global::pCameraPosition); if ((mgn > fSquareRadius || (mgn < fSquareMinRadius)) && (iType != TP_EVLAUNCH)) // McZapkie-070602: nie rysuj odleglych obiektow ale sprawdzaj - // wyzwalacz zdarzen + // wyzwalacz zdarzen return; int i, a; switch (iType) @@ -556,8 +556,8 @@ void TGroundNode::RenderDL() // if (pTriGroup) if (pTriGroup!=this) return; //wyświetla go inny obiekt double mgn = SquareMagnitude(pCenter - Global::pCameraPosition); if ((mgn > fSquareRadius) || (mgn < fSquareMinRadius)) // McZapkie-070602: nie rysuj odleglych - // obiektow ale sprawdzaj wyzwalacz - // zdarzen + // obiektow ale sprawdzaj wyzwalacz + // zdarzen return; int i, a; switch (iType) @@ -1379,7 +1379,7 @@ TGroundNode *__fastcall TGround::DynamicFind(AnsiString asNameToFind) void TGround::DynamicList(bool all) { // odesłanie nazw pojazdów dostępnych na scenerii (nazwy, szczególnie wagonów, mogą się - // powtarzać!) + // powtarzać!) for (TGroundNode *Current = nRootDynamic; Current; Current = Current->nNext) if (all || Current->DynamicObject->Mechanik) WyslijString(Current->asName, 6); // same nazwy pojazdów @@ -1626,9 +1626,8 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) *parser >> tmp->hvTraction->NominalVoltage >> tmp->hvTraction->MaxCurrent >> tmp->hvTraction->fResistivity; if (tmp->hvTraction->fResistivity == 0.01) // tyle jest w sceneriach [om/km] - tmp->hvTraction->fResistivity = - 0.075; // taka sensowniejsza wartość za - // http://www.ikolej.pl/fileadmin/user_upload/Seminaria_IK/13_05_07_Prezentacja_Kruczek.pdf + tmp->hvTraction->fResistivity = 0.075; // taka sensowniejsza wartość za + // http://www.ikolej.pl/fileadmin/user_upload/Seminaria_IK/13_05_07_Prezentacja_Kruczek.pdf tmp->hvTraction->fResistivity *= 0.001; // teraz [om/m] parser->getTokens(); *parser >> token; @@ -1722,7 +1721,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) if (sTracks->Update(TP_MEMCELL, tmp->asName.c_str(), tmp)) // najpierw sprawdzić, czy już jest { // przy zdublowaniu wskaźnik zostanie podmieniony w drzewku na późniejszy (zgodność - // wsteczna) + // wsteczna) ErrorLog("Duplicated memcell: " + tmp->asName); // to zgłaszać duplikat } else @@ -1749,7 +1748,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) if (sTracks->Update(TP_TRACK, tmp->asName.c_str(), tmp)) // najpierw sprawdzić, czy już jest { // przy zdublowaniu wskaźnik zostanie podmieniony w drzewku na późniejszy (zgodność - // wsteczna) + // wsteczna) if (tmp->pTrack->iCategoryFlag & 1) // jeśli jest zdublowany tor kolejowy ErrorLog("Duplicated track: " + tmp->asName); // to zgłaszać duplikat } @@ -1802,7 +1801,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) parser->getTokens(); *parser >> token; DriverType = AnsiString(token.c_str()); // McZapkie:010303 - w przyszlosci rozne - // konfiguracje mechanik/pomocnik itp + // konfiguracje mechanik/pomocnik itp tf3 = fTrainSetVel; // prędkość parser->getTokens(); *parser >> token; @@ -1827,14 +1826,14 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) if (tf1 != -1.0) if (fabs(tf1) > 0.5) // maksymalna odległość między sprzęgami - do przemyślenia int1 = 0; // likwidacja sprzęgu, jeśli odległość zbyt duża - to powinno być - // uwzględniane w fizyce sprzęgów... + // uwzględniane w fizyce sprzęgów... TempConnectionType[iTrainSetWehicleNumber] = int1; // wartość dodatnia } else { // pojazd wstawiony luzem fTrainSetDist = 0; // zerowanie dodatkowego przesunięcia asTrainName = ""; // puste oznacza jazdę pojedynczego bez rozkładu, "none" jest dla - // składu (trainset) + // składu (trainset) parser->getTokens(); *parser >> token; str = AnsiString(token.c_str()); // track @@ -1898,7 +1897,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) .AllowedFlag & ctrain_depot) // jesli zablokowany TempConnectionType[iTrainSetWehicleNumber] |= ctrain_depot; // będzie - // blokada + // blokada iTrainSetWehicleNumber++; } else @@ -1995,7 +1994,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) if (sTracks->Update(TP_MODEL, tmp->asName.c_str(), tmp)) // najpierw sprawdzić, czy już jest { // przy zdublowaniu wskaźnik zostanie podmieniony w drzewku na późniejszy (zgodność - // wsteczna) + // wsteczna) ErrorLog("Duplicated model: " + tmp->asName); // to zgłaszać duplikat } else @@ -2057,7 +2056,7 @@ TGroundNode *__fastcall TGround::AddGroundNode(cParser *parser) str = AnsiString(token.c_str()); #ifdef _PROBLEND // PROBLEND Q: 13122011 - Szociu: 27012012 - PROBLEND = true; // domyslnie uruchomione nowe wyświetlanie + PROBLEND = true; // domyslnie uruchomione nowe wyświetlanie tmp->PROBLEND = true; // odwolanie do tgroundnode, bo rendering jest w tej klasie if (str.Pos("@") > 0) // sprawdza, czy w nazwie tekstury jest znak "@" { @@ -2336,7 +2335,7 @@ void TGround::FirstInit() glFogi(GL_FOG_MODE, GL_LINEAR); glFogfv(GL_FOG_COLOR, Global::FogColor); // set fog color glFogf(GL_FOG_START, Global::fFogStart); // fog start depth - glFogf(GL_FOG_END, Global::fFogEnd); // fog end depth + glFogf(GL_FOG_END, Global::fFogEnd); // fog end depth glEnable(GL_FOG); } else @@ -2443,7 +2442,7 @@ bool TGround::Init(AnsiString asFile, HDC hDC) if (LastNode->iType != TP_DYNAMIC) { // jeśli nie jest pojazdem LastNode->nNext = nRootOfType[LastNode->iType]; // ostatni dodany dołączamy - // na końcu nowego + // na końcu nowego nRootOfType[LastNode->iType] = LastNode; // ustawienie nowego na początku listy iNumNodes++; @@ -2516,10 +2515,10 @@ bool TGround::Init(AnsiString asFile, HDC hDC) if (iTrainSetWehicleNumber ? !TempConnectionType[iTrainSetWehicleNumber - 1] : false) // jeśli ostatni pojazd ma sprzęg 0 LastNode->DynamicObject->RaLightsSet(-1, 2 + 32 + 64); // to założymy mu - // końcówki blaszane - // (jak AI się - // odpali, to sobie - // poprawi) + // końcówki blaszane + // (jak AI się + // odpali, to sobie + // poprawi) bTrainSet = false; fTrainSetVel = 0; // iTrainSetConnection=0; @@ -2569,7 +2568,7 @@ bool TGround::Init(AnsiString asFile, HDC hDC) ErrorLog("Duplicated event: " + tmp->asName); found->Append(tmp); // doczepka (taki wirtualny multiple bez warunków) found->Type = tp_Ignored; // dezaktywacja pierwotnego - taka proteza na - // wsteczną zgodność + // wsteczną zgodność // SafeDelete(tmp); //bezlitośnie usuwamy wszelkie duplikaty, żeby nie // zaśmiecać drzewka } @@ -2580,7 +2579,7 @@ bool TGround::Init(AnsiString asFile, HDC hDC) RootEvent = tmp; if (!found) { // jeśli nazwa wystąpiła, to do kolejki i wyszukiwarki dodawany jest tylko - // pierwszy + // pierwszy if (RootEvent->Type != tp_Ignored) if (RootEvent->asName.Pos( "onstart")) // event uruchamiany automatycznie po starcie @@ -2942,7 +2941,7 @@ bool TGround::InitEvents() Current->Params[9].asMemCell = tmp->MemCell; if (Current->Type == tp_GetValues) // jeśli odczyt komórki if (tmp->MemCell->IsVelocity()) // a komórka zawiera komendę SetVelocity albo - // ShuntVelocity + // ShuntVelocity Current->bEnabled = false; // to event nie będzie dodawany do kolejki } else @@ -3004,7 +3003,7 @@ bool TGround::InitEvents() if (Current->Params[9].asAnimContainer) { Current->Params[9].asAnimContainer->WillBeAnimated(); // oflagowanie - // animacji + // animacji if (!Current->Params[9] .asAnimContainer->Event()) // nie szukać, gdy znaleziony Current->Params[9].asAnimContainer->EventAssign( @@ -3194,24 +3193,23 @@ void TGround::InitTracks() if (Track->asEvent0Name.IsEmpty()) if (FindEvent(Current->asName + ":event0")) Track->asEvent0Name = Current->asName + ":event0"; - if (Track->asEvent1Name.IsEmpty()) + if (Track->asEvent1Name.IsEmpty()) if (FindEvent(Current->asName + ":event1")) Track->asEvent1Name = Current->asName + ":event1"; if (Track->asEvent2Name.IsEmpty()) if (FindEvent(Current->asName + ":event2")) Track->asEvent2Name = Current->asName + ":event2"; - if (Track->asEventall0Name.IsEmpty()) - if (FindEvent(Current->asName+":eventall0")) - Track->asEventall0Name=Current->asName+":eventall0"; - if (Track->asEventall1Name.IsEmpty()) - if (FindEvent(Current->asName+":eventall1")) - Track->asEventall1Name=Current->asName+":eventall1"; - if (Track->asEventall2Name.IsEmpty()) - if (FindEvent(Current->asName+":eventall2")) - Track->asEventall2Name=Current->asName+":eventall2"; - - } + if (Track->asEventall0Name.IsEmpty()) + if (FindEvent(Current->asName + ":eventall0")) + Track->asEventall0Name = Current->asName + ":eventall0"; + if (Track->asEventall1Name.IsEmpty()) + if (FindEvent(Current->asName + ":eventall1")) + Track->asEventall1Name = Current->asName + ":eventall1"; + if (Track->asEventall2Name.IsEmpty()) + if (FindEvent(Current->asName + ":eventall2")) + Track->asEventall2Name = Current->asName + ":eventall2"; + } Track->AssignEvents( Track->asEvent0Name.IsEmpty() ? NULL : FindEvent(Track->asEvent0Name), Track->asEvent1Name.IsEmpty() ? NULL : FindEventScan(Track->asEvent1Name), @@ -3237,7 +3235,7 @@ void TGround::InitTracks() if (!Model) // jak nie ma modelu break; // to pewnie jest wykolejnica, a ta jest domyślnie zamknięta i wykoleja case tt_Normal: // tylko proste są podłączane do rozjazdów, stąd dwa rozjazdy się nie - // połączą ze sobą + // połączą ze sobą if (Track->CurrentPrev() == NULL) // tylko jeśli jeszcze nie podłączony { tmp = FindTrack(Track->CurrentSegment()->FastGetPoint_0(), iConnection, Current); @@ -3379,7 +3377,7 @@ void TGround::InitTraction() nTemp->psTractionPowerSource = new TTractionPowerSource(); nTemp->psTractionPowerSource->Init(Traction->NominalVoltage, Traction->MaxCurrent); nTemp->nNext = nRootOfType[nTemp->iType]; // ostatni dodany dołączamy na końcu - // nowego + // nowego nRootOfType[nTemp->iType] = nTemp; // ustawienie nowego na początku listy iNumNodes++; } @@ -3401,12 +3399,12 @@ void TGround::InitTraction() } if (Traction->hvNext[0]) // jeśli został podłączony if (Traction->psSection && tmp->psSection) // tylko przęsło z izolatorem może nie - // mieć zasilania, bo ma 2, trzeba - // sprawdzać sąsiednie + // mieć zasilania, bo ma 2, trzeba + // sprawdzać sąsiednie if (Traction->psSection != tmp->psSection) // połączone odcinki mają różne zasilacze { // to może być albo podłączenie podstacji lub kabiny sekcyjnej do sekcji, albo - // błąd + // błąd if (Traction->psSection->bSection && !tmp->psSection->bSection) { //(tmp->psSection) jest podstacją, a (Traction->psSection) nazwą sekcji tmp->PowerSet(Traction->psSection); // zastąpienie wskazaniem sekcji @@ -3436,11 +3434,11 @@ void TGround::InitTraction() } if (Traction->hvNext[1]) // jeśli został podłączony if (Traction->psSection && tmp->psSection) // tylko przęsło z izolatorem może nie - // mieć zasilania, bo ma 2, trzeba - // sprawdzać sąsiednie + // mieć zasilania, bo ma 2, trzeba + // sprawdzać sąsiednie if (Traction->psSection != tmp->psSection) { // to może być albo podłączenie podstacji lub kabiny sekcyjnej do sekcji, albo - // błąd + // błąd if (Traction->psSection->bSection && !tmp->psSection->bSection) { //(tmp->psSection) jest podstacją, a (Traction->psSection) nazwą sekcji tmp->PowerSet(Traction->psSection); // zastąpienie wskazaniem sekcji @@ -3462,7 +3460,7 @@ void TGround::InitTraction() { // operacje mające na celu wykrywanie bieżni wspólnych i łączenie przęseł naprążania if (nCurrent->hvTraction->WhereIs()) // oznakowanie przedostatnich przęseł { // poszukiwanie bieżni wspólnej dla przedostatnich przęseł, również w celu połączenia - // zasilania + // zasilania // to się nie sprawdza, bo połączyć się mogą dwa niezasilane odcinki jako najbliższe // sobie // nCurrent->hvTraction->hvParallel=TractionNearestFind(nCurrent->pCenter,0,nCurrent); @@ -3484,7 +3482,7 @@ void TGround::InitTraction() } int zg = 0; // zgodność kierunku przęseł, tymczasowo iterator do tabeli końców TGroundNode **nEnds = new TGroundNode *[iConnection]; // końców jest ok. 10 razy mniej niż - // wszystkich przęseł (Quark: 216) + // wszystkich przęseł (Quark: 216) for (nCurrent = nRootOfType[TP_TRACTION]; nCurrent; nCurrent = nCurrent->nNext) { //łączenie bieżni wspólnych, w tym oznaczanie niepodanych jawnie Traction = nCurrent->hvTraction; @@ -3522,36 +3520,36 @@ void TGround::InitTraction() while (zg) { // ustalenie zastępczej rezystancji dla każdego przęsła zg = 0; // flaga podłączonych przęseł końcowych: -1=puste wskaźniki, 0=coś zostało, - // 1=wykonano łączenie + // 1=wykonano łączenie for (int i = 0; i < iConnection; ++i) if (nEnds[i]) // załatwione będziemy zerować { // każdy przebieg to próba podłączenia końca segmentu naprężania do innego zasilanego - // przęsła + // przęsła if (nEnds[i]->hvTraction->hvNext[0]) { // jeśli końcowy ma ciąg dalszy od strony 0 (Point1), szukamy odcinka najbliższego - // do Point2 + // do Point2 if (TractionNearestFind(nEnds[i]->hvTraction->pPoint2, 0, nEnds[i])) // poszukiwanie przęsła { nEnds[i] = NULL; zg = 1; // jak coś zostało podłączone, to może zasilanie gdzieś dodatkowo - // dotrze + // dotrze } } else if (nEnds[i]->hvTraction->hvNext[1]) { // jeśli końcowy ma ciąg dalszy od strony 1 (Point2), szukamy odcinka najbliższego - // do Point1 + // do Point1 if (TractionNearestFind(nEnds[i]->hvTraction->pPoint1, 1, nEnds[i])) // poszukiwanie przęsła { nEnds[i] = NULL; zg = 1; // jak coś zostało podłączone, to może zasilanie gdzieś dodatkowo - // dotrze + // dotrze } } else { // gdy koniec jest samotny, to na razie nie zostanie podłączony (nie powinno - // takich być) + // takich być) nEnds[i] = NULL; } } @@ -3711,7 +3709,7 @@ TTraction *__fastcall TGround::FindTraction(vector3 *Point, int &iConnection, TG TTraction *__fastcall TGround::TractionNearestFind(vector3 &p, int dir, TGroundNode *n) { // wyszukanie najbliższego do (p) przęsła o tej samej nazwie sekcji (ale innego niż podłączone) - // oraz zasilanego z kierunku (dir) + // oraz zasilanego z kierunku (dir) TGroundNode *nCurrent, *nBest = NULL; int i, j, k, zg; double d, dist = 200.0 * 200.0; //[m] odległość graniczna @@ -3737,7 +3735,7 @@ TTraction *__fastcall TGround::TractionNearestFind(vector3 &p, int dir, TGroundN nCurrent->hvTraction->vParametric) >= 0 ? dir ^ 1 : dir)]) // ma zasilanie z odpowiedniej - // strony + // strony if (nCurrent->hvTraction->fResistance[k] >= 0.0) //żeby się nie propagowały jakieś ujemne { // znaleziony kandydat do połączenia @@ -3750,7 +3748,7 @@ TTraction *__fastcall TGround::TractionNearestFind(vector3 &p, int dir, TGroundN dist = d; // nowy rekord odległości nBest = nCurrent; zg = k; // z którego końca brać wskaźnik - // zasilacza + // zasilacza } } if (nBest) // jak znalezione przęsło z zasilaniem, to podłączenie "równoległe" @@ -3774,7 +3772,7 @@ bool TGround::AddToQuery(TEvent *Event, TDynamicObject *Node) Event->Activator = Node; if (Event->Type == tp_AddValues ? (Event->fDelay == 0.0) : false) { // eventy AddValues trzeba wykonywać natychmiastowo, inaczej kolejka może zgubić - // jakieś dodawanie + // jakieś dodawanie // Ra: kopiowanie wykonania tu jest bez sensu, lepiej by było wydzielić funkcję // wykonującą eventy i ją wywołać if (EventConditon(Event)) @@ -3784,7 +3782,7 @@ bool TGround::AddToQuery(TEvent *Event, TDynamicObject *Node) Event->Params[2].asdouble, Event->iFlags); if (Event->Params[6].asTrack) { // McZapkie-100302 - updatevalues oprocz zmiany wartosci robi putcommand dla - // wszystkich 'dynamic' na danym torze + // wszystkich 'dynamic' na danym torze for (int i = 0; i < Event->Params[6].asTrack->iNumDynamics; ++i) Event->Params[5].asMemCell->PutCommand( Event->Params[6].asTrack->Dynamics[i]->Mechanik, @@ -3956,7 +3954,7 @@ bool TGround::CheckQuery() tmpEvent->Params[2].asdouble, tmpEvent->iFlags); if (tmpEvent->Params[6].asTrack) { // McZapkie-100302 - updatevalues oprocz zmiany wartosci robi putcommand dla - // wszystkich 'dynamic' na danym torze + // wszystkich 'dynamic' na danym torze for (int i = 0; i < tmpEvent->Params[6].asTrack->iNumDynamics; ++i) tmpEvent->Params[5].asMemCell->PutCommand( tmpEvent->Params[6].asTrack->Dynamics[i]->Mechanik, @@ -3980,7 +3978,7 @@ bool TGround::CheckQuery() // loc.Y= tmpEvent->Params[8].nGroundNode->pCenter.z; // loc.Z= tmpEvent->Params[8].nGroundNode->pCenter.y; if (Global::iMultiplayer) // potwierdzenie wykonania dla serwera (odczyt - // semafora już tak nie działa) + // semafora już tak nie działa) WyslijEvent(tmpEvent->asName, tmpEvent->Activator->GetName()); // tmpEvent->Params[9].asMemCell->PutCommand(tmpEvent->Activator->Mechanik,loc); tmpEvent->Params[9].asMemCell->PutCommand( @@ -4075,7 +4073,7 @@ bool TGround::CheckQuery() case tp_TrackVel: if (tmpEvent->Params[9].asTrack) { // prędkość na zwrotnicy może być ograniczona z góry we wpisie, większej się nie - // ustawi eventem + // ustawi eventem WriteLog("type: TrackVel"); // WriteLog("Vel: ",tmpEvent->Params[0].asdouble); tmpEvent->Params[9].asTrack->VelocitySet(tmpEvent->Params[0].asdouble); @@ -4106,7 +4104,7 @@ bool TGround::CheckQuery() 5.0) // to musi mieć sensowny okres powtarzania if (tmpEvent->iQueued < 2) { // trzeba zrobić wyjątek, aby event mógł się sam dodać do - // kolejki, raz już jest, ale będzie usunięty + // kolejki, raz już jest, ale będzie usunięty // pętla eventowa może być uruchomiona wiele razy, ale tylko // pierwsze uruchomienie zadziała tmpEvent->iQueued = @@ -4154,7 +4152,7 @@ bool TGround::CheckQuery() tmpEvent->Params[9].asMemCell->UpdateValues( tmpEvent->Activator->asDestination.c_str(), // adres docelowy tmpEvent->Activator->DirectionGet(), // kierunek pojazdu względem czoła - // składu (1=zgodny,-1=przeciwny) + // składu (1=zgodny,-1=przeciwny) tmpEvent->Activator->MoverParameters ->Power, // moc pojazdu silnikowego: 0 dla wagonu tmpEvent->iFlags & (update_memstring | update_memval1 | update_memval2)); @@ -4269,7 +4267,7 @@ bool TGround::Update(double dt, int iter) TAnimModel::AnimUpdate(dt1); // wykonanie zakolejkowanych animacji for (TGroundNode *Current = nRootDynamic; Current; Current = Current->nNext) { // Ra: zmienić warunek na sprawdzanie pantografów w jednej zmiennej: czy pantografy i czy - // podniesione + // podniesione if (Current->DynamicObject->MoverParameters->EnginePowerSource.SourceType == CurrentCollector) GetTraction(Current->DynamicObject); // poszukiwanie drutu dla pantografów @@ -4277,7 +4275,7 @@ bool TGround::Update(double dt, int iter) } for (TGroundNode *Current = nRootDynamic; Current; Current = Current->nNext) Current->DynamicObject->Update(dt, dt1); // Ra 2015-01: tylko tu przelicza sieć - // trakcyjną + // trakcyjną } else { // jezeli jest tylko jedna iteracja @@ -4363,9 +4361,9 @@ bool TGround::GetTraction(TDynamicObject *model) else { // jeśli t jest w przedziale, wyznaczyć odległość wzdłuż wektorów vUp i vLeft vStyk = p->hvPowerWire->pPoint1 + fRaParam * vParam; // punkt styku - // płaszczyzny z drutem - // (dla generatora łuku - // el.) + // płaszczyzny z drutem + // (dla generatora łuku + // el.) vGdzie = vStyk - pant0; // wektor // odległość w pionie musi być w zasięgu ruchu "pionowego" pantografu fVertical = DotProduct( @@ -4373,11 +4371,11 @@ bool TGround::GetTraction(TDynamicObject *model) // odległość w bok powinna być mniejsza niż pół szerokości pantografu fHorizontal = fabs(DotProduct(vGdzie, vLeft)) - p->fWidth; // to się musi mieścić w przedziale zależnym od - // szerokości pantografu + // szerokości pantografu // jeśli w pionie albo w bok jest za daleko, to dany drut jest nieużyteczny if (fHorizontal > 0) // 0.635 dla AKP-1 AKP-4E { // drut wyszedł poza zakres roboczy, ale jeszcze jest nabieżnik - - // pantograf się unosi bez utraty prądu + // pantograf się unosi bez utraty prądu if (fHorizontal > p->fWidthExtra) // czy wyszedł za nabieżnik { p->hvPowerWire = NULL; // dotychczasowy drut nie liczy się @@ -4385,18 +4383,18 @@ bool TGround::GetTraction(TDynamicObject *model) } else { // problem jest, gdy nowy drut jest wyżej, wtedy pantograf odłącza się - // od starego, a na podniesienie do nowego potrzebuje czasu + // od starego, a na podniesienie do nowego potrzebuje czasu p->PantTraction = fVertical + 0.15 * fHorizontal / p->fWidthExtra; // na razie liniowo na - // nabieżniku, dokładność - // poprawi się później + // nabieżniku, dokładność + // poprawi się później // p->fHorizontal=fHorizontal; //zapamiętanie położenia drutu } } else { // po wyselekcjonowaniu drutu, przypisać go do toru, żeby nie trzeba było - // szukać + // szukać // dla 3 końcowych przęseł sprawdzić wszystkie dostępne przęsła // bo mogą być umieszczone równolegle nad torem - połączyć w pierścień // najlepiej, jakby odcinki równoległe były oznaczone we wpisach @@ -4420,7 +4418,7 @@ bool TGround::GetTraction(TDynamicObject *model) for (int j = r - 2; j <= r; j++) for (int i = c - 2; i <= c; i++) { // poszukiwanie po najbliższych sektorach niewiele da przy większym - // zagęszczeniu + // zagęszczeniu tmp = FastGetSubRect(i, j); if (tmp) { // dany sektor może nie mieć nic w środku @@ -4438,34 +4436,35 @@ bool TGround::GetTraction(TDynamicObject *model) DotProduct(vParam, vFront); if ((fRaParam >= -0.001) ? (fRaParam <= 1.001) : false) { // jeśli tylko jest w przedziale, wyznaczyć odległość wzdłuż - // wektorów vUp i vLeft + // wektorów vUp i vLeft vStyk = node->hvTraction->pPoint1 + fRaParam * vParam; // punkt styku płaszczyzny z - // drutem (dla generatora łuku - // el.) + // drutem (dla generatora łuku + // el.) vGdzie = vStyk - pant0; // wektor fVertical = DotProduct( vGdzie, vUp); // musi się mieścić w przedziale ruchu pantografu if (fVertical >= 0.0) // jeśli ponad pantografem (bo może - // łapać druty spod wiaduktu) + // łapać druty spod wiaduktu) if (Global::bEnableTraction ? fVertical < p->PantWys - 0.15 : false) // jeśli drut jest niżej niż 15cm pod - // ślizgiem + // ślizgiem { // przełączamy w tryb połamania, o ile jedzie; - // (bEnableTraction) aby dało się jeździć na koślawych - // sceneriach + // (bEnableTraction) aby dało się jeździć na + // koślawych + // sceneriach fHorizontal = fabs(DotProduct(vGdzie, vLeft)) - p->fWidth; // i do tego jeszcze - // wejdzie pod ślizg + // wejdzie pod ślizg if (fHorizontal <= 0.0) // 0.635 dla AKP-1 AKP-4E { p->PantWys = -1.0; // ujemna liczba oznacza połamanie p->hvPowerWire = NULL; // bo inaczej się zasila - // w nieskończoność z - // połamanego + // w nieskończoność z + // połamanego // p->fHorizontal=fHorizontal; //zapamiętanie // położenia drutu if (model->MoverParameters->EnginePowerSource @@ -4474,7 +4473,7 @@ bool TGround::GetTraction(TDynamicObject *model) --model->MoverParameters->EnginePowerSource .CollectorParameters .CollectorsNo; // teraz będzie - // mniejsza + // mniejsza if (DebugModeFlag) ErrorLog( "Pant. break: at " + @@ -4486,14 +4485,14 @@ bool TGround::GetTraction(TDynamicObject *model) } } else if (fVertical < p->PantTraction) // ale niżej, niż - // poprzednio - // znaleziony + // poprzednio + // znaleziony { fHorizontal = fabs(DotProduct(vGdzie, vLeft)) - p->fWidth; if (fHorizontal <= 0.0) // 0.635 dla AKP-1 AKP-4E { // to się musi mieścić w przedziale zaleznym od - // szerokości pantografu + // szerokości pantografu p->hvPowerWire = node->hvTraction; // jakiś znaleziony p->PantTraction = @@ -4503,28 +4502,28 @@ bool TGround::GetTraction(TDynamicObject *model) } else if (fHorizontal < p->fWidthExtra) // czy zmieścił się w - // zakresie nabieżnika? + // zakresie nabieżnika? { // problem jest, gdy nowy drut jest wyżej, wtedy - // pantograf odłącza się od starego, a na - // podniesienie do nowego potrzebuje czasu + // pantograf odłącza się od starego, a na + // podniesienie do nowego potrzebuje czasu fVertical += 0.15 * fHorizontal / p->fWidthExtra; // korekta wysokości o - // nabieżnik - drut nad - // nabieżnikiem jest - // geometrycznie jakby nieco - // wyżej + // nabieżnik - drut nad + // nabieżnikiem jest + // geometrycznie jakby nieco + // wyżej if (fVertical < p->PantTraction) // gdy po korekcie jest - // niżej, niż poprzednio - // znaleziony + // niżej, niż poprzednio + // znaleziony { // gdyby to wystarczyło, to możemy go uznać p->hvPowerWire = node->hvTraction; // może być p->PantTraction = fVertical; // na razie liniowo na - // nabieżniku, dokładność - // poprawi się później + // nabieżniku, dokładność + // poprawi się później // p->fHorizontal=fHorizontal; // //zapamiętanie położenia drutu } @@ -4584,7 +4583,7 @@ bool TGround::RenderDL(vector3 pPosition) for (node = tmp->nRenderHidden; node; node = node->nNext3) node->RenderHidden(); tmp->RenderSounds(); // jeszcze dźwięki pojazdów by się przydały, również - // niewidocznych + // niewidocznych } // renderowanie progresywne - zależne od FPS oraz kierunku patrzenia iRendered = 0; // ilość renderowanych sektorów @@ -4597,7 +4596,7 @@ bool TGround::RenderDL(vector3 pPosition) { if (j <= 0) i = -i; // pierwszy przebieg: j<=0, i>=0; drugi: j>=0, i<=0; trzeci: j<=0, i<=0 - // czwarty: j>=0, i>=0; + // czwarty: j>=0, i>=0; j = -j; // i oraz j musi być zmienione wcześniej, żeby continue działało direction = vector3(i, 0, j); // wektor od kamery do danego sektora if (LengthSquared3(direction) > 5) // te blisko są zawsze wyświetlane @@ -4674,7 +4673,7 @@ bool TGround::RenderVBO(vector3 pPosition) for (node = tmp->nRenderHidden; node; node = node->nNext3) node->RenderHidden(); tmp->RenderSounds(); // jeszcze dźwięki pojazdów by się przydały, również - // niewidocznych + // niewidocznych } } // renderowanie progresywne - zależne od FPS oraz kierunku patrzenia @@ -4688,7 +4687,7 @@ bool TGround::RenderVBO(vector3 pPosition) { if (j <= 0) i = -i; // pierwszy przebieg: j<=0, i>=0; drugi: j>=0, i<=0; trzeci: j<=0, i<=0 - // czwarty: j>=0, i>=0; + // czwarty: j>=0, i>=0; j = -j; // i oraz j musi być zmienione wcześniej, żeby continue działało direction = vector3(i, 0, j); // wektor od kamery do danego sektora if (LengthSquared3(direction) > 5) // te blisko są zawsze wyświetlane @@ -5049,7 +5048,7 @@ void TGround::TerrainWrite() if (Current->TextureID) switch (Current->iType) { // pętla po trójkątach - zliczanie wierzchołków, dodaje submodel dla - // każdej tekstury + // każdej tekstury case GL_TRIANGLES: Current->iVboPtr = sk->TriangleAdd( m, Current->TextureID, @@ -5058,10 +5057,10 @@ void TGround::TerrainWrite() Current->iNumVerts; // zwiększenie całkowitej ilości wierzchołków break; case GL_TRIANGLE_STRIP: // na razie nie, bo trzeba przerabiać na pojedyncze - // trójkąty + // trójkąty break; case GL_TRIANGLE_FAN: // na razie nie, bo trzeba przerabiać na pojedyncze - // trójkąty + // trójkąty break; } for (Current = Rects[i][j].nRootNode; Current; Current = Current->nNext2) @@ -5092,10 +5091,10 @@ void TGround::TerrainWrite() } break; case GL_TRIANGLE_STRIP: // na razie nie, bo trzeba przerabiać na pojedyncze - // trójkąty + // trójkąty break; case GL_TRIANGLE_FAN: // na razie nie, bo trzeba przerabiać na pojedyncze - // trójkąty + // trójkąty break; } } diff --git a/Ground.h b/Ground.h index 316de17a..dc97bce2 100644 --- a/Ground.h +++ b/Ground.h @@ -160,7 +160,7 @@ class TGroundNode : public Resource void RenderHidden(); // obsługa dźwięków i wyzwalaczy zdarzeń void RenderDL(); // renderowanie nieprzezroczystych w Display Lists void RenderAlphaDL(); // renderowanie przezroczystych w Display Lists - // (McZapkie-131202) + // (McZapkie-131202) void RaRenderVBO(); // renderowanie (nieprzezroczystych) ze wspólnego VBO void RenderVBO(); // renderowanie nieprzezroczystych z własnego VBO void RenderAlphaVBO(); // renderowanie przezroczystych z (własnego) VBO @@ -193,19 +193,18 @@ class TSubRect : public Resource, public CMesh TSubRect(); virtual ~TSubRect(); virtual void Release(); // zwalnianie VBO sektora - void NodeAdd( - TGroundNode *Node); // dodanie obiektu do sektora na etapie rozdzielania na sektory + void NodeAdd(TGroundNode *Node); // dodanie obiektu do sektora na etapie rozdzielania na sektory void RaNodeAdd(TGroundNode *Node); // dodanie obiektu do listy renderowania void Sort(); // optymalizacja obiektów w sektorze (sortowanie wg tekstur) TTrack *__fastcall FindTrack(vector3 *Point, int &iConnection, TTrack *Exclude); TTraction *__fastcall FindTraction(vector3 *Point, int &iConnection, TTraction *Exclude); bool StartVBO(); // ustwienie VBO sektora dla (nRenderRect), (nRenderRectAlpha) i - // (nRenderWires) + // (nRenderWires) bool RaTrackAnimAdd(TTrack *t); // zgłoszenie toru do animacji void RaAnimate(); // przeliczenie animacji torów void RenderDL(); // renderowanie nieprzezroczystych w Display Lists void RenderAlphaDL(); // renderowanie przezroczystych w Display Lists - // (McZapkie-131202) + // (McZapkie-131202) void RenderVBO(); // renderowanie nieprzezroczystych z własnego VBO void RenderAlphaVBO(); // renderowanie przezroczystych z (własnego) VBO void RenderSounds(); // dźwięki pojazdów z niewidocznych sektorów @@ -227,7 +226,10 @@ class TGroundRect : public TSubRect private: int iLastDisplay; // numer klatki w której był ostatnio wyświetlany TSubRect *pSubRects; - void Init() { pSubRects = new TSubRect[iNumSubRects * iNumSubRects]; }; + void Init() + { + pSubRects = new TSubRect[iNumSubRects * iNumSubRects]; + }; public: static int iFrameNumber; // numer kolejny wyświetlanej klatki @@ -359,8 +361,14 @@ class TGround }; TSubRect *__fastcall GetSubRect(int iCol, int iRow); TSubRect *__fastcall FastGetSubRect(int iCol, int iRow); - int GetRowFromZ(double z) { return (z / fSubRectSize + fHalfTotalNumSubRects); }; - int GetColFromX(double x) { return (x / fSubRectSize + fHalfTotalNumSubRects); }; + int GetRowFromZ(double z) + { + return (z / fSubRectSize + fHalfTotalNumSubRects); + }; + int GetColFromX(double x) + { + return (x / fSubRectSize + fHalfTotalNumSubRects); + }; TEvent *__fastcall FindEvent(const AnsiString &asEventName); TEvent *__fastcall FindEventScan(const AnsiString &asEventName); void TrackJoin(TGroundNode *Current); diff --git a/Machajka.cpp b/Machajka.cpp index d7e672d3..3d75b541 100644 --- a/Machajka.cpp +++ b/Machajka.cpp @@ -15,9 +15,14 @@ http://mozilla.org/MPL/2.0/. #include "Timer.h" #include "Globals.h" -__fastcall TMachajka::TMachajka() : TTrain() { TTrain::TTrain(); } +__fastcall TMachajka::TMachajka() : TTrain() +{ + TTrain::TTrain(); +} -__fastcall TMachajka::~TMachajka() {} +__fastcall TMachajka::~TMachajka() +{ +} bool TMachajka::Init(TDynamicObject *NewDynamicObject) { @@ -63,11 +68,20 @@ void TMachajka::OnKeyPress(int cKey) } } -bool TMachajka::Update(double dt) { TTrain::Update(dt); } +bool TMachajka::Update(double dt) +{ + TTrain::Update(dt); +} -bool TMachajka::UpdateMechPosition() { TTrain::UpdateMechPosition(); } +bool TMachajka::UpdateMechPosition() +{ + TTrain::UpdateMechPosition(); +} -bool TMachajka::Render() { TTrain::Render(); } +bool TMachajka::Render() +{ + TTrain::Render(); +} //--------------------------------------------------------------------------- #pragma package(smart_init) diff --git a/MdlMngr.cpp b/MdlMngr.cpp index 3900f0c2..9e191424 100644 --- a/MdlMngr.cpp +++ b/MdlMngr.cpp @@ -57,7 +57,10 @@ __fastcall TModelsManager::~TModelsManager() Free(); }; */ -void TModelsManager::Free() { SafeDeleteArray(Models); } +void TModelsManager::Free() +{ + SafeDeleteArray(Models); +} TModel3d *__fastcall TModelsManager::LoadModel(char *Name, bool dynamic) { // wczytanie modelu do tablicy @@ -75,7 +78,7 @@ TModel3d *__fastcall TModelsManager::LoadModel(char *Name, bool dynamic) TModel3d *__fastcall TModelsManager::GetModel(const char *Name, bool dynamic) { // model może być we wpisie "node...model" albo "node...dynamic", a także być dodatkowym w dynamic - // (kabina, wnętrze, ładunek) + // (kabina, wnętrze, ładunek) // dla "node...dynamic" mamy podaną ścieżkę w "\dynamic\" i musi być co najmniej 1 poziom, zwkle // są 2 // dla "node...model" może być typowy model statyczny ze ścieżką, domyślnie w "\scenery\" albo @@ -97,7 +100,7 @@ TModel3d *__fastcall TModelsManager::GetModel(const char *Name, bool dynamic) // - wczytanie modelu animowanego - Init() - sprawdzić char buf[255]; AnsiString buftp = Global::asCurrentTexturePath; // zapamiętanie aktualnej ścieżki do tekstur, - // bo będzie tyczmasowo zmieniana + // bo będzie tyczmasowo zmieniana /* // Ra: niby tak jest lepiej, ale działa gorzej, więc przywrócone jest oryginalne //nawet jeśli model będzie pobrany z tablicy, to trzeba ustalić ścieżkę dla tekstur diff --git a/MemCell.cpp b/MemCell.cpp index d7126ad0..feceee07 100644 --- a/MemCell.cpp +++ b/MemCell.cpp @@ -34,19 +34,23 @@ TMemCell::TMemCell(vector3 *p) { fValue1 = fValue2 = 0; szText = new char[256]; // musi być dla automatycznie tworzonych komórek dla odcinków - // izolowanych + // izolowanych vPosition = p ? *p : vector3(0, 0, 0); // ustawienie współrzędnych, bo do TGroundNode nie ma dostępu bCommand = false; // komenda wysłana OnSent = NULL; } -TMemCell::~TMemCell() { SafeDeleteArray(szText); } +TMemCell::~TMemCell() +{ + SafeDeleteArray(szText); +} -void TMemCell::Init() {} +void TMemCell::Init() +{ +} -void TMemCell::UpdateValues(char *szNewText, double fNewValue1, double fNewValue2, - int CheckMask) +void TMemCell::UpdateValues(char *szNewText, double fNewValue1, double fNewValue2, int CheckMask) { if (CheckMask & update_memadd) { // dodawanie wartości @@ -140,8 +144,7 @@ void TMemCell::PutCommand(TController *Mech, vector3 *Loc) Mech->PutCommand(szText, fValue1, fValue2, Loc); } -bool TMemCell::Compare(char *szTestText, double fTestValue1, double fTestValue2, - int CheckMask) +bool TMemCell::Compare(char *szTestText, double fTestValue1, double fTestValue2, int CheckMask) { // porównanie zawartości komórki pamięci z podanymi wartościami if (TestFlag(CheckMask, conditional_memstring)) { // porównać teksty @@ -161,7 +164,10 @@ bool TMemCell::Compare(char *szTestText, double fTestValue1, double fTestValue2, (!TestFlag(CheckMask, conditional_memval2) || (fValue2 == fTestValue2))); }; -bool TMemCell::Render() { return true; } +bool TMemCell::Render() +{ + return true; +} bool TMemCell::IsVelocity() { // sprawdzenie, czy event odczytu tej komórki ma być do skanowania, czy do kolejkowania diff --git a/MemCell.h b/MemCell.h index 271a79c8..caef4d94 100644 --- a/MemCell.h +++ b/MemCell.h @@ -30,19 +30,35 @@ class TMemCell TMemCell(vector3 *p); ~TMemCell(); void Init(); - void UpdateValues(char *szNewText, double fNewValue1, double fNewValue2, - int CheckMask); + void UpdateValues(char *szNewText, double fNewValue1, double fNewValue2, int CheckMask); bool Load(cParser *parser); void PutCommand(TController *Mech, vector3 *Loc); - bool Compare(char *szTestText, double fTestValue1, double fTestValue2, - int CheckMask); + bool Compare(char *szTestText, double fTestValue1, double fTestValue2, int CheckMask); bool Render(); - inline char *__fastcall Text() { return szText; }; - inline double Value1() { return fValue1; }; - inline double Value2() { return fValue2; }; - inline vector3 Position() { return vPosition; }; - inline TCommandType Command() { return eCommand; }; - inline bool StopCommand() { return bCommand; }; + inline char *__fastcall Text() + { + return szText; + }; + inline double Value1() + { + return fValue1; + }; + inline double Value2() + { + return fValue2; + }; + inline vector3 Position() + { + return vPosition; + }; + inline TCommandType Command() + { + return eCommand; + }; + inline bool StopCommand() + { + return bCommand; + }; void StopCommandSent(); TCommandType CommandCheck(); bool IsVelocity(); diff --git a/Model3d.cpp b/Model3d.cpp index deb28c07..435b6fdd 100644 --- a/Model3d.cpp +++ b/Model3d.cpp @@ -178,8 +178,7 @@ void TSubModel::NameSet(const char *n) // int TSubModel::SeekFaceNormal(DWORD *Masks, int f,DWORD dwMask,vector3 *pt,GLVERTEX // *Vertices) -int TSubModel::SeekFaceNormal(DWORD *Masks, int f, DWORD dwMask, float3 *pt, - float8 *Vertices) +int TSubModel::SeekFaceNormal(DWORD *Masks, int f, DWORD dwMask, float3 *pt, float8 *Vertices) { // szukanie punktu stycznego do (pt), zwraca numer wierzchołka, a nie trójkąta int iNumFaces = iNumVerts / 3; // bo maska powierzchni jest jedna na trójkąt // GLVERTEX *p; //roboczy wskaźnik @@ -458,7 +457,7 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) parser.getToken(token); if (token[0] == '*') { // jeśli pierwszy znak jest gwiazdką, poszukać submodelu o nazwie bez tej gwiazdki i wziąć - // z niego wierzchołki + // z niego wierzchołki Error("Verticles reference not yet supported!"); } else @@ -476,7 +475,7 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) Vertices = new float8[iNumVerts]; iNumFaces = iNumVerts / 3; sg = new DWORD[iNumFaces]; // maski powierzchni: 0 oznacza brak użredniania wektorów - // normalnych + // normalnych int *wsp = new int[iNumVerts]; // z którego wierzchołka kopiować wektor normalny int maska = 0; for (int i = 0; i < iNumVerts; i++) @@ -484,10 +483,10 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) wsp[i] = -1; // wektory normalne nie są policzone dla tego wierzchołka if ((i % 3) == 0) { // jeśli będzie maska -1, to dalej będą wierzchołki z wektorami normalnymi, - // podanymi jawnie + // podanymi jawnie parser.getToken(maska); // maska powierzchni trójkąta sg[i / 3] = (maska == -1) ? 0 : maska; // dla maski -1 będzie 0, czyli nie - // ma wspólnych wektorów normalnych + // ma wspólnych wektorów normalnych } parser.getToken(Vertices[i].Point.x); parser.getToken(Vertices[i].Point.y); @@ -514,14 +513,14 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) AnsiString(pName) + "\", verticle " + AnsiString(i)); } if (i > 0) // jeśli pierwszy trójkąt będzie zdegenerowany, to zostanie - // usunięty i nie ma co sprawdzać + // usunięty i nie ma co sprawdzać if (((Vertices[i].Point - Vertices[i - 1].Point).Length() > 1000.0) || ((Vertices[i - 1].Point - Vertices[i - 2].Point).Length() > 1000.0) || ((Vertices[i - 2].Point - Vertices[i].Point).Length() > 1000.0)) { // jeżeli są dalej niż 2km od siebie //Ra 15-01: obiekt wstawiany nie - // powinien być większy niż 300m (trójkąty terenu w E3D mogą mieć - // 1.5km) + // powinien być większy niż 300m (trójkąty terenu w E3D mogą mieć + // 1.5km) --iNumFaces; // o jeden trójkąt mniej iNumVerts -= 3; // czyli o 3 wierzchołki i -= 3; // wczytanie kolejnego w to miejsce @@ -533,7 +532,7 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) int i; // indeks dla trójkątów float3 *n = new float3[iNumFaces]; // tablica wektorów normalnych dla trójkątów for (i = 0; i < iNumFaces; i++) // pętla po trójkątach - będzie szybciej, jak - // wstępnie przeliczymy normalne trójkątów + // wstępnie przeliczymy normalne trójkątów n[i] = SafeNormalize( CrossProduct(Vertices[i * 3].Point - Vertices[i * 3 + 1].Point, Vertices[i * 3].Point - Vertices[i * 3 + 2].Point)); @@ -554,7 +553,7 @@ int TSubModel::Load(cParser &parser, TModel3d *Model, int Pos, bool dynamic) while (f >= 0) { // sumowanie z wektorem normalnym sąsiada (włącznie ze sobą) wsp[f] = v; // informacja, że w tym wierzchołku jest już policzony - // wektor normalny + // wektor normalny norm += n[f / 3]; f = SeekFaceNormal(sg, f / 3 + 1, sg[i], &Vertices[v].Point, Vertices); // i szukanie od kolejnego trójkąta @@ -776,7 +775,7 @@ void TSubModel::InitialRotate(bool doit) (*mat)(3)[0] = (*mat)(3)[1] = (*mat)(3)[2] = 0.0; // zerujemy przesunięcie przed obracaniem normalnych if (eType != TP_STARS) // gwiazdki mają kolory zamiast normalnych, to ich wtedy - // nie ruszamy + // nie ruszamy for (int i = 0; i < iNumVerts; ++i) Vertices[i].Normal = SafeNormalize((*mat) * Vertices[i].Normal); } @@ -916,7 +915,10 @@ void TSubModel::SetRotateIK1(float3 vNewAngles) struct ToLower { - char operator()(char input) { return tolower(input); } + char operator()(char input) + { + return tolower(input); + } }; TSubModel *__fastcall TSubModel::GetFromName(AnsiString search, bool i) @@ -1003,7 +1005,7 @@ void TSubModel::RaAnimation(TAnimType a) case at_Billboard: // obrót w pionie do kamery { matrix4x4 mat; // potrzebujemy współrzędne przesunięcia środka układu współrzędnych - // submodelu + // submodelu glGetDoublev(GL_MODELVIEW_MATRIX, mat.getArray()); // pobranie aktualnej matrycy float3 gdzie = float3(mat[3][0], mat[3][1], mat[3][2]); // początek układu współrzędnych submodelu względem kamery @@ -1092,7 +1094,7 @@ void TSubModel::RenderDL() { double Distdimm = 1.0; if (fCosViewAngle < fCosHotspotAngle) // zmniejszona jasność między Hotspot a - // Falloff + // Falloff if (fCosFalloffAngle < fCosHotspotAngle) Distdimm = 1.0 - (fCosHotspotAngle - fCosViewAngle) / @@ -1188,9 +1190,9 @@ void TSubModel::RenderAlphaDL() char c; if (!smLetter) { // jeśli nie ma tablicy, to ją stworzyć; miejsce nieodpowiednie, ale tymczasowo - // może być + // może być smLetter = new TSubModel *[256]; // tablica wskaźników submodeli dla - // wyświetlania tekstu + // wyświetlania tekstu ZeroMemory(smLetter, 256 * sizeof(TSubModel *)); // wypełnianie zerami p = Child; while (p) @@ -1270,7 +1272,7 @@ void TSubModel::RenderVBO() { double Distdimm = 1.0; if (fCosViewAngle < fCosHotspotAngle) // zmniejszona jasność między Hotspot a - // Falloff + // Falloff if (fCosFalloffAngle < fCosHotspotAngle) Distdimm = 1.0 - (fCosHotspotAngle - fCosViewAngle) / @@ -1523,8 +1525,8 @@ void TSubModel::InfoSet(TSubModelInfo *info) pTexture = pName = NULL; }; -void TSubModel::BinInit(TSubModel *s, float4x4 *m, float8 *v, TStringPack *t, - TStringPack *n, bool dynamic) +void TSubModel::BinInit(TSubModel *s, float4x4 *m, float8 *v, TStringPack *t, TStringPack *n, + bool dynamic) { // ustawienie wskaźników w submodelu iVisible = 1; // tymczasowo używane Child = ((int)Child > 0) ? s + (int)Child : NULL; // zerowy nie może być potomnym @@ -1539,7 +1541,7 @@ void TSubModel::BinInit(TSubModel *s, float4x4 *m, float8 *v, TStringPack *t, { // jeśli dany submodel jest zgaszonym światłem, to domyślnie go ukrywamy if (s.SubString(1, 8) == "Light_On") // jeśli jest światłem numerowanym iVisible = 0; // to domyślnie wyłączyć, żeby się nie nakładało z obiektem - // "Light_Off" + // "Light_Off" else if (dynamic) // inaczej wyłączało smugę w latarniach if (s.SubString(s.Length() - 2, 3) == "_on") // jeśli jest kontrolką w stanie zapalonym @@ -1783,12 +1785,12 @@ void TModel3d::LoadFromBinFile(char *FileName, bool dynamic) case 'SUB0': // submodele: 'SUB0',len,(256 bajtów na submodel) iSubModelsCount = (k - 2) / 64; Root = (TSubModel *)(iModel + i + 2); // numery na wskaźniki przetworzymy - // później + // później break; case 'SUB1': // submodele: 'SUB1',len,(320 bajtów na submodel) iSubModelsCount = (k - 2) / 80; Root = (TSubModel *)(iModel + i + 2); // numery na wskaźniki przetworzymy - // później + // później for (ch = 1; ch < iSubModelsCount; ++ch) // trzeba przesunąć bliżej, bo 256 wystarczy MoveMemory(((char *)Root) + 256 * ch, ((char *)Root) + 320 * ch, 256); @@ -1909,7 +1911,7 @@ void TModel3d::Init() if (Global::fDistanceFactor != 1.0) // trochę zaoszczędzi czasu na modelach z wieloma submocelami Root->AdjustDist(); // aktualizacja odległości faz LoD, zależnie od rozdzielczości - // pionowej oraz multisamplingu + // pionowej oraz multisamplingu if (Global::bUseVBO) { if (!m_pVNT) // jeśli nie ma jeszcze tablicy (wczytano z pliku tekstowego) @@ -2019,7 +2021,10 @@ void TModel3d::SaveToBinFile(char *FileName) delete[] info; }; -void TModel3d::BreakHierarhy() { Error("Not implemented yet :("); }; +void TModel3d::BreakHierarhy() +{ + Error("Not implemented yet :("); +}; /* void TModel3d::Render(vector3 pPosition,double fAngle,GLuint ReplacableSkinId,int iAlpha) @@ -2122,8 +2127,7 @@ void TModel3d::RaRender(double fSquareDistance, GLuint *ReplacableSkinId, int iA } }; -void TModel3d::RaRenderAlpha(double fSquareDistance, GLuint *ReplacableSkinId, - int iAlpha) +void TModel3d::RaRenderAlpha(double fSquareDistance, GLuint *ReplacableSkinId, int iAlpha) { // renderowanie specjalne, np. kabiny if (iAlpha & iFlags & 0x2F2F002F) // czy w ogóle jest co robić w tym cyklu? { @@ -2159,8 +2163,7 @@ iAlpha) // 2011-03-16 cztery nowe funkcje renderowania z możliwością pochylania obiektów //----------------------------------------------------------------------------- -void TModel3d::Render(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, - int iAlpha) +void TModel3d::Render(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, int iAlpha) { // nieprzezroczyste, Display List glPushMatrix(); glTranslated(vPosition->x, vPosition->y, vPosition->z); @@ -2178,7 +2181,7 @@ void TModel3d::Render(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSki glPopMatrix(); }; void TModel3d::RenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, - int iAlpha) + int iAlpha) { // przezroczyste, Display List glPushMatrix(); glTranslated(vPosition->x, vPosition->y, vPosition->z); @@ -2194,8 +2197,7 @@ void TModel3d::RenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *Replacab Root->RenderAlphaDL(); glPopMatrix(); }; -void TModel3d::RaRender(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, - int iAlpha) +void TModel3d::RaRender(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, int iAlpha) { // nieprzezroczyste, VBO glPushMatrix(); glTranslated(vPosition->x, vPosition->y, vPosition->z); @@ -2215,8 +2217,8 @@ void TModel3d::RaRender(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableS } glPopMatrix(); }; -void TModel3d::RaRenderAlpha(vector3 *vPosition, vector3 *vAngle, - GLuint *ReplacableSkinId, int iAlpha) +void TModel3d::RaRenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId, + int iAlpha) { // przezroczyste, VBO glPushMatrix(); glTranslated(vPosition->x, vPosition->y, vPosition->z); @@ -2280,7 +2282,7 @@ void TModel3d::TerrainRenderVBO(int n) while (r) { if (r->iVisible == n) // tylko jeśli ma być widoczny w danej ramce (problem dla - // 0==false) + // 0==false) r->RenderVBO(); // sub kolejne (Next) się nie wyrenderują r = r->NextGet(); } diff --git a/Model3d.h b/Model3d.h index ce5a5e3e..b724d4c0 100644 --- a/Model3d.h +++ b/Model3d.h @@ -36,21 +36,33 @@ class TStringPack //+8 - tabela indeksów public: char *String(int n); - char *StringAt(int n) { return data + 9 + n; }; + char *StringAt(int n) + { + return data + 9 + n; + }; TStringPack() { data = NULL; index = NULL; }; - void Init(char *d) { data = d; }; - void InitIndex(int *i) { index = i; }; + void Init(char *d) + { + data = d; + }; + void InitIndex(int *i) + { + index = i; + }; }; class TMaterialColor { public: TMaterialColor(){}; - TMaterialColor(char V) { r = g = b = V; }; + TMaterialColor(char V) + { + r = g = b = V; + }; // TMaterialColor(double R, double G, double B) TMaterialColor(char R, char G, char B) { @@ -199,7 +211,7 @@ class TSubModel float fFarDecayRadius; // normalizacja j.w. float fCosFalloffAngle; // cosinus kąta stożka pod którym widać światło float fCosHotspotAngle; // cosinus kąta stożka pod którym widać aureolę i zwiększone natężenie - // światła + // światła float fCosViewAngle; // cos kata pod jakim sie teraz patrzy // Ra: dalej są zmienne robocze, można je przestawiać z zachowaniem rozmiaru klasy int TextureID; // numer tekstury, -1 wymienna, 0 brak @@ -250,8 +262,14 @@ class TSubModel int Load(cParser &Parser, TModel3d *Model, int Pos, bool dynamic); void ChildAdd(TSubModel *SubModel); void NextAdd(TSubModel *SubModel); - TSubModel *__fastcall NextGet() { return Next; }; - TSubModel *__fastcall ChildGet() { return Child; }; + TSubModel *__fastcall NextGet() + { + return Next; + }; + TSubModel *__fastcall ChildGet() + { + return Child; + }; int TriangleAdd(TModel3d *m, int tex, int tri); float8 *__fastcall TrianglePtr(int tex, int pos, int *la, int *ld, int *ls); // float8* TrianglePtr(const char *tex,int tri); @@ -269,9 +287,15 @@ class TSubModel void RenderVBO(); void RenderAlphaVBO(); // inline matrix4x4* GetMatrix() {return dMatrix;}; - inline float4x4 *__fastcall GetMatrix() { return fMatrix; }; + inline float4x4 *__fastcall GetMatrix() + { + return fMatrix; + }; // matrix4x4* GetTransform() {return Matrix;}; - inline void Hide() { iVisible = 0; }; + inline void Hide() + { + iVisible = 0; + }; void RaArrayFill(CVertNormTex *Vert); // void Render(); int FlagsCheck(); @@ -284,8 +308,8 @@ class TSubModel void DisplayLists(); void Info(); void InfoSet(TSubModelInfo *info); - void BinInit(TSubModel *s, float4x4 *m, float8 *v, TStringPack *t, - TStringPack *n = NULL, bool dynamic = false); + void BinInit(TSubModel *s, float4x4 *m, float8 *v, TStringPack *t, TStringPack *n = NULL, + bool dynamic = false); void ReplacableSet(GLuint *r, int a) { ReplacableSkinId = r; @@ -294,8 +318,14 @@ class TSubModel void TextureNameSet(const char *n); void NameSet(const char *n); // Ra: funkcje do budowania terenu z E3D - int Flags() { return iFlags; }; - void UnFlagNext() { iFlags &= 0x00FFFFFF; }; + int Flags() + { + return iFlags; + }; + void UnFlagNext() + { + iFlags &= 0x00FFFFFF; + }; void ColorsSet(int *a, int *d, int *s); inline float3 Translation1Get() { @@ -356,7 +386,10 @@ class TModel3d : public CMesh int iSubModelsCount; // Ra: używane do tworzenia binarnych AnsiString asBinary; // nazwa pod którą zapisać model binarny public: - inline TSubModel *__fastcall GetSMRoot() { return (Root); }; + inline TSubModel *__fastcall GetSMRoot() + { + return (Root); + }; // double Radius; //Ra: nie używane TModel3d(); TModel3d(char *FileName); @@ -371,36 +404,40 @@ class TModel3d : public CMesh void SaveToBinFile(char *FileName); void BreakHierarhy(); // renderowanie specjalne - void Render(double fSquareDistance, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); + void Render(double fSquareDistance, GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); void RenderAlpha(double fSquareDistance, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); - void RaRender(double fSquareDistance, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); + int iAlpha = 0x30300030); + void RaRender(double fSquareDistance, GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); void RaRenderAlpha(double fSquareDistance, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); + int iAlpha = 0x30300030); // jeden kąt obrotu void Render(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); - void RenderAlpha(vector3 pPosition, double fAngle = 0, - GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); + int iAlpha = 0x30300030); + void RenderAlpha(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL, + int iAlpha = 0x30300030); void RaRender(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); - void RaRenderAlpha(vector3 pPosition, double fAngle = 0, - GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); + int iAlpha = 0x30300030); + void RaRenderAlpha(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL, + int iAlpha = 0x30300030); // trzy kąty obrotu void Render(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); - void RenderAlpha(vector3 *vPosition, vector3 *vAngle, - GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); + int iAlpha = 0x30300030); + void RenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL, + int iAlpha = 0x30300030); void RaRender(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL, - int iAlpha = 0x30300030); - void RaRenderAlpha(vector3 *vPosition, vector3 *vAngle, - GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030); + int iAlpha = 0x30300030); + void RaRenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL, + int iAlpha = 0x30300030); // inline int GetSubModelsCount() { return (SubModelsCount); }; - int Flags() { return iFlags; }; + int Flags() + { + return iFlags; + }; void Init(); - char *__fastcall NameGet() { return Root ? Root->pName : NULL; }; + char *__fastcall NameGet() + { + return Root ? Root->pName : NULL; + }; int TerrainCount(); TSubModel *__fastcall TerrainSquare(int n); void TerrainRenderVBO(int n); diff --git a/Mover.cpp b/Mover.cpp index 47c4f07d..259e1a2d 100644 --- a/Mover.cpp +++ b/Mover.cpp @@ -16,9 +16,8 @@ http://mozilla.org/MPL/2.0/. const dEpsilon = 0.01; // 1cm (zależy od typu sprzęgu...) -TMoverParameters::TMoverParameters(double VelInitial, AnsiString TypeNameInit, - AnsiString NameInit, int LoadInitial, - AnsiString LoadTypeInitial, int Cab) +TMoverParameters::TMoverParameters(double VelInitial, AnsiString TypeNameInit, AnsiString NameInit, + int LoadInitial, AnsiString LoadTypeInitial, int Cab) : T_MoverParameters(VelInitial, TypeNameInit, NameInit, LoadInitial, LoadTypeInitial, Cab) { // główny konstruktor DimHalf.x = 0.5 * Dim.W; // połowa szerokości, OX jest w bok? @@ -32,13 +31,13 @@ TMoverParameters::TMoverParameters(double VelInitial, AnsiString TypeNameInit, }; double TMoverParameters::Distance(const TLocation &Loc1, const TLocation &Loc2, - const TDimension &Dim1, const TDimension &Dim2) + const TDimension &Dim1, const TDimension &Dim2) { // zwraca odległość pomiędzy pojazdami (Loc1) i (Loc2) z uwzględnieneim ich długości (kule!) return hypot(Loc2.X - Loc1.X, Loc1.Y - Loc2.Y) - 0.5 * (Dim2.L + Dim1.L); }; -double TMoverParameters::Distance(const vector3 &s1, const vector3 &s2, - const vector3 &d1, const vector3 &d2){ +double TMoverParameters::Distance(const vector3 &s1, const vector3 &s2, const vector3 &d1, + const vector3 &d2){ // obliczenie odległości prostopadłościanów o środkach (s1) i (s2) i wymiarach (d1) i (d2) // return 0.0; //będzie zgłaszać warning - funkcja do usunięcia, chyba że się przyda... }; @@ -50,9 +49,8 @@ double TMoverParameters::CouplerDist(Byte Coupler) Couplers[Coupler].Connected->Dim); // odległość pomiędzy sprzęgami (kula!) }; -bool TMoverParameters::Attach(Byte ConnectNo, Byte ConnectToNr, - TMoverParameters *ConnectTo, Byte CouplingType, - bool Forced) +bool TMoverParameters::Attach(Byte ConnectNo, Byte ConnectToNr, TMoverParameters *ConnectTo, + Byte CouplingType, bool Forced) { //łączenie do swojego sprzęgu (ConnectNo) pojazdu (ConnectTo) stroną (ConnectToNr) // Ra: zwykle wykonywane dwukrotnie, dla każdego pojazdu oddzielnie // Ra: trzeba by odróżnić wymóg dociśnięcia od uszkodzenia sprzęgu przy podczepianiu AI do @@ -91,12 +89,11 @@ bool TMoverParameters::Attach(Byte ConnectNo, Byte ConnectToNr, } } return false; // brak podłączanego pojazdu, zbyt duża odległość, niezgodny typ sprzęgu, brak - // sprzęgu, brak haka + // sprzęgu, brak haka }; -bool TMoverParameters::Attach(Byte ConnectNo, Byte ConnectToNr, - T_MoverParameters *ConnectTo, Byte CouplingType, - bool Forced) +bool TMoverParameters::Attach(Byte ConnectNo, Byte ConnectToNr, T_MoverParameters *ConnectTo, + Byte CouplingType, bool Forced) { //łączenie do (ConnectNo) pojazdu (ConnectTo) stroną (ConnectToNr) return Attach(ConnectNo, ConnectToNr, (TMoverParameters *)ConnectTo, CouplingType, Forced); }; @@ -139,7 +136,7 @@ bool TMoverParameters::Dettach(Byte ConnectNo) } else if (i > 0) { // odłączamy węże i resztę, pozostaje sprzęg fizyczny, który wymaga dociśnięcia (z wirtualnym - // nic) + // nic) Couplers[ConnectNo].CouplingFlag &= ctrain_coupler; Couplers[ConnectNo].Connected->Couplers[Couplers[ConnectNo].ConnectedNr].CouplingFlag = Couplers[ConnectNo].CouplingFlag; @@ -196,7 +193,7 @@ void TMoverParameters::BrakeLevelSet(double b) else if (fBrakeCtrlPos > Handle->GetPos(bh_MAX)) fBrakeCtrlPos = Handle->GetPos(bh_MAX); int x = floor(fBrakeCtrlPos); // jeśli odwołujemy się do BrakeCtrlPos w pośrednich, to musi być - // obcięte a nie zaokrągone + // obcięte a nie zaokrągone while ((x > BrakeCtrlPos) && (BrakeCtrlPos < BrakeCtrlPosNo)) // jeśli zwiększyło się o 1 if (!T_MoverParameters::IncBrakeLevelOld()) break; // wyjście awaryjne @@ -234,10 +231,13 @@ bool TMoverParameters::BrakeLevelAdd(double b) bool TMoverParameters::IncBrakeLevel() { // nowa wersja na użytek AI, false gdy osiągnięto pozycję BrakeCtrlPosNo - return BrakeLevelAdd(1.0); }; + return BrakeLevelAdd(1.0); +}; -bool TMoverParameters::DecBrakeLevel() -{ return BrakeLevelAdd(-1.0); }; // nowa wersja na użytek AI, false gdy osiągnięto pozycję -1 +bool TMoverParameters::DecBrakeLevel() +{ + return BrakeLevelAdd(-1.0); +}; // nowa wersja na użytek AI, false gdy osiągnięto pozycję -1 bool TMoverParameters::ChangeCab(int direction) { // zmiana kabiny i resetowanie ustawien @@ -298,7 +298,7 @@ bool TMoverParameters::CurrentSwitch(int direction) void TMoverParameters::UpdatePantVolume(double dt) { // KURS90 - sprężarka pantografów; Ra 2014-07: teraz jest to zbiornik rozrządu, chociaż to jeszcze - // nie tak + // nie tak if (EnginePowerSource.SourceType == CurrentCollector) // tylko jeśli pantografujący { // Ra 2014-07: zasadniczo, to istnieje zbiornik rozrządu i zbiornik pantografów - na razie @@ -310,7 +310,7 @@ void TMoverParameters::UpdatePantVolume(double dt) if ((TrainType == dt_EZT) ? (PantPress < ScndPipePress) : bPantKurek3) // kurek zamyka połączenie z ZG { // zbiornik pantografu połączony ze zbiornikiem głównym - małą sprężarką się tego nie - // napompuje + // napompuje // Ra 2013-12: Niebugocław mówi, że w EZT nie ma potrzeby odcinać kurkiem PantPress = EnginePowerSource.CollectorParameters .MaxPress; // ograniczenie ciśnienia do MaxPress (tylko w pantografach!) @@ -335,7 +335,7 @@ void TMoverParameters::UpdatePantVolume(double dt) if ((TrainType & (dt_EZT | dt_ET40 | dt_ET41 | dt_ET42)) ? (GetTrainsetVoltage() < EnginePowerSource.CollectorParameters.MinV) : true) // to jest trochę proteza; zasilanie członu może być przez sprzęg - // WN + // WN if (MainSwitch(false)) EventFlag = true; // wywalenie szybkiego z powodu niskiego ciśnienia if (TrainType != dt_EZT) // w EN57 pompuje się tylko w silnikowym @@ -377,7 +377,7 @@ void TMoverParameters::UpdateBatteryVoltage(double dt) else sn3 = 0; if (iLights[0] & 63) // 64=blachy, nie ciągną prądu //rozpisać na poszczególne - // żarówki... + // żarówki... sn4 = dt * 0.003; else sn4 = 0; @@ -475,9 +475,8 @@ ZN //masa */ double TMoverParameters::ComputeMovement(double dt, double dt1, const TTrackShape &Shape, - TTrackParam &Track, - TTractionParam &ElectricTraction, - const TLocation &NewLoc, TRotation &NewRot) + TTrackParam &Track, TTractionParam &ElectricTraction, + const TLocation &NewLoc, TRotation &NewRot) { // trzeba po mału przenosić tu tę funkcję double d; T_MoverParameters::ComputeMovement(dt, dt1, Shape, Track, ElectricTraction, NewLoc, NewRot); @@ -554,8 +553,8 @@ double TMoverParameters::ComputeMovement(double dt, double dt1, const TTrackShap }; double TMoverParameters::FastComputeMovement(double dt, const TTrackShape &Shape, - TTrackParam &Track, const TLocation &NewLoc, - TRotation &NewRot) + TTrackParam &Track, const TLocation &NewLoc, + TRotation &NewRot) { // trzeba po mału przenosić tu tę funkcję double d; T_MoverParameters::FastComputeMovement(dt, Shape, Track, NewLoc, NewRot); diff --git a/Mover.h b/Mover.h index 2db455f5..f92b3eb1 100644 --- a/Mover.h +++ b/Mover.h @@ -36,7 +36,7 @@ class TMoverParameters : public T_MoverParameters unsigned char WarningSignal; // tymczasowo 8bit, ze względu na funkcje w MTools double fBrakeCtrlPos; // płynna nastawa hamulca zespolonego bool bPantKurek3; // kurek trójdrogowy (pantografu): true=połączenie z ZG, false=połączenie z - // małą sprężarką + // małą sprężarką int iProblem; // flagi problemów z taborem, aby AI nie musiało porównywać; 0=może jechać int iLights[2]; // bity zapalonych świateł tutaj, żeby dało się liczyć pobór prądu private: @@ -44,16 +44,16 @@ class TMoverParameters : public T_MoverParameters public: TMoverParameters(double VelInitial, AnsiString TypeNameInit, AnsiString NameInit, - int LoadInitial, AnsiString LoadTypeInitial, int Cab); + int LoadInitial, AnsiString LoadTypeInitial, int Cab); // obsługa sprzęgów double Distance(const TLocation &Loc1, const TLocation &Loc2, const TDimension &Dim1, - const TDimension &Dim2); + const TDimension &Dim2); double Distance(const vector3 &Loc1, const vector3 &Loc2, const vector3 &Dim1, - const vector3 &Dim2); - bool Attach(Byte ConnectNo, Byte ConnectToNr, TMoverParameters *ConnectTo, - Byte CouplingType, bool Forced = false); - bool Attach(Byte ConnectNo, Byte ConnectToNr, T_MoverParameters *ConnectTo, - Byte CouplingType, bool Forced = false); + const vector3 &Dim2); + bool Attach(Byte ConnectNo, Byte ConnectToNr, TMoverParameters *ConnectTo, Byte CouplingType, + bool Forced = false); + bool Attach(Byte ConnectNo, Byte ConnectToNr, T_MoverParameters *ConnectTo, Byte CouplingType, + bool Forced = false); int DettachStatus(Byte ConnectNo); bool Dettach(Byte ConnectNo); void SetCoupleDist(); @@ -65,11 +65,11 @@ class TMoverParameters : public T_MoverParameters bool ChangeCab(int direction); bool CurrentSwitch(int direction); void UpdateBatteryVoltage(double dt); - double ComputeMovement(double dt, double dt1, const TTrackShape &Shape, - TTrackParam &Track, TTractionParam &ElectricTraction, - const TLocation &NewLoc, TRotation &NewRot); + double ComputeMovement(double dt, double dt1, const TTrackShape &Shape, TTrackParam &Track, + TTractionParam &ElectricTraction, const TLocation &NewLoc, + TRotation &NewRot); double FastComputeMovement(double dt, const TTrackShape &Shape, TTrackParam &Track, - const TLocation &NewLoc, TRotation &NewRot); + const TLocation &NewLoc, TRotation &NewRot); double ShowEngineRotation(int VehN); // double GetTrainsetVoltage(void); // bool Physic_ReActivation(void); @@ -170,7 +170,7 @@ class TMoverParameters : public T_MoverParameters // TLocation &NewLoc, TRotation &NewRot); // bool ChangeOffsetH(double DeltaOffset); //__fastcall T_MoverParameters(double VelInitial, AnsiString TypeNameInit, AnsiString NameInit, - //int LoadInitial + // int LoadInitial // , AnsiString LoadTypeInitial, int Cab); // bool LoadChkFile(AnsiString chkpath); // bool CheckLocomotiveParameters(bool ReadyFlag, int Dir); diff --git a/Names.h b/Names.h index 76f162d2..3ddcaf85 100644 --- a/Names.h +++ b/Names.h @@ -26,8 +26,14 @@ class ItemRecord // typedef void ListGet(ItemRecord *r, int *&n); void TreeAdd(ItemRecord *r, int c); - template inline TOut *DataGet() { return (TOut *)pData; }; - template inline void DataSet(TOut *x) { pData = (void *)x; }; + template inline TOut *DataGet() + { + return (TOut *)pData; + }; + template inline void DataSet(TOut *x) + { + pData = (void *)x; + }; void *__fastcall TreeFind(const char *n); ItemRecord *__fastcall TreeFindRecord(const char *n); }; @@ -46,8 +52,7 @@ class TNames int Add(int t, const char *n); // dodanie obiektu typu (t) int Add(int t, const char *n, void *d); // dodanie obiektu z wskaźnikiem int Add(int t, const char *n, int d); // dodanie obiektu z numerem - bool Update(int t, const char *n, - void *d); // dodanie jeśli nie ma, wymiana (d), gdy jest + bool Update(int t, const char *n, void *d); // dodanie jeśli nie ma, wymiana (d), gdy jest void TreeSet(); ItemRecord *__fastcall TreeSet(int *n, int d, int u); void Sort(int t); // przebudowa drzewa typu (t) diff --git a/RealSound.cpp b/RealSound.cpp index c1709f0b..ff8d6e14 100644 --- a/RealSound.cpp +++ b/RealSound.cpp @@ -45,10 +45,12 @@ TRealSound::~TRealSound() // if (this) if (pSound) pSound->Stop(); } -void TRealSound::Free() {} +void TRealSound::Free() +{ +} -void TRealSound::Init(char *SoundName, double DistanceAttenuation, double X, double Y, - double Z, bool Dynamic, bool freqmod, double rmin) +void TRealSound::Init(char *SoundName, double DistanceAttenuation, double X, double Y, double Z, + bool Dynamic, bool freqmod, double rmin) { // Nazwa=SoundName; //to tak raczej nie zadziała, (SoundName) jest tymczasowe pSound = TSoundsManager::GetFromName(SoundName, Dynamic, &fFrequency); @@ -57,7 +59,7 @@ void TRealSound::Init(char *SoundName, double DistanceAttenuation, double X, dou if (freqmod) if (fFrequency != 22050.0) { // dla modulowanych nie może być zmiany mnożnika, bo częstotliwość w nagłówku byłą - // ignorowana, a mogła być inna niż 22050 + // ignorowana, a mogła być inna niż 22050 fFrequency = 22050.0; ErrorLog("Bad sound: " + AnsiString(SoundName) + ", as modulated, should have 22.05kHz in header"); @@ -95,8 +97,7 @@ double TRealSound::ListenerDistance(vector3 ListenerPosition) } } -void TRealSound::Play(double Volume, int Looping, bool ListenerInside, - vector3 NewPosition) +void TRealSound::Play(double Volume, int Looping, bool ListenerInside, vector3 NewPosition) { if (!pSound) return; @@ -168,7 +169,8 @@ void TRealSound::Play(double Volume, int Looping, bool ListenerInside, } }; -void TRealSound::Start(){// włączenie dźwięku +void TRealSound::Start(){ + // włączenie dźwięku }; @@ -185,8 +187,7 @@ void TRealSound::Stop() } }; -void TRealSound::AdjFreq(double Freq, - double dt) // McZapkie TODO: dorobic tu efekt Dopplera +void TRealSound::AdjFreq(double Freq, double dt) // McZapkie TODO: dorobic tu efekt Dopplera // Freq moze byc liczba dodatnia mniejsza od 1 lub wieksza od 1 { float df, Vlist, Vsrc; @@ -223,7 +224,10 @@ double TRealSound::GetWaveTime() // McZapkie: na razie tylko dla 22KHz/8bps fFrequency; //(pSound->); // wielkosc w bajtach przez czestotliwosc probkowania } -void TRealSound::SetPan(int Pan) { pSound->SetPan(Pan); } +void TRealSound::SetPan(int Pan) +{ + pSound->SetPan(Pan); +} int TRealSound::GetStatus() { @@ -243,8 +247,8 @@ void TRealSound::ResetPosition() pSound->SetCurrentPosition(0); } -void TTextSound::Init(char *SoundName, double SoundAttenuation, double X, double Y, - double Z, bool Dynamic, bool freqmod, double rmin) +void TTextSound::Init(char *SoundName, double SoundAttenuation, double X, double Y, double Z, + bool Dynamic, bool freqmod, double rmin) { // dodatkowo doczytuje plik tekstowy TRealSound::Init(SoundName, SoundAttenuation, X, Y, Z, Dynamic, freqmod, rmin); fTime = GetWaveTime(); @@ -264,8 +268,7 @@ void TTextSound::Init(char *SoundName, double SoundAttenuation, double X, double delete ts; } }; -void TTextSound::Play(double Volume, int Looping, bool ListenerInside, - vector3 NewPosition) +void TTextSound::Play(double Volume, int Looping, bool ListenerInside, vector3 NewPosition) { if (!asText.IsEmpty()) { // jeśli ma powiązany tekst diff --git a/RealSound.h b/RealSound.h index 5a1fbcdb..ef750910 100644 --- a/RealSound.h +++ b/RealSound.h @@ -32,8 +32,8 @@ class TRealSound TRealSound(); ~TRealSound(); void Free(); - void Init(char *SoundName, double SoundAttenuation, double X, double Y, double Z, - bool Dynamic, bool freqmod = false, double rmin = 0.0); + void Init(char *SoundName, double SoundAttenuation, double X, double Y, double Z, bool Dynamic, + bool freqmod = false, double rmin = 0.0); double ListenerDistance(vector3 ListenerPosition); void Play(double Volume, int Looping, bool ListenerInside, vector3 NewPosition); void Start(); @@ -51,8 +51,8 @@ class TTextSound : public TRealSound AnsiString asText; float fTime; // czas trwania public: - void Init(char *SoundName, double SoundAttenuation, double X, double Y, double Z, - bool Dynamic, bool freqmod = false, double rmin = 0.0); + void Init(char *SoundName, double SoundAttenuation, double X, double Y, double Z, bool Dynamic, + bool freqmod = false, double rmin = 0.0); void Play(double Volume, int Looping, bool ListenerInside, vector3 NewPosition); }; diff --git a/ResourceManager.cpp b/ResourceManager.cpp index ed470681..79d2ac4e 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -17,7 +17,10 @@ double ResourceManager::_expiry = 5.0f; double ResourceManager::_lastUpdate = 0.0f; double ResourceManager::_lastReport = 0.0f; -void ResourceManager::Register(Resource *resource) { _resources.push_back(resource); }; +void ResourceManager::Register(Resource *resource) +{ + _resources.push_back(resource); +}; void ResourceManager::Unregister(Resource *resource) { @@ -33,7 +36,10 @@ class ResourceExpired { public: ResourceExpired(double time) : _time(time){}; - bool operator()(Resource *resource) { return (resource->GetLastUsage() < _time); } + bool operator()(Resource *resource) + { + return (resource->GetLastUsage() < _time); + } private: double _time; diff --git a/ResourceManager.h b/ResourceManager.h index 26efdf73..e2afec36 100644 --- a/ResourceManager.h +++ b/ResourceManager.h @@ -20,10 +20,16 @@ class Resource public: virtual void Release() = 0; - double GetLastUsage() const { return _lastUsage; } + double GetLastUsage() const + { + return _lastUsage; + } protected: - void SetLastUsage(double lastUsage) { _lastUsage = lastUsage; } + void SetLastUsage(double lastUsage) + { + _lastUsage = lastUsage; + } private: double _lastUsage; @@ -37,7 +43,10 @@ class ResourceManager static void Unregister(Resource *resource); static void Sweep(double currentTime); - static void SetExpiry(double expiry) { _expiry = expiry; } + static void SetExpiry(double expiry) + { + _expiry = expiry; + } private: typedef std::vector Resources; diff --git a/Segment.cpp b/Segment.cpp index 30fcbf21..617b936b 100644 --- a/Segment.cpp +++ b/Segment.cpp @@ -41,10 +41,13 @@ TSegment::TSegment(TTrack *owner) pOwner = owner; }; -TSegment::~TSegment() { SafeDeleteArray(fTsBuffer); }; +TSegment::~TSegment() +{ + SafeDeleteArray(fTsBuffer); +}; -bool TSegment::Init(vector3 NewPoint1, vector3 NewPoint2, double fNewStep, - double fNewRoll1, double fNewRoll2) +bool TSegment::Init(vector3 NewPoint1, vector3 NewPoint2, double fNewStep, double fNewRoll1, + double fNewRoll2) { // wersja dla prostego - wyliczanie punktów kontrolnych vector3 dir; if (fNewRoll1 == fNewRoll2) @@ -62,8 +65,8 @@ bool TSegment::Init(vector3 NewPoint1, vector3 NewPoint2, double fNewStep, }; bool TSegment::Init(vector3 &NewPoint1, vector3 NewCPointOut, vector3 NewCPointIn, - vector3 &NewPoint2, double fNewStep, double fNewRoll1, - double fNewRoll2, bool bIsCurve) + vector3 &NewPoint2, double fNewStep, double fNewRoll1, double fNewRoll2, + bool bIsCurve) { // wersja uniwersalna (dla krzywej i prostego) Point1 = NewPoint1; CPointOut = NewCPointOut; @@ -329,9 +332,8 @@ vector3 TSegment::FastGetPoint(double t) return (bCurve ? RaInterpolate(t) : ((1.0 - t) * Point1 + (t)*Point2)); } -void TSegment::RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, - double fTextureLength, int iSkip, int iQualityFactor, - vector3 **p, bool bRender) +void TSegment::RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, double fTextureLength, + int iSkip, int iQualityFactor, vector3 **p, bool bRender) { // generowanie trójkątów dla odcinka trajektorii ruchu // standardowo tworzy triangle_strip dla prostego albo ich zestaw dla łuku // po modyfikacji - dla ujemnego (iNumShapePoints) w dodatkowych polach tabeli @@ -401,7 +403,7 @@ void TSegment::RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, pt.y += jmm1 * ShapePoints[j].y + m1 * ShapePoints[j + iNumShapePoints].y; if (bRender) { // skrzyżowania podczas łączenia siatek mogą nie renderować poboczy, ale - // potrzebować punktów + // potrzebować punktów glNormal3f(norm.x, norm.y, norm.z); glTexCoord2f( jmm1 * ShapePoints[j].z + m1 * ShapePoints[j + iNumShapePoints].z, tv1); @@ -424,7 +426,7 @@ void TSegment::RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, pt.y += jmm2 * ShapePoints[j].y + m2 * ShapePoints[j + iNumShapePoints].y; if (bRender) { // skrzyżowania podczas łączenia siatek mogą nie renderować poboczy, ale - // potrzebować punktów + // potrzebować punktów glNormal3f(norm.x, norm.y, norm.z); glTexCoord2f( jmm2 * ShapePoints[j].z + m2 * ShapePoints[j + iNumShapePoints].z, tv2); @@ -511,8 +513,8 @@ void TSegment::RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, }; void TSegment::RenderSwitchRail(const vector6 *ShapePoints1, const vector6 *ShapePoints2, - int iNumShapePoints, double fTextureLength, int iSkip, - double fOffsetX) + int iNumShapePoints, double fTextureLength, int iSkip, + double fOffsetX) { // tworzenie siatki trójkątów dla iglicy vector3 pos1, pos2, dir, parallel1, parallel2, pt; double a1, a2, s, step, offset, tv1, tv2, t, t2, t2step, oldt2, sp, oldsp; @@ -696,9 +698,8 @@ void TSegment::Render() } } -void TSegment::RaRenderLoft(CVertNormTex *&Vert, const vector6 *ShapePoints, - int iNumShapePoints, double fTextureLength, int iSkip, - int iEnd, double fOffsetX) +void TSegment::RaRenderLoft(CVertNormTex *&Vert, const vector6 *ShapePoints, int iNumShapePoints, + double fTextureLength, int iSkip, int iEnd, double fOffsetX) { // generowanie trójkątów dla odcinka trajektorii ruchu // standardowo tworzy triangle_strip dla prostego albo ich zestaw dla łuku // po modyfikacji - dla ujemnego (iNumShapePoints) w dodatkowych polach tabeli @@ -896,9 +897,8 @@ void TSegment::RaRenderLoft(CVertNormTex *&Vert, const vector6 *ShapePoints, } }; -void TSegment::RaAnimate(CVertNormTex *&Vert, const vector6 *ShapePoints, - int iNumShapePoints, double fTextureLength, int iSkip, int iEnd, - double fOffsetX) +void TSegment::RaAnimate(CVertNormTex *&Vert, const vector6 *ShapePoints, int iNumShapePoints, + double fTextureLength, int iSkip, int iEnd, double fOffsetX) { // jak wyżej, tylko z pominięciem mapowania i braku trapezowania vector3 pos1, pos2, dir, parallel1, parallel2, pt; double s, step, fOffset, t, fEnd; diff --git a/Segment.h b/Segment.h index 390c8eb6..59f868b3 100644 --- a/Segment.h +++ b/Segment.h @@ -77,22 +77,36 @@ class TSegment // (0-Bezier,1-prosty,2/3-łuk w lewo/prawo,6/7-przejściowa w lewo/prawo) TSegment(TTrack *owner); ~TSegment(); - bool Init(vector3 NewPoint1, vector3 NewPoint2, double fNewStep, - double fNewRoll1 = 0, double fNewRoll2 = 0); - bool Init(vector3 &NewPoint1, vector3 NewCPointOut, vector3 NewCPointIn, - vector3 &NewPoint2, double fNewStep, double fNewRoll1 = 0, - double fNewRoll2 = 0, bool bIsCurve = true); + bool Init(vector3 NewPoint1, vector3 NewPoint2, double fNewStep, double fNewRoll1 = 0, + double fNewRoll2 = 0); + bool Init(vector3 &NewPoint1, vector3 NewCPointOut, vector3 NewCPointIn, vector3 &NewPoint2, + double fNewStep, double fNewRoll1 = 0, double fNewRoll2 = 0, bool bIsCurve = true); inline double ComputeLength(); // McZapkie-150503 - inline vector3 GetDirection1() { return bCurve ? CPointOut - Point1 : CPointOut; }; - inline vector3 GetDirection2() { return bCurve ? CPointIn - Point2 : CPointIn; }; + inline vector3 GetDirection1() + { + return bCurve ? CPointOut - Point1 : CPointOut; + }; + inline vector3 GetDirection2() + { + return bCurve ? CPointIn - Point2 : CPointIn; + }; vector3 GetDirection(double fDistance); - vector3 GetDirection() { return CPointOut; }; + vector3 GetDirection() + { + return CPointOut; + }; vector3 FastGetDirection(double fDistance, double fOffset); vector3 GetPoint(double fDistance); void RaPositionGet(double fDistance, vector3 &p, vector3 &a); vector3 FastGetPoint(double t); - inline vector3 FastGetPoint_0() { return Point1; }; - inline vector3 FastGetPoint_1() { return Point2; }; + inline vector3 FastGetPoint_0() + { + return Point1; + }; + inline vector3 FastGetPoint_1() + { + return Point2; + }; inline double GetRoll(double s) { s /= fLength; @@ -103,14 +117,16 @@ class TSegment r1 = fRoll1; r2 = fRoll2; } - void RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, - double fTextureLength, int iSkip = 0, int iQualityFactor = 1, - vector3 **p = NULL, bool bRender = true); + void RenderLoft(const vector6 *ShapePoints, int iNumShapePoints, double fTextureLength, + int iSkip = 0, int iQualityFactor = 1, vector3 **p = NULL, bool bRender = true); void RenderSwitchRail(const vector6 *ShapePoints1, const vector6 *ShapePoints2, - int iNumShapePoints, double fTextureLength, int iSkip = 0, - double fOffsetX = 0.0f); + int iNumShapePoints, double fTextureLength, int iSkip = 0, + double fOffsetX = 0.0f); void Render(); - inline double GetLength() { return fLength; }; + inline double GetLength() + { + return fLength; + }; void MoveMe(vector3 pPosition) { Point1 += pPosition; @@ -121,14 +137,18 @@ class TSegment CPointOut += pPosition; } } - int RaSegCount() { return fTsBuffer ? iSegCount : 1; }; - void RaRenderLoft(CVertNormTex *&Vert, const vector6 *ShapePoints, - int iNumShapePoints, double fTextureLength, int iSkip = 0, - int iEnd = 0, double fOffsetX = 0.0); + int RaSegCount() + { + return fTsBuffer ? iSegCount : 1; + }; + void RaRenderLoft(CVertNormTex *&Vert, const vector6 *ShapePoints, int iNumShapePoints, + double fTextureLength, int iSkip = 0, int iEnd = 0, double fOffsetX = 0.0); void RaAnimate(CVertNormTex *&Vert, const vector6 *ShapePoints, int iNumShapePoints, - double fTextureLength, int iSkip = 0, int iEnd = 0, - double fOffsetX = 0.0); - void AngleSet(int i, double a) { fAngle[i] = a; }; + double fTextureLength, int iSkip = 0, int iEnd = 0, double fOffsetX = 0.0); + void AngleSet(int i, double a) + { + fAngle[i] = a; + }; void Rollment(double w1, double w2); // poprawianie przechyłki }; diff --git a/Sound.cpp b/Sound.cpp index 0580d810..06b4cc0c 100644 --- a/Sound.cpp +++ b/Sound.cpp @@ -34,7 +34,7 @@ int TSoundsManager::Count = 0; TSoundContainer *TSoundsManager::First = NULL; TSoundContainer::TSoundContainer(LPDIRECTSOUND pDS, char *Directory, char *strFileName, - int NConcurrent) + int NConcurrent) { // wczytanie pliku dźwiękowego int hr = 111; DSBuffer = NULL; // na początek, gdyby uruchomić dźwięków się nie udało @@ -94,7 +94,7 @@ TSoundContainer::TSoundContainer(LPDIRECTSOUND pDS, char *Directory, char *strFi //---------------------------------------------------------- BYTE *pbWavData; // Pointer to actual wav data - UINT cbWavSize; // Size of data + UINT cbWavSize; // Size of data VOID *pbData = NULL; VOID *pbData2 = NULL; DWORD dwLength; @@ -171,7 +171,10 @@ LPDIRECTSOUNDBUFFER TSoundContainer::GetUnique(LPDIRECTSOUND pDS) return DSBuffers.top(); }; -TSoundsManager::~TSoundsManager() { Free(); }; +TSoundsManager::~TSoundsManager() +{ + Free(); +}; void TSoundsManager::Free() { @@ -200,8 +203,7 @@ void TSoundsManager::LoadSounds(char *Directory) FindClose(handle); }; -LPDIRECTSOUNDBUFFER TSoundsManager::GetFromName(char *Name, bool Dynamic, - float *fSamplingRate) +LPDIRECTSOUNDBUFFER TSoundsManager::GetFromName(char *Name, bool Dynamic, float *fSamplingRate) { // wyszukanie dźwięku w pamięci albo wczytanie z pliku AnsiString file; if (Dynamic) diff --git a/Sound.h b/Sound.h index 1d90aa80..37652b45 100644 --- a/Sound.h +++ b/Sound.h @@ -39,8 +39,7 @@ class TSoundContainer TSoundContainer *Next; std::stack DSBuffers; LPDIRECTSOUNDBUFFER GetUnique(LPDIRECTSOUND pDS); - TSoundContainer(LPDIRECTSOUND pDS, char *Directory, char *strFileName, - int NConcurrent); + TSoundContainer(LPDIRECTSOUND pDS, char *Directory, char *strFileName, int NConcurrent); ~TSoundContainer(); }; @@ -62,8 +61,7 @@ class TSoundsManager static void Free(); static void Init(char *Name, int Concurrent); static void LoadSounds(char *Directory); - static LPDIRECTSOUNDBUFFER GetFromName(char *Name, bool Dynamic, - float *fSamplingRate = NULL); + static LPDIRECTSOUNDBUFFER GetFromName(char *Name, bool Dynamic, float *fSamplingRate = NULL); static void RestoreAll(); }; diff --git a/Spline.cpp b/Spline.cpp index a693bed4..2c4c5525 100644 --- a/Spline.cpp +++ b/Spline.cpp @@ -73,7 +73,9 @@ __fastcall TKnot::TKnot(int n) } } -__fastcall TKnot::~TKnot() {} +__fastcall TKnot::~TKnot() +{ +} vector3 TKnot::GetDirection(float t) { diff --git a/Spring.cpp b/Spring.cpp index b615902b..8a832db1 100644 --- a/Spring.cpp +++ b/Spring.cpp @@ -24,7 +24,9 @@ TSpring::TSpring() restLen = 0; } -TSpring::~TSpring() {} +TSpring::~TSpring() +{ +} void TSpring::Init(double nrestLen, double nKs, double nKd) { @@ -43,7 +45,7 @@ bool TSpring::ComputateForces(vector3 pPosition1, vector3 pPosition2) // VectorDifference(&p1->pos,&p2->pos,&deltaP); // Vector distance deltaP = pPosition1 - pPosition2; // dist = VectorLength(&deltaP); // Magnitude of - //deltaP + // deltaP dist = deltaP.Length(); if (dist == 0) { @@ -72,7 +74,9 @@ bool TSpring::ComputateForces(vector3 pPosition1, vector3 pPosition2) return true; } -void TSpring::Render() {} +void TSpring::Render() +{ +} //--------------------------------------------------------------------------- diff --git a/Spring.h b/Spring.h index 050df3dc..a215609d 100644 --- a/Spring.h +++ b/Spring.h @@ -13,7 +13,7 @@ http://mozilla.org/MPL/2.0/. #define STATIC_THRESHOLD 0.17f // efine STATIC_THRESHOLD 0.03f const double m_Kd = 0.02f; // DAMPING FACTOR -const double m_Kr = 0.8f; // 1.0 = SUPERBALL BOUNCE 0.0 = DEAD WEIGHT +const double m_Kr = 0.8f; // 1.0 = SUPERBALL BOUNCE 0.0 = DEAD WEIGHT const double m_Ksh = 5.0f; // HOOK'S SPRING CONSTANT const double m_Ksd = 0.1f; // SPRING DAMPING CONSTANT @@ -35,8 +35,8 @@ class TSpring void Render(); vector3 vForce1, vForce2; double restLen; // LENGTH OF SPRING AT REST - double Ks; // SPRING CONSTANT - double Kd; // SPRING DAMPING + double Ks; // SPRING CONSTANT + double Kd; // SPRING DAMPING private: }; diff --git a/Texture.cpp b/Texture.cpp index f9920907..bf5e81c2 100644 --- a/Texture.cpp +++ b/Texture.cpp @@ -89,7 +89,10 @@ TTexturesManager::Names::iterator TTexturesManager::LoadFromFile(std::string fil struct ReplaceSlash { - const char operator()(const char input) { return input == '/' ? '\\' : input; } + const char operator()(const char input) + { + return input == '/' ? '\\' : input; + } }; GLuint TTexturesManager::GetTextureID(char *dir, char *where, std::string fileName, int filter) @@ -397,7 +400,7 @@ TTexturesManager::AlphaValue TTexturesManager::LoadTGA(std::string fileName, int copybytes += (1 + (chunkheader & 127)) * bytesPerPixel; // ilość pikseli if (chunkheader < 128) // jeśli kopiowanie, pikseli jest więcej copyto += (chunkheader)*bytesPerPixel; // rozmiar kopiowanego obszaru (bez - // jednego piksela) + // jednego piksela) } if (copybytes > imageSize) { // nie ma prawa być większe @@ -440,7 +443,7 @@ TTexturesManager::AlphaValue TTexturesManager::LoadTGA(std::string fileName, int chunkheader = (unsigned char)*copyfrom; // jeden bajt, pozostałe zawsze zerowe if (copyto > copyfrom) { // jeśli piksele mają być kopiowane, to możliwe jest przesunięcie ich o 1 bajt, na - // miejsce licznika + // miejsce licznika filesize = (imageData + imageSize - copyto) / bytesPerPixel; // ile pikseli pozostało do końca // WriteLog("Decompression buffer overflow at pixel @@ -455,7 +458,7 @@ TTexturesManager::AlphaValue TTexturesManager::LoadTGA(std::string fileName, int if ((filesize > 128) || !(Global::iModifyTGA & 4)) // gdy za dużo pikseli albo wyłączone writeback = -1; // zapis możliwe jeśli ilość problematycznych pikseli nie - // przekaracza 128 + // przekaracza 128 break; // bufor się zatkał, dalej w ten sposób się nie da } if (chunkheader < 128) @@ -511,7 +514,7 @@ TTexturesManager::AlphaValue TTexturesManager::LoadTGA(std::string fileName, int }; if (chunkheader < 128) { // if the header is < 128, it means the that is the number of RAW color packets minus - // 1 + // 1 chunkheader++; // add 1 to get number of following color values file.read(copyto, chunkheader * bytesPerPixel); copyto += chunkheader * bytesPerPixel; diff --git a/TextureDDS.cpp b/TextureDDS.cpp index 6849e112..74af43bb 100644 --- a/TextureDDS.cpp +++ b/TextureDDS.cpp @@ -274,8 +274,8 @@ void DecompressDXT5(DDS_IMAGE_DATA lImage, const GLubyte *lCompData, GLubyte *Da alphas[3] = (3 * alphas[0] + 2 * alphas[1] + 2) / 5; // Bit code 011 alphas[4] = (2 * alphas[0] + 3 * alphas[1] + 2) / 5; // Bit code 100 alphas[5] = (1 * alphas[0] + 4 * alphas[1] + 2) / 5; // Bit code 101 - alphas[6] = 0x00; // Bit code 110 - alphas[7] = 0xFF; // Bit code 111 + alphas[6] = 0x00; // Bit code 110 + alphas[7] = 0xFF; // Bit code 111 } // Note: Have to separate the next two loops, diff --git a/Timer.cpp b/Timer.cpp index 10135b7a..1e6ad3ce 100644 --- a/Timer.cpp +++ b/Timer.cpp @@ -25,7 +25,10 @@ double fSimulationTime = 0; double fSoundTimer = 0; double fSinceStart = 0; -double GetTime() { return fSimulationTime; } +double GetTime() +{ + return fSimulationTime; +} double GetDeltaTime() { // czas symulacji (stoi gdy pauza) @@ -37,19 +40,35 @@ double GetDeltaRenderTime() return DeltaRenderTime; } -double GetfSinceStart() { return fSinceStart; } +double GetfSinceStart() +{ + return fSinceStart; +} -void SetDeltaTime(double t) { DeltaTime = t; } +void SetDeltaTime(double t) +{ + DeltaTime = t; +} -double GetSimulationTime() { return fSimulationTime; } +double GetSimulationTime() +{ + return fSimulationTime; +} -void SetSimulationTime(double t) { fSimulationTime = t; } +void SetSimulationTime(double t) +{ + fSimulationTime = t; +} bool GetSoundTimer() { // Ra: być może, by dźwięki nie modyfikowały się zbyt często, po 0.1s zeruje się ten licznik - return (fSoundTimer == 0.0f); } + return (fSoundTimer == 0.0f); +} -double GetFPS() { return fFPS; } +double GetFPS() +{ + return fFPS; +} void ResetTimers() { diff --git a/Track.cpp b/Track.cpp index 2817a04b..e6a6bb78 100644 --- a/Track.cpp +++ b/Track.cpp @@ -68,8 +68,8 @@ TSwitchExtension::TSwitchExtension(TTrack *owner, int what) Segments[2] = (what >= 3) ? new TSegment(owner) : NULL; // z punktu 2 do 4 skrzyżowanie od góry: wersja "-1": - Segments[3] = (what >= 4) ? new TSegment(owner) : - NULL; // z punktu 4 do 1 1 1=4 0 0=3 + Segments[3] = + (what >= 4) ? new TSegment(owner) : NULL; // z punktu 4 do 1 1 1=4 0 0=3 Segments[4] = (what >= 5) ? new TSegment(owner) : NULL; // z punktu 1 do 3 4 x 3 3 3 x 2 2 Segments[5] = (what >= 6) ? new TSegment(owner) : @@ -102,16 +102,17 @@ TIsolated::TIsolated(const AnsiString &n, TIsolated *i) pMemCell = NULL; // podpiąć istniejącą albo utworzyć pustą }; -TIsolated::~TIsolated(){// usuwanie - /* - TIsolated *p=pRoot; - while (pRoot) - { - p=pRoot; - p->pNext=NULL; - delete p; - } - */ +TIsolated::~TIsolated(){ + // usuwanie + /* + TIsolated *p=pRoot; + while (pRoot) + { + p=pRoot; + p->pNext=NULL; + delete p; + } + */ }; TIsolated *__fastcall TIsolated::Find(const AnsiString &n) @@ -324,7 +325,7 @@ TTrack *__fastcall TTrack::NullCreate(int dir) trk2->bVisible = false; trk2->fVelocity = 20.0; // zawracanie powoli trk2->fRadius = 20.0; // promień, aby się dodawało do tabelki prędkości i liczyło - // narastająco + // narastająco trk2->Init(); // utworzenie segmentu switch (dir) { //łączenie z nowym torem @@ -796,7 +797,7 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name) if (SwitchExtension) // jeśli tor ruchomy if (fabs(fVelocity) >= 1.0) //żeby zero nie ograniczało dożywotnio SwitchExtension->fVelocity = fVelocity; // zapamiętanie głównego ograniczenia; a - // np. -40 ogranicza tylko na bok + // np. -40 ogranicza tylko na bok } else if (str == "isolated") { // obwód izolowany, do którego tor należy @@ -830,16 +831,16 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name) } else if (str == "overhead") { // informacja o stanie sieci: 0-jazda bezprądowa, >0-z opuszczonym i ograniczeniem - // prędkości + // prędkości parser->getTokens(); *parser >> fOverhead; if (fOverhead > 0.0) iAction |= 0x40; // flaga opuszczenia pantografu (tor uwzględniany w skanowaniu jako - // ograniczenie dla pantografujących) + // ograniczenie dla pantografujących) } else if (str == "colides") { // informacja o stanie sieci: 0-jazda bezprądowa, >0-z opuszczonym i ograniczeniem - // prędkości + // prędkości parser->getTokens(); *parser >> token; // trColides=; //tor kolizyjny, na którym trzeba sprawdzać pojazdy pod kątem zderzenia @@ -1222,7 +1223,7 @@ void TTrack::Compile(GLuint tex) switch (eType) // dalej zależnie od typu { case tt_Table: // obrotnica jak zwykły tor, animacja wykonywana w RaAnimate(), tutaj tylko - // regeneracja siatek + // regeneracja siatek case tt_Normal: if (TextureID2) if (tex ? TextureID2 == tex : true) // jeśli pasuje do grupy (tex) @@ -1232,7 +1233,7 @@ void TTrack::Compile(GLuint tex) if (fTexLength == 4.0) // jeśli stare mapowanie na profil 0.2 0.5 1.1 (również 6-9-9/noil) { // stare mapowanie z różną gęstością pikseli i oddzielnymi teksturami na każdy - // profil + // profil if (iTrapezoid) // trapez albo przechyłki { // podsypka z podkladami trapezowata // ewentualnie poprawić mapowanie, żeby środek mapował się na @@ -1272,9 +1273,9 @@ void TTrack::Compile(GLuint tex) } else { // mapowanie proporcjonalne do powierzchni, rozmiar w poprzek określa - // fTexLength + // fTexLength double max = fTexRatio2 * fTexLength; // szerokość proporcjonalna do - // długości + // długości double map11 = max > 0.0 ? (fHTW + side) / max : 0.25; // załamanie od strony 1 double map12 = @@ -1451,7 +1452,7 @@ void TTrack::Compile(GLuint tex) if (TextureID2) if (tex ? TextureID2 == tex : true) // jeśli pasuje do grupy (tex) { // pobocze drogi - poziome przy przechyłce (a może krawężnik i chodnik zrobić jak - // w Midtown Madness 2?) + // w Midtown Madness 2?) if (!tex) glBindTexture(GL_TEXTURE_2D, TextureID2); vector6 rpts1[6], @@ -1469,7 +1470,7 @@ void TTrack::Compile(GLuint tex) rpts2[2] = vector6(-rozp, -fTexHeight1, 0.0); // prawy brzeg podstawy if (iTrapezoid) // trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka rpts1[3] = vector6(rozp2, -fTexHeight2, 0.0); // lewy brzeg lewego pobocza rpts1[4] = @@ -1509,7 +1510,7 @@ void TTrack::Compile(GLuint tex) 0.484375 - map1l); // lewy brzeg lewego chodnika if (iTrapezoid) // trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka slop2 = fabs((iTrapezoid & 2) ? slop2 : slop); // szerokość chodnika po prawej double map2l = @@ -1534,7 +1535,7 @@ void TTrack::Compile(GLuint tex) } if (iTrapezoid) // trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka if ((fTexHeight1 >= 0.0) ? true : (slop != 0.0)) Segment->RenderLoft(rpts1, -3, fTexLength); // tylko jeśli jest z prawej if ((fTexHeight1 >= 0.0) ? true : (side != 0.0)) @@ -1595,7 +1596,7 @@ void TTrack::Compile(GLuint tex) SwitchExtension->Segments[5]->RaSegCount(); // mogą być tylko 3 drogi SwitchExtension->vPoints = new vector3[SwitchExtension->iPoints]; // tablica utworzona z zapasem, ale nie - // wypełniona współrzędnymi + // wypełniona współrzędnymi } vector3 *b = SwitchExtension->bPoints ? @@ -1630,7 +1631,7 @@ void TTrack::Compile(GLuint tex) // if (TextureID2) // if (tex?TextureID2==tex:true) //jeśli pasuje do grupy (tex) { // pobocze drogi - poziome przy przechyłce (a może krawężnik i chodnik zrobić jak w - // Midtown Madness 2?) + // Midtown Madness 2?) if (TextureID2) if (!tex) glBindTexture(GL_TEXTURE_2D, TextureID2); @@ -1642,7 +1643,7 @@ void TTrack::Compile(GLuint tex) { // standardowo: od zewnątrz pochylenie, a od wewnątrz poziomo rpts1[0] = vector6(rozp, -fTexHeight1, 0.0); // lewy brzeg podstawy rpts1[1] = vector6(bpts1[0].x + side, bpts1[0].y, 0.5); // lewa krawędź - // załamania + // załamania rpts1[2] = vector6(bpts1[0].x, bpts1[0].y, 1.0); // lewy brzeg pobocza (mapowanie może być inne rpts2[0] = vector6(bpts1[1].x, bpts1[1].y, 1.0); // prawy brzeg pobocza @@ -1651,15 +1652,15 @@ void TTrack::Compile(GLuint tex) rpts2[2] = vector6(-rozp, -fTexHeight1, 0.0); // prawy brzeg podstawy // if (iTrapezoid) //trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka rpts1[3] = vector6(rozp2, -fTexHeight2, 0.0); // lewy brzeg lewego pobocza rpts1[4] = vector6(bpts1[2].x + side2, bpts1[2].y, 0.5); // krawędź - // załamania + // załamania rpts1[5] = vector6(bpts1[2].x, bpts1[2].y, 1.0); // brzeg pobocza rpts2[3] = vector6(bpts1[3].x, bpts1[3].y, 1.0); rpts2[4] = vector6(bpts1[3].x - side2, bpts1[3].y, 0.5); rpts2[5] = vector6(-rozp2, -fTexHeight2, 0.0); // prawy brzeg prawego - // pobocza + // pobocza } } else @@ -1690,7 +1691,7 @@ void TTrack::Compile(GLuint tex) 0.484375 - map1l); // lewy brzeg lewego chodnika // if (iTrapezoid) //trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka slop2 = fabs((iTrapezoid & 2) ? slop2 : slop); // szerokość chodnika po prawej double map2l = max > 0.0 ? @@ -1715,7 +1716,7 @@ void TTrack::Compile(GLuint tex) } bool render = TextureID2 ? (tex ? TextureID2 == tex : true) : false; // renderować nie trzeba, ale trzeba wyznaczyć - // punkty brzegowe nawierzchni + // punkty brzegowe nawierzchni // if (iTrapezoid) //trapez albo przechyłki if (SwitchExtension->iRoads == 4) { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony odcinka @@ -1734,7 +1735,7 @@ void TTrack::Compile(GLuint tex) } else // to będzie ewentualnie dla prostego na skrzyżowaniu trzech dróg { // punkt 3 pokrywa się z punktem 1, jak w zwrotnicy; połączenie 1->2 nie musi być - // prostoliniowe + // prostoliniowe if ((fTexHeight1 >= 0.0) ? true : (side != 0.0)) // OK SwitchExtension->Segments[2]->RenderLoft(rpts2, -3, fTexLength, 0, 1, &b, render); // z P2 do P4 @@ -1760,15 +1761,15 @@ void TTrack::Compile(GLuint tex) { // coś się gubi w obliczeniach na wskaźnikach i = (int((void *)(b)) - int((void *)(SwitchExtension->vPoints))) / sizeof(vector3); // ustalenie liczby punktów, bo mogło wyjść inaczej niż - // policzone z góry + // policzone z góry if (i > 0) { // jeśli zostało to właśnie utworzone if (SwitchExtension->iPoints > i) // jeśli wyszło mniej niż było miejsca SwitchExtension->iPoints = i; // domknięcie wachlarza else --SwitchExtension->iPoints; // jak tutaj wejdzie, to błąd jest - zrobić - // miejsce na powtórzenie pierwszego punktu - // na końcu + // miejsce na powtórzenie pierwszego punktu + // na końcu SwitchExtension->vPoints[SwitchExtension->iPoints++] = SwitchExtension->vPoints[0]; SwitchExtension->bPoints = true; // tablica punktów została wypełniona @@ -2077,7 +2078,7 @@ void TTrack::RaArrayFill(CVertNormTex *Vert, const CVertNormTex *Start) vector6 bpts1[8]; // punkty głównej płaszczyzny nie przydają się do robienia boków if (fTexLength == 4.0) // jeśli stare mapowanie { // stare mapowanie z różną gęstością pikseli i oddzielnymi teksturami na każdy - // profil + // profil if (iTrapezoid) // trapez albo przechyłki { // podsypka z podkladami trapezowata // ewentualnie poprawić mapowanie, żeby środek mapował się na 1.435/4.671 @@ -2259,7 +2260,7 @@ void TTrack::RaArrayFill(CVertNormTex *Vert, const CVertNormTex *Start) } if (TextureID2) { // pobocze drogi - poziome przy przechyłce (a może krawężnik i chodnik zrobić jak w - // Midtown Madness 2?) + // Midtown Madness 2?) vector6 rpts1[6], rpts2[6]; // współrzędne przekroju i mapowania dla prawej i lewej strony if (fTexHeight1 >= 0.0) @@ -2275,15 +2276,15 @@ void TTrack::RaArrayFill(CVertNormTex *Vert, const CVertNormTex *Start) rpts2[2] = vector6(-rozp, -fTexHeight1, 0.0); // prawy brzeg podstawy if (iTrapezoid) // trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka rpts1[3] = vector6(rozp2, -fTexHeight2, 0.0); // lewy brzeg lewego pobocza rpts1[4] = vector6(bpts1[2].x + side2, bpts1[2].y, 0.5); // krawędź - // załamania + // załamania rpts1[5] = vector6(bpts1[2].x, bpts1[2].y, 1.0); // brzeg pobocza rpts2[3] = vector6(bpts1[3].x, bpts1[3].y, 1.0); rpts2[4] = vector6(bpts1[3].x - side2, bpts1[3].y, 0.5); rpts2[5] = vector6(-rozp2, -fTexHeight2, 0.0); // prawy brzeg prawego - // pobocza + // pobocza Segment->RaRenderLoft(Vert, rpts1, -3, fTexLength); Segment->RaRenderLoft(Vert, rpts2, -3, fTexLength); } @@ -2323,7 +2324,7 @@ void TTrack::RaArrayFill(CVertNormTex *Vert, const CVertNormTex *Start) 0.484375 - map1l); // lewy brzeg lewego chodnika if (iTrapezoid) // trapez albo przechyłki { // pobocza do trapezowatej nawierzchni - dodatkowe punkty z drugiej strony - // odcinka + // odcinka slop2 = fabs((iTrapezoid & 2) ? slop2 : slop); // szerokość chodnika po prawej double map2l = max > 0.0 ? @@ -2400,7 +2401,7 @@ void TTrack::RaArrayFill(CVertNormTex *Vert, const CVertNormTex *Start) } if (TextureID2) { // pobocze drogi - poziome przy przechyłce (a może krawężnik i chodnik zrobić jak w - // Midtown Madness 2?) + // Midtown Madness 2?) vector6 rpts1[6], rpts2[6]; // współrzędne przekroju i mapowania dla prawej i lewej strony rpts1[0] = vector6(rozp, -fTexHeight1, 0.0); // lewy brzeg podstawy @@ -2681,7 +2682,7 @@ bool TTrack::Switch(int i, double t, double d) { // nie ma się co bawić SwitchExtension->fOffset = SwitchExtension->fDesiredOffset; RaAnimate(); // przeliczenie położenia iglic; czy zadziała na niewyświetlanym - // sektorze w VBO? + // sektorze w VBO? } return true; } @@ -2950,7 +2951,7 @@ TTrack *__fastcall TTrack::RaAnimate() SwitchExtension->vTrans)) // czy przemieściło się od ostatniego sprawdzania { double hlen = 0.5 * SwitchExtension->Segments[0]->GetLength(); // połowa - // długości + // długości SwitchExtension->fOffset = ac->AngleGet(); // pobranie kąta z submodelu double sina = -hlen * sin(DegToRad(SwitchExtension->fOffset)), cosa = -hlen * cos(DegToRad(SwitchExtension->fOffset)); @@ -2962,7 +2963,7 @@ TTrack *__fastcall TTrack::RaAnimate() middle - vector3(sina, 0.0, cosa), 5.0); // nowy odcinek for (int i = 0; i < iNumDynamics; i++) Dynamics[i]->Move(0.000001); // minimalny ruch, aby przeliczyć pozycję i - // kąty + // kąty if (Global::bUseVBO) { // dla OpenGL 1.4 odświeży się cały sektor, w późniejszych poprawiamy fragment // aktualizacja pojazdów na torze @@ -3147,7 +3148,7 @@ void TTrack::ConnectionsLog() TTrack *__fastcall TTrack::Neightbour(int s, double &d) { // zwraca wskaźnik na sąsiedni tor, w kierunku określonym znakiem (s), odwraca (d) w razie - // niezgodności kierunku torów + // niezgodności kierunku torów TTrack *t; // nie zmieniamy kierunku (d), jeśli nie ma toru dalej if (eType != tt_Cross) { // jeszcze trzeba sprawdzić zgodność @@ -3155,7 +3156,7 @@ TTrack *__fastcall TTrack::Neightbour(int s, double &d) if (t) // o ile jest na co przejść, zmieniamy znak kierunku na nowym torze if (t->eType == tt_Cross) { // jeśli wjazd na skrzyżowanie, trzeba ustalić segment, bo od tego zależy zmiana - // kierunku (d) + // kierunku (d) // if (r) //gdy nie podano (r), to nie zmieniać (d) // if (s*t->CrossSegment(((s>0)?iNextDirection:iPrevDirection),r)<0) // d=-d; diff --git a/Track.h b/Track.h index d8a6ed3c..cd81f9c1 100644 --- a/Track.h +++ b/Track.h @@ -51,7 +51,7 @@ class TSwitchExtension TSwitchExtension(TTrack *owner, int what); ~TSwitchExtension(); TSegment *Segments[6]; // dwa tory od punktu 1, pozostałe dwa od 2? Ra 140101: 6 połączeń dla - // skrzyżowań + // skrzyżowań // TTrack *trNear[4]; //tory dołączone do punktów 1, 2, 3 i 4 // dotychczasowe [2]+[2] wskaźniki zamienić na nowe [4] TTrack *pNexts[2]; // tory dołączone do punktów 2 i 4 @@ -111,9 +111,18 @@ class TIsolated static TIsolated *__fastcall Find( const AnsiString &n); // znalezienie obiektu albo utworzenie nowego void Modify(int i, TDynamicObject *o); // dodanie lub odjęcie osi - bool Busy() { return (iAxles > 0); }; - static TIsolated *__fastcall Root() { return (pRoot); }; - TIsolated *__fastcall Next() { return (pNext); }; + bool Busy() + { + return (iAxles > 0); + }; + static TIsolated *__fastcall Root() + { + return (pRoot); + }; + TIsolated *__fastcall Next() + { + return (pNext); + }; }; class TTrack : public Resource @@ -168,7 +177,7 @@ class TTrack : public Resource bool bVisible; // czy rysowany int iAction; // czy modyfikowany eventami (specjalna obsługa przy skanowaniu) float fOverhead; // informacja o stanie sieci: 0-jazda bezprądowa, >0-z opuszczonym i - // ograniczeniem prędkości + // ograniczeniem prędkości private: double fVelocity; // prędkość dla AI (powyżej rośnie prawdopowobieństwo wykolejenia) public: @@ -185,15 +194,30 @@ class TTrack : public Resource void Init(); static TTrack *__fastcall Create400m(int what, double dx); TTrack *__fastcall NullCreate(int dir); - inline bool IsEmpty() { return (iNumDynamics <= 0); }; + inline bool IsEmpty() + { + return (iNumDynamics <= 0); + }; void ConnectPrevPrev(TTrack *pNewPrev, int typ); void ConnectPrevNext(TTrack *pNewPrev, int typ); void ConnectNextPrev(TTrack *pNewNext, int typ); void ConnectNextNext(TTrack *pNewNext, int typ); - inline double Length() { return Segment->GetLength(); }; - inline TSegment *__fastcall CurrentSegment() { return Segment; }; - inline TTrack *__fastcall CurrentNext() { return (trNext); }; - inline TTrack *__fastcall CurrentPrev() { return (trPrev); }; + inline double Length() + { + return Segment->GetLength(); + }; + inline TSegment *__fastcall CurrentSegment() + { + return Segment; + }; + inline TTrack *__fastcall CurrentNext() + { + return (trNext); + }; + inline TTrack *__fastcall CurrentPrev() + { + return (trPrev); + }; TTrack *__fastcall Neightbour(int s, double &d); bool SetConnections(int i); bool Switch(int i, double t = -1.0, double d = -1.0); @@ -222,7 +246,7 @@ class TTrack : public Resource void RenderDyn(); // renderowanie nieprzezroczystych pojazdów (oba tryby) void RenderDynAlpha(); // renderowanie przezroczystych pojazdów (oba tryby) void RenderDynSounds(); // odtwarzanie dźwięków pojazdów jest niezależne od ich - // wyświetlania + // wyświetlania void RaOwnerSet(TSubRect *o) { @@ -244,7 +268,10 @@ class TTrack : public Resource AnsiString IsolatedName(); bool IsolatedEventsAssign(TEvent *busy, TEvent *free); double WidthTotal(); - GLuint TextureGet(int i) { return i ? TextureID1 : TextureID2; }; + GLuint TextureGet(int i) + { + return i ? TextureID1 : TextureID2; + }; bool IsGroupable(); int TestPoint(vector3 *Point); void MovedUp1(double dh); diff --git a/Traction.cpp b/Traction.cpp index e6a1c5f8..ee7efd06 100644 --- a/Traction.cpp +++ b/Traction.cpp @@ -664,7 +664,7 @@ void TTraction::PowerSet(TTractionPowerSource *ps) { // ustalenie punktu zasilania (nie ma jeszcze połączeń między przęsłami) psPowered = ps; // ustawienie bezpośredniego zasilania dla przęsła psPower[0] = psPower[1] = ps; // a to chyba nie jest dobry pomysł, bo nawet zasilane przęsło - // powinno mieć wskazania na inne + // powinno mieć wskazania na inne fResistance[0] = fResistance[1] = 0.0; // a liczy się tylko rezystancja zasilacza } }; diff --git a/Traction.h b/Traction.h index 6fc9a67f..96b16fd5 100644 --- a/Traction.h +++ b/Traction.h @@ -56,7 +56,7 @@ class TTraction AnsiString asParallel; // nazwa przęsła, z którym może być bieżnia wspólna TTraction *hvParallel; // jednokierunkowa i zapętlona lista przęseł ewentualnej bieżni wspólnej float fResistance[2]; // rezystancja zastępcza do punktu zasilania (0: przęsło zasilane, <0: do - // policzenia) + // policzenia) int iTries; // bool bVisible; // DWORD dwFlags; diff --git a/TractionPower.cpp b/TractionPower.cpp index c7e49b7a..fb086879 100644 --- a/TractionPower.cpp +++ b/TractionPower.cpp @@ -79,20 +79,22 @@ bool TTractionPowerSource::Load(cParser *parser) Recuperation = true; else if (token.compare("section") == 0) // odłącznik sekcyjny bSection = true; // nie jest źródłem zasilania, a jedynie informuje o prądzie odłączenia - // sekcji z obwodu + // sekcji z obwodu parser->getTokens(); *parser >> token; if (token.compare("end") != 0) Error("tractionpowersource end statement missing"); // if (!bSection) //odłącznik sekcji zasadniczo nie ma impedancji (0.01 jest OK) if (InternalRes < 0.1) // coś mała ta rezystancja była... - InternalRes = - 0.2; // tak około 0.2, wg - // http://www.ikolej.pl/fileadmin/user_upload/Seminaria_IK/13_05_07_Prezentacja_Kruczek.pdf + InternalRes = 0.2; // tak około 0.2, wg + // http://www.ikolej.pl/fileadmin/user_upload/Seminaria_IK/13_05_07_Prezentacja_Kruczek.pdf return true; }; -bool TTractionPowerSource::Render() { return true; }; +bool TTractionPowerSource::Render() +{ + return true; +}; bool TTractionPowerSource::Update(double dt) { // powinno być wykonane raz na krok fizyki @@ -151,7 +153,7 @@ double TTractionPowerSource::CurrentGet(double res) 0.0; // napięcie dzielone przez sumę rezystancji wewnętrznej i obciążenia OutputVoltage = NominalVoltage - InternalRes * TotalCurrent; // napięcie na obciążeniu return TotalCurrent / (res * TotalPreviousAdmitance); // prąd proporcjonalny do udziału (1/res) - // w całkowitej admitancji + // w całkowitej admitancji }; void TTractionPowerSource::PowerSet(TTractionPowerSource *ps) diff --git a/TractionPower.h b/TractionPower.h index 31d59442..5ba2599f 100644 --- a/TractionPower.h +++ b/TractionPower.h @@ -48,7 +48,10 @@ class TTractionPowerSource bool Render(); bool Update(double dt); double CurrentGet(double res); - void VoltageSet(double v) { NominalVoltage = v; }; + void VoltageSet(double v) + { + NominalVoltage = v; + }; void PowerSet(TTractionPowerSource *ps); }; diff --git a/Train.cpp b/Train.cpp index 05e5aa28..05f0e34a 100644 --- a/Train.cpp +++ b/Train.cpp @@ -49,8 +49,8 @@ TCab::TCab() iButtons = 0; } -void TCab::Init(double Initx1, double Inity1, double Initz1, double Initx2, - double Inity2, double Initz2, bool InitEnabled, bool InitOccupied) +void TCab::Init(double Initx1, double Inity1, double Initz1, double Initx2, double Inity2, + double Initz2, bool InitEnabled, bool InitOccupied) { CabPos1.x = Initx1; CabPos1.y = Inity1; @@ -272,7 +272,7 @@ void TTrain::OnKeyDown(int cKey) if (GetAsyncKeyState(VK_SHIFT) < 0) { // wciśnięty [Shift] if (cKey == Global::Keys[k_IncMainCtrlFAST]) // McZapkie-200702: szybkie przelaczanie na - // poz. bezoporowa + // poz. bezoporowa { if (mvControlled->IncMainCtrl(2)) { @@ -511,8 +511,8 @@ void TTrain::OnKeyDown(int cKey) !mvOccupied->ActiveCab) // tylko w maszynowym if (Console::Pressed(VK_CONTROL)) // z [Ctrl] mvControlled->bPantKurek3 = true; // zbiornik pantografu połączony jest ze - // zbiornikiem głównym (pompowanie nie ma - // sensu) + // zbiornikiem głównym (pompowanie nie ma + // sensu) else if (!mvControlled->PantCompFlag) // jeśli wyłączona if (mvControlled->Battery) // jeszcze musi być załączona bateria if (mvControlled->PantPress < 4.8) // piszą, że to tak nie działa @@ -563,7 +563,7 @@ void TTrain::OnKeyDown(int cKey) } } else if (cKey == Global::Keys[k_FailedEngineCutOff]) // McZapkie-060103: E - wylaczanie - // sekcji silnikow + // sekcji silnikow { if (mvControlled->CutOffEngine()) { @@ -700,7 +700,7 @@ void TTrain::OnKeyDown(int cKey) } else if (cKey == Global::Keys[k_Active]) // yB 300407: przelacznik rozrzadu { // Ra 2014-06: uruchomiłem to, aby aktywować czuwak w zajmowanym członie, a wyłączyć w - // innych + // innych // Ra 2014-03: aktywacja czuwaka przepięta na ustawienie kierunku w mvOccupied // if (mvControlled->Battery) //jeśli bateria jest już załączona // mvOccupied->BatterySwitch(true); //to w ten oto durny sposób aktywuje się CA/SHP @@ -1080,7 +1080,7 @@ void TTrain::OnKeyDown(int cKey) else ; else // Ra 1014-06: AI potrafi zahamować pomocniczym mimo jego braku - odhamować - // jakoś trzeba + // jakoś trzeba if ((mvOccupied->LocalBrake != ManualBrake) || mvOccupied->LocalBrakePos) mvOccupied->DecLocalBrakeLevel(1); } @@ -1166,10 +1166,10 @@ void TTrain::OnKeyDown(int cKey) (mvOccupied->BrakeHandle == FV4a ? 1 : 0)); if (GetAsyncKeyState(VK_CONTROL) < 0) mvOccupied->BrakeLevelSet(mvOccupied->Handle->GetPos(bh_NP)); // yB: czy ten stos - // funkcji nie - // powinien być jako - // oddzielna funkcja - // movera? + // funkcji nie + // powinien być jako + // oddzielna funkcja + // movera? } else if (cKey == Global::Keys[k_Brake1]) { @@ -1460,8 +1460,8 @@ void TTrain::OnKeyDown(int cKey) !mvOccupied->ActiveCab) // tylko w maszynowym if (Console::Pressed(VK_CONTROL)) // z [Ctrl] mvControlled->bPantKurek3 = false; // zbiornik pantografu połączony jest z małą - // sprężarką (pompowanie ma sens, ale potem - // trzeba przełączyć) + // sprężarką (pompowanie ma sens, ale potem + // trzeba przełączyć) else if (!mvControlled->PantCompFlag) // jeśli wyłączona if (mvControlled->Battery) // jeszcze musi być załączona bateria if (mvControlled->PantPress < 4.8) // piszą, że to tak nie działa @@ -1714,7 +1714,7 @@ void TTrain::OnKeyDown(int cKey) if (iCabn > 0) { if (!FreeFlyModeFlag) // tryb 'kabinowy' (pozwala również rozłączyć sprzęgi - // zablokowane) + // zablokowane) { if (DynamicObject->DettachStatus(iCabn - 1) < 0) // jeśli jest co odczepić if (DynamicObject->Dettach(iCabn - 1)) // iCab==1:przód,iCab==2:tył @@ -2036,7 +2036,7 @@ void TTrain::OnKeyDown(int cKey) } } if (cKey == Global::Keys[k_RightSign]) // Winger 070304: swiatla tylne (koncowki) - - // wlaczenie + // wlaczenie { if ((GetAsyncKeyState(VK_CONTROL) < 0) && (ggRearRightLightButton.SubModel)) // hunter-230112 - z controlem gasi z tylu @@ -2182,7 +2182,7 @@ void TTrain::OnKeyDown(int cKey) if (DynamicObject->Mechanik) if (!FreeFlyModeFlag) //żeby nie mieszać obserwując z zewnątrz DynamicObject->Mechanik->RouteSwitch(1); // na skrzyżowaniu skręci w - // lewo + // lewo } else if (cKey == Global::Keys[k_MechRight]) { @@ -2458,7 +2458,7 @@ bool TTrain::Update() } else fHCurrent[0] = fHCurrent[1] = fHCurrent[2] = fHCurrent[3] = 0.0; // gdy nie ma - // człona + // człona } else { // normalne pokazywanie @@ -2472,17 +2472,17 @@ bool TTrain::Update() Console::ValueSet(0, mvOccupied->Compressor); // Ra: sterowanie miernikiem: zbiornik główny Console::ValueSet(1, mvOccupied->PipePress); // Ra: sterowanie miernikiem: przewód - // główny + // główny Console::ValueSet( 2, mvOccupied->BrakePress); // Ra: sterowanie miernikiem: cylinder hamulcowy Console::ValueSet(3, fHVoltage); // woltomierz wysokiego napięcia Console::ValueSet(4, fHCurrent[2]); // Ra: sterowanie miernikiem: drugi amperomierz Console::ValueSet( 5, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; - // dla EZT prąd całkowity + // dla EZT prąd całkowity Console::ValueSet(6, fTachoVelocity); ////Ra: prędkość na pin 43 - wyjście analogowe (to - ///nie jest PWM); skakanie zapewnia mechanika - ///napędu + /// nie jest PWM); skakanie zapewnia mechanika + /// napędu } // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia przy dowolnym @@ -2517,7 +2517,7 @@ bool TTrain::Update() (mvControlled->TrainType == dt_EZT)) && (DynamicObject->Controller == Humandriver)) // hunter-110212: poprawka dla EZT { // hunter-091012: poprawka (zmiana warunku z CompressorPower /rozne od 0/ na /rowne - // 1/) + // 1/) if (fConverterTimer < fConverterPrzekaznik) { mvControlled->ConvOvldFlag = true; @@ -3056,7 +3056,7 @@ bool TTrain::Update() if (mvControlled->SlippingWheels) { // Ra 2014-12: lokomotywy 181/182 dostają SlippingWheels po zahamowaniu powyżej 2.85 bara - // i buczały + // i buczały double veldiff = (DynamicObject->GetVelocity() - fTachoVelocity) / mvControlled->Vmax; if (veldiff < -0.01) // 1% Vmax rezerwy, żeby 181/182 nie buczały po zahamowaniu, ale to proteza @@ -3101,7 +3101,7 @@ bool TTrain::Update() if ((mvControlled->Itot != 0) || (mvOccupied->BrakePress > 2) || (mvOccupied->PipePress < 3.6)) btLampkaStyczn.TurnOff(); // Ra: czy to jest udawanie działania styczników - // liniowych? + // liniowych? else if (mvOccupied->BrakePress < 1) btLampkaStyczn.TurnOn(); // mozna prowadzic rozruch if (((TestFlag(mvControlled->Couplers[1].CouplingFlag, ctrain_controll)) && @@ -3115,9 +3115,9 @@ bool TTrain::Update() // if ((TestFlag(mvControlled->BrakeStatus,+b_Rused+b_Ractive)))//Lampka // drugiego stopnia hamowania btLampkaHamPosp.Turn((TestFlag(mvOccupied->BrakeStatus, 1))); // lampka drugiego stopnia - // hamowania //TODO: - // youBy wyciągnąć flagę - // wysokiego stopnia + // hamowania //TODO: + // youBy wyciągnąć flagę + // wysokiego stopnia // hunter-111211: wylacznik cisnieniowy - Ra: tutaj? w kabinie? //yBARC - // omujborzegrzesiuzniszczylesmicalydzien @@ -3214,7 +3214,7 @@ bool TTrain::Update() { // yB - wskazniki drugiego czlonu TDynamicObject * tmp; //=mvControlled->mvSecond; //Ra 2014-07: trzeba to jeszcze wyjąć z kabiny... - // Ra 2014-07: no nie ma potrzeby szukać tego w każdej klatce + // Ra 2014-07: no nie ma potrzeby szukać tego w każdej klatce tmp = NULL; if ((TestFlag(mvControlled->Couplers[1].CouplingFlag, ctrain_controll)) && (mvOccupied->ActiveCab > 0)) @@ -4058,10 +4058,10 @@ bool TTrain::Update() if (!FreeFlyModeFlag) { if (Console::Pressed(Global::Keys[k_Releaser])) // yB: odluzniacz caly czas trzymany, - // warunki powinny byc takie same, jak - // przy naciskaniu. Wlasciwie stamtad - // mozna wyrzucic sprawdzanie - // nacisniecia. + // warunki powinny byc takie same, jak + // przy naciskaniu. Wlasciwie stamtad + // mozna wyrzucic sprawdzanie + // nacisniecia. { if ((mvControlled->EngineType == ElectricSeriesMotor) || (mvControlled->EngineType == DieselElectric)) @@ -4123,8 +4123,8 @@ bool TTrain::Update() if (ggUniversal3Button.SubModel) { ggUniversal3Button.PutValue(1); // hunter-131211: z UpdateValue na PutValue - // - by zachowywal sie jak pozostale - // przelaczniki + // - by zachowywal sie jak pozostale + // przelaczniki if (btLampkaUniversal3.Active()) LampkaUniversal3_st = true; } @@ -4146,8 +4146,8 @@ bool TTrain::Update() if (ggUniversal3Button.SubModel) { ggUniversal3Button.PutValue(0); // hunter-131211: z UpdateValue na PutValue - // - by zachowywal sie jak pozostale - // przelaczniki + // - by zachowywal sie jak pozostale + // przelaczniki if (btLampkaUniversal3.Active()) LampkaUniversal3_st = false; } @@ -4259,8 +4259,8 @@ bool TTrain::Update() if (ggCabLightDimButton.SubModel) { ggCabLightDimButton.PutValue(0); // hunter-131211: z UpdateValue na PutValue - // - by zachowywal sie jak pozostale - // przelaczniki + // - by zachowywal sie jak pozostale + // przelaczniki } } else @@ -4619,7 +4619,7 @@ bool TTrain::CabChange(int iDirection) return true; // udało się zmienić kabinę } DynamicObject->MoverParameters->CabActivisation(); // aktywizacja poprzedniej, bo jeszcze - // nie wiadomo, czy jakiś pojazd jest + // nie wiadomo, czy jakiś pojazd jest } return false; // ewentualna zmiana pojazdu } @@ -4895,7 +4895,7 @@ bool TTrain::LoadMMediaFile(AnsiString asFileName) { if (DynamicObject->Controller == Humandriver) DynamicObject->bDisplayCab = true; // McZapkie-030303: mozliwosc wyswietlania kabiny, w - // przyszlosci dac opcje w mmd + // przyszlosci dac opcje w mmd return true; } } @@ -4998,7 +4998,7 @@ bool TTrain::InitializeCab(int NewCabNo, AnsiString asFileName) if (k) DynamicObject->mdKabina = k; // nowa kabina //(mdKabina) może zostać to samo po przejściu do innego członu bez zmiany - //kabiny, przy powrocie musi być wiązanie ponowne + // kabiny, przy powrocie musi być wiązanie ponowne // else // break; //wyjście z pętli, bo model zostaje bez zmian } @@ -5183,7 +5183,7 @@ bool TTrain::InitializeCab(int NewCabNo, AnsiString asFileName) else if (str == AnsiString("fuse_bt:")) // bezp. nadmiarowy ggFuseButton.Load(Parser, DynamicObject->mdKabina); else if (str == AnsiString("converterfuse_bt:")) // hunter-261211: odblokowanie - // przekaznika nadm. przetw. i ogrz. + // przekaznika nadm. przetw. i ogrz. ggConverterFuseButton.Load(Parser, DynamicObject->mdKabina); else if (str == AnsiString("stlinoff_bt:")) // st. liniowe ggStLinOffButton.Load(Parser, DynamicObject->mdKabina); @@ -5386,7 +5386,7 @@ bool TTrain::InitializeCab(int NewCabNo, AnsiString asFileName) gg->AssignDouble(&mvControlled->dizel_engage); } // ggEngageRatio.Load(Parser,DynamicObject->mdKabina); else if (str == AnsiString("maingearstatus:")) // np. ciśnienie sterownika skrzyni - // biegów + // biegów ggMainGearStatus.Load(Parser, DynamicObject->mdKabina); else if (str == AnsiString("ignitionkey:")) // ggIgnitionKey.Load(Parser, DynamicObject->mdKabina); @@ -5553,7 +5553,7 @@ vector3 TTrain::MirrorPosition(bool lewe) void TTrain::DynamicSet(TDynamicObject *d) { // taka proteza: chcę podłączyć kabinę EN57 bezpośrednio z silnikowym, aby nie robić tego przez - // ukrotnienie + // ukrotnienie // drugi silnikowy i tak musi być ukrotniony, podobnie jak kolejna jednostka // problem się robi ze światłami, które będą zapalane w silnikowym, ale muszą świecić się w // rozrządczych diff --git a/Train.h b/Train.h index 5189c5aa..e1e442a6 100644 --- a/Train.h +++ b/Train.h @@ -44,7 +44,7 @@ class TCab TCab(); ~TCab(); void Init(double Initx1, double Inity1, double Initz1, double Initx2, double Inity2, - double Initz2, bool InitEnabled, bool InitOccupied); + double Initz2, bool InitEnabled, bool InitOccupied); void Load(TQueryParserComp *Parser); vector3 CabPos1; vector3 CabPos2; @@ -83,8 +83,14 @@ class TTrain // bool SHP() { fShpTimer= 0; }; - inline vector3 GetDirection() { return DynamicObject->VectorFront(); }; - inline vector3 GetUp() { return DynamicObject->VectorUp(); }; + inline vector3 GetDirection() + { + return DynamicObject->VectorFront(); + }; + inline vector3 GetUp() + { + return DynamicObject->VectorUp(); + }; void UpdateMechPosition(double dt); bool Update(); void MechStop(); @@ -145,7 +151,7 @@ class TTrain TGauge ggAntiSlipButton; TGauge ggFuseButton; TGauge ggConverterFuseButton; // hunter-261211: przycisk odblokowania nadmiarowego przetwornic i - // ogrzewania + // ogrzewania TGauge ggStLinOffButton; TGauge ggRadioButton; TGauge ggUpperLightButton; @@ -373,9 +379,18 @@ class TTrain int iSekunda; // Ra: sekunda aktualizacji prędkości int iRadioChannel; // numer aktualnego kanału radiowego public: - int RadioChannel() { return iRadioChannel; }; - inline TDynamicObject *__fastcall Dynamic() { return DynamicObject; }; - inline TMoverParameters *__fastcall Controlled() { return mvControlled; }; + int RadioChannel() + { + return iRadioChannel; + }; + inline TDynamicObject *__fastcall Dynamic() + { + return DynamicObject; + }; + inline TMoverParameters *__fastcall Controlled() + { + return mvControlled; + }; void DynamicSet(TDynamicObject *d); void Silence(); }; diff --git a/TrkFoll.cpp b/TrkFoll.cpp index 2ae47e4a..019c01d4 100644 --- a/TrkFoll.cpp +++ b/TrkFoll.cpp @@ -37,7 +37,9 @@ TTrackFollower::TTrackFollower() fOffsetH = 0.0; // na starcie stoi na środku } -TTrackFollower::~TTrackFollower() {} +TTrackFollower::~TTrackFollower() +{ +} bool TTrackFollower::Init(TTrack *pTrack, TDynamicObject *NewOwner, double fDir) { @@ -76,7 +78,7 @@ TTrack *__fastcall TTrackFollower::SetCurrentTrack(TTrack *pTrack, int end) // bezpośrednio if (iSegment == 0) { // to jest błędna sytuacja - generuje pętle zawracające za skrzyżowaniem - ustalić, - // kiedy powstaje! + // kiedy powstaje! iSegment = 1; // doraźna poprawka } if ((end ? iSegment : -iSegment) < 0) @@ -129,14 +131,14 @@ bool TTrackFollower::Move(double fDistance, bool bPrimary) if (fDistance < 0) { if (iSetFlag(iEventFlag, -1)) // zawsze zeruje flagę sprawdzenia, jak mechanik - // dosiądzie, to się nie wykona + // dosiądzie, to się nie wykona if (Owner->Mechanik) // tylko dla jednego członu // if (TestFlag(iEventFlag,1)) //McZapkie-280503: wyzwalanie event tylko dla // pojazdow z obsada if (bPrimary && pCurrentTrack->evEvent1 && (!pCurrentTrack->evEvent1->iQueued)) Global::AddToQuery(pCurrentTrack->evEvent1, Owner); // dodanie do - // kolejki + // kolejki // Owner->RaAxleEvent(pCurrentTrack->Event1); //Ra: dynamic zdecyduje, czy dodać do // kolejki // if (TestFlag(iEventallFlag,1)) @@ -151,7 +153,7 @@ bool TTrackFollower::Move(double fDistance, bool bPrimary) else if (fDistance > 0) { if (iSetFlag(iEventFlag, -2)) // zawsze ustawia flagę sprawdzenia, jak mechanik - // dosiądzie, to się nie wykona + // dosiądzie, to się nie wykona if (Owner->Mechanik) // tylko dla jednego członu // if (TestFlag(iEventFlag,2)) //sprawdzanie jest od razu w pierwszym // warunku diff --git a/TrkFoll.h b/TrkFoll.h index 6d825c33..5c8c126a 100644 --- a/TrkFoll.h +++ b/TrkFoll.h @@ -26,7 +26,7 @@ class TTrackFollower int iEventFlag; // McZapkie-020602: informacja o tym czy wyzwalac zdarzenie: 0,1,2,3 int iEventallFlag; int iSegment; // który segment toru jest używany (żeby nie przeskakiwało po przestawieniu - // zwrotnicy pod taborem) + // zwrotnicy pod taborem) public: double fOffsetH; // Ra: odległość środka osi od osi toru (dla samochodów) - użyć do wężykowania vector3 pPosition; // współrzędne XYZ w układzie scenerii @@ -35,14 +35,23 @@ class TTrackFollower ~TTrackFollower(); TTrack *__fastcall SetCurrentTrack(TTrack *pTrack, int end); bool Move(double fDistance, bool bPrimary); - inline TTrack *__fastcall GetTrack() { return pCurrentTrack; }; + inline TTrack *__fastcall GetTrack() + { + return pCurrentTrack; + }; inline double GetRoll() { return vAngles.x; }; // przechyłka policzona przy ustalaniu pozycji //{return pCurrentSegment->GetRoll(fCurrentDistance)*fDirection;}; //zamiast liczyć można pobrać - inline double GetDirection() { return fDirection; }; // zwrot na torze - inline double GetTranslation() { return fCurrentDistance; }; // ABu-030403 + inline double GetDirection() + { + return fDirection; + }; // zwrot na torze + inline double GetTranslation() + { + return fCurrentDistance; + }; // ABu-030403 // inline double GetLength(vector3 p1, vector3 cp1, vector3 cp2, vector3 p2) //{ return pCurrentSegment->ComputeLength(p1,cp1,cp2,p2); }; // inline double GetRadius(double L, double d); //McZapkie-150503 diff --git a/World.cpp b/World.cpp index caa0e5fd..41ec5c47 100644 --- a/World.cpp +++ b/World.cpp @@ -233,7 +233,7 @@ bool TWorld::Init(HWND NhWnd, HDC hDC) if (Global::fOpenGL >= 1.4) // 1.4 miało obsługę VBO, ale bez opcji modyfikacji fragmentu bufora Global::bUseVBO = true; // VBO włączane tylko, jeśli jest obsługa oraz nie ustawiono - // niższego numeru + // niższego numeru } if (Global::bUseVBO) WriteLog("Ra: The VBO is found and will be used."); @@ -269,7 +269,7 @@ bool TWorld::Init(HWND NhWnd, HDC hDC) if (Global::fOpenGL >= 1.2) // poniższe nie działa w 1.1 glTexEnvf(TEXTURE_FILTER_CONTROL_EXT, TEXTURE_LOD_BIAS_EXT, -1); GLfloat FogColor[] = {1.0f, 1.0f, 1.0f, 1.0f}; - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix + glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear screen and depth buffer glLoadIdentity(); // WriteLog("glClearColor (FogColor[0], FogColor[1], FogColor[2], 0.0); "); @@ -404,8 +404,9 @@ bool TWorld::Init(HWND NhWnd, HDC hDC) glFogi(GL_FOG_MODE, GL_LINEAR); // Fog Mode WriteLog("glFogfv(GL_FOG_COLOR, FogColor);"); glFogfv(GL_FOG_COLOR, FogColor); // Set Fog Color - // glFogf(GL_FOG_DENSITY, 0.594f); // How Dense Will The Fog - //Be + // glFogf(GL_FOG_DENSITY, 0.594f); // How Dense Will The + //Fog + // Be // glHint(GL_FOG_HINT, GL_NICEST); // Fog Hint Value WriteLog("glFogf(GL_FOG_START, 1000.0f);"); glFogf(GL_FOG_START, 10.0f); // Fog Start Depth @@ -836,7 +837,7 @@ void TWorld::OnKeyDown(int cKey) if ((Global::iWriteLogEnabled & 2) == 0) // nie było okienka { // otwarcie okna AllocConsole(); // jeśli konsola już jest, to zwróci błąd; uwalniać nie ma po - // co, bo się odłączy + // co, bo się odłączy SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN); } } @@ -898,7 +899,7 @@ void TWorld::OnKeyDown(int cKey) if (CouplNr < 0) CouplNr = 0; // z [-1,1] zrobić [0,1] int mask, set = 0; // Ra: [Shift]+[Ctrl]+[T] odpala mi jakąś idiotyczną zmianę - // tapety pulpitu :/ + // tapety pulpitu :/ if (GetAsyncKeyState(VK_SHIFT) < 0) // z [Shift] zapalanie set = mask = 64; // bez [Ctrl] założyć tabliczki else if (GetAsyncKeyState(VK_CONTROL) < 0) @@ -1166,7 +1167,7 @@ bool TWorld::Update() double a = fmod(Global::fTimeAngleDeg, 360.0) / 180.0 * M_PI - M_PI; // kąt godzinny w radianach //(a) jest traktowane jako czas miejscowy, nie uwzględniający stref czasowych ani czasu - //letniego + // letniego // aby wyznaczyć strefę czasową, trzeba uwzględnić południk miejscowy // aby uwzględnić czas letni, trzeba sprawdzić dzień roku double L = Global::fLatitudeDeg / 180.0 * M_PI; // szerokość geograficzna @@ -1281,7 +1282,7 @@ bool TWorld::Update() if (100.0 * LengthSquared3(d->GetPosition() - Camera.Pos) > LengthSquared3(pDynamicNearest->GetPosition() - Camera.Pos)) d = pDynamicNearest; // jeśli najbliższy nie jest 10 razy bliżej niż - // poprzedni najbliższy, zostaje poprzedni + // poprzedni najbliższy, zostaje poprzedni if (d) pDynamicNearest = d; // zmiana na nowy, jeśli coś znaleziony niepusty if (pDynamicNearest) @@ -1319,7 +1320,7 @@ bool TWorld::Update() fTimeBuffer -= iter * fMaxDt; // reszta czasu na potem (do bufora) if (n > 20) n = 20; // Ra: jeżeli FPS jest zatrważająco niski, to fizyka nie może zająć całkowicie - // procesora +// procesora #if 0 Ground.UpdatePhys(fMaxDt,n); //Ra: teraz czas kroku jest (względnie) stały if (DebugModeFlag) @@ -1404,7 +1405,7 @@ bool TWorld::Update() } else { // patrzenie w kierunku osi pojazdu, z uwzględnieniem kabiny - jakby z lusterka, - // ale bez odbicia + // ale bez odbicia Camera.LookAt = Camera.Pos - Train->GetDirection() * Train->Dynamic()->MoverParameters->ActiveCab; //-1 albo 1 @@ -1427,7 +1428,7 @@ bool TWorld::Update() atan(Train->pMechShake.x * Train->fMechRoll); // hustanie kamery na boki Camera.Pitch -= atan(Train->vMechVelocity.z * Train->fMechPitch); // hustanie kamery przod tyl //Ra: tu - // jest uciekanie kamery w górę!!! + // jest uciekanie kamery w górę!!! } // ABu011104: rzucanie pudlem vector3 temp; @@ -1834,7 +1835,7 @@ bool TWorld::Update() { OutText2 = Controlled->Mechanik->Relation(); if (!OutText2.IsEmpty()) // jeśli jest podana relacja, to dodajemy punkt następnego - // zatrzymania + // zatrzymania OutText2 = Global::Bezogonkow(OutText2 + ": -> " + Controlled->Mechanik->NextStop(), true); // dopisanie punktu zatrzymania @@ -2430,13 +2431,12 @@ bool TWorld::Update() glColor3f(0.0f, 1.0f, 0.0f); // zielone glRasterPos2f( -0.25f, - 0.18f - - 0.02f * (i - tmp->Mechanik->iStationStart)); // dopiero - // ustawienie - // pozycji - // ustala - // kolor, - // dziwne... + 0.18f - 0.02f * (i - tmp->Mechanik->iStationStart)); // dopiero + // ustawienie + // pozycji + // ustala + // kolor, + // dziwne... glPrint(Global::Bezogonkow(OutText1, true).c_str()); glColor3f(1.0f, 1.0f, 1.0f); // a reszta białym } @@ -2699,7 +2699,7 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz) if ((e->Type == tp_Multiple) || (e->Type == tp_Lights) || bool(e->evJoined)) // tylko jawne albo niejawne Multiple Ground.AddToQuery(e, NULL); // drugi parametr to dynamic wywołujący - tu - // brak + // brak } break; case 3: // rozkaz dla AI @@ -2767,7 +2767,7 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz) } else { // dla pustego wysyłamy ramki 6 z nazwami pojazdów AI (jeśli potrzebne wszystkie, - // to rozpoznać np. "*") + // to rozpoznać np. "*") Ground.DynamicList(); } } @@ -2853,7 +2853,7 @@ void TWorld::CreateE3D(const AnsiString &dir, bool dyn) { // wypadało by sprawdzić, czy T3D ładunku jest load = loads.SubString(1, i - 1); if (FileExists(dir + load + ".t3d")) // o ile jest plik ładunku, bo - // inaczej nie ma to sensu + // inaczej nie ma to sensu if (!FileExists( dir + load + ".e3d")) // a nie ma jeszcze odpowiednika binarnego diff --git a/dumb3d.cpp b/dumb3d.cpp index ace4b50a..fc0b139e 100644 --- a/dumb3d.cpp +++ b/dumb3d.cpp @@ -49,7 +49,10 @@ void inline vector3::SafeNormalize() } // From code in Graphics Gems; p. 766 -inline scalar_t det2x2(scalar_t a, scalar_t b, scalar_t c, scalar_t d) { return a * d - b * c; } +inline scalar_t det2x2(scalar_t a, scalar_t b, scalar_t c, scalar_t d) +{ + return a * d - b * c; +} inline scalar_t det3x3(scalar_t a1, scalar_t a2, scalar_t a3, scalar_t b1, scalar_t b2, scalar_t b3, scalar_t c1, scalar_t c2, scalar_t c3) @@ -390,7 +393,8 @@ int main(int, char *[]) Testmatrix4x4(); matrixFailures = failures; - cout << endl << "****************************************" << endl; + cout << endl + << "****************************************" << endl; cout << "* *" << endl; if (vectorFailures + matrixFailures == 0) cout << "* No failures detected in Math3D *" << endl; diff --git a/dumb3d.h b/dumb3d.h index a2ed36d5..05da2130 100644 --- a/dumb3d.h +++ b/dumb3d.h @@ -27,15 +27,26 @@ namespace Math3D typedef double scalar_t; // inline pass-throughs to various basic math functions // written in this style to allow for easy substitution with more efficient versions -inline scalar_t SINE_FUNCTION(scalar_t x) { return sin(x); } -inline scalar_t COSINE_FUNCTION(scalar_t x) { return cos(x); } -inline scalar_t SQRT_FUNCTION(scalar_t x) { return sqrt(x); } +inline scalar_t SINE_FUNCTION(scalar_t x) +{ + return sin(x); +} +inline scalar_t COSINE_FUNCTION(scalar_t x) +{ + return cos(x); +} +inline scalar_t SQRT_FUNCTION(scalar_t x) +{ + return sqrt(x); +} // 2 element vector class vector2 { public: - vector2(void) {} + vector2(void) + { + } vector2(scalar_t a, scalar_t b) { x = a; @@ -52,7 +63,9 @@ class vector2 class vector3 { public: - vector3(void) {} + vector3(void) + { + } vector3(scalar_t a, scalar_t b, scalar_t c) { x = a; @@ -71,15 +84,24 @@ class vector3 void inline Normalize(); void inline SafeNormalize(); double inline Length(); - void inline Zero() { x = y = z = 0.0; }; + void inline Zero() + { + x = y = z = 0.0; + }; // [] is to read, () is to write (const correctness) // const scalar_t& operator[] (int i) const { return e[i]; } // scalar_t& operator() (int i) { return e[i]; } // Provides access to the underlying array; useful for passing this class off to C APIs - const scalar_t *readArray(void) { return &x; } - scalar_t *getArray(void) { return &x; } + const scalar_t *readArray(void) + { + return &x; + } + scalar_t *getArray(void) + { + return &x; + } // union // { @@ -107,7 +129,9 @@ class vector3 class matrix4x4 { public: - matrix4x4(void) {} + matrix4x4(void) + { + } // When defining matrices in C arrays, it is easiest to define them with // the column increasing fastest. However, some APIs (OpenGL in particular) do this @@ -130,12 +154,24 @@ class matrix4x4 // [] is to read, () is to write (const correctness) // m[x][y] or m(x)[y] is the correct form - const scalar_t *operator[](int i) const { return &e[i << 2]; } - scalar_t *operator()(int i) { return &e[i << 2]; } + const scalar_t *operator[](int i) const + { + return &e[i << 2]; + } + scalar_t *operator()(int i) + { + return &e[i << 2]; + } // Low-level access to the array. - const scalar_t *readArray(void) { return e; } - scalar_t *getArray(void) { return e; } + const scalar_t *readArray(void) + { + return e; + } + scalar_t *getArray(void) + { + return e; + } // Construct various matrices; REPLACES CURRENT CONTENTS OF THE MATRIX! // Written this way to work in-place and hence be somewhat more efficient @@ -263,14 +299,20 @@ inline bool operator<(const vector3 &v1, const vector3 &v2) return false; } -inline vector3 operator-(const vector3 &v) { return vector3(-v.x, -v.y, -v.z); } +inline vector3 operator-(const vector3 &v) +{ + return vector3(-v.x, -v.y, -v.z); +} inline vector3 operator*(const vector3 &v, scalar_t k) { return vector3(k * v.x, k * v.y, k * v.z); } -inline vector3 operator*(scalar_t k, const vector3 &v) { return v * k; } +inline vector3 operator*(scalar_t k, const vector3 &v) +{ + return v * k; +} inline vector3 &operator*=(vector3 &v, scalar_t k) { @@ -293,11 +335,23 @@ inline vector3 &operator/=(vector3 &v, scalar_t k) return v; } -inline scalar_t LengthSquared3(const vector3 &v) { return DotProduct(v, v); } -inline scalar_t LengthSquared4(const vector3 &v) { return DotProduct4(v, v); } +inline scalar_t LengthSquared3(const vector3 &v) +{ + return DotProduct(v, v); +} +inline scalar_t LengthSquared4(const vector3 &v) +{ + return DotProduct4(v, v); +} -inline scalar_t Length3(const vector3 &v) { return SQRT_FUNCTION(LengthSquared3(v)); } -inline scalar_t Length4(const vector3 &v) { return SQRT_FUNCTION(LengthSquared4(v)); } +inline scalar_t Length3(const vector3 &v) +{ + return SQRT_FUNCTION(LengthSquared3(v)); +} +inline scalar_t Length4(const vector3 &v) +{ + return SQRT_FUNCTION(LengthSquared4(v)); +} inline vector3 Normalize(const vector3 &v) { @@ -314,7 +368,10 @@ inline vector3 SafeNormalize(const vector3 &v) retVal = v / l; return retVal; } -inline vector3 Normalize4(const vector3 &v) { return v / Length4(v); } +inline vector3 Normalize4(const vector3 &v) +{ + return v / Length4(v); +} inline vector3 operator+(const vector3 &v1, const vector3 &v2) { @@ -372,7 +429,10 @@ void inline vector3::Normalize() z *= il; } -double inline vector3::Length() { return SQRT_FUNCTION(x * x + y * y + z * z); } +double inline vector3::Length() +{ + return SQRT_FUNCTION(x * x + y * y + z * z); +} inline bool operator==(const matrix4x4 &m1, const matrix4x4 &m2) { diff --git a/geometry.cpp b/geometry.cpp index f2082d43..a4ef3a13 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -11,7 +11,10 @@ http://mozilla.org/MPL/2.0/. #include "Geometry.h" -inline double sqr(double a) { return (a * a); }; +inline double sqr(double a) +{ + return (a * a); +}; __fastcall TLine::TLine(){}; @@ -23,7 +26,10 @@ __fastcall TLine::TLine(vector3 NPoint, vector3 NVector) __fastcall TLine::~TLine(){}; -TPlane TLine::GetPlane() { return (TPlane(Point, Vector)); }; +TPlane TLine::GetPlane() +{ + return (TPlane(Point, Vector)); +}; double TLine::GetDistance(vector3 Point1) { @@ -80,11 +86,17 @@ double TPlane::GetSide(vector3 Point) // D3DMath_VectorMatrixMultiply(Vector,src,Transformations); //}; -bool TPlane::Defined() { return !(Vector == vector3(0, 0, 0)); }; +bool TPlane::Defined() +{ + return !(Vector == vector3(0, 0, 0)); +}; //--------------------------------------------------------------------------- -inline double Sum(vector3 &Vector) { return (Vector.x + Vector.y + Vector.z); }; +inline double Sum(vector3 &Vector) +{ + return (Vector.x + Vector.y + Vector.z); +}; bool CrossPoint(vector3 &RetPoint, TLine &Line, TPlane &Plane) { @@ -96,7 +108,10 @@ bool CrossPoint(vector3 &RetPoint, TLine &Line, TPlane &Plane) return (true); }; -inline double GetLength(vector3 &Vector) { return (Vector.Length()); }; +inline double GetLength(vector3 &Vector) +{ + return (Vector.Length()); +}; inline vector3 SetLength(vector3 &Vector, double Length) { diff --git a/parser.h b/parser.h index 369972ff..e4707895 100644 --- a/parser.h +++ b/parser.h @@ -42,15 +42,27 @@ class cParser : public std::stringstream getTokens(); *this >> output; }; - inline void ignoreToken() { readToken(); }; + inline void ignoreToken() + { + readToken(); + }; inline void ignoreTokens(int count) { for (int i = 0; i < count; i++) readToken(); }; - inline bool expectToken(std::string value) { return readToken() == value; }; - bool eof() { return mStream->eof(); }; - bool ok() { return !mStream->fail(); }; + inline bool expectToken(std::string value) + { + return readToken() == value; + }; + bool eof() + { + return mStream->eof(); + }; + bool ok() + { + return !mStream->fail(); + }; bool getTokens(int Count = 1, bool ToLower = true, const char *Break = "\n\t ;"); int getProgress() const; // percentage of file processed. // load traction? @@ -64,11 +76,11 @@ class cParser : public std::stringstream bool trimComments(std::string &String); // members: std::istream *mStream; // relevant kind of buffer is attached on creation. - std::string mPath; // path to open stream, for relative path lookups. - int mSize; // size of open stream, for progress report. + std::string mPath; // path to open stream, for relative path lookups. + int mSize; // size of open stream, for progress report. typedef std::map commentmap; commentmap mComments; - cParser *mIncludeParser; // child class to handle include directives. + cParser *mIncludeParser; // child class to handle include directives. std::vector parameters; // parameter list for included file. }; diff --git a/wavread.cpp b/wavread.cpp index 92d86f46..930bbcf6 100644 --- a/wavread.cpp +++ b/wavread.cpp @@ -44,7 +44,7 @@ http://mozilla.org/MPL/2.0/. //----------------------------------------------------------------------------- HRESULT ReadMMIO(HMMIO hmmioIn, MMCKINFO *pckInRIFF, WAVEFORMATEX **ppwfxInfo) { - MMCKINFO ckIn; // chunk info. for general use. + MMCKINFO ckIn; // chunk info. for general use. PCMWAVEFORMAT pcmWaveFormat; // Temp PCM structure to load in. *ppwfxInfo = NULL; @@ -216,7 +216,10 @@ HRESULT WaveReadFile(HMMIO hmmioIn, UINT cbRead, BYTE *pbDest, MMCKINFO *pckIn, // Name: CWaveSoundRead() // Desc: Constructs the class //----------------------------------------------------------------------------- -CWaveSoundRead::CWaveSoundRead() { m_pwfx = NULL; } +CWaveSoundRead::CWaveSoundRead() +{ + m_pwfx = NULL; +} //----------------------------------------------------------------------------- // Name: ~CWaveSoundRead() @@ -252,7 +255,10 @@ HRESULT CWaveSoundRead::Open(CHAR *strFilename) // Desc: Resets the internal m_ckIn pointer so reading starts from the // beginning of the file again //----------------------------------------------------------------------------- -HRESULT CWaveSoundRead::Reset() { return WaveStartDataRead(&m_hmmioIn, &m_ckIn, &m_ckInRiff); } +HRESULT CWaveSoundRead::Reset() +{ + return WaveStartDataRead(&m_hmmioIn, &m_ckIn, &m_ckInRiff); +} //----------------------------------------------------------------------------- // Name: Read() diff --git a/wavread.h b/wavread.h index 01c3759e..c2f3aa93 100644 --- a/wavread.h +++ b/wavread.h @@ -34,9 +34,9 @@ class CWaveSoundRead { public: WAVEFORMATEX *m_pwfx; // Pointer to WAVEFORMATEX structure - HMMIO m_hmmioIn; // MM I/O handle for the WAVE - MMCKINFO m_ckIn; // Multimedia RIFF chunk - MMCKINFO m_ckInRiff; // Use in opening a WAVE file + HMMIO m_hmmioIn; // MM I/O handle for the WAVE + MMCKINFO m_ckIn; // Multimedia RIFF chunk + MMCKINFO m_ckInRiff; // Use in opening a WAVE file public: CWaveSoundRead();