From b2a4b78522e1bb3c5225c83a214f6147b6e320df Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Fri, 15 Sep 2006 03:51:54 +0000 Subject: [PATCH] Allow each extra stage to have different Grade Tier passing requirements. --- stepmania/Themes/default/metrics.ini | 2 ++ stepmania/src/GameState.cpp | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index c33c1d3057..8b7f0ec279 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -4366,6 +4366,8 @@ UseNameBlacklist=0 DefaultSort=Group DefaultSong= AreStageModsForced=AreStageModsForced +GradeTierForExtra1=3 +GradeTierForExtra2=3 [ScreenMiniMenuContext] Fallback=ScreenMiniMenu diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 26324d6fd6..d3ce0efb6f 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -60,6 +60,9 @@ Song* GameState::GetDefaultSong() const return sid.ToSong(); } +static const ThemeMetric GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1"); +static const ThemeMetric GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2"); + static DynamicThemeMetric ARE_STAGE_MODS_FORCED( "GameState","AreStageModsForced" ); @@ -996,8 +999,10 @@ bool GameState::HasEarnedExtraStage() const if( m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_HARD && m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_CHALLENGE ) continue; /* not hard enough! */ - - if( STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= Grade_Tier03 ) + + // Grading tiers start with 1 on metrics, but 0 on enums. That is why you must subtract 1. --Jason Felds + if ( ( IsFinalStage() && STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= GRADE_TIER_FOR_EXTRA_1 - 1 ) || + ( IsExtraStage() && STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= GRADE_TIER_FOR_EXTRA_2 - 1 ) ) { bOnePassed = true; break;