diff --git a/src/NotesLoaderSM.cpp b/src/NotesLoaderSM.cpp index c57655d51f..d287660dc5 100644 --- a/src/NotesLoaderSM.cpp +++ b/src/NotesLoaderSM.cpp @@ -84,20 +84,6 @@ void SMLoader::GetApplicableFiles( const RString &sPath, vector &out ) GetDirListing( sPath + RString("*.sm"), out ); } -bool SMLoader::LoadTimingFromFile( const RString &fn, TimingData &out ) -{ - MsdFile msd; - if( !msd.ReadFile( fn, true ) ) // unescape - { - LOG->UserLog( "Song file", fn, "couldn't be loaded: %s", msd.GetError().c_str() ); - return false; - } - - out.m_sFile = fn; - LoadTimingFromSMFile( msd, out ); - return true; -} - void SMLoader::ProcessBGChanges( Song &out, const RString &sValueName, const RString &sPath, const RString &sParam ) { BackgroundLayer iLayer = BACKGROUND_LAYER_1; @@ -423,53 +409,6 @@ void SMLoader::ProcessTickcounts( TimingData &out, const RString sParam ) } } -void SMLoader::LoadTimingFromSMFile( const MsdFile &msd, TimingData &out ) -{ - out.m_fBeat0OffsetInSeconds = 0; - out.m_BPMSegments.clear(); - out.m_StopSegments.clear(); - out.m_WarpSegments.clear(); - out.m_vTimeSignatureSegments.clear(); - - for( unsigned i=0; i aBGChangeValues; @@ -568,7 +507,6 @@ bool SMLoader::LoadFromSMFile( const RString &sPath, Song &out, bool bFromCache } out.m_SongTiming.m_sFile = sPath; - LoadTimingFromSMFile( msd, out.m_SongTiming ); for( unsigned i=0; iUserLog( "Song file", sPath, "has an unexpected value named \"%s\".", sValueName.c_str() ); } + + // Ensure all warps from negative time changes are in order. + sort(out.m_SongTiming.m_WarpSegments.begin(), out.m_SongTiming.m_WarpSegments.end()); TidyUpData( out, bFromCache ); return true; } diff --git a/src/NotesLoaderSM.h b/src/NotesLoaderSM.h index d1c4feded0..94dfdd2dfe 100644 --- a/src/NotesLoaderSM.h +++ b/src/NotesLoaderSM.h @@ -26,8 +26,6 @@ namespace SMLoader bool LoadFromSMFile( const RString &sPath, Song &out, bool bFromCache = false ); void GetApplicableFiles( const RString &sPath, vector &out ); - bool LoadTimingFromFile( const RString &fn, TimingData &out ); - void LoadTimingFromSMFile( const MsdFile &msd, TimingData &out ); bool LoadEditFromFile( RString sEditFilePath, ProfileSlot slot, bool bAddStepsToSong ); bool LoadEditFromBuffer( const RString &sBuffer, const RString &sEditFilePath, ProfileSlot slot ); bool LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePath, ProfileSlot slot, bool bAddStepsToSong );