diff --git a/stepmania/src/DifficultyList.cpp b/stepmania/src/DifficultyList.cpp index b36c6cacce..b50a4f8199 100644 --- a/stepmania/src/DifficultyList.cpp +++ b/stepmania/src/DifficultyList.cpp @@ -18,6 +18,12 @@ REGISTER_ACTOR_CLASS( DifficultyList ) DifficultyList::DifficultyList() { m_bShown = true; + + FOREACH_ENUM( PlayerNumber, pn ) + { + SubscribeToMessage( (MessageID)(Message_CurrentStepsP1Changed+pn) ); + SubscribeToMessage( (MessageID)(Message_CurrentTrailP1Changed+pn) ); + } } DifficultyList::~DifficultyList() @@ -356,6 +362,19 @@ void DifficultyList::Hide() COMMAND( m_Cursors[pn], "Hide" ); } +void DifficultyList::HandleMessage( const Message &msg ) +{ + FOREACH_ENUM( PlayerNumber, pn ) + { + if( msg.GetName() == MessageIDToString((MessageID)(Message_CurrentStepsP1Changed+pn)) || + msg.GetName() == MessageIDToString((MessageID)(Message_CurrentTrailP1Changed+pn)) ) + SetFromGameState(); + } + + ActorFrame::HandleMessage(msg); +} + + // lua start #include "LuaBinding.h" diff --git a/stepmania/src/DifficultyList.h b/stepmania/src/DifficultyList.h index c3b822df8c..22e1e778b2 100644 --- a/stepmania/src/DifficultyList.h +++ b/stepmania/src/DifficultyList.h @@ -17,6 +17,8 @@ public: virtual DifficultyList *Copy() const; virtual void LoadFromNode( const XNode* pNode ); + void HandleMessage( const Message &msg ); + void SetFromGameState(); void TweenOnScreen(); void TweenOffScreen();