From 544733b287f05caf508f5a041820feedc7e6a344 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 19 Jan 2006 01:52:18 +0000 Subject: [PATCH] don't have to import both players at once, so AfterImportOptions takes pn --- stepmania/src/OptionRow.cpp | 43 +++++++------------ stepmania/src/OptionRow.h | 2 +- stepmania/src/ScreenOptions.cpp | 3 +- .../src/ScreenOptionsEditCourseEntry.cpp | 2 +- 4 files changed, 20 insertions(+), 30 deletions(-) diff --git a/stepmania/src/OptionRow.cpp b/stepmania/src/OptionRow.cpp index 7bb11146c0..0b33a9f64c 100644 --- a/stepmania/src/OptionRow.cpp +++ b/stepmania/src/OptionRow.cpp @@ -437,26 +437,19 @@ void OptionRow::InitText() } /* After importing options, choose which item is focused. */ -void OptionRow::AfterImportOptions() +void OptionRow::AfterImportOptions( PlayerNumber pn ) { /* We load items for both players on start, since we don't know at that point * which players will be joined when we're displayed. Hide items for inactive * players. */ - FOREACH_PlayerNumber( p ) - { - if( m_pHand->m_Def.m_layoutType == LAYOUT_SHOW_ONE_IN_ROW && - !m_pHand->m_Def.m_bOneChoiceForAllPlayers ) - m_textItems[p]->SetHidden( !GAMESTATE->IsHumanPlayer(p) ); - } + if( m_pHand->m_Def.m_layoutType == LAYOUT_SHOW_ONE_IN_ROW && + !m_pHand->m_Def.m_bOneChoiceForAllPlayers ) + m_textItems[pn]->SetHidden( !GAMESTATE->IsHumanPlayer(pn) ); // Hide underlines for disabled players. - FOREACH_PlayerNumber( p ) - { - if( GAMESTATE->IsHumanPlayer(p) ) - continue; - for( unsigned c=0; cSetHidden( true ); - } + if( !GAMESTATE->IsHumanPlayer(pn) ) + for( unsigned c=0; cSetHidden( true ); // Make all selections the same if bOneChoiceForAllPlayers // Hack: we only import active players, so if only player 2 is imported, @@ -473,24 +466,19 @@ void OptionRow::AfterImportOptions() switch( m_pHand->m_Def.m_selectType ) { case SELECT_ONE: - FOREACH_PlayerNumber( p ) + /* Make sure the row actually has a selection. */ + int iSelection = GetOneSelection(pn, true); + if( iSelection == -1 ) { - /* Make sure the row actually has a selection. */ - int iSelection = GetOneSelection(p, true); - if( iSelection == -1 ) - { - ASSERT( !m_vbSelected[p].empty() ); - m_vbSelected[p][0] = true; - } + ASSERT( !m_vbSelected[pn].empty() ); + m_vbSelected[pn][0] = true; } break; } - FOREACH_PlayerNumber( p ) - ResetFocusFromSelection( p ); + ResetFocusFromSelection( pn ); - FOREACH_HumanPlayer( p ) - PositionUnderlines( p ); + PositionUnderlines( pn ); } void OptionRow::PositionUnderlines( PlayerNumber pn ) @@ -912,7 +900,8 @@ void OptionRow::Reload() FOREACH_HumanPlayer( p ) vpns.push_back( p ); ImportOptions( vpns ); - AfterImportOptions(); + FOREACH_HumanPlayer( p ) + AfterImportOptions( p ); // TODO: Nothing uses this yet and it causes skips when changing options. //if( m_pHand->m_Def.m_bExportOnChange ) diff --git a/stepmania/src/OptionRow.h b/stepmania/src/OptionRow.h index dafe8887ad..35379f7d78 100644 --- a/stepmania/src/OptionRow.h +++ b/stepmania/src/OptionRow.h @@ -143,7 +143,7 @@ public: int ExportOptions( const vector &vpns, bool bRowHasFocus[NUM_PLAYERS] ); void InitText(); - void AfterImportOptions(); + void AfterImportOptions( PlayerNumber pn ); void ChoicesChanged(); void PositionUnderlines( PlayerNumber pn ); diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index be4034b598..ac9ba60120 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -263,7 +263,8 @@ void ScreenOptions::BeginScreen() vpns.push_back( p ); this->ImportOptions( r, vpns ); - pRow->AfterImportOptions(); + FOREACH_HumanPlayer( p ) + pRow->AfterImportOptions( p ); } ON_COMMAND( m_framePage ); diff --git a/stepmania/src/ScreenOptionsEditCourseEntry.cpp b/stepmania/src/ScreenOptionsEditCourseEntry.cpp index a1031b87a0..9804ac1428 100644 --- a/stepmania/src/ScreenOptionsEditCourseEntry.cpp +++ b/stepmania/src/ScreenOptionsEditCourseEntry.cpp @@ -265,7 +265,7 @@ void ScreenOptionsEditCourseEntry::AfterChangeValueInRow( int iRow, PlayerNumber OptionRow &row = *m_pRows[ROW_SONG]; row.Reload(); ImportOptions( ROW_SONG, vpns ); - row.AfterImportOptions(); + row.AfterImportOptions( PLAYER_1 ); } break; }