Allow each extra stage to have different Grade Tier passing requirements.

This commit is contained in:
Jason Felds
2006-09-15 03:51:54 +00:00
parent 234e9e0a0d
commit b2a4b78522
2 changed files with 9 additions and 2 deletions
+2
View File
@@ -4366,6 +4366,8 @@ UseNameBlacklist=0
DefaultSort=Group
DefaultSong=
AreStageModsForced=AreStageModsForced
GradeTierForExtra1=3
GradeTierForExtra2=3
[ScreenMiniMenuContext]
Fallback=ScreenMiniMenu
+7 -2
View File
@@ -60,6 +60,9 @@ Song* GameState::GetDefaultSong() const
return sid.ToSong();
}
static const ThemeMetric<int> GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1");
static const ThemeMetric<int> GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2");
static DynamicThemeMetric<bool> 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;