fix grade calculation. duh.
This commit is contained in:
@@ -178,17 +178,24 @@ Grade StageStats::GetGrade( PlayerNumber pn ) const
|
|||||||
Possible += iHoldNoteScores[pn][i] * HoldScoreValues[HNS_OK];
|
Possible += iHoldNoteScores[pn][i] * HoldScoreValues[HNS_OK];
|
||||||
}
|
}
|
||||||
|
|
||||||
float fPercent = Actual / Possible;
|
LOG->Trace( "GetGrade: Actual: %f, Possible: %f", Actual, Possible );
|
||||||
LOG->Trace( "GetGrade: Actual: %f, Possible: %f, Percent: %f", Actual, Possible, fPercent );
|
|
||||||
|
|
||||||
// calculate grade
|
|
||||||
|
|
||||||
#define ROUNDING_ERROR 0.00001f
|
#define ROUNDING_ERROR 0.00001f
|
||||||
Grade grade = (Grade)(NUM_GRADE_TIERS-1); // lowest non-failing grade
|
Grade grade = (Grade)(NUM_GRADE_TIERS-1); // lowest non-failing grade
|
||||||
|
|
||||||
for( int g=0; g<NUM_GRADES; g++ )
|
if( Possible == 0 )
|
||||||
|
return grade;
|
||||||
|
|
||||||
|
float fPercent = Actual / Possible;
|
||||||
|
|
||||||
|
for( int g=0; g<NUM_GRADE_TIERS; g++ )
|
||||||
|
{
|
||||||
if( fPercent >= PREFSMAN->m_fGradePercentTier[g]-ROUNDING_ERROR )
|
if( fPercent >= PREFSMAN->m_fGradePercentTier[g]-ROUNDING_ERROR )
|
||||||
|
{
|
||||||
grade = (Grade)g;
|
grade = (Grade)g;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( PREFSMAN->m_bGradeTier02IsAllPerfects &&
|
if( PREFSMAN->m_bGradeTier02IsAllPerfects &&
|
||||||
iTapNoteScores[pn][TNS_PERFECT] > 0 &&
|
iTapNoteScores[pn][TNS_PERFECT] > 0 &&
|
||||||
@@ -200,6 +207,8 @@ Grade StageStats::GetGrade( PlayerNumber pn ) const
|
|||||||
iHoldNoteScores[pn][HNS_NG] == 0 )
|
iHoldNoteScores[pn][HNS_NG] == 0 )
|
||||||
return GRADE_TIER_2;
|
return GRADE_TIER_2;
|
||||||
|
|
||||||
|
LOG->Trace( "GetGrade: Grade: %s", GradeToString(grade).c_str() );
|
||||||
|
|
||||||
return grade;
|
return grade;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user