From a8dcfc6ff2f42ca5ecb8fae5bafcd56c73e4b87c Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Tue, 18 Jan 2011 12:40:40 -0500 Subject: [PATCH] Add metric to use Tickcount tag for Checkpoints. This officially deprecates the time signature checkpoint metric. However, it is still being kept in for those that desire the original hackish behavior. --- Themes/_fallback/metrics.ini | 1 + src/Player.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 8164915509..b0ca0de327 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -933,6 +933,7 @@ ComboUnderField=ComboUnderField() PenalizeTapScoreNone=false JudgeHoldNotesOnSameRowTogether=(GAMESTATE:GetCurrentGame():GetName() == "pump") HoldCheckpoints=(GAMESTATE:GetCurrentGame():GetName() == "pump") +CheckpointsUseTickcounts=(GAMESTATE:GetCurrentGame():GetName() == "pump") CheckpointsUseTimeSignatures=(GAMESTATE:GetCurrentGame():GetName() == "pump") CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment() CheckpointsFlashOnHold=false diff --git a/src/Player.cpp b/src/Player.cpp index ef1c9bd241..c3dfb492ba 100644 --- a/src/Player.cpp +++ b/src/Player.cpp @@ -128,6 +128,7 @@ ThemeMetric MAX_HOLD_LIFE ( "Player", "MaxHoldLife" ); // sm-ssc additio ThemeMetric PENALIZE_TAP_SCORE_NONE ( "Player", "PenalizeTapScoreNone" ); ThemeMetric JUDGE_HOLD_NOTES_ON_SAME_ROW_TOGETHER ( "Player", "JudgeHoldNotesOnSameRowTogether" ); ThemeMetric HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" ); +ThemeMetric CHECKPOINTS_USE_TICKCOUNTS ( "Player", "CheckpointsUseTickcounts" ); ThemeMetric CHECKPOINTS_USE_TIME_SIGNATURES ( "Player", "CheckpointsUseTimeSignatures" ); ThemeMetric CHECKPOINTS_FLASH_ON_HOLD ( "Player", "CheckpointsFlashOnHold" ); // sm-ssc addition ThemeMetric IMMEDIATE_HOLD_LET_GO ( "Player", "ImmediateHoldLetGo" ); @@ -2779,7 +2780,11 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now ) if( HOLD_CHECKPOINTS ) { int iCheckpointFrequencyRows = ROWS_PER_BEAT/2; - if( CHECKPOINTS_USE_TIME_SIGNATURES ) + if( CHECKPOINTS_USE_TICKCOUNTS ) + { + iCheckpointFrequencyRows = ROWS_PER_BEAT / GAMESTATE->m_pCurSong->m_Timing.GetTickcountAtRow( iLastRowCrossed ); + } + else if( CHECKPOINTS_USE_TIME_SIGNATURES ) { TimeSignatureSegment tSignature = GAMESTATE->m_pCurSong->m_Timing.GetTimeSignatureSegmentAtBeat( NoteRowToBeat( iLastRowCrossed ) );