fix [Common] DefaultModifers not being applied in most places
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -1103,8 +1103,8 @@ void GameCommand::ApplySelf( const vector<PlayerNumber> &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.
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) );
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user