move final grade calc into StageResults
This commit is contained in:
@@ -242,30 +242,20 @@ void ScreenEvaluation::Init()
|
||||
}
|
||||
*/
|
||||
|
||||
//
|
||||
// Calculate grades
|
||||
//
|
||||
Grade grade[NUM_PLAYERS];
|
||||
|
||||
FOREACH_PlayerNumber( p )
|
||||
if( PREFSMAN->m_ScoringType == PrefsManager::SCORING_5TH )
|
||||
{
|
||||
if( GAMESTATE->IsPlayerEnabled(p) )
|
||||
grade[p] = m_StageStats.m_player[p].GetGrade();
|
||||
else
|
||||
grade[p] = Grade_Failed;
|
||||
|
||||
if( PREFSMAN->m_ScoringType == PrefsManager::SCORING_5TH )
|
||||
FOREACH_PlayerNumber( p )
|
||||
{
|
||||
const int ScoreBonuses[] = { 10000000, 10000000, 1000000, 100000, 10000, 1000, 100 };
|
||||
if( grade[p] < (int) ARRAYSIZE(ScoreBonuses) )
|
||||
Grade g = m_StageStats.m_player[p].GetGrade();
|
||||
if( g < (int) ARRAYSIZE(ScoreBonuses) )
|
||||
{
|
||||
STATSMAN->m_CurStageStats.m_player[p].iBonus += ScoreBonuses[(int)grade[p] ];
|
||||
m_StageStats.m_player[p].iBonus += ScoreBonuses[(int)grade[p] ];
|
||||
STATSMAN->m_CurStageStats.m_player[p].iBonus += ScoreBonuses[(int)g];
|
||||
m_StageStats.m_player[p].iBonus += ScoreBonuses[(int)g];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// update persistent statistics
|
||||
//
|
||||
@@ -412,14 +402,14 @@ void ScreenEvaluation::Init()
|
||||
this->AddChild( m_sprGradeFrame[p] );
|
||||
|
||||
m_Grades[p].Load( THEME->GetPathG(m_sName,"grades") );
|
||||
m_Grades[p].SetGrade( p, grade[p] );
|
||||
m_Grades[p].SetGrade( p, m_StageResults[p].m_Grade );
|
||||
m_Grades[p].SetName( ssprintf("GradeP%d",p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_Grades[p] );
|
||||
if( SPIN_GRADES )
|
||||
m_Grades[p].Spin();
|
||||
this->AddChild( &m_Grades[p] );
|
||||
|
||||
m_sprGrade[p].Load( THEME->GetPathG(m_sName,"grade "+GradeToString(grade[p])) );
|
||||
m_sprGrade[p].Load( THEME->GetPathG(m_sName,"grade "+GradeToString(m_StageResults[p].m_Grade)) );
|
||||
m_sprGrade[p]->SetName( ssprintf("GradeP%d",p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_sprGrade[p] );
|
||||
this->AddChild( m_sprGrade[p] );
|
||||
@@ -717,7 +707,7 @@ void ScreenEvaluation::Init()
|
||||
|
||||
Grade best_grade = Grade_NoData;
|
||||
FOREACH_PlayerNumber( p )
|
||||
best_grade = min( best_grade, grade[p] );
|
||||
best_grade = min( best_grade, m_StageResults[p].m_Grade );
|
||||
|
||||
if( PREFSMAN->m_bAllowExtraStage && m_bTryExtraStage )
|
||||
{
|
||||
@@ -790,6 +780,14 @@ void StageResults::CommitScores(
|
||||
out[pn].Init();
|
||||
}
|
||||
|
||||
FOREACH_PlayerNumber( p )
|
||||
{
|
||||
if( GAMESTATE->IsPlayerEnabled(p) )
|
||||
out[p].m_Grade = m_StageStats.m_player[p].GetGrade();
|
||||
else
|
||||
out[p].m_Grade = Grade_Failed;
|
||||
}
|
||||
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_BATTLE:
|
||||
|
||||
Reference in New Issue
Block a user