diff --git a/stepmania/src/SongUtil.cpp b/stepmania/src/SongUtil.cpp index 57065ebfe8..ee5b886a66 100644 --- a/stepmania/src/SongUtil.cpp +++ b/stepmania/src/SongUtil.cpp @@ -817,11 +817,24 @@ void SongUtil::GetPossibleSteps( const Song *pSong, vector &vOut ) GAMEMAN->GetCompatibleStyles( GAMESTATE->m_pCurGame, GAMESTATE->GetNumPlayersEnabled(), vpPossibleStyles ); else vpPossibleStyles.push_back( GAMESTATE->m_pCurStyle ); - set vStepsType; FOREACH( const Style*, vpPossibleStyles, s ) vStepsType.insert( (*s)->m_StepsType ); + // filter out hidden StepsTypes + const vector &vstToShow = CommonMetrics::STEPS_TYPES_TO_SHOW.GetValue(); + FOREACHS( StepsType, vStepsType, st ) + { + bool bShowThis = find( vstToShow.begin(), vstToShow.end(), *st ) != vstToShow.end(); + if( !bShowThis ) + { + set::iterator to_erase = st; + ++st; + vStepsType.erase( to_erase ); + --st; + } + } + FOREACHS( StepsType, vStepsType, st ) SongUtil::GetSteps( pSong, vOut, *st );