diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 0a5dd726d7..57ca3d4ab6 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -735,29 +735,12 @@ void ScreenEdit::Update( float fDeltaTime ) // Update trailing beat float fDelta = GAMESTATE->m_fSongBeat - m_fTrailingBeat; - - if( fabsf(fDelta) < 0.01 ) - { - m_fTrailingBeat = GAMESTATE->m_fSongBeat; // snap - } + if( fabsf(fDelta) < 10 ) + fapproach( m_fTrailingBeat, GAMESTATE->m_fSongBeat, + fDeltaTime*40 / GAMESTATE->m_pPlayerState[PLAYER_1]->m_CurrentPlayerOptions.m_fScrollSpeed ); else - { - float fSign = fDelta / fabsf(fDelta); - float fMoveDelta = fSign*fDeltaTime*40 / GAMESTATE->m_pPlayerState[PLAYER_1]->m_CurrentPlayerOptions.m_fScrollSpeed; - if( fabsf(fMoveDelta) > fabsf(fDelta) ) - fMoveDelta = fDelta; - m_fTrailingBeat += fMoveDelta; - - if( fabsf(fDelta) > 10 ) - { - /* We're far off; move faster. Be sure to not overshoot. */ - fMoveDelta = fDelta * fDeltaTime*5; - float fNewDelta = GAMESTATE->m_fSongBeat - m_fTrailingBeat; - if( fabsf(fMoveDelta) > fabsf(fNewDelta) ) - fMoveDelta = fNewDelta; - m_fTrailingBeat += fMoveDelta; - } - } + fapproach( m_fTrailingBeat, GAMESTATE->m_fSongBeat, + fabsf(fDelta) * fDeltaTime*5 ); PlayTicks(); }