diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index d496b21e04..1dd6fabfb8 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2387,6 +2387,7 @@ CheckpointsUseTimeSignatures=false InitialHoldLife=1 RollBodyIncrementsCombo=true CheckpointsTapsSeparateJudgment=true +ImmediateCheckpointMiss=false [PlayerShared] Fallback="Player" diff --git a/stepmania/Themes/pump/metrics.ini b/stepmania/Themes/pump/metrics.ini index 1577d96092..9e11c813f4 100644 --- a/stepmania/Themes/pump/metrics.ini +++ b/stepmania/Themes/pump/metrics.ini @@ -23,6 +23,7 @@ ImmediateHoldLetGo=false RollBodyIncrementsCombo=false InitialHoldLife=1 CheckpointsTapsSeparateJudgment=false +ImmediateCheckpointMiss=true [ScreenGameplay] FailOnMissCombo=51 diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index b1619b6d3d..59ca437d88 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -135,6 +135,7 @@ ThemeMetric IMMEDIATE_HOLD_LET_GO ( "Player", "ImmediateHoldLetGo" ); ThemeMetric REQUIRE_STEP_ON_HOLD_HEADS ( "Player", "RequireStepOnHoldHeads" ); ThemeMetric ROLL_BODY_INCREMENTS_COMBO ( "Player", "RollBodyIncrementsCombo" ); ThemeMetric CHECKPOINTS_TAPS_SEPARATE_JUDGMENT ( "Player", "CheckpointsTapsSeparateJudgment" ); +ThemeMetric IMMEDIATE_CHECKPOINT_MISS ( "Player", "ImmediateCheckpointMiss" ); float Player::GetWindowSeconds( TimingWindow tw ) @@ -2611,7 +2612,7 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now ) continue; viColsWithHold.push_back( iTrack ); - if( tn.HoldResult.fLife > 0 ) + if( ( IMMEDIATE_CHECKPOINT_MISS && tn.HoldResult.bHeld ) || tn.HoldResult.fLife > 0 ) { ++iNumHoldsHeldThisRow; ++tn.HoldResult.iCheckpointsHit;