Add ChangeCurrentGame. Move the currently-selected game to

GamePrefs.ini.
This commit is contained in:
Glenn Maynard
2003-10-02 03:06:20 +00:00
parent 99027657e3
commit fdaac32a8f
4 changed files with 28 additions and 19 deletions
-10
View File
@@ -14,7 +14,6 @@
#include "PrefsManager.h" #include "PrefsManager.h"
#include "IniFile.h" #include "IniFile.h"
#include "GameState.h" #include "GameState.h"
#include "RageException.h"
#include "RageDisplay.h" #include "RageDisplay.h"
#include "RageUtil.h" #include "RageUtil.h"
#include "arch/arch.h" /* for default driver specs */ #include "arch/arch.h" /* for default driver specs */
@@ -288,13 +287,6 @@ void PrefsManager::ReadGlobalPrefsFromDisk( bool bSwitchToLastPlayedGame )
CString sAdditionalSongFolders; CString sAdditionalSongFolders;
ini.GetValue( "Options", "AdditionalSongFolders", sAdditionalSongFolders ); ini.GetValue( "Options", "AdditionalSongFolders", sAdditionalSongFolders );
split( sAdditionalSongFolders, ",", m_asAdditionalSongFolders, true ); split( sAdditionalSongFolders, ",", m_asAdditionalSongFolders, true );
if( bSwitchToLastPlayedGame )
{
Game game;
if( ini.GetValue("Options", "Game", (int&)game) )
GAMESTATE->m_CurGame = game;
}
} }
@@ -419,7 +411,5 @@ void PrefsManager::SaveGlobalPrefsToDisk()
ini.SetValue ( "Options", "AdditionalSongFolders", join(",", m_asAdditionalSongFolders) ); ini.SetValue ( "Options", "AdditionalSongFolders", join(",", m_asAdditionalSongFolders) );
ini.SetValue( "Options", "Game", GAMESTATE->m_CurGame );
ini.WriteFile(); ini.WriteFile();
} }
+1 -7
View File
@@ -105,15 +105,9 @@ static void GameSel( int &sel, bool ToSel, const CStringArray &choices )
if( !stricmp(choices[i], sCurGameName) ) if( !stricmp(choices[i], sCurGameName) )
sel = i; sel = i;
} else { } else {
SaveGamePrefsToDisk();
INPUTMAPPER->SaveMappingsToDisk(); // save mappings before switching the game
vector<Game> aGames; vector<Game> aGames;
GAMEMAN->GetEnabledGames( aGames ); GAMEMAN->GetEnabledGames( aGames );
GAMESTATE->m_CurGame = aGames[sel]; ChangeCurrentGame( aGames[sel] );
ReadGamePrefsFromDisk();
INPUTMAPPER->ReadMappingsFromDisk();
} }
} }
+23 -1
View File
@@ -512,8 +512,21 @@ static void RestoreAppPri()
#define GAMEPREFS_INI_PATH BASE_PATH "Data" SLASH "GamePrefs.ini" #define GAMEPREFS_INI_PATH BASE_PATH "Data" SLASH "GamePrefs.ini"
void ChangeCurrentGame( Game g )
{
SaveGamePrefsToDisk();
INPUTMAPPER->SaveMappingsToDisk(); // save mappings before switching the game
void ReadGamePrefsFromDisk() GAMESTATE->m_CurGame = g;
ReadGamePrefsFromDisk( false );
INPUTMAPPER->ReadMappingsFromDisk();
/* Save the newly-selected game. */
SaveGamePrefsToDisk();
}
void ReadGamePrefsFromDisk( bool bSwitchToLastPlayedGame )
{ {
if( !GAMESTATE ) if( !GAMESTATE )
return; return;
@@ -535,8 +548,16 @@ void ReadGamePrefsFromDisk()
THEME->SwitchThemeAndLanguage( sTheme, PREFSMAN->m_sLanguage ); THEME->SwitchThemeAndLanguage( sTheme, PREFSMAN->m_sLanguage );
// NOTESKIN->SwitchNoteSkin( sNoteSkin ); // NOTESKIN->SwitchNoteSkin( sNoteSkin );
if( bSwitchToLastPlayedGame )
{
Game game;
if( ini.GetValue("Options", "Game", (int&)game) )
GAMESTATE->m_CurGame = game;
}
} }
void SaveGamePrefsToDisk() void SaveGamePrefsToDisk()
{ {
if( !GAMESTATE ) if( !GAMESTATE )
@@ -550,6 +571,7 @@ void SaveGamePrefsToDisk()
ini.SetValue( sGameName, "Announcer", ANNOUNCER->GetCurAnnouncerName() ); ini.SetValue( sGameName, "Announcer", ANNOUNCER->GetCurAnnouncerName() );
ini.SetValue( sGameName, "Theme", THEME->GetCurThemeName() ); ini.SetValue( sGameName, "Theme", THEME->GetCurThemeName() );
ini.SetValue( sGameName, "DefaultModifiers", PREFSMAN->m_sDefaultModifiers ); ini.SetValue( sGameName, "DefaultModifiers", PREFSMAN->m_sDefaultModifiers );
ini.SetValue( "Options", "Game", GAMESTATE->m_CurGame );
ini.WriteFile(); ini.WriteFile();
} }
+4 -1
View File
@@ -11,12 +11,15 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "Game.h"
int SMmain(int argc, char* argv[]); int SMmain(int argc, char* argv[]);
void ApplyGraphicOptions(); void ApplyGraphicOptions();
void ExitGame(); void ExitGame();
void ResetGame( bool ReturnToFirstScreen=true ); void ResetGame( bool ReturnToFirstScreen=true );
void ReadGamePrefsFromDisk(); void ReadGamePrefsFromDisk( bool bSwitchToLastPlayedGame=true );
void SaveGamePrefsToDisk(); void SaveGamePrefsToDisk();
void ChangeCurrentGame( Game g );
#if defined(WIN32) #if defined(WIN32)
extern HWND g_hWndMain; extern HWND g_hWndMain;