Avoid refreshing note data during gameplay.
This commit is contained in:
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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 );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user