diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index 94aa2285fb..b2b7a3edc9 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -53,6 +53,9 @@ const char* JUDGE_STRING[NUM_JUDGE_LINES] = { "Marvelous", "Perfect", "Great", " #define SHOW_JUDGMENT( l ) THEME->GetMetricB(m_sName,ssprintf("Show%s",JUDGE_STRING[l])) #define SHOW_SCORE_AREA THEME->GetMetricB(m_sName,"ShowScoreArea") #define SHOW_TIME_AREA THEME->GetMetricB(m_sName,"ShowTimeArea") +#define SHOW_GRAPH_AREA THEME->GetMetricB(m_sName,"ShowGraphArea") +#define SHOW_COMBO_AREA THEME->GetMetricB(m_sName,"ShowComboArea") +#define GRAPH_START_HEIGHT THEME->GetMetricF(m_sName,"GraphStartHeight") #define TYPE THEME->GetMetric (m_sName,"Type") @@ -113,6 +116,8 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName ) : Screen(sClassName) default: ASSERT(0); } + stageStats.Finish(); + LOG->Trace( "total error: %i, %i", stageStats.iTotalError[0], stageStats.iTotalError[1] ); /* @@ -395,6 +400,40 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName ) : Screen(sClassName) } } + // + // init graph area + // + if( SHOW_GRAPH_AREA ) + { + for( p=0; pIsPlayerEnabled(p) ) + continue; // skip + + m_Graph[p].SetName( ssprintf("GraphP%i",p+1) ); + m_Graph[p].Load( THEME->GetPathToG(ssprintf("%s graph p%i",m_sName.c_str(), p+1)), GRAPH_START_HEIGHT ); + m_Graph[p].LoadFromStageStats( stageStats, (PlayerNumber)p ); + SET_XY_AND_ON_COMMAND( m_Graph[p] ); + + this->AddChild( &m_Graph[p] ); + } + } + + if( SHOW_COMBO_AREA ) + { + for( p=0; pIsPlayerEnabled(p) ) + continue; // skip + + m_Combo[p].SetName( ssprintf("ComboP%i",p+1) ); + m_Combo[p].Load( ssprintf("ScreenEvaluationStage combo p%i", p+1), stageStats, (PlayerNumber)p ); + SET_XY_AND_ON_COMMAND( m_Combo[p] ); + + this->AddChild( &m_Combo[p] ); + } + } + // // init grade area // @@ -768,6 +807,28 @@ void ScreenEvaluation::TweenOffScreen() UtilOffCommand( m_Grades[p], "ScreenEvaluation" ); } + if( SHOW_GRAPH_AREA ) + { + for( p=0; pIsPlayerEnabled(p) ) + continue; // skip + + OFF_COMMAND( m_Graph[p] ); + } + } + + if( SHOW_COMBO_AREA ) + { + for( p=0; pIsPlayerEnabled(p) ) + continue; // skip + + OFF_COMMAND( m_Combo[p] ); + } + } + // points area if( SHOW_POINTS_AREA ) { diff --git a/stepmania/src/ScreenEvaluation.h b/stepmania/src/ScreenEvaluation.h index 31eafe75d0..6cc87d6b42 100644 --- a/stepmania/src/ScreenEvaluation.h +++ b/stepmania/src/ScreenEvaluation.h @@ -23,6 +23,8 @@ #include "Banner.h" #include "DifficultyIcon.h" #include "PercentageDisplay.h" +#include "GraphDisplay.h" +#include "ComboGraph.h" const int MAX_SONGS_TO_SHOW = 5; // In summary, we show last 3 stages, plus extra stages if passed @@ -68,6 +70,12 @@ protected: Sprite m_sprGradeFrame[NUM_PLAYERS]; GradeDisplay m_Grades[NUM_PLAYERS]; + // graph area + GraphDisplay m_Graph[NUM_PLAYERS]; + + // combo area + ComboGraph m_Combo[NUM_PLAYERS]; + // points area bool m_bNewSongsUnlocked; PercentageDisplay m_Percent[NUM_PLAYERS];