mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 19:49:19 +02:00
build 200506. emergency brake warning signal
This commit is contained in:
43
DynObj.cpp
43
DynObj.cpp
@@ -4259,23 +4259,32 @@ void TDynamicObject::RenderSounds() {
|
||||
}
|
||||
|
||||
// horns
|
||||
if( TestFlag( MoverParameters->WarningSignal, 1 ) ) {
|
||||
sHorn1.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn1.stop();
|
||||
}
|
||||
if( TestFlag( MoverParameters->WarningSignal, 2 ) ) {
|
||||
sHorn2.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn2.stop();
|
||||
}
|
||||
if( TestFlag( MoverParameters->WarningSignal, 4 ) ) {
|
||||
sHorn3.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn3.stop();
|
||||
{
|
||||
// for moving vehicle combine regular horn activation flag with emergency brake horn activation flag, if the brake is active
|
||||
auto const warningsignal { (
|
||||
( MoverParameters->Vel > 0.5 ) && ( MoverParameters->AlarmChainFlag ) ?
|
||||
MoverParameters->EmergencyBrakeWarningSignal :
|
||||
0 )
|
||||
| ( MoverParameters->WarningSignal ) };
|
||||
|
||||
if( TestFlag( warningsignal, 1 ) ) {
|
||||
sHorn1.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn1.stop();
|
||||
}
|
||||
if( TestFlag( warningsignal, 2 ) ) {
|
||||
sHorn2.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn2.stop();
|
||||
}
|
||||
if( TestFlag( warningsignal, 4 ) ) {
|
||||
sHorn3.play( sound_flags::exclusive | sound_flags::looping );
|
||||
}
|
||||
else {
|
||||
sHorn3.stop();
|
||||
}
|
||||
}
|
||||
// szum w czasie jazdy
|
||||
if( ( GetVelocity() > 0.5 )
|
||||
|
||||
@@ -1128,6 +1128,7 @@ public:
|
||||
bool MBrake = false; /*Czy jest hamulec reczny*/
|
||||
double StopBrakeDecc = 0.0;
|
||||
TSecuritySystem SecuritySystem;
|
||||
int EmergencyBrakeWarningSignal{ 0 }; // combined with basic WarningSignal when manual emergency brake is active
|
||||
TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/
|
||||
int UniCtrlListSize = 0; /*wielkosc listy pozycji uniwersalnego nastawnika*/
|
||||
bool UniCtrlIntegratedBrakePNCtrl = false; /*zintegrowany nastawnik JH obsluguje hamulec PN*/
|
||||
|
||||
@@ -10301,6 +10301,8 @@ void TMoverParameters::LoadFIZ_Security( std::string const &line ) {
|
||||
extract_value( SecuritySystem.SoundSignalDelay, "SoundSignalDelay", line, "" );
|
||||
extract_value( SecuritySystem.EmergencyBrakeDelay, "EmergencyBrakeDelay", line, "" );
|
||||
extract_value( SecuritySystem.RadioStop, "RadioStop", line, "" );
|
||||
|
||||
extract_value( EmergencyBrakeWarningSignal, "EmergencyBrakeWarningSignal", line, "" );
|
||||
}
|
||||
|
||||
void TMoverParameters::LoadFIZ_Clima( std::string const &line ) {
|
||||
|
||||
12
Train.cpp
12
Train.cpp
@@ -5744,14 +5744,14 @@ void TTrain::OnCommand_cabchangeforward( TTrain *Train, command_data const &Comm
|
||||
movedirection > 0 ?
|
||||
end::front :
|
||||
end::rear ) };
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
if( TestFlag( Train->mvOccupied->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
// przejscie do nastepnego pojazdu
|
||||
auto *targetvehicle = (
|
||||
exitdirection == end::front ?
|
||||
Train->DynamicObject->PrevConnected() :
|
||||
Train->DynamicObject->NextConnected() );
|
||||
targetvehicle->MoverParameters->CabOccupied = (
|
||||
Train->DynamicObject->MoverParameters->Neighbours[ exitdirection ].vehicle_end ?
|
||||
Train->mvOccupied->Neighbours[ exitdirection ].vehicle_end ?
|
||||
-1 :
|
||||
1 );
|
||||
Train->MoveToVehicle( targetvehicle );
|
||||
@@ -5778,14 +5778,14 @@ void TTrain::OnCommand_cabchangebackward( TTrain *Train, command_data const &Com
|
||||
movedirection > 0 ?
|
||||
end::front :
|
||||
end::rear ) };
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
if( TestFlag( Train->mvOccupied->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
// przejscie do nastepnego pojazdu
|
||||
auto *targetvehicle = (
|
||||
exitdirection == end::front ?
|
||||
Train->DynamicObject->PrevConnected() :
|
||||
Train->DynamicObject->NextConnected() );
|
||||
targetvehicle->MoverParameters->CabOccupied = (
|
||||
Train->DynamicObject->MoverParameters->Neighbours[ exitdirection ].vehicle_end ?
|
||||
Train->mvOccupied->Neighbours[ exitdirection ].vehicle_end ?
|
||||
-1 :
|
||||
1 );
|
||||
Train->MoveToVehicle( targetvehicle );
|
||||
@@ -7016,8 +7016,8 @@ bool TTrain::Update( double const Deltatime )
|
||||
ggMotorBlowersAllOffButton.Update();
|
||||
|
||||
// wyprowadzenie sygnałów dla haslera na PoKeys (zaznaczanie na taśmie)
|
||||
btHaslerBrakes.Turn(DynamicObject->MoverParameters->BrakePress > 0.4); // ciśnienie w cylindrach
|
||||
btHaslerCurrent.Turn(DynamicObject->MoverParameters->Im != 0.0); // prąd na silnikach
|
||||
btHaslerBrakes.Turn(mvOccupied->BrakePress > 0.4); // ciśnienie w cylindrach
|
||||
btHaslerCurrent.Turn(mvOccupied->Im != 0.0); // prąd na silnikach
|
||||
|
||||
// calculate current level of interior illumination
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user