From 5407f0998e2953b5970b517756c332d185d83e65 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 21 Jan 2005 22:50:13 +0000 Subject: [PATCH] merge tap result into a TapNoteResult struct --- stepmania/src/NoteDataWithScoring.cpp | 18 +++++++++++------- stepmania/src/NoteDataWithScoring.h | 22 ++++++++++++++++------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/stepmania/src/NoteDataWithScoring.cpp b/stepmania/src/NoteDataWithScoring.cpp index 00af78bb83..6c5f64a917 100644 --- a/stepmania/src/NoteDataWithScoring.cpp +++ b/stepmania/src/NoteDataWithScoring.cpp @@ -342,26 +342,30 @@ TapNoteScore NoteDataWithScoring::GetTapNoteScore(unsigned track, unsigned row) { if(row >= m_TapNoteScores[track].size()) return TNS_NONE; - return m_TapNoteScores[track][row]; + return m_TapNoteScores[track][row].tns; } void NoteDataWithScoring::SetTapNoteScore(unsigned track, unsigned row, TapNoteScore tns) { - extend(m_TapNoteScores[track], TNS_NONE, row); - m_TapNoteScores[track][row] = tns; + extend(m_TapNoteScores[track], TapNoteResult(), row); + TapNoteResult tnr = m_TapNoteScores[track][row]; + tnr.tns = tns; + m_TapNoteScores[track][row] = tnr; } float NoteDataWithScoring::GetTapNoteOffset(unsigned track, unsigned row) const { - if(row >= m_TapNoteOffset[track].size()) + if(row >= m_TapNoteScores[track].size()) return 0; - return m_TapNoteOffset[track][row]; + return m_TapNoteScores[track][row].fTapNoteOffset; } void NoteDataWithScoring::SetTapNoteOffset(unsigned track, unsigned row, float offset) { - extend(m_TapNoteOffset[track], 0.f, row); - m_TapNoteOffset[track][row] = offset; + extend(m_TapNoteScores[track], TapNoteResult(), row); + TapNoteResult tnr = m_TapNoteScores[track][row]; + tnr.fTapNoteOffset = offset; + m_TapNoteScores[track][row] = tnr; } /* We use the end row to index hold notes, instead of the start row, because the start row diff --git a/stepmania/src/NoteDataWithScoring.h b/stepmania/src/NoteDataWithScoring.h index ecffa6ffb1..fb2d126255 100644 --- a/stepmania/src/NoteDataWithScoring.h +++ b/stepmania/src/NoteDataWithScoring.h @@ -15,6 +15,21 @@ struct RowTrack: public pair RowTrack( const HoldNote &hn ): pair( hn.iEndRow, hn.iTrack ) { } }; +struct TapNoteResult +{ + TapNoteResult() + { + tns = TNS_NONE; + fTapNoteOffset = 0; + } + TapNoteScore tns; + + /* Offset, in seconds, for a tap grade. Negative numbers mean the note + * was hit early; positive numbers mean it was hit late. These values are + * only meaningful for graded taps (tns >= TNS_BOO). */ + float fTapNoteOffset; +}; + struct HoldNoteResult { HoldNoteScore hns; @@ -43,14 +58,9 @@ struct HoldNoteResult class NoteDataWithScoring : public NoteData { // maintain this extra data in addition to the NoteData - vector m_TapNoteScores[MAX_NOTE_TRACKS]; + vector m_TapNoteScores[MAX_NOTE_TRACKS]; map m_HoldNoteScores; - /* Offset, in seconds, for each tap grade. Negative numbers mean the note - * was hit early; positive numbers mean it was hit late. These values are - * only meaningful for graded taps (m_TapNoteScores >= TNS_BOO). */ - vector m_TapNoteOffset[MAX_NOTE_TRACKS]; - public: NoteDataWithScoring(); void Init();