From 85e81e0c0fe82e5bd0df62788050649fe4f82ae2 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sun, 24 May 2009 00:11:23 +0000 Subject: [PATCH] New metric/hack: CheckpointsTapsSeparateJudgment. Deals with Hold checkpoints with taps interspersed. True = current/Pump Pro behavior. False = classic Pump It Up behavior. Hopefully this can be cleaned up later. --- stepmania/Themes/default/metrics.ini | 1 + stepmania/Themes/pump/metrics.ini | 1 + stepmania/src/Player.cpp | 6 ++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 1633f79aa4..f22cb8aade 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2385,6 +2385,7 @@ RequireStepOnHoldHeads=true CheckpointsUseTimeSignatures=false InitialHoldLife=1 RollBodyIncrementsCombo=true +CheckpointsTapsSeparateJudgment=true [PlayerShared] Fallback="Player" diff --git a/stepmania/Themes/pump/metrics.ini b/stepmania/Themes/pump/metrics.ini index 8315d8df32..93d94aa152 100644 --- a/stepmania/Themes/pump/metrics.ini +++ b/stepmania/Themes/pump/metrics.ini @@ -22,6 +22,7 @@ CheckpointsUseTimeSignatures=true ImmediateHoldLetGo=true RollBodyIncrementsCombo=false InitialHoldLife=1 +CheckpointsTapsSeparateJudgment=false [ScreenGameplay] FailOnMissCombo=51 diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 8c6e7c8f51..b1619b6d3d 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -134,6 +134,7 @@ ThemeMetric CHECKPOINTS_USE_TIME_SIGNATURES ( "Player", "CheckpointsUseTim 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" ); float Player::GetWindowSeconds( TimingWindow tw ) @@ -2622,7 +2623,8 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now ) } } - if( !viColsWithHold.empty() ) + // TODO: Find a better way of handling hold checkpoints with other taps. + if( !viColsWithHold.empty() && ( CHECKPOINTS_TAPS_SEPARATE_JUDGMENT || m_NoteData.GetNumTapNotesInRow( iLastRowCrossed ) == 0 ) ) { HandleHoldCheckpoint( r, iNumHoldsHeldThisRow, iNumHoldsMissedThisRow, viColsWithHold ); } @@ -2800,7 +2802,7 @@ void Player::HandleHoldCheckpoint( int iRow, int iNumHoldsHeldThisRow, int iNumH m_pNoteField->DidHoldNote( *i, HNS_Held, bBright ); } } - + SendComboMessages( iOldCombo, iOldMissCombo ); if( m_pPlayerStageStats )