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"
|
2004-05-20 03:50:42 +00:00
|
|
|
#include "RageLog.h"
|
2002-01-16 10:01:32 +00:00
|
|
|
|
2004-02-16 09:23:34 +00:00
|
|
|
CString GradeToThemedString( Grade g )
|
|
|
|
|
{
|
2004-02-22 03:06:54 +00:00
|
|
|
CString s = GradeToString(g);
|
|
|
|
|
if( !THEME->HasMetric("Grade",s) )
|
|
|
|
|
return "???";
|
|
|
|
|
return THEME->GetMetric( "Grade",s );
|
2004-02-16 09:23:34 +00:00
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
|
|
|
2004-03-13 10:48:15 +00:00
|
|
|
int iTier;
|
2004-05-20 20:43:34 +00:00
|
|
|
if( sscanf(sGrade.c_str(),"Tier%02d",&iTier) == 1 )
|
2004-03-13 10:48:15 +00:00
|
|
|
return (Grade)(iTier-1);
|
2004-01-20 03:32:48 +00:00
|
|
|
|
2004-05-20 03:50:42 +00:00
|
|
|
LOG->Warn( "Invalid grade: %s", sGrade.c_str() );
|
2004-01-20 03:32:48 +00:00
|
|
|
return GRADE_NO_DATA;
|
2002-02-02 05:11:12 +00:00
|
|
|
};
|
2004-01-20 03:32:48 +00:00
|
|
|
|