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( GAMESTATE->IsPlayerEnabled(p) )
|
|
||||||
grade[p] = m_StageStats.m_player[p].GetGrade();
|
|
||||||
else
|
|
||||||
grade[p] = Grade_Failed;
|
|
||||||
|
|
||||||
if( PREFSMAN->m_ScoringType == PrefsManager::SCORING_5TH )
|
if( PREFSMAN->m_ScoringType == PrefsManager::SCORING_5TH )
|
||||||
{
|
{
|
||||||
const int ScoreBonuses[] = { 10000000, 10000000, 1000000, 100000, 10000, 1000, 100 };
|
FOREACH_PlayerNumber( p )
|
||||||
if( grade[p] < (int) ARRAYSIZE(ScoreBonuses) )
|
|
||||||
{
|
{
|
||||||
STATSMAN->m_CurStageStats.m_player[p].iBonus += ScoreBonuses[(int)grade[p] ];
|
const int ScoreBonuses[] = { 10000000, 10000000, 1000000, 100000, 10000, 1000, 100 };
|
||||||
m_StageStats.m_player[p].iBonus += ScoreBonuses[(int)grade[p] ];
|
Grade g = m_StageStats.m_player[p].GetGrade();
|
||||||
|
if( g < (int) ARRAYSIZE(ScoreBonuses) )
|
||||||
|
{
|
||||||
|
STATSMAN->m_CurStageStats.m_player[p].iBonus += ScoreBonuses[(int)g];
|
||||||
|
m_StageStats.m_player[p].iBonus += ScoreBonuses[(int)g];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// update persistent statistics
|
// update persistent statistics
|
||||||
//
|
//
|
||||||
@@ -412,14 +402,14 @@ void ScreenEvaluation::Init()
|
|||||||
this->AddChild( m_sprGradeFrame[p] );
|
this->AddChild( m_sprGradeFrame[p] );
|
||||||
|
|
||||||
m_Grades[p].Load( THEME->GetPathG(m_sName,"grades") );
|
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) );
|
m_Grades[p].SetName( ssprintf("GradeP%d",p+1) );
|
||||||
SET_XY_AND_ON_COMMAND( m_Grades[p] );
|
SET_XY_AND_ON_COMMAND( m_Grades[p] );
|
||||||
if( SPIN_GRADES )
|
if( SPIN_GRADES )
|
||||||
m_Grades[p].Spin();
|
m_Grades[p].Spin();
|
||||||
this->AddChild( &m_Grades[p] );
|
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) );
|
m_sprGrade[p]->SetName( ssprintf("GradeP%d",p+1) );
|
||||||
SET_XY_AND_ON_COMMAND( m_sprGrade[p] );
|
SET_XY_AND_ON_COMMAND( m_sprGrade[p] );
|
||||||
this->AddChild( m_sprGrade[p] );
|
this->AddChild( m_sprGrade[p] );
|
||||||
@@ -717,7 +707,7 @@ void ScreenEvaluation::Init()
|
|||||||
|
|
||||||
Grade best_grade = Grade_NoData;
|
Grade best_grade = Grade_NoData;
|
||||||
FOREACH_PlayerNumber( p )
|
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 )
|
if( PREFSMAN->m_bAllowExtraStage && m_bTryExtraStage )
|
||||||
{
|
{
|
||||||
@@ -790,6 +780,14 @@ void StageResults::CommitScores(
|
|||||||
out[pn].Init();
|
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 )
|
switch( GAMESTATE->m_PlayMode )
|
||||||
{
|
{
|
||||||
case PLAY_MODE_BATTLE:
|
case PLAY_MODE_BATTLE:
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public:
|
|||||||
PerDifficultyAward m_pdaToShow;
|
PerDifficultyAward m_pdaToShow;
|
||||||
PeakComboAward m_pcaToShow;
|
PeakComboAward m_pcaToShow;
|
||||||
HighScore m_HighScore;
|
HighScore m_HighScore;
|
||||||
|
Grade m_Grade;
|
||||||
|
|
||||||
void CalcAwards( const PlayerStageStats &m_PlayerStageStats, PlayerNumber p );
|
void CalcAwards( const PlayerStageStats &m_PlayerStageStats, PlayerNumber p );
|
||||||
static void CommitScores( const StageStats &stageStats, StageResults out[NUM_PLAYERS], bool bSummary );
|
static void CommitScores( const StageStats &stageStats, StageResults out[NUM_PLAYERS], bool bSummary );
|
||||||
|
|||||||
Reference in New Issue
Block a user