2003-02-16 04:01:45 +00:00
# include "global.h"
2002-02-28 19:40:40 +00:00
# include "PrefsManager.h"
# include "IniFile.h"
2002-07-23 01:41:40 +00:00
# include "GameState.h"
2002-08-30 06:18:30 +00:00
# include "RageDisplay.h"
2002-11-11 04:53:31 +00:00
# include "RageUtil.h"
2002-12-13 22:06:30 +00:00
# include "arch/arch.h" /* for default driver specs */
2003-09-25 01:37:56 +00:00
# include "RageSoundReader_Resample.h" /* for ResampleQuality */
2003-11-01 22:04:43 +00:00
# include "RageFile.h"
2003-12-19 08:51:47 +00:00
# include "ProductInfo.h"
2004-09-13 03:58:39 +00:00
# include "Foreach.h"
# include "Preference.h"
2002-02-28 19:40:40 +00:00
2004-08-22 15:55:23 +00:00
# define DEFAULTS_INI_PATH "Data / Defaults.ini" // these can be overridden
# define STEPMANIA_INI_PATH "Data / StepMania.ini" // overlay on Defaults.ini, contains the user's choices
# define STATIC_INI_PATH "Data / Static.ini" // overlay on the 2 above, can't be overridden
2002-02-28 19:40:40 +00:00
2002-05-27 08:23:27 +00:00
PrefsManager * PREFSMAN = NULL ; // global and accessable from anywhere in our program
2002-02-28 19:40:40 +00:00
2003-11-02 21:05:59 +00:00
const float DEFAULT_SOUND_VOLUME = 1.00f ;
2003-11-16 04:45:12 +00:00
const CString DEFAULT_LIGHTS_DRIVER = " Null " ;
2002-02-28 19:40:40 +00:00
2004-09-13 03:58:39 +00:00
//
// For self-registering prefs
//
2004-09-21 06:07:12 +00:00
static vector < IPreference * > * g_pvpSubscribers = NULL ;
2004-09-13 03:58:39 +00:00
2004-09-21 06:07:12 +00:00
void PrefsManager : : Subscribe ( IPreference * p )
2004-09-13 03:58:39 +00:00
{
// TRICKY: If we make this a global vector instead of a global pointer,
// then we'd have to be careful that the static constructors of all
// Preferences are called before the vector constructor. It's
// too tricky to enfore that, so we'll allocate the vector ourself
// so that the compiler can't possibly call the vector constructor
// after we've already added to the vector.
if ( g_pvpSubscribers = = NULL )
g_pvpSubscribers = new vector < IPreference * > ;
g_pvpSubscribers - > push_back ( p ) ;
}
2004-11-06 20:36:04 +00:00
void PrefsManager : : Unsubscribe ( IPreference * p )
{
vector < IPreference * > : : iterator iter = find ( g_pvpSubscribers - > begin ( ) , g_pvpSubscribers - > end ( ) , p ) ;
ASSERT ( iter ! = g_pvpSubscribers - > end ( ) ) ; // tried to unregister when not registered
g_pvpSubscribers - > erase ( iter ) ;
}
2004-09-13 03:58:39 +00:00
2004-12-07 10:04:19 +00:00
IPreference * PrefsManager : : GetPreferenceByName ( const CString & sName )
{
FOREACH ( IPreference * , * g_pvpSubscribers , p )
{
if ( ! ( * p ) - > GetName ( ) . CompareNoCase ( sName ) )
return * p ;
}
return NULL ;
}
2004-09-13 03:58:39 +00:00
2003-10-16 08:55:32 +00:00
bool g_bAutoRestart = false ;
2004-12-04 08:21:54 +00:00
PrefsManager : : PrefsManager ( ) :
m_bWindowed ( Options , " Windowed " ,
# ifdef DEBUG
true
# else
false
# endif
) ,
m_iDisplayWidth ( Options , " DisplayWidth " , 640 ) ,
m_iDisplayHeight ( Options , " DisplayHeight " , 480 ) ,
m_iDisplayColorDepth ( Options , " DisplayColorDepth " , 16 ) ,
m_iTextureColorDepth ( Options , " TextureColorDepth " , 16 ) ,
m_iMovieColorDepth ( Options , " MovieColorDepth " , 16 ) ,
m_iMaxTextureResolution ( Options , " MaxTextureResolution " , 2048 ) ,
m_iRefreshRate ( Options , " RefreshRate " , REFRESH_DEFAULT ) ,
2005-01-16 22:57:11 +00:00
m_fDisplayAspectRatio ( Options , " DisplayAspectRatio " , 4 / 3.0f ) ,
2004-12-04 08:21:54 +00:00
m_bShowStats ( Options , " ShowStats " ,
# ifdef DEBUG
true
# else
false
# endif
) ,
2004-12-04 10:35:50 +00:00
m_bShowBanners ( Options , " ShowBanners " , true ) ,
2004-12-07 01:41:55 +00:00
m_iBackgroundMode ( Options , " BackgroundMode " , BGMODE_ANIMATIONS ) ,
m_iNumBackgrounds ( Options , " NumBackgrounds " , 8 ) ,
m_fBGBrightness ( Options , " BGBrightness " , 0.8f ) ,
m_bHiddenSongs ( Options , " HiddenSongs " , false ) , /* I'd rather get occasional people asking for support for this even though it's already here than lots of people asking why songs aren't being displayed. */
m_bVsync ( Options , " Vsync " , true ) ,
m_bInterlaced ( Options , " Interlaced " , false ) ,
2004-12-04 10:35:50 +00:00
/* XXX: Set these defaults for individual consoles using VideoCardDefaults.ini. */
2004-12-07 01:41:55 +00:00
m_bPAL ( Options , " PAL " , false ) ,
m_bDelayedTextureDelete ( Options , " DelayedTextureDelete " , true ) ,
m_bTexturePreload ( Options , " TexturePreload " , false ) ,
m_bDelayedScreenLoad ( Options , " DelayedScreenLoad " , false ) ,
m_bDelayedModelDelete ( Options , " DelayedModelDelete " , false ) ,
m_iBannerCache ( Options , " BannerCache " , BNCACHE_LOW_RES ) ,
m_bPalettedBannerCache ( Options , " PalettedBannerCache " , false ) ,
m_bFastLoad ( Options , " FastLoad " , true ) ,
m_bOnlyDedicatedMenuButtons ( Options , " OnlyDedicatedMenuButtons " , false ) ,
m_bMenuTimer ( Options , " MenuTimer " , true ) ,
m_bShowDanger ( Options , " ShowDanger " , true ) ,
m_fJudgeWindowScale ( Options , " JudgeWindowScale " , 1.0f ) ,
m_fJudgeWindowAdd ( Options , " JudgeWindowAdd " , 0 ) ,
m_fJudgeWindowSecondsMarvelous ( Options , " JudgeWindowSecondsMarvelous " , 0.0225f ) ,
m_fJudgeWindowSecondsPerfect ( Options , " JudgeWindowSecondsPerfect " , 0.045f ) ,
m_fJudgeWindowSecondsGreat ( Options , " JudgeWindowSecondsGreat " , 0.090f ) ,
m_fJudgeWindowSecondsGood ( Options , " JudgeWindowSecondsGood " , 0.135f ) ,
m_fJudgeWindowSecondsBoo ( Options , " JudgeWindowSecondsBoo " , 0.180f ) ,
m_fJudgeWindowSecondsOK ( Options , " JudgeWindowSecondsOK " , 0.250f ) , // allow enough time to take foot off and put back on
m_fJudgeWindowSecondsMine ( Options , " JudgeWindowSecondsMine " , 0.090f ) , // same as great
m_fJudgeWindowSecondsAttack ( Options , " JudgeWindowSecondsAttack " , 0.135f ) ,
m_fLifeDifficultyScale ( Options , " LifeDifficultyScale " , 1.0f ) ,
m_fLifeDeltaPercentChangeMarvelous ( Options , " LifeDeltaPercentChangeMarvelous " , + 0.008f ) ,
m_fLifeDeltaPercentChangePerfect ( Options , " LifeDeltaPercentChangePerfect " , + 0.008f ) ,
m_fLifeDeltaPercentChangeGreat ( Options , " LifeDeltaPercentChangeGreat " , + 0.004f ) ,
m_fLifeDeltaPercentChangeGood ( Options , " LifeDeltaPercentChangeGood " , + 0.000f ) ,
m_fLifeDeltaPercentChangeBoo ( Options , " LifeDeltaPercentChangeBoo " , - 0.040f ) ,
m_fLifeDeltaPercentChangeMiss ( Options , " LifeDeltaPercentChangeMiss " , - 0.080f ) ,
m_fLifeDeltaPercentChangeHitMine ( Options , " LifeDeltaPercentChangeHitMine " , - 0.160f ) ,
m_fLifeDeltaPercentChangeOK ( Options , " LifeDeltaPercentChangeOK " , + 0.008f ) ,
2005-01-30 01:36:20 +00:00
m_fLifeDeltaPercentChangeNG ( Options , " LifeDeltaPercentChangeNG " , - 0.080f ) ,
m_bShowCaution ( Options , " ShowCaution " , true ) ,
m_bEventMode ( Options , " EventMode " , false )
2004-05-16 22:58:05 +00:00
{
Init ( ) ;
ReadGlobalPrefsFromDisk ( ) ;
}
void PrefsManager : : Init ( )
2002-02-28 19:40:40 +00:00
{
2004-06-18 11:02:40 +00:00
m_bCelShadeModels = false ; // Work-In-Progress.. disable by default.
2004-07-28 16:04:19 +00:00
m_fConstantUpdateDeltaSeconds = 0 ;
2002-08-18 16:19:26 +00:00
m_bShowDanger = true ;
2002-07-11 19:02:26 +00:00
m_bMenuTimer = true ;
2002-05-27 08:23:27 +00:00
m_iNumArcadeStages = 3 ;
2002-06-24 22:04:31 +00:00
m_bAutoPlay = false ;
2004-01-20 07:09:44 +00:00
m_fTugMeterPercentChangeMarvelous = + 0.010f ;
m_fTugMeterPercentChangePerfect = + 0.008f ;
m_fTugMeterPercentChangeGreat = + 0.004f ;
m_fTugMeterPercentChangeGood = + 0.000f ;
m_fTugMeterPercentChangeBoo = - 0.010f ;
m_fTugMeterPercentChangeMiss = - 0.020f ;
m_fTugMeterPercentChangeHitMine = - 0.040f ;
m_fTugMeterPercentChangeOK = + 0.008f ;
m_fTugMeterPercentChangeNG = - 0.020f ;
2004-01-11 23:33:56 +00:00
2003-10-13 00:06:49 +00:00
m_iRegenComboAfterFail = 10 ; // cumulative
m_iRegenComboAfterMiss = 5 ; // cumulative
m_iMaxRegenComboAfterFail = 10 ;
m_iMaxRegenComboAfterMiss = 10 ;
2003-10-13 03:20:05 +00:00
m_bTwoPlayerRecovery = true ;
2004-01-11 23:33:56 +00:00
m_bMercifulDrain = true ;
2004-06-26 17:28:02 +00:00
m_bMinimum1FullSongInCourses = false ;
2004-01-02 01:39:14 +00:00
2004-01-20 07:09:44 +00:00
m_iPercentScoreWeightMarvelous = 3 ;
m_iPercentScoreWeightPerfect = 2 ;
m_iPercentScoreWeightGreat = 1 ;
m_iPercentScoreWeightGood = 0 ;
m_iPercentScoreWeightBoo = 0 ;
m_iPercentScoreWeightMiss = 0 ;
m_iPercentScoreWeightOK = 3 ;
m_iPercentScoreWeightNG = 0 ;
m_iPercentScoreWeightHitMine = - 2 ;
m_iGradeWeightMarvelous = 2 ;
m_iGradeWeightPerfect = 2 ;
m_iGradeWeightGreat = 1 ;
m_iGradeWeightGood = 0 ;
m_iGradeWeightBoo = - 4 ;
m_iGradeWeightMiss = - 8 ;
m_iGradeWeightHitMine = - 8 ;
m_iGradeWeightOK = 6 ;
m_iGradeWeightNG = 0 ;
2004-02-16 09:23:34 +00:00
m_iNumGradeTiersUsed = 7 ;
2004-01-20 03:32:48 +00:00
for ( int i = 0 ; i < NUM_GRADE_TIERS ; i + + )
2004-03-13 18:35:25 +00:00
m_fGradePercent [ i ] = 0 ;
m_fGradePercent [ GRADE_TIER_1 ] = 1.0f ;
m_fGradePercent [ GRADE_TIER_2 ] = 1.0f ;
m_fGradePercent [ GRADE_TIER_3 ] = 0.93f ; // AA
m_fGradePercent [ GRADE_TIER_4 ] = 0.80f ; // A
m_fGradePercent [ GRADE_TIER_5 ] = 0.65f ; // B
m_fGradePercent [ GRADE_TIER_6 ] = 0.45f ; // C
2004-06-29 20:37:07 +00:00
m_fGradePercent [ GRADE_TIER_7 ] = - 99999 ; // D
2004-02-16 09:23:34 +00:00
m_bGradeTier02IsAllPerfects = true ;
2004-01-11 23:33:56 +00:00
2004-01-20 07:09:44 +00:00
m_fSuperMeterPercentChangeMarvelous = + 0.05f ;
m_fSuperMeterPercentChangePerfect = + 0.04f ;
m_fSuperMeterPercentChangeGreat = + 0.02f ;
m_fSuperMeterPercentChangeGood = + 0.00f ;
m_fSuperMeterPercentChangeBoo = - 0.00f ;
m_fSuperMeterPercentChangeMiss = - 0.20f ;
m_fSuperMeterPercentChangeHitMine = - 0.40f ;
m_fSuperMeterPercentChangeOK = + 0.04f ;
m_fSuperMeterPercentChangeNG = - 0.20f ;
2004-01-11 23:33:56 +00:00
m_bMercifulSuperMeter = true ;
2004-01-02 01:39:14 +00:00
2004-12-04 06:09:30 +00:00
m_bDelayedBack = true ;
m_bShowInstructions = true ;
2002-12-15 10:25:20 +00:00
m_bShowSelectGroup = true ;
2004-12-04 06:09:30 +00:00
m_bShowNativeLanguage = true ;
2002-09-10 09:10:36 +00:00
m_bArcadeOptionsNavigation = false ;
2003-04-18 23:55:20 +00:00
m_bSoloSingle = false ;
2003-02-04 03:03:43 +00:00
m_MusicWheelUsesSections = ALWAYS ;
2003-01-21 06:51:35 +00:00
m_iMusicWheelSwitchSpeed = 10 ;
2003-01-11 08:55:21 +00:00
m_bEasterEggs = true ;
2003-07-25 08:05:29 +00:00
m_iMarvelousTiming = 2 ;
2005-01-04 10:51:25 +00:00
m_CoinMode = COIN_HOME ;
2003-01-19 04:44:22 +00:00
m_iCoinsPerCredit = 1 ;
2005-01-04 10:51:25 +00:00
m_Premium = PREMIUM_NONE ;
2004-05-07 08:08:11 +00:00
m_bDelayedCreditsReconcile = false ;
2003-01-18 04:26:25 +00:00
m_iBoostAppPriority = - 1 ;
2003-12-20 21:29:55 +00:00
m_bSmoothLines = false ;
2003-04-21 22:36:45 +00:00
m_ShowSongOptions = YES ;
2003-04-11 01:49:57 +00:00
m_bDancePointsForOni = false ;
2003-10-05 05:18:48 +00:00
m_bPercentageScoring = false ;
2004-06-08 08:15:58 +00:00
m_fMinPercentageForMachineSongHighScore = 0.5f ;
2004-08-01 01:36:51 +00:00
m_fMinPercentageForMachineCourseHighScore = 0.001f ; // don't save course scores with 0 percentage
2004-03-28 20:08:43 +00:00
m_bDisqualification = false ;
2003-03-20 10:59:09 +00:00
m_bShowLyrics = true ;
2004-02-10 21:10:23 +00:00
m_bAutogenSteps = true ;
2003-03-27 01:56:21 +00:00
m_bAutogenGroupCourses = true ;
2003-04-11 01:49:57 +00:00
m_bBreakComboToGetItem = false ;
2004-01-21 01:33:29 +00:00
m_bLockCourseDifficulties = true ;
2003-08-27 02:48:32 +00:00
m_ShowDancingCharacters = CO_OFF ;
2003-05-09 05:56:05 +00:00
m_bUseUnlockSystem = false ;
2003-05-26 09:18:44 +00:00
m_bFirstRun = true ;
2003-10-03 03:20:50 +00:00
m_bAutoMapOnJoyChange = true ;
2003-07-05 05:28:23 +00:00
m_fGlobalOffsetSeconds = 0 ;
2003-08-20 09:17:56 +00:00
m_bShowBeginnerHelper = false ;
2003-09-29 12:32:12 +00:00
m_bEndlessBreakEnabled = true ;
m_iEndlessNumStagesUntilBreak = 5 ;
m_iEndlessBreakLength = 5 ;
2004-03-15 02:32:51 +00:00
m_bDisableScreenSaver = true ;
2003-08-20 17:54:26 +00:00
2003-07-29 12:42:38 +00:00
// set to 0 so people aren't shocked at first
m_iProgressiveLifebar = 0 ;
2003-07-30 17:01:04 +00:00
m_iProgressiveNonstopLifebar = 0 ;
2003-07-31 15:07:48 +00:00
m_iProgressiveStageLifebar = 0 ;
2003-07-15 08:35:47 +00:00
2003-02-22 03:27:54 +00:00
/* DDR Extreme-style extra stage support.
* Default off so people used to the current behavior (or those with extra
* stage CRS files) don't get it changed around on them. */
2003-02-01 05:39:48 +00:00
m_bPickExtraStage = false ;
2003-09-06 04:18:08 +00:00
m_bComboContinuesBetweenSongs = false ;
2003-07-27 14:10:47 +00:00
// default to old sort order
2003-07-27 18:39:34 +00:00
m_iCourseSortOrder = COURSE_SORT_SONGS ;
2003-08-12 23:18:19 +00:00
m_bMoveRandomToEnd = false ;
2004-06-02 07:07:12 +00:00
m_bSubSortByNumSteps = false ;
2003-08-11 09:58:18 +00:00
m_iScoringType = SCORING_MAX2 ;
2003-07-27 14:10:47 +00:00
2003-11-03 10:14:13 +00:00
m_iGetRankingName = RANKING_ON ;
2003-02-27 08:38:24 +00:00
m_fLongVerSongSeconds = 60 * 2.5f ; // Dynamite Rave is 2:55
m_fMarathonVerSongSeconds = 60 * 5.f ;
2003-02-10 05:30:12 +00:00
2004-12-04 10:35:50 +00:00
2003-08-19 08:01:15 +00:00
m_sLanguage = " " ; // ThemeManager will deal with this invalid language
2003-08-12 19:08:07 +00:00
2003-10-11 07:47:34 +00:00
m_iCenterImageTranslateX = 0 ;
m_iCenterImageTranslateY = 0 ;
2004-10-24 22:59:10 +00:00
m_fCenterImageAddWidth = 0 ;
m_fCenterImageAddHeight = 0 ;
2003-10-11 07:47:34 +00:00
2004-01-11 11:30:53 +00:00
m_iAttractSoundFrequency = 1 ;
2003-10-19 05:49:53 +00:00
m_bAllowExtraStage = true ;
2004-03-01 02:45:29 +00:00
m_bHideDefaultNoteSkin = false ;
2004-05-28 04:46:43 +00:00
m_iMaxHighScoresPerListForMachine = 10 ;
m_iMaxHighScoresPerListForPlayer = 3 ;
2004-02-25 05:49:54 +00:00
m_fPadStickSeconds = 0 ;
2004-05-18 08:43:21 +00:00
m_bForceMipMaps = false ;
2004-05-18 09:05:21 +00:00
m_bTrilinearFiltering = false ;
2004-05-18 08:43:21 +00:00
m_bAnisotropicFiltering = false ;
2003-10-16 08:55:32 +00:00
g_bAutoRestart = false ;
2004-02-15 06:10:21 +00:00
m_bSignProfileData = false ;
2004-05-26 04:46:23 +00:00
2004-01-23 08:25:00 +00:00
m_bEditorShowBGChangesPlay = false ;
2003-06-11 00:10:51 +00:00
m_sSoundDrivers = DEFAULT_SOUND_DRIVER_LIST ;
2003-12-02 20:52:10 +00:00
/* Number of frames to write ahead; usually 44100 frames per second.
* (Number of millisec would be more flexible, but it's more useful to
* specify numbers directly.) This is purely a troubleshooting option
* and is not honored by all sound drivers. */
m_iSoundWriteAhead = 0 ;
2004-07-17 21:22:36 +00:00
m_iSoundDevice = " " ;
2004-02-21 00:14:38 +00:00
m_fSoundVolume = DEFAULT_SOUND_VOLUME ;
m_iSoundResampleQuality = RageSoundReader_Resample : : RESAMP_NORMAL ;
2004-10-16 15:04:10 +00:00
m_sInputDrivers = DEFAULT_INPUT_DRIVER_LIST ;
2003-09-02 04:51:36 +00:00
m_sMovieDrivers = DEFAULT_MOVIE_DRIVER_LIST ;
2003-08-20 17:54:26 +00:00
2003-06-10 23:50:31 +00:00
// StepMania.cpp sets these on first run:
m_sVideoRenderers = " " ;
# if defined(WIN32)
m_iLastSeenMemory = 0 ;
# endif
2003-11-16 04:45:12 +00:00
m_sLightsDriver = DEFAULT_LIGHTS_DRIVER ;
2004-05-20 19:05:37 +00:00
m_sLightsStepsDifficulty = " medium " ;
2004-04-22 05:25:58 +00:00
m_bBlinkGameplayButtonLightsOnNote = false ;
2003-05-27 01:03:21 +00:00
m_bAllowUnacceleratedRenderer = false ;
2003-07-13 20:21:04 +00:00
m_bThreadedInput = true ;
2004-04-08 20:36:44 +00:00
m_bThreadedMovieDecode = true ;
2003-12-18 21:16:43 +00:00
m_bScreenTestMode = false ;
2004-02-16 05:35:06 +00:00
m_sMachineName = " NoName " ;
2003-07-07 03:51:20 +00:00
m_sIgnoredMessageWindows = " " ;
2003-08-20 17:54:26 +00:00
2003-09-09 02:54:34 +00:00
m_sCoursesToShowRanking = " " ;
2004-02-27 00:56:51 +00:00
m_bLogToDisk = true ;
2003-11-24 00:23:18 +00:00
m_bForceLogFlush = false ;
# ifdef DEBUG
m_bShowLogOutput = true ;
# else
m_bShowLogOutput = false ;
# endif
m_bTimestamping = false ;
2004-01-17 23:22:08 +00:00
m_bLogSkips = false ;
2003-11-24 00:23:18 +00:00
m_bLogCheckpoints = false ;
2004-02-15 22:56:51 +00:00
m_bShowLoadingWindow = true ;
2003-11-24 00:23:18 +00:00
2004-06-06 01:50:21 +00:00
m_bMemoryCards = false ;
2004-05-24 06:10:11 +00:00
FOREACH_PlayerNumber ( p )
2003-12-15 07:35:40 +00:00
{
m_iMemoryCardUsbBus [ p ] = - 1 ;
m_iMemoryCardUsbPort [ p ] = - 1 ;
2004-04-17 22:41:34 +00:00
m_iMemoryCardUsbLevel [ p ] = - 1 ;
2003-12-15 07:35:40 +00:00
}
2004-10-03 05:27:52 +00:00
2003-12-19 08:51:47 +00:00
m_sMemoryCardProfileSubdir = PRODUCT_NAME ;
2004-05-25 06:50:04 +00:00
m_iProductID = 1 ;
2004-09-13 03:58:39 +00:00
2005-01-25 07:42:02 +00:00
m_bEnableVirtualKeyboard = false ;
2004-11-26 23:33:07 +00:00
2004-11-08 02:37:34 +00:00
# if defined(XBOX)
2005-01-25 07:42:02 +00:00
m_bEnableVirtualKeyboard = true ;
2004-11-08 02:37:34 +00:00
m_bEnableVirtualMemory = true ;
m_iPageFileSize = 384 ;
m_iPageSize = 16 ;
m_iPageThreshold = 8 ;
m_bLogVirtualMemory = false ;
# endif
2004-09-13 03:58:39 +00:00
FOREACH_CONST ( IPreference * , * g_pvpSubscribers , p ) ( * p ) - > LoadDefault ( ) ;
2002-02-28 19:40:40 +00:00
}
PrefsManager : : ~ PrefsManager ( )
{
}
2003-10-08 08:01:41 +00:00
void PrefsManager : : ReadGlobalPrefsFromDisk ( )
2002-02-28 19:40:40 +00:00
{
2004-08-22 15:55:23 +00:00
ReadPrefsFromFile ( DEFAULTS_INI_PATH ) ;
2004-05-16 22:58:05 +00:00
ReadPrefsFromFile ( STEPMANIA_INI_PATH ) ;
2004-08-22 15:55:23 +00:00
ReadPrefsFromFile ( STATIC_INI_PATH ) ;
2004-05-16 22:58:05 +00:00
}
2003-10-08 08:01:41 +00:00
2004-08-22 15:55:23 +00:00
void PrefsManager : : ResetToFactoryDefaults ( )
2004-05-16 22:58:05 +00:00
{
2004-08-22 15:55:23 +00:00
// clobber the users prefs by initing then applying defaults
Init ( ) ;
m_bFirstRun = false ;
ReadPrefsFromFile ( DEFAULTS_INI_PATH ) ;
2004-08-22 18:08:06 +00:00
ReadPrefsFromFile ( STATIC_INI_PATH ) ;
2004-08-22 15:55:23 +00:00
SaveGlobalPrefsToDisk ( ) ;
2004-05-16 22:58:05 +00:00
}
void PrefsManager : : ReadPrefsFromFile ( CString sIni )
{
IniFile ini ;
2004-08-22 15:55:23 +00:00
if ( ! ini . ReadFile ( sIni ) )
return ;
2002-02-28 19:40:40 +00:00
2004-06-18 11:02:40 +00:00
ini . GetValue ( " Options " , " CelShadeModels " , m_bCelShadeModels ) ;
2004-07-28 16:04:19 +00:00
ini . GetValue ( " Options " , " ConstantUpdateDeltaSeconds " , m_fConstantUpdateDeltaSeconds ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " NumArcadeStages " , m_iNumArcadeStages ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " AutoPlay " , m_bAutoPlay ) ;
2004-01-20 07:09:44 +00:00
ini . GetValue ( " Options " , " TugMeterPercentChangeMarvelous " , m_fTugMeterPercentChangeMarvelous ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangePerfect " , m_fTugMeterPercentChangePerfect ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeGreat " , m_fTugMeterPercentChangeGreat ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeGood " , m_fTugMeterPercentChangeGood ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeBoo " , m_fTugMeterPercentChangeBoo ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeMiss " , m_fTugMeterPercentChangeMiss ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeHitMine " , m_fTugMeterPercentChangeHitMine ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeOK " , m_fTugMeterPercentChangeOK ) ;
ini . GetValue ( " Options " , " TugMeterPercentChangeNG " , m_fTugMeterPercentChangeNG ) ;
2003-10-13 00:06:49 +00:00
ini . GetValue ( " Options " , " RegenComboAfterFail " , m_iRegenComboAfterFail ) ;
ini . GetValue ( " Options " , " RegenComboAfterMiss " , m_iRegenComboAfterMiss ) ;
ini . GetValue ( " Options " , " MaxRegenComboAfterFail " , m_iMaxRegenComboAfterFail ) ;
ini . GetValue ( " Options " , " MaxRegenComboAfterMiss " , m_iMaxRegenComboAfterMiss ) ;
2003-10-13 03:20:05 +00:00
ini . GetValue ( " Options " , " TwoPlayerRecovery " , m_bTwoPlayerRecovery ) ;
2004-01-11 23:33:56 +00:00
ini . GetValue ( " Options " , " MercifulDrain " , m_bMercifulDrain ) ;
2004-06-26 17:28:02 +00:00
ini . GetValue ( " Options " , " Minimum1FullSongInCourses " , m_bMinimum1FullSongInCourses ) ;
2004-01-02 01:39:14 +00:00
2004-01-20 07:09:44 +00:00
ini . GetValue ( " Options " , " PercentScoreWeightMarvelous " , m_iPercentScoreWeightMarvelous ) ;
ini . GetValue ( " Options " , " PercentScoreWeightPerfect " , m_iPercentScoreWeightPerfect ) ;
ini . GetValue ( " Options " , " PercentScoreWeightGreat " , m_iPercentScoreWeightGreat ) ;
ini . GetValue ( " Options " , " PercentScoreWeightGood " , m_iPercentScoreWeightGood ) ;
ini . GetValue ( " Options " , " PercentScoreWeightBoo " , m_iPercentScoreWeightBoo ) ;
ini . GetValue ( " Options " , " PercentScoreWeightMiss " , m_iPercentScoreWeightMiss ) ;
ini . GetValue ( " Options " , " PercentScoreWeightOK " , m_iPercentScoreWeightOK ) ;
ini . GetValue ( " Options " , " PercentScoreWeightNG " , m_iPercentScoreWeightNG ) ;
ini . GetValue ( " Options " , " PercentScoreWeightHitMine " , m_iPercentScoreWeightHitMine ) ;
ini . GetValue ( " Options " , " GradeWeightMarvelous " , m_iGradeWeightMarvelous ) ;
ini . GetValue ( " Options " , " GradeWeightPerfect " , m_iGradeWeightPerfect ) ;
ini . GetValue ( " Options " , " GradeWeightGreat " , m_iGradeWeightGreat ) ;
ini . GetValue ( " Options " , " GradeWeightGood " , m_iGradeWeightGood ) ;
ini . GetValue ( " Options " , " GradeWeightBoo " , m_iGradeWeightBoo ) ;
ini . GetValue ( " Options " , " GradeWeightMiss " , m_iGradeWeightMiss ) ;
ini . GetValue ( " Options " , " GradeWeightHitMine " , m_iGradeWeightHitMine ) ;
ini . GetValue ( " Options " , " GradeWeightOK " , m_iGradeWeightOK ) ;
ini . GetValue ( " Options " , " GradeWeightNG " , m_iGradeWeightNG ) ;
2004-02-16 09:23:34 +00:00
ini . GetValue ( " Options " , " NumGradeTiersUsed " , m_iNumGradeTiersUsed ) ;
2004-01-20 03:32:48 +00:00
for ( int g = 0 ; g < NUM_GRADE_TIERS ; g + + )
{
Grade grade = ( Grade ) g ;
CString s = GradeToString ( grade ) ;
2004-03-13 18:35:25 +00:00
ini . GetValue ( " Options " , " GradePercent " + s , m_fGradePercent [ g ] ) ;
2004-01-20 03:32:48 +00:00
}
2004-01-20 07:09:44 +00:00
ini . GetValue ( " Options " , " GradeTier02IsAllPerfects " , m_bGradeTier02IsAllPerfects ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeMarvelous " , m_fSuperMeterPercentChangeMarvelous ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangePerfect " , m_fSuperMeterPercentChangePerfect ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeGreat " , m_fSuperMeterPercentChangeGreat ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeGood " , m_fSuperMeterPercentChangeGood ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeBoo " , m_fSuperMeterPercentChangeBoo ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeMiss " , m_fSuperMeterPercentChangeMiss ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeHitMine " , m_fSuperMeterPercentChangeHitMine ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeOK " , m_fSuperMeterPercentChangeOK ) ;
ini . GetValue ( " Options " , " SuperMeterPercentChangeNG " , m_fSuperMeterPercentChangeNG ) ;
2004-01-11 23:33:56 +00:00
ini . GetValue ( " Options " , " MercifulSuperMeter " , m_bMercifulSuperMeter ) ;
2004-12-04 06:09:30 +00:00
ini . GetValue ( " Options " , " DelayedEscape " , m_bDelayedBack ) ;
ini . GetValue ( " Options " , " ShowInstructions " , m_bShowInstructions ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " ShowSelectGroup " , m_bShowSelectGroup ) ;
2004-12-04 06:09:30 +00:00
ini . GetValue ( " Options " , " ShowNativeLanguage " , m_bShowNativeLanguage ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " ArcadeOptionsNavigation " , m_bArcadeOptionsNavigation ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " MusicWheelUsesSections " , ( int & ) m_MusicWheelUsesSections ) ;
ini . GetValue ( " Options " , " MusicWheelSwitchSpeed " , m_iMusicWheelSwitchSpeed ) ;
ini . GetValue ( " Options " , " SoundDrivers " , m_sSoundDrivers ) ;
2003-12-02 20:52:10 +00:00
ini . GetValue ( " Options " , " SoundWriteAhead " , m_iSoundWriteAhead ) ;
2004-07-17 21:22:36 +00:00
ini . GetValue ( " Options " , " SoundDevice " , m_iSoundDevice ) ;
2004-10-16 15:04:10 +00:00
ini . GetValue ( " Options " , " InputDrivers " , m_sInputDrivers ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " MovieDrivers " , m_sMovieDrivers ) ;
ini . GetValue ( " Options " , " EasterEggs " , m_bEasterEggs ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " MarvelousTiming " , ( int & ) m_iMarvelousTiming ) ;
ini . GetValue ( " Options " , " SoundVolume " , m_fSoundVolume ) ;
2003-11-16 04:45:12 +00:00
ini . GetValue ( " Options " , " LightsDriver " , m_sLightsDriver ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " SoundResampleQuality " , m_iSoundResampleQuality ) ;
2005-01-04 10:51:25 +00:00
ini . GetValue ( " Options " , " CoinMode " , ( int & ) m_CoinMode ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " CoinsPerCredit " , m_iCoinsPerCredit ) ;
2004-07-22 20:21:35 +00:00
m_iCoinsPerCredit = max ( m_iCoinsPerCredit , 1 ) ;
2003-11-09 01:09:35 +00:00
ini . GetValue ( " Options " , " Premium " , ( int & ) m_Premium ) ;
2004-05-07 08:08:11 +00:00
ini . GetValue ( " Options " , " DelayedCreditsReconcile " , m_bDelayedCreditsReconcile ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " BoostAppPriority " , m_iBoostAppPriority ) ;
ini . GetValue ( " Options " , " PickExtraStage " , m_bPickExtraStage ) ;
ini . GetValue ( " Options " , " ComboContinuesBetweenSongs " , m_bComboContinuesBetweenSongs ) ;
ini . GetValue ( " Options " , " LongVerSeconds " , m_fLongVerSongSeconds ) ;
ini . GetValue ( " Options " , " MarathonVerSeconds " , m_fMarathonVerSongSeconds ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " ShowSongOptions " , ( int & ) m_ShowSongOptions ) ;
2004-05-20 19:05:37 +00:00
ini . GetValue ( " Options " , " LightsStepsDifficulty " , m_sLightsStepsDifficulty ) ;
2004-04-22 05:25:58 +00:00
ini . GetValue ( " Options " , " BlinkGameplayButtonLightsOnNote " , m_bBlinkGameplayButtonLightsOnNote ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " AllowUnacceleratedRenderer " , m_bAllowUnacceleratedRenderer ) ;
ini . GetValue ( " Options " , " ThreadedInput " , m_bThreadedInput ) ;
2004-04-02 23:14:29 +00:00
ini . GetValue ( " Options " , " ThreadedMovieDecode " , m_bThreadedMovieDecode ) ;
2003-12-18 21:16:43 +00:00
ini . GetValue ( " Options " , " ScreenTestMode " , m_bScreenTestMode ) ;
2004-02-16 05:35:06 +00:00
ini . GetValue ( " Options " , " MachineName " , m_sMachineName ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " IgnoredMessageWindows " , m_sIgnoredMessageWindows ) ;
ini . GetValue ( " Options " , " SoloSingle " , m_bSoloSingle ) ;
ini . GetValue ( " Options " , " DancePointsForOni " , m_bDancePointsForOni ) ;
2003-10-05 05:18:48 +00:00
ini . GetValue ( " Options " , " PercentageScoring " , m_bPercentageScoring ) ;
2004-06-08 08:15:58 +00:00
ini . GetValue ( " Options " , " MinPercentageForMachineSongHighScore " , m_fMinPercentageForMachineSongHighScore ) ;
ini . GetValue ( " Options " , " MinPercentageForMachineCourseHighScore " , m_fMinPercentageForMachineCourseHighScore ) ;
2004-03-28 20:08:43 +00:00
ini . GetValue ( " Options " , " Disqualification " , m_bDisqualification ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " ShowLyrics " , m_bShowLyrics ) ;
2004-02-10 21:10:23 +00:00
ini . GetValue ( " Options " , " AutogenSteps " , m_bAutogenSteps ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " AutogenGroupCourses " , m_bAutogenGroupCourses ) ;
ini . GetValue ( " Options " , " BreakComboToGetItem " , m_bBreakComboToGetItem ) ;
2004-01-21 01:33:29 +00:00
ini . GetValue ( " Options " , " LockCourseDifficulties " , m_bLockCourseDifficulties ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " ShowDancingCharacters " , ( int & ) m_ShowDancingCharacters ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " CourseSortOrder " , ( int & ) m_iCourseSortOrder ) ;
ini . GetValue ( " Options " , " MoveRandomToEnd " , m_bMoveRandomToEnd ) ;
2004-06-02 07:07:12 +00:00
ini . GetValue ( " Options " , " SubSortByNumSteps " , m_bSubSortByNumSteps ) ;
2003-10-02 02:03:29 +00:00
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " ScoringType " , ( int & ) m_iScoringType ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " ProgressiveLifebar " , m_iProgressiveLifebar ) ;
ini . GetValue ( " Options " , " ProgressiveNonstopLifebar " , m_iProgressiveNonstopLifebar ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " ProgressiveStageLifebar " , m_iProgressiveStageLifebar ) ;
2003-10-02 02:03:29 +00:00
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " UseUnlockSystem " , m_bUseUnlockSystem ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " FirstRun " , m_bFirstRun ) ;
2003-10-03 03:20:50 +00:00
ini . GetValue ( " Options " , " AutoMapJoysticks " , m_bAutoMapOnJoyChange ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " VideoRenderers " , m_sVideoRenderers ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " LastSeenVideoDriver " , m_sLastSeenVideoDriver ) ;
2003-10-03 03:20:50 +00:00
ini . GetValue ( " Options " , " LastSeenInputDevices " , m_sLastSeenInputDevices ) ;
2003-06-10 23:50:31 +00:00
# if defined(WIN32)
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " LastSeenMemory " , m_iLastSeenMemory ) ;
2003-06-10 23:50:31 +00:00
# endif
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " CoursesToShowRanking " , m_sCoursesToShowRanking ) ;
2003-11-03 10:14:13 +00:00
ini . GetValue ( " Options " , " GetRankingName " , ( int & ) m_iGetRankingName ) ;
2004-06-02 07:07:12 +00:00
ini . GetValue ( " Options " , " SmoothLines " , m_bSmoothLines ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " GlobalOffsetSeconds " , m_fGlobalOffsetSeconds ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " ShowBeginnerHelper " , m_bShowBeginnerHelper ) ;
ini . GetValue ( " Options " , " Language " , m_sLanguage ) ;
2003-10-02 02:11:47 +00:00
ini . GetValue ( " Options " , " EndlessBreakEnabled " , m_bEndlessBreakEnabled ) ;
ini . GetValue ( " Options " , " EndlessStagesUntilBreak " , m_iEndlessNumStagesUntilBreak ) ;
2003-10-02 02:03:29 +00:00
ini . GetValue ( " Options " , " EndlessBreakLength " , m_iEndlessBreakLength ) ;
2004-02-17 07:16:58 +00:00
ini . GetValue ( " Options " , " DisableScreenSaver " , m_bDisableScreenSaver ) ;
2003-09-13 22:57:11 +00:00
2003-12-19 08:51:47 +00:00
ini . GetValue ( " Options " , " MemoryCardProfileSubdir " , m_sMemoryCardProfileSubdir ) ;
2004-05-25 06:50:04 +00:00
ini . GetValue ( " Options " , " ProductID " , m_iProductID ) ;
2004-06-06 01:50:21 +00:00
ini . GetValue ( " Options " , " MemoryCards " , m_bMemoryCards ) ;
2004-05-24 06:10:11 +00:00
FOREACH_PlayerNumber ( p )
2003-11-01 22:04:43 +00:00
{
2003-12-07 08:19:10 +00:00
ini . GetValue ( " Options " , ssprintf ( " DefaultLocalProfileIDP%d " , p + 1 ) , m_sDefaultLocalProfileID [ p ] ) ;
2003-12-19 08:51:47 +00:00
ini . GetValue ( " Options " , ssprintf ( " MemoryCardOsMountPointP%d " , p + 1 ) , m_sMemoryCardOsMountPoint [ p ] ) ;
FixSlashesInPlace ( m_sMemoryCardOsMountPoint [ p ] ) ;
2003-12-15 07:35:40 +00:00
ini . GetValue ( " Options " , ssprintf ( " MemoryCardUsbBusP%d " , p + 1 ) , m_iMemoryCardUsbBus [ p ] ) ;
ini . GetValue ( " Options " , ssprintf ( " MemoryCardUsbPortP%d " , p + 1 ) , m_iMemoryCardUsbPort [ p ] ) ;
2004-04-17 22:41:34 +00:00
ini . GetValue ( " Options " , ssprintf ( " MemoryCardUsbLevelP%d " , p + 1 ) , m_iMemoryCardUsbLevel [ p ] ) ;
2003-11-01 22:04:43 +00:00
}
2003-07-18 08:04:47 +00:00
2003-10-11 07:47:34 +00:00
ini . GetValue ( " Options " , " CenterImageTranslateX " , m_iCenterImageTranslateX ) ;
ini . GetValue ( " Options " , " CenterImageTranslateY " , m_iCenterImageTranslateY ) ;
2004-10-24 22:59:10 +00:00
ini . GetValue ( " Options " , " CenterImageAddWidth " , m_fCenterImageAddWidth ) ;
ini . GetValue ( " Options " , " CenterImageAddHeight " , m_fCenterImageAddHeight ) ;
2003-12-28 19:46:50 +00:00
ini . GetValue ( " Options " , " AttractSoundFrequency " , m_iAttractSoundFrequency ) ;
2003-10-19 05:49:53 +00:00
ini . GetValue ( " Options " , " AllowExtraStage " , m_bAllowExtraStage ) ;
2004-03-01 02:45:29 +00:00
ini . GetValue ( " Options " , " HideDefaultNoteSkin " , m_bHideDefaultNoteSkin ) ;
2004-05-28 04:46:43 +00:00
ini . GetValue ( " Options " , " MaxHighScoresPerListForMachine " , m_iMaxHighScoresPerListForMachine ) ;
ini . GetValue ( " Options " , " MaxHighScoresPerListForPlayer " , m_iMaxHighScoresPerListForPlayer ) ;
2004-02-25 05:49:54 +00:00
ini . GetValue ( " Options " , " PadStickSeconds " , m_fPadStickSeconds ) ;
2004-05-18 08:43:21 +00:00
ini . GetValue ( " Options " , " ForceMipMaps " , m_bForceMipMaps ) ;
2004-05-18 09:05:21 +00:00
ini . GetValue ( " Options " , " TrilinearFiltering " , m_bTrilinearFiltering ) ;
2004-05-18 08:43:21 +00:00
ini . GetValue ( " Options " , " AnisotropicFiltering " , m_bAnisotropicFiltering ) ;
2003-10-16 08:55:32 +00:00
ini . GetValue ( " Options " , " AutoRestart " , g_bAutoRestart ) ;
2004-02-15 06:10:21 +00:00
ini . GetValue ( " Options " , " SignProfileData " , m_bSignProfileData ) ;
2003-02-10 05:30:12 +00:00
2004-01-23 08:25:00 +00:00
ini . GetValue ( " Editor " , " ShowBGChangesPlay " , m_bEditorShowBGChangesPlay ) ;
2004-02-19 08:45:17 +00:00
ini . GetValue ( " Options " , " AdditionalSongFolders " , m_sAdditionalSongFolders ) ;
ini . GetValue ( " Options " , " AdditionalFolders " , m_sAdditionalFolders ) ;
FixSlashesInPlace ( m_sAdditionalSongFolders ) ;
FixSlashesInPlace ( m_sAdditionalFolders ) ;
2003-11-24 00:23:18 +00:00
2004-11-26 23:33:07 +00:00
ini . GetValue ( " Options " , " EnableVirtualKeyboard " , m_bEnableVirtualKeyboard ) ;
2004-11-08 02:37:34 +00:00
# if defined(XBOX)
ini . GetValue ( " Options " , " EnableVirtualMemory " , m_bEnableVirtualMemory ) ;
ini . GetValue ( " Options " , " PageFileSize " , m_iPageFileSize ) ;
ini . GetValue ( " Options " , " PageSize " , m_iPageSize ) ;
ini . GetValue ( " Options " , " PageThreshold " , m_iPageThreshold ) ;
ini . GetValue ( " Debug " , " LogVirtualMemory " , m_bLogVirtualMemory ) ;
# endif
2004-02-27 00:56:51 +00:00
ini . GetValue ( " Debug " , " LogToDisk " , m_bLogToDisk ) ;
2003-11-24 00:23:18 +00:00
ini . GetValue ( " Debug " , " ForceLogFlush " , m_bForceLogFlush ) ;
ini . GetValue ( " Debug " , " ShowLogOutput " , m_bShowLogOutput ) ;
ini . GetValue ( " Debug " , " Timestamping " , m_bTimestamping ) ;
2004-01-17 23:22:08 +00:00
ini . GetValue ( " Debug " , " LogSkips " , m_bLogSkips ) ;
2003-11-24 00:23:18 +00:00
ini . GetValue ( " Debug " , " LogCheckpoints " , m_bLogCheckpoints ) ;
2004-02-15 22:56:51 +00:00
ini . GetValue ( " Debug " , " ShowLoadingWindow " , m_bShowLoadingWindow ) ;
2004-09-13 03:58:39 +00:00
FOREACH ( IPreference * , * g_pvpSubscribers , p ) ( * p ) - > ReadFrom ( ini ) ;
2002-02-28 19:40:40 +00:00
}
2003-10-05 05:18:48 +00:00
void PrefsManager : : SaveGlobalPrefsToDisk ( ) const
2002-02-28 19:40:40 +00:00
{
IniFile ini ;
2002-04-28 20:42:32 +00:00
2004-06-18 11:02:40 +00:00
ini . SetValue ( " Options " , " CelShadeModels " , m_bCelShadeModels ) ;
2004-07-28 16:04:19 +00:00
ini . SetValue ( " Options " , " ConstantUpdateDeltaSeconds " , m_fConstantUpdateDeltaSeconds ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " UseDedicatedMenuButtons " , m_bOnlyDedicatedMenuButtons ) ;
2004-12-04 10:35:50 +00:00
ini . SetValue ( " Options " , " BackgroundMode " , m_iBackgroundMode ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " NumBackgrounds " , m_iNumBackgrounds ) ;
ini . SetValue ( " Options " , " ShowDanger " , m_bShowDanger ) ;
ini . SetValue ( " Options " , " BGBrightness " , m_fBGBrightness ) ;
ini . SetValue ( " Options " , " MenuTimer " , m_bMenuTimer ) ;
ini . SetValue ( " Options " , " NumArcadeStages " , m_iNumArcadeStages ) ;
ini . SetValue ( " Options " , " AutoPlay " , m_bAutoPlay ) ;
ini . SetValue ( " Options " , " JudgeWindowScale " , m_fJudgeWindowScale ) ;
2004-06-27 00:03:06 +00:00
ini . SetValue ( " Options " , " JudgeWindowAdd " , m_fJudgeWindowAdd ) ;
2004-01-20 07:09:44 +00:00
ini . SetValue ( " Options " , " JudgeWindowSecondsMarvelous " , m_fJudgeWindowSecondsMarvelous ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsPerfect " , m_fJudgeWindowSecondsPerfect ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsGreat " , m_fJudgeWindowSecondsGreat ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsGood " , m_fJudgeWindowSecondsGood ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsBoo " , m_fJudgeWindowSecondsBoo ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsOK " , m_fJudgeWindowSecondsOK ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsMine " , m_fJudgeWindowSecondsMine ) ;
ini . SetValue ( " Options " , " JudgeWindowSecondsAttack " , m_fJudgeWindowSecondsAttack ) ;
2004-06-27 00:03:06 +00:00
ini . SetValue ( " Options " , " LifeDifficultyScale " , m_fLifeDifficultyScale ) ;
2004-01-20 07:09:44 +00:00
ini . SetValue ( " Options " , " LifeDeltaPercentChangeMarvelous " , m_fLifeDeltaPercentChangeMarvelous ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangePerfect " , m_fLifeDeltaPercentChangePerfect ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeGreat " , m_fLifeDeltaPercentChangeGreat ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeGood " , m_fLifeDeltaPercentChangeGood ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeBoo " , m_fLifeDeltaPercentChangeBoo ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeMiss " , m_fLifeDeltaPercentChangeMiss ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeHitMine " , m_fLifeDeltaPercentChangeHitMine ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeOK " , m_fLifeDeltaPercentChangeOK ) ;
ini . SetValue ( " Options " , " LifeDeltaPercentChangeNG " , m_fLifeDeltaPercentChangeNG ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeMarvelous " , m_fTugMeterPercentChangeMarvelous ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangePerfect " , m_fTugMeterPercentChangePerfect ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeGreat " , m_fTugMeterPercentChangeGreat ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeGood " , m_fTugMeterPercentChangeGood ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeBoo " , m_fTugMeterPercentChangeBoo ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeMiss " , m_fTugMeterPercentChangeMiss ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeHitMine " , m_fTugMeterPercentChangeHitMine ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeOK " , m_fTugMeterPercentChangeOK ) ;
ini . SetValue ( " Options " , " TugMeterPercentChangeNG " , m_fTugMeterPercentChangeNG ) ;
2003-10-13 00:06:49 +00:00
ini . SetValue ( " Options " , " RegenComboAfterFail " , m_iRegenComboAfterFail ) ;
ini . SetValue ( " Options " , " RegenComboAfterMiss " , m_iRegenComboAfterMiss ) ;
ini . SetValue ( " Options " , " MaxRegenComboAfterFail " , m_iMaxRegenComboAfterFail ) ;
ini . SetValue ( " Options " , " MaxRegenComboAfterMiss " , m_iMaxRegenComboAfterMiss ) ;
2003-10-13 03:20:05 +00:00
ini . SetValue ( " Options " , " TwoPlayerRecovery " , m_bTwoPlayerRecovery ) ;
2004-01-11 23:33:56 +00:00
ini . SetValue ( " Options " , " MercifulDrain " , m_bMercifulDrain ) ;
2004-06-26 17:28:02 +00:00
ini . SetValue ( " Options " , " Minimum1FullSongInCourses " , m_bMinimum1FullSongInCourses ) ;
2004-01-02 01:39:14 +00:00
2004-01-20 07:09:44 +00:00
ini . SetValue ( " Options " , " PercentScoreWeightMarvelous " , m_iPercentScoreWeightMarvelous ) ;
ini . SetValue ( " Options " , " PercentScoreWeightPerfect " , m_iPercentScoreWeightPerfect ) ;
ini . SetValue ( " Options " , " PercentScoreWeightGreat " , m_iPercentScoreWeightGreat ) ;
ini . SetValue ( " Options " , " PercentScoreWeightGood " , m_iPercentScoreWeightGood ) ;
ini . SetValue ( " Options " , " PercentScoreWeightBoo " , m_iPercentScoreWeightBoo ) ;
ini . SetValue ( " Options " , " PercentScoreWeightMiss " , m_iPercentScoreWeightMiss ) ;
ini . SetValue ( " Options " , " PercentScoreWeightOK " , m_iPercentScoreWeightOK ) ;
ini . SetValue ( " Options " , " PercentScoreWeightNG " , m_iPercentScoreWeightNG ) ;
ini . SetValue ( " Options " , " PercentScoreWeightHitMine " , m_iPercentScoreWeightHitMine ) ;
ini . SetValue ( " Options " , " GradeWeightMarvelous " , m_iGradeWeightMarvelous ) ;
ini . SetValue ( " Options " , " GradeWeightPerfect " , m_iGradeWeightPerfect ) ;
ini . SetValue ( " Options " , " GradeWeightGreat " , m_iGradeWeightGreat ) ;
ini . SetValue ( " Options " , " GradeWeightGood " , m_iGradeWeightGood ) ;
ini . SetValue ( " Options " , " GradeWeightBoo " , m_iGradeWeightBoo ) ;
ini . SetValue ( " Options " , " GradeWeightMiss " , m_iGradeWeightMiss ) ;
ini . SetValue ( " Options " , " GradeWeightHitMine " , m_iGradeWeightHitMine ) ;
ini . SetValue ( " Options " , " GradeWeightOK " , m_iGradeWeightOK ) ;
ini . SetValue ( " Options " , " GradeWeightNG " , m_iGradeWeightNG ) ;
2004-02-16 09:23:34 +00:00
ini . SetValue ( " Options " , " NumGradeTiersUsed " , m_iNumGradeTiersUsed ) ;
2004-01-20 03:32:48 +00:00
for ( int g = 0 ; g < NUM_GRADE_TIERS ; g + + )
{
Grade grade = ( Grade ) g ;
CString s = GradeToString ( grade ) ;
2004-11-05 02:09:48 +00:00
ini . SetValue ( " Options " , " GradePercent " + s , m_fGradePercent [ g ] ) ;
2004-01-20 03:32:48 +00:00
}
2004-01-20 07:09:44 +00:00
ini . SetValue ( " Options " , " GradeTier02IsAllPerfects " , m_bGradeTier02IsAllPerfects ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeMarvelous " , m_fSuperMeterPercentChangeMarvelous ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangePerfect " , m_fSuperMeterPercentChangePerfect ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeGreat " , m_fSuperMeterPercentChangeGreat ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeGood " , m_fSuperMeterPercentChangeGood ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeBoo " , m_fSuperMeterPercentChangeBoo ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeMiss " , m_fSuperMeterPercentChangeMiss ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeHitMine " , m_fSuperMeterPercentChangeHitMine ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeOK " , m_fSuperMeterPercentChangeOK ) ;
ini . SetValue ( " Options " , " SuperMeterPercentChangeNG " , m_fSuperMeterPercentChangeNG ) ;
2004-01-11 23:33:56 +00:00
ini . SetValue ( " Options " , " MercifulSuperMeter " , m_bMercifulSuperMeter ) ;
2004-12-04 06:09:30 +00:00
ini . SetValue ( " Options " , " DelayedEscape " , m_bDelayedBack ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " HiddenSongs " , m_bHiddenSongs ) ;
ini . SetValue ( " Options " , " Vsync " , m_bVsync ) ;
ini . SetValue ( " Options " , " Interlaced " , m_bInterlaced ) ;
ini . SetValue ( " Options " , " PAL " , m_bPAL ) ;
2004-12-04 06:09:30 +00:00
ini . SetValue ( " Options " , " ShowInstructions " , m_bShowInstructions ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " ShowSelectGroup " , m_bShowSelectGroup ) ;
2004-12-04 06:09:30 +00:00
ini . SetValue ( " Options " , " ShowNativeLanguage " , m_bShowNativeLanguage ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " ArcadeOptionsNavigation " , m_bArcadeOptionsNavigation ) ;
ini . SetValue ( " Options " , " DelayedTextureDelete " , m_bDelayedTextureDelete ) ;
2003-10-19 07:30:06 +00:00
ini . SetValue ( " Options " , " TexturePreload " , m_bTexturePreload ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " DelayedScreenLoad " , m_bDelayedScreenLoad ) ;
2004-05-26 06:39:38 +00:00
ini . SetValue ( " Options " , " DelayedModelDelete " , m_bDelayedModelDelete ) ;
2004-12-04 10:35:50 +00:00
ini . SetValue ( " Options " , " BannerCache " , m_iBannerCache ) ;
2004-09-04 04:19:04 +00:00
ini . SetValue ( " Options " , " PalettedBannerCache " , m_bPalettedBannerCache ) ;
2003-12-31 09:32:21 +00:00
ini . SetValue ( " Options " , " FastLoad " , m_bFastLoad ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " MusicWheelUsesSections " , m_MusicWheelUsesSections ) ;
ini . SetValue ( " Options " , " MusicWheelSwitchSpeed " , m_iMusicWheelSwitchSpeed ) ;
ini . SetValue ( " Options " , " EasterEggs " , m_bEasterEggs ) ;
ini . SetValue ( " Options " , " MarvelousTiming " , m_iMarvelousTiming ) ;
ini . SetValue ( " Options " , " SoundResampleQuality " , m_iSoundResampleQuality ) ;
2005-01-04 10:51:25 +00:00
ini . SetValue ( " Options " , " CoinMode " , m_CoinMode ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " CoinsPerCredit " , m_iCoinsPerCredit ) ;
2003-11-09 01:09:35 +00:00
ini . SetValue ( " Options " , " Premium " , m_Premium ) ;
2004-05-07 08:08:11 +00:00
ini . SetValue ( " Options " , " DelayedCreditsReconcile " , m_bDelayedCreditsReconcile ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " BoostAppPriority " , m_iBoostAppPriority ) ;
ini . SetValue ( " Options " , " PickExtraStage " , m_bPickExtraStage ) ;
ini . SetValue ( " Options " , " ComboContinuesBetweenSongs " , m_bComboContinuesBetweenSongs ) ;
ini . SetValue ( " Options " , " LongVerSeconds " , m_fLongVerSongSeconds ) ;
ini . SetValue ( " Options " , " MarathonVerSeconds " , m_fMarathonVerSongSeconds ) ;
ini . SetValue ( " Options " , " ShowSongOptions " , m_ShowSongOptions ) ;
2004-05-20 19:05:37 +00:00
ini . SetValue ( " Options " , " LightsStepsDifficulty " , m_sLightsStepsDifficulty ) ;
2004-04-22 05:25:58 +00:00
ini . SetValue ( " Options " , " BlinkGameplayButtonLightsOnNote " , m_bBlinkGameplayButtonLightsOnNote ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " AllowUnacceleratedRenderer " , m_bAllowUnacceleratedRenderer ) ;
ini . SetValue ( " Options " , " ThreadedInput " , m_bThreadedInput ) ;
2004-04-02 23:14:29 +00:00
ini . SetValue ( " Options " , " ThreadedMovieDecode " , m_bThreadedMovieDecode ) ;
2003-12-18 21:16:43 +00:00
ini . SetValue ( " Options " , " ScreenTestMode " , m_bScreenTestMode ) ;
2004-02-16 05:35:06 +00:00
ini . SetValue ( " Options " , " MachineName " , m_sMachineName ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " IgnoredMessageWindows " , m_sIgnoredMessageWindows ) ;
ini . SetValue ( " Options " , " SoloSingle " , m_bSoloSingle ) ;
ini . SetValue ( " Options " , " DancePointsForOni " , m_bDancePointsForOni ) ;
2003-10-05 05:18:48 +00:00
ini . SetValue ( " Options " , " PercentageScoring " , m_bPercentageScoring ) ;
2004-06-08 08:15:58 +00:00
ini . SetValue ( " Options " , " MinPercentageForMachineSongHighScore " , m_fMinPercentageForMachineSongHighScore ) ;
ini . SetValue ( " Options " , " MinPercentageForMachineCourseHighScore " , m_fMinPercentageForMachineCourseHighScore ) ;
2004-03-28 20:08:43 +00:00
ini . SetValue ( " Options " , " Disqualification " , m_bDisqualification ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " ShowLyrics " , m_bShowLyrics ) ;
2004-02-10 21:10:23 +00:00
ini . SetValue ( " Options " , " AutogenSteps " , m_bAutogenSteps ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " AutogenGroupCourses " , m_bAutogenGroupCourses ) ;
ini . SetValue ( " Options " , " BreakComboToGetItem " , m_bBreakComboToGetItem ) ;
2004-01-21 01:33:29 +00:00
ini . SetValue ( " Options " , " LockCourseDifficulties " , m_bLockCourseDifficulties ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " ShowDancingCharacters " , m_ShowDancingCharacters ) ;
ini . SetValue ( " Options " , " UseUnlockSystem " , m_bUseUnlockSystem ) ;
ini . SetValue ( " Options " , " FirstRun " , m_bFirstRun ) ;
2003-10-03 03:20:50 +00:00
ini . SetValue ( " Options " , " AutoMapJoysticks " , m_bAutoMapOnJoyChange ) ;
2003-10-08 07:10:55 +00:00
ini . SetValue ( " Options " , " VideoRenderers " , m_sVideoRenderers ) ;
ini . SetValue ( " Options " , " LastSeenVideoDriver " , m_sLastSeenVideoDriver ) ;
ini . SetValue ( " Options " , " LastSeenInputDevices " , m_sLastSeenInputDevices ) ;
2003-06-10 23:50:31 +00:00
# if defined(WIN32)
2003-10-08 07:10:55 +00:00
ini . SetValue ( " Options " , " LastSeenMemory " , m_iLastSeenMemory ) ;
2003-06-10 23:50:31 +00:00
# endif
2003-10-08 07:10:55 +00:00
ini . SetValue ( " Options " , " CoursesToShowRanking " , m_sCoursesToShowRanking ) ;
2003-11-03 10:14:13 +00:00
ini . SetValue ( " Options " , " GetRankingName " , m_iGetRankingName ) ;
2004-06-02 07:07:12 +00:00
ini . SetValue ( " Options " , " SmoothLines " , m_bSmoothLines ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " GlobalOffsetSeconds " , m_fGlobalOffsetSeconds ) ;
ini . SetValue ( " Options " , " CourseSortOrder " , m_iCourseSortOrder ) ;
ini . SetValue ( " Options " , " MoveRandomToEnd " , m_bMoveRandomToEnd ) ;
2004-06-02 07:07:12 +00:00
ini . SetValue ( " Options " , " SubSortByNumSteps " , m_bSubSortByNumSteps ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " ScoringType " , m_iScoringType ) ;
ini . SetValue ( " Options " , " ProgressiveLifebar " , m_iProgressiveLifebar ) ;
ini . SetValue ( " Options " , " ProgressiveStageLifebar " , m_iProgressiveStageLifebar ) ;
ini . SetValue ( " Options " , " ProgressiveNonstopLifebar " , m_iProgressiveNonstopLifebar ) ;
ini . SetValue ( " Options " , " ShowBeginnerHelper " , m_bShowBeginnerHelper ) ;
2003-10-08 07:10:55 +00:00
ini . SetValue ( " Options " , " Language " , m_sLanguage ) ;
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " EndlessBreakEnabled " , m_bEndlessBreakEnabled ) ;
ini . SetValue ( " Options " , " EndlessStagesUntilBreak " , m_iEndlessNumStagesUntilBreak ) ;
ini . SetValue ( " Options " , " EndlessBreakLength " , m_iEndlessBreakLength ) ;
2004-02-17 07:16:58 +00:00
ini . SetValue ( " Options " , " DisableScreenSaver " , m_bDisableScreenSaver ) ;
2003-09-13 22:57:11 +00:00
2003-12-19 08:51:47 +00:00
ini . SetValue ( " Options " , " MemoryCardProfileSubdir " , m_sMemoryCardProfileSubdir ) ;
2004-05-25 06:50:04 +00:00
ini . SetValue ( " Options " , " ProductID " , m_iProductID ) ;
2004-06-06 01:50:21 +00:00
ini . SetValue ( " Options " , " MemoryCards " , m_bMemoryCards ) ;
2004-05-24 06:10:11 +00:00
FOREACH_PlayerNumber ( p )
2003-11-01 22:04:43 +00:00
{
2003-12-07 08:19:10 +00:00
ini . SetValue ( " Options " , ssprintf ( " DefaultLocalProfileIDP%d " , p + 1 ) , m_sDefaultLocalProfileID [ p ] ) ;
2003-12-19 08:51:47 +00:00
ini . SetValue ( " Options " , ssprintf ( " MemoryCardOsMountPointP%d " , p + 1 ) , m_sMemoryCardOsMountPoint [ p ] ) ;
2003-12-15 07:35:40 +00:00
ini . SetValue ( " Options " , ssprintf ( " MemoryCardUsbBusP%d " , p + 1 ) , m_iMemoryCardUsbBus [ p ] ) ;
ini . SetValue ( " Options " , ssprintf ( " MemoryCardUsbPortP%d " , p + 1 ) , m_iMemoryCardUsbPort [ p ] ) ;
2004-04-17 22:41:34 +00:00
ini . SetValue ( " Options " , ssprintf ( " MemoryCardUsbLevelP%d " , p + 1 ) , m_iMemoryCardUsbLevel [ p ] ) ;
2003-11-01 22:04:43 +00:00
}
2003-07-15 08:35:47 +00:00
2003-10-11 07:47:34 +00:00
ini . SetValue ( " Options " , " CenterImageTranslateX " , m_iCenterImageTranslateX ) ;
ini . SetValue ( " Options " , " CenterImageTranslateY " , m_iCenterImageTranslateY ) ;
2004-10-24 22:59:10 +00:00
ini . SetValue ( " Options " , " CenterImageAddWidth " , m_fCenterImageAddWidth ) ;
ini . SetValue ( " Options " , " CenterImageAddHeight " , m_fCenterImageAddHeight ) ;
2003-12-28 19:46:50 +00:00
ini . SetValue ( " Options " , " AttractSoundFrequency " , m_iAttractSoundFrequency ) ;
2003-10-19 05:49:53 +00:00
ini . SetValue ( " Options " , " AllowExtraStage " , m_bAllowExtraStage ) ;
2004-03-01 02:45:29 +00:00
ini . SetValue ( " Options " , " HideDefaultNoteSkin " , m_bHideDefaultNoteSkin ) ;
2004-05-28 04:46:43 +00:00
ini . SetValue ( " Options " , " MaxHighScoresPerListForMachine " , m_iMaxHighScoresPerListForMachine ) ;
ini . SetValue ( " Options " , " MaxHighScoresPerListForPlayer " , m_iMaxHighScoresPerListForPlayer ) ;
2004-02-25 05:49:54 +00:00
ini . SetValue ( " Options " , " PadStickSeconds " , m_fPadStickSeconds ) ;
2004-05-18 08:43:21 +00:00
ini . SetValue ( " Options " , " ForceMipMaps " , m_bForceMipMaps ) ;
2004-05-18 09:05:21 +00:00
ini . SetValue ( " Options " , " TrilinearFiltering " , m_bTrilinearFiltering ) ;
2004-05-18 08:43:21 +00:00
ini . SetValue ( " Options " , " AnisotropicFiltering " , m_bAnisotropicFiltering ) ;
2003-10-16 08:55:32 +00:00
ini . SetValue ( " Options " , " AutoRestart " , g_bAutoRestart ) ;
2004-02-15 06:10:21 +00:00
ini . SetValue ( " Options " , " SignProfileData " , m_bSignProfileData ) ;
2004-05-20 07:44:57 +00:00
2003-12-02 20:52:10 +00:00
ini . SetValue ( " Options " , " SoundWriteAhead " , m_iSoundWriteAhead ) ;
2004-07-17 21:22:36 +00:00
ini . SetValue ( " Options " , " SoundDevice " , m_iSoundDevice ) ;
2003-10-11 07:47:34 +00:00
2004-01-23 08:25:00 +00:00
ini . SetValue ( " Editor " , " ShowBGChangesPlay " , m_bEditorShowBGChangesPlay ) ;
2003-01-18 03:54:41 +00:00
/* Only write these if they aren't the default. This ensures that we can change
2002-12-21 07:33:28 +00:00
* the default and have it take effect for everyone (except people who
* tweaked this value). */
2003-01-19 21:51:46 +00:00
if ( m_sSoundDrivers ! = DEFAULT_SOUND_DRIVER_LIST )
2003-09-09 02:54:34 +00:00
ini . SetValue ( " Options " , " SoundDrivers " , m_sSoundDrivers ) ;
2003-01-11 04:03:21 +00:00
if ( m_fSoundVolume ! = DEFAULT_SOUND_VOLUME )
2003-10-02 02:11:47 +00:00
ini . SetValue ( " Options " , " SoundVolume " , m_fSoundVolume ) ;
2004-10-16 15:04:10 +00:00
if ( m_sInputDrivers ! = DEFAULT_INPUT_DRIVER_LIST )
ini . SetValue ( " Options " , " InputDrivers " , m_sInputDrivers ) ;
2003-09-02 04:51:36 +00:00
if ( m_sMovieDrivers ! = DEFAULT_MOVIE_DRIVER_LIST )
2003-09-09 02:54:34 +00:00
ini . SetValue ( " Options " , " MovieDrivers " , m_sMovieDrivers ) ;
2004-10-16 15:04:10 +00:00
if ( m_sLightsDriver ! = DEFAULT_LIGHTS_DRIVER )
ini . SetValue ( " Options " , " LightsDriver " , m_sLightsDriver ) ;
2002-02-28 19:40:40 +00:00
2004-02-19 08:45:17 +00:00
ini . SetValue ( " Options " , " AdditionalSongFolders " , m_sAdditionalSongFolders ) ;
ini . SetValue ( " Options " , " AdditionalFolders " , m_sAdditionalFolders ) ;
2002-06-27 17:49:10 +00:00
2004-11-26 23:33:07 +00:00
ini . SetValue ( " Options " , " EnableVirtualKeyboard " , m_bEnableVirtualKeyboard ) ;
2004-11-08 02:37:34 +00:00
# if defined(XBOX)
ini . SetValue ( " Options " , " EnableVirtualMemory " , m_bEnableVirtualMemory ) ;
ini . SetValue ( " Options " , " PageFileSize " , m_iPageFileSize ) ;
ini . SetValue ( " Options " , " PageSize " , m_iPageSize ) ;
ini . SetValue ( " Options " , " PageThreshold " , m_iPageThreshold ) ;
# endif
2004-02-27 00:56:51 +00:00
ini . SetValue ( " Debug " , " LogToDisk " , m_bLogToDisk ) ;
2003-11-24 00:23:18 +00:00
ini . SetValue ( " Debug " , " ForceLogFlush " , m_bForceLogFlush ) ;
ini . SetValue ( " Debug " , " ShowLogOutput " , m_bShowLogOutput ) ;
ini . SetValue ( " Debug " , " Timestamping " , m_bTimestamping ) ;
2004-01-17 23:22:08 +00:00
ini . SetValue ( " Debug " , " LogSkips " , m_bLogSkips ) ;
2003-11-24 00:23:18 +00:00
ini . SetValue ( " Debug " , " LogCheckpoints " , m_bLogCheckpoints ) ;
2004-02-15 22:56:51 +00:00
ini . SetValue ( " Debug " , " ShowLoadingWindow " , m_bShowLoadingWindow ) ;
2004-11-08 02:37:34 +00:00
# if defined(XBOX)
ini . SetValue ( " Debug " , " LogVirtualMemory " , m_bLogVirtualMemory ) ;
# endif
2003-11-24 00:23:18 +00:00
2004-09-13 03:58:39 +00:00
FOREACH_CONST ( IPreference * , * g_pvpSubscribers , p ) ( * p ) - > WriteTo ( ini ) ;
2004-05-23 02:27:51 +00:00
ini . WriteFile ( STEPMANIA_INI_PATH ) ;
2002-02-28 19:40:40 +00:00
}
2004-05-16 22:58:05 +00:00
2005-01-04 10:51:25 +00:00
CoinMode PrefsManager : : GetCoinMode ( )
2004-06-09 08:14:21 +00:00
{
2005-01-04 10:51:25 +00:00
if ( m_bEventMode & & m_CoinMode = = COIN_PAY )
2004-06-09 08:14:21 +00:00
return COIN_FREE ;
else
2005-01-04 10:51:25 +00:00
return m_CoinMode ;
2004-06-09 08:14:21 +00:00
}
2005-01-04 10:51:25 +00:00
Premium PrefsManager : : GetPremium ( )
2004-06-09 08:14:21 +00:00
{
if ( m_bEventMode )
2005-01-04 10:51:25 +00:00
return PREMIUM_NONE ;
2004-06-09 08:14:21 +00:00
else
return m_Premium ;
}
2005-01-30 02:04:57 +00:00
# include "RageLog.h"
2005-01-17 04:05:40 +00:00
# include "LuaFunctions.h"
2005-01-30 02:04:57 +00:00
int LuaFunc_GetPreference ( lua_State * L )
{
REQ_ARGS ( " GetPreference " , 1 ) ;
REQ_ARG ( " GetPreference " , 1 , string ) ;
CString sName ;
LUA - > PopStack ( sName ) ;
IPreference * pPref = PREFSMAN - > GetPreferenceByName ( sName ) ;
if ( pPref = = NULL )
{
LOG - > Warn ( " GetPreference: unknown preference \" %s \" " , sName . c_str ( ) ) ;
lua_pushnil ( L ) ;
}
else
pPref - > PushValue ( L ) ;
return 1 ;
}
LuaFunction ( GetPreference ) ; /* register it */
2005-01-26 07:34:20 +00:00
LuaFunction_NoArgs ( EventMode , PREFSMAN - > m_bEventMode )
LuaFunction_NoArgs ( ShowCaution , PREFSMAN - > m_bShowCaution )
2005-01-17 04:05:40 +00:00
2004-06-08 01:24:17 +00:00
/*
* (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.
*/