simplify NoteSkinManager::GetNoteSkinNames, add bFilterDefault
This commit is contained in:
@@ -102,16 +102,29 @@ void NoteSkinManager::LoadNoteSkinDataRecursive( const CString &sNoteSkinName, N
|
|||||||
|
|
||||||
void NoteSkinManager::GetNoteSkinNames( CStringArray &AddTo )
|
void NoteSkinManager::GetNoteSkinNames( CStringArray &AddTo )
|
||||||
{
|
{
|
||||||
/* If the skin data for the current game isn't already load it, load it now. */
|
GetNoteSkinNames( GAMESTATE->m_pCurGame, AddTo );
|
||||||
if( m_pCurGame != GAMESTATE->m_pCurGame )
|
}
|
||||||
RefreshNoteSkinData( GAMESTATE->m_pCurGame );
|
|
||||||
|
|
||||||
/* Don't call GetNoteSkinNames below, since we don't want to call RefreshNoteSkinData; it's
|
void NoteSkinManager::GetNoteSkinNames( const Game* pGame, CStringArray &AddTo, bool bFilterDefault )
|
||||||
* slow. */
|
{
|
||||||
for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin();
|
if( pGame == m_pCurGame )
|
||||||
iter != m_mapNameToData.end(); ++iter )
|
|
||||||
{
|
{
|
||||||
AddTo.push_back( iter->second.sName );
|
/* Faster: */
|
||||||
|
for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin();
|
||||||
|
iter != m_mapNameToData.end(); ++iter )
|
||||||
|
{
|
||||||
|
AddTo.push_back( iter->second.sName );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CString sBaseSkinFolder = NOTESKINS_DIR + pGame->m_szName + "/";
|
||||||
|
GetDirListing( sBaseSkinFolder + "*", AddTo, true );
|
||||||
|
|
||||||
|
// strip out "CVS"
|
||||||
|
for( int i=AddTo.size()-1; i>=0; i-- )
|
||||||
|
if( 0 == stricmp("cvs", AddTo[i]) )
|
||||||
|
AddTo.erase( AddTo.begin()+i, AddTo.begin()+i+1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move "default" to the front if it exists. */
|
/* Move "default" to the front if it exists. */
|
||||||
@@ -120,26 +133,12 @@ void NoteSkinManager::GetNoteSkinNames( CStringArray &AddTo )
|
|||||||
if( iter != AddTo.end() )
|
if( iter != AddTo.end() )
|
||||||
{
|
{
|
||||||
AddTo.erase( iter );
|
AddTo.erase( iter );
|
||||||
if( !PREFSMAN->m_bHideDefaultNoteSkin )
|
if( !bFilterDefault || !PREFSMAN->m_bHideDefaultNoteSkin )
|
||||||
AddTo.insert( AddTo.begin(), "default" );
|
AddTo.insert( AddTo.begin(), "default" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NoteSkinManager::GetNoteSkinNames( const Game* game, CStringArray &AddTo )
|
|
||||||
{
|
|
||||||
RefreshNoteSkinData( game );
|
|
||||||
|
|
||||||
for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin();
|
|
||||||
iter != m_mapNameToData.end(); ++iter )
|
|
||||||
{
|
|
||||||
AddTo.push_back( iter->second.sName );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Put the note skins back. */
|
|
||||||
RefreshNoteSkinData( GAMESTATE->m_pCurGame );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool NoteSkinManager::DoesNoteSkinExist( CString sSkinName )
|
bool NoteSkinManager::DoesNoteSkinExist( CString sSkinName )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public:
|
|||||||
~NoteSkinManager();
|
~NoteSkinManager();
|
||||||
|
|
||||||
void RefreshNoteSkinData( const Game* game );
|
void RefreshNoteSkinData( const Game* game );
|
||||||
void GetNoteSkinNames( const Game* game, CStringArray &AddTo );
|
void GetNoteSkinNames( const Game* game, CStringArray &AddTo, bool bFilterDefault=true );
|
||||||
void GetNoteSkinNames( CStringArray &AddTo ); // looks up current const Game* in GAMESTATE
|
void GetNoteSkinNames( CStringArray &AddTo ); // looks up current const Game* in GAMESTATE
|
||||||
bool DoesNoteSkinExist( CString sSkinName ); // looks up current const Game* in GAMESTATE
|
bool DoesNoteSkinExist( CString sSkinName ); // looks up current const Game* in GAMESTATE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user