diff --git a/stepmania/src/CodeDetector.cpp b/stepmania/src/CodeDetector.cpp index 4a5070fc61..cb20e8799b 100644 --- a/stepmania/src/CodeDetector.cpp +++ b/stepmania/src/CodeDetector.cpp @@ -9,7 +9,6 @@ #include "Game.h" #include "Style.h" #include "RageUtil.h" -#include "PrefsManager.h" #include "PlayerState.h" const CString CodeNames[] = { @@ -243,22 +242,19 @@ bool CodeDetector::DetectAndAdjustMusicOptions( GameController controller ) case CODE_SUPER_SHUFFLE: po.ToggleOneTurn( PlayerOptions::TURN_SUPER_SHUFFLE ); break; case CODE_NEXT_TRANSFORM: po.NextTransform(); break; case CODE_NEXT_SCROLL_SPEED: INCREMENT_SCROLL_SPEED( po.m_fScrollSpeed ); break; - case CODE_PREVIOUS_SCROLL_SPEED: DECREMENT_SCROLL_SPEED( po.m_fScrollSpeed ); break; + case CODE_PREVIOUS_SCROLL_SPEED: DECREMENT_SCROLL_SPEED( po.m_fScrollSpeed ); break; case CODE_NEXT_ACCEL: po.NextAccel(); break; case CODE_NEXT_EFFECT: po.NextEffect(); break; case CODE_NEXT_APPEARANCE: po.NextAppearance(); break; case CODE_NEXT_TURN: po.NextTurn(); break; case CODE_REVERSE: po.NextScroll(); break; - case CODE_HOLDS: TOGGLE( po.m_bTransforms[PlayerOptions::TRANSFORM_NOHOLDS], true, false ); break; - case CODE_MINES: TOGGLE( po.m_bTransforms[PlayerOptions::TRANSFORM_NOMINES], true, false ); break; + case CODE_HOLDS: TOGGLE( po.m_bTransforms[PlayerOptions::TRANSFORM_NOHOLDS], true, false ); break; + case CODE_MINES: TOGGLE( po.m_bTransforms[PlayerOptions::TRANSFORM_NOMINES], true, false ); break; case CODE_DARK: FLOAT_TOGGLE( po.m_fDark ); break; - case CODE_CANCEL_ALL: po.Init(); - po.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); break; - case CODE_HIDDEN: TOGGLE_HIDDEN; break; - case CODE_RANDOMVANISH: TOGGLE_RANDOMVANISH; break; - - // po.SetOneAppearance(po.GetFirstAppearance()); break; - default: ; + case CODE_CANCEL_ALL: GAMESTATE->GetDefaultPlayerOptions( po ); break; + case CODE_HIDDEN: TOGGLE_HIDDEN; break; + case CODE_RANDOMVANISH: TOGGLE_RANDOMVANISH; break; + default: break; } return true; // don't check any more } diff --git a/stepmania/src/GameCommand.cpp b/stepmania/src/GameCommand.cpp index 1a2b6d693a..2dc85151c1 100644 --- a/stepmania/src/GameCommand.cpp +++ b/stepmania/src/GameCommand.cpp @@ -1103,8 +1103,8 @@ void GameCommand::ApplySelf( const vector &vpns ) const if( m_bApplyDefaultOptions ) { FOREACH_PlayerNumber( p ) - GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); - GAMESTATE->m_SongOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GAMESTATE->GetDefaultPlayerOptions( GAMESTATE->m_pPlayerState[p]->m_PlayerOptions ); + GAMESTATE->GetDefaultSongOptions( GAMESTATE->m_SongOptions ); } // HACK: Set life type to BATTERY just once here so it happens once and // we don't override the user's changes if they back out. diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 41e73c0a1b..f161ec04f5 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -232,7 +232,7 @@ void GameState::Reset() STATSMAN->Reset(); - m_SongOptions.Init(); + GAMESTATE->GetDefaultSongOptions( m_SongOptions ); FOREACH_PlayerNumber(p) { @@ -243,8 +243,8 @@ void GameState::Reset() // The theme setting is for eg. BM being reverse by default. (This // could be done in the title menu GameCommand, but then it wouldn't // affect demo, and other non-gameplay things ...) -glenn - ApplyModifiers( p, CommonMetrics::DEFAULT_MODIFIERS ); - ApplyModifiers( p, PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + + GAMESTATE->GetDefaultPlayerOptions( GAMESTATE->m_pPlayerState[p]->m_PlayerOptions ); } FOREACH_PlayerNumber(p) @@ -1005,6 +1005,20 @@ StageResult GameState::GetStageResult( PlayerNumber pn ) const +void GameState::GetDefaultPlayerOptions( PlayerOptions &po ) +{ + po.Init(); + po.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + po.FromString( CommonMetrics::DEFAULT_MODIFIERS ); +} + +void GameState::GetDefaultSongOptions( SongOptions &so ) +{ + so.Init(); + so.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + so.FromString( CommonMetrics::DEFAULT_MODIFIERS ); +} + void GameState::ApplyModifiers( PlayerNumber pn, CString sModifiers ) { m_pPlayerState[pn]->m_PlayerOptions.FromString( sModifiers ); @@ -1034,12 +1048,8 @@ void GameState::RestoreSelectedOptions() void GameState::ResetCurrentOptions() { FOREACH_PlayerNumber( p ) - { - m_pPlayerState[p]->m_PlayerOptions.Init(); - m_pPlayerState[p]->m_PlayerOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); - } - m_SongOptions.Init(); - m_SongOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GetDefaultPlayerOptions( m_pPlayerState[p]->m_PlayerOptions ); + GetDefaultSongOptions( m_SongOptions ); } bool GameState::IsDisqualified( PlayerNumber pn ) diff --git a/stepmania/src/GameState.h b/stepmania/src/GameState.h index ce3d22e09c..c9691ae451 100644 --- a/stepmania/src/GameState.h +++ b/stepmania/src/GameState.h @@ -29,6 +29,7 @@ class PlayerState; struct lua_State; class LuaTable; class Profile; +struct PlayerOptions; class GameState { @@ -215,6 +216,8 @@ public: SongOptions m_SongOptions; SongOptions m_StoredSongOptions; + void GetDefaultPlayerOptions( PlayerOptions &po ); + void GetDefaultSongOptions( SongOptions &so ); void ApplyModifiers( PlayerNumber pn, CString sModifiers ); void StoreSelectedOptions(); void RestoreSelectedOptions(); diff --git a/stepmania/src/ScreenJukebox.cpp b/stepmania/src/ScreenJukebox.cpp index aacbf1e063..7d3f7b2052 100644 --- a/stepmania/src/ScreenJukebox.cpp +++ b/stepmania/src/ScreenJukebox.cpp @@ -213,14 +213,12 @@ void ScreenJukebox::Init() if( GAMESTATE->m_bJukeboxUsesModifiers ) { - GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.Init(); - GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GAMESTATE->GetDefaultPlayerOptions( GAMESTATE->m_pPlayerState[p]->m_PlayerOptions ); GAMESTATE->m_pPlayerState[p]->m_PlayerOptions.ChooseRandomModifiers(); } } - GAMESTATE->m_SongOptions.Init(); - GAMESTATE->m_SongOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GAMESTATE->GetDefaultSongOptions( GAMESTATE->m_SongOptions ); GAMESTATE->m_SongOptions.m_FailType = SongOptions::FAIL_OFF; diff --git a/stepmania/src/ScreenOptionsMasterPrefs.cpp b/stepmania/src/ScreenOptionsMasterPrefs.cpp index 5b7190f1e1..31d765d4d0 100644 --- a/stepmania/src/ScreenOptionsMasterPrefs.cpp +++ b/stepmania/src/ScreenOptionsMasterPrefs.cpp @@ -16,13 +16,13 @@ #include "Foreach.h" #include "GameConstantsAndTypes.h" -static void GetDefaultModifiers( PlayerOptions &po, SongOptions &so ) +static void GetPrefsDefaultModifiers( PlayerOptions &po, SongOptions &so ) { po.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); so.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); } -static void SetDefaultModifiers( const PlayerOptions &po, const SongOptions &so ) +static void SetPrefsDefaultModifiers( const PlayerOptions &po, const SongOptions &so ) { CStringArray as; if( po.GetString() != "" ) @@ -246,9 +246,9 @@ static void DefaultNoteSkin( int &sel, bool ToSel, const ConfOption *pConfOption } else { PlayerOptions po; SongOptions so; - GetDefaultModifiers( po, so ); + GetPrefsDefaultModifiers( po, so ); po.m_sNoteSkin = choices[sel]; - SetDefaultModifiers( po, so ); + SetPrefsDefaultModifiers( po, so ); } } @@ -404,7 +404,7 @@ static void DefaultFailType( int &sel, bool ToSel, const ConfOption *pConfOption { PlayerOptions po; SongOptions so; - GetDefaultModifiers( po, so ); + GetPrefsDefaultModifiers( po, so ); switch( sel ) { @@ -415,7 +415,7 @@ static void DefaultFailType( int &sel, bool ToSel, const ConfOption *pConfOption ASSERT(0); } - SetDefaultModifiers( po, so ); + SetPrefsDefaultModifiers( po, so ); } } diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index a5ee4a8fb2..7137414e0f 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -98,8 +98,7 @@ void ScreenPlayerOptions::Input( const InputEventPlus &input ) m_CancelAll.Play(); // apply the game default mods, but not the Profile saved mods - GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.Init(); - GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GAMESTATE->GetDefaultPlayerOptions( GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions ); MESSAGEMAN->Broadcast( ssprintf("CancelAllP%i", pn+1) ); diff --git a/stepmania/src/SongOptions.cpp b/stepmania/src/SongOptions.cpp index 18bd0c0813..b4aab4bf19 100644 --- a/stepmania/src/SongOptions.cpp +++ b/stepmania/src/SongOptions.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "SongOptions.h" #include "RageUtil.h" -#include "PrefsManager.h" +#include "GameState.h" void SongOptions::Init() { @@ -124,8 +124,7 @@ void SongOptions::FromString( CString sOptions ) else if( sBit == "faildefault" ) { SongOptions so; - // TODO: Fix this so that SongOptions don't depend on PrefsManager - so.FromString( PREFSMAN->GetCurrentGamePrefs().m_sDefaultModifiers ); + GAMESTATE->GetDefaultSongOptions( so ); m_FailType = so.m_FailType; }