From c11c9283cd147fcd3221d7237fd6aca8705ec40f Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 29 Aug 2004 05:56:51 +0000 Subject: [PATCH] fix popping in converge + boomerang --- stepmania/src/NoteField.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index 6854c13e96..526dc974be 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -401,15 +401,23 @@ void NoteField::DrawPrimitives() NoteDisplayCols *cur = SearchForSongBeat(); cur->m_ReceptorArrowRow.Draw(); + const PlayerOptions ¤t_po = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber]; + // // Adjust draw range depending on some effects // int iFirstPixelToDraw = m_iStartDrawingPixel; + // HACK: if boomerang and converge are on, then we want to draw much + // earlier to that the notes don't pop on screen. + float fConvergeTimesBoomerang = + current_po.m_fScrolls[PlayerOptions::SCROLL_CONVERGE] * + current_po.m_fAccels[PlayerOptions::ACCEL_BOOMERANG]; + iFirstPixelToDraw += SCALE( fConvergeTimesBoomerang, 0.f, 1.f, 0.f, -SCREEN_HEIGHT/2 ); int iLastPixelToDraw = m_iEndDrawingPixel; float fDrawScale = 1; - fDrawScale *= 1 + 0.5f * fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fPerspectiveTilt ); - fDrawScale *= 1 + fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI] ); + fDrawScale *= 1 + 0.5f * fabsf( current_po.m_fPerspectiveTilt ); + fDrawScale *= 1 + fabsf( current_po.m_fEffects[PlayerOptions::EFFECT_MINI] ); float fFirstDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fFirstPixelToDrawScale; float fLastDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fLastPixelToDrawScale;