From 668158658e9031b6b379b8c23da4c77c02b17f8c Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 11 Dec 2006 12:59:32 +0000 Subject: [PATCH] move Jump window and Hopo window values to be preferences --- stepmania/src/NoteData.h | 2 -- stepmania/src/NoteDataUtil.cpp | 5 ++++- stepmania/src/Player.cpp | 10 +++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/stepmania/src/NoteData.h b/stepmania/src/NoteData.h index db1a8350fb..fbf54fef7e 100644 --- a/stepmania/src/NoteData.h +++ b/stepmania/src/NoteData.h @@ -8,8 +8,6 @@ #include #include -static const float HOPO_CHAIN_SECONDS = 0.5f; - #define FOREACH_NONEMPTY_ROW_IN_TRACK( nd, track, row ) \ for( int row = -1; (nd).GetNextTapNoteRowForTrack(track,row); ) #define FOREACH_NONEMPTY_ROW_IN_TRACK_RANGE( nd, track, row, start, last ) \ diff --git a/stepmania/src/NoteDataUtil.cpp b/stepmania/src/NoteDataUtil.cpp index ad2f4a2ab1..3d91a6d07a 100644 --- a/stepmania/src/NoteDataUtil.cpp +++ b/stepmania/src/NoteDataUtil.cpp @@ -2179,6 +2179,9 @@ bool NoteDataUtil::GetPrevEditorPosition( const NoteData& in, int &rowInOut ) return true; } +extern Preference g_fTimingWindowHopo; + + void NoteDataUtil::SetHopoPossibleFlags( const Song *pSong, NoteData& ndInOut ) { float fLastRowMusicSeconds = -1; @@ -2189,7 +2192,7 @@ void NoteDataUtil::SetHopoPossibleFlags( const Song *pSong, NoteData& ndInOut ) float fSeconds = pSong->GetElapsedTimeFromBeat( fBeat ); int iLastTapTrack = ndInOut.GetLastTrackWithTapOrHoldHead( r ); - if( iLastTapTrack != -1 && fSeconds <= fLastRowMusicSeconds + HOPO_CHAIN_SECONDS ) + if( iLastTapTrack != -1 && fSeconds <= fLastRowMusicSeconds + g_fTimingWindowHopo ) { int iNumNotesInRow = ndInOut.GetNumTapNotesInRow( r ); TapNote &tn = ndInOut.FindTapNote( iLastTapTrack, r )->second; diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 2cd1b00fc0..d354933235 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -46,8 +46,8 @@ RString COMBO_X_NAME( size_t p, size_t both_sides ) { return "ComboXOffset" + ( RString ATTACK_DISPLAY_X_NAME( size_t p, size_t both_sides ) { return "AttackDisplayXOffset" + (both_sides ? RString("BothSides") : ssprintf("OneSideP%d",int(p+1)) ); } /* Distance to search for a note in Step(), in seconds. */ +// TODO: This should be calculated based on the max size of the current judgment windows. static const float StepSearchDistance = 1.0f; -static const float JUMP_WINDOW_SECONDS = 0.25f; void TimingWindowSecondsInit( size_t /*TimingWindow*/ i, RString &sNameOut, float &defaultValueOut ) { @@ -70,6 +70,10 @@ void TimingWindowSecondsInit( size_t /*TimingWindow*/ i, RString &sNameOut, floa static Preference m_fTimingWindowScale ( "TimingWindowScale", 1.0f ); static Preference m_fTimingWindowAdd ( "TimingWindowAdd", 0 ); static Preference1D m_fTimingWindowSeconds( TimingWindowSecondsInit, NUM_TimingWindow ); +static Preference m_fTimingWindowJump ( "TimingWindowJump", 0.25 ); +Preference g_fTimingWindowHopo ( "TimingWindowHopo", 0.25 ); + + float Player::GetWindowSeconds( TimingWindow tw ) { @@ -1089,7 +1093,7 @@ void Player::Fret( int col, int row, const RageTimer &tm, bool bHeld, bool bRele int iHopoCol = -1; bool bDoHopo = m_pPlayerState->m_fLastHopoNoteMusicSeconds != -1 && - fPositionSeconds <= m_pPlayerState->m_fLastHopoNoteMusicSeconds + HOPO_CHAIN_SECONDS; + fPositionSeconds <= m_pPlayerState->m_fLastHopoNoteMusicSeconds + g_fTimingWindowHopo; if( bDoHopo ) { // do a Hopo: @@ -1240,7 +1244,7 @@ void Player::StepStrumHopo( int col, int row, const RageTimer &tm, bool bHeld, b { GameInput GameI = GAMESTATE->GetCurrentStyle()->StyleInputToGameInput( t, pn ); const float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI ); - if( fSecsHeld > 0 && fSecsHeld < JUMP_WINDOW_SECONDS ) + if( fSecsHeld > 0 && fSecsHeld < m_fTimingWindowJump ) iNumTracksHeld++; }