fix correctness of void UpdateJudgedRows() (rows weren't being judged because the iterator was pointing to the middle of a row instead of the beginning of the row.
This commit is contained in:
@@ -2183,7 +2183,8 @@ void Player::UpdateJudgedRows()
|
|||||||
bool bAllJudged = true;
|
bool bAllJudged = true;
|
||||||
const bool bSeparately = GAMESTATE->GetCurrentGame()->m_bCountNotesSeparately;
|
const bool bSeparately = GAMESTATE->GetCurrentGame()->m_bCountNotesSeparately;
|
||||||
|
|
||||||
NoteData::all_tracks_iterator &iter = *m_pIterUnjudgedRows;
|
{
|
||||||
|
NoteData::all_tracks_iterator iter = *m_pIterUnjudgedRows;
|
||||||
int iLastSeenRow = -1;
|
int iLastSeenRow = -1;
|
||||||
for( ; !iter.IsAtEnd() && iter.Row() <= iEndRow; iter++ )
|
for( ; !iter.IsAtEnd() && iter.Row() <= iEndRow; iter++ )
|
||||||
{
|
{
|
||||||
@@ -2191,12 +2192,16 @@ void Player::UpdateJudgedRows()
|
|||||||
|
|
||||||
if( iLastSeenRow != iRow )
|
if( iLastSeenRow != iRow )
|
||||||
{
|
{
|
||||||
|
iLastSeenRow = iRow;
|
||||||
|
|
||||||
// crossed a not-empty row
|
// crossed a not-empty row
|
||||||
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRow, pn) )
|
if( !NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iRow, pn) )
|
||||||
{
|
{
|
||||||
bAllJudged = false;
|
bAllJudged = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if( bAllJudged )
|
||||||
|
*m_pIterUnjudgedRows = iter;
|
||||||
if( m_pJudgedRows->JudgeRow(iRow) )
|
if( m_pJudgedRows->JudgeRow(iRow) )
|
||||||
continue;
|
continue;
|
||||||
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iRow, pn ).result;
|
const TapNoteResult &lastTNR = NoteDataWithScoring::LastTapNoteWithResult( m_NoteData, iRow, pn ).result;
|
||||||
@@ -2220,7 +2225,7 @@ void Player::UpdateJudgedRows()
|
|||||||
HandleTapRowScore( iRow );
|
HandleTapRowScore( iRow );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
bAllJudged = true;
|
bAllJudged = true;
|
||||||
@@ -2234,11 +2239,9 @@ void Player::UpdateJudgedRows()
|
|||||||
|
|
||||||
if( iRow != iLastSeenRow )
|
if( iRow != iLastSeenRow )
|
||||||
{
|
{
|
||||||
|
iLastSeenRow = iRow;
|
||||||
if( bAllJudged )
|
if( bAllJudged )
|
||||||
{
|
*m_pIterUnjudgedMineRows = iter;
|
||||||
SAFE_DELETE( m_pIterUnjudgedMineRows );
|
|
||||||
m_pIterUnjudgedMineRows = new NoteData::all_tracks_iterator(iter);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool bMineNotHidden = tn.type == TapNote::mine && !tn.result.bHidden;
|
bool bMineNotHidden = tn.type == TapNote::mine && !tn.result.bHidden;
|
||||||
|
|||||||
Reference in New Issue
Block a user