#include "global.h" /* ----------------------------------------------------------------------------- Class: PrefsManager Desc: See Header. Copyright (c) 2001-2003 by the person(s) listed below. All rights reserved. Chris Danford Chris Gomez ----------------------------------------------------------------------------- */ #include "PrefsManager.h" #include "IniFile.h" #include "GameState.h" #include "RageDisplay.h" #include "RageUtil.h" #include "arch/arch.h" /* for default driver specs */ #include "RageSoundReader_Resample.h" /* for ResampleQuality */ #include "RageFile.h" #include "ProductInfo.h" #define STEPMANIA_INI_PATH "Data/StepMania.ini" #define STATIC_INI_PATH "Data/Static.ini" PrefsManager* PREFSMAN = NULL; // global and accessable from anywhere in our program const float DEFAULT_SOUND_VOLUME = 1.00f; const CString DEFAULT_LIGHTS_DRIVER = "Null"; bool g_bAutoRestart = false; PrefsManager::PrefsManager() { #ifdef DEBUG m_bWindowed = true; #else m_bWindowed = false; #endif m_iDisplayWidth = 640; m_iDisplayHeight = 480; m_iDisplayColorDepth = 16; m_iTextureColorDepth = 16; // default to 16 for better preformance on slower cards m_iMovieColorDepth = 16; m_iMaxTextureResolution = 2048; m_iRefreshRate = REFRESH_DEFAULT; m_bOnlyDedicatedMenuButtons = false; #ifdef DEBUG m_bShowStats = true; #else m_bShowStats = false; #endif m_bShowBanners = true ; m_BackgroundMode = BGMODE_ANIMATIONS; m_iNumBackgrounds = 8; m_bShowDanger = true; m_fBGBrightness = 0.8f; m_bMenuTimer = true; m_iNumArcadeStages = 3; m_bEventMode = false; m_bAutoPlay = false; m_fJudgeWindowScale = 1.0f; m_fLifeDifficultyScale = 1.0f; m_fJudgeWindowSecondsMarvelous = 0.0225f; m_fJudgeWindowSecondsPerfect = 0.045f; m_fJudgeWindowSecondsGreat = 0.090f; m_fJudgeWindowSecondsGood = 0.135f; m_fJudgeWindowSecondsBoo = 0.180f; m_fJudgeWindowSecondsOK = 0.250f; // allow enough time to take foot off and put back on m_fJudgeWindowSecondsMine = 0.090f; // same as great m_fJudgeWindowSecondsAttack = 0.135f; m_fLifeDeltaPercentChangeMarvelous = +0.008f; m_fLifeDeltaPercentChangePerfect = +0.008f; m_fLifeDeltaPercentChangeGreat = +0.004f; m_fLifeDeltaPercentChangeGood = +0.000f; m_fLifeDeltaPercentChangeBoo = -0.040f; m_fLifeDeltaPercentChangeMiss = -0.080f; m_fLifeDeltaPercentChangeHitMine = -0.160f; m_fLifeDeltaPercentChangeOK = +0.008f; m_fLifeDeltaPercentChangeNG = -0.080f; 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; m_iRegenComboAfterFail = 10; // cumulative m_iRegenComboAfterMiss = 5; // cumulative m_iMaxRegenComboAfterFail = 10; m_iMaxRegenComboAfterMiss = 10; m_bTwoPlayerRecovery = true; m_bMercifulDrain = true; 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; m_bGradeTier02IsAllPerfects = true; for( int i=0; i