File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed
Quaver.API/Maps/Processors/Difficulty/Rulesets/Keys Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -556,12 +556,22 @@ private float CalculateOverallDifficulty()
556556 var mapStart = StrainSolverData . Min ( s => s . StartTime ) ;
557557 var mapEnd = StrainSolverData . Max ( s => Math . Max ( s . StartTime , s . EndTime ) ) ;
558558
559+ var l = 0 ;
560+ var r = 0 ;
561+ while ( l < StrainSolverData . Count && StrainSolverData [ l ] . StartTime < mapStart )
562+ l ++ ;
559563 for ( var i = mapStart ; i < mapEnd ; i += binSize )
560564 {
561- var valuesInBin = StrainSolverData . Where ( s => s . StartTime >= i && s . StartTime < i + binSize ) . ToList ( ) ;
565+ while ( r < StrainSolverData . Count - 1 && StrainSolverData [ r + 1 ] . StartTime < i + binSize )
566+ r ++ ;
567+ if ( l >= StrainSolverData . Count )
568+ break ;
569+
570+ var valuesInBin = StrainSolverData . GetRange ( l , r - l + 1 ) ;
562571 var averageRating = valuesInBin . Count > 0 ? valuesInBin . Average ( s => s . TotalStrainValue ) : 0 ;
563572
564573 bins . Add ( averageRating ) ;
574+ l = r + 1 ;
565575 }
566576
567577 if ( ! bins . Any ( strain => strain > 0 ) ) return 0 ;
You can’t perform that action at this time.
0 commit comments