add ScreenOptions::RestartOptions, to allow changing option rows
without restarting the screen completely
This commit is contained in:
@@ -249,10 +249,9 @@ void ScreenOptions::InitMenu( const vector<OptionRowHandler*> &vHands )
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenOptions::BeginScreen()
|
||||
/* Call when option rows have been re-initialized. */
|
||||
void ScreenOptions::RestartOptions( bool bTweenIn )
|
||||
{
|
||||
ScreenWithMenuElements::BeginScreen();
|
||||
|
||||
for( unsigned r=0; r<m_pRows.size(); r++ ) // foreach row
|
||||
{
|
||||
OptionRow *pRow = m_pRows[r];
|
||||
@@ -268,14 +267,12 @@ void ScreenOptions::BeginScreen()
|
||||
pRow->AfterImportOptions( 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();
|
||||
|
||||
Reference in New Issue
Block a user