use a vector for hold note scores
This commit is contained in:
@@ -19,23 +19,20 @@ NoteDataWithScoring::NoteDataWithScoring()
|
|||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NoteDataWithScoring::Init()
|
void NoteDataWithScoring::Init(int taps, int holds)
|
||||||
{
|
{
|
||||||
NoteData::Init();
|
NoteData::Init();
|
||||||
InitScoringData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void NoteDataWithScoring::InitScoringData()
|
|
||||||
{
|
|
||||||
for( int t=0; t<MAX_NOTE_TRACKS; t++ )
|
for( int t=0; t<MAX_NOTE_TRACKS; t++ )
|
||||||
for( int i=0; i<MAX_TAP_NOTE_ROWS; i++ )
|
for( int i=0; i<MAX_TAP_NOTE_ROWS; i++ )
|
||||||
m_TapNoteScores[t][i] = TNS_NONE;
|
m_TapNoteScores[t][i] = TNS_NONE;
|
||||||
|
|
||||||
for( int i=0; i<MAX_HOLD_NOTES; i++ )
|
m_HoldNoteScores.clear();
|
||||||
{
|
m_HoldNoteScores.insert(m_HoldNoteScores.begin(), holds, HNS_NONE);
|
||||||
m_HoldNoteScores[i] = HNS_NONE;
|
|
||||||
m_fHoldNoteLife[i] = 1.0f;
|
m_fHoldNoteLife.clear();
|
||||||
}
|
// start with full life
|
||||||
|
m_fHoldNoteLife.insert(m_fHoldNoteLife.begin(), holds, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
int NoteDataWithScoring::GetNumTapNotesWithScore( TapNoteScore tns, const float fStartBeat, const float fEndBeat )
|
int NoteDataWithScoring::GetNumTapNotesWithScore( TapNoteScore tns, const float fStartBeat, const float fEndBeat )
|
||||||
|
|||||||
@@ -16,19 +16,16 @@
|
|||||||
struct NoteDataWithScoring : public NoteData
|
struct NoteDataWithScoring : public NoteData
|
||||||
{
|
{
|
||||||
NoteDataWithScoring();
|
NoteDataWithScoring();
|
||||||
void Init();
|
void Init(int taps=0, int holds=0);
|
||||||
void InitScoringData();
|
|
||||||
|
|
||||||
// maintain this extra data in addition to the NoteData
|
// maintain this extra data in addition to the NoteData
|
||||||
TapNoteScore m_TapNoteScores[MAX_NOTE_TRACKS][MAX_TAP_NOTE_ROWS];
|
TapNoteScore m_TapNoteScores[MAX_NOTE_TRACKS][MAX_TAP_NOTE_ROWS];
|
||||||
HoldNoteScore m_HoldNoteScores[MAX_HOLD_NOTES];
|
vector<HoldNoteScore> m_HoldNoteScores;
|
||||||
float m_fHoldNoteLife[MAX_TAP_NOTE_ROWS]; // 1.0 means this HoldNote has full life.
|
/* 1.0 means this HoldNote has full life.
|
||||||
// 0.0 means this HoldNote is dead
|
* 0.0 means this HoldNote is dead
|
||||||
// When this value hits 0.0 for the first time,
|
* When this value hits 0.0 for the first time, m_HoldScore becomes HSS_NG.
|
||||||
// m_HoldScore becomes HSS_NG.
|
* If the life is > 0.0 when the HoldNote ends, then m_HoldScore becomes HSS_OK. */
|
||||||
// If the life is > 0.0 when the HoldNote ends, then
|
vector<float> m_fHoldNoteLife;
|
||||||
// m_HoldScore becomes HSS_OK.
|
|
||||||
|
|
||||||
|
|
||||||
// statistics
|
// statistics
|
||||||
int GetNumTapNotesWithScore( TapNoteScore tns, const float fStartBeat = 0, const float fEndBeat = MAX_BEATS );
|
int GetNumTapNotesWithScore( TapNoteScore tns, const float fStartBeat = 0, const float fEndBeat = MAX_BEATS );
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ void NoteField::Load( NoteData* pNoteData, PlayerNumber pn, int iPixelsToDrawBeh
|
|||||||
|
|
||||||
m_fPercentFadeToFail = -1;
|
m_fPercentFadeToFail = -1;
|
||||||
|
|
||||||
NoteDataWithScoring::Init();
|
NoteDataWithScoring::Init(pNoteData->GetNumTapNotes(), pNoteData->GetNumHoldNotes());
|
||||||
|
|
||||||
for( int i=0; i<MAX_HOLD_NOTES; i++ )
|
for( int i=0; i<MAX_HOLD_NOTES; i++ )
|
||||||
m_bIsHoldingHoldNote[i] = false;
|
m_bIsHoldingHoldNote[i] = false;
|
||||||
@@ -62,11 +62,6 @@ void NoteField::Load( NoteData* pNoteData, PlayerNumber pn, int iPixelsToDrawBeh
|
|||||||
for( int c=0; c<m_iNumTracks; c++ )
|
for( int c=0; c<m_iNumTracks; c++ )
|
||||||
m_NoteDisplay[c].Load( c, pn );
|
m_NoteDisplay[c].Load( c, pn );
|
||||||
|
|
||||||
|
|
||||||
for( i=0; i<MAX_HOLD_NOTES; i++ )
|
|
||||||
m_fHoldNoteLife[i] = 1; // start with full life
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT( m_iNumTracks == GAMESTATE->GetCurrentStyleDef()->m_iColsPerPlayer );
|
ASSERT( m_iNumTracks == GAMESTATE->GetCurrentStyleDef()->m_iColsPerPlayer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, ScoreDi
|
|||||||
const StyleDef* pStyleDef = GAMESTATE->GetCurrentStyleDef();
|
const StyleDef* pStyleDef = GAMESTATE->GetCurrentStyleDef();
|
||||||
|
|
||||||
// init scoring
|
// init scoring
|
||||||
NoteDataWithScoring::Init();
|
NoteDataWithScoring::Init(pNoteData->GetNumTapNotes(), pNoteData->GetNumHoldNotes());
|
||||||
|
|
||||||
// copy note data
|
// copy note data
|
||||||
this->CopyAll( pNoteData );
|
this->CopyAll( pNoteData );
|
||||||
|
|||||||
Reference in New Issue
Block a user