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:
Steve Checkoway
2006-09-01 08:19:44 +00:00
parent aa77643b3e
commit cc7e78d058
2 changed files with 7 additions and 1 deletions
+6 -1
View File
@@ -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;
+1
View File
@@ -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