2003-02-16 04:01:45 +00:00
|
|
|
#include "global.h"
|
2002-01-16 10:01:32 +00:00
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
2002-03-19 07:09:49 +00:00
|
|
|
Class: Grade
|
2002-01-16 10:01:32 +00:00
|
|
|
|
2002-03-19 07:09:49 +00:00
|
|
|
Desc: See header.
|
2002-01-16 10:01:32 +00:00
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
2002-03-19 07:09:49 +00:00
|
|
|
Chris Danford
|
2002-01-16 10:01:32 +00:00
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "Grade.h"
|
2004-01-20 03:32:48 +00:00
|
|
|
#include "RageUtil.h"
|
2004-02-16 09:23:34 +00:00
|
|
|
#include "ThemeManager.h"
|
2002-01-16 10:01:32 +00:00
|
|
|
|
2002-02-02 05:11:12 +00:00
|
|
|
CString GradeToString( Grade g )
|
|
|
|
|
{
|
2004-01-20 03:32:48 +00:00
|
|
|
// string is meant to be human readable
|
2002-02-02 05:11:12 +00:00
|
|
|
switch( g )
|
|
|
|
|
{
|
2004-01-20 03:32:48 +00:00
|
|
|
case GRADE_NO_DATA: return "NoData";
|
|
|
|
|
case GRADE_FAILED: return "Failed";
|
|
|
|
|
default:
|
2004-01-20 07:09:44 +00:00
|
|
|
return ssprintf("%02d",g+1);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2004-02-16 09:23:34 +00:00
|
|
|
CString GradeToThemedString( Grade g )
|
|
|
|
|
{
|
|
|
|
|
return THEME->GetMetric( "Grade",GradeToString(g) );
|
|
|
|
|
}
|
|
|
|
|
|
2004-01-20 07:09:44 +00:00
|
|
|
CString GradeToOldString( Grade g )
|
|
|
|
|
{
|
|
|
|
|
// string is meant to be human readable
|
|
|
|
|
switch( g )
|
|
|
|
|
{
|
|
|
|
|
case GRADE_TIER_1: return "AAAA";
|
|
|
|
|
case GRADE_TIER_2: return "AAA";
|
|
|
|
|
case GRADE_TIER_3: return "AA";
|
|
|
|
|
case GRADE_TIER_4: return "A";
|
|
|
|
|
case GRADE_TIER_5: return "B";
|
|
|
|
|
case GRADE_TIER_6: return "C";
|
|
|
|
|
case GRADE_TIER_7: return "D";
|
|
|
|
|
case GRADE_FAILED: return "E";
|
|
|
|
|
case GRADE_NO_DATA: return "N";
|
|
|
|
|
default: return "N";
|
2002-02-02 05:11:12 +00:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2002-03-30 20:00:13 +00:00
|
|
|
Grade StringToGrade( const CString &sGrade )
|
2002-02-02 05:11:12 +00:00
|
|
|
{
|
2002-03-30 20:00:13 +00:00
|
|
|
CString s = sGrade;
|
2002-02-02 05:11:12 +00:00
|
|
|
s.MakeUpper();
|
2004-01-20 03:32:48 +00:00
|
|
|
|
2004-01-20 07:09:44 +00:00
|
|
|
// for backward compatibility
|
2004-01-20 03:32:48 +00:00
|
|
|
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;
|
2004-01-20 07:09:44 +00:00
|
|
|
else if( s == "N" ) return GRADE_NO_DATA;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// new style
|
|
|
|
|
if ( s == "FAILED" ) return GRADE_FAILED;
|
2004-01-20 03:32:48 +00:00
|
|
|
else if( s == "NODATA" ) return GRADE_NO_DATA;
|
|
|
|
|
|
|
|
|
|
#define MY_IS_DIGIT( c ) (c>='0'&&c<='9')
|
|
|
|
|
|
2004-01-20 07:09:44 +00:00
|
|
|
if( s.length()==2 && MY_IS_DIGIT(s[0]) && MY_IS_DIGIT(s[1]) ) // if it's a two digit number...
|
|
|
|
|
return (Grade)(atoi(s)-1);
|
2004-01-20 03:32:48 +00:00
|
|
|
|
|
|
|
|
ASSERT(0);
|
|
|
|
|
return GRADE_NO_DATA;
|
2002-02-02 05:11:12 +00:00
|
|
|
};
|
2004-01-20 03:32:48 +00:00
|
|
|
|