diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index a264fa1819..6973f4d93e 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -67,8 +67,6 @@ const float FRAME_JUDGE_AND_COMBO_BEAT_TIME = 0.2f; const float ARROWS_Y = SCREEN_TOP + ARROW_SIZE * 1.5f; const float HOLD_JUDGEMENT_Y = ARROWS_Y + 80; -const float HOLD_ARROW_NG_TIME = 0.18f; - Player::Player() { @@ -265,7 +263,7 @@ void Player::Update( float fDeltaTime ) if( bSteppedOnTapNote && bIsHoldingButton ) { // Increase life - fLife += fDeltaTime/HOLD_ARROW_NG_TIME; + fLife += fDeltaTime/PREFSMAN->m_fJudgeWindowOKSeconds; fLife = min( fLife, 1 ); // clamp m_GhostArrowRow.HoldNote( hn.iTrack ); // update the "electric ghost" effect @@ -275,7 +273,7 @@ void Player::Update( float fDeltaTime ) if( fSongBeat-hn.fStartBeat > GAMESTATE->m_fCurBPS * GetMaxStepDistanceSeconds() ) { // Decrease life - fLife -= fDeltaTime/HOLD_ARROW_NG_TIME; + fLife -= fDeltaTime/PREFSMAN->m_fJudgeWindowOKSeconds; fLife = max( fLife, 0 ); // clamp } } diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index 03e33f024e..e2893d1e5c 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -61,6 +61,7 @@ PrefsManager::PrefsManager() m_fJudgeWindowGreatSeconds = 0.090f; m_fJudgeWindowGoodSeconds = 0.135f; m_fJudgeWindowBooSeconds = 0.180f; + m_fJudgeWindowOKSeconds = 0.120f; m_fLifeDifficultyScale = 1.0f; m_iMovieDecodeMS = 2; m_bUseBGIfNoBanner = false; @@ -138,6 +139,7 @@ void PrefsManager::ReadGlobalPrefsFromDisk( bool bSwitchToLastPlayedGame ) ini.GetValueF( "Options", "JudgeWindowGreatSeconds", m_fJudgeWindowGreatSeconds ); ini.GetValueF( "Options", "JudgeWindowGoodSeconds", m_fJudgeWindowGoodSeconds ); ini.GetValueF( "Options", "JudgeWindowBooSeconds", m_fJudgeWindowBooSeconds ); + ini.GetValueF( "Options", "JudgeWindowOKSeconds", m_fJudgeWindowOKSeconds ); ini.GetValueF( "Options", "LifeDifficultyScale", m_fLifeDifficultyScale ); ini.GetValueI( "Options", "MovieDecodeMS", m_iMovieDecodeMS ); ini.GetValueB( "Options", "UseBGIfNoBanner", m_bUseBGIfNoBanner ); @@ -213,6 +215,7 @@ void PrefsManager::SaveGlobalPrefsToDisk() ini.SetValueF( "Options", "JudgeWindowGreatSeconds", m_fJudgeWindowGreatSeconds ); ini.SetValueF( "Options", "JudgeWindowGoodSeconds", m_fJudgeWindowGoodSeconds ); ini.SetValueF( "Options", "JudgeWindowBooSeconds", m_fJudgeWindowBooSeconds ); + ini.SetValueF( "Options", "JudgeWindowOKSeconds", m_fJudgeWindowOKSeconds ); ini.SetValueF( "Options", "LifeDifficultyScale", m_fLifeDifficultyScale ); ini.SetValueI( "Options", "MovieDecodeMS", m_iMovieDecodeMS ); ini.SetValueB( "Options", "UseBGIfNoBanner", m_bUseBGIfNoBanner ); diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index 2c378b7a86..9d802304a4 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -49,6 +49,7 @@ public: float m_fJudgeWindowGreatSeconds; float m_fJudgeWindowGoodSeconds; float m_fJudgeWindowBooSeconds; + float m_fJudgeWindowOKSeconds; bool m_bAutoPlay; bool m_bDelayedEscape; bool m_bInstructions, m_bShowDontDie, m_bShowSelectGroup;