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:
@@ -2233,8 +2233,8 @@ void Player::CrossedRows( int iFirstRowCrossed, int iLastRowCrossed, const RageT
|
|||||||
vector<int> viColsWithHold;
|
vector<int> viColsWithHold;
|
||||||
bool bAllHoldsHeldThisRow = true;
|
bool bAllHoldsHeldThisRow = true;
|
||||||
|
|
||||||
// start at r-1 so that we can count the tail of a hold as a checkpoint
|
// 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+1, NULL, true );
|
NoteData::all_tracks_iterator iter = m_NoteData.GetTapNoteRangeAllTracks( r-1, r, NULL, true );
|
||||||
for( ; !iter.IsAtEnd(); ++iter )
|
for( ; !iter.IsAtEnd(); ++iter )
|
||||||
{
|
{
|
||||||
TapNote &tn = *iter;
|
TapNote &tn = *iter;
|
||||||
@@ -2257,7 +2257,7 @@ void Player::CrossedRows( int iFirstRowCrossed, int iLastRowCrossed, const RageT
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
viColsWithHold.push_back( iTrack );
|
viColsWithHold.push_back( iTrack );
|
||||||
bAllHoldsHeldThisRow &= tn.HoldResult.bHeld;
|
bAllHoldsHeldThisRow &= tn.HoldResult.fLife > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !viColsWithHold.empty() )
|
if( !viColsWithHold.empty() )
|
||||||
|
|||||||
Reference in New Issue
Block a user