diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index a7b52ca450..0b62d856c4 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -125,25 +125,30 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti for( int r=0; rm_RowDef = OptionRows[r]; + Row &Row = *m_Rows[r]; + Row.m_RowDef = OptionRows[r]; for( int p=0; pm_iSelection[p] = 0; - - if( m_Rows[r]->m_RowDef.bOneChoiceForAllPlayers ) - for( int p=1; pm_iSelection[p] = m_Rows[r]->m_iSelection[0]; + { + vector &vbSelected = Row.m_vbSelected[p]; + vbSelected.resize( Row.m_RowDef.choices.size() ); + for( int j=0; jImportOptions(); + // Make all selections the same if bOneChoiceForAllPlayers { for( int r=0; rm_RowDef.bOneChoiceForAllPlayers ) for( int p=1; pm_iSelection[p] = m_Rows[r]->m_iSelection[0]; + Row.m_vbSelected[p] = m_Rows[r]->m_vbSelected[0]; } } @@ -261,7 +266,7 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti BitmapText *bt = new BitmapText; textItems.push_back( bt ); - const int iChoiceInRow = m_Rows[r]->m_iSelection[p]; + const int iChoiceInRow = row.GetOneSelection( (PlayerNumber)p ); bt->LoadFromFont( THEME->GetPathToF("ScreenOptions item") ); bt->SetText( optline.choices[iChoiceInRow] ); @@ -562,20 +567,25 @@ void ScreenOptions::PositionUnderlines() vector &vpUnderlines = row.m_Underline[p]; - if( row.m_bRowIsLong ) + const int iNumUnderlines = row.m_bRowIsLong ? 1 : vpUnderlines.size(); + + for( int i=0; i