diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index e8765108f1..416ec24ac2 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -47,7 +47,7 @@ float ArrowGetYOffset( PlayerNumber pn, int iCol, float fNoteBeat ) // don't mess with the arrows after they've crossed 0 if( fYOffset < 0 ) - return fYOffset; + return fYOffset * GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed; const float* fAccels = GAMESTATE->m_CurrentPlayerOptions[pn].m_fAccels; //const float* fEffects = GAMESTATE->m_CurrentPlayerOptions[pn].m_fEffects; @@ -81,18 +81,15 @@ float ArrowGetYOffset( PlayerNumber pn, int iCol, float fNoteBeat ) if( fAccels[PlayerOptions::ACCEL_BOOMERANG] > 0 ) fYAdjust += fAccels[PlayerOptions::ACCEL_BOOMERANG] * (fYOffset * SCALE( fYOffset, 0.f, SCREEN_HEIGHT, 1.5f, 0.5f )- fYOffset); - return fYOffset + fYAdjust; -} + fYOffset += fYAdjust; + fYOffset *= GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed; -float ArrowGetYPosWithoutReverse( PlayerNumber pn, int iCol, float fYOffset ) -{ - float fYPos = fYOffset * GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed; - return fYPos; + return fYOffset; } float ArrowGetYPos( PlayerNumber pn, int iCol, float fYOffset, float fYReverseOffsetPixels ) { - float f = ArrowGetYPosWithoutReverse(pn,iCol,fYOffset); + float f = fYOffset; f *= SCALE( GAMESTATE->m_CurrentPlayerOptions[pn].GetReversePercentForColumn(iCol), 0.f, 1.f, 1.f, -1.f ); /* XXX: Hack: we need to scale the reverse shift by the zoom. */ diff --git a/stepmania/src/ArrowEffects.h b/stepmania/src/ArrowEffects.h index b1fa7eb10a..bbfcacc132 100644 --- a/stepmania/src/ArrowEffects.h +++ b/stepmania/src/ArrowEffects.h @@ -19,12 +19,9 @@ // fYOffset is a vertical position in pixels relative to the center. // (positive if has not yet been stepped on, negative if has already passed). -// The ArrowEffect is applied in this stage. +// The ArrowEffect and ScrollSpeed is applied in this stage. float ArrowGetYOffset( PlayerNumber pn, int iCol, float fNoteBeat ); -// This value is fYOffset with fScrollSpeed factored in. -float ArrowGetYPosWithoutReverse( PlayerNumber pn, int iCol, float fYOffset ); - // Actual display position, with reverse factored in. float ArrowGetYPos( PlayerNumber pn, int iCol, float fYOffset, float fYReverseOffsetPixels ); diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index 615bcb880f..50ce188c90 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -301,8 +301,7 @@ float FindFirstDisplayedBeat( PlayerNumber pn, int iFirstPixelToDraw ) while( fFirstBeatToDraw < GAMESTATE->m_fSongBeat ) { float fYOffset = ArrowGetYOffset(pn, 0, fFirstBeatToDraw); - float fYPosWOReverse = ArrowGetYPosWithoutReverse(pn, 0, fYOffset ); - if( fYPosWOReverse < iFirstPixelToDraw ) // off screen + if( fYOffset < iFirstPixelToDraw ) // off screen fFirstBeatToDraw += 0.1f; // move toward fSongBeat else // on screen break; // stop probing @@ -331,9 +330,8 @@ float FindLastDisplayedBeat( PlayerNumber pn, int iLastPixelToDraw ) for( int i=0; i iLastPixelToDraw ) // off screen + if( fYOffset > iLastPixelToDraw ) // off screen fLastBeatToDraw -= fSearchDistance; else // on screen fLastBeatToDraw += fSearchDistance;