diff --git a/Driver.cpp b/Driver.cpp index 1269bcf3..e350979f 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -5704,6 +5704,7 @@ void TController::TakeControl( bool const Aidriver, bool const Forcevehiclecheck { // teraz AI prowadzi AIControllFlag = AIdriver; pVehicle->Controller = AIdriver; + control_lights(); // reinicjalizacja swiatel mvOccupied->CabActivisation(true); iDirection = 0; // kierunek jazdy trzeba dopiero zgadnąć TableClear(); // ponowne utworzenie tabelki, bo człowiek mógł pojechać niezgodnie z sygnałami @@ -5740,6 +5741,8 @@ void TController::TakeControl( bool const Aidriver, bool const Forcevehiclecheck } else { // a teraz użytkownik + if (!is_train() || !is_car()) // gasimy swiatla jesli przejmujemy odstawione + pVehicle->RaLightsSet(0, 0); AIControllFlag = Humandriver; pVehicle->Controller = Humandriver; if( eAction == TAction::actSleep ) { diff --git a/DynObj.cpp b/DynObj.cpp index a1a23382..7d4c6d57 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -7094,39 +7094,43 @@ void TDynamicObject::RaLightsSet(int head, int rear) MoverParameters->iLights[ vehicleend ] = ( head & iInventory[ vehicleend ] ); 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 - switch (MoverParameters->modernDimmerState) - { - case 0: - // wylaczone - MoverParameters->iLights[vehicleend] &= 0 | light::rearendsignals; // zostawiamy tylko tabliczki jesli sa - HighBeamLights = 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; + if (Controller == Humandriver) { + switch (MoverParameters->modernDimmerState) + { + case 0: + // wylaczone + MoverParameters->iLights[vehicleend] &= 0 | light::rearendsignals; // zostawiamy tylko tabliczki jesli sa + HighBeamLights = 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; + } } }