DWI read/write fixes
This commit is contained in:
@@ -300,7 +300,8 @@ bool DWILoader::LoadFromDWITokens(
|
||||
continue;
|
||||
|
||||
int iTailRow = iHeadRow;
|
||||
while( newNoteData.GetNextTapNoteRowForTrack(t, iTailRow) )
|
||||
bool bFound = false;
|
||||
while( !bFound && newNoteData.GetNextTapNoteRowForTrack(t, iTailRow) )
|
||||
{
|
||||
const TapNote &TailTap = newNoteData.GetTapNote( t, iTailRow );
|
||||
if( TailTap.type == TapNote::empty )
|
||||
@@ -309,7 +310,18 @@ bool DWILoader::LoadFromDWITokens(
|
||||
newNoteData.SetTapNote( t, iTailRow, TAP_EMPTY );
|
||||
tn.iDuration = iTailRow - iHeadRow;
|
||||
newNoteData.SetTapNote( t, iHeadRow, tn );
|
||||
break;
|
||||
bFound = true;
|
||||
}
|
||||
|
||||
if( !bFound )
|
||||
{
|
||||
/* The hold was never closed. */
|
||||
LOG->Warn( "File \"%s\":\"%s\" failed to close a hold note on track %i",
|
||||
m_sLoadingFile.c_str(),
|
||||
sDescription.c_str(),
|
||||
t );
|
||||
|
||||
newNoteData.SetTapNote( t, iHeadRow, TAP_EMPTY );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +190,7 @@ void NotesWriterDWI::WriteDWINotesField( RageFile &f, const Steps &out, int star
|
||||
{
|
||||
NoteData notedata;
|
||||
out.GetNoteData( notedata );
|
||||
NoteDataUtil::InsertHoldTails( notedata );
|
||||
|
||||
const int iLastMeasure = int( notedata.GetLastBeat()/BEATS_PER_MEASURE );
|
||||
for( int m=0; m<=iLastMeasure; m++ ) // foreach measure
|
||||
|
||||
Reference in New Issue
Block a user