diff --git a/src/NotesLoader.cpp b/src/NotesLoader.cpp index 2b655e1caf..41575f924b 100644 --- a/src/NotesLoader.cpp +++ b/src/NotesLoader.cpp @@ -35,8 +35,7 @@ bool NotesLoader::LoadFromDir( const RString &sPath, Song &out, set &Bl if( !list.empty() ) { if( !loaderSSC.LoadFromDir( sPath, out, load_autosave ) ) - return false; - loaderSSC.TidyUpData( out, false ); + { return false; } return true; } SMALoader loaderSMA; diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp index b48d6055c8..7bd3be3718 100644 --- a/src/ScreenEdit.cpp +++ b/src/ScreenEdit.cpp @@ -6133,7 +6133,11 @@ void ScreenEdit::RevertFromDisk() id.FromSteps( GAMESTATE->m_pCurSteps[PLAYER_1] ); ASSERT( id.IsValid() ); - GAMESTATE->m_pCurSong->ReloadFromSongDir( GAMESTATE->m_pCurSong->GetSongDir() ); + // If m_bInStepEditor is true while the song is reloaded, it screws up + // loading and results in the steps being cleared. -Kyz + GAMESTATE->m_bInStepEditor= false; + GAMESTATE->m_pCurSong->ReloadFromSongDir(); + GAMESTATE->m_bInStepEditor= true; Steps *pNewSteps = id.ToSteps( GAMESTATE->m_pCurSong, true ); if( !pNewSteps )