@@ -296,7 +296,7 @@ void LLPanelEnvironmentInfo::refresh()
296
296
F32Hours dayoffset (mCurrentEnvironment ->mDayOffset );
297
297
298
298
if (dayoffset.value () > 12 .0f )
299
- dayoffset -= F32Hours ( 24.0 ) ;
299
+ dayoffset -= daylength ;
300
300
301
301
mSliderDayLength ->setValue (daylength.value ());
302
302
mSliderDayOffset ->setValue (dayoffset.value ());
@@ -723,6 +723,11 @@ void LLPanelEnvironmentInfo::onSldDayLengthChanged(F32 value)
723
723
F32Hours daylength (value);
724
724
725
725
mCurrentEnvironment ->mDayLength = daylength;
726
+ F32 offset = (F32)mSliderDayOffset ->getValue ().asReal ();
727
+ if (offset <= 0 .0f )
728
+ {
729
+ onSldDayOffsetChanged (offset);
730
+ }
726
731
setDirtyFlag (DIRTY_FLAG_DAYLENGTH);
727
732
728
733
udpateApparentTimeOfDay ();
@@ -736,7 +741,8 @@ void LLPanelEnvironmentInfo::onSldDayOffsetChanged(F32 value)
736
741
F32Hours dayoffset (value);
737
742
738
743
if (dayoffset.value () <= 0 .0f )
739
- dayoffset += F32Hours (24.0 );
744
+ // if day cycle is 5 hours long, we want -1h offset to result in 4h
745
+ dayoffset += mCurrentEnvironment ->mDayLength ;
740
746
741
747
mCurrentEnvironment ->mDayOffset = dayoffset;
742
748
setDirtyFlag (DIRTY_FLAG_DAYOFFSET);
@@ -929,7 +935,7 @@ void LLPanelEnvironmentInfo::udpateApparentTimeOfDay()
929
935
{
930
936
static const F32 SECONDSINDAY (24.0 * 60.0 * 60.0 );
931
937
932
- if ((!mCurrentEnvironment ) || (mCurrentEnvironment ->mDayLength .value () < 1.0 ) || ( mCurrentEnvironment -> mDayOffset . value () < 1.0 ) )
938
+ if ((!mCurrentEnvironment ) || (mCurrentEnvironment ->mDayLength .value () < 1.0 ))
933
939
{
934
940
mLabelApparentTime ->setVisible (false );
935
941
return ;
0 commit comments