Use NoteFieldPositioning.
ArrowGetXPos should probably be XOffset, now.
This commit is contained in:
@@ -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 )
|
||||
|
||||
@@ -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; c<m_iNumCols; c++ )
|
||||
{
|
||||
GAMESTATE->m_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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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; c<m_iNumCols; c++ )
|
||||
{
|
||||
GAMESTATE->m_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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <math.h>
|
||||
#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; c<GetNumTracks(); c++ ) // for each arrow column
|
||||
{
|
||||
GAMESTATE->m_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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user