diff --git a/stepmania/src/NoteDataUtil.cpp b/stepmania/src/NoteDataUtil.cpp index a4cd7a8fd7..53870677c9 100644 --- a/stepmania/src/NoteDataUtil.cpp +++ b/stepmania/src/NoteDataUtil.cpp @@ -1900,6 +1900,24 @@ int NoteDataUtil::GetNumUsedTracks( const NoteData& in ) return in.GetNumTracks(); } +bool NoteDataUtil::AnyTapsAndHoldsInTrackRange( const NoteData& in, int iTrack, int iStart, int iEnd ) +{ + if( iStart >= iEnd ) + return false; + + // for each index we crossed since the last update: + FOREACH_NONEMPTY_ROW_IN_TRACK_RANGE( in, iTrack, r, iStart, iEnd ) + { + if( in.GetTapNote( iTrack, r ).type != TapNote::empty ) + return true; + } + + if( in.IsHoldNoteAtBeat( iTrack, iEnd ) ) + return true; + + return false; +} + /* * (c) 2001-2004 Chris Danford, Glenn Maynard diff --git a/stepmania/src/NoteDataUtil.h b/stepmania/src/NoteDataUtil.h index f3ce315eb0..2f95a770b6 100644 --- a/stepmania/src/NoteDataUtil.h +++ b/stepmania/src/NoteDataUtil.h @@ -107,6 +107,7 @@ namespace NoteDataUtil void RemoveAllTapsExceptForType( NoteData& ndInOut, TapNote::Type typeToKeep ); int GetNumUsedTracks( const NoteData& in ); + bool AnyTapsAndHoldsInTrackRange( const NoteData& in, int iTrack, int iStart, int iEnd ); }; #endif