From 3826bd95b3f5bb761c8beaa4d33a6c3d761616ae Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 12 Oct 2005 03:15:53 +0000 Subject: [PATCH] eliminate m_iNumCols, dynamic array --- stepmania/src/ReceptorArrowRow.cpp | 42 ++++++++++++++++-------------- stepmania/src/ReceptorArrowRow.h | 9 +++---- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/stepmania/src/ReceptorArrowRow.cpp b/stepmania/src/ReceptorArrowRow.cpp index 5c02723aee..190cce0be6 100644 --- a/stepmania/src/ReceptorArrowRow.cpp +++ b/stepmania/src/ReceptorArrowRow.cpp @@ -11,7 +11,6 @@ ReceptorArrowRow::ReceptorArrowRow() { - m_iNumCols = 0; m_pPlayerState = NULL; m_fYReverseOffsetPixels = 0; m_fFadeToFailPercent = 0; @@ -24,37 +23,42 @@ void ReceptorArrowRow::Load( const PlayerState* pPlayerState, float fYReverseOff const Style* pStyle = GAMESTATE->GetCurrentStyle(); - m_iNumCols = pStyle->m_iColsPerPlayer; - - for( int c=0; cm_iColsPerPlayer; c++ ) { - m_ReceptorArrow[c].SetName( "ReceptorArrow" ); - m_ReceptorArrow[c].Load( m_pPlayerState, c ); - this->AddChild( &m_ReceptorArrow[c] ); + m_ReceptorArrow.push_back( new ReceptorArrow ); + m_ReceptorArrow[c]->SetName( "ReceptorArrow" ); + 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 ) { ActorFrame::Update( fDeltaTime ); - for( int c=0; cm_CurrentPlayerOptions.m_fDark) * (1 - m_fFadeToFailPercent); CLAMP( fBaseAlpha, 0.0f, 1.0f ); - m_ReceptorArrow[c].SetBaseAlpha( fBaseAlpha ); + m_ReceptorArrow[c]->SetBaseAlpha( fBaseAlpha ); // set arrow XYZ const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 ); const float fY = ArrowEffects::GetYPos( m_pPlayerState, c, 0, m_fYReverseOffsetPixels ); const float fZ = ArrowEffects::GetZPos( m_pPlayerState, c, 0 ); - m_ReceptorArrow[c].SetX( fX ); - m_ReceptorArrow[c].SetY( fY ); - m_ReceptorArrow[c].SetZ( fZ ); + m_ReceptorArrow[c]->SetX( fX ); + m_ReceptorArrow[c]->SetY( fY ); + m_ReceptorArrow[c]->SetZ( fZ ); 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. PlayerNumber pn = m_pPlayerState->m_PlayerNumber; - for( int c=0; cDraw(); NoteFieldMode::EndDrawTrack(c); } } void ReceptorArrowRow::Step( int iCol, TapNoteScore score ) { - ASSERT( iCol >= 0 && iCol < m_iNumCols ); - m_ReceptorArrow[iCol].Step( score ); + ASSERT( iCol >= 0 && iCol < (int) m_ReceptorArrow.size() ); + m_ReceptorArrow[iCol]->Step( score ); } void ReceptorArrowRow::SetPressed( int iCol ) { - ASSERT( iCol >= 0 && iCol < m_iNumCols ); - m_ReceptorArrow[iCol].SetPressed(); + ASSERT( iCol >= 0 && iCol < (int) m_ReceptorArrow.size() ); + m_ReceptorArrow[iCol]->SetPressed(); } /* diff --git a/stepmania/src/ReceptorArrowRow.h b/stepmania/src/ReceptorArrowRow.h index 83b93bb3e6..0851d6995f 100644 --- a/stepmania/src/ReceptorArrowRow.h +++ b/stepmania/src/ReceptorArrowRow.h @@ -14,24 +14,23 @@ class ReceptorArrowRow : public ActorFrame { public: ReceptorArrowRow(); - - void Load( const PlayerState* pPlayerState, float fYReverseOffset ); - + virtual ~ReceptorArrowRow(); virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); + void Load( const PlayerState* pPlayerState, float fYReverseOffset ); + void Step( int iCol, TapNoteScore score ); void SetPressed( int iCol ); void SetFadeToFailPercent( float fFadeToFailPercent ) { m_fFadeToFailPercent = fFadeToFailPercent; } protected: - int m_iNumCols; const PlayerState* m_pPlayerState; float m_fYReverseOffsetPixels; float m_fFadeToFailPercent; - ReceptorArrow m_ReceptorArrow[MAX_NOTE_TRACKS]; + vector m_ReceptorArrow; }; #endif