Couples stuff. Not complete, but functional; more coming and this

stuff needs testing.
This commit is contained in:
Glenn Maynard
2002-09-06 08:56:28 +00:00
parent fa0916e1e0
commit 13d6d5f116
18 changed files with 203 additions and 136 deletions
+16 -5
View File
@@ -1232,14 +1232,25 @@ void Song::TidyUpData()
}
}
void Song::GetNotesThatMatch( NotesType nt, CArray<Notes*, Notes*>& arrayAddTo ) const
/* Get Notes that match a given style and player. */
void Song::GetNotesThatMatch( const StyleDef *s, int p, CArray<Notes*, Notes*>& arrayAddTo ) const
{
for( int i=0; i<m_apNotes.GetSize(); i++ ) // for each of the Song's Notes
if( m_apNotes[i]->m_NotesType == nt )
if( m_apNotes[i]->m_NotesType == s->m_NotesTypes[p] )
arrayAddTo.Add( m_apNotes[i] );
}
/* Return whether the song is playable in the given style. */
bool Song::SongCompleteForStyle( const StyleDef *st ) const
{
for( int pn = 0; pn < NUM_PLAYERS; ++pn )
{
if(st->m_NotesTypes[pn] == NOTES_TYPE_INVALID) continue; /* unused */
if(!SongHasNotesType(st->m_NotesTypes[pn])) return false;
}
return true;
}
bool Song::SongHasNotesType( NotesType nt ) const
{
for( int i=0; i < m_apNotes.GetSize(); i++ ) // foreach Notes
@@ -1464,10 +1475,10 @@ void Song::AddAutoGenNotes()
}
}
Grade Song::GetGradeForDifficultyClass( NotesType nt, DifficultyClass dc ) const
Grade Song::GetGradeForDifficultyClass( const StyleDef *st, int p, DifficultyClass dc ) const
{
CArray<Notes*, Notes*> aNotes;
this->GetNotesThatMatch( nt, aNotes );
this->GetNotesThatMatch( st, p, aNotes );
SortNotesArrayByDifficulty( aNotes );
for( int i=0; i<aNotes.GetSize(); i++ )