Split out HideNote. Make fewer copies of TapNotes.

This commit is contained in:
Steve Checkoway
2006-07-23 21:35:41 +00:00
parent 1b2f2b9cec
commit b0496fbcb6
2 changed files with 10 additions and 17 deletions
+4 -17
View File
@@ -1209,12 +1209,9 @@ void Player::HandleStep( int col, const RageTimer &tm, bool bHeld )
// remove all TapAttacks on this row // remove all TapAttacks on this row
for( int t=0; t<m_NoteData.GetNumTracks(); t++ ) for( int t=0; t<m_NoteData.GetNumTracks(); t++ )
{ {
TapNote tn = m_NoteData.GetTapNote(t, iIndexOverlappingNote); const TapNote &tn = m_NoteData.GetTapNote(t, iIndexOverlappingNote);
if( tn.type == TapNote::attack ) if( tn.type == TapNote::attack )
{ HideNote( t, iIndexOverlappingNote );
tn.result.bHidden = true;
m_NoteData.SetTapNote( col, iIndexOverlappingNote, tn );
}
} }
} }
@@ -1245,12 +1242,7 @@ void Player::HandleStep( int col, const RageTimer &tm, bool bHeld )
if( m_pNoteField ) if( m_pNoteField )
m_pNoteField->DidTapNote( col, score, bBright ); m_pNoteField->DidTapNote( col, score, bBright );
if( score >= TNS_W3 || bBlind ) if( score >= TNS_W3 || bBlind )
{ HideNote( col, iIndexOverlappingNote );
TapNote tn2 = tn;
tn2.result.bHidden = true;
m_NoteData.SetTapNote( col, iIndexOverlappingNote, tn2 );
}
} }
} }
else if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iIndexOverlappingNote, pn) ) else if( NoteDataWithScoring::IsRowCompletelyJudged(m_NoteData, iIndexOverlappingNote, pn) )
@@ -1452,12 +1444,7 @@ void Player::FlashGhostRow( int iRow, PlayerNumber pn )
if( m_pNoteField ) if( m_pNoteField )
m_pNoteField->DidTapNote( iTrack, lastTNS, bBright ); m_pNoteField->DidTapNote( iTrack, lastTNS, bBright );
if( lastTNS >= TNS_W3 || bBlind ) if( lastTNS >= TNS_W3 || bBlind )
{ HideNote( iTrack, iRow );
TapNote tn2 = tn;
tn2.result.bHidden = true;
m_NoteData.SetTapNote( iTrack, iRow, tn2 );
}
} }
} }
+6
View File
@@ -139,6 +139,12 @@ protected:
int GetClosestNote( int col, int iNoteRow, int iMaxRowsAhead, int iMaxRowsBehind, bool bAllowGraded ) const; int GetClosestNote( int col, int iNoteRow, int iMaxRowsAhead, int iMaxRowsBehind, bool bAllowGraded ) const;
bool IsPlayingBeginner() const; bool IsPlayingBeginner() const;
inline void HideNote( int col, int row )
{
NoteData::iterator iter = m_NoteData.FindTapNote( col, row );
if( iter != m_NoteData.end(col) )
iter->second.result.bHidden = true;
}
bool m_bLoaded; bool m_bLoaded;