From 1bf8e07584c43143c0254a27d8eb275ac9fcd755 Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Sat, 26 Jan 2013 00:05:46 -0500 Subject: [PATCH] NoteDataUtil: I thought this control structure looked familiar... --- src/NoteDataUtil.cpp | 46 +++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/src/NoteDataUtil.cpp b/src/NoteDataUtil.cpp index 80db2cd711..0e730bbbe2 100644 --- a/src/NoteDataUtil.cpp +++ b/src/NoteDataUtil.cpp @@ -1722,40 +1722,26 @@ void NoteDataUtil::InsertIntelligentTaps( int iTrackOfNoteLater = -1; inout.GetTapFirstNonEmptyTrack( iRowLater, iTrackOfNoteLater ); int iTrackOfNoteToAdd = 0; - - for (;;) + if( bSkippy && + iTrackOfNoteEarlier != iTrackOfNoteLater && // Don't make skips on the same note + bEarlierHasNonEmptyTrack ) + { + iTrackOfNoteToAdd = iTrackOfNoteEarlier; + } + else if( abs(iTrackOfNoteEarlier-iTrackOfNoteLater) >= 2 ) { - if( bSkippy && - iTrackOfNoteEarlier != iTrackOfNoteLater ) // Don't make skips on the same note - { - if( bEarlierHasNonEmptyTrack ) - { - iTrackOfNoteToAdd = iTrackOfNoteEarlier; - break; - } - } - // try to choose a track between the earlier and later notes - if( abs(iTrackOfNoteEarlier-iTrackOfNoteLater) >= 2 ) - { - iTrackOfNoteToAdd = min(iTrackOfNoteEarlier,iTrackOfNoteLater)+1; - break; - } - + iTrackOfNoteToAdd = min(iTrackOfNoteEarlier,iTrackOfNoteLater)+1; + } + else if( min(iTrackOfNoteEarlier,iTrackOfNoteLater)-1 >= 0 ) + { // try to choose a track just to the left - if( min(iTrackOfNoteEarlier,iTrackOfNoteLater)-1 >= 0 ) - { - iTrackOfNoteToAdd = min(iTrackOfNoteEarlier,iTrackOfNoteLater)-1; - break; - } - + iTrackOfNoteToAdd = min(iTrackOfNoteEarlier,iTrackOfNoteLater)-1; + } + else if( max(iTrackOfNoteEarlier,iTrackOfNoteLater)+1 < inout.GetNumTracks() ) + { // try to choose a track just to the right - if( max(iTrackOfNoteEarlier,iTrackOfNoteLater)+1 < inout.GetNumTracks() ) - { - iTrackOfNoteToAdd = max(iTrackOfNoteEarlier,iTrackOfNoteLater)+1; - break; - } - break; + iTrackOfNoteToAdd = max(iTrackOfNoteEarlier,iTrackOfNoteLater)+1; } inout.SetTapNote(iTrackOfNoteToAdd, iRowToAdd, TAP_ADDITION_TAP);