simplify convert_pause_to_beat

This commit is contained in:
Glenn Maynard
2005-12-19 00:08:07 +00:00
parent 01e8e57ad1
commit 4509a955af
+7 -20
View File
@@ -2998,27 +2998,14 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, const vector<int> &iAns
} }
case convert_pause_to_beat: case convert_pause_to_beat:
{ {
float fBPMatPause = m_pSong->GetBPMAtBeat( GAMESTATE->m_fSongBeat ); float fStopSeconds = m_pSong->m_Timing.GetStopAtRow( BeatToNoteRow(GAMESTATE->m_fSongBeat) );
unsigned i; m_pSong->m_Timing.SetStopAtBeat( GAMESTATE->m_fSongBeat, 0 );
for( i=0; i<m_pSong->m_Timing.m_StopSegments.size(); i++ )
{
if( m_pSong->m_Timing.m_StopSegments[i].m_iStartRow == BeatToNoteRow(GAMESTATE->m_fSongBeat) )
break;
}
if( i == m_pSong->m_Timing.m_StopSegments.size() ) // there is no BPMSegment at the current beat float fStopBeats = fStopSeconds * m_pSong->GetBPMAtBeat(GAMESTATE->m_fSongBeat) / 60;
break;
else // StopSegment being modified is m_Timing.m_StopSegments[i] // don't move the step from where it is, just move everything later
{ NoteDataUtil::InsertRows( m_NoteDataEdit, BeatToNoteRow(GAMESTATE->m_fSongBeat) + 1, BeatToNoteRow(fStopBeats) );
float fStopLength = m_pSong->m_Timing.m_StopSegments[i].m_fStopSeconds; m_pSong->m_Timing.InsertRows( BeatToNoteRow(GAMESTATE->m_fSongBeat) + 1, BeatToNoteRow(fStopSeconds) );
m_pSong->m_Timing.m_StopSegments.erase( m_pSong->m_Timing.m_StopSegments.begin()+i,
m_pSong->m_Timing.m_StopSegments.begin()+i+1);
fStopLength *= fBPMatPause;
fStopLength /= 60;
// don't move the step from where it is, just move everything later
NoteDataUtil::InsertRows( m_NoteDataEdit, BeatToNoteRow(GAMESTATE->m_fSongBeat) + 1, BeatToNoteRow(fStopLength) );
m_pSong->m_Timing.InsertRows( BeatToNoteRow(GAMESTATE->m_fSongBeat) + 1, BeatToNoteRow(fStopLength) );
}
} }
break; break;
case undo: case undo: