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

Merge branch 'master'

Merge to 481.
This commit is contained in:
firleju
2016-09-13 06:38:29 +02:00
10 changed files with 2011 additions and 1935 deletions

3808
Driver.cpp

File diff suppressed because it is too large Load Diff

View File

@@ -867,8 +867,10 @@ void __inline TDynamicObject::ABuLittleUpdate(double ObjSqrDist)
if (smWahacze[i]) if (smWahacze[i])
smWahacze[i]->SetRotate(float3(1, 0, 0), smWahacze[i]->SetRotate(float3(1, 0, 0),
fWahaczeAmp * cos(MoverParameters->eAngle)); fWahaczeAmp * cos(MoverParameters->eAngle));
if (Mechanik && (Controller != Humandriver))
if (Mechanik)
{ // rysowanie figurki mechanika { // rysowanie figurki mechanika
/*
if (smMechanik0) // mechanik od strony sprzęgu 0 if (smMechanik0) // mechanik od strony sprzęgu 0
if (smMechanik1) // jak jest drugi, to pierwszego jedynie pokazujemy if (smMechanik1) // jak jest drugi, to pierwszego jedynie pokazujemy
smMechanik0->iVisible = MoverParameters->ActiveCab > 0; smMechanik0->iVisible = MoverParameters->ActiveCab > 0;
@@ -881,6 +883,17 @@ void __inline TDynamicObject::ABuLittleUpdate(double ObjSqrDist)
} }
if (smMechanik1) // mechanik od strony sprzęgu 1 if (smMechanik1) // mechanik od strony sprzęgu 1
smMechanik1->iVisible = MoverParameters->ActiveCab < 0; smMechanik1->iVisible = MoverParameters->ActiveCab < 0;
*/
if (MoverParameters->ActiveCab > 0)
{
btMechanik1.TurnOn();
btnOn = true;
}
if (MoverParameters->ActiveCab < 0)
{
btMechanik2.TurnOn();
btnOn = true;
}
} }
// ABu: Przechyly na zakretach // ABu: Przechyly na zakretach
// Ra: przechyłkę załatwiamy na etapie przesuwania modelu // Ra: przechyłkę załatwiamy na etapie przesuwania modelu
@@ -1572,7 +1585,7 @@ TDynamicObject::TDynamicObject()
mdLoad = NULL; mdLoad = NULL;
mdLowPolyInt = NULL; mdLowPolyInt = NULL;
mdPrzedsionek = NULL; mdPrzedsionek = NULL;
smMechanik0 = smMechanik1 = NULL; //smMechanik0 = smMechanik1 = NULL;
smBuforLewy[0] = smBuforLewy[1] = NULL; smBuforLewy[0] = smBuforLewy[1] = NULL;
smBuforPrawy[0] = smBuforPrawy[1] = NULL; smBuforPrawy[0] = smBuforPrawy[1] = NULL;
enginevolume = 0; enginevolume = 0;
@@ -1968,6 +1981,8 @@ TDynamicObject::Init(AnsiString Name, // nazwa pojazdu, np. "EU07-424"
btHeadSignals21.Init("headlamp23", mdModel, false); btHeadSignals21.Init("headlamp23", mdModel, false);
btHeadSignals22.Init("headlamp21", mdModel, false); btHeadSignals22.Init("headlamp21", mdModel, false);
btHeadSignals23.Init("headlamp22", mdModel, false); btHeadSignals23.Init("headlamp22", mdModel, false);
btMechanik1.Init("mechanik1", mdLowPolyInt, false);
btMechanik2.Init("mechanik2", mdLowPolyInt, false);
TurnOff(); // resetowanie zmiennych submodeli TurnOff(); // resetowanie zmiennych submodeli
// wyszukiwanie zderzakow // wyszukiwanie zderzakow
if (mdModel) // jeśli ma w czym szukać if (mdModel) // jeśli ma w czym szukać
@@ -3356,17 +3371,25 @@ bool TDynamicObject::Update(double dt, double dt1)
// NBMX Obsluga drzwi, MC: zuniwersalnione // NBMX Obsluga drzwi, MC: zuniwersalnione
if ((dDoorMoveL < MoverParameters->DoorMaxShiftL) && (MoverParameters->DoorLeftOpened)) if ((dDoorMoveL < MoverParameters->DoorMaxShiftL) && (MoverParameters->DoorLeftOpened))
{
rsDoorOpen.Play(vol, 0, MechInside, vPosition);
dDoorMoveL += dt1 * 0.5 * MoverParameters->DoorOpenSpeed; dDoorMoveL += dt1 * 0.5 * MoverParameters->DoorOpenSpeed;
}
if ((dDoorMoveL > 0) && (!MoverParameters->DoorLeftOpened)) if ((dDoorMoveL > 0) && (!MoverParameters->DoorLeftOpened))
{ {
rsDoorClose.Play(vol, 0, MechInside, vPosition);
dDoorMoveL -= dt1 * MoverParameters->DoorCloseSpeed; dDoorMoveL -= dt1 * MoverParameters->DoorCloseSpeed;
if (dDoorMoveL < 0) if (dDoorMoveL < 0)
dDoorMoveL = 0; dDoorMoveL = 0;
} }
if ((dDoorMoveR < MoverParameters->DoorMaxShiftR) && (MoverParameters->DoorRightOpened)) if ((dDoorMoveR < MoverParameters->DoorMaxShiftR) && (MoverParameters->DoorRightOpened))
{
rsDoorOpen.Play(vol, 0, MechInside, vPosition);
dDoorMoveR += dt1 * 0.5 * MoverParameters->DoorOpenSpeed; dDoorMoveR += dt1 * 0.5 * MoverParameters->DoorOpenSpeed;
}
if ((dDoorMoveR > 0) && (!MoverParameters->DoorRightOpened)) if ((dDoorMoveR > 0) && (!MoverParameters->DoorRightOpened))
{ {
rsDoorClose.Play(vol, 0, MechInside, vPosition);
dDoorMoveR -= dt1 * MoverParameters->DoorCloseSpeed; dDoorMoveR -= dt1 * MoverParameters->DoorCloseSpeed;
if (dDoorMoveR < 0) if (dDoorMoveR < 0)
dDoorMoveR = 0; dDoorMoveR = 0;
@@ -3432,6 +3455,7 @@ bool TDynamicObject::Update(double dt, double dt1)
} }
if (MoverParameters->LoadStatus) if (MoverParameters->LoadStatus)
LoadUpdate(); // zmiana modelu ładunku LoadUpdate(); // zmiana modelu ładunku
return true; // Ra: chyba tak? return true; // Ra: chyba tak?
} }
@@ -3512,6 +3536,8 @@ void TDynamicObject::TurnOff()
btHeadSignals21.TurnOff(); btHeadSignals21.TurnOff();
btHeadSignals22.TurnOff(); btHeadSignals22.TurnOff();
btHeadSignals23.TurnOff(); btHeadSignals23.TurnOff();
btMechanik1.TurnOff();
btMechanik2.TurnOff();
}; };
void TDynamicObject::Render() void TDynamicObject::Render()
@@ -3875,7 +3901,11 @@ void TDynamicObject::RenderSounds()
sReleaser.TurnOn(MechInside, GetPosition()); sReleaser.TurnOn(MechInside, GetPosition());
else else
sReleaser.TurnOff(MechInside, GetPosition()); sReleaser.TurnOff(MechInside, GetPosition());
sReleaser.Update(MechInside, GetPosition()); //sReleaser.Update(MechInside, GetPosition());
double releaser_vol = 1;
if (MoverParameters->BrakePress < 0.1)
releaser_vol = MoverParameters->BrakePress * 10;
sReleaser.UpdateAF(releaser_vol, 1, MechInside, GetPosition());
// if ((MoverParameters->ConverterFlag==false) && // if ((MoverParameters->ConverterFlag==false) &&
// (MoverParameters->TrainType!=dt_ET22)) // (MoverParameters->TrainType!=dt_ET22))
// if // if
@@ -4244,6 +4274,10 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName,
{ // tekstura wymienna jest raczej jedynie w "dynamic\" { // tekstura wymienna jest raczej jedynie w "dynamic\"
ReplacableSkin = ReplacableSkin =
Global::asCurrentTexturePath + ReplacableSkin; // skory tez z dynamic/... Global::asCurrentTexturePath + ReplacableSkin; // skory tez z dynamic/...
AnsiString x = TextureTest(Global::asCurrentTexturePath + "nowhere"); // na razie prymitywnie
if (!x.IsEmpty())
ReplacableSkinID[4] = TTexturesManager::GetTextureID(NULL, NULL, (Global::asCurrentTexturePath + "nowhere").c_str(), 9);
/*
if ((i = ReplacableSkin.Pos("|")) > 0) // replacable dzielone if ((i = ReplacableSkin.Pos("|")) > 0) // replacable dzielone
{ {
iMultiTex = -1; iMultiTex = -1;
@@ -4302,6 +4336,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName,
} }
} }
} }
*/
if (iMultiTex > 0) if (iMultiTex > 0)
{ // jeśli model ma 4 tekstury { // jeśli model ma 4 tekstury
ReplacableSkinID[1] = TTexturesManager::GetTextureID( ReplacableSkinID[1] = TTexturesManager::GetTextureID(
@@ -4336,6 +4371,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName,
} }
} }
else else
ReplacableSkinID[1] = TTexturesManager::GetTextureID( ReplacableSkinID[1] = TTexturesManager::GetTextureID(
NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering); NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering);
if (TTexturesManager::GetAlpha(ReplacableSkinID[1])) if (TTexturesManager::GetAlpha(ReplacableSkinID[1]))
@@ -4929,6 +4965,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName,
if (str == AnsiString("pendulumamplitude:")) if (str == AnsiString("pendulumamplitude:"))
fWahaczeAmp = Parser->GetNextSymbol().ToDouble(); fWahaczeAmp = Parser->GetNextSymbol().ToDouble();
} }
/*
else if (str == AnsiString("engineer:")) else if (str == AnsiString("engineer:"))
{ // nazwa submodelu maszynisty { // nazwa submodelu maszynisty
str = Parser->GetNextSymbol(); str = Parser->GetNextSymbol();
@@ -4944,6 +4981,7 @@ void TDynamicObject::LoadMMediaFile(AnsiString BaseDir, AnsiString TypeName,
// if (smMechanik0) //a jest pierwszy // if (smMechanik0) //a jest pierwszy
// smMechanik0->WillBeAnimated(); //to będziemy go obracać // smMechanik0->WillBeAnimated(); //to będziemy go obracać
} }
*/
else if (str == AnsiString("animdoorprefix:")) else if (str == AnsiString("animdoorprefix:"))
{ // nazwa animowanych drzwi { // nazwa animowanych drzwi
int i, j, k, m; int i, j, k, m;
@@ -5628,7 +5666,7 @@ AnsiString TDynamicObject::TextureTest(AnsiString &name)
return ""; // nie znaleziona return ""; // nie znaleziona
}; };
void TDynamicObject::DestinationSet(AnsiString to) void TDynamicObject::DestinationSet(AnsiString to, AnsiString numer)
{ // ustawienie stacji { // ustawienie stacji
// docelowej oraz wymiennej // docelowej oraz wymiennej
// tekstury 4, jeśli // tekstury 4, jeśli
@@ -5639,25 +5677,39 @@ void TDynamicObject::DestinationSet(AnsiString to)
// rozkładu // rozkładu
if (abs(iMultiTex) >= 4) if (abs(iMultiTex) >= 4)
return; // jak są 4 tekstury wymienne, to nie zmieniać rozkładem return; // jak są 4 tekstury wymienne, to nie zmieniać rozkładem
numer = Global::Bezogonkow(numer);
asDestination = to; asDestination = to;
to = Global::Bezogonkow(to); // do szukania pliku obcinamy ogonki to = Global::Bezogonkow(to); // do szukania pliku obcinamy ogonki
AnsiString x; AnsiString x;
if (to.IsEmpty()) x = TextureTest(asBaseDir + numer + "@" + MoverParameters->TypeName);
to = "nowhere";
x = TextureTest(asBaseDir + to + "@" +
MoverParameters->TypeName); // w pierwszej kolejności z nazwą FIZ/MMD
if (!x.IsEmpty()) if (!x.IsEmpty())
{ {
ReplacableSkinID[4] = TTexturesManager::GetTextureID( ReplacableSkinID[4] = TTexturesManager::GetTextureID( NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się
NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się return;
}
x = TextureTest(asBaseDir + numer );
if (!x.IsEmpty())
{
ReplacableSkinID[4] = TTexturesManager::GetTextureID( NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się
return;
}
if (to.IsEmpty())
to = "nowhere";
x = TextureTest(asBaseDir + to + "@" + MoverParameters->TypeName); // w pierwszej kolejności z nazwą FIZ/MMD
if (!x.IsEmpty())
{
ReplacableSkinID[4] = TTexturesManager::GetTextureID( NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się
return; return;
} }
x = TextureTest(asBaseDir + to); // na razie prymitywnie x = TextureTest(asBaseDir + to); // na razie prymitywnie
if (!x.IsEmpty()) if (!x.IsEmpty())
ReplacableSkinID[4] = TTexturesManager::GetTextureID( ReplacableSkinID[4] = TTexturesManager::GetTextureID( NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się
NULL, NULL, x.c_str(), 9); // rozmywania 0,1,4,5 nie nadają się
else else
ReplacableSkinID[4] = 0; // 0 to brak? -1 odpada, bo inaczej się będzie mapować {
x = TextureTest(asBaseDir + "nowhere"); // jak nie znalazł dedykowanej, to niech daje nowhere
if (!x.IsEmpty())
ReplacableSkinID[4] = TTexturesManager::GetTextureID(NULL, NULL, x.c_str(), 9);
}
// Ra 2015-01: żeby zalogować błąd, trzeba by mieć pewność, że model używa // Ra 2015-01: żeby zalogować błąd, trzeba by mieć pewność, że model używa
// tekstury nr 4 // tekstury nr 4
}; };

View File

@@ -266,8 +266,10 @@ class TDynamicObject
TButton btHeadSignals21; // oswietlenie czolowe - tyl TButton btHeadSignals21; // oswietlenie czolowe - tyl
TButton btHeadSignals22; TButton btHeadSignals22;
TButton btHeadSignals23; TButton btHeadSignals23;
TSubModel *smMechanik0; // Ra: mechanik wbudowany w model jako submodel? TButton btMechanik1;
TSubModel *smMechanik1; // mechanik od strony sprzęgu 1 TButton btMechanik2;
//TSubModel *smMechanik0; // Ra: mechanik wbudowany w model jako submodel?
//TSubModel *smMechanik1; // mechanik od strony sprzęgu 1
double enginevolume; // MC: pomocnicze zeby gladziej silnik buczal double enginevolume; // MC: pomocnicze zeby gladziej silnik buczal
int iAxles; // McZapkie: to potem mozna skasowac i zastapic iNumAxles int iAxles; // McZapkie: to potem mozna skasowac i zastapic iNumAxles
@@ -504,7 +506,7 @@ class TDynamicObject
void ParamSet(int what, int into); void ParamSet(int what, int into);
int RouteWish(TTrack *tr); // zapytanie do AI, po którym segmencie skrzyżowania int RouteWish(TTrack *tr); // zapytanie do AI, po którym segmencie skrzyżowania
// jechać // jechać
void DestinationSet(AnsiString to); void DestinationSet(AnsiString to, AnsiString numer);
AnsiString TextureTest(AnsiString &name); AnsiString TextureTest(AnsiString &name);
void OverheadTrack(float o); void OverheadTrack(float o);
double MED[9][8]; // lista zmiennych do debugowania hamulca ED double MED[9][8]; // lista zmiennych do debugowania hamulca ED

View File

@@ -60,7 +60,7 @@ AutoIncBuild=0
MajorVer=16 MajorVer=16
MinorVer=0 MinorVer=0
Release=1173 Release=1173
Build=478 Build=481
Debug=1 Debug=1
PreRelease=0 PreRelease=0
Special=0 Special=0
@@ -72,7 +72,7 @@ CodePage=1250
[Version Info Keys] [Version Info Keys]
CompanyName=EU07 Team CompanyName=EU07 Team
FileDescription=MaSzyna EU07-424 FileDescription=MaSzyna EU07-424
FileVersion=16.0.1173.478 FileVersion=16.0.1173.481
InternalName=DP+SPKS+asynch+python InternalName=DP+SPKS+asynch+python
LegalCopyright= LegalCopyright=
LegalTrademarks= LegalTrademarks=

BIN
EU07.res

Binary file not shown.

View File

@@ -49,9 +49,9 @@ double Global::fLuminance = 1.0; // jasno
int Global::iReCompile = 0; // zwiêkszany, gdy trzeba odœwie¿yæ siatki int Global::iReCompile = 0; // zwiêkszany, gdy trzeba odœwie¿yæ siatki
HWND Global::hWnd = NULL; // uchwyt okna HWND Global::hWnd = NULL; // uchwyt okna
int Global::iCameraLast = -1; int Global::iCameraLast = -1;
AnsiString Global::asRelease = "16.0.1172.478"; AnsiString Global::asRelease = "16.0.1172.481";
AnsiString Global::asVersion = AnsiString Global::asVersion =
"Compilation 2016-06-23, release " + Global::asRelease + "."; // tutaj, bo wysy³any "Compilation 2016-08-24, release " + Global::asRelease + "."; // tutaj, bo wysy³any
int Global::iViewMode = 0; // co aktualnie widaæ: 0-kabina, 1-latanie, 2-sprzêgi, 3-dokumenty int Global::iViewMode = 0; // co aktualnie widaæ: 0-kabina, 1-latanie, 2-sprzêgi, 3-dokumenty
int Global::iTextMode = 0; // tryb pracy wyœwietlacza tekstowego int Global::iTextMode = 0; // tryb pracy wyœwietlacza tekstowego
int Global::iScreenMode[12] = {0, 0, 0, 0, 0, 0, int Global::iScreenMode[12] = {0, 0, 0, 0, 0, 0,

View File

@@ -4981,7 +4981,7 @@ var b:byte;
const Vepsilon=1e-5; Aepsilon=1e-3; //ASBSpeed=0.8; const Vepsilon=1e-5; Aepsilon=1e-3; //ASBSpeed=0.8;
begin begin
TotalCurrent:=0; TotalCurrent:=0;
hvc:=Max0R(Max0R(PantFrontVolt,PantRearVolt),ElectricTraction.TractionVoltage); hvc:=Max0R(Max0R(PantFrontVolt,PantRearVolt),ElectricTraction.TractionVoltage*0.9);
for b:=0 to 1 do //przekazywanie napiec for b:=0 to 1 do //przekazywanie napiec
if ((Couplers[b].CouplingFlag and ctrain_power) = ctrain_power)or(((Couplers[b].CouplingFlag and ctrain_heating) = ctrain_heating)and(Heating)) then if ((Couplers[b].CouplingFlag and ctrain_power) = ctrain_power)or(((Couplers[b].CouplingFlag and ctrain_heating) = ctrain_heating)and(Heating)) then
begin begin

View File

@@ -100,7 +100,7 @@ end;
function TTrainParameters.CheckTrainLatency: real; function TTrainParameters.CheckTrainLatency: real;
begin begin
if (LastStationLatency>1.0) or (LastStationLatency<-1.0) then if (LastStationLatency>1.0) or (LastStationLatency<0) then
CheckTrainLatency:=LastStationLatency {spoznienie + lub do przodu - z tolerancja 1 min} CheckTrainLatency:=LastStationLatency {spoznienie + lub do przodu - z tolerancja 1 min}
else else
CheckTrainLatency:=0 CheckTrainLatency:=0

View File

@@ -3139,7 +3139,7 @@ bool TTrain::Update()
dsbWejscie_na_drugi_uklad->Play(0, 0, 0); dsbWejscie_na_drugi_uklad->Play(0, 0, 0);
} }
} }
// potem dorobic bufory, sprzegi jako RealSound.
if (TestFlag(mvOccupied->SoundFlag, sound_bufferclamp)) // zderzaki uderzaja o siebie if (TestFlag(mvOccupied->SoundFlag, sound_bufferclamp)) // zderzaki uderzaja o siebie
{ {
if (TestFlag(mvOccupied->SoundFlag, sound_loud)) if (TestFlag(mvOccupied->SoundFlag, sound_loud))
@@ -4095,6 +4095,8 @@ bool TTrain::Update()
// if (TestFlag(mvOccupied->SecuritySystem.Status,s_alarm)) // if (TestFlag(mvOccupied->SecuritySystem.Status,s_alarm))
if (TestFlag(mvOccupied->SecuritySystem.Status, s_CAalarm) || if (TestFlag(mvOccupied->SecuritySystem.Status, s_CAalarm) ||
TestFlag(mvOccupied->SecuritySystem.Status, s_SHPalarm)) TestFlag(mvOccupied->SecuritySystem.Status, s_SHPalarm))
{
if(dsbBuzzer)
{ {
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (!(stat & DSBSTATUS_PLAYING)) if (!(stat & DSBSTATUS_PLAYING))
@@ -4103,7 +4105,10 @@ bool TTrain::Update()
Console::BitsSet(1 << 14); // ustawienie bitu 16 na PoKeys Console::BitsSet(1 << 14); // ustawienie bitu 16 na PoKeys
} }
} }
}
else else
{
if(dsbBuzzer)
{ {
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (stat & DSBSTATUS_PLAYING) if (stat & DSBSTATUS_PLAYING)
@@ -4113,10 +4118,13 @@ bool TTrain::Update()
} }
} }
} }
}
else // wylaczone else // wylaczone
{ {
btLampkaCzuwaka.TurnOff(); btLampkaCzuwaka.TurnOff();
btLampkaSHP.TurnOff(); btLampkaSHP.TurnOff();
if(dsbBuzzer)
{
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (stat & DSBSTATUS_PLAYING) if (stat & DSBSTATUS_PLAYING)
{ {
@@ -4124,6 +4132,7 @@ bool TTrain::Update()
Console::BitsClear(1 << 14); // ustawienie bitu 16 na PoKeys Console::BitsClear(1 << 14); // ustawienie bitu 16 na PoKeys
} }
} }
}
//****************************************** //******************************************
// przelaczniki // przelaczniki
@@ -5014,7 +5023,12 @@ bool TTrain::LoadMMediaFile(AnsiString asFileName)
// Parser->LoadStringToParse(asFile); // Parser->LoadStringToParse(asFile);
Parser->First(); Parser->First();
str = ""; str = "";
//Wartoœci domyœlne by nie wysypywa³o przy wybrakowanych mmd @240816 Stele
dsbPneumaticSwitch = TSoundsManager::GetFromName("silence1.wav", true); dsbPneumaticSwitch = TSoundsManager::GetFromName("silence1.wav", true);
dsbBufferClamp = TSoundsManager::GetFromName("en57_bufferclamp.wav", true);
dsbCouplerDetach = TSoundsManager::GetFromName("couplerdetach.wav", true);
dsbCouplerStretch = TSoundsManager::GetFromName("en57_couplerstretch.wav", true);
dsbCouplerAttach = TSoundsManager::GetFromName("couplerattach.wav", true);
while ((!Parser->EndOfFile) && (str != AnsiString("internaldata:"))) while ((!Parser->EndOfFile) && (str != AnsiString("internaldata:")))
{ {
str = Parser->GetNextSymbol().LowerCase(); str = Parser->GetNextSymbol().LowerCase();
@@ -5109,15 +5123,22 @@ bool TTrain::LoadMMediaFile(AnsiString asFileName)
{ {
str = Parser->GetNextSymbol().LowerCase(); str = Parser->GetNextSymbol().LowerCase();
dsbCouplerAttach = TSoundsManager::GetFromName(str.c_str(), true); dsbCouplerAttach = TSoundsManager::GetFromName(str.c_str(), true);
dsbCouplerStretch = TSoundsManager::GetFromName( }
"en57_couplerstretch.wav", true); // McZapkie-090503: PROWIZORKA!!! else if (str == AnsiString("couplerstretch:")) // laczenie:
{
str = Parser->GetNextSymbol().LowerCase();
dsbCouplerStretch = TSoundsManager::GetFromName(str.c_str(), true); // McZapkie-090503: PROWIZORKA!!! "en57_couplerstretch.wav"
} }
else if (str == AnsiString("couplerdetach:")) // rozlaczanie: else if (str == AnsiString("couplerdetach:")) // rozlaczanie:
{ {
str = Parser->GetNextSymbol().LowerCase(); str = Parser->GetNextSymbol().LowerCase();
dsbCouplerDetach = TSoundsManager::GetFromName(str.c_str(), true); dsbCouplerDetach = TSoundsManager::GetFromName(str.c_str(), true);
dsbBufferClamp = TSoundsManager::GetFromName(
"en57_bufferclamp.wav", true); // McZapkie-090503: PROWIZORKA!!! }
else if (str == AnsiString("bufferclamp:")) // laczenie:
{
str = Parser->GetNextSymbol().LowerCase();
dsbBufferClamp = TSoundsManager::GetFromName(str.c_str(), true); // McZapkie-090503: PROWIZORKA!!! "en57_bufferclamp.wav"
} }
else if (str == AnsiString("ignition:")) else if (str == AnsiString("ignition:"))
{ // odpalanie silnika { // odpalanie silnika

View File

@@ -26,6 +26,7 @@ http://mozilla.org/MPL/2.0/.
#include "DynObj.h" #include "DynObj.h"
#include "Ground.h" #include "Ground.h"
#include "Event.h" #include "Event.h"
#include "Driver.h"
TTrackFollower::TTrackFollower() TTrackFollower::TTrackFollower()
{ {
@@ -132,7 +133,7 @@ bool TTrackFollower::Move(double fDistance, bool bPrimary)
{ {
if (iSetFlag(iEventFlag, -1)) // zawsze zeruje flagę sprawdzenia, jak mechanik 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 (Owner->Mechanik->Primary()) // tylko dla jednego członu
// if (TestFlag(iEventFlag,1)) //McZapkie-280503: wyzwalanie event tylko dla // if (TestFlag(iEventFlag,1)) //McZapkie-280503: wyzwalanie event tylko dla
// pojazdow z obsada // pojazdow z obsada
if (bPrimary && pCurrentTrack->evEvent1 && if (bPrimary && pCurrentTrack->evEvent1 &&
@@ -154,7 +155,7 @@ bool TTrackFollower::Move(double fDistance, bool bPrimary)
{ {
if (iSetFlag(iEventFlag, -2)) // zawsze ustawia flagę sprawdzenia, jak mechanik 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 (Owner->Mechanik->Primary()) // tylko dla jednego członu
// if (TestFlag(iEventFlag,2)) //sprawdzanie jest od razu w pierwszym // if (TestFlag(iEventFlag,2)) //sprawdzanie jest od razu w pierwszym
// warunku // warunku
if (bPrimary && pCurrentTrack->evEvent2 && if (bPrimary && pCurrentTrack->evEvent2 &&
@@ -173,7 +174,7 @@ bool TTrackFollower::Move(double fDistance, bool bPrimary)
} }
else // if (fDistance==0) //McZapkie-140602: wyzwalanie zdarzenia gdy pojazd stoi else // if (fDistance==0) //McZapkie-140602: wyzwalanie zdarzenia gdy pojazd stoi
{ {
if (Owner->Mechanik) // tylko dla jednego członu if (Owner->Mechanik->Primary()) // tylko dla jednego członu
if (pCurrentTrack->evEvent0) if (pCurrentTrack->evEvent0)
if (!pCurrentTrack->evEvent0->iQueued) if (!pCurrentTrack->evEvent0->iQueued)
Global::AddToQuery(pCurrentTrack->evEvent0, Owner); Global::AddToQuery(pCurrentTrack->evEvent0, Owner);