diff --git a/src/NotesWriterSM.cpp b/src/NotesWriterSM.cpp index 920081509a..23f9a646ce 100644 --- a/src/NotesWriterSM.cpp +++ b/src/NotesWriterSM.cpp @@ -261,7 +261,7 @@ static RString GetSMNotesTag( const Song &song, const Steps &in ) RString desc = (USE_CREDIT ? in.GetCredit() : in.GetDescription()); lines.push_back( ssprintf( " %s:", SmEscape(desc).c_str() ) ); lines.push_back( ssprintf( " %s:", DifficultyToString(in.GetDifficulty()).c_str() ) ); - lines.push_back( ssprintf( " %d:", in.GetMeter() ) ); + lines.push_back( ssprintf( " %d:", clamp( in.GetMeter(), MIN_METER, MAX_METER ) ) ); vector asRadarValues; // SM files don't use fakes for radar data. Keep it that way. diff --git a/src/NotesWriterSSC.cpp b/src/NotesWriterSSC.cpp index ca681fe307..3b19eb4270 100644 --- a/src/NotesWriterSSC.cpp +++ b/src/NotesWriterSSC.cpp @@ -282,7 +282,7 @@ static RString GetSSCNoteData( const Song &song, const Steps &in, bool bSavingCa lines.push_back( ssprintf( "#DESCRIPTION:%s;", SmEscape(in.GetDescription()).c_str() ) ); lines.push_back( ssprintf( "#CHARTSTYLE:%s;", SmEscape(in.GetChartStyle()).c_str() ) ); lines.push_back( ssprintf( "#DIFFICULTY:%s;", DifficultyToString(in.GetDifficulty()).c_str() ) ); - lines.push_back( ssprintf( "#METER:%d;", in.GetMeter() ) ); + lines.push_back( ssprintf( "#METER:%d;", clamp( in.GetMeter(), MIN_METER, MAX_METER ) ) ); vector asRadarValues; FOREACH_PlayerNumber( pn ) diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp index 801f4aa467..fafb17af9a 100644 --- a/src/ScreenEdit.cpp +++ b/src/ScreenEdit.cpp @@ -510,8 +510,7 @@ static MenuDef g_AreaMenu( static MenuDef g_StepsInformation( "ScreenMiniMenuStepsInformation", MenuRowDef( ScreenEdit::difficulty, "Difficulty", true, EditMode_Practice, true, true, 0, NULL ), - // xxx: this giant list of numbers SUUUUUUUUUUCKS -aj - MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, "1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25" ), + MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, MIN_METER, MAX_METER ), MenuRowDef( ScreenEdit::description, "Description", true, EditMode_Practice, true, true, 0, NULL ), MenuRowDef( ScreenEdit::chartstyle, "Chart Style", true, EditMode_Practice, true, true, 0, NULL ), MenuRowDef( ScreenEdit::step_credit, "Step Author", true, EditMode_Practice, true, true, 0, NULL ), diff --git a/src/ScreenMiniMenu.h b/src/ScreenMiniMenu.h index 5bdd85ee2b..365ac90a24 100644 --- a/src/ScreenMiniMenu.h +++ b/src/ScreenMiniMenu.h @@ -4,6 +4,7 @@ #define SCREEN_MINI_MENU_H #include "ScreenOptions.h" +#include #include "GameConstantsAndTypes.h" typedef bool (*MenuRowUpdateEnabled)(); @@ -76,6 +77,20 @@ struct MenuRowDef PUSH(c23);PUSH(c23);PUSH(c24);PUSH(c25); #undef PUSH } + + MenuRowDef( int r, RString n, bool e, EditMode s, bool bTT, bool bTI, + int d, int low, int high ): + iRowCode(r), sName(n), bEnabled(e), pfnEnabled(NULL), + emShowIn(s), iDefaultChoice(d), choices(), + bThemeTitle(bTT), bThemeItems(bTI) + { + for ( int i = low; i <= high; i++ ) + { + std::stringstream ss; + ss << i; + choices.push_back(ss.str().c_str()); + } + } void SetOneUnthemedChoice( const RString &sChoice ) { diff --git a/src/Song.cpp b/src/Song.cpp index 224fa855bd..96d74b4d57 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 = 167; +const int FILE_CACHE_VERSION = 168; /** @brief How long does a song sample last by default? */ const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;