diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 6b67b0c912..d17c79bff4 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -462,11 +462,21 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelItemDatas SortSongPointerArrayByBPM( arraySongs ); break; case SORT_MOST_PLAYED: - arraySongs = SONGMAN->GetBestSongs(); + { + arraySongs.clear(); + + vector arrayAllSongs = SONGMAN->GetBestSongs(); + + // weed out songs that require more songs than are available + for (i=0; iGetNumStagesForSong(arrayAllSongs[i]) <= GAMESTATE->GetNumStagesLeft() ) + arraySongs.push_back(arrayAllSongs[i]); + if( arraySongs.size() > 30 ) arraySongs.erase(arraySongs.begin()+30, arraySongs.end()); bUseSections = false; break; + } case SORT_GRADE: SortSongPointerArrayByGrade( arraySongs ); break;