From 32da97588f36138993592479c350aa17468dc7fe Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 2 Apr 2003 21:58:27 +0000 Subject: [PATCH] Use NoteFieldPositioning. ArrowGetXPos should probably be XOffset, now. --- stepmania/src/ArrowEffects.cpp | 12 +++++++----- stepmania/src/GhostArrowRow.cpp | 5 +++++ stepmania/src/GrayArrowRow.cpp | 7 +++++-- stepmania/src/NoteField.cpp | 5 +++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index 52ba6b6b07..9465d8bab1 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -67,21 +67,23 @@ float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat ) float ArrowGetXPos( PlayerNumber pn, int iColNum, float fYPos ) { - float fPixelOffsetFromCenter = GAMESTATE->GetCurrentStyleDef()->m_ColumnInfo[pn][iColNum].fXOffset; + float fPixelOffsetFromCenter = 0; const float* fEffects = GAMESTATE->m_CurrentPlayerOptions[pn].m_fEffects; if( fEffects[PlayerOptions::EFFECT_TORNADO] > 0 ) { - const StyleDef* pStyleDef = GAMESTATE->GetCurrentStyleDef(); float fMinX, fMaxX; - pStyleDef->GetMinAndMaxColX( pn, fMinX, fMaxX ); + GAMESTATE->GetCurrentStyleDef()->GetMinAndMaxColX( pn, fMinX, fMaxX ); - float fPositionBetween = SCALE( fPixelOffsetFromCenter, fMinX, fMaxX, -1, 1 ); + float fRealPixelOffset = GAMESTATE->GetCurrentStyleDef()->m_ColumnInfo[pn][iColNum].fXOffset; + float fPositionBetween = SCALE( fRealPixelOffset, fMinX, fMaxX, -1, 1 ); float fRads = acosf( fPositionBetween ); fRads += fYPos * 6 / SCREEN_HEIGHT; - fPixelOffsetFromCenter = SCALE( cosf(fRads), -1, 1, fMinX, fMaxX ); + float fAdjustedPixelOffset = SCALE( cosf(fRads), -1, 1, fMinX, fMaxX ); + + fPixelOffsetFromCenter = fAdjustedPixelOffset - fRealPixelOffset; } if( fEffects[PlayerOptions::EFFECT_DRUNK] > 0 ) diff --git a/stepmania/src/GhostArrowRow.cpp b/stepmania/src/GhostArrowRow.cpp index 7a0ec0dcd1..bbc92f9107 100644 --- a/stepmania/src/GhostArrowRow.cpp +++ b/stepmania/src/GhostArrowRow.cpp @@ -18,6 +18,7 @@ #include "NoteSkinManager.h" #include "GameState.h" #include "PrefsManager.h" +#include "NoteFieldPositioning.h" GhostArrowRow::GhostArrowRow() @@ -61,6 +62,8 @@ void GhostArrowRow::DrawPrimitives() { for( int c=0; cm_Position[m_PlayerNumber]->BeginDrawTrack(c); + float fX = ArrowGetXPos( m_PlayerNumber, c, 0 ); m_GhostArrowRow[c].SetX( fX ); m_GhostArrowRowBright[c].SetX( fX ); @@ -69,6 +72,8 @@ void GhostArrowRow::DrawPrimitives() m_GhostArrowRow[c].Draw(); m_GhostArrowRowBright[c].Draw(); m_HoldGhostArrowRow[c].Draw(); + + GAMESTATE->m_Position[m_PlayerNumber]->EndDrawTrack(c); } } diff --git a/stepmania/src/GrayArrowRow.cpp b/stepmania/src/GrayArrowRow.cpp index 165d1ecd41..b238127aee 100644 --- a/stepmania/src/GrayArrowRow.cpp +++ b/stepmania/src/GrayArrowRow.cpp @@ -18,6 +18,7 @@ #include "NoteSkinManager.h" #include "GameState.h" #include "PrefsManager.h" +#include "NoteFieldPositioning.h" GrayArrowRow::GrayArrowRow() @@ -58,12 +59,14 @@ void GrayArrowRow::DrawPrimitives() { for( int c=0; cm_Position[m_PlayerNumber]->BeginDrawTrack(c); + // set arrow X float fX = ArrowGetXPos( m_PlayerNumber, c, 0 ); m_GrayArrow[c].SetX( fX ); - - m_GrayArrow[c].Draw(); + + GAMESTATE->m_Position[m_PlayerNumber]->EndDrawTrack(c); } } diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index 7af76e9f3e..0c909f3af6 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -24,6 +24,7 @@ #include #include "ThemeManager.h" #include "RageDisplay.h" +#include "NoteFieldPositioning.h" const float HOLD_NOTE_BITS_PER_BEAT = 6; @@ -335,6 +336,8 @@ void NoteField::DrawPrimitives() for( int c=0; cm_Position[m_PlayerNumber]->BeginDrawTrack(c); + ///////////////////////////////// // Draw all HoldNotes in this column (so that they appear under the tap notes) ///////////////////////////////// @@ -400,6 +403,8 @@ void NoteField::DrawPrimitives() m_NoteDisplay[c].DrawTap( c, NoteRowToBeat(i), bHoldNoteBeginsOnThisBeat, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail ); } + + GAMESTATE->m_Position[m_PlayerNumber]->EndDrawTrack(c); } }