From 4c5f68b1909b4b2f3a63219b116a8a7c330bfd0b Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sun, 24 May 2009 04:19:32 +0000 Subject: [PATCH] New metric: ImmediateCheckpointMiss. Deals with taking your foot off of a checkpoint hold. If true, you miss checkpoints near instantaneous. If false, TimingWindowSecondsHold in Preferences dictates how much time you have left to put your foot back down. --- stepmania/Themes/default/metrics.ini | 1 + stepmania/Themes/pump/metrics.ini | 1 + stepmania/src/Player.cpp | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) 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;