From 6ec2fe2b5716b3bc35801676e388f210025679f6 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Mon, 18 May 2009 04:16:25 +0000 Subject: [PATCH] New metric available to disable incrementing roll combo for keeping it alive. Must activate manually: current behavior is default. --- stepmania/Themes/default/metrics.ini | 1 + stepmania/src/Player.cpp | 34 ++++++++++++++++------------ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 224a7d202d..c396fc52fb 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2380,6 +2380,7 @@ ImmediateHoldLetGo=true RequireStepOnHoldHeads=true CheckpointsUseTimeSignatures=false InitialHoldLife=1 +RollBodyIncrementsCombo=true [PlayerShared] Fallback="Player" diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 8452be497c..bfdc7f8d6e 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -133,6 +133,7 @@ ThemeMetric HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" ); ThemeMetric CHECKPOINTS_USE_TIME_SIGNATURES ( "Player", "CheckpointsUseTimeSignatures" ); ThemeMetric IMMEDIATE_HOLD_LET_GO ( "Player", "ImmediateHoldLetGo" ); ThemeMetric REQUIRE_STEP_ON_HOLD_HEADS ( "Player", "RequireStepOnHoldHeads" ); +ThemeMetric ROLL_BODY_INCREMENTS_COMBO ( "Player", "RollBodyIncrementsCombo" ); float Player::GetWindowSeconds( TimingWindow tw ) @@ -1668,23 +1669,26 @@ void Player::StepStrumHopo( int col, int row, const RageTimer &tm, bool bHeld, b // Increase life tn.HoldResult.fLife = 1; - // increment combo - const int iOldCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurCombo : 0; - const int iOldMissCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurMissCombo : 0; - - if( m_pPlayerStageStats ) + if( ROLL_BODY_INCREMENTS_COMBO ) { - m_pPlayerStageStats->m_iCurCombo++; - m_pPlayerStageStats->m_iCurMissCombo = 0; + // increment combo + const int iOldCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurCombo : 0; + const int iOldMissCombo = m_pPlayerStageStats ? m_pPlayerStageStats->m_iCurMissCombo : 0; + + if( m_pPlayerStageStats ) + { + m_pPlayerStageStats->m_iCurCombo++; + m_pPlayerStageStats->m_iCurMissCombo = 0; + } + + SendComboMessages( iOldCombo, iOldMissCombo ); + if( m_pPlayerStageStats ) + SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); + + bool bBright = m_pPlayerStageStats && m_pPlayerStageStats->m_iCurCombo>(int)BRIGHT_GHOST_COMBO_THRESHOLD; + if( m_pNoteField ) + m_pNoteField->DidHoldNote( col, HNS_Held, bBright ); } - - SendComboMessages( iOldCombo, iOldMissCombo ); - if( m_pPlayerStageStats ) - SetCombo( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); - - bool bBright = m_pPlayerStageStats && m_pPlayerStageStats->m_iCurCombo>(int)BRIGHT_GHOST_COMBO_THRESHOLD; - if( m_pNoteField ) - m_pNoteField->DidHoldNote( col, HNS_Held, bBright ); } break; }