From 78951b7f055545786ab6ed9f2c9f370ec9a3d0ac Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Thu, 26 May 2011 22:22:55 -0400 Subject: [PATCH] Introduce the MissComboIsPerRow metric. Read the changelog for more details. --- Docs/Changelog_sm5.txt | 7 +++++++ src/ScoreKeeperNormal.cpp | 5 +++-- src/ScoreKeeperNormal.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 17065352a0..c9622c5688 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -8,6 +8,13 @@ ________________________________________________________________________________ StepMania 5.0 $NEXT | 20110xyy -------------------------------------------------------------------------------- +2011/05/26 +---------- +* [ScoreKeeperNormal] Added the MissComboIsPerRow metric. Similar to the + ComboIsPerRow metric, this determines how much miss combo is earned on missing + a row of notes. By default, this is true. Set to false to replicate Pump Pro + behavior. [Wolfman2000] + 2011/05/25 ---------- * [NotesLoaderSSC/NotesWriterSSC] Added the ScrollSegments. Think BPM change, diff --git a/src/ScoreKeeperNormal.cpp b/src/ScoreKeeperNormal.cpp index c1422942f9..8106effb3a 100644 --- a/src/ScoreKeeperNormal.cpp +++ b/src/ScoreKeeperNormal.cpp @@ -81,6 +81,7 @@ void ScoreKeeperNormal::Load( // True if a jump is one to combo, false if combo is purely based on tap count. m_ComboIsPerRow.Load( "Gameplay", "ComboIsPerRow" ); + m_MissComboIsPerRow.Load( "Gameplay", "MissComboIsPerRow" ); m_MinScoreToContinueCombo.Load( "Gameplay", "MinScoreToContinueCombo" ); m_MinScoreToMaintainCombo.Load( "Gameplay", "MinScoreToMaintainCombo" ); m_MaxScoreToIncrementMissCombo.Load( "Gameplay", "MaxScoreToIncrementMissCombo" ); @@ -450,7 +451,7 @@ void ScoreKeeperNormal::HandleComboInternal( int iNumHitContinueCombo, int iNumH else { m_pPlayerStageStats->m_iCurCombo = 0; - m_pPlayerStageStats->m_iCurMissCombo += iNumBreakCombo; + m_pPlayerStageStats->m_iCurMissCombo += ( m_MissComboIsPerRow ? 1 : iNumBreakCombo ); } } @@ -472,7 +473,7 @@ void ScoreKeeperNormal::HandleRowComboInternal( TapNoteScore tns, int iNumTapsIn m_pPlayerStageStats->m_iCurCombo = 0; if( tns <= m_MaxScoreToIncrementMissCombo ) - m_pPlayerStageStats->m_iCurMissCombo += iNumTapsInRow; + m_pPlayerStageStats->m_iCurMissCombo += ( m_MissComboIsPerRow ? 1 : iNumTapsInRow ); } } diff --git a/src/ScoreKeeperNormal.h b/src/ScoreKeeperNormal.h index 308458a04d..9c9ab104bc 100644 --- a/src/ScoreKeeperNormal.h +++ b/src/ScoreKeeperNormal.h @@ -34,6 +34,7 @@ class ScoreKeeperNormal: public ScoreKeeper int m_iNumNotesHitThisRow; // Used by Custom Scoring only ThemeMetric m_ComboIsPerRow; + ThemeMetric m_MissComboIsPerRow; ThemeMetric m_MinScoreToContinueCombo; ThemeMetric m_MinScoreToMaintainCombo; ThemeMetric m_MaxScoreToIncrementMissCombo;