new grading scale

This commit is contained in:
Chris Danford
2004-01-20 03:32:48 +00:00
parent 8f7f94a718
commit fca912cb16
15 changed files with 175 additions and 105 deletions
+30 -20
View File
@@ -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;
};