diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index f22cb8aade..d496b21e04 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -915,6 +915,7 @@ Class="ScreenEvaluation" LightsMode="LightsMode_MenuStartOnly" HelpText=ScreenString("HelpTextEvaluation") Summary=false +CheckpointsWithJudgments=false TimerSeconds=15 DisqualifiedP1X= DisqualifiedP1Y= diff --git a/stepmania/Themes/pump/metrics.ini b/stepmania/Themes/pump/metrics.ini index 93d94aa152..4f8cbdfeb0 100644 --- a/stepmania/Themes/pump/metrics.ini +++ b/stepmania/Themes/pump/metrics.ini @@ -42,6 +42,9 @@ RightFrameOffCommand= StepsDisplayP1X=-9999 StepsDisplayP2X=-9999 +[ScreenEvaluation] +CheckpointsWithJudgments=true + [CustomDifficulty] Names="1,2,3,4,5,6,7" 1StepsType="StepsType_pump_single" diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index f76fc377fc..77c5f15684 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -71,6 +71,8 @@ XToString( DetailLine ); #define PLAYER_OPTIONS_SEPARATOR THEME->GetMetric (m_sName,"PlayerOptionsSeparator") +#define CHECKPOINTS_WITH_JUDGMENTS THEME->GetMetricB(m_sName,"CheckpointsWithJudgments") + static const int NUM_SHOWN_RADAR_CATEGORIES = 5; AutoScreenMessage( SM_PlayCheer ) @@ -501,12 +503,30 @@ void ScreenEvaluation::Init() int iValue; switch( l ) { - case JudgmentLine_W1: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W1]; break; - case JudgmentLine_W2: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W2]; break; + case JudgmentLine_W1: + iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W1]; + if( CHECKPOINTS_WITH_JUDGMENTS && GAMESTATE->ShowW1() ) + { + iValue += m_pStageStats->m_player[p].m_iTapNoteScores[TNS_CheckpointHit]; + } + break; + case JudgmentLine_W2: + iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W2]; + if( CHECKPOINTS_WITH_JUDGMENTS && !GAMESTATE->ShowW1() ) + { + iValue += m_pStageStats->m_player[p].m_iTapNoteScores[TNS_CheckpointHit]; + } + break; case JudgmentLine_W3: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W3]; break; case JudgmentLine_W4: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W4]; break; case JudgmentLine_W5: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_W5]; break; - case JudgmentLine_Miss: iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_Miss]; break; + case JudgmentLine_Miss: + iValue = m_pStageStats->m_player[p].m_iTapNoteScores[TNS_Miss]; + if( CHECKPOINTS_WITH_JUDGMENTS ) + { + iValue += m_pStageStats->m_player[p].m_iTapNoteScores[TNS_CheckpointMiss]; + } + break; case JudgmentLine_Held: iValue = m_pStageStats->m_player[p].m_iHoldNoteScores[HNS_Held]; break; case JudgmentLine_MaxCombo: iValue = m_pStageStats->m_player[p].GetMaxCombo().m_cnt; break; DEFAULT_FAIL( l );