Add ChangeCurrentGame. Move the currently-selected game to
GamePrefs.ini.
This commit is contained in:
@@ -14,7 +14,6 @@
|
||||
#include "PrefsManager.h"
|
||||
#include "IniFile.h"
|
||||
#include "GameState.h"
|
||||
#include "RageException.h"
|
||||
#include "RageDisplay.h"
|
||||
#include "RageUtil.h"
|
||||
#include "arch/arch.h" /* for default driver specs */
|
||||
@@ -288,13 +287,6 @@ void PrefsManager::ReadGlobalPrefsFromDisk( bool bSwitchToLastPlayedGame )
|
||||
CString sAdditionalSongFolders;
|
||||
ini.GetValue( "Options", "AdditionalSongFolders", sAdditionalSongFolders );
|
||||
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", "Game", GAMESTATE->m_CurGame );
|
||||
|
||||
ini.WriteFile();
|
||||
}
|
||||
|
||||
@@ -105,15 +105,9 @@ static void GameSel( int &sel, bool ToSel, const CStringArray &choices )
|
||||
if( !stricmp(choices[i], sCurGameName) )
|
||||
sel = i;
|
||||
} else {
|
||||
SaveGamePrefsToDisk();
|
||||
INPUTMAPPER->SaveMappingsToDisk(); // save mappings before switching the game
|
||||
|
||||
vector<Game> aGames;
|
||||
GAMEMAN->GetEnabledGames( aGames );
|
||||
GAMESTATE->m_CurGame = aGames[sel];
|
||||
|
||||
ReadGamePrefsFromDisk();
|
||||
INPUTMAPPER->ReadMappingsFromDisk();
|
||||
ChangeCurrentGame( aGames[sel] );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -512,8 +512,21 @@ static void RestoreAppPri()
|
||||
|
||||
#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 )
|
||||
return;
|
||||
@@ -535,8 +548,16 @@ void ReadGamePrefsFromDisk()
|
||||
THEME->SwitchThemeAndLanguage( sTheme, PREFSMAN->m_sLanguage );
|
||||
|
||||
// NOTESKIN->SwitchNoteSkin( sNoteSkin );
|
||||
|
||||
if( bSwitchToLastPlayedGame )
|
||||
{
|
||||
Game game;
|
||||
if( ini.GetValue("Options", "Game", (int&)game) )
|
||||
GAMESTATE->m_CurGame = game;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SaveGamePrefsToDisk()
|
||||
{
|
||||
if( !GAMESTATE )
|
||||
@@ -550,6 +571,7 @@ void SaveGamePrefsToDisk()
|
||||
ini.SetValue( sGameName, "Announcer", ANNOUNCER->GetCurAnnouncerName() );
|
||||
ini.SetValue( sGameName, "Theme", THEME->GetCurThemeName() );
|
||||
ini.SetValue( sGameName, "DefaultModifiers", PREFSMAN->m_sDefaultModifiers );
|
||||
ini.SetValue( "Options", "Game", GAMESTATE->m_CurGame );
|
||||
|
||||
ini.WriteFile();
|
||||
}
|
||||
|
||||
@@ -11,12 +11,15 @@
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "Game.h"
|
||||
|
||||
int SMmain(int argc, char* argv[]);
|
||||
void ApplyGraphicOptions();
|
||||
void ExitGame();
|
||||
void ResetGame( bool ReturnToFirstScreen=true );
|
||||
void ReadGamePrefsFromDisk();
|
||||
void ReadGamePrefsFromDisk( bool bSwitchToLastPlayedGame=true );
|
||||
void SaveGamePrefsToDisk();
|
||||
void ChangeCurrentGame( Game g );
|
||||
|
||||
#if defined(WIN32)
|
||||
extern HWND g_hWndMain;
|
||||
|
||||
Reference in New Issue
Block a user