From 82fb85fe1ed5b7b1b9700bd28f1dde1965969ca5 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 4 May 2005 07:08:56 +0000 Subject: [PATCH] split out LightTransformHelper --- stepmania/src/NoteDataUtil.cpp | 36 ++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/stepmania/src/NoteDataUtil.cpp b/stepmania/src/NoteDataUtil.cpp index e01d069bf1..9b905a7a44 100644 --- a/stepmania/src/NoteDataUtil.cpp +++ b/stepmania/src/NoteDataUtil.cpp @@ -483,12 +483,11 @@ int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow ) return iMaxTailRow; } -void NoteDataUtil::LoadTransformedLights( const NoteData &in, NoteData &out, int iNewNumTracks ) +/* For every row in "in" with a tap or hold on any track, enable the specified tracks in "out". */ +void LightTransformHelper( const NoteData &in, NoteData &out, const vector &aiTracks ) { - // reset all notes - out.Init(); - - out.SetNumTracks( iNewNumTracks ); + for( unsigned i = 0; i < aiTracks.size(); ++i ) + ASSERT_M( aiTracks[i] < out.GetNumTracks(), ssprintf("%i, %i", aiTracks[i], out.GetNumTracks) ); FOREACH_NONEMPTY_ROW_ALL_TRACKS( in, r ) { @@ -508,20 +507,41 @@ void NoteDataUtil::LoadTransformedLights( const NoteData &in, NoteData &out, int if( iHoldEnd != -1 ) { /* If we found a hold note, add it to all tracks. */ - for( int t=0; t aiTracks; + for( int i = 0; i < out.GetNumTracks(); ++i ) + aiTracks.push_back( i ); + + LightTransformHelper( in, out, aiTracks ); +} + void NoteDataUtil::CalculateRadarValues( const NoteData &in, float fSongSeconds, RadarValues& out ) { // The for loop and the assert are used to ensure that all fields of