diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 730d339eca..2d9954e130 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -4,6 +4,15 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt. ________________________________________________________________________________ +================================================================================ +StepMania 5.0 ????????? | 2011???? +-------------------------------------------------------------------------------- + +2011/08/21 +---------- +* [NotesLoaderSSC] Fix loading pre-split timing files that had blank timing + tags inside of them. Thanks to Vin.il for the catch. [Wolfman2000] + ================================================================================ StepMania 5.0 Preview 3 | 20110820 -------------------------------------------------------------------------------- diff --git a/src/NotesLoaderSSC.cpp b/src/NotesLoaderSSC.cpp index 802905d9d4..25f8842f3e 100644 --- a/src/NotesLoaderSSC.cpp +++ b/src/NotesLoaderSSC.cpp @@ -623,81 +623,120 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach else if( sValueName=="BPMS" ) { - if( SMLoader::ProcessBPMs(stepsTiming, sParams[1]) ) - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + if( SMLoader::ProcessBPMs(stepsTiming, sParams[1]) ) + bHasOwnTiming = true; + } } else if( sValueName=="STOPS" ) { - SMLoader::ProcessStops(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + SMLoader::ProcessStops(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } else if( sValueName=="DELAYS" ) { - SMLoader::ProcessDelays(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + SMLoader::ProcessDelays(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } else if( sValueName=="TIMESIGNATURES" ) { - SMLoader::ProcessTimeSignatures(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + SMLoader::ProcessTimeSignatures(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } else if( sValueName=="TICKCOUNTS" ) { - SMLoader::ProcessTickcounts(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + SMLoader::ProcessTickcounts(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } else if( sValueName=="COMBOS" ) { - ProcessCombos(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessCombos(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } else if( sValueName=="WARPS" ) { - ProcessWarps(stepsTiming, sParams[1], out.m_fVersion); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessWarps(stepsTiming, sParams[1], out.m_fVersion); + bHasOwnTiming = true; + } } else if( sValueName=="SPEEDS" ) { - ProcessSpeeds( stepsTiming, sParams[1] ); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessSpeeds( stepsTiming, sParams[1] ); + bHasOwnTiming = true; + } } else if( sValueName=="SCROLLS" ) { - ProcessScrolls( stepsTiming, sParams[1] ); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessScrolls( stepsTiming, sParams[1] ); + bHasOwnTiming = true; + } } else if( sValueName=="FAKES" ) { - ProcessFakes( stepsTiming, sParams[1] ); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessFakes( stepsTiming, sParams[1] ); + bHasOwnTiming = true; + } } else if( sValueName=="LABELS" ) { - ProcessLabels(stepsTiming, sParams[1]); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessLabels(stepsTiming, sParams[1]); + bHasOwnTiming = true; + } } /* If this is called, the chart does not use the same attacks * as the Song's timing. No other changes are required. */ else if( sValueName=="ATTACKS" ) { - ProcessAttackString(pNewNotes->m_sAttackString, sParams); - ProcessAttacks(pNewNotes->m_Attacks, sParams); + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + ProcessAttackString(pNewNotes->m_sAttackString, sParams); + ProcessAttacks(pNewNotes->m_Attacks, sParams); + } } else if( sValueName=="OFFSET" ) { - stepsTiming.m_fBeat0OffsetInSeconds = StringToFloat( sParams[1] ); - bHasOwnTiming = true; + if (out.m_fVersion >= VERSION_SPLIT_TIMING) + { + stepsTiming.m_fBeat0OffsetInSeconds = StringToFloat( sParams[1] ); + bHasOwnTiming = true; + } } else if( sValueName=="DISPLAYBPM" ) diff --git a/src/Song.cpp b/src/Song.cpp index c4591b33ef..37de1819eb 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -41,7 +41,7 @@ * @brief The internal version of the cache for StepMania. * * Increment this value to invalidate the current cache. */ -const int FILE_CACHE_VERSION = 201; +const int FILE_CACHE_VERSION = 202; /** @brief How long does a song sample last by default? */ const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;