support for full CRS specification and PlayerBest/Worst

This commit is contained in:
Chris Danford
2003-02-16 10:12:03 +00:00
parent e0aaf15c54
commit e19fa17d9b
27 changed files with 482 additions and 273 deletions
+40 -10
View File
@@ -247,25 +247,55 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
//
// update persistent statistics
//
bool bIsPlayerEnabled[NUM_PLAYERS];
for( p=0; p<NUM_PLAYERS; p++ )
bIsPlayerEnabled[p] = GAMESTATE->IsPlayerEnabled(p);
int iRankingLine[NUM_PLAYERS] = { -1, -1 };
bool bNewRecord[NUM_PLAYERS] = { false, false };
switch( m_ResultMode )
{
case RM_ARCADE_STAGE:
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->IsPlayerEnabled(p) )
GAMESTATE->m_pCurNotes[p]->AddScore( (PlayerNumber)p, grade[p], stageStats.fScore[p], bNewRecord[p] );
{
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->IsPlayerEnabled(p) )
GAMESTATE->m_pCurNotes[p]->AddScore( (PlayerNumber)p, grade[p], stageStats.fScore[p], bNewRecord[p] );
}
break;
case RM_ARCADE_SUMMARY:
{
NotesType nt = GAMESTATE->GetCurrentStyleDef()->m_NotesType;
bool bIsPlayerEnabled[NUM_PLAYERS];
for( p=0; p<NUM_PLAYERS; p++ )
bIsPlayerEnabled[p] = GAMESTATE->IsPlayerEnabled(p);
RankingCategory cat[NUM_PLAYERS];
int iRankingIndex[NUM_PLAYERS];
for( int p=0; p<NUM_PLAYERS; p++ )
{
float fAverageMeter = stageStats.iMeter[p] / (float)PREFSMAN->m_iNumArcadeStages;
cat[p] = AverageMeterToRankingCategory( fAverageMeter );
}
SONGMAN->AddScores( nt, bIsPlayerEnabled, cat, stageStats.fScore, iRankingIndex );
COPY( GAMESTATE->m_RankingCategory, cat );
COPY( GAMESTATE->m_iRankingIndex, iRankingIndex );
GAMESTATE->m_RankingNotesType = nt;
}
break;
case RM_COURSE:
NotesType nt;
nt = GAMESTATE->GetCurrentStyleDef()->m_NotesType;
GAMESTATE->m_pCurCourse->AddScores( nt, bIsPlayerEnabled, stageStats.iActualDancePoints, stageStats.fAliveSeconds, iRankingLine, bNewRecord );
{
NotesType nt = GAMESTATE->GetCurrentStyleDef()->m_NotesType;
bool bIsPlayerEnabled[NUM_PLAYERS];
for( p=0; p<NUM_PLAYERS; p++ )
bIsPlayerEnabled[p] = GAMESTATE->IsPlayerEnabled(p);
int iRankingIndex[NUM_PLAYERS];
Course* pCourse = GAMESTATE->m_pCurCourse;
pCourse->AddScores( nt, bIsPlayerEnabled, stageStats.iActualDancePoints, stageStats.fAliveSeconds, iRankingIndex, bNewRecord );
COPY( GAMESTATE->m_iRankingIndex, iRankingIndex );
GAMESTATE->m_pRankingCourse = pCourse;
GAMESTATE->m_RankingNotesType = nt;
}
break;
default:
ASSERT(0);