Move ReadGamePrefsFromDisk() and SaveGamePrefsToDisk()

to StepMania.cpp.  This is to reduce the dependencies of PrefsManager:
code everywhere depends on it, but it depends on code everywhere,
resulting in lots of cross-dependencies.  (Just a small step to being able
to compile smaller bits of the engine for testing.)
This commit is contained in:
Glenn Maynard
2003-10-02 01:39:23 +00:00
parent 1fd137082d
commit e41a094ee5
2 changed files with 53 additions and 4 deletions
+51 -4
View File
@@ -188,7 +188,7 @@ void ExitGame()
void ResetGame( bool ReturnToFirstScreen )
{
GAMESTATE->Reset();
PREFSMAN->ReadGamePrefsFromDisk();
ReadGamePrefsFromDisk();
INPUTMAPPER->ReadMappingsFromDisk();
NOTESKIN->RefreshNoteSkinData( GAMESTATE->m_CurGame );
@@ -215,7 +215,7 @@ void ResetGame( bool ReturnToFirstScreen )
THEME->SwitchThemeAndLanguage( "default", THEME->GetCurLanguage() );
TEXTUREMAN->DoDelayedDelete();
}
PREFSMAN->SaveGamePrefsToDisk();
SaveGamePrefsToDisk();
PREFSMAN->m_bFirstRun = false;
@@ -509,6 +509,53 @@ static void RestoreAppPri()
#endif
}
#define GAMEPREFS_INI_PATH BASE_PATH "Data" SLASH "GamePrefs.ini"
void ReadGamePrefsFromDisk()
{
if( !GAMESTATE )
return;
CString sGameName = GAMESTATE->GetCurrentGameDef()->m_szName;
IniFile ini;
ini.SetPath( GAMEPREFS_INI_PATH );
ini.ReadFile(); // it's OK if this fails
CString sAnnouncer = sGameName, sTheme = sGameName, sNoteSkin = sGameName;
// if these calls fail, the three strings will keep the initial values set above.
ini.GetValue( sGameName, "Announcer", sAnnouncer );
ini.GetValue( sGameName, "Theme", sTheme );
ini.GetValue( sGameName, "DefaultModifiers", PREFSMAN->m_sDefaultModifiers );
// it's OK to call these functions with names that don't exist.
ANNOUNCER->SwitchAnnouncer( sAnnouncer );
THEME->SwitchThemeAndLanguage( sTheme, PREFSMAN->m_sLanguage );
// NOTESKIN->SwitchNoteSkin( sNoteSkin );
}
void SaveGamePrefsToDisk()
{
if( !GAMESTATE )
return;
CString sGameName = GAMESTATE->GetCurrentGameDef()->m_szName;
IniFile ini;
ini.SetPath( GAMEPREFS_INI_PATH );
ini.ReadFile(); // it's OK if this fails
ini.SetValue( sGameName, "Announcer", ANNOUNCER->GetCurAnnouncerName() );
ini.SetValue( sGameName, "Theme", THEME->GetCurThemeName() );
ini.SetValue( sGameName, "DefaultModifiers", PREFSMAN->m_sDefaultModifiers );
ini.WriteFile();
}
#define UNLOCKS_PATH BASE_PATH "Data" SLASH "Unlocks.dat"
@@ -590,7 +637,7 @@ int main(int argc, char* argv[])
/* XXX: Why do we reload global prefs? PREFSMAN loads them in the ctor. -glenn */
PREFSMAN->ReadGlobalPrefsFromDisk( true );
PREFSMAN->ReadGamePrefsFromDisk();
ReadGamePrefsFromDisk();
DISPLAY = CreateDisplay();
TEXTUREMAN = new RageTextureManager();
@@ -641,7 +688,7 @@ int main(int argc, char* argv[])
GameLoop();
PREFSMAN->SaveGlobalPrefsToDisk();
PREFSMAN->SaveGamePrefsToDisk();
SaveGamePrefsToDisk();
#ifndef DEBUG
}
+2
View File
@@ -15,6 +15,8 @@ int SMmain(int argc, char* argv[]);
void ApplyGraphicOptions();
void ExitGame();
void ResetGame( bool ReturnToFirstScreen=true );
void ReadGamePrefsFromDisk();
void SaveGamePrefsToDisk();
#if defined(WIN32)
extern HWND g_hWndMain;