From 575ab5b61609fd16b804112bcfabc683c4cd5790 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Tue, 13 Mar 2007 10:04:15 +0000 Subject: [PATCH] checkpoint off of HoldResult.fLife, not HoldResult.bActive. bActive is false any time songRow is >= the end row of the hold. This was causing the last checkpoint to be missed whenever iFirstRowCrossed == iEndRow --- stepmania/src/Player.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index f453c780ad..438f50169c 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -2233,8 +2233,8 @@ void Player::CrossedRows( int iFirstRowCrossed, int iLastRowCrossed, const RageT vector viColsWithHold; bool bAllHoldsHeldThisRow = true; - // start at r-1 so that we can count the tail of a hold as a checkpoint - NoteData::all_tracks_iterator iter = m_NoteData.GetTapNoteRangeAllTracks( r-1, r+1, NULL, true ); + // start at r-1 so that we consider holds whose end rows are equal to the checkpoint row + NoteData::all_tracks_iterator iter = m_NoteData.GetTapNoteRangeAllTracks( r-1, r, NULL, true ); for( ; !iter.IsAtEnd(); ++iter ) { TapNote &tn = *iter; @@ -2257,7 +2257,7 @@ void Player::CrossedRows( int iFirstRowCrossed, int iLastRowCrossed, const RageT continue; viColsWithHold.push_back( iTrack ); - bAllHoldsHeldThisRow &= tn.HoldResult.bHeld; + bAllHoldsHeldThisRow &= tn.HoldResult.fLife > 0; } if( !viColsWithHold.empty() )