Avoid refreshing note data during gameplay.

This commit is contained in:
Glenn Maynard
2003-09-12 04:18:43 +00:00
parent 1c97485e4b
commit 38855e3d91
3 changed files with 20 additions and 3 deletions
+2
View File
@@ -78,6 +78,8 @@ void GameState::Reset()
m_bAllow2ndExtraStage = true; m_bAllow2ndExtraStage = true;
m_bDifficultCourses = false; m_bDifficultCourses = false;
NOTESKIN->RefreshNoteSkinData( GAMESTATE->m_CurGame );
m_iGameSeed = rand(); m_iGameSeed = rand();
m_iRoundSeed = rand(); m_iRoundSeed = rand();
+17 -3
View File
@@ -33,6 +33,7 @@ const CString GLOBAL_BASE_NOTESKIN_DIR = NOTESKINS_DIR + "common" SLASH "default
NoteSkinManager::NoteSkinManager() NoteSkinManager::NoteSkinManager()
{ {
m_CurGame = GAME_INVALID;
} }
NoteSkinManager::~NoteSkinManager() NoteSkinManager::~NoteSkinManager()
@@ -41,6 +42,10 @@ NoteSkinManager::~NoteSkinManager()
void NoteSkinManager::RefreshNoteSkinData( Game game ) void NoteSkinManager::RefreshNoteSkinData( Game game )
{ {
/* Reload even if we don't need to, so exiting out of the menus refreshes the note
* skin list (so you don't have to restart to see new noteskins). */
m_CurGame = GAMESTATE->m_CurGame;
GameDef* pGameDef = GAMEMAN->GetGameDefForGame( game ); GameDef* pGameDef = GAMEMAN->GetGameDefForGame( game );
CString sBaseSkinFolder = NOTESKINS_DIR + pGameDef->m_szName + SLASH; CString sBaseSkinFolder = NOTESKINS_DIR + pGameDef->m_szName + SLASH;
@@ -97,7 +102,17 @@ void NoteSkinManager::LoadNoteSkinData( CString sNoteSkinName, NoteSkinData& dat
void NoteSkinManager::GetNoteSkinNames( CStringArray &AddTo ) void NoteSkinManager::GetNoteSkinNames( CStringArray &AddTo )
{ {
GetNoteSkinNames( GAMESTATE->m_CurGame, AddTo ); /* If the skin data for the current game isn't already load it, load it now. */
if( m_CurGame != GAMESTATE->m_CurGame )
RefreshNoteSkinData( GAMESTATE->m_CurGame );
/* Don't call GetNoteSkinNames below, since we don't want to call RefreshNoteSkinData; it's
* slow. */
for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin();
iter != m_mapNameToData.end(); ++iter )
{
AddTo.push_back( iter->second.sName );
}
} }
void NoteSkinManager::GetNoteSkinNames( Game game, CStringArray &AddTo ) void NoteSkinManager::GetNoteSkinNames( Game game, CStringArray &AddTo )
@@ -105,8 +120,7 @@ void NoteSkinManager::GetNoteSkinNames( Game game, CStringArray &AddTo )
RefreshNoteSkinData( game ); RefreshNoteSkinData( game );
for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin(); for( map<CString,NoteSkinData>::const_iterator iter = m_mapNameToData.begin();
iter != m_mapNameToData.end(); iter != m_mapNameToData.end(); ++iter )
++iter )
{ {
AddTo.push_back( iter->second.sName ); AddTo.push_back( iter->second.sName );
} }
+1
View File
@@ -60,6 +60,7 @@ protected:
}; };
void LoadNoteSkinData( CString sNoteSkinName, NoteSkinData& data_out ); void LoadNoteSkinData( CString sNoteSkinName, NoteSkinData& data_out );
map<CString,NoteSkinData> m_mapNameToData; map<CString,NoteSkinData> m_mapNameToData;
Game m_CurGame;
}; };