mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 20:59:19 +02:00
static linking, largeaddressaware, basic tga texture downsampling
This commit is contained in:
@@ -428,45 +428,47 @@ double TMoverParameters::Distance(const vector3 &s1, const vector3 &s2, const ve
|
||||
*/
|
||||
double TMoverParameters::CouplerDist(int Coupler)
|
||||
{ // obliczenie odległości pomiędzy sprzęgami (kula!)
|
||||
return Couplers[Coupler].CoupleDist =
|
||||
Distance(Loc, Couplers[Coupler].Connected->Loc, Dim,
|
||||
Couplers[Coupler].Connected->Dim); // odległość pomiędzy sprzęgami (kula!)
|
||||
Couplers[Coupler].CoupleDist =
|
||||
Distance(
|
||||
Loc, Couplers[Coupler].Connected->Loc,
|
||||
Dim, Couplers[Coupler].Connected->Dim); // odległość pomiędzy sprzęgami (kula!)
|
||||
|
||||
return Couplers[ Coupler ].CoupleDist;
|
||||
};
|
||||
|
||||
bool TMoverParameters::Attach(int ConnectNo, int ConnectToNr, TMoverParameters *ConnectTo,
|
||||
int CouplingType, bool Forced)
|
||||
bool TMoverParameters::Attach(int ConnectNo, int ConnectToNr, TMoverParameters *ConnectTo, int 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
|
||||
// składu
|
||||
if (ConnectTo) // jeśli nie pusty
|
||||
{
|
||||
auto &coupler = Couplers[ ConnectNo ];
|
||||
if (ConnectToNr != 2)
|
||||
Couplers[ConnectNo].ConnectedNr = ConnectToNr; // 2=nic nie podłączone
|
||||
TCouplerType ct = ConnectTo->Couplers[Couplers[ConnectNo].ConnectedNr]
|
||||
.CouplerType; // typ sprzęgu podłączanego pojazdu
|
||||
Couplers[ConnectNo].Connected =
|
||||
ConnectTo; // tak podpiąć (do siebie) zawsze można, najwyżej będzie wirtualny
|
||||
CouplerDist(ConnectNo); // przeliczenie odległości pomiędzy sprzęgami
|
||||
coupler.ConnectedNr = ConnectToNr; // 2=nic nie podłączone
|
||||
coupler.Connected = ConnectTo; // tak podpiąć (do siebie) zawsze można, najwyżej będzie wirtualny
|
||||
CouplerDist( ConnectNo ); // przeliczenie odległości pomiędzy sprzęgami
|
||||
|
||||
if (CouplingType == ctrain_virtual)
|
||||
return false; // wirtualny więcej nic nie robi
|
||||
if (Forced ? true : ((Couplers[ConnectNo].CoupleDist <= dEpsilon) &&
|
||||
(Couplers[ConnectNo].CouplerType != NoCoupler) &&
|
||||
(Couplers[ConnectNo].CouplerType == ct)))
|
||||
|
||||
auto &othercoupler = ConnectTo->Couplers[ coupler.ConnectedNr ];
|
||||
if( ( Forced )
|
||||
|| ( ( coupler.CoupleDist <= dEpsilon )
|
||||
&& ( coupler.CouplerType != NoCoupler )
|
||||
&& ( coupler.CouplerType == othercoupler.CouplerType ) ) )
|
||||
{ // stykaja sie zderzaki i kompatybilne typy sprzegow, chyba że łączenie na starcie
|
||||
if (Couplers[ConnectNo].CouplingFlag ==
|
||||
ctrain_virtual) // jeśli wcześniej nie było połączone
|
||||
{ // ustalenie z której strony rysować sprzęg
|
||||
Couplers[ConnectNo].Render = true; // tego rysować
|
||||
ConnectTo->Couplers[Couplers[ConnectNo].ConnectedNr].Render = false; // a tego nie
|
||||
if( coupler.CouplingFlag == ctrain_virtual ) {
|
||||
// jeśli wcześniej nie było połączone, ustalenie z której strony rysować sprzęg
|
||||
coupler.Render = true; // tego rysować
|
||||
othercoupler.Render = false; // a tego nie
|
||||
};
|
||||
Couplers[ConnectNo].CouplingFlag = CouplingType; // ustawienie typu sprzęgu
|
||||
coupler.CouplingFlag = CouplingType; // ustawienie typu sprzęgu
|
||||
// if (CouplingType!=ctrain_virtual) //Ra: wirtualnego nie łączymy zwrotnie!
|
||||
//{//jeśli łączenie sprzęgiem niewirtualnym, ustawiamy połączenie zwrotne
|
||||
ConnectTo->Couplers[Couplers[ConnectNo].ConnectedNr].CouplingFlag = CouplingType;
|
||||
ConnectTo->Couplers[Couplers[ConnectNo].ConnectedNr].Connected = this;
|
||||
ConnectTo->Couplers[Couplers[ConnectNo].ConnectedNr].CoupleDist =
|
||||
Couplers[ConnectNo].CoupleDist;
|
||||
othercoupler.CouplingFlag = CouplingType;
|
||||
othercoupler.Connected = this;
|
||||
othercoupler.CoupleDist = coupler.CoupleDist;
|
||||
return true;
|
||||
//}
|
||||
// podłączenie nie udało się - jest wirtualne
|
||||
|
||||
Reference in New Issue
Block a user