move Jump window and Hopo window values to be preferences
This commit is contained in:
@@ -8,8 +8,6 @@
|
|||||||
#include <set>
|
#include <set>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
static const float HOPO_CHAIN_SECONDS = 0.5f;
|
|
||||||
|
|
||||||
#define FOREACH_NONEMPTY_ROW_IN_TRACK( nd, track, row ) \
|
#define FOREACH_NONEMPTY_ROW_IN_TRACK( nd, track, row ) \
|
||||||
for( int row = -1; (nd).GetNextTapNoteRowForTrack(track,row); )
|
for( int row = -1; (nd).GetNextTapNoteRowForTrack(track,row); )
|
||||||
#define FOREACH_NONEMPTY_ROW_IN_TRACK_RANGE( nd, track, row, start, last ) \
|
#define FOREACH_NONEMPTY_ROW_IN_TRACK_RANGE( nd, track, row, start, last ) \
|
||||||
|
|||||||
@@ -2179,6 +2179,9 @@ bool NoteDataUtil::GetPrevEditorPosition( const NoteData& in, int &rowInOut )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern Preference<float> g_fTimingWindowHopo;
|
||||||
|
|
||||||
|
|
||||||
void NoteDataUtil::SetHopoPossibleFlags( const Song *pSong, NoteData& ndInOut )
|
void NoteDataUtil::SetHopoPossibleFlags( const Song *pSong, NoteData& ndInOut )
|
||||||
{
|
{
|
||||||
float fLastRowMusicSeconds = -1;
|
float fLastRowMusicSeconds = -1;
|
||||||
@@ -2189,7 +2192,7 @@ void NoteDataUtil::SetHopoPossibleFlags( const Song *pSong, NoteData& ndInOut )
|
|||||||
float fSeconds = pSong->GetElapsedTimeFromBeat( fBeat );
|
float fSeconds = pSong->GetElapsedTimeFromBeat( fBeat );
|
||||||
|
|
||||||
int iLastTapTrack = ndInOut.GetLastTrackWithTapOrHoldHead( r );
|
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 );
|
int iNumNotesInRow = ndInOut.GetNumTapNotesInRow( r );
|
||||||
TapNote &tn = ndInOut.FindTapNote( iLastTapTrack, r )->second;
|
TapNote &tn = ndInOut.FindTapNote( iLastTapTrack, r )->second;
|
||||||
|
|||||||
@@ -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)) ); }
|
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. */
|
/* 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 StepSearchDistance = 1.0f;
|
||||||
static const float JUMP_WINDOW_SECONDS = 0.25f;
|
|
||||||
|
|
||||||
void TimingWindowSecondsInit( size_t /*TimingWindow*/ i, RString &sNameOut, float &defaultValueOut )
|
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<float> m_fTimingWindowScale ( "TimingWindowScale", 1.0f );
|
static Preference<float> m_fTimingWindowScale ( "TimingWindowScale", 1.0f );
|
||||||
static Preference<float> m_fTimingWindowAdd ( "TimingWindowAdd", 0 );
|
static Preference<float> m_fTimingWindowAdd ( "TimingWindowAdd", 0 );
|
||||||
static Preference1D<float> m_fTimingWindowSeconds( TimingWindowSecondsInit, NUM_TimingWindow );
|
static Preference1D<float> m_fTimingWindowSeconds( TimingWindowSecondsInit, NUM_TimingWindow );
|
||||||
|
static Preference<float> m_fTimingWindowJump ( "TimingWindowJump", 0.25 );
|
||||||
|
Preference<float> g_fTimingWindowHopo ( "TimingWindowHopo", 0.25 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
float Player::GetWindowSeconds( TimingWindow tw )
|
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;
|
int iHopoCol = -1;
|
||||||
bool bDoHopo =
|
bool bDoHopo =
|
||||||
m_pPlayerState->m_fLastHopoNoteMusicSeconds != -1 &&
|
m_pPlayerState->m_fLastHopoNoteMusicSeconds != -1 &&
|
||||||
fPositionSeconds <= m_pPlayerState->m_fLastHopoNoteMusicSeconds + HOPO_CHAIN_SECONDS;
|
fPositionSeconds <= m_pPlayerState->m_fLastHopoNoteMusicSeconds + g_fTimingWindowHopo;
|
||||||
if( bDoHopo )
|
if( bDoHopo )
|
||||||
{
|
{
|
||||||
// do a Hopo:
|
// 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 );
|
GameInput GameI = GAMESTATE->GetCurrentStyle()->StyleInputToGameInput( t, pn );
|
||||||
const float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI );
|
const float fSecsHeld = INPUTMAPPER->GetSecsHeld( GameI );
|
||||||
if( fSecsHeld > 0 && fSecsHeld < JUMP_WINDOW_SECONDS )
|
if( fSecsHeld > 0 && fSecsHeld < m_fTimingWindowJump )
|
||||||
iNumTracksHeld++;
|
iNumTracksHeld++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user