diff --git a/src/AdjustSync.cpp b/src/AdjustSync.cpp index fd60402a5e..a6f7d5e580 100644 --- a/src/AdjustSync.cpp +++ b/src/AdjustSync.cpp @@ -209,14 +209,22 @@ void AdjustSync::AutosyncOffset() { switch( GAMESTATE->m_SongOptions.GetCurrent().m_AutosyncType ) { - case SongOptions::AUTOSYNC_SONG: - GAMESTATE->m_pCurSong->m_SongTiming.m_fBeat0OffsetInSeconds += mean; - break; - case SongOptions::AUTOSYNC_MACHINE: - PREFSMAN->m_fGlobalOffsetSeconds.Set( PREFSMAN->m_fGlobalOffsetSeconds + mean ); - break; - default: - ASSERT(0); + case SongOptions::AUTOSYNC_SONG: + { + GAMESTATE->m_pCurSong->m_SongTiming.m_fBeat0OffsetInSeconds += mean; + const vector& vpSteps = GAMESTATE->m_pCurSong->GetAllSteps(); + FOREACH( Steps*, const_cast&>(vpSteps), s ) + { + (*s)->m_Timing.m_fBeat0OffsetInSeconds += mean; + } + break; + } + case SongOptions::AUTOSYNC_MACHINE: + // Step timing is not needed for this operation. + PREFSMAN->m_fGlobalOffsetSeconds.Set( PREFSMAN->m_fGlobalOffsetSeconds + mean ); + break; + default: + ASSERT(0); } SCREENMAN->SystemMessage( AUTOSYNC_CORRECTION_APPLIED.GetValue() );