new grading scale
This commit is contained in:
+30
-20
@@ -11,21 +11,17 @@
|
||||
*/
|
||||
|
||||
#include "Grade.h"
|
||||
#include "RageUtil.h"
|
||||
|
||||
CString GradeToString( Grade g )
|
||||
{
|
||||
// string is meant to be human readable
|
||||
switch( g )
|
||||
{
|
||||
case GRADE_AAAA: return "AAAA";
|
||||
case GRADE_AAA: return "AAA";
|
||||
case GRADE_AA: return "AA";
|
||||
case GRADE_A: return "A";
|
||||
case GRADE_B: return "B";
|
||||
case GRADE_C: return "C";
|
||||
case GRADE_D: return "D";
|
||||
case GRADE_E: return "E";
|
||||
case GRADE_NO_DATA: return "N";
|
||||
default: ASSERT( false ); return "N";
|
||||
case GRADE_NO_DATA: return "NoData";
|
||||
case GRADE_FAILED: return "Failed";
|
||||
default:
|
||||
return ssprintf("%02d",g);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -33,14 +29,28 @@ Grade StringToGrade( const CString &sGrade )
|
||||
{
|
||||
CString s = sGrade;
|
||||
s.MakeUpper();
|
||||
if ( s == "AAAA" ) return GRADE_AAAA;
|
||||
else if( s == "AAA" ) return GRADE_AAA;
|
||||
else if( s == "AA" ) return GRADE_AA;
|
||||
else if( s == "A" ) return GRADE_A;
|
||||
else if( s == "B" ) return GRADE_B;
|
||||
else if( s == "C" ) return GRADE_C;
|
||||
else if( s == "D" ) return GRADE_D;
|
||||
else if( s == "E" ) return GRADE_E;
|
||||
else if( s == "N" ) return GRADE_NO_DATA;
|
||||
else ASSERT( false ); return GRADE_NO_DATA; // invalid grade string
|
||||
|
||||
// letters for backward compatibility
|
||||
if ( s == "AAAA" ) return GRADE_TIER_1;
|
||||
else if( s == "AAA" ) return GRADE_TIER_2;
|
||||
else if( s == "AA" ) return GRADE_TIER_3;
|
||||
else if( s == "A" ) return GRADE_TIER_4;
|
||||
else if( s == "B" ) return GRADE_TIER_5;
|
||||
else if( s == "C" ) return GRADE_TIER_6;
|
||||
else if( s == "D" ) return GRADE_TIER_7;
|
||||
else if( s == "E" ) return GRADE_FAILED;
|
||||
else if( s == "FAILED" ) return GRADE_FAILED;
|
||||
else if( s == "NODATA" ) return GRADE_NO_DATA;
|
||||
|
||||
#define MY_IS_DIGIT( c ) (c>='0'&&c<='9')
|
||||
|
||||
// If the string is a two digit number...
|
||||
if( s.length()==2 && MY_IS_DIGIT(s[0]) && MY_IS_DIGIT(s[1]) )
|
||||
{
|
||||
return (Grade)atoi(s);
|
||||
}
|
||||
|
||||
ASSERT(0);
|
||||
return GRADE_NO_DATA;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user