fix PrefsManager::m_sCurrentGame not current, so GamePrefs from Static.ini weren't being used
This commit is contained in:
@@ -85,7 +85,7 @@ bool GameCommand::DescribesCurrentModeForAllPlayers() const
|
|||||||
|
|
||||||
bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
|
bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
|
||||||
{
|
{
|
||||||
if( m_pGame != NULL && m_pGame != GAMESTATE->m_pCurGame )
|
if( m_pGame != NULL && m_pGame != GAMESTATE->m_pCurGame.Get() )
|
||||||
return false;
|
return false;
|
||||||
if( m_pm != PLAY_MODE_INVALID && GAMESTATE->m_PlayMode != m_pm )
|
if( m_pm != PLAY_MODE_INVALID && GAMESTATE->m_PlayMode != m_pm )
|
||||||
return false;
|
return false;
|
||||||
@@ -728,7 +728,7 @@ void GameCommand::ApplySelf( const vector<PlayerNumber> &vpns ) const
|
|||||||
const PlayMode OldPlayMode = GAMESTATE->m_PlayMode;
|
const PlayMode OldPlayMode = GAMESTATE->m_PlayMode;
|
||||||
|
|
||||||
if( m_pGame != NULL )
|
if( m_pGame != NULL )
|
||||||
GAMESTATE->m_pCurGame = m_pGame;
|
GAMESTATE->SetCurGame( m_pGame );
|
||||||
if( m_pm != PLAY_MODE_INVALID )
|
if( m_pm != PLAY_MODE_INVALID )
|
||||||
GAMESTATE->m_PlayMode.Set( m_pm );
|
GAMESTATE->m_PlayMode.Set( m_pm );
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include "LuaReference.h"
|
#include "LuaReference.h"
|
||||||
#include "CommonMetrics.h"
|
#include "CommonMetrics.h"
|
||||||
#include "CharacterManager.h"
|
#include "CharacterManager.h"
|
||||||
|
#include "Game.h"
|
||||||
|
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <set>
|
#include <set>
|
||||||
@@ -62,6 +63,7 @@ Song* GameState::GetDefaultSong() const
|
|||||||
|
|
||||||
|
|
||||||
GameState::GameState() :
|
GameState::GameState() :
|
||||||
|
m_pCurGame( Message_CurrentGameChanged ),
|
||||||
m_pCurStyle( Message_CurrentStyleChanged ),
|
m_pCurStyle( Message_CurrentStyleChanged ),
|
||||||
m_PlayMode( Message_PlayModeChanged ),
|
m_PlayMode( Message_PlayModeChanged ),
|
||||||
m_sPreferredSongGroup( Message_PreferredSongGroupChanged ),
|
m_sPreferredSongGroup( Message_PreferredSongGroupChanged ),
|
||||||
@@ -82,7 +84,7 @@ GameState::GameState() :
|
|||||||
{
|
{
|
||||||
m_pCurStyle.Set( NULL );
|
m_pCurStyle.Set( NULL );
|
||||||
|
|
||||||
m_pCurGame = NULL;
|
m_pCurGame.Set( NULL );
|
||||||
m_iCoins = 0;
|
m_iCoins = 0;
|
||||||
m_timeGameStarted.SetZero();
|
m_timeGameStarted.SetZero();
|
||||||
m_bDemonstrationOrJukebox = false;
|
m_bDemonstrationOrJukebox = false;
|
||||||
@@ -576,6 +578,13 @@ void GameState::Update( float fDelta )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameState::SetCurGame( const Game *pGame )
|
||||||
|
{
|
||||||
|
m_pCurGame.Set( pGame );
|
||||||
|
CString sGame = pGame ? CString(pGame->m_szName) : CString();
|
||||||
|
PREFSMAN->m_sCurrentGame.Set( sGame );
|
||||||
|
}
|
||||||
|
|
||||||
const float GameState::MUSIC_SECONDS_INVALID = -5000.0f;
|
const float GameState::MUSIC_SECONDS_INVALID = -5000.0f;
|
||||||
|
|
||||||
void GameState::ResetMusicStatistics()
|
void GameState::ResetMusicStatistics()
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ public:
|
|||||||
//
|
//
|
||||||
// Main state info
|
// Main state info
|
||||||
//
|
//
|
||||||
const Game* m_pCurGame;
|
void SetCurGame( const Game *pGame ); // Call this instead of m_pCurGame.Set to make sure PREFSMAN->m_sCurrentGame stays in sync
|
||||||
|
BroadcastOnChangePtr<const Game> m_pCurGame;
|
||||||
BroadcastOnChangePtr<const Style> m_pCurStyle;
|
BroadcastOnChangePtr<const Style> m_pCurStyle;
|
||||||
bool m_bSideIsJoined[NUM_PLAYERS]; // left side, right side
|
bool m_bSideIsJoined[NUM_PLAYERS]; // left side, right side
|
||||||
bool m_bIsMultiPlayerJoined[NUM_MultiPlayer];
|
bool m_bIsMultiPlayerJoined[NUM_MultiPlayer];
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MessageManager* MESSAGEMAN = NULL; // global and accessable from anywhere in our
|
|||||||
|
|
||||||
|
|
||||||
static const CString MessageNames[] = {
|
static const CString MessageNames[] = {
|
||||||
|
"CurrentGameChanged",
|
||||||
"CurrentStyleChanged",
|
"CurrentStyleChanged",
|
||||||
"PlayModeChanged",
|
"PlayModeChanged",
|
||||||
"CurrentSongChanged",
|
"CurrentSongChanged",
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ struct lua_State;
|
|||||||
|
|
||||||
enum Message
|
enum Message
|
||||||
{
|
{
|
||||||
|
Message_CurrentGameChanged,
|
||||||
Message_CurrentStyleChanged,
|
Message_CurrentStyleChanged,
|
||||||
Message_PlayModeChanged,
|
Message_PlayModeChanged,
|
||||||
Message_CurrentSongChanged,
|
Message_CurrentSongChanged,
|
||||||
|
|||||||
@@ -684,7 +684,7 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
GameName = m_packet.ReadNT();
|
GameName = m_packet.ReadNT();
|
||||||
StyleName = m_packet.ReadNT();
|
StyleName = m_packet.ReadNT();
|
||||||
|
|
||||||
GAMESTATE->m_pCurGame = GAMEMAN->StringToGameType( GameName );
|
GAMESTATE->SetCurGame( GAMEMAN->StringToGameType(GameName) );
|
||||||
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle(GAMESTATE->m_pCurGame,StyleName) );
|
GAMESTATE->m_pCurStyle.Set( GAMEMAN->GameAndStringToStyle(GAMESTATE->m_pCurGame,StyleName) );
|
||||||
|
|
||||||
SCREENMAN->SetNewScreen( "ScreenNetSelectMusic" ); //Should this be metric'd out?
|
SCREENMAN->SetNewScreen( "ScreenNetSelectMusic" ); //Should this be metric'd out?
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public:
|
|||||||
m_currentValue = m_defaultValue;
|
m_currentValue = m_defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
T Get() const
|
const T &Get() const
|
||||||
{
|
{
|
||||||
return m_currentValue;
|
return m_currentValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ void PrefsManager::ResetToFactoryDefaults()
|
|||||||
SavePrefsToDisk();
|
SavePrefsToDisk();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrefsManager::ReadPrefsFromFile( CString sIni )
|
void PrefsManager::ReadPrefsFromFile( const CString &sIni )
|
||||||
{
|
{
|
||||||
IniFile ini;
|
IniFile ini;
|
||||||
if( !ini.ReadFile(sIni) )
|
if( !ini.ReadFile(sIni) )
|
||||||
@@ -512,13 +512,19 @@ CString PrefsManager::GetMovieDrivers()
|
|||||||
return m_sMovieDrivers;
|
return m_sMovieDrivers;
|
||||||
}
|
}
|
||||||
|
|
||||||
CString PrefsManager::GetLightsDriver() {
|
CString PrefsManager::GetLightsDriver()
|
||||||
|
{
|
||||||
if ( m_sLightsDriver.Get().empty() )
|
if ( m_sLightsDriver.Get().empty() )
|
||||||
return (CString)DEFAULT_LIGHTS_DRIVER;
|
return (CString)DEFAULT_LIGHTS_DRIVER;
|
||||||
else
|
else
|
||||||
return m_sLightsDriver;
|
return m_sLightsDriver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PrefsManager::GamePrefs &PrefsManager::GetCurrentGamePrefs()
|
||||||
|
{
|
||||||
|
ASSERT( !m_sCurrentGame.Get().empty() );
|
||||||
|
return m_mapGameNameToGamePrefs[m_sCurrentGame];
|
||||||
|
}
|
||||||
|
|
||||||
// lua start
|
// lua start
|
||||||
#include "LuaBinding.h"
|
#include "LuaBinding.h"
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ public:
|
|||||||
};
|
};
|
||||||
map<CString, GamePrefs> m_mapGameNameToGamePrefs;
|
map<CString, GamePrefs> m_mapGameNameToGamePrefs;
|
||||||
|
|
||||||
GamePrefs &GetCurrentGamePrefs() { return m_mapGameNameToGamePrefs[m_sCurrentGame]; } // inserts if not already present
|
GamePrefs &GetCurrentGamePrefs();
|
||||||
|
|
||||||
void SaveGamePrefsToDisk();
|
void SaveGamePrefsToDisk();
|
||||||
void ReadGamePrefsFromDisk();
|
void ReadGamePrefsFromDisk();
|
||||||
@@ -293,7 +293,7 @@ public:
|
|||||||
void PushSelf( lua_State *L );
|
void PushSelf( lua_State *L );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void ReadPrefsFromFile( CString sIni );
|
void ReadPrefsFromFile( const CString &sIni );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ void ScreenTitleMenu::Input( const InputEventPlus &input )
|
|||||||
if( iter == vGames.end() )
|
if( iter == vGames.end() )
|
||||||
iter = vGames.begin();
|
iter = vGames.begin();
|
||||||
|
|
||||||
GAMESTATE->m_pCurGame = *iter;
|
GAMESTATE->SetCurGame( *iter );
|
||||||
|
|
||||||
/* Reload the theme if it's changed, but don't back to the initial screen. */
|
/* Reload the theme if it's changed, but don't back to the initial screen. */
|
||||||
ResetGame();
|
ResetGame();
|
||||||
|
|||||||
@@ -747,11 +747,7 @@ void ChangeCurrentGame( const Game* g )
|
|||||||
|
|
||||||
INPUTMAPPER->SaveMappingsToDisk(); // save mappings before switching the game
|
INPUTMAPPER->SaveMappingsToDisk(); // save mappings before switching the game
|
||||||
|
|
||||||
GAMESTATE->m_pCurGame = g;
|
GAMESTATE->SetCurGame( g );
|
||||||
|
|
||||||
/* Load this game's preferences. If we just set an unavailable game type, this
|
|
||||||
* will change it back to the default. */
|
|
||||||
PREFSMAN->m_sCurrentGame.Set( g->m_szName );
|
|
||||||
|
|
||||||
/* Save the newly-selected game. */
|
/* Save the newly-selected game. */
|
||||||
PREFSMAN->SavePrefsToDisk();
|
PREFSMAN->SavePrefsToDisk();
|
||||||
@@ -771,21 +767,21 @@ void ReadGamePrefsFromDisk( bool bSwitchToLastPlayedGame )
|
|||||||
{
|
{
|
||||||
ASSERT( GAMEMAN != NULL );
|
ASSERT( GAMEMAN != NULL );
|
||||||
CString sGame;
|
CString sGame;
|
||||||
GAMESTATE->m_pCurGame = NULL;
|
GAMESTATE->SetCurGame( NULL );
|
||||||
if( !PREFSMAN->m_sCurrentGame.Get().empty() )
|
if( !PREFSMAN->m_sCurrentGame.Get().empty() )
|
||||||
GAMESTATE->m_pCurGame = GAMEMAN->StringToGameType( PREFSMAN->m_sCurrentGame );
|
GAMESTATE->SetCurGame( GAMEMAN->StringToGameType(PREFSMAN->m_sCurrentGame) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the active game type isn't actually available, revert to the default. */
|
/* If the active game type isn't actually available, revert to the default. */
|
||||||
if( GAMESTATE->m_pCurGame == NULL )
|
if( GAMESTATE->m_pCurGame == NULL )
|
||||||
{
|
{
|
||||||
GAMESTATE->m_pCurGame = GAMEMAN->GetDefaultGame();
|
GAMESTATE->SetCurGame( GAMEMAN->GetDefaultGame() );
|
||||||
}
|
}
|
||||||
else if( !GAMEMAN->IsGameEnabled( GAMESTATE->m_pCurGame ) && GAMESTATE->m_pCurGame != GAMEMAN->GetDefaultGame() )
|
else if( !GAMEMAN->IsGameEnabled( GAMESTATE->m_pCurGame ) && GAMESTATE->m_pCurGame != GAMEMAN->GetDefaultGame() )
|
||||||
{
|
{
|
||||||
LOG->Warn( "Default NoteSkin for \"%s\" missing, reverting to \"%s\"",
|
LOG->Warn( "Default NoteSkin for \"%s\" missing, reverting to \"%s\"",
|
||||||
GAMESTATE->m_pCurGame->m_szName, GAMEMAN->GetDefaultGame()->m_szName );
|
GAMESTATE->m_pCurGame->m_szName, GAMEMAN->GetDefaultGame()->m_szName );
|
||||||
GAMESTATE->m_pCurGame = GAMEMAN->GetDefaultGame();
|
GAMESTATE->SetCurGame( GAMEMAN->GetDefaultGame() );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load keymaps for the new game. */
|
/* Load keymaps for the new game. */
|
||||||
|
|||||||
Reference in New Issue
Block a user