diff --git a/stepmania/src/NoteDataUtil.cpp b/stepmania/src/NoteDataUtil.cpp index 995a1accea..4911e8a2c5 100644 --- a/stepmania/src/NoteDataUtil.cpp +++ b/stepmania/src/NoteDataUtil.cpp @@ -2083,20 +2083,12 @@ void NoteDataUtil::RemoveAllTapsExceptForType( NoteData& ndInOut, TapNote::Type } } -int NoteDataUtil::GetNumUsedTracks( const NoteData& in ) +int NoteDataUtil::GetMaxNonEmptyTrack( const NoteData& in ) { - for( int t=0; t=0; t-- ) + if( !in.IsTrackEmpty( t ) ) return t; - } - return in.GetNumTracks(); + return -1; } bool NoteDataUtil::AnyTapsAndHoldsInTrackRange( const NoteData& in, int iTrack, int iStart, int iEnd ) diff --git a/stepmania/src/NoteDataUtil.h b/stepmania/src/NoteDataUtil.h index 75af6ca0a6..a060c76c0e 100644 --- a/stepmania/src/NoteDataUtil.h +++ b/stepmania/src/NoteDataUtil.h @@ -112,7 +112,7 @@ namespace NoteDataUtil void RemoveAllTapsOfType( NoteData& ndInOut, TapNote::Type typeToRemove ); void RemoveAllTapsExceptForType( NoteData& ndInOut, TapNote::Type typeToKeep ); - int GetNumUsedTracks( const NoteData& in ); + int GetMaxNonEmptyTrack( const NoteData& in ); bool AnyTapsAndHoldsInTrackRange( const NoteData& in, int iTrack, int iStart, int iEnd ); bool GetNextEditorPosition( const NoteData& in, int &rowInOut ); diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index b95514cef9..e85d1e1de7 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -3163,10 +3163,10 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, const vector &iAns case autogen_to_fill_width: { NoteData temp( m_Clipboard ); - int iNumUsedTracks = NoteDataUtil::GetNumUsedTracks( temp ); - if( iNumUsedTracks == 0 ) + int iMaxNonEmptyTrack = NoteDataUtil::GetMaxNonEmptyTrack( temp ); + if( iMaxNonEmptyTrack == -1 ) break; - temp.SetNumTracks( iNumUsedTracks ); + temp.SetNumTracks( iMaxNonEmptyTrack+1 ); NoteDataUtil::LoadTransformedSlidingWindow( temp, m_Clipboard, m_Clipboard.GetNumTracks() ); NoteDataUtil::RemoveStretch( m_Clipboard, GAMESTATE->m_pCurSteps[0]->m_StepsType ); }