From f4e8c4fb244b5ef28818c10a2a99cdabe5ae832f Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 1 Feb 2003 05:16:38 +0000 Subject: [PATCH] clean up NoteData --- stepmania/src/NoteData.cpp | 37 +++++++++++++++++---------- stepmania/src/NoteData.h | 7 +++-- stepmania/src/NoteDataWithScoring.cpp | 6 ++--- stepmania/src/NoteField.cpp | 14 +++++----- stepmania/src/Notes.cpp | 16 ++++++------ stepmania/src/NotesLoaderBMS.cpp | 4 +-- stepmania/src/NotesLoaderDWI.cpp | 4 +-- stepmania/src/NotesLoaderKSF.cpp | 8 +++--- stepmania/src/Player.cpp | 14 +++++----- stepmania/src/ScreenEdit.cpp | 10 ++++---- 10 files changed, 67 insertions(+), 53 deletions(-) diff --git a/stepmania/src/NoteData.cpp b/stepmania/src/NoteData.cpp index 6a764708d8..7369d3ac15 100644 --- a/stepmania/src/NoteData.cpp +++ b/stepmania/src/NoteData.cpp @@ -37,6 +37,17 @@ NoteData::~NoteData() { } +int NoteData::GetNumTracks() +{ + return m_iNumTracks; +} + +void NoteData::SetNumTracks( int iNewNumTracks ) +{ + m_iNumTracks = iNewNumTracks; +} + + /* Clear [iNoteIndexBegin,iNoteIndexEnd]; that is, including iNoteIndexEnd. */ void NoteData::ClearRange( int iNoteIndexBegin, int iNoteIndexEnd ) { @@ -566,9 +577,9 @@ NoteType NoteDataUtil::GetSmallestNoteTypeForMeasure( const NoteData &n, int iMe void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, CString sSMNoteData ) { /* Clear notes, but keep the same number of tracks. */ - int iNumTracks = out.m_iNumTracks; + int iNumTracks = out.GetNumTracks(); out.Init(); - out.m_iNumTracks = iNumTracks; + out.SetNumTracks( iNumTracks ); // strip comments out of sSMNoteData while( sSMNoteData.Find("//") != -1 ) @@ -611,7 +622,7 @@ void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, CString sSMNoteData // if( m_iNumTracks != sMeasureLine.GetLength() ) // RageException::Throw( "Actual number of note columns (%d) is different from the NotesType (%d).", m_iNumTracks, sMeasureLine.GetLength() ); - for( int c=0; c aiTracksLeftToMap; - for( t=0; t aiTracksThatCouldHaveTapNotes; - for( t=0; t m_TapNotes[MAX_NOTE_TRACKS]; + int m_iNumTracks; + vector m_HoldNotes; /* Pad m_TapNotes so it includes the row "rows". */ @@ -37,12 +39,13 @@ public: * divisor. Doesn't allocate or copy anything. */ void Config( const NoteData &From ); - int m_iNumTracks; - NoteData(); ~NoteData(); void Init(); + int GetNumTracks(); + void SetNumTracks( int iNewNumTracks ); + /* Return the note at the given track and row. Row may be out of * range; pretend the song goes on with TAP_EMPTYs indefinitely. */ inline TapNote GetTapNote(unsigned track, unsigned row) const diff --git a/stepmania/src/NoteDataWithScoring.cpp b/stepmania/src/NoteDataWithScoring.cpp index 2c0d01b064..e892c37635 100644 --- a/stepmania/src/NoteDataWithScoring.cpp +++ b/stepmania/src/NoteDataWithScoring.cpp @@ -39,7 +39,7 @@ int NoteDataWithScoring::GetNumTapNotesWithScore( TapNoteScore tns, const float for( unsigned i=iStartIndex; iGetTapNote(t, i) != TAP_EMPTY && GetTapNoteScore(t, i) == tns ) iNumSuccessfulTapNotes++; @@ -60,7 +60,7 @@ int NoteDataWithScoring::GetNumDoublesWithScore( TapNoteScore tns, const float f { int iNumNotesThisIndex = 0; TapNoteScore minTapNoteScore = TNS_MARVELOUS; - for( int t=0; tCopyAll( pNoteData ); // init note displays - for( int c=0; cGetCurrentStyleDef()->m_iColsPerPlayer ); + ASSERT( GetNumTracks() == GAMESTATE->GetCurrentStyleDef()->m_iColsPerPlayer ); } void NoteField::Update( float fDeltaTime ) @@ -84,7 +84,7 @@ void NoteField::DrawMeasureBar( int iMeasureIndex ) const float fYPos = ArrowGetYPos( m_PlayerNumber, fYOffset ); m_rectMeasureBar.SetXY( 0, fYPos ); - m_rectMeasureBar.SetZoomX( (float)(m_iNumTracks+1) * ARROW_SIZE ); + m_rectMeasureBar.SetZoomX( (float)(GetNumTracks()+1) * ARROW_SIZE ); m_rectMeasureBar.SetZoomY( 20 ); m_rectMeasureBar.SetDiffuse( RageColor(0,0,0,0.5f) ); m_rectMeasureBar.Draw(); @@ -102,7 +102,7 @@ void NoteField::DrawMarkerBar( const float fBeat ) const float fYPos = ArrowGetYPos( m_PlayerNumber, fYOffset ); m_rectMarkerBar.SetXY( 0, fYPos ); - m_rectMarkerBar.SetZoomX( (float)(m_iNumTracks+1) * ARROW_SIZE ); + m_rectMarkerBar.SetZoomX( (float)(GetNumTracks()+1) * ARROW_SIZE ); m_rectMarkerBar.SetZoomY( 20 ); m_rectMarkerBar.SetDiffuse( RageColor(0,0,0,0.5f) ); m_rectMarkerBar.Draw(); @@ -249,7 +249,7 @@ void NoteField::DrawPrimitives() // draw in big batches. // - for( int c=0; cm_iNumTracks == GameManager::NotesTypeToNumTracks(m_NotesType) ); + ASSERT( pNewNoteData->GetNumTracks() == GameManager::NotesTypeToNumTracks(m_NotesType) ); DeAutogen(); @@ -80,7 +80,7 @@ void Notes::GetNoteData( NoteData* pNoteDataOut ) const ASSERT(this); ASSERT(pNoteDataOut); Decompress(); - pNoteDataOut->m_iNumTracks = notes->m_iNumTracks; + pNoteDataOut->SetNumTracks( notes->GetNumTracks() ); *pNoteDataOut = *notes; } @@ -218,11 +218,11 @@ void Notes::Decompress() const parent->GetNoteData(&pdata); notes = new NoteData; - notes->m_iNumTracks = GameManager::NotesTypeToNumTracks(m_NotesType); - if(pdata.m_iNumTracks == notes->m_iNumTracks) + notes->SetNumTracks( GameManager::NotesTypeToNumTracks(m_NotesType) ); + if(pdata.GetNumTracks() == notes->GetNumTracks()) notes->CopyRange( &pdata, 0, pdata.GetLastRow(), 0 ); else - notes->LoadTransformedSlidingWindow( &pdata, notes->m_iNumTracks ); + notes->LoadTransformedSlidingWindow( &pdata, notes->GetNumTracks() ); return; } @@ -230,7 +230,7 @@ void Notes::Decompress() const if(!notes_comp) return; /* no data is no data */ notes = new NoteData; - notes->m_iNumTracks = GameManager::NotesTypeToNumTracks(m_NotesType); + notes->SetNumTracks( GameManager::NotesTypeToNumTracks(m_NotesType) ); NoteDataUtil::LoadFromSMNoteDataString(*notes, *notes_comp); } @@ -298,7 +298,7 @@ void Notes::CopyFrom( Notes* pSource, NotesType ntTo ) // pSource does not have m_NotesType = ntTo; NoteData noteData; pSource->GetNoteData( ¬eData ); - noteData.m_iNumTracks = GameManager::NotesTypeToNumTracks(ntTo); + noteData.SetNumTracks( GameManager::NotesTypeToNumTracks(ntTo) ); this->SetNoteData( ¬eData ); this->SetDescription( "Copied from "+pSource->GetDescription() ); this->SetDifficulty( pSource->GetDifficulty() ); @@ -313,7 +313,7 @@ void Notes::CreateBlank( NotesType ntTo ) { m_NotesType = ntTo; NoteData noteData; - noteData.m_iNumTracks = GameManager::NotesTypeToNumTracks(ntTo); + noteData.SetNumTracks( GameManager::NotesTypeToNumTracks(ntTo) ); this->SetNoteData( ¬eData ); } diff --git a/stepmania/src/NotesLoaderBMS.cpp b/stepmania/src/NotesLoaderBMS.cpp index 7a1b0f8803..79717f17ea 100644 --- a/stepmania/src/NotesLoaderBMS.cpp +++ b/stepmania/src/NotesLoaderBMS.cpp @@ -65,7 +65,7 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out ) out.m_NotesType = NOTES_TYPE_INVALID; NoteData* pNoteData = new NoteData; - pNoteData->m_iNumTracks = MAX_NOTE_TRACKS; + pNoteData->SetNumTracks( MAX_NOTE_TRACKS ); ifstream file(sPath); if( file.bad() ) @@ -230,7 +230,7 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out ) } NoteData* pNoteData2 = new NoteData; - pNoteData2->m_iNumTracks = iNumNewTracks; + pNoteData2->SetNumTracks( iNumNewTracks ); pNoteData2->LoadTransformed( pNoteData, iNumNewTracks, iTransformNewToOld ); out.SetNoteData(pNoteData2); diff --git a/stepmania/src/NotesLoaderDWI.cpp b/stepmania/src/NotesLoaderDWI.cpp index c0684ca696..14f43da0b6 100644 --- a/stepmania/src/NotesLoaderDWI.cpp +++ b/stepmania/src/NotesLoaderDWI.cpp @@ -130,7 +130,7 @@ bool DWILoader::LoadFromDWITokens( NoteData* pNoteData = new NoteData; ASSERT( pNoteData ); - pNoteData->m_iNumTracks = mapDanceNoteToNoteDataColumn.size(); + pNoteData->SetNumTracks( mapDanceNoteToNoteDataColumn.size() ); for( int pad=0; pad<2; pad++ ) // foreach pad { @@ -236,7 +236,7 @@ bool DWILoader::LoadFromDWITokens( // this will expand the HoldNote begin markers we wrote into actual HoldNotes pNoteData->Convert2sAnd3sToHoldNotes(); - ASSERT( pNoteData->m_iNumTracks > 0 ); + ASSERT( pNoteData->GetNumTracks() > 0 ); out.SetNoteData(pNoteData); diff --git a/stepmania/src/NotesLoaderKSF.cpp b/stepmania/src/NotesLoaderKSF.cpp index b354c93b39..347e64c3b9 100644 --- a/stepmania/src/NotesLoaderKSF.cpp +++ b/stepmania/src/NotesLoaderKSF.cpp @@ -75,14 +75,14 @@ bool KSFLoader::LoadFromKSFFile( const CString &sPath, Notes &out ) if(!out.GetMeter()) out.SetMeter(5); } - notedata.m_iNumTracks = 5; + notedata.SetNumTracks( 5 ); out.m_NotesType = NOTES_TYPE_PUMP_SINGLE; if( sFName.Find("double") != -1 ) { - notedata.m_iNumTracks = 10; + notedata.SetNumTracks( 10 ); out.m_NotesType = NOTES_TYPE_PUMP_DOUBLE; } else if( sFName.Find("_2") != -1 ) { - notedata.m_iNumTracks = 10; + notedata.SetNumTracks( 10 ); out.m_NotesType = NOTES_TYPE_PUMP_COUPLE; } } @@ -112,7 +112,7 @@ bool KSFLoader::LoadFromKSFFile( const CString &sPath, Notes &out ) // the length of a note in a row depends on TICKCOUNT float fBeatThisRow = r/(float)iTickCount; int row = BeatToNoteRow(fBeatThisRow); - for( int t=0; t < notedata.m_iNumTracks; t++ ) + for( int t=0; t < notedata.GetNumTracks(); t++ ) { if( sRowString[t] == '4' ) { diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 7e43641187..b25cb52854 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -335,7 +335,7 @@ void Player::DrawPrimitives() m_frameJudgement.Draw(); - for( int c=0; cTrace( "Player::HandlePlayerStep()" ); - ASSERT( col >= 0 && col <= m_iNumTracks ); + ASSERT( col >= 0 && col <= GetNumTracks() ); const float fSongBeat = GAMESTATE->m_fSongBeat; @@ -447,7 +447,7 @@ void Player::Step( int col ) if (score > TNS_NONE) { bool bRowDestroyed = true; - for( int t=0; t= TNS_BOO ) @@ -502,7 +502,7 @@ void Player::OnRowDestroyed( int iIndexThatWasSteppedOn ) } int iNumNotesInThisRow = 0; - for( int c=0; cm_bAutoPlay || GAMESTATE->m_bDemonstration ) { // check to see if there's at the crossed row - for( int t=0; tStep( t ); diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 56ab398bb0..dca97415ea 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -249,7 +249,7 @@ ScreenEdit::ScreenEdit() m_NoteFieldRecord.SetZoom( 1.0f ); m_NoteFieldRecord.Load( ¬eData, PLAYER_1, -150, 350 ); - m_Clipboard.m_iNumTracks = m_NoteFieldEdit.m_iNumTracks; + m_Clipboard.SetNumTracks( m_NoteFieldEdit.GetNumTracks() ); m_Player.Load( PLAYER_1, ¬eData, NULL, NULL ); m_Player.SetXY( PLAYER_X, PLAYER_Y ); @@ -715,7 +715,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ const float fSongBeat = GAMESTATE->m_fSongBeat; const int iSongIndex = BeatToNoteRow( fSongBeat ); - if( iCol >= m_NoteFieldEdit.m_iNumTracks ) // this button is not in the range of columns for this StyleDef + if( iCol >= m_NoteFieldEdit.GetNumTracks() ) // this button is not in the range of columns for this StyleDef break; /* XXX: easier to do with 4s */ @@ -784,7 +784,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ const float fEndBeat = GAMESTATE->m_fSongBeat + fBeatsToMove; // check to see if they're holding a button - for( int col=0; col