diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index baea51a7e5..20645de44e 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -3616,7 +3616,9 @@ GradePercentTier04=0.800000 GradePercentTier05=0.650000 GradePercentTier06=0.450000 GradePercentTier07=-99999.000000 +GradeTier01IsAllW2s=false GradeTier02IsAllW2s=true +GradeTier02IsFullCombo=false NumGradeTiersUsed=7 [HighScore] diff --git a/stepmania/src/PlayerStageStats.cpp b/stepmania/src/PlayerStageStats.cpp index 3d2e01b058..f6e7a9b38f 100644 --- a/stepmania/src/PlayerStageStats.cpp +++ b/stepmania/src/PlayerStageStats.cpp @@ -13,6 +13,10 @@ #define GRADE_PERCENT_TIER(i) THEME->GetMetricF("PlayerStageStats",ssprintf("GradePercent%s",GradeToString((Grade)i).c_str())) #define GRADE_TIER02_IS_ALL_W2S THEME->GetMetricB("PlayerStageStats","GradeTier02IsAllW2s") +#define GRADE_TIER01_IS_ALL_W2S THEME->GetMetricB("PlayerStageStats","GradeTier01IsAllW2s") +#define GRADE_TIER02_IS_FULL_COMBO THEME->GetMetricB("PlayerStageStats","GradeTier02IsFullCombo") + +static ThemeMetric g_MinScoreToMaintainCombo( "Gameplay", "MinScoreToMaintainCombo" ); const float LESSON_PASS_THRESHOLD = 0.8f; @@ -202,6 +206,20 @@ Grade PlayerStageStats::GetGrade() const grade = max( grade, Grade_Tier03 ); } + if( GRADE_TIER01_IS_ALL_W2S ) + { + if( FullComboOfScore(TNS_W2) ) + return Grade_Tier01; + grade = max( grade, Grade_Tier02 ); + } + + if( GRADE_TIER02_IS_FULL_COMBO ) + { + if( FullComboOfScore(g_MinScoreToMaintainCombo) ) + return Grade_Tier02; + grade = max( grade, Grade_Tier03 ); + } + return grade; }