fix [Common] DefaultModifers not being applied in most places

This commit is contained in:
Chris Danford
2005-10-27 07:51:37 +00:00
parent 6dc474d41b
commit 112564dc99
8 changed files with 42 additions and 37 deletions
+7 -11
View File
@@ -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
}
+2 -2
View File
@@ -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.
+19 -9
View File
@@ -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 )
+3
View File
@@ -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();
+2 -4
View File
@@ -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;
+6 -6
View File
@@ -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 );
}
}
+1 -2
View File
@@ -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) );
+2 -3
View File
@@ -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;
}