merge tap result into a TapNoteResult struct

This commit is contained in:
Glenn Maynard
2005-01-21 22:50:13 +00:00
parent f19925001d
commit 5407f0998e
2 changed files with 27 additions and 13 deletions
+11 -7
View File
@@ -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
+16 -6
View File
@@ -15,6 +15,21 @@ struct RowTrack: public pair<int,int>
RowTrack( const HoldNote &hn ): pair<int,int>( 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<TapNoteScore> m_TapNoteScores[MAX_NOTE_TRACKS];
vector<TapNoteResult> m_TapNoteScores[MAX_NOTE_TRACKS];
map<RowTrack, HoldNoteResult> 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<float> m_TapNoteOffset[MAX_NOTE_TRACKS];
public:
NoteDataWithScoring();
void Init();