From ccab670ae8a4eb6ef70c5557eb0e15efe718e124 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 3 Feb 2006 05:36:16 +0000 Subject: [PATCH] add ScreenOptions::RestartOptions, to allow changing option rows without restarting the screen completely --- stepmania/src/ScreenOptions.cpp | 30 ++++++++++++++++++++---------- stepmania/src/ScreenOptions.h | 1 + 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index 539576b0bb..d92a0c4f6d 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -249,10 +249,9 @@ void ScreenOptions::InitMenu( const vector &vHands ) } } -void ScreenOptions::BeginScreen() +/* Call when option rows have been re-initialized. */ +void ScreenOptions::RestartOptions( bool bTweenIn ) { - ScreenWithMenuElements::BeginScreen(); - for( unsigned r=0; rAfterImportOptions( p ); } - ON_COMMAND( m_framePage ); FOREACH_PlayerNumber( p ) { m_iCurrentRow[p] = -1; m_iFocusX[p] = -1; m_bWasOnExit[p] = false; - m_bGotAtLeastOneStartPressed[p] = false; } // put focus on the first enabled row @@ -292,11 +289,6 @@ void ScreenOptions::BeginScreen() } } - FOREACH_PlayerNumber( p ) - { - m_sprLineHighlight[p]->SetHidden( !GAMESTATE->IsHumanPlayer(p) ); - m_Cursor[p].SetHidden( !GAMESTATE->IsHumanPlayer(p) ); - } // Hide highlight if no rows are enabled. FOREACH_HumanPlayer( p ) @@ -317,6 +309,24 @@ void ScreenOptions::BeginScreen() CHECKPOINT; } +void ScreenOptions::BeginScreen() +{ + ScreenWithMenuElements::BeginScreen(); + + RestartOptions( true ); + + FOREACH_PlayerNumber( p ) + m_bGotAtLeastOneStartPressed[p] = false; + + ON_COMMAND( m_framePage ); + + FOREACH_PlayerNumber( p ) + { + m_sprLineHighlight[p]->SetHidden( !GAMESTATE->IsHumanPlayer(p) ); + m_Cursor[p].SetHidden( !GAMESTATE->IsHumanPlayer(p) ); + } +} + void ScreenOptions::TweenOnScreen() { ScreenWithMenuElements::TweenOnScreen(); diff --git a/stepmania/src/ScreenOptions.h b/stepmania/src/ScreenOptions.h index 94030d613d..4ad52b2a56 100644 --- a/stepmania/src/ScreenOptions.h +++ b/stepmania/src/ScreenOptions.h @@ -54,6 +54,7 @@ protected: virtual void ImportOptions( int iRow, const vector &vpns ) = 0; virtual void ExportOptions( int iRow, const vector &vpns ) = 0; + void RestartOptions( bool bTweenIn ); void GetWidthXY( PlayerNumber pn, int iRow, int iChoiceOnRow, int &iWidthOut, int &iXOut, int &iYOut ) const; RString GetExplanationText( int iRow ) const; void PositionIcons();