merge tap result into a TapNoteResult struct
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user