refresh icons per-row, per-player

This commit is contained in:
Chris Danford
2005-03-13 02:25:33 +00:00
parent 0ab7c031bc
commit fbaaf61313
4 changed files with 44 additions and 44 deletions
+12 -7
View File
@@ -267,13 +267,12 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
PositionItems(); PositionItems();
PositionAllUnderlines(); PositionAllUnderlines();
PositionIcons(); PositionIcons();
RefreshIcons(); RefreshAllIcons();
PositionCursors(); PositionCursors();
UpdateEnabledDisabled(); UpdateEnabledDisabled();
{
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
OnChange( p ); OnChange( p );
}
CHECKPOINT; CHECKPOINT;
@@ -391,11 +390,17 @@ void ScreenOptions::PositionIcons()
} }
} }
void ScreenOptions::RefreshIcons() void ScreenOptions::RefreshIcons( int row, PlayerNumber pn )
{ {
// handled by ScreenOptionsMaster // overridden by ScreenOptionsMaster
} }
void ScreenOptions::RefreshAllIcons()
{
FOREACH_HumanPlayer( p )
for( unsigned r=0; r<m_Rows.size(); ++r )
this->RefreshIcons( r, p );
}
void ScreenOptions::PositionCursors() void ScreenOptions::PositionCursors()
{ {
@@ -667,7 +672,7 @@ void ScreenOptions::OnChange( PlayerNumber pn )
/* Do positioning. */ /* Do positioning. */
PositionUnderlines( iCurRow, pn ); PositionUnderlines( iCurRow, pn );
RefreshIcons(); RefreshIcons( iCurRow, pn );
PositionIcons(); PositionIcons();
UpdateEnabledDisabled(); UpdateEnabledDisabled();
@@ -827,7 +832,7 @@ void ScreenOptions::MenuStart( PlayerNumber pn, const InputEventType selectType
m_SoundToggleOff.Play(); m_SoundToggleOff.Play();
PositionUnderlines( iCurRow, pn ); PositionUnderlines( iCurRow, pn );
RefreshIcons(); RefreshIcons( iCurRow, pn );
if( row.GetFirstItemGoesDown() ) if( row.GetFirstItemGoesDown() )
{ {
+2 -1
View File
@@ -43,7 +43,8 @@ protected:
void PositionUnderlines( int row, PlayerNumber pn ); void PositionUnderlines( int row, PlayerNumber pn );
void PositionAllUnderlines(); void PositionAllUnderlines();
void PositionIcons(); void PositionIcons();
virtual void RefreshIcons(); virtual void RefreshIcons( int row, PlayerNumber pn );
void RefreshAllIcons();
void PositionCursors(); void PositionCursors();
void PositionItems(); void PositionItems();
void TweenCursor( PlayerNumber pn ); void TweenCursor( PlayerNumber pn );
+7 -13
View File
@@ -185,20 +185,16 @@ void ScreenOptionsMaster::GoToPrevScreen()
} }
} }
void ScreenOptionsMaster::RefreshIcons() void ScreenOptionsMaster::RefreshIcons( int r, PlayerNumber pn )
{ {
FOREACH_HumanPlayer( p ) if( m_Rows[r]->GetRowType() == OptionRow::ROW_EXIT )
{ return; // skip
for( unsigned i=0; i<m_Rows.size(); ++i ) // foreach options line
{
if( m_Rows[i]->GetRowType() == OptionRow::ROW_EXIT )
continue; // skip
OptionRow &row = *m_Rows[i]; OptionRow &row = *m_Rows[r];
const OptionRowDefinition &def = row.GetRowDef(); const OptionRowDefinition &def = row.GetRowDef();
// find first selection and whether multiple are selected // find first selection and whether multiple are selected
int iFirstSelection = row.GetOneSelection( p, true ); int iFirstSelection = row.GetOneSelection( pn, true );
// set icon name // set icon name
CString sIcon; CString sIcon;
@@ -209,7 +205,7 @@ void ScreenOptionsMaster::RefreshIcons()
} }
else if( iFirstSelection != -1 ) else if( iFirstSelection != -1 )
{ {
const OptionRowHandler *pHand = OptionRowHandlers[i]; const OptionRowHandler *pHand = OptionRowHandlers[r];
sIcon = pHand->GetIconText( def, iFirstSelection+(m_OptionsNavigation==NAV_TOGGLE_THREE_KEY?-1:0) ); sIcon = pHand->GetIconText( def, iFirstSelection+(m_OptionsNavigation==NAV_TOGGLE_THREE_KEY?-1:0) );
} }
@@ -218,9 +214,7 @@ void ScreenOptionsMaster::RefreshIcons()
if( def.bOneChoiceForAllPlayers ) if( def.bOneChoiceForAllPlayers )
sIcon = ""; sIcon = "";
LoadOptionIcon( p, i, sIcon ); LoadOptionIcon( pn, r, sIcon );
}
}
} }
void ScreenOptionsMaster::HandleScreenMessage( const ScreenMessage SM ) void ScreenOptionsMaster::HandleScreenMessage( const ScreenMessage SM )
+1 -1
View File
@@ -30,7 +30,7 @@ protected:
virtual void GoToNextScreen(); virtual void GoToNextScreen();
virtual void GoToPrevScreen(); virtual void GoToPrevScreen();
virtual void RefreshIcons(); virtual void RefreshIcons( int row, PlayerNumber pn );
ThemeMetric<bool> PLAY_MUSIC; ThemeMetric<bool> PLAY_MUSIC;
}; };