mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-09-01 09:19:19 +02:00
Simplify lamp logic, add new lights for 810 vehicles (#148)
Simplified lamp logic by reducing unnecessary brackets, `if` statements, ternary operators and boolean comparisons. Added new lamps: - `i-gear1` - 1st gear in the gearbox is active - `i-gear2` - 2nd gear in the gearbox is active - `i-hydrolockup` - The gearbox is locking the engine and wheels together Additionally, fixed motor overload and differential relay lights not turning off when the battery is turned off.
This commit is contained in:
@@ -9039,81 +9039,46 @@ bool TTrain::Update(double const Deltatime)
|
|||||||
btLampkaSHP.Turn(mvOccupied->SecuritySystem.is_cabsignal_blinking());
|
btLampkaSHP.Turn(mvOccupied->SecuritySystem.is_cabsignal_blinking());
|
||||||
btLampkaCzuwakaSHP.Turn(btLampkaSHP.GetValue() || btLampkaCzuwaka.GetValue());
|
btLampkaCzuwakaSHP.Turn(btLampkaSHP.GetValue() || btLampkaCzuwaka.GetValue());
|
||||||
|
|
||||||
btLampkaWylSzybki.Turn(m_linebreakerstate == 2 || true == mvControlled->Mains ? true : false);
|
btLampkaWylSzybki.Turn(m_linebreakerstate == 2 || mvControlled->Mains);
|
||||||
btLampkaWylSzybkiOff.Turn(m_linebreakerstate == 2 || true == mvControlled->Mains ? false : true);
|
btLampkaWylSzybkiOff.Turn(m_linebreakerstate != 2 && !mvControlled->Mains);
|
||||||
btLampkaMainBreakerReady.Turn(mvControlled->MainsInitTimeCountdown > 0.0 || m_linebreakerstate == 2 || true == mvControlled->Mains ? false : true);
|
btLampkaMainBreakerReady.Turn(mvControlled->MainsInitTimeCountdown <= 0.0 && m_linebreakerstate != 2 && !mvControlled->Mains);
|
||||||
btLampkaMainBreakerBlinkingIfReady.Turn(
|
btLampkaMainBreakerBlinkingIfReady.Turn(m_linebreakerstate == 2 || mvControlled->Mains || mvControlled->MainsInitTimeCountdown < 0.0 && simulation::Time.data().wMilliseconds > 500);
|
||||||
m_linebreakerstate == 2 || true == mvControlled->Mains || (mvControlled->MainsInitTimeCountdown < 0.0 && simulation::Time.data().wMilliseconds > 500) ? true : false);
|
|
||||||
|
|
||||||
btLampkaPrzetw.Turn(mvOccupied->Power110vIsAvailable);
|
btLampkaPrzetw.Turn(mvOccupied->Power110vIsAvailable);
|
||||||
btLampkaPrzetwOff.Turn(false == mvOccupied->Power110vIsAvailable);
|
btLampkaPrzetwOff.Turn(!mvOccupied->Power110vIsAvailable);
|
||||||
btLampkaNadmPrzetw.Turn(Dynamic()->Mechanik ? Dynamic()->Mechanik->IsAnyConverterOverloadRelayOpen : mvControlled->ConvOvldFlag);
|
btLampkaNadmPrzetw.Turn(Dynamic()->Mechanik ? Dynamic()->Mechanik->IsAnyConverterOverloadRelayOpen : mvControlled->ConvOvldFlag);
|
||||||
|
|
||||||
btLampkaOpory.Turn(mvControlled->StLinFlag ? mvControlled->ResistorsFlagCheck() : false);
|
btLampkaOpory.Turn(mvControlled->StLinFlag && mvControlled->ResistorsFlagCheck());
|
||||||
|
btLampkaBezoporowa.Turn(mvControlled->ResistorsFlagCheck() || mvControlled->MainCtrlActualPos == 0); // do EU04
|
||||||
btLampkaBezoporowa.Turn(true == mvControlled->ResistorsFlagCheck() || mvControlled->MainCtrlActualPos == 0); // do EU04
|
btLampkaStyczn.Turn(!mvControlled->StLinFlag && !mvControlled->ControlPressureSwitch && mvControlled->BrakePress < 1.0); // mozna prowadzic rozruch
|
||||||
|
btLampkaPrzekRozn.Turn(!mvControlled->GroundRelay && !mvControlled->ControlPressureSwitch && mvControlled->BrakePress < 1.0); // relay is off and needs a reset
|
||||||
btLampkaStyczn.Turn(mvControlled->StLinFlag || mvControlled->ControlPressureSwitch ? false : mvControlled->BrakePress < 1.0); // mozna prowadzic rozruch
|
btLampkaNadmSil.Turn(mvControlled->FuseFlagCheck() && !mvControlled->ControlPressureSwitch && mvControlled->BrakePress < 1.0); // relay is off and needs a reset
|
||||||
|
btLampkaUkrotnienie.Turn(TestFlag(mvControlled->Couplers[mvControlled->CabOccupied == 1 ? rear : front].CouplingFlag, control));
|
||||||
btLampkaPrzekRozn.Turn(mvControlled->GroundRelay || mvControlled->ControlPressureSwitch ? false : mvControlled->BrakePress < 1.0); // relay is off and needs a reset
|
|
||||||
|
|
||||||
btLampkaNadmSil.Turn(false == mvControlled->FuseFlagCheck() || mvControlled->ControlPressureSwitch ? false : mvControlled->BrakePress < 1.0); // relay is off and needs a reset
|
|
||||||
|
|
||||||
if ((mvControlled->CabOccupied == 1 && TestFlag(mvControlled->Couplers[end::rear].CouplingFlag, coupling::control)) ||
|
|
||||||
(mvControlled->CabOccupied == -1 && TestFlag(mvControlled->Couplers[end::front].CouplingFlag, coupling::control)))
|
|
||||||
{
|
|
||||||
btLampkaUkrotnienie.Turn(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
btLampkaUkrotnienie.Turn(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if
|
|
||||||
// ((TestFlag(mvControlled->BrakeStatus,+b_Rused+b_Ractive)))//Lampka drugiego stopnia hamowania
|
|
||||||
btLampkaHamPosp.Turn(TestFlag(mvOccupied->Hamulec->GetBrakeStatus(), 1)); // lampka drugiego stopnia hamowania
|
btLampkaHamPosp.Turn(TestFlag(mvOccupied->Hamulec->GetBrakeStatus(), 1)); // lampka drugiego stopnia hamowania
|
||||||
// TODO: youBy wyciągnąć flagę wysokiego stopnia
|
// TODO: youBy wyciągnąć flagę wysokiego stopnia
|
||||||
|
btLampkaNadmWent.Turn(mvControlled->RventRot < 5.0 && mvControlled->ResistorsFlagCheck()); // hunter-121211: lampka zanikowo-pradowego wentylatorow
|
||||||
// hunter-121211: lampka zanikowo-pradowego wentylatorow:
|
btLampkaWysRozr.Turn(mvControlled->Imax >= mvControlled->ImaxHi);
|
||||||
btLampkaNadmWent.Turn(mvControlled->RventRot < 5.0 && mvControlled->ResistorsFlagCheck());
|
|
||||||
//-------
|
|
||||||
|
|
||||||
btLampkaWysRozr.Turn(!(mvControlled->Imax < mvControlled->ImaxHi));
|
|
||||||
|
|
||||||
if (false == mvControlled->DelayCtrlFlag &&
|
|
||||||
(mvControlled->ScndCtrlActualPos > 0 || (mvControlled->RList[mvControlled->MainCtrlActualPos].ScndAct != 0 && mvControlled->RList[mvControlled->MainCtrlActualPos].ScndAct != 255)))
|
|
||||||
{
|
|
||||||
btLampkaBoczniki.Turn(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
btLampkaBoczniki.Turn(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
btLampkaNapNastHam.Turn(mvControlled->DirActive != 0); // napiecie na nastawniku hamulcowym
|
btLampkaNapNastHam.Turn(mvControlled->DirActive != 0); // napiecie na nastawniku hamulcowym
|
||||||
btLampkaSprezarka.Turn(mvControlled->CompressorFlag); // mutopsitka dziala
|
btLampkaSprezarka.Turn(mvControlled->CompressorFlag); // mutopsitka dziala
|
||||||
btLampkaSprezarkaOff.Turn(false == mvControlled->CompressorFlag);
|
btLampkaSprezarkaOff.Turn(!mvControlled->CompressorFlag);
|
||||||
btLampkaFuelPumpOff.Turn(false == mvControlled->FuelPump.is_active);
|
btLampkaFuelPumpOff.Turn(!mvControlled->FuelPump.is_active);
|
||||||
|
|
||||||
// boczniki
|
// boczniki
|
||||||
unsigned char scp; // Ra: dopisałem "unsigned"
|
// Ra: w SU45 boczniki wchodzą na ScndCtrlPos, a nie na ScndCtrlActualPos
|
||||||
// Ra: w SU45 boczniki wchodzą na MainCtrlPos, a nie na MainCtrlActualPos
|
|
||||||
// - pokićkał ktoś?
|
// - pokićkał ktoś?
|
||||||
scp = mvControlled->RList[mvControlled->MainCtrlPos].ScndAct;
|
int scp = mvControlled->RList[mvControlled->MainCtrlPos].ScndAct;
|
||||||
scp = scp == 255 ? 0 : scp; // Ra: whatta hella is this?
|
scp = scp == 255 ? 0 : scp; // Ra: whatta hella is this?
|
||||||
if (mvControlled->ScndCtrlPos > 0 || mvControlled->ScndInMain != 0 && scp > 0)
|
btLampkaBoczniki.Turn(!mvControlled->DelayCtrlFlag && mvControlled->ScndCtrlActualPos > 0 || scp > 0);
|
||||||
{ // boczniki pojedynczo
|
btLampkaBocznik1.Turn(!mvControlled->DelayCtrlFlag && mvControlled->ScndCtrlPos > 0 || mvControlled->ScndCtrlActualPos > 0 || scp > 0);
|
||||||
btLampkaBocznik1.Turn(true);
|
btLampkaBocznik2.Turn(!mvControlled->DelayCtrlFlag && mvControlled->ScndCtrlPos > 1 || mvControlled->ScndCtrlActualPos > 1 || scp > 1);
|
||||||
btLampkaBocznik2.Turn(mvControlled->ScndCtrlPos > 1);
|
btLampkaBocznik3.Turn(!mvControlled->DelayCtrlFlag && mvControlled->ScndCtrlPos > 2 || mvControlled->ScndCtrlActualPos > 2 || scp > 2);
|
||||||
btLampkaBocznik3.Turn(mvControlled->ScndCtrlPos > 2);
|
btLampkaBocznik4.Turn(!mvControlled->DelayCtrlFlag && mvControlled->ScndCtrlPos > 3 || mvControlled->ScndCtrlActualPos > 3 || scp > 3);
|
||||||
btLampkaBocznik4.Turn(mvControlled->ScndCtrlPos > 3);
|
|
||||||
}
|
// biegi dla motoraka
|
||||||
else
|
btLampkaGear1.Turn(mvControlled->ScndCtrlActualPos == 1 && mvControlled->dizel_engagestate > 0); // bieg 1
|
||||||
{ // wyłączone wszystkie cztery
|
btLampkaGear2.Turn(mvControlled->ScndCtrlActualPos == 2 && mvControlled->dizel_engagestate > 0); // bieg 2
|
||||||
btLampkaBocznik1.Turn(false);
|
btLampkaHydroLockup.Turn(mvControlled->hydro_TC_Lockup); // zblokowanie skrzyni z silnikiem
|
||||||
btLampkaBocznik2.Turn(false);
|
|
||||||
btLampkaBocznik3.Turn(false);
|
|
||||||
btLampkaBocznik4.Turn(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mvControlled->Signalling == true)
|
if (mvControlled->Signalling == true)
|
||||||
{
|
{
|
||||||
@@ -9152,7 +9117,7 @@ bool TTrain::Update(double const Deltatime)
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
btLampkaHamienie.Turn(mvOccupied->BrakePress >= 0.1 || mvControlled->DynamicBrakeFlag);
|
btLampkaHamienie.Turn(mvOccupied->BrakePress >= 0.1 || mvControlled->DynamicBrakeFlag);
|
||||||
btLampkaBrakingOff.Turn(mvOccupied->BrakePress < 0.1 && false == mvControlled->DynamicBrakeFlag);
|
btLampkaBrakingOff.Turn(mvOccupied->BrakePress < 0.1 && !mvControlled->DynamicBrakeFlag);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9238,9 +9203,18 @@ bool TTrain::Update(double const Deltatime)
|
|||||||
btLampkaWysRozr.Turn(false);
|
btLampkaWysRozr.Turn(false);
|
||||||
btLampkaOpory.Turn(false);
|
btLampkaOpory.Turn(false);
|
||||||
btLampkaStyczn.Turn(false);
|
btLampkaStyczn.Turn(false);
|
||||||
|
btLampkaPrzekRozn.Turn(false);
|
||||||
|
btLampkaNadmSil.Turn(false);
|
||||||
btLampkaUkrotnienie.Turn(false);
|
btLampkaUkrotnienie.Turn(false);
|
||||||
btLampkaHamPosp.Turn(false);
|
btLampkaHamPosp.Turn(false);
|
||||||
btLampkaBoczniki.Turn(false);
|
btLampkaBoczniki.Turn(false);
|
||||||
|
btLampkaBocznik1.Turn(false);
|
||||||
|
btLampkaBocznik2.Turn(false);
|
||||||
|
btLampkaBocznik3.Turn(false);
|
||||||
|
btLampkaBocznik4.Turn(false);
|
||||||
|
btLampkaGear1.Turn(false);
|
||||||
|
btLampkaGear2.Turn(false);
|
||||||
|
btLampkaHydroLockup.Turn(false);
|
||||||
btLampkaNapNastHam.Turn(false);
|
btLampkaNapNastHam.Turn(false);
|
||||||
btLampkaPrzetw.Turn(false);
|
btLampkaPrzetw.Turn(false);
|
||||||
btLampkaPrzetwOff.Turn(false);
|
btLampkaPrzetwOff.Turn(false);
|
||||||
@@ -11276,6 +11250,9 @@ void TTrain::clear_cab_controls()
|
|||||||
btLampkaBocznik2.Clear();
|
btLampkaBocznik2.Clear();
|
||||||
btLampkaBocznik3.Clear();
|
btLampkaBocznik3.Clear();
|
||||||
btLampkaBocznik4.Clear();
|
btLampkaBocznik4.Clear();
|
||||||
|
btLampkaGear1.Clear();
|
||||||
|
btLampkaGear2.Clear();
|
||||||
|
btLampkaHydroLockup.Clear();
|
||||||
btLampkaRadiotelefon.Clear();
|
btLampkaRadiotelefon.Clear();
|
||||||
btLampkaHamienie.Clear();
|
btLampkaHamienie.Clear();
|
||||||
btLampkaBrakingOff.Clear();
|
btLampkaBrakingOff.Clear();
|
||||||
@@ -11689,6 +11666,9 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
|
|||||||
{"i-scnd2:", btLampkaBocznik2},
|
{"i-scnd2:", btLampkaBocznik2},
|
||||||
{"i-scnd3:", btLampkaBocznik3},
|
{"i-scnd3:", btLampkaBocznik3},
|
||||||
{"i-scnd4:", btLampkaBocznik4},
|
{"i-scnd4:", btLampkaBocznik4},
|
||||||
|
{"i-gear1:", btLampkaGear1},
|
||||||
|
{"i-gear2:", btLampkaGear2},
|
||||||
|
{"i-hydrolockup:", btLampkaHydroLockup},
|
||||||
{"i-braking:", btLampkaHamienie},
|
{"i-braking:", btLampkaHamienie},
|
||||||
{"i-brakingoff:", btLampkaBrakingOff},
|
{"i-brakingoff:", btLampkaBrakingOff},
|
||||||
{"i-dynamicbrake:", btLampkaED},
|
{"i-dynamicbrake:", btLampkaED},
|
||||||
|
|||||||
@@ -759,6 +759,9 @@ public: // reszta może by?publiczna
|
|||||||
TButton btLampkaBocznik2;
|
TButton btLampkaBocznik2;
|
||||||
TButton btLampkaBocznik3;
|
TButton btLampkaBocznik3;
|
||||||
TButton btLampkaBocznik4;
|
TButton btLampkaBocznik4;
|
||||||
|
TButton btLampkaGear1;
|
||||||
|
TButton btLampkaGear2;
|
||||||
|
TButton btLampkaHydroLockup;
|
||||||
TButton btLampkaRadiotelefon; // TODO: implement
|
TButton btLampkaRadiotelefon; // TODO: implement
|
||||||
TButton btLampkaHamienie;
|
TButton btLampkaHamienie;
|
||||||
TButton btLampkaBrakingOff;
|
TButton btLampkaBrakingOff;
|
||||||
|
|||||||
Reference in New Issue
Block a user