Use fallbcak notes; some fixes for it.
This commit is contained in:
@@ -471,9 +471,9 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
"DDR Couple", // m_szName
|
"DDR Couples", // m_szName
|
||||||
{ NOTES_TYPE_DANCE_COUPLE_1, NOTES_TYPE_DANCE_COUPLE_2 }, // m_NotesTypes
|
{ NOTES_TYPE_DANCE_COUPLE_1, NOTES_TYPE_DANCE_COUPLE_2 }, // m_NotesTypes
|
||||||
NOTES_TYPE_INVALID, // m_FallbackNotesType
|
NOTES_TYPE_DANCE_SINGLE, // m_FallbackNotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
4, // m_iColsPerPlayer
|
4, // m_iColsPerPlayer
|
||||||
@@ -716,8 +716,8 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
"Pump Couples", // m_szName
|
"Pump Couples", // m_szName
|
||||||
{ NOTES_TYPE_PUMP_SINGLE,NOTES_TYPE_PUMP_COUPLE_2}, // m_NotesTypes
|
{ NOTES_TYPE_PUMP_COUPLE_1,NOTES_TYPE_PUMP_COUPLE_2}, // m_NotesTypes
|
||||||
NOTES_TYPE_INVALID, // m_FallbackNotesType
|
NOTES_TYPE_PUMP_SINGLE, // m_FallbackNotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
5, // m_iColsPerPlayer
|
5, // m_iColsPerPlayer
|
||||||
|
|||||||
+24
-4
@@ -556,16 +556,36 @@ void Song::TidyUpData()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get Notes that match a given style and player. */
|
/* Get Notes that match a given style and player.
|
||||||
void Song::GetNotesThatMatch( const StyleDef *s, int p, CArray<Notes*, Notes*>& arrayAddTo ) const
|
*
|
||||||
|
* If UseFallbacks is true, fallback notes will be returned if (and
|
||||||
|
* only if) no non-fallback notes are found at all.
|
||||||
|
*
|
||||||
|
* If UseFallbacks is false, fallback notes will never be returned.
|
||||||
|
*/
|
||||||
|
void Song::GetNotesThatMatch( const StyleDef *s, int p, CArray<Notes*, Notes*>& arrayAddTo, bool UseFallbacks ) const
|
||||||
{
|
{
|
||||||
|
int cnt = GetNotesThatMatch( s->m_NotesTypes[p], arrayAddTo );
|
||||||
|
|
||||||
|
if ( UseFallbacks && !cnt )
|
||||||
|
GetNotesThatMatch( s->m_FallbackNotesType, arrayAddTo );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get note patterns of the given type; return the number of patterns returned. */
|
||||||
|
int Song::GetNotesThatMatch( NotesType nt, CArray<Notes*, Notes*>& arrayAddTo ) const
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
|
||||||
for( int i=0; i<m_apNotes.GetSize(); i++ ) // for each of the Song's Notes
|
for( int i=0; i<m_apNotes.GetSize(); i++ ) // for each of the Song's Notes
|
||||||
{
|
{
|
||||||
if( m_apNotes[i]->m_NotesType == s->m_NotesTypes[p] ||
|
if( m_apNotes[i]->m_NotesType == nt )
|
||||||
m_apNotes[i]->m_NotesType == s->m_FallbackNotesType )
|
{
|
||||||
arrayAddTo.Add( m_apNotes[i] );
|
arrayAddTo.Add( m_apNotes[i] );
|
||||||
|
ret++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return whether the song is playable in the given style. */
|
/* Return whether the song is playable in the given style. */
|
||||||
bool Song::SongCompleteForStyle( const StyleDef *st ) const
|
bool Song::SongCompleteForStyle( const StyleDef *st ) const
|
||||||
|
|||||||
@@ -265,8 +265,8 @@ void SongSelector::OnNotesTypeChange()
|
|||||||
m_textStyle.SetText( GAMEMAN->GetStyleDefForStyle(GetSelectedStyle())->m_szName );
|
m_textStyle.SetText( GAMEMAN->GetStyleDefForStyle(GetSelectedStyle())->m_szName );
|
||||||
|
|
||||||
m_pNotess.RemoveAll();
|
m_pNotess.RemoveAll();
|
||||||
/* XXX. This will list fallback notes, which we don't want. */
|
/* Only get primary notes in this style, not fallback notes. */
|
||||||
GetSelectedSong()->GetNotesThatMatch( GAMEMAN->GetStyleDefForStyle(GetSelectedStyle()), 0, m_pNotess );
|
GetSelectedSong()->GetNotesThatMatch( GAMEMAN->GetStyleDefForStyle(GetSelectedStyle()), 0, m_pNotess, false );
|
||||||
SortNotesArrayByDifficulty( m_pNotess );
|
SortNotesArrayByDifficulty( m_pNotess );
|
||||||
m_pNotess.Add( NULL ); // marker for "(NEW)"
|
m_pNotess.Add( NULL ); // marker for "(NEW)"
|
||||||
m_iSelectedNotes = 0;
|
m_iSelectedNotes = 0;
|
||||||
|
|||||||
@@ -174,7 +174,8 @@ public:
|
|||||||
bool SongCompleteForStyle( const StyleDef *st ) const;
|
bool SongCompleteForStyle( const StyleDef *st ) const;
|
||||||
bool SongHasNotesType( NotesType nt ) const;
|
bool SongHasNotesType( NotesType nt ) const;
|
||||||
bool SongHasNotesTypeAndDifficulty( NotesType nt, DifficultyClass dc ) const;
|
bool SongHasNotesTypeAndDifficulty( NotesType nt, DifficultyClass dc ) const;
|
||||||
void GetNotesThatMatch( const StyleDef *s, int p, CArray<Notes*, Notes*>& arrayAddTo ) const;
|
void GetNotesThatMatch( const StyleDef *s, int p, CArray<Notes*, Notes*>& arrayAddTo, bool UseFallbacks = true) const;
|
||||||
|
int GetNotesThatMatch( NotesType nt, CArray<Notes*, Notes*>& arrayAddTo ) const;
|
||||||
int GetNumTimesPlayed() const;
|
int GetNumTimesPlayed() const;
|
||||||
bool IsNew() const;
|
bool IsNew() const;
|
||||||
bool IsEasy( NotesType nt ) const;
|
bool IsEasy( NotesType nt ) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user