Use NoteFieldPositioning.

ArrowGetXPos should probably be XOffset, now.
This commit is contained in:
Glenn Maynard
2003-04-02 21:58:27 +00:00
parent 08ca2ff931
commit 32da97588f
4 changed files with 22 additions and 7 deletions
+7 -5
View File
@@ -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 )
+5
View File
@@ -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);
}
}
+5 -2
View File
@@ -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);
}
}
+5
View File
@@ -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);
}
}