diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index c614f2afa1..652ed922a9 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -36,6 +36,7 @@ GroupedScreens= CodeNames="" CancelCancelCommand= ShowCoinsAndCredits=true +LightsMode=nil [ModeSwitcher] PrevModeX=-200 diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index d1ed410f08..3c1c7d032c 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -35,6 +35,7 @@ void Screen::Init() ALLOW_OPERATOR_MENU_BUTTON.Load( m_sName, "AllowOperatorMenuButton" ); REPEAT_RATE.Load( m_sName, "RepeatRate" ); REPEAT_DELAY.Load( m_sName, "RepeatDelay" ); + LIGHTS_MODE.Load( m_sName, "LightsMode" ); m_Codes.Load( m_sName ); @@ -216,6 +217,10 @@ void Screen::HandleScreenMessage( const ScreenMessage SM ) INPUTFILTER->SetRepeatRate( REPEAT_RATE ); if( REPEAT_DELAY != -1.0f ) INPUTFILTER->SetRepeatDelay( REPEAT_DELAY ); + + LightsMode lm = LIGHTS_MODE; + if( lm != LightsMode_Invalid ) // leave alone + LIGHTSMAN->SetLightsMode( lm ); } else if( SM == SM_LoseFocus ) { diff --git a/stepmania/src/Screen.h b/stepmania/src/Screen.h index 4918b62ea2..9c97d16b0c 100644 --- a/stepmania/src/Screen.h +++ b/stepmania/src/Screen.h @@ -10,6 +10,7 @@ #include "PlayerNumber.h" #include "InputQueue.h" #include "CodeSet.h" +#include "LightsManager.h" class InputEventPlus; class Screen; @@ -78,6 +79,7 @@ protected: ThemeMetric ALLOW_OPERATOR_MENU_BUTTON; ThemeMetric REPEAT_RATE; ThemeMetric REPEAT_DELAY; + ThemeMetric LIGHTS_MODE; // If left blank, the NextScreen metric will be used. RString m_sNextScreen;