use mixed case values for enum Grade so that enum matches strings matches Lua

This commit is contained in:
Chris Danford
2005-08-14 11:38:31 +00:00
parent b1010041a2
commit 70d1f0eadb
16 changed files with 116 additions and 116 deletions
@@ -114,7 +114,7 @@ function ScreenBranchNetAfterEval()
end
function SelectEndingScreen()
if GetBestFinalGrade() >= GRADE_TIER03 then return "ScreenMusicScroll" end
if GetBestFinalGrade() >= Grade_Tier03 then return "ScreenMusicScroll" end
return "ScreenCredits"
end
+1 -1
View File
@@ -612,7 +612,7 @@ static HighScore MakeRandomHighScore( float fPercentDP )
{
HighScore hs;
hs.SetName( "FAKE" );
hs.SetGrade( (Grade)SCALE( rand()%5, 0, 4, GRADE_TIER01, GRADE_TIER05 ) );
hs.SetGrade( (Grade)SCALE( rand()%5, 0, 4, Grade_Tier01, Grade_Tier05 ) );
hs.SetScore( rand()%100*1000 );
hs.SetPercentDP( fPercentDP );
hs.SetSurviveSeconds( randomf(30.0f, 100.0f) );
+5 -5
View File
@@ -949,7 +949,7 @@ bool GameState::HasEarnedExtraStage() const
if( PREFSMAN->m_bPickExtraStage && this->IsExtraStage() && !this->m_bAllow2ndExtraStage )
continue;
if( STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= GRADE_TIER03 )
if( STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= Grade_Tier03 )
return true;
}
}
@@ -1464,7 +1464,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.Type = RankingFeat::CATEGORY;
feat.Feat = ssprintf("MR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) );
feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA;
feat.grade = Grade_NoData;
feat.iScore = hs.GetScore();
feat.fPercentDP = hs.GetPercentDP();
asFeatsOut.push_back( feat );
@@ -1487,7 +1487,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.Type = RankingFeat::CATEGORY;
feat.Feat = ssprintf("PR #%d in Type %c (%d)", j+1, 'A'+rc, stats.GetAverageMeter(pn) );
feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA;
feat.grade = Grade_NoData;
feat.iScore = hs.GetScore();
feat.fPercentDP = hs.GetPercentDP();
asFeatsOut.push_back( feat );
@@ -1524,7 +1524,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
if( cd != DIFFICULTY_MEDIUM )
feat.Feat += " " + CourseDifficultyToThemedString(cd);
feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA;
feat.grade = Grade_NoData;
feat.iScore = hs.GetScore();
feat.fPercentDP = hs.GetPercentDP();
if( pCourse->HasBanner() )
@@ -1548,7 +1548,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeat> &asFeatsOu
feat.pCourse = pCourse;
feat.Feat = ssprintf("PR #%d in %s", i+1, pCourse->GetDisplayFullTitle().c_str() );
feat.pStringToFill = hs.GetNameMutable();
feat.grade = GRADE_NO_DATA;
feat.grade = Grade_NoData;
feat.iScore = hs.GetScore();
feat.fPercentDP = hs.GetPercentDP();
if( pCourse->HasBanner() )
+23 -24
View File
@@ -22,15 +22,15 @@ CString GradeToOldString( Grade g )
// string is meant to be human readable
switch( g )
{
case GRADE_TIER01: return "AAAA";
case GRADE_TIER02: return "AAA";
case GRADE_TIER03: return "AA";
case GRADE_TIER04: return "A";
case GRADE_TIER05: return "B";
case GRADE_TIER06: return "C";
case GRADE_TIER07: return "D";
case GRADE_FAILED: return "E";
case GRADE_NO_DATA: return "N";
case Grade_Tier01: return "AAAA";
case Grade_Tier02: return "AAA";
case Grade_Tier03: return "AA";
case Grade_Tier04: return "A";
case Grade_Tier05: return "B";
case Grade_Tier06: return "C";
case Grade_Tier07: return "D";
case Grade_Failed: return "E";
case Grade_NoData: return "N";
default: return "N";
}
};
@@ -41,27 +41,27 @@ Grade StringToGrade( const CString &sGrade )
s.MakeUpper();
// for backward compatibility
if ( s == "AAAA" ) return GRADE_TIER01;
else if( s == "AAA" ) return GRADE_TIER02;
else if( s == "AA" ) return GRADE_TIER03;
else if( s == "A" ) return GRADE_TIER04;
else if( s == "B" ) return GRADE_TIER05;
else if( s == "C" ) return GRADE_TIER06;
else if( s == "D" ) return GRADE_TIER07;
else if( s == "E" ) return GRADE_FAILED;
else if( s == "N" ) return GRADE_NO_DATA;
if ( s == "AAAA" ) return Grade_Tier01;
else if( s == "AAA" ) return Grade_Tier02;
else if( s == "AA" ) return Grade_Tier03;
else if( s == "A" ) return Grade_Tier04;
else if( s == "B" ) return Grade_Tier05;
else if( s == "C" ) return Grade_Tier06;
else if( s == "D" ) return Grade_Tier07;
else if( s == "E" ) return Grade_Failed;
else if( s == "N" ) return Grade_NoData;
// new style
if ( s == "FAILED" ) return GRADE_FAILED;
else if( s == "NODATA" ) return GRADE_NO_DATA;
if ( s == "FAILED" ) return Grade_Failed;
else if( s == "NODATA" ) return Grade_NoData;
int iTier;
if( sscanf(sGrade.c_str(),"Tier%02d",&iTier) == 1 )
return (Grade)(iTier-1);
LOG->Warn( "Invalid grade: %s", sGrade.c_str() );
return GRADE_NO_DATA;
return Grade_NoData;
};
static void LuaGrade(lua_State* L)
@@ -69,10 +69,9 @@ static void LuaGrade(lua_State* L)
FOREACH_Grade( g )
{
CString s = GradeToString(g);
s.MakeUpper();
LUA->SetGlobal( "GRADE_"+s, g );
LUA->SetGlobal( "Grade_"+s, g );
}
LUA->SetGlobal( "NUM_GRADES", NUM_GRADES );
LUA->SetGlobal( "NUM_Grade", NUM_Grade );
}
REGISTER_WITH_LUA_FUNCTION( LuaGrade );
+35 -34
View File
@@ -5,52 +5,53 @@
#include "RageUtil.h"
#define NUM_GRADE_TIERS 20
#define NUM_Grade_TierS 20
enum Grade
{
GRADE_TIER01, // = AAAA
GRADE_TIER02, // = AAA
GRADE_TIER03, // = AA
GRADE_TIER04, // = A
GRADE_TIER05, // = B
GRADE_TIER06, // = C
GRADE_TIER07, // = D
GRADE_TIER08,
GRADE_TIER09,
GRADE_TIER10,
GRADE_TIER11,
GRADE_TIER12,
GRADE_TIER13,
GRADE_TIER14,
GRADE_TIER15,
GRADE_TIER16,
GRADE_TIER17,
GRADE_TIER18,
GRADE_TIER19,
GRADE_TIER20,
GRADE_FAILED, // = E
NUM_GRADES,
GRADE_NO_DATA, // ~GRADE_INVALID
Grade_Tier01, // = AAAA
Grade_Tier02, // = AAA
Grade_Tier03, // = AA
Grade_Tier04, // = A
Grade_Tier05, // = B
Grade_Tier06, // = C
Grade_Tier07, // = D
Grade_Tier08,
Grade_Tier09,
Grade_Tier10,
Grade_Tier11,
Grade_Tier12,
Grade_Tier13,
Grade_Tier14,
Grade_Tier15,
Grade_Tier16,
Grade_Tier17,
Grade_Tier18,
Grade_Tier19,
Grade_Tier20,
Grade_Failed, // = E
NUM_Grade,
Grade_NoData, // ~GRADE_INVALID
};
/* This is in the header so the test sets don't require Grade.cpp (through PrefsManager),
* since that pulls in ThemeManager. */
static inline CString GradeToString( Grade g )
{
// string is meant to be human readable
switch( g )
{
case GRADE_NO_DATA: return "NoData";
case GRADE_FAILED: return "Failed";
default:
return ssprintf("Tier%02d",g+1);
}
ASSERT_M( (g >= 0 && g<NUM_Grade) || g == Grade_NoData, ssprintf("grade = %d",g) );
switch( g )
{
case Grade_NoData: return "NoData";
case Grade_Failed: return "Failed";
default:
return ssprintf("Tier%02d",g+1);
}
}
CString GradeToOldString( Grade g ); // "AAA", "B", etc for backward compatibility
CString GradeToOldString( Grade g ); // "AAA", "B", etc for backward compatibility. Used in announcer
CString GradeToThemedString( Grade g );
Grade StringToGrade( const CString &s );
#define FOREACH_Grade( g ) FOREACH_ENUM( Grade, NUM_GRADES, g )
#define FOREACH_Grade( g ) FOREACH_ENUM( Grade, NUM_Grade, g )
#define FOREACH_UsedGrade( g ) FOREACH_ENUM( Grade, THEME->GetMetricI("PlayerStageStats","NumGradeTiersUsed"), g )
#endif
+10 -10
View File
@@ -20,7 +20,7 @@ GradeDisplay::GradeDisplay()
m_fTimeLeftInScroll = 0;
m_bDoScrolling = 0;
SetGrade( PLAYER_1, GRADE_NO_DATA );
SetGrade( PLAYER_1, Grade_NoData );
}
bool GradeDisplay::Load( RageTextureID ID )
@@ -91,14 +91,14 @@ int GradeDisplay::GetFrameIndex( PlayerNumber pn, Grade g )
int iFrame;
switch( g )
{
case GRADE_TIER01: iFrame = 0; break;
case GRADE_TIER02: iFrame = 1; break;
case GRADE_TIER03: iFrame = 2; break;
case GRADE_TIER04: iFrame = 3; break;
case GRADE_TIER05: iFrame = 4; break;
case GRADE_TIER06: iFrame = 5; break;
case GRADE_TIER07: iFrame = 6; break;
case GRADE_FAILED: iFrame = 7; break;
case Grade_Tier01: iFrame = 0; break;
case Grade_Tier02: iFrame = 1; break;
case Grade_Tier03: iFrame = 2; break;
case Grade_Tier04: iFrame = 3; break;
case Grade_Tier05: iFrame = 4; break;
case Grade_Tier06: iFrame = 5; break;
case Grade_Tier07: iFrame = 6; break;
case Grade_Failed: iFrame = 7; break;
default: iFrame = 7; break;
}
iFrame *= iNumCols;
@@ -115,7 +115,7 @@ void GradeDisplay::SetGrade( PlayerNumber pn, Grade g )
m_bDoScrolling = false;
StopUsingCustomCoords();
if(g != GRADE_NO_DATA)
if(g != Grade_NoData)
{
SetState( GetFrameIndex(pn,g) );
SetDiffuseAlpha( 1 );
+2 -2
View File
@@ -61,7 +61,7 @@ bool HighScoreImpl::operator==( const HighScoreImpl& other ) const
HighScoreImpl::HighScoreImpl()
{
sName = "";
grade = GRADE_NO_DATA;
grade = Grade_NoData;
iScore = 0;
fPercentDP = 0;
fSurviveSeconds = 0;
@@ -137,7 +137,7 @@ void HighScoreImpl::LoadFromNode( const XNode *pNode )
pNode->GetChildValue( "LifeRemainingSeconds", fLifeRemainingSeconds );
/* Validate input. */
grade = clamp( grade, GRADE_TIER01, GRADE_FAILED );
grade = clamp( grade, Grade_Tier01, Grade_Failed );
}
REGISTER_CLASS_TRAITS( HighScoreImpl, new HighScoreImpl(*pCopy) )
+5 -5
View File
@@ -116,7 +116,7 @@ void PlayerStageStats::AddStats( const PlayerStageStats& other )
Grade PlayerStageStats::GetGradeFromPercent( float fPercent )
{
Grade grade = GRADE_FAILED;
Grade grade = Grade_Failed;
FOREACH_Grade(g)
{
@@ -132,7 +132,7 @@ Grade PlayerStageStats::GetGradeFromPercent( float fPercent )
Grade PlayerStageStats::GetGrade() const
{
if( bFailedEarlier )
return GRADE_FAILED;
return Grade_Failed;
/* XXX: This entire calculation should be in ScoreKeeper, but final evaluation
* is tricky since at that point the ScoreKeepers no longer exist. */
@@ -174,7 +174,7 @@ Grade PlayerStageStats::GetGrade() const
iTapNoteScores[TNS_MISS] == 0 &&
iTapNoteScores[TNS_HIT_MINE] == 0 &&
iHoldNoteScores[HNS_NG] == 0 )
return GRADE_TIER01;
return Grade_Tier01;
if( iTapNoteScores[TNS_PERFECT] > 0 &&
iTapNoteScores[TNS_GREAT] == 0 &&
@@ -183,9 +183,9 @@ Grade PlayerStageStats::GetGrade() const
iTapNoteScores[TNS_MISS] == 0 &&
iTapNoteScores[TNS_HIT_MINE] == 0 &&
iHoldNoteScores[HNS_NG] == 0 )
return GRADE_TIER02;
return Grade_Tier02;
return max( grade, GRADE_TIER03 );
return max( grade, Grade_Tier03 );
}
return grade;
+2 -2
View File
@@ -633,13 +633,13 @@ void Profile::IncrementStepsPlayCount( const Song* pSong, const Steps* pSteps )
GetStepsHighScoreList(pSong,pSteps).IncrementPlayCount( now );
}
void Profile::GetGrades( const Song* pSong, StepsType st, int iCounts[NUM_GRADES] ) const
void Profile::GetGrades( const Song* pSong, StepsType st, int iCounts[NUM_Grade] ) const
{
SongID songID;
songID.FromSong( pSong );
memset( iCounts, 0, sizeof(int)*NUM_GRADES );
memset( iCounts, 0, sizeof(int)*NUM_Grade );
const HighScoresForASong *hsSong = GetHighScoresForASong( songID );
if( hsSong == NULL )
return;
+2 -2
View File
@@ -144,7 +144,7 @@ public:
/* This stat counts once per song, even if two players are active. */
int m_iNumTotalSongsPlayed;
int m_iNumStagesPassedByPlayMode[NUM_PLAY_MODES];
int m_iNumStagesPassedByGrade[NUM_GRADES];
int m_iNumStagesPassedByGrade[NUM_Grade];
//
// Song high scores
@@ -165,7 +165,7 @@ public:
HighScoreList& GetStepsHighScoreList( const Song* pSong, const Steps* pSteps );
int GetStepsNumTimesPlayed( const Song* pSong, const Steps* pSteps ) const;
void IncrementStepsPlayCount( const Song* pSong, const Steps* pSteps );
void GetGrades( const Song* pSong, StepsType st, int iCounts[NUM_GRADES] ) const;
void GetGrades( const Song* pSong, StepsType st, int iCounts[NUM_Grade] ) const;
int GetSongNumTimesPlayed( const Song* pSong ) const;
int GetSongNumTimesPlayed( const SongID& songID ) const;
DateTime GetSongLastPlayedDateTime( const Song* pSong ) const;
+5 -5
View File
@@ -241,7 +241,7 @@ void ScreenEvaluation::Init()
if( GAMESTATE->IsPlayerEnabled(p) )
grade[p] = stageStats.m_player[p].GetGrade();
else
grade[p] = GRADE_FAILED;
grade[p] = Grade_Failed;
if( PREFSMAN->m_ScoringType == PrefsManager::SCORING_5TH )
{
@@ -774,7 +774,7 @@ void ScreenEvaluation::Init()
if( GAMESTATE->IsPlayerEnabled(p) && (iMachineHighScoreIndex[p] != -1 || iPersonalHighScoreIndex[p] != -1) )
bOneHasNewTopRecord = true;
Grade best_grade = GRADE_NO_DATA;
Grade best_grade = Grade_NoData;
FOREACH_PlayerNumber( p )
best_grade = min( best_grade, grade[p] );
@@ -826,9 +826,9 @@ void ScreenEvaluation::Init()
switch( best_grade )
{
case GRADE_TIER01:
case GRADE_TIER02:
case GRADE_TIER03:
case Grade_Tier01:
case Grade_Tier02:
case Grade_Tier03:
this->PostScreenMessage( SM_PlayCheer, CHEER_DELAY_SECONDS );
break;
}
+2 -2
View File
@@ -169,7 +169,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
ss.m_player[p].vpPossibleSteps.push_back( pSteps );
HighScore hs;
hs.SetGrade( GRADE_TIER03 );
hs.SetGrade( Grade_Tier03 );
hs.SetPercentDP( ss.m_player[p].GetPercentDancePoints() );
hs.SetScore( ss.m_player[p].iScore );
hs.SetDateTime( DateTime::GetNowDateTime() );
@@ -387,7 +387,7 @@ void ScreenNameEntryTraditional::Init()
this->AddChild( &display.m_sprBanner );
}
if( grade != GRADE_NO_DATA )
if( grade != Grade_NoData )
{
display.m_Grade.SetName( ssprintf("GradeP%i",p+1) );
display.m_Grade.Load( THEME->GetPathG(m_sName,"grades") );
+1 -1
View File
@@ -158,7 +158,7 @@ void ScreenNetEvaluation::HandleScreenMessage( const ScreenMessage SM )
break;
m_textUsers[i].SetText( NSMAN->m_PlayerNames[NSMAN->m_EvalPlayerData[i].name] );
if ( NSMAN->m_EvalPlayerData[i].grade < GRADE_TIER03 ) //Yes, hardcoded (I'd like to leave it that way)
if ( NSMAN->m_EvalPlayerData[i].grade < Grade_Tier03 ) //Yes, hardcoded (I'd like to leave it that way)
m_textUsers[i].TurnRainbowOn();
else
m_textUsers[i].TurnRainbowOff();
+5 -5
View File
@@ -122,7 +122,7 @@ void SongUtil::SortSongPointerArrayByGrades( vector<Song*> &vpSongsInOut, bool b
{
Song *pSong = vpSongsInOut[i];
int iCounts[NUM_GRADES];
int iCounts[NUM_Grade];
const Profile *pProfile = PROFILEMAN->GetMachineProfile();
const Style *pStyle = GAMESTATE->GetCurrentStyle();
StepsType st = pStyle->m_StepsType;
@@ -130,7 +130,7 @@ void SongUtil::SortSongPointerArrayByGrades( vector<Song*> &vpSongsInOut, bool b
CString foo;
foo.reserve(256);
for( int g=GRADE_TIER01; g<=GRADE_NO_DATA; ++g )
for( int g=Grade_Tier01; g<=Grade_NoData; ++g )
AppendOctal( iCounts[g], 3, foo );
vals.push_back( val(pSong, foo) );
}
@@ -259,16 +259,16 @@ CString SongUtil::GetSectionNameFromSongAndSort( const Song* pSong, SortOrder so
return "";
case SORT_TOP_GRADES:
{
int iCounts[NUM_GRADES];
int iCounts[NUM_Grade];
PROFILEMAN->GetMachineProfile()->GetGrades( pSong, GAMESTATE->GetCurrentStyle()->m_StepsType, iCounts );
for( int i=GRADE_TIER01; i<NUM_GRADES; ++i )
for( int i=Grade_Tier01; i<NUM_Grade; ++i )
{
Grade g = (Grade)i;
if( iCounts[i] > 0 )
return ssprintf( "%4s x %d", GradeToThemedString(g).c_str(), iCounts[i] );
}
return GradeToThemedString( GRADE_NO_DATA );
return GradeToThemedString( Grade_NoData );
}
case SORT_EASY_METER:
{
+4 -4
View File
@@ -205,7 +205,7 @@ public:
PlayerNumber pn = (PlayerNumber)IArg(1);
if( !GAMESTATE->IsHumanPlayer(pn) )
lua_pushnumber( L, GRADE_NO_DATA );
lua_pushnumber( L, Grade_NoData );
else
{
StageStats stats;
@@ -218,7 +218,7 @@ public:
static int GetBestGrade( T* p, lua_State *L )
{
Grade g = NUM_GRADES;
Grade g = NUM_Grade;
FOREACH_EnabledPlayer( pn )
g = min( g, STATSMAN->m_CurStageStats.m_player[pn].GetGrade() );
lua_pushnumber( L, g );
@@ -227,7 +227,7 @@ public:
static int GetWorstGrade( T* p, lua_State *L )
{
Grade g = GRADE_TIER01;
Grade g = Grade_Tier01;
FOREACH_EnabledPlayer( pn )
g = max( g, STATSMAN->m_CurStageStats.m_player[pn].GetGrade() );
lua_pushnumber( L, g );
@@ -283,7 +283,7 @@ const StageStats *GetStageStatsN( int n )
Grade GetBestFinalGrade()
{
Grade top_grade = GRADE_FAILED;
Grade top_grade = Grade_Failed;
StageStats stats;
STATSMAN->GetFinalEvalStageStats( stats );
FOREACH_HumanPlayer( p )
+13 -13
View File
@@ -180,12 +180,12 @@ static float GetArcadePoints( const Profile *pProfile )
{
switch(g)
{
case GRADE_TIER01:
case GRADE_TIER02: fAP += 9 * pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier01:
case Grade_Tier02: fAP += 9 * pProfile->m_iNumStagesPassedByGrade[g]; break;
default: fAP += 1 * pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_FAILED:
case GRADE_NO_DATA:
case Grade_Failed:
case Grade_NoData:
; // no points
break;
}
@@ -215,15 +215,15 @@ static float GetSongPoints( const Profile *pProfile )
{
switch( g )
{
case GRADE_TIER01:/*AAAA*/ fSP += 20 * pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER02:/*AAA*/ fSP += 10* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER03:/*AA*/ fSP += 5* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER04:/*A*/ fSP += 4* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER05:/*B*/ fSP += 3* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER06:/*C*/ fSP += 2* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_TIER07:/*D*/ fSP += 1* pProfile->m_iNumStagesPassedByGrade[g]; break;
case GRADE_FAILED:
case GRADE_NO_DATA:
case Grade_Tier01:/*AAAA*/ fSP += 20 * pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier02:/*AAA*/ fSP += 10* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier03:/*AA*/ fSP += 5* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier04:/*A*/ fSP += 4* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier05:/*B*/ fSP += 3* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier06:/*C*/ fSP += 2* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Tier07:/*D*/ fSP += 1* pProfile->m_iNumStagesPassedByGrade[g]; break;
case Grade_Failed:
case Grade_NoData:
; // no points
break;
}