cleanup; always commit recorded data when exiting record, not just when entering edit (though we only go from record -> edit currently)
This commit is contained in:
@@ -1771,6 +1771,17 @@ void ScreenEdit::TransitionEditState( EditState em )
|
|||||||
if( GAMESTATE->IsSyncDataChanged() )
|
if( GAMESTATE->IsSyncDataChanged() )
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenSaveSync" );
|
SCREENMAN->AddNewScreenToTop( "ScreenSaveSync" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STATE_RECORDING:
|
||||||
|
SaveUndo();
|
||||||
|
|
||||||
|
// delete old TapNotes in the range
|
||||||
|
m_NoteDataEdit.ClearRange( m_iStartPlayingAt, m_iStopPlayingAt );
|
||||||
|
m_NoteDataEdit.CopyRange( m_NoteDataRecord, m_iStartPlayingAt, m_iStopPlayingAt, m_iStartPlayingAt );
|
||||||
|
m_NoteDataRecord.ClearAll();
|
||||||
|
|
||||||
|
CheckNumberOfNotesAndUndo();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( em )
|
switch( em )
|
||||||
@@ -1789,20 +1800,9 @@ void ScreenEdit::TransitionEditState( EditState em )
|
|||||||
GAMESTATE->m_fSongBeat = Quantize( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_SnapDisplay.GetNoteType()) );
|
GAMESTATE->m_fSongBeat = Quantize( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_SnapDisplay.GetNoteType()) );
|
||||||
|
|
||||||
/* Playing and recording have lead-ins, which may start before beat 0;
|
/* Playing and recording have lead-ins, which may start before beat 0;
|
||||||
* make sure we don't stay there if we escaped out early. */
|
* make sure we don't stay there if we escaped out early. */
|
||||||
GAMESTATE->m_fSongBeat = max( GAMESTATE->m_fSongBeat, 0 );
|
GAMESTATE->m_fSongBeat = max( GAMESTATE->m_fSongBeat, 0 );
|
||||||
|
|
||||||
if( old == STATE_RECORDING )
|
|
||||||
{
|
|
||||||
SaveUndo();
|
|
||||||
|
|
||||||
// delete old TapNotes in the range
|
|
||||||
m_NoteDataEdit.ClearRange( m_iStartPlayingAt, m_iStopPlayingAt );
|
|
||||||
m_NoteDataEdit.CopyRange( m_NoteDataRecord, m_iStartPlayingAt, m_iStopPlayingAt, m_iStartPlayingAt );
|
|
||||||
m_NoteDataRecord.ClearAll();
|
|
||||||
|
|
||||||
CheckNumberOfNotesAndUndo();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case STATE_RECORDING:
|
case STATE_RECORDING:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user