From 81f547a879fae8c03d8d0b9dd673366c692f54dc Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 17 Mar 2007 00:56:39 +0000 Subject: [PATCH] add InitialHoldLife --- stepmania/src/Player.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 1556a290f7..f38ff08fc2 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -126,6 +126,7 @@ static Preference1D m_fTimingWindowSeconds( TimingWindowSecondsInit, NUM_ static Preference m_fTimingWindowJump ( "TimingWindowJump", 0.25 ); Preference g_fTimingWindowHopo ( "TimingWindowHopo", 0.25 ); // max time between notes in a hopo chain Preference g_fTimingWindowStrum ( "TimingWindowStrum", 0.1f ); // max time between strum and when the frets must match +ThemeMetric INITIAL_HOLD_LIFE ( "Player", "InitialHoldLife" ); ThemeMetric PENALIZE_TAP_SCORE_NONE ( "Player", "PenalizeTapScoreNone" ); ThemeMetric JUDGE_HOLD_NOTES_ON_SAME_ROW_TOGETHER ( "Player", "JudgeHoldNotesOnSameRowTogether" ); ThemeMetric HOLD_CHECKPOINTS ( "Player", "HoldCheckpoints" ); @@ -402,7 +403,18 @@ void Player::Load() /* Apply transforms. */ NoteDataUtil::TransformNoteData( m_NoteData, m_pPlayerState->m_PlayerOptions.GetStage(), GAMESTATE->GetCurrentStyle()->m_StepsType ); - + + /* Apply InitialHoldLife. */ + { + NoteData::all_tracks_iterator iter = m_NoteData.GetTapNoteRangeAllTracks( 0, MAX_NOTE_ROW, NULL, true ); + for( ; !iter.IsAtEnd(); ++iter ) + { + TapNote &tn = *iter; + if( tn.type == TapNote::hold_head ) + tn.HoldResult.fLife = INITIAL_HOLD_LIFE; + } + } + const Song* pSong = GAMESTATE->m_pCurSong; if( GAMESTATE->m_pCurGame->m_bAllowHopos ) NoteDataUtil::SetHopoPossibleFlags( pSong, m_NoteData );