From 8df4f7929a20670d7c3e359c051e959b406b14dc Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 29 Apr 2005 01:56:38 +0000 Subject: [PATCH] add NoteDataUtil::AnyTapsAndHoldsInTrackRange --- stepmania/src/NoteDataUtil.cpp | 18 ++++++++++++++++++ stepmania/src/NoteDataUtil.h | 1 + 2 files changed, 19 insertions(+) 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