16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-19 09:59:18 +02:00

Change clang format

Add AlignTrailingComments: false
Add AllowShortFunctionsOnASingleLine: Empty
This commit is contained in:
Firleju
2015-04-29 12:55:45 +02:00
parent ef4e168c68
commit cd571c71ea
71 changed files with 1580 additions and 1106 deletions

View File

@@ -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;
}
}