From f6c1bd8084cb99218faa38847dc9c491bb490c61 Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Mon, 20 May 2013 22:17:50 -0700 Subject: [PATCH] Fix timing loading in SSC files ProcessBPMsAndStops was always making the timing nonempty, which confused StepMania into thinking every chart had steps timing. Now we only call this function on SSC files (1) for song timing, and (2) if the steps have at least one BPM specified. --- src/NotesLoaderSSC.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/NotesLoaderSSC.cpp b/src/NotesLoaderSSC.cpp index 4a088fadd9..7a03c1efe2 100644 --- a/src/NotesLoaderSSC.cpp +++ b/src/NotesLoaderSSC.cpp @@ -654,8 +654,10 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach { // Process timings and convert negative bpms/stops if( !vBPMChanges.empty() ) + { bHasOwnTiming = true; - SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + } state = GETTING_SONG_INFO; if( bHasOwnTiming ) @@ -805,8 +807,10 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach { // Process timings and convert negative bpms/stops if( !vBPMChanges.empty() ) + { bHasOwnTiming = true; - SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + } state = GETTING_SONG_INFO; if( bHasOwnTiming ) @@ -1044,7 +1048,10 @@ bool SSCLoader::LoadEditFromMsd(const MsdFile &msd, return true; // Process timings and convert negative bpms/stops - SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + if( !vBPMChanges.empty() ) + { + SMLoader::ProcessBPMsAndStops(stepsTiming, vBPMChanges, vStops); + } if( bSSCFormat ) {