File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -1081,7 +1081,7 @@ void Player::Update( float fDeltaTime )
1081
1081
}
1082
1082
1083
1083
// Check for completely judged rows.
1084
- UpdateJudgedRows ();
1084
+ UpdateJudgedRows (fDeltaTime );
1085
1085
1086
1086
// Check for TapNote misses
1087
1087
if (!GAMESTATE->m_bInStepEditor )
@@ -2491,10 +2491,13 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds )
2491
2491
}
2492
2492
}
2493
2493
2494
- void Player::UpdateJudgedRows ()
2494
+ void Player::UpdateJudgedRows (float fDeltaTime )
2495
2495
{
2496
- // Look ahead far enough to catch any rows judged early.
2496
+ // Look into the past and future only as far as we need to
2497
+ // in order to catch misses and early hits
2498
+ // TODO: Figure out why fudging value is needed aside from rounding distance
2497
2499
const int iEndRow = BeatToNoteRow ( m_Timing->GetBeatFromElapsedTime ( m_pPlayerState->m_Position .m_fMusicSeconds + GetMaxStepDistanceSeconds () ) );
2500
+ const int iStartRow = BeatToNoteRow (m_Timing->GetBeatFromElapsedTime (m_pPlayerState->m_Position .m_fMusicSeconds - GetMaxStepDistanceSeconds () - fDeltaTime - 0 .1666667f ));
2498
2501
bool bAllJudged = true ;
2499
2502
const bool bSeparately = GAMESTATE->GetCurrentGame ()->m_bCountNotesSeparately ;
2500
2503
@@ -2505,6 +2508,10 @@ void Player::UpdateJudgedRows()
2505
2508
{
2506
2509
int iRow = iter.Row ();
2507
2510
2511
+ // Do not go across rows which are too old
2512
+ if (iStartRow > iRow)
2513
+ continue ;
2514
+
2508
2515
// Do not judge arrows in WarpSegments or FakeSegments
2509
2516
if (!m_Timing->IsJudgableAtRow (iRow))
2510
2517
continue ;
You can’t perform that action at this time.
0 commit comments