Only restart the options the first time BeginScreen is called. If you want the options restarted, call it explicitly. This combined with grouping of options screens allows for a much more intuitive options interface. Hunting for the one option you need is already hard enough, being forced to keep scrolling down every time you back out of one of the option screens is beyond annoying.
This commit is contained in:
@@ -182,6 +182,7 @@ void ScreenOptions::Init()
|
||||
m_framePage.AddChild( m_sprMore );
|
||||
|
||||
m_OptionRowType.Load( m_sName );
|
||||
m_bFirstTime = true;
|
||||
}
|
||||
|
||||
void ScreenOptions::InitMenu( const vector<OptionRowHandler*> &vHands )
|
||||
@@ -300,7 +301,11 @@ void ScreenOptions::BeginScreen()
|
||||
{
|
||||
ScreenWithMenuElements::BeginScreen();
|
||||
|
||||
RestartOptions();
|
||||
if( m_bFirstTime )
|
||||
{
|
||||
RestartOptions();
|
||||
m_bFirstTime = false;
|
||||
}
|
||||
|
||||
FOREACH_PlayerNumber( p )
|
||||
m_bGotAtLeastOneStartPressed[p] = false;
|
||||
|
||||
@@ -103,6 +103,7 @@ protected: // derived classes need access to these
|
||||
|
||||
int m_iFocusX[NUM_PLAYERS];
|
||||
bool m_bWasOnExit[NUM_PLAYERS];
|
||||
bool m_bFirstTime;
|
||||
|
||||
// TRICKY: People hold Start to get to PlayerOptions, then
|
||||
// the repeat events cause them to zip to the bottom. So, ignore
|
||||
|
||||
Reference in New Issue
Block a user