mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-23 16:49:18 +02:00
Modern dimmer overhaul
Now it supports custom positions
This commit is contained in:
56
DynObj.cpp
56
DynObj.cpp
@@ -7366,42 +7366,36 @@ void TDynamicObject::RaLightsSet(int head, int rear)
|
|||||||
bool tLeft = MoverParameters->iLights[vehicleend] & (light::auxiliary_left | light::headlight_left); // roboczo czy jakiekolwiek swiatlo z lewej jest zapalone
|
bool tLeft = MoverParameters->iLights[vehicleend] & (light::auxiliary_left | light::headlight_left); // roboczo czy jakiekolwiek swiatlo z lewej jest zapalone
|
||||||
bool tRight = MoverParameters->iLights[vehicleend] & (light::auxiliary_right | light::headlight_right); // a tu z prawej
|
bool tRight = MoverParameters->iLights[vehicleend] & (light::auxiliary_right | light::headlight_right); // a tu z prawej
|
||||||
if (Controller == Humandriver) {
|
if (Controller == Humandriver) {
|
||||||
switch (MoverParameters->modernDimmerState)
|
|
||||||
|
int ¤tDimPos = MoverParameters->modernDimmerPosition;
|
||||||
|
auto &dimmerPositions = MoverParameters->dimPositions;
|
||||||
|
TMoverParameters::dimPosition dps = dimmerPositions[currentDimPos];
|
||||||
|
|
||||||
|
// domyślnie
|
||||||
|
HighBeamLights = false;
|
||||||
|
DimHeadlights = false;
|
||||||
|
|
||||||
|
// obsługa OFF
|
||||||
|
if (dps.isOff)
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
// wylaczone
|
|
||||||
MoverParameters->iLights[vehicleend] &= 0 | light::rearendsignals; // zostawiamy tylko tabliczki jesli sa
|
MoverParameters->iLights[vehicleend] &= 0 | light::rearendsignals; // zostawiamy tylko tabliczki jesli sa
|
||||||
HighBeamLights = false;
|
HighBeamLights = false;
|
||||||
DimHeadlights = false;
|
DimHeadlights = false;
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
// przyciemnione normalne
|
|
||||||
DimHeadlights = true; // odpalamy przyciemnienie normalnych reflektorow
|
|
||||||
HighBeamLights = false;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
// dlugie przyciemnione
|
|
||||||
DimHeadlights = true;
|
|
||||||
HighBeamLights = true;
|
|
||||||
MoverParameters->iLights[vehicleend] &=
|
|
||||||
light::headlight_upper | light::rearendsignals | light::redmarker_left | light::redmarker_right | light::rearendsignals; // nie ruszamy gornych i koncowek
|
|
||||||
MoverParameters->iLights[vehicleend] |= tLeft ? light::highbeamlight_left : 0; // jesli swiatlo z lewej zapalone to odpal dlugie
|
|
||||||
MoverParameters->iLights[vehicleend] |= tRight ? light::highbeamlight_right : 0; // a tu z prawej
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
// zwykle dlugie
|
|
||||||
DimHeadlights = false;
|
|
||||||
HighBeamLights = true;
|
|
||||||
MoverParameters->iLights[vehicleend] &=
|
|
||||||
light::headlight_upper | light::rearendsignals | light::redmarker_left | light::redmarker_right | light::rearendsignals; // nie ruszamy gornych i koncowek
|
|
||||||
MoverParameters->iLights[vehicleend] |= tLeft ? light::highbeamlight_left : 0; // jesli swiatlo z lewej zapalone to odpal dlugie
|
|
||||||
MoverParameters->iLights[vehicleend] |= tRight ? light::highbeamlight_right : 0; // a tu z prawej
|
|
||||||
break;
|
|
||||||
default: // to case 2 - zwykle
|
|
||||||
DimHeadlights = false;
|
|
||||||
HighBeamLights = false;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// obsługa przyciemnionych
|
||||||
|
DimHeadlights = dps.isDimmed;
|
||||||
|
|
||||||
|
// obsługa długich
|
||||||
|
if (dps.isHighBeam)
|
||||||
|
{
|
||||||
|
HighBeamLights = true;
|
||||||
|
|
||||||
|
MoverParameters->iLights[vehicleend] &=
|
||||||
|
light::headlight_upper | light::rearendsignals | light::redmarker_left | light::redmarker_right | light::rearendsignals; // nie ruszamy gornych i koncowek
|
||||||
|
MoverParameters->iLights[vehicleend] |= tLeft ? light::highbeamlight_left : 0; // jesli swiatlo z lewej zapalone to odpal dlugie
|
||||||
|
MoverParameters->iLights[vehicleend] |= tRight ? light::highbeamlight_right : 0; // a tu z prawej
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1377,6 +1377,7 @@ class TMoverParameters
|
|||||||
TDESchemeTable DElist;
|
TDESchemeTable DElist;
|
||||||
TWiperSchemeTable WiperList;
|
TWiperSchemeTable WiperList;
|
||||||
int WiperListSize;
|
int WiperListSize;
|
||||||
|
int modernWpierListSize;
|
||||||
|
|
||||||
double Vadd = 1.0;
|
double Vadd = 1.0;
|
||||||
TMPTRelayTable MPTRelay;
|
TMPTRelayTable MPTRelay;
|
||||||
@@ -1774,9 +1775,23 @@ class TMoverParameters
|
|||||||
// 2 - swiatla normalne
|
// 2 - swiatla normalne
|
||||||
// 3 - swiatla dlugie przyciemnione
|
// 3 - swiatla dlugie przyciemnione
|
||||||
// 4 - swiatla dlugie normalne
|
// 4 - swiatla dlugie normalne
|
||||||
int modernDimmerState{0};
|
|
||||||
bool modernContainOffPos{true};
|
struct dimPosition
|
||||||
|
{
|
||||||
|
bool isOff = false;
|
||||||
|
bool isDimmed = false;
|
||||||
|
bool isHighBeam = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
// default positions
|
||||||
|
std::vector<dimPosition> dimPositions = {{false, false, false}, // 0 - Not dimmed
|
||||||
|
{false, true, false}}; // 1 - Dimmed
|
||||||
|
|
||||||
|
int modernDimmerPosition{0};
|
||||||
|
int modernDimmerDefaultPosition{0};
|
||||||
|
//bool modernContainOffPos{true};
|
||||||
bool enableModernDimmer {false};
|
bool enableModernDimmer {false};
|
||||||
|
bool modernDimmerCanCycle {false};
|
||||||
|
|
||||||
// Barwa reflektora
|
// Barwa reflektora
|
||||||
int refR{255}; // Czerwony
|
int refR{255}; // Czerwony
|
||||||
@@ -2067,6 +2082,7 @@ private:
|
|||||||
void LoadFIZ_FFList( std::string const &Input );
|
void LoadFIZ_FFList( std::string const &Input );
|
||||||
void LoadFIZ_WiperList(std::string const &Input);
|
void LoadFIZ_WiperList(std::string const &Input);
|
||||||
void LoadFIZ_LightsList( std::string const &Input );
|
void LoadFIZ_LightsList( std::string const &Input );
|
||||||
|
void LoadFIZ_DimmerList(std::string const &Input);
|
||||||
void LoadFIZ_CompressorList(std::string const &Input);
|
void LoadFIZ_CompressorList(std::string const &Input);
|
||||||
void LoadFIZ_PowerParamsDecode( TPowerParameters &Powerparameters, std::string const Prefix, std::string const &Input );
|
void LoadFIZ_PowerParamsDecode( TPowerParameters &Powerparameters, std::string const Prefix, std::string const &Input );
|
||||||
TPowerType LoadFIZ_PowerDecode( std::string const &Power );
|
TPowerType LoadFIZ_PowerDecode( std::string const &Power );
|
||||||
@@ -2088,6 +2104,7 @@ private:
|
|||||||
bool readFFList( std::string const &line );
|
bool readFFList( std::string const &line );
|
||||||
bool readWWList( std::string const &line );
|
bool readWWList( std::string const &line );
|
||||||
bool readWiperList( std::string const &line );
|
bool readWiperList( std::string const &line );
|
||||||
|
bool readDimmerList(std::string const &line);
|
||||||
bool readLightsList( std::string const &Input );
|
bool readLightsList( std::string const &Input );
|
||||||
bool readCompressorList(std::string const &Input);
|
bool readCompressorList(std::string const &Input);
|
||||||
void BrakeValveDecode( std::string const &s ); //Q 20160719
|
void BrakeValveDecode( std::string const &s ); //Q 20160719
|
||||||
|
|||||||
@@ -8927,7 +8927,7 @@ bool startBPT;
|
|||||||
bool startMPT, startMPT0;
|
bool startMPT, startMPT0;
|
||||||
bool startRLIST, startUCLIST;
|
bool startRLIST, startUCLIST;
|
||||||
bool startDIZELMOMENTUMLIST, startDIZELV2NMAXLIST, startHYDROTCLIST, startPMAXLIST;
|
bool startDIZELMOMENTUMLIST, startDIZELV2NMAXLIST, startHYDROTCLIST, startPMAXLIST;
|
||||||
bool startDLIST, startFFLIST, startWWLIST, startWiperList;
|
bool startDLIST, startFFLIST, startWWLIST, startWiperList, startDimmerList;
|
||||||
bool startLIGHTSLIST;
|
bool startLIGHTSLIST;
|
||||||
bool startCOMPRESSORLIST;
|
bool startCOMPRESSORLIST;
|
||||||
int LISTLINE;
|
int LISTLINE;
|
||||||
@@ -9298,6 +9298,22 @@ bool TMoverParameters::readWiperList(std::string const& line)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TMoverParameters::readDimmerList(std::string const& line)
|
||||||
|
{
|
||||||
|
cParser parser(line);
|
||||||
|
if (false == parser.getTokens(3, false))
|
||||||
|
{
|
||||||
|
WriteLog("Read DimmerList: arguments missing in line " + std::to_string(LISTLINE + 1));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int idx = LISTLINE++;
|
||||||
|
|
||||||
|
dimPosition dps;
|
||||||
|
parser >> dps.isHighBeam >> dps.isDimmed >> dps.isOff;
|
||||||
|
dimPositions.push_back(dps);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// parsowanie WWList
|
// parsowanie WWList
|
||||||
bool TMoverParameters::readWWList( std::string const &line ) {
|
bool TMoverParameters::readWWList( std::string const &line ) {
|
||||||
|
|
||||||
@@ -9482,6 +9498,7 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
startFFLIST = false;
|
startFFLIST = false;
|
||||||
startWWLIST = false;
|
startWWLIST = false;
|
||||||
startWiperList = false;
|
startWiperList = false;
|
||||||
|
startDimmerList = false;
|
||||||
startLIGHTSLIST = false;
|
startLIGHTSLIST = false;
|
||||||
startCOMPRESSORLIST = false;
|
startCOMPRESSORLIST = false;
|
||||||
std::string file = TypeName + ".fiz";
|
std::string file = TypeName + ".fiz";
|
||||||
@@ -9589,6 +9606,13 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
startWiperList = false;
|
startWiperList = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (issection("endDimmerList", inputline))
|
||||||
|
{
|
||||||
|
// skonczylismy czytac liste konfiguracji pstryka od przyciemnienia
|
||||||
|
startBPT = false;
|
||||||
|
startDimmerList = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if( issection( "END-WWL", inputline ) ) {
|
if( issection( "END-WWL", inputline ) ) {
|
||||||
startBPT = false;
|
startBPT = false;
|
||||||
startWWLIST = false;
|
startWWLIST = false;
|
||||||
@@ -9895,6 +9919,16 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (issection("DimmerList:", inputline))
|
||||||
|
{
|
||||||
|
dimPositions.clear(); // uzywamy customowej listy
|
||||||
|
startBPT = false;
|
||||||
|
startDimmerList = true;
|
||||||
|
fizlines.emplace("DimmerList", inputline);
|
||||||
|
LoadFIZ_DimmerList(inputline);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if( issection( "LightsList:", inputline ) ) {
|
if( issection( "LightsList:", inputline ) ) {
|
||||||
startBPT = false;
|
startBPT = false;
|
||||||
@@ -9967,6 +10001,10 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
readWiperList(inputline);
|
readWiperList(inputline);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (true == startDimmerList)
|
||||||
|
{
|
||||||
|
readDimmerList(inputline);
|
||||||
|
}
|
||||||
if( true == startLIGHTSLIST ) {
|
if( true == startLIGHTSLIST ) {
|
||||||
readLightsList( inputline );
|
readLightsList( inputline );
|
||||||
continue;
|
continue;
|
||||||
@@ -9988,11 +10026,10 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
else
|
else
|
||||||
result = false;
|
result = false;
|
||||||
|
|
||||||
if (!modernContainOffPos)
|
// ustawiamy domyslna pozycje dimmera
|
||||||
modernDimmerState = 2; // jak nie ma opcji wylaczonej to niech sie odpali normalnie
|
|
||||||
if (!enableModernDimmer)
|
if (!enableModernDimmer)
|
||||||
{
|
{
|
||||||
modernDimmerState = 2;
|
modernDimmerPosition = modernDimmerDefaultPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteLog("CERROR: " + to_string(ConversionError) + ", SUCCES: " + to_string(result));
|
WriteLog("CERROR: " + to_string(ConversionError) + ", SUCCES: " + to_string(result));
|
||||||
@@ -11199,7 +11236,6 @@ void TMoverParameters::LoadFIZ_Switches( std::string const &Input ) {
|
|||||||
extract_value( UniversalResetButtonFlag[ 1 ], "RelayResetButton2", Input, "" );
|
extract_value( UniversalResetButtonFlag[ 1 ], "RelayResetButton2", Input, "" );
|
||||||
extract_value( UniversalResetButtonFlag[ 2 ], "RelayResetButton3", Input, "" );
|
extract_value( UniversalResetButtonFlag[ 2 ], "RelayResetButton3", Input, "" );
|
||||||
extract_value(enableModernDimmer, "ModernDimmer", Input, "");
|
extract_value(enableModernDimmer, "ModernDimmer", Input, "");
|
||||||
extract_value(modernContainOffPos, "ModernDimmerOffPosition", Input, "");
|
|
||||||
// pantograph presets
|
// pantograph presets
|
||||||
{
|
{
|
||||||
auto &presets { PantsPreset.first };
|
auto &presets { PantsPreset.first };
|
||||||
@@ -11329,6 +11365,12 @@ void TMoverParameters::LoadFIZ_WiperList(std::string const &Input)
|
|||||||
extract_value(WiperAngle, "Angle", Input, "");
|
extract_value(WiperAngle, "Angle", Input, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TMoverParameters::LoadFIZ_DimmerList(std::string const &Input)
|
||||||
|
{
|
||||||
|
extract_value(modernWpierListSize, "Size", Input, "");
|
||||||
|
extract_value(modernDimmerCanCycle, "Cycle", Input, "");
|
||||||
|
extract_value(modernDimmerDefaultPosition, "DefaultPos", Input, "");
|
||||||
|
}
|
||||||
void TMoverParameters::LoadFIZ_LightsList( std::string const &Input ) {
|
void TMoverParameters::LoadFIZ_LightsList( std::string const &Input ) {
|
||||||
|
|
||||||
extract_value( LightsPosNo, "Size", Input, "" );
|
extract_value( LightsPosNo, "Size", Input, "" );
|
||||||
|
|||||||
69
Train.cpp
69
Train.cpp
@@ -4890,35 +4890,48 @@ void TTrain::OnCommand_modernlightdimmerincrease(TTrain* Train, command_data con
|
|||||||
if (Command.action == GLFW_PRESS)
|
if (Command.action == GLFW_PRESS)
|
||||||
{
|
{
|
||||||
// update modern dimmer state
|
// update modern dimmer state
|
||||||
if (Train->mvOccupied->modernDimmerState < 4)
|
|
||||||
Train->mvOccupied->modernDimmerState++;
|
auto &dimPos = Train->mvOccupied->modernDimmerPosition;
|
||||||
Train->Dynamic()->SetLights();
|
auto dimCount = Train->mvOccupied->dimPositions.size();
|
||||||
|
if (dimPos + 1 < dimCount)
|
||||||
|
dimPos++;
|
||||||
|
else if (Train->mvOccupied->modernDimmerCanCycle)
|
||||||
|
dimPos = 0; // return to 0
|
||||||
|
else
|
||||||
|
return; // już na minimum i nie można cyklicznie
|
||||||
|
// update lightning
|
||||||
|
Train->Dynamic()->SetLights();
|
||||||
|
|
||||||
// visual feedback
|
// visual feedback
|
||||||
if (Train->ggModernLightDimSw.SubModel != nullptr)
|
if (Train->ggModernLightDimSw.SubModel != nullptr)
|
||||||
if (Train->mvOccupied->modernContainOffPos)
|
Train->ggModernLightDimSw.UpdateValue(dimPos, Train->dsbSwitch);
|
||||||
Train->ggModernLightDimSw.UpdateValue(Train->mvOccupied->modernDimmerState, Train->dsbSwitch);
|
|
||||||
else
|
|
||||||
Train->ggModernLightDimSw.UpdateValue(Train->mvOccupied->modernDimmerState - 1, Train->dsbSwitch);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void TTrain::OnCommand_modernlightdimmerdecrease(TTrain *Train, command_data const &Command)
|
void TTrain::OnCommand_modernlightdimmerdecrease(TTrain *Train, command_data const &Command)
|
||||||
{
|
{
|
||||||
if (!Train->mvOccupied->enableModernDimmer)
|
if (!Train->mvOccupied->enableModernDimmer)
|
||||||
return; // if modern dimmer is disabled, skip entire command
|
return; // jeśli dimmer jest wyłączony, olewamy
|
||||||
|
|
||||||
if (Command.action == GLFW_PRESS)
|
if (Command.action == GLFW_PRESS)
|
||||||
{
|
{
|
||||||
byte minPos = (Train->mvOccupied->modernContainOffPos) ? 0 : 1; // prevent switching to 0 if its not enabled
|
auto &dimPos = Train->mvOccupied->modernDimmerPosition;
|
||||||
// update modern dimmer state
|
auto dimCount = Train->mvOccupied->dimPositions.size();
|
||||||
if (Train->mvOccupied->modernDimmerState > minPos)
|
|
||||||
Train->mvOccupied->modernDimmerState--;
|
if (dimCount == 0)
|
||||||
Train->Dynamic()->SetLights();
|
return;
|
||||||
// visual feedback
|
|
||||||
|
if (dimPos > 0)
|
||||||
|
dimPos--;
|
||||||
|
else if (Train->mvOccupied->modernDimmerCanCycle)
|
||||||
|
dimPos = static_cast<int>(dimCount - 1); // ostatnia pozycja
|
||||||
|
else
|
||||||
|
return; // już na minimum i nie można cyklicznie
|
||||||
|
|
||||||
|
Train->Dynamic()->SetLights();
|
||||||
|
|
||||||
if (Train->ggModernLightDimSw.SubModel != nullptr)
|
if (Train->ggModernLightDimSw.SubModel != nullptr)
|
||||||
if (Train->mvOccupied->modernContainOffPos)
|
Train->ggModernLightDimSw.UpdateValue(dimPos, Train->dsbSwitch);
|
||||||
Train->ggModernLightDimSw.UpdateValue(Train->mvOccupied->modernDimmerState, Train->dsbSwitch);
|
}
|
||||||
else
|
|
||||||
Train->ggModernLightDimSw.UpdateValue(Train->mvOccupied->modernDimmerState - 1, Train->dsbSwitch);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTrain::OnCommand_redmarkertogglerearleft( TTrain *Train, command_data const &Command ) {
|
void TTrain::OnCommand_redmarkertogglerearleft( TTrain *Train, command_data const &Command ) {
|
||||||
@@ -5104,7 +5117,7 @@ void TTrain::OnCommand_headlightsdimtoggle( TTrain *Train, command_data const &C
|
|||||||
return;
|
return;
|
||||||
if( Command.action == GLFW_PRESS ) {
|
if( Command.action == GLFW_PRESS ) {
|
||||||
// only reacting to press, so the switch doesn't flip back and forth if key is held down
|
// only reacting to press, so the switch doesn't flip back and forth if key is held down
|
||||||
if (Train->DynamicObject->MoverParameters->modernDimmerState == 2)
|
if (Train->DynamicObject->MoverParameters->modernDimmerPosition == 0)
|
||||||
{
|
{
|
||||||
// turn on
|
// turn on
|
||||||
OnCommand_headlightsdimenable( Train, Command );
|
OnCommand_headlightsdimenable( Train, Command );
|
||||||
@@ -5136,8 +5149,7 @@ void TTrain::OnCommand_headlightsdimenable( TTrain *Train, command_data const &C
|
|||||||
|
|
||||||
Train->DynamicObject->DimHeadlights = true;
|
Train->DynamicObject->DimHeadlights = true;
|
||||||
*/
|
*/
|
||||||
WriteLog("Switch do 1");
|
Train->DynamicObject->MoverParameters->modernDimmerPosition = 1; // ustawiamy modern dimmer na flage przyciemnienia
|
||||||
Train->DynamicObject->MoverParameters->modernDimmerState = 1; // ustawiamy modern dimmer na flage przyciemnienia
|
|
||||||
Train->DynamicObject->RaLightsSet(Train->DynamicObject->MoverParameters->iLights[0],
|
Train->DynamicObject->RaLightsSet(Train->DynamicObject->MoverParameters->iLights[0],
|
||||||
Train->DynamicObject->MoverParameters->iLights[1]
|
Train->DynamicObject->MoverParameters->iLights[1]
|
||||||
); // aktualizacja swiatelek
|
); // aktualizacja swiatelek
|
||||||
@@ -5163,8 +5175,7 @@ void TTrain::OnCommand_headlightsdimdisable( TTrain *Train, command_data const &
|
|||||||
Train->DynamicObject->DimHeadlights = false;
|
Train->DynamicObject->DimHeadlights = false;
|
||||||
|
|
||||||
*/
|
*/
|
||||||
WriteLog("Switch do 2");
|
Train->DynamicObject->MoverParameters->modernDimmerPosition = 0; // ustawiamy modern dimmer na flage rozjasnienia
|
||||||
Train->DynamicObject->MoverParameters->modernDimmerState = 2; // ustawiamy modern dimmer na flage rozjasnienia
|
|
||||||
Train->DynamicObject->RaLightsSet(
|
Train->DynamicObject->RaLightsSet(
|
||||||
Train->DynamicObject->MoverParameters->iLights[0],
|
Train->DynamicObject->MoverParameters->iLights[0],
|
||||||
Train->DynamicObject->MoverParameters->iLights[1]
|
Train->DynamicObject->MoverParameters->iLights[1]
|
||||||
@@ -9937,10 +9948,8 @@ void TTrain::set_cab_controls( int const Cab ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ggModernLightDimSw.SubModel != nullptr) {
|
if (ggModernLightDimSw.SubModel != nullptr) {
|
||||||
if (mvOccupied->modernContainOffPos)
|
mvOccupied->modernDimmerPosition = mvOccupied->modernDimmerDefaultPosition;
|
||||||
ggModernLightDimSw.PutValue(mvOccupied->modernDimmerState);
|
ggModernLightDimSw.PutValue(mvOccupied->modernDimmerDefaultPosition);
|
||||||
else
|
|
||||||
ggModernLightDimSw.PutValue(mvOccupied->modernDimmerState - 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init separate buttons
|
// Init separate buttons
|
||||||
@@ -10081,8 +10090,8 @@ void TTrain::set_cab_controls( int const Cab ) {
|
|||||||
ggRightLightButton.PutValue( -1.f );
|
ggRightLightButton.PutValue( -1.f );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( 1 == DynamicObject->MoverParameters->modernDimmerState ) {
|
if( 1 == DynamicObject->MoverParameters->modernDimmerPosition ) {
|
||||||
ggDimHeadlightsButton.PutValue( 1.f );
|
ggDimHeadlightsButton.PutValue(DynamicObject->MoverParameters->modernDimmerPosition);
|
||||||
}
|
}
|
||||||
// cab lights
|
// cab lights
|
||||||
if( true == Cabine[Cab].bLightDim ) {
|
if( true == Cabine[Cab].bLightDim ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user