use SongID in DisabledSongs logic

This commit is contained in:
Chris Danford
2008-02-22 01:19:47 +00:00
parent 78bf87c021
commit 9c5a4658f2
3 changed files with 13 additions and 12 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ ThemeMetric<RString> DEFAULT_SONG ("GameState","DefaultSong");
Song* GameState::GetDefaultSong() const Song* GameState::GetDefaultSong() const
{ {
SongID sid; SongID sid;
sid.LoadFromDir( DEFAULT_SONG ); sid.FromString( DEFAULT_SONG );
return sid.ToSong(); return sid.ToSong();
} }
+11 -10
View File
@@ -908,21 +908,20 @@ void SongManager::SetPreferences()
void SongManager::SaveEnabledSongsToPref() void SongManager::SaveEnabledSongsToPref()
{ {
vector<RString> asDisabledSongs; vector<RString> vsDisabledSongs;
split( g_sDisabledSongs, ";", asDisabledSongs, true );
// Intentionally drop disabled song entries for songs that aren't currently loaded.
const vector<Song*> &apSongs = SONGMAN->GetSongs(); const vector<Song*> &apSongs = SONGMAN->GetSongs();
FOREACH_CONST( Song *, apSongs, s ) FOREACH_CONST( Song *, apSongs, s )
{ {
Song *pSong = (*s); Song *pSong = (*s);
bool bEnabled = pSong->GetEnabled(); SongID sid;
vector<RString>::iterator it = find( asDisabledSongs.begin(), asDisabledSongs.end(), pSong->GetSongDir() ); sid.FromSong( pSong );
if( bEnabled && it == asDisabledSongs.end() ) if( !pSong->GetEnabled() )
asDisabledSongs.push_back( pSong->GetSongDir() ); vsDisabledSongs.push_back( sid.ToString() );
else if( !bEnabled && it != asDisabledSongs.end() )
asDisabledSongs.erase( it );
} }
g_sDisabledSongs.Set( join(";", asDisabledSongs) ); g_sDisabledSongs.Set( join(";", vsDisabledSongs) );
} }
void SongManager::LoadEnabledSongsFromPref() void SongManager::LoadEnabledSongsFromPref()
@@ -935,7 +934,9 @@ void SongManager::LoadEnabledSongsFromPref()
FOREACH_CONST( RString, asDisabledSongs, s ) FOREACH_CONST( RString, asDisabledSongs, s )
{ {
Song *pSong = this->FindSong( *s ); SongID sid;
sid.FromString( *s );
Song *pSong = sid.ToSong();
if( pSong ) if( pSong )
pSong->SetEnabled( false ); pSong->SetEnabled( false );
} }
+1 -1
View File
@@ -138,7 +138,7 @@ public:
XNode* CreateNode() const; XNode* CreateNode() const;
void LoadFromNode( const XNode* pNode ); void LoadFromNode( const XNode* pNode );
void LoadFromDir( RString _sDir ) { sDir = _sDir; } void FromString( RString _sDir ) { sDir = _sDir; }
RString ToString() const; RString ToString() const;
bool IsValid() const; bool IsValid() const;
}; };