This commit is contained in:
Glenn Maynard
2003-11-02 02:12:04 +00:00
parent 9019a4fbd1
commit 6efbfcba8c
2 changed files with 16 additions and 43 deletions
+16 -39
View File
@@ -466,19 +466,27 @@ void NoteData::LoadTransformed( const NoteData* pOriginal, int iNewNumTracks, co
void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks ) void NoteData::LoadOverlapped( const NoteData* pOriginal, int iNewNumTracks )
{ {
SetNumTracks( pOriginal->GetNumTracks() ); SetNumTracks( iNewNumTracks );
CopyRange( pOriginal, 0, pOriginal->GetLastRow(), 0 );
const int iOriginalTracks = pOriginal->GetNumTracks(); NoteData in;
const int iTracksToOverlap = iOriginalTracks / iNewNumTracks; in.To2sAnd3s( *pOriginal );
if( iTracksToOverlap )
for ( int i = 0; i < in.GetNumTracks(); i++ )
{ {
for ( int i = 0; i < iOriginalTracks; i++ ) int iTrackTo = i % iNewNumTracks;
int iTrackFrom = i;
const int iLastRow = in.GetMaxRow();
for( int row = 0; row < iLastRow; ++row )
{ {
CombineTracks( i % iNewNumTracks, i ); const TapNote iStepFrom = in.m_TapNotes[iTrackFrom][row];
if( GetTapNote(iTrackTo, row) == TAP_EMPTY )
SetTapNote( iTrackTo, row, iStepFrom );
} }
} }
SetNumTracks( iNewNumTracks );
ConvertHoldNotesTo2sAnd3s();
} }
void NoteData::LoadTransformedSlidingWindow( const NoteData* pOriginal, int iNewNumTracks ) void NoteData::LoadTransformedSlidingWindow( const NoteData* pOriginal, int iNewNumTracks )
@@ -595,34 +603,3 @@ void NoteData::EliminateAllButOneTap(int row)
m_TapNotes[track][row] = TAP_EMPTY; m_TapNotes[track][row] = TAP_EMPTY;
} }
} }
void NoteData::CombineTracks( int iTrackTo, int iTrackFrom )
{
LOG->Trace("NoteData::CombineTracks( %i , %i )", iTrackTo, iTrackFrom);
if( iTrackFrom < 0 || iTrackTo < 0 )
return;
const int iLastRow = GetMaxRow();
LOG->Trace("NoteData::CombineTracks - %i rows", iLastRow);
for( int row = 0; row < iLastRow; ++row )
{
const TapNote iStepFrom = m_TapNotes[iTrackFrom][row];
const TapNote iStepTo = m_TapNotes[iTrackTo][row];
if( iStepFrom == iStepTo )
{
// no reason to combine same steps
continue;
}
if( iStepTo != TAP_EMPTY )
{
// Mines from "from" track will not knock out any steps in
// the "to" track, but this behavior is fine, I think...
continue;
}
m_TapNotes[iTrackTo][row] = iStepFrom;
}
return;
}
-4
View File
@@ -14,7 +14,6 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
//#include "GameConstantsAndTypes.h"
#include "NoteTypes.h" #include "NoteTypes.h"
// '1' = tap note // '1' = tap note
@@ -141,9 +140,6 @@ public:
void From4s( const NoteData &out ); void From4s( const NoteData &out );
void EliminateAllButOneTap( int row ); void EliminateAllButOneTap( int row );
// MD 10/29/03 - Join two tracks together.
void CombineTracks( int iTrackTo, int iTrackFrom );
}; };