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
This commit is contained in:
Chris Danford
2007-03-13 10:04:15 +00:00
parent bd796e566c
commit 575ab5b616
+3 -3
View File
@@ -2233,8 +2233,8 @@ void Player::CrossedRows( int iFirstRowCrossed, int iLastRowCrossed, const RageT
vector<int> 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() )