diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 3017c33891..179b215f89 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -874,12 +874,17 @@ void ScreenSelectMusic::AfterMusicChange() { if( !GAMESTATE->IsPlayerEnabled( PlayerNumber(p) ) ) continue; + + /* Find the closest match to the user's preferred difficulty. */ + int CurDifference = -1; for( unsigned i=0; iGetDifficulty() == GAMESTATE->m_PreferredDifficulty[p] ) + int Diff = abs(m_arrayNotes[p][i]->GetDifficulty() - GAMESTATE->m_PreferredDifficulty[p]); + + if( CurDifference == -1 || Diff < CurDifference ) { m_iSelection[p] = i; - break; + CurDifference = Diff; } }