eliminate m_iNumCols, dynamic array

This commit is contained in:
Glenn Maynard
2005-10-12 03:15:53 +00:00
parent 20eb0c343f
commit 3826bd95b3
2 changed files with 27 additions and 24 deletions
+23 -19
View File
@@ -11,7 +11,6 @@
ReceptorArrowRow::ReceptorArrowRow() ReceptorArrowRow::ReceptorArrowRow()
{ {
m_iNumCols = 0;
m_pPlayerState = NULL; m_pPlayerState = NULL;
m_fYReverseOffsetPixels = 0; m_fYReverseOffsetPixels = 0;
m_fFadeToFailPercent = 0; m_fFadeToFailPercent = 0;
@@ -24,37 +23,42 @@ void ReceptorArrowRow::Load( const PlayerState* pPlayerState, float fYReverseOff
const Style* pStyle = GAMESTATE->GetCurrentStyle(); const Style* pStyle = GAMESTATE->GetCurrentStyle();
m_iNumCols = pStyle->m_iColsPerPlayer; for( int c=0; c<pStyle->m_iColsPerPlayer; c++ )
for( int c=0; c<m_iNumCols; c++ )
{ {
m_ReceptorArrow[c].SetName( "ReceptorArrow" ); m_ReceptorArrow.push_back( new ReceptorArrow );
m_ReceptorArrow[c].Load( m_pPlayerState, c ); m_ReceptorArrow[c]->SetName( "ReceptorArrow" );
this->AddChild( &m_ReceptorArrow[c] ); m_ReceptorArrow[c]->Load( m_pPlayerState, c );
this->AddChild( m_ReceptorArrow[c] );
} }
} }
ReceptorArrowRow::~ReceptorArrowRow()
{
for( unsigned i = 0; i < m_ReceptorArrow.size(); ++i )
delete m_ReceptorArrow[i];
}
void ReceptorArrowRow::Update( float fDeltaTime ) void ReceptorArrowRow::Update( float fDeltaTime )
{ {
ActorFrame::Update( fDeltaTime ); ActorFrame::Update( fDeltaTime );
for( int c=0; c<m_iNumCols; c++ ) for( unsigned c=0; c<m_ReceptorArrow.size(); c++ )
{ {
// m_fDark==1 or m_fFadeToFailPercent==1 should make fBaseAlpha==0 // m_fDark==1 or m_fFadeToFailPercent==1 should make fBaseAlpha==0
float fBaseAlpha = (1 - m_pPlayerState->m_CurrentPlayerOptions.m_fDark) * (1 - m_fFadeToFailPercent); float fBaseAlpha = (1 - m_pPlayerState->m_CurrentPlayerOptions.m_fDark) * (1 - m_fFadeToFailPercent);
CLAMP( fBaseAlpha, 0.0f, 1.0f ); CLAMP( fBaseAlpha, 0.0f, 1.0f );
m_ReceptorArrow[c].SetBaseAlpha( fBaseAlpha ); m_ReceptorArrow[c]->SetBaseAlpha( fBaseAlpha );
// set arrow XYZ // set arrow XYZ
const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 ); const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 );
const float fY = ArrowEffects::GetYPos( m_pPlayerState, c, 0, m_fYReverseOffsetPixels ); const float fY = ArrowEffects::GetYPos( m_pPlayerState, c, 0, m_fYReverseOffsetPixels );
const float fZ = ArrowEffects::GetZPos( m_pPlayerState, c, 0 ); const float fZ = ArrowEffects::GetZPos( m_pPlayerState, c, 0 );
m_ReceptorArrow[c].SetX( fX ); m_ReceptorArrow[c]->SetX( fX );
m_ReceptorArrow[c].SetY( fY ); m_ReceptorArrow[c]->SetY( fY );
m_ReceptorArrow[c].SetZ( fZ ); m_ReceptorArrow[c]->SetZ( fZ );
const float fZoom = ArrowEffects::GetZoom( m_pPlayerState ); const float fZoom = ArrowEffects::GetZoom( m_pPlayerState );
m_ReceptorArrow[c].SetZoom( fZoom ); m_ReceptorArrow[c]->SetZoom( fZoom );
} }
} }
@@ -63,24 +67,24 @@ void ReceptorArrowRow::DrawPrimitives()
// TODO: Remove use of PlayerNumber. // TODO: Remove use of PlayerNumber.
PlayerNumber pn = m_pPlayerState->m_PlayerNumber; PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
for( int c=0; c<m_iNumCols; c++ ) for( unsigned c=0; c<m_ReceptorArrow.size(); c++ )
{ {
NoteFieldMode::BeginDrawTrack( pn, c ); NoteFieldMode::BeginDrawTrack( pn, c );
m_ReceptorArrow[c].Draw(); m_ReceptorArrow[c]->Draw();
NoteFieldMode::EndDrawTrack(c); NoteFieldMode::EndDrawTrack(c);
} }
} }
void ReceptorArrowRow::Step( int iCol, TapNoteScore score ) void ReceptorArrowRow::Step( int iCol, TapNoteScore score )
{ {
ASSERT( iCol >= 0 && iCol < m_iNumCols ); ASSERT( iCol >= 0 && iCol < (int) m_ReceptorArrow.size() );
m_ReceptorArrow[iCol].Step( score ); m_ReceptorArrow[iCol]->Step( score );
} }
void ReceptorArrowRow::SetPressed( int iCol ) void ReceptorArrowRow::SetPressed( int iCol )
{ {
ASSERT( iCol >= 0 && iCol < m_iNumCols ); ASSERT( iCol >= 0 && iCol < (int) m_ReceptorArrow.size() );
m_ReceptorArrow[iCol].SetPressed(); m_ReceptorArrow[iCol]->SetPressed();
} }
/* /*
+4 -5
View File
@@ -14,24 +14,23 @@ class ReceptorArrowRow : public ActorFrame
{ {
public: public:
ReceptorArrowRow(); ReceptorArrowRow();
virtual ~ReceptorArrowRow();
void Load( const PlayerState* pPlayerState, float fYReverseOffset );
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
virtual void DrawPrimitives(); virtual void DrawPrimitives();
void Load( const PlayerState* pPlayerState, float fYReverseOffset );
void Step( int iCol, TapNoteScore score ); void Step( int iCol, TapNoteScore score );
void SetPressed( int iCol ); void SetPressed( int iCol );
void SetFadeToFailPercent( float fFadeToFailPercent ) { m_fFadeToFailPercent = fFadeToFailPercent; } void SetFadeToFailPercent( float fFadeToFailPercent ) { m_fFadeToFailPercent = fFadeToFailPercent; }
protected: protected:
int m_iNumCols;
const PlayerState* m_pPlayerState; const PlayerState* m_pPlayerState;
float m_fYReverseOffsetPixels; float m_fYReverseOffsetPixels;
float m_fFadeToFailPercent; float m_fFadeToFailPercent;
ReceptorArrow m_ReceptorArrow[MAX_NOTE_TRACKS]; vector<ReceptorArrow *> m_ReceptorArrow;
}; };
#endif #endif