High-level preferences that pull in other dependencies should be

moved out of PrefsManager; add GamePreferences for when we don't
have a convenient place to put it.
This commit is contained in:
Glenn Maynard
2006-11-21 04:54:50 +00:00
parent 6fd5f47bfb
commit e386583dc8
7 changed files with 79 additions and 16 deletions
+32
View File
@@ -0,0 +1,32 @@
#include "global.h"
#include "GamePreferences.h"
// This options has weird interactions depending on m_bEventMode;
// use GameState::GetCoinMode().
Preference<CoinMode> GamePreferences::m_CoinMode( "CoinMode", COIN_MODE_HOME );
/*
* (c) 2001-2004 Chris Danford, Chris Gomez
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, and/or sell copies of the Software, and to permit persons to
* whom the Software is furnished to do so, provided that the above
* copyright notice(s) and this permission notice appear in all copies of
* the Software and that both the above copyright notice(s) and this
* permission notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
+37
View File
@@ -0,0 +1,37 @@
#ifndef GAME_PREFERENCES_H
#define GAME_PREFERENCES_H
#include "Preference.h"
#include "GameConstantsAndTypes.h"
namespace GamePreferences
{
extern Preference<CoinMode> m_CoinMode;
};
#endif
/*
* (c) 2001-2004 Chris Danford, Chris Gomez
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, and/or sell copies of the Software, and to permit persons to
* whom the Software is furnished to do so, provided that the above
* copyright notice(s) and this permission notice appear in all copies of
* the Software and that both the above copyright notice(s) and this
* permission notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
+3 -2
View File
@@ -2,6 +2,7 @@
#include "GameState.h"
#include "GameManager.h"
#include "PrefsManager.h"
#include "GamePreferences.h"
#include "song.h"
#include "Course.h"
#include "RageLog.h"
@@ -1760,10 +1761,10 @@ bool GameState::IsEventMode() const
CoinMode GameState::GetCoinMode() const
{
if( IsEventMode() && PREFSMAN->m_CoinMode == COIN_MODE_PAY )
if( IsEventMode() && GamePreferences::m_CoinMode == COIN_MODE_PAY )
return COIN_MODE_FREE;
else
return PREFSMAN->m_CoinMode;
return GamePreferences::m_CoinMode;
}
Premium GameState::GetPremium() const
-3
View File
@@ -194,11 +194,8 @@ PrefsManager::PrefsManager() :
m_bEventMode ( "EventMode", false ),
m_iCoinsPerCredit ( "CoinsPerCredit", 1 ),
m_iSongsPerPlay ( "SongsPerPlay", 3, ValidateSongsPerPlay ),
m_CoinMode ( "CoinMode", COIN_MODE_HOME ),
m_bDelayedCreditsReconcile ( "DelayedCreditsReconcile", false ),
m_bPickExtraStage ( "PickExtraStage", false ),
m_bComboContinuesBetweenSongs ( "ComboContinuesBetweenSongs", false ),
m_ShowSongOptions ( "ShowSongOptions", Maybe_YES ),
m_bDancePointsForOni ( "DancePointsForOni", false ),
-5
View File
@@ -154,11 +154,6 @@ public:
Preference<bool> m_bEventMode;
Preference<int> m_iCoinsPerCredit;
Preference<int> m_iSongsPerPlay;
// These options have weird interactions depending on m_bEventMode,
// so wrap them in GameState.
Preference<CoinMode> m_CoinMode;
Preference<bool> m_bDelayedCreditsReconcile;
Preference<bool> m_bPickExtraStage;
Preference<bool> m_bComboContinuesBetweenSongs;
+4 -3
View File
@@ -3,6 +3,7 @@
#include "ScreenDimensions.h"
#include "ScreenManager.h"
#include "PrefsManager.h"
#include "GamePreferences.h"
#include "RageLog.h"
#include "GameState.h"
#include "PlayerState.h"
@@ -524,13 +525,13 @@ class DebugLineAutosync : public IDebugLine
class DebugLineCoinMode : public IDebugLine
{
virtual RString GetDescription() { return COIN_MODE.GetValue(); }
virtual RString GetValue() { return CoinModeToString(PREFSMAN->m_CoinMode); }
virtual RString GetValue() { return CoinModeToString(GamePreferences::m_CoinMode); }
virtual bool IsEnabled() { return true; }
virtual void Do( RString &sMessageOut )
{
int cm = PREFSMAN->m_CoinMode+1;
int cm = GamePreferences::m_CoinMode+1;
wrap( cm, NUM_CoinMode );
PREFSMAN->m_CoinMode.Set( CoinMode(cm) );
GamePreferences::m_CoinMode.Set( CoinMode(cm) );
SCREENMAN->RefreshCreditsMessages();
IDebugLine::Do( sMessageOut );
}
+3 -3
View File
@@ -2,7 +2,7 @@
#include "ScreenTitleMenu.h"
#include "ScreenManager.h"
#include "RageUtil.h"
#include "PrefsManager.h"
#include "GamePreferences.h"
#include "RageLog.h"
#include "AnnouncerManager.h"
#include "GameState.h"
@@ -30,7 +30,7 @@ ScreenTitleMenu::ScreenTitleMenu()
// TRICKY: Do this after GameState::Reset.
LIGHTSMAN->SetLightsMode( LIGHTSMODE_JOINING );
this->SubscribeToMessage( PREFSMAN->m_CoinMode.GetName()+"Changed" );
this->SubscribeToMessage( GamePreferences::m_CoinMode.GetName()+"Changed" );
}
void ScreenTitleMenu::Init()
@@ -75,7 +75,7 @@ void ScreenTitleMenu::Input( const InputEventPlus &input )
void ScreenTitleMenu::HandleMessage( const Message &msg )
{
if( msg == PREFSMAN->m_CoinMode.GetName()+"Changed" )
if( msg == GamePreferences::m_CoinMode.GetName()+"Changed" )
{
/* If the CoinMode was changed, we need to reload this screen
* so that the right m_aGameCommands will show */