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

Merge with asynch17 from dp branch

This commit is contained in:
firleju
2016-03-11 06:40:11 +01:00
parent 3cdaac6387
commit 663dc48fd7
4 changed files with 1009 additions and 981 deletions

View File

@@ -2361,6 +2361,9 @@ bool TController::IncBrake()
switch (mvOccupied->BrakeSystem)
{
case Individual:
if (mvOccupied->LocalBrake == ManualBrake)
OK = mvOccupied->IncManualBrakeLevel(1 + floor(0.5 + fabs(AccDesired)));
else
OK = mvOccupied->IncLocalBrakeLevel(1 + floor(0.5 + fabs(AccDesired)));
break;
case Pneumatic:
@@ -2434,6 +2437,9 @@ bool TController::DecBrake()
switch (mvOccupied->BrakeSystem)
{
case Individual:
if (mvOccupied->LocalBrake == ManualBrake)
OK = mvOccupied->DecManualBrakeLevel(1 + floor(0.5 + fabs(AccDesired)));
else
OK = mvOccupied->DecLocalBrakeLevel(1 + floor(0.5 + fabs(AccDesired)));
break;
case Pneumatic:
@@ -3483,10 +3489,10 @@ bool TController::UpdateSituation(double dt)
fBrakeDist = fBrakeDist + 2 * mvOccupied->Vel; // dla nastawienia G
// koniecznie należy wydłużyć drogę na czas reakcji
// double scanmax=(mvOccupied->Vel>0.0)?3*fDriverDist+fBrakeDist:10.0*fDriverDist;
//double scanmax = (mvOccupied->Vel > 5.0) ?
// 400 + fBrakeDist :
// 30.0 * fDriverDist; // 1500m dla stojących pociągów; Ra 2015-01: przy
double scanmax = Max0R(400 + fBrakeDist, 1500);
double scanmax = (mvOccupied->Vel > 5.0) ?
400 + fBrakeDist :
30.0 * fDriverDist; // 1500m dla stojących pociągów; Ra 2015-01: przy
//double scanmax = Max0R(400 + fBrakeDist, 1500);
// 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ć,
@@ -5354,7 +5360,7 @@ AnsiString TController::Relation()
};
AnsiString TController::TrainName()
{ // zwraca relację pociągu
{ // zwraca numer pociągu
return TrainParams->TrainName;
};

115
Train.cpp
View File

@@ -343,6 +343,13 @@ PyObject *TTrain::GetTrainState()
PyDict_SetItemString(dict, "car_no", PyGetInt(iCarNo));
PyDict_SetItemString(dict, "power_no", PyGetInt(iPowerNo));
PyDict_SetItemString(dict, "unit_no", PyGetInt(iUnitNo));
PyDict_SetItemString(dict, "universal3", PyGetBool(LampkaUniversal3_st));
PyDict_SetItemString(dict, "ca", PyGetBool(TestFlag(mvOccupied->SecuritySystem.Status, s_aware)));
PyDict_SetItemString(dict, "shp", PyGetBool(TestFlag(mvOccupied->SecuritySystem.Status, s_active)));
PyDict_SetItemString(dict, "manual_brake", PyGetBool(mvOccupied->ManualBrakePos > 0));
PyDict_SetItemString(dict, "pantpress", PyGetFloat(mvControlled->PantPress));
PyDict_SetItemString(dict, "trainnumber", PyGetString(DynamicObject->Mechanik->TrainName().c_str()));
return dict;
}
@@ -377,9 +384,7 @@ void TTrain::OnKeyDown(int cKey)
mvOccupied->Radio = true;
}
}
else
if (cKey == Global::Keys[k_DecMainCtrlFAST])
else if (cKey == Global::Keys[k_DecMainCtrlFAST])
if (mvControlled->DecMainCtrl(2))
{
dsbNastawnikJazdy->SetCurrentPosition(0);
@@ -454,6 +459,7 @@ void TTrain::OnKeyDown(int cKey)
if (mvOccupied->BatterySwitch(true)) // bateria potrzebna np. do zapalenia œwiate³
{
dsbSwitch->Play(0, 0, 0);
SetLights();
if (TestFlag(mvOccupied->SecuritySystem.SystemType,
2)) // Ra: znowu w kabinie jest coœ, co byæ nie powinno!
{
@@ -477,14 +483,27 @@ void TTrain::OnKeyDown(int cKey)
else if (cKey == Global::Keys[k_Sand])
{
if (mvControlled->TrainType == dt_EZT)
{
if (ggDoorSignallingButton.SubModel != NULL)
{
if (!mvControlled->DoorSignalling)
{
mvOccupied->DoorBlocked = true;
dsbSwitch->Play(0, 0, 0);
mvControlled->DoorSignalling = true;
}
}
}
else if (mvControlled->TrainType != dt_EZT)
{
if (ggSandButton.SubModel != NULL)
{
ggSandButton.PutValue(1);
dsbPneumaticRelay->SetVolume(-80);
dsbPneumaticRelay->Play(0, 0, 0);
}
}
}
if (cKey == Global::Keys[k_Main])
{
if (fabs(ggMainOnButton.GetValue()) < 0.001)
@@ -494,10 +513,10 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
else if (cKey == Global::Keys[k_BrakeProfile]) // McZapkie-240302-B:
//-----------
if (cKey == Global::Keys[k_BrakeProfile]) // McZapkie-240302-B:
// przelacznik opoznienia
// hamowania
{ // yB://ABu: male poprawki, zeby bylo mozna ustawic dowolny wagon
@@ -547,7 +566,6 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
else
//-----------
// hunter-261211: przetwornica i sprzezarka przeniesione do
// TTrain::Update()
@@ -576,7 +594,7 @@ void TTrain::OnKeyDown(int cKey)
}
else */
if (cKey == Global::Keys[k_Converter])
else if (cKey == Global::Keys[k_Converter])
{
if (ggConverterButton.GetValue() == 0)
{
@@ -584,12 +602,12 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
else if ((cKey == Global::Keys[k_Compressor]) &&
(mvControlled->CompressorPower < 2)) // hunter-091012: tak jest poprawnie
// if
// ((cKey==Global::Keys[k_Compressor])&&((mvControlled->EngineType==ElectricSeriesMotor)||(mvControlled->TrainType==dt_EZT)))
// //hunter-110212: poprawka dla EZT
if ((cKey == Global::Keys[k_Compressor]) &&
(mvControlled->CompressorPower < 2)) // hunter-091012: tak jest poprawnie
{
if (ggCompressorButton.GetValue() == 0)
{
@@ -700,12 +718,11 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
else
//-----------
// hunter-131211: dzwiek dla przelacznika universala podniesionego
// hunter-091012: ubajerowanie swiatla w kabinie (wyrzucenie
// przyciemnienia pod Univ4)
if (cKey == Global::Keys[k_Univ3])
else if (cKey == Global::Keys[k_Univ3])
{
if (Console::Pressed(VK_CONTROL))
{
@@ -730,10 +747,10 @@ void TTrain::OnKeyDown(int cKey)
*/
}
}
else
//-----------
// hunter-091012: dzwiek dla przyciemnienia swiatelka w kabinie
if (cKey == Global::Keys[k_Univ4])
else if (cKey == Global::Keys[k_Univ4])
{
if (Console::Pressed(VK_CONTROL))
{
@@ -744,9 +761,9 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
else
//-----------
if (cKey == Global::Keys[k_PantFrontUp])
else if (cKey == Global::Keys[k_PantFrontUp])
{ // Winger 160204: podn.
// przedn. pantografu
if (mvOccupied->ActiveCab ==
@@ -833,9 +850,10 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
else
else if (cKey == Global::Keys[k_LeftSign]) // lewe swiatlo - w³¹czenie
// ABu 060205: dzielo Wingera po malutkim liftingu:
if (cKey == Global::Keys[k_LeftSign]) // lewe swiatlo - w³¹czenie
{
if (!mvOccupied->LightsPosNo > 0)
{
if ((GetAsyncKeyState(VK_CONTROL) < 0) &&
(ggRearLeftLightButton.SubModel)) // hunter-230112 - z controlem zapala z tylu
@@ -939,6 +957,7 @@ void TTrain::OnKeyDown(int cKey)
}
} //-----------
}
}
else if (cKey == Global::Keys[k_UpperSign]) // ABu 060205: œwiat³o górne -
// w³¹czenie
{
@@ -951,6 +970,8 @@ void TTrain::OnKeyDown(int cKey)
{
mvOccupied->LightsPos = 1;
}
dsbSwitch->SetVolume(DSBVOLUME_MAX);
dsbSwitch->Play(0, 0, 0);
SetLights();
}
@@ -1007,6 +1028,8 @@ void TTrain::OnKeyDown(int cKey)
else if (cKey == Global::Keys[k_RightSign]) // Winger 070304: swiatla
// tylne (koncowki) -
// wlaczenie
{
if (!mvOccupied->LightsPosNo > 0)
{
if ((GetAsyncKeyState(VK_CONTROL) < 0) &&
(ggRearRightLightButton.SubModel)) // hunter-230112 - z controlem zapala z tylu
@@ -1110,6 +1133,7 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
}
else // McZapkie-240302 - klawisze bez shifta
{
if (cKey == Global::Keys[k_IncMainCtrl])
@@ -1345,10 +1369,9 @@ void TTrain::OnKeyDown(int cKey)
// while (mvOccupied->BrakeCtrlPos<-1 && mvOccupied->IncBrakeLevel());
mvOccupied->BrakeLevelSet(-1);
}
else
else if (cKey == Global::Keys[k_Czuwak])
//---------------
// hunter-131211: zbicie czuwaka przeniesione do TTrain::Update()
if (cKey == Global::Keys[k_Czuwak])
{ // Ra: tu zosta³ tylko dŸwiêk
// dsbBuzzer->Stop();
// if (mvOccupied->SecuritySystemReset())
@@ -1359,11 +1382,10 @@ void TTrain::OnKeyDown(int cKey)
}
// ggSecurityResetButton.PutValue(1);
}
else
else if (cKey == Global::Keys[k_AntiSlipping])
//---------------
// hunter-221211: hamulec przeciwposlizgowy przeniesiony do
// TTrain::Update()
if (cKey == Global::Keys[k_AntiSlipping])
{
if (mvOccupied->BrakeSystem != ElectroPneumatic)
{
@@ -1378,10 +1400,8 @@ void TTrain::OnKeyDown(int cKey)
// ggAntiSlipButton.PutValue(1);
}
}
else
else if (cKey == Global::Keys[k_Fuse])
//---------------
if (cKey == Global::Keys[k_Fuse])
{
if (GetAsyncKeyState(VK_CONTROL) < 0) // z controlem
{
@@ -1396,9 +1416,8 @@ void TTrain::OnKeyDown(int cKey)
mvControlled->FuseOn();
}
}
else
else if (cKey == Global::Keys[k_DirectionForward])
// McZapkie-240302 - zmiana kierunku: 'd' do przodu, 'r' do tylu
if (cKey == Global::Keys[k_DirectionForward])
{
if (mvOccupied->DirectionForward())
{
@@ -1457,11 +1476,10 @@ void TTrain::OnKeyDown(int cKey)
Change_direction); // aktualizacja skrajnych pojazdów w sk³adzie
}
}
else
else if (cKey == Global::Keys[k_Main])
// McZapkie-240302 - wylaczanie glownego obwodu
//-----------
// hunter-141211: wyl. szybki wylaczony przeniesiony do TTrain::Update()
if (cKey == Global::Keys[k_Main])
{
if (fabs(ggMainOffButton.GetValue()) < 0.001)
if (dsbSwitch)
@@ -1470,9 +1488,7 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
if (cKey == Global::Keys[k_Battery])
else if (cKey == Global::Keys[k_Battery])
{
// if ((mvControlled->TrainType==dt_EZT) ||
// (mvControlled->EngineType==ElectricSeriesMotor)||
@@ -1549,11 +1565,10 @@ void TTrain::OnKeyDown(int cKey)
}
}
}
else
else if (cKey == Global::Keys[k_Converter])
//-----------
// hunter-261211: przetwornica i sprzezarka przeniesione do
// TTrain::Update()
if (cKey == Global::Keys[k_Converter])
{
if (ggConverterButton.GetValue() != 0)
{
@@ -1561,11 +1576,10 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
// if
// ((cKey==Global::Keys[k_Compressor])&&((mvControlled->EngineType==ElectricSeriesMotor)||(mvControlled->TrainType==dt_EZT)))
// //hunter-110212: poprawka dla EZT
if ((cKey == Global::Keys[k_Compressor]) &&
else if ((cKey == Global::Keys[k_Compressor]) &&
(mvControlled->CompressorPower < 2)) // hunter-091012: tak jest poprawnie
{
if (ggCompressorButton.GetValue() != 0)
@@ -1574,9 +1588,8 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
//-----------
if (cKey == Global::Keys[k_Releaser]) // odluzniacz
else if (cKey == Global::Keys[k_Releaser]) // odluzniacz
{
if (!FreeFlyModeFlag)
{
@@ -1650,10 +1663,10 @@ void TTrain::OnKeyDown(int cKey)
dsbSwitch->Play(0, 0, 0);
}
}
else
// hunter-201211: piasecznica poprawiona oraz przeniesiona do
// TTrain::Update()
if (cKey == Global::Keys[k_Sand])
else if (cKey == Global::Keys[k_Sand])
{
/*
if (mvControlled->TrainType!=dt_EZT)
@@ -1926,12 +1939,12 @@ if
}
}
}
else
//-----------
// hunter-131211: dzwiek dla przelacznika universala
// hunter-091012: ubajerowanie swiatla w kabinie (wyrzucenie
// przyciemnienia pod Univ4)
if (cKey == Global::Keys[k_Univ3])
else if (cKey == Global::Keys[k_Univ3])
{
if (Console::Pressed(VK_CONTROL))
{
@@ -1955,10 +1968,10 @@ if
} */
}
}
else
//-----------
// hunter-091012: dzwiek dla przyciemnienia swiatelka w kabinie
if (cKey == Global::Keys[k_Univ4])
else if (cKey == Global::Keys[k_Univ4])
{
if (Console::Pressed(VK_CONTROL))
{
@@ -2038,6 +2051,8 @@ if
}
else if (cKey == Global::Keys[k_LeftSign]) // ABu 060205: lewe swiatlo -
// wylaczenie
{
if (!mvOccupied->LightsPosNo > 0)
{
if ((GetAsyncKeyState(VK_CONTROL) < 0) &&
(ggRearLeftLightButton.SubModel)) // hunter-230112 - z controlem gasi z tylu
@@ -2140,6 +2155,7 @@ if
}
}
}
}
else if (cKey == Global::Keys[k_UpperSign]) // ABu 060205: œwiat³o górne -
// wy³¹czenie
{
@@ -2152,6 +2168,8 @@ if
{
mvOccupied->LightsPos = mvOccupied->LightsPosNo;
}
dsbSwitch->SetVolume(DSBVOLUME_MAX);
dsbSwitch->Play(0, 0, 0);
SetLights();
}
}
@@ -2206,6 +2224,8 @@ if
}
if (cKey == Global::Keys[k_RightSign]) // Winger 070304: swiatla tylne
// (koncowki) - wlaczenie
{
if (!mvOccupied->LightsPosNo > 0)
{
if ((GetAsyncKeyState(VK_CONTROL) < 0) &&
(ggRearRightLightButton.SubModel)) // hunter-230112 - z controlem gasi z tylu
@@ -2308,6 +2328,7 @@ if
}
}
}
}
else if (cKey == Global::Keys[k_StLinOff]) // Winger 110904: wylacznik st.
// liniowych
{
@@ -5229,7 +5250,7 @@ bool TTrain::LoadMMediaFile(AnsiString asFileName)
str = Parser->GetNextSymbol().LowerCase();
dsbDoorClose = TSoundsManager::GetFromName(str.c_str(), true);
}
else if (str == AnsiString("dooropen:")) // wotwarcie drzwi:
else if (str == AnsiString("dooropen:")) // otwarcie drzwi:
{
str = Parser->GetNextSymbol().LowerCase();
dsbDoorOpen = TSoundsManager::GetFromName(str.c_str(), true);
@@ -6075,14 +6096,14 @@ void TTrain::SetLights()
TDynamicObject *p = DynamicObject->GetFirstDynamic(mvOccupied->ActiveCab < 0 ? 1 : 0);
bool kier = (DynamicObject->DirectionGet() * mvOccupied->ActiveCab > 0);
int xs = (kier ? 0 : 1);
if (kier ? p->NextC(4) : p->PrevC(4)) // jesli jest nastepny, to tylko przod
if (kier ? p->NextC(1) : p->PrevC(1)) // jesli jest nastepny, to tylko przod
{
p->RaLightsSet(mvOccupied->Lights[xs][mvOccupied->LightsPos - 1] * (1 - xs),
mvOccupied->Lights[1 - xs][mvOccupied->LightsPos - 1] * xs);
p = (kier ? p->NextC(4) : p->PrevC(4));
while (p)
{
if (kier ? p->NextC(4) : p->PrevC(4))
if (kier ? p->NextC(1) : p->PrevC(1))
{
p->RaLightsSet(0, 0);
}

View File

@@ -151,6 +151,7 @@ class TTrain
TGauge ggMainButton; // EZT
TGauge ggSecurityResetButton;
TGauge ggReleaserButton;
TGauge ggSandButton; //guzik piasecznicy
TGauge ggAntiSlipButton;
TGauge ggFuseButton;
TGauge ggConverterFuseButton; // hunter-261211: przycisk odblokowania

View File

@@ -664,7 +664,7 @@ bool TWorld::Init(HWND NhWnd, HDC hDC)
}
// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); //{Texture blends with object
// background}
light = TTexturesManager::GetTextureID(szTexturePath, szSceneryPath, "smuga.tga");
light = TTexturesManager::GetTextureID(szTexturePath, szSceneryPath, "smuga2.tga");
// Camera.Reset();
ResetTimers();
WriteLog("Load time: " + FloatToStrF((86400.0 * ((double)Now() - time)), ffFixed, 7, 1) +