[default -> sm130futures] Obvious.

This commit is contained in:
Jason Felds
2011-04-05 22:41:41 -04:00
15 changed files with 87 additions and 32 deletions
+5
View File
@@ -26,6 +26,11 @@ It depends on who you ask.
It could be v1.2.5, it could be v1.3.0, it could even be StepMania 5. It could be v1.2.5, it could be v1.3.0, it could even be StepMania 5.
We will wait and see. We will wait and see.
20110405
--------
* [ScreenEdit] Allow modifying the #DISPLAYBPM traits in the editor. Look in
Edit Song Info to find it. [Wolfman2000]
20110402 20110402
-------- --------
* Fix a crash (issue 247) when exiting Practice mode from dance-solo, * Fix a crash (issue 247) when exiting Practice mode from dance-solo,
+7
View File
@@ -534,6 +534,7 @@ x2.5=2.5x
8=8 8=8
8th=8th 8th=8th
9=9 9=9
Actual=Actual
Add=Additive Add=Additive
All Music=All Music All Music=All Music
AllDifficulties=All Difficulties AllDifficulties=All Difficulties
@@ -706,6 +707,7 @@ Song BGAnimation=Song BGAnimation
Song Bitmap=Song Bitmap Song Bitmap=Song Bitmap
Song Movie=Song Movie Song Movie=Song Movie
Space=Space Space=Space
Specified=Specified
Split=Split Split=Split
Standard=Standard Standard=Standard
Start=Start Start=Start
@@ -822,6 +824,7 @@ Delete=Delete
Delete beat and shift up=Delete beat and shift up Delete beat and shift up=Delete beat and shift up
Description=Description Description=Description
Difficulty=Difficulty Difficulty=Difficulty
Display BPM=Display BPM
DisplayAspectRatio=Aspect Ratio DisplayAspectRatio=Aspect Ratio
DisplayColorDepth=Display Color DisplayColorDepth=Display Color
DisplayResolution=Display Resolution DisplayResolution=Display Resolution
@@ -902,9 +905,11 @@ Low Meter=Low Meter
Advanced Options=Advanced Options Advanced Options=Advanced Options
Main title=Main title Main title=Main title
Main title transliteration=Main title transliteration Main title transliteration=Main title transliteration
Max BPM=Max Specified BPM
MaxTextureResolution=Texture Resolution MaxTextureResolution=Texture Resolution
MenuTimer=Menu Timer MenuTimer=Menu Timer
Meter=Meter Meter=Meter
Min BPM=Min Specified BPM
Mines=Mines Mines=Mines
MoveRandomToEnd=Random At End MoveRandomToEnd=Random At End
More Options=More Options More Options=More Options
@@ -1225,6 +1230,8 @@ Enter a new main title transliteration.=Enter a new main title transliteration.
Enter a new main title.=Enter a new main title. Enter a new main title.=Enter a new main title.
Enter a new sub title transliteration.=Enter a new sub title transliteration. Enter a new sub title transliteration.=Enter a new sub title transliteration.
Enter a new sub title.=Enter a new sub title. Enter a new sub title.=Enter a new sub title.
Enter a new min BPM.=Enter the minimum displayed BPM.
Enter a new max BPM.=Enter the maximum displayed BPM.
More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted. More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted.
No backgrounds available=No backgrounds available No backgrounds available=No backgrounds available
EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF1:\n Show help\n EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF1:\n Show help\n
+3 -3
View File
@@ -180,8 +180,8 @@ void BPMDisplay::SetBpmFromSong( const Song* pSong )
ASSERT( pSong ); ASSERT( pSong );
switch( pSong->m_DisplayBPMType ) switch( pSong->m_DisplayBPMType )
{ {
case Song::DISPLAY_ACTUAL: case DISPLAY_BPM_ACTUAL:
case Song::DISPLAY_SPECIFIED: case DISPLAY_BPM_SPECIFIED:
{ {
DisplayBpms bpms; DisplayBpms bpms;
pSong->GetDisplayBpms( bpms ); pSong->GetDisplayBpms( bpms );
@@ -189,7 +189,7 @@ void BPMDisplay::SetBpmFromSong( const Song* pSong )
m_fCycleTime = 1.0f; m_fCycleTime = 1.0f;
} }
break; break;
case Song::DISPLAY_RANDOM: case DISPLAY_BPM_RANDOM:
CycleRandomly(); CycleRandomly();
break; break;
default: default:
+3 -3
View File
@@ -500,18 +500,18 @@ bool DWILoader::LoadFromDir( const RString &sPath_, Song &out, set<RString> &Bla
* worth bothering with since we don't display fractional BPM anyway.) */ * worth bothering with since we don't display fractional BPM anyway.) */
if( sscanf( sParams[1], "%i..%i", &iMin, &iMax ) == 2 ) if( sscanf( sParams[1], "%i..%i", &iMin, &iMax ) == 2 )
{ {
out.m_DisplayBPMType = Song::DISPLAY_SPECIFIED; out.m_DisplayBPMType = DISPLAY_BPM_SPECIFIED;
out.m_fSpecifiedBPMMin = (float) iMin; out.m_fSpecifiedBPMMin = (float) iMin;
out.m_fSpecifiedBPMMax = (float) iMax; out.m_fSpecifiedBPMMax = (float) iMax;
} }
else if( sscanf( sParams[1], "%i", &iMin ) == 1 ) else if( sscanf( sParams[1], "%i", &iMin ) == 1 )
{ {
out.m_DisplayBPMType = Song::DISPLAY_SPECIFIED; out.m_DisplayBPMType = DISPLAY_BPM_SPECIFIED;
out.m_fSpecifiedBPMMin = out.m_fSpecifiedBPMMax = (float) iMin; out.m_fSpecifiedBPMMin = out.m_fSpecifiedBPMMax = (float) iMin;
} }
else else
{ {
out.m_DisplayBPMType = Song::DISPLAY_RANDOM; out.m_DisplayBPMType = DISPLAY_BPM_RANDOM;
} }
} }
+2 -2
View File
@@ -581,10 +581,10 @@ bool SMLoader::LoadFromSMFile( const RString &sPath, Song &out, bool bFromCache
{ {
// #DISPLAYBPM:[xxx][xxx:xxx]|[*]; // #DISPLAYBPM:[xxx][xxx:xxx]|[*];
if( sParams[1] == "*" ) if( sParams[1] == "*" )
out.m_DisplayBPMType = Song::DISPLAY_RANDOM; out.m_DisplayBPMType = DISPLAY_BPM_RANDOM;
else else
{ {
out.m_DisplayBPMType = Song::DISPLAY_SPECIFIED; out.m_DisplayBPMType = DISPLAY_BPM_SPECIFIED;
out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] ); out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] );
if( sParams[2].empty() ) if( sParams[2].empty() )
out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin; out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin;
+2 -2
View File
@@ -230,10 +230,10 @@ bool SMALoader::LoadFromSMAFile( const RString &sPath, Song &out )
{ {
// #DISPLAYBPM:[xxx][xxx:xxx]|[*]; // #DISPLAYBPM:[xxx][xxx:xxx]|[*];
if( sParams[1] == "*" ) if( sParams[1] == "*" )
out.m_DisplayBPMType = Song::DISPLAY_RANDOM; out.m_DisplayBPMType = DISPLAY_BPM_RANDOM;
else else
{ {
out.m_DisplayBPMType = Song::DISPLAY_SPECIFIED; out.m_DisplayBPMType = DISPLAY_BPM_SPECIFIED;
out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] ); out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] );
if( sParams[2].empty() ) if( sParams[2].empty() )
out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin; out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin;
+2 -2
View File
@@ -256,10 +256,10 @@ bool SSCLoader::LoadFromSSCFile( const RString &sPath, Song &out, bool bFromCach
{ {
// #DISPLAYBPM:[xxx][xxx:xxx]|[*]; // #DISPLAYBPM:[xxx][xxx:xxx]|[*];
if( sParams[1] == "*" ) if( sParams[1] == "*" )
out.m_DisplayBPMType = Song::DISPLAY_RANDOM; out.m_DisplayBPMType = DISPLAY_BPM_RANDOM;
else else
{ {
out.m_DisplayBPMType = Song::DISPLAY_SPECIFIED; out.m_DisplayBPMType = DISPLAY_BPM_SPECIFIED;
out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] ); out.m_fSpecifiedBPMMin = StringToFloat( sParams[1] );
if( sParams[2].empty() ) if( sParams[2].empty() )
out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin; out.m_fSpecifiedBPMMax = out.m_fSpecifiedBPMMin;
+3 -3
View File
@@ -360,16 +360,16 @@ bool NotesWriterDWI::Write( RString sPath, const Song &out )
f.PutLine( ssprintf("#CDTITLE:%s;", DwiEscape(out.m_sCDTitleFile).c_str()) ); f.PutLine( ssprintf("#CDTITLE:%s;", DwiEscape(out.m_sCDTitleFile).c_str()) );
switch( out.m_DisplayBPMType ) switch( out.m_DisplayBPMType )
{ {
case Song::DISPLAY_ACTUAL: case DISPLAY_BPM_ACTUAL:
// write nothing // write nothing
break; break;
case Song::DISPLAY_SPECIFIED: case DISPLAY_BPM_SPECIFIED:
if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax ) if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax )
f.PutLine( ssprintf("#DISPLAYBPM:%i;\n", (int) out.m_fSpecifiedBPMMin) ); f.PutLine( ssprintf("#DISPLAYBPM:%i;\n", (int) out.m_fSpecifiedBPMMin) );
else else
f.PutLine( ssprintf("#DISPLAYBPM:%i..%i;\n", (int) out.m_fSpecifiedBPMMin, (int) out.m_fSpecifiedBPMMax) ); f.PutLine( ssprintf("#DISPLAYBPM:%i..%i;\n", (int) out.m_fSpecifiedBPMMin, (int) out.m_fSpecifiedBPMMax) );
break; break;
case Song::DISPLAY_RANDOM: case DISPLAY_BPM_RANDOM:
f.PutLine( "#DISPLAYBPM:*" ); f.PutLine( "#DISPLAYBPM:*" );
break; break;
} }
+3 -3
View File
@@ -94,17 +94,17 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
switch( out.m_DisplayBPMType ) switch( out.m_DisplayBPMType )
{ {
case Song::DISPLAY_ACTUAL: case DISPLAY_BPM_ACTUAL:
// write nothing // write nothing
break; break;
case Song::DISPLAY_SPECIFIED: case DISPLAY_BPM_SPECIFIED:
if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax ) if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax )
f.PutLine( ssprintf( "#DISPLAYBPM:%.3f;", out.m_fSpecifiedBPMMin ) ); f.PutLine( ssprintf( "#DISPLAYBPM:%.3f;", out.m_fSpecifiedBPMMin ) );
else else
f.PutLine( ssprintf( "#DISPLAYBPM:%.3f:%.3f;", f.PutLine( ssprintf( "#DISPLAYBPM:%.3f:%.3f;",
out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) ); out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) );
break; break;
case Song::DISPLAY_RANDOM: case DISPLAY_BPM_RANDOM:
f.PutLine( ssprintf( "#DISPLAYBPM:*;" ) ); f.PutLine( ssprintf( "#DISPLAYBPM:*;" ) );
break; break;
} }
+3 -3
View File
@@ -91,16 +91,16 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
switch( out.m_DisplayBPMType ) switch( out.m_DisplayBPMType )
{ {
case Song::DISPLAY_ACTUAL: case DISPLAY_BPM_ACTUAL:
// write nothing // write nothing
break; break;
case Song::DISPLAY_SPECIFIED: case DISPLAY_BPM_SPECIFIED:
if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax ) if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax )
f.PutLine( ssprintf( "#DISPLAYBPM:%.6f;", out.m_fSpecifiedBPMMin ) ); f.PutLine( ssprintf( "#DISPLAYBPM:%.6f;", out.m_fSpecifiedBPMMin ) );
else else
f.PutLine( ssprintf( "#DISPLAYBPM:%.6f:%.6f;", out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) ); f.PutLine( ssprintf( "#DISPLAYBPM:%.6f:%.6f;", out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) );
break; break;
case Song::DISPLAY_RANDOM: case DISPLAY_BPM_RANDOM:
f.PutLine( ssprintf( "#DISPLAYBPM:*;" ) ); f.PutLine( ssprintf( "#DISPLAYBPM:*;" ) );
break; break;
} }
+34 -3
View File
@@ -548,7 +548,10 @@ static MenuDef g_SongInformation(
MenuRowDef( ScreenEdit::main_title_transliteration, "Main title transliteration", true, EditMode_Practice, true, true, 0, NULL ), MenuRowDef( ScreenEdit::main_title_transliteration, "Main title transliteration", true, EditMode_Practice, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::sub_title_transliteration, "Sub title transliteration", true, EditMode_Practice, true, true, 0, NULL ), MenuRowDef( ScreenEdit::sub_title_transliteration, "Sub title transliteration", true, EditMode_Practice, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::artist_transliteration, "Artist transliteration", true, EditMode_Practice, true, true, 0, NULL ), MenuRowDef( ScreenEdit::artist_transliteration, "Artist transliteration", true, EditMode_Practice, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::last_beat_hint, "Last beat hint", true, EditMode_Full, true, true, 0, NULL ) MenuRowDef( ScreenEdit::last_beat_hint, "Last beat hint", true, EditMode_Full, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::display_bpm, "Display BPM", true, EditMode_Full, true, true, 0, "Actual", "Specified", "Random" ),
MenuRowDef( ScreenEdit::min_bpm, "Min BPM", true, EditMode_Full, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::min_bpm, "Max BPM", true, EditMode_Full, true, true, 0, NULL )
); );
static MenuDef g_TimingDataInformation( static MenuDef g_TimingDataInformation(
@@ -3013,6 +3016,16 @@ static void ChangeLastBeatHint( const RString &sNew )
GAMESTATE->m_pCurSong->m_fSpecifiedLastBeat = StringToFloat( sNew ); GAMESTATE->m_pCurSong->m_fSpecifiedLastBeat = StringToFloat( sNew );
} }
static void ChangeMinBPM( const RString &sNew )
{
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMin = StringToFloat( sNew );
}
static void ChangeMaxBPM( const RString &sNew )
{
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMax = StringToFloat( sNew );
}
// End helper functions // End helper functions
static LocalizedString REVERT_LAST_SAVE ( "ScreenEdit", "Do you want to revert to your last save?" ); static LocalizedString REVERT_LAST_SAVE ( "ScreenEdit", "Do you want to revert to your last save?" );
@@ -3204,6 +3217,9 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
g_SongInformation.rows[sub_title_transliteration].SetOneUnthemedChoice( pSong->m_sSubTitleTranslit ); g_SongInformation.rows[sub_title_transliteration].SetOneUnthemedChoice( pSong->m_sSubTitleTranslit );
g_SongInformation.rows[artist_transliteration].SetOneUnthemedChoice( pSong->m_sArtistTranslit ); g_SongInformation.rows[artist_transliteration].SetOneUnthemedChoice( pSong->m_sArtistTranslit );
g_SongInformation.rows[last_beat_hint].SetOneUnthemedChoice( ssprintf("%.5f", pSong->m_fSpecifiedLastBeat) ); g_SongInformation.rows[last_beat_hint].SetOneUnthemedChoice( ssprintf("%.5f", pSong->m_fSpecifiedLastBeat) );
g_SongInformation.rows[display_bpm].iDefaultChoice = pSong->m_DisplayBPMType;
g_SongInformation.rows[min_bpm].SetOneUnthemedChoice( ssprintf("%.5f", pSong->m_fSpecifiedBPMMin) );
g_SongInformation.rows[max_bpm].SetOneUnthemedChoice( ssprintf("%.5f", pSong->m_fSpecifiedBPMMax) );
EditMiniMenu( &g_SongInformation, SM_BackFromSongInformation ); EditMiniMenu( &g_SongInformation, SM_BackFromSongInformation );
} }
@@ -3609,13 +3625,15 @@ static LocalizedString ENTER_MAIN_TITLE_TRANSLIT ("ScreenEdit","Enter a new main
static LocalizedString ENTER_SUB_TITLE_TRANSLIT ("ScreenEdit","Enter a new sub title transliteration."); static LocalizedString ENTER_SUB_TITLE_TRANSLIT ("ScreenEdit","Enter a new sub title transliteration.");
static LocalizedString ENTER_ARTIST_TRANSLIT ("ScreenEdit","Enter a new artist transliteration."); static LocalizedString ENTER_ARTIST_TRANSLIT ("ScreenEdit","Enter a new artist transliteration.");
static LocalizedString ENTER_LAST_BEAT_HINT ("ScreenEdit","Enter a new last beat hint."); static LocalizedString ENTER_LAST_BEAT_HINT ("ScreenEdit","Enter a new last beat hint.");
static LocalizedString ENTER_MIN_BPM ("ScreenEdit","Enter a new min BPM.");
static LocalizedString ENTER_MAX_BPM ("ScreenEdit","Enter a new max BPM.");
void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers ) void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers )
{ {
Song* pSong = GAMESTATE->m_pCurSong; Song* pSong = GAMESTATE->m_pCurSong;
pSong->m_DisplayBPMType = static_cast<DisplayBPM>(iAnswers[display_bpm]);
switch( c ) switch( c )
{ {
DEFAULT_FAIL(c);
case main_title: case main_title:
ScreenTextEntry::TextEntry( SM_None, ENTER_MAIN_TITLE, pSong->m_sMainTitle, 100, NULL, ChangeMainTitle, NULL ); ScreenTextEntry::TextEntry( SM_None, ENTER_MAIN_TITLE, pSong->m_sMainTitle, 100, NULL, ChangeMainTitle, NULL );
break; break;
@@ -3641,7 +3659,20 @@ void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vec
ScreenTextEntry::TextEntry( SM_None, ENTER_ARTIST_TRANSLIT, pSong->m_sArtistTranslit, 100, NULL, ChangeArtistTranslit, NULL ); ScreenTextEntry::TextEntry( SM_None, ENTER_ARTIST_TRANSLIT, pSong->m_sArtistTranslit, 100, NULL, ChangeArtistTranslit, NULL );
break; break;
case last_beat_hint: case last_beat_hint:
ScreenTextEntry::TextEntry( SM_None, ENTER_LAST_BEAT_HINT, ssprintf("%.5f", pSong->m_fSpecifiedLastBeat), 20, ScreenTextEntry::FloatValidate, ChangeLastBeatHint, NULL ); ScreenTextEntry::TextEntry( SM_None, ENTER_LAST_BEAT_HINT,
ssprintf("%.5f", pSong->m_fSpecifiedLastBeat), 20,
ScreenTextEntry::FloatValidate, ChangeLastBeatHint, NULL );
break;
case min_bpm:
ScreenTextEntry::TextEntry( SM_None, ENTER_MIN_BPM,
ssprintf("%.5f", pSong->m_fSpecifiedBPMMin), 20,
ScreenTextEntry::FloatValidate, ChangeMinBPM, NULL );
break;
case max_bpm:
ScreenTextEntry::TextEntry( SM_None, ENTER_MAX_BPM,
ssprintf("%.5f", pSong->m_fSpecifiedBPMMax), 20,
ScreenTextEntry::FloatValidate, ChangeMaxBPM, NULL );
break;
}; };
} }
+3
View File
@@ -445,6 +445,9 @@ public:
sub_title_transliteration, sub_title_transliteration,
artist_transliteration, artist_transliteration,
last_beat_hint, last_beat_hint,
display_bpm,
min_bpm,
max_bpm,
NUM_SONG_INFORMATION_CHOICES NUM_SONG_INFORMATION_CHOICES
}; };
void HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers ); void HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers );
+4 -4
View File
@@ -74,7 +74,7 @@ Song::Song()
m_fSpecifiedLastBeat = -1; m_fSpecifiedLastBeat = -1;
m_SelectionDisplay = SHOW_ALWAYS; m_SelectionDisplay = SHOW_ALWAYS;
m_bEnabled = true; m_bEnabled = true;
m_DisplayBPMType = DISPLAY_ACTUAL; m_DisplayBPMType = DISPLAY_BPM_ACTUAL;
m_fSpecifiedBPMMin = 0; m_fSpecifiedBPMMin = 0;
m_fSpecifiedBPMMax = 0; m_fSpecifiedBPMMax = 0;
m_bIsSymLink = false; m_bIsSymLink = false;
@@ -147,7 +147,7 @@ void Song::AddLyricSegment( LyricSegment seg )
void Song::GetDisplayBpms( DisplayBpms &AddTo ) const void Song::GetDisplayBpms( DisplayBpms &AddTo ) const
{ {
if( m_DisplayBPMType == DISPLAY_SPECIFIED ) if( m_DisplayBPMType == DISPLAY_BPM_SPECIFIED )
{ {
AddTo.Add( m_fSpecifiedBPMMin ); AddTo.Add( m_fSpecifiedBPMMin );
AddTo.Add( m_fSpecifiedBPMMax ); AddTo.Add( m_fSpecifiedBPMMax );
@@ -1460,7 +1460,7 @@ bool Song::HasSignificantBpmChangesOrStops() const
// Don't consider BPM changes that only are only for maintaining sync as // Don't consider BPM changes that only are only for maintaining sync as
// a real BpmChange. // a real BpmChange.
if( m_DisplayBPMType == DISPLAY_SPECIFIED ) if( m_DisplayBPMType == DISPLAY_BPM_SPECIFIED )
{ {
if( m_fSpecifiedBPMMin != m_fSpecifiedBPMMax ) if( m_fSpecifiedBPMMin != m_fSpecifiedBPMMax )
return true; return true;
@@ -1614,7 +1614,7 @@ public:
} }
static int IsDisplayBpmRandom( T* p, lua_State *L ) static int IsDisplayBpmRandom( T* p, lua_State *L )
{ {
lua_pushboolean( L, p->m_DisplayBPMType == Song::DISPLAY_RANDOM ); lua_pushboolean( L, p->m_DisplayBPMType == DISPLAY_BPM_RANDOM );
return 1; return 1;
} }
+10 -1
View File
@@ -35,6 +35,15 @@ enum BackgroundLayer
NUM_BackgroundLayer, NUM_BackgroundLayer,
BACKGROUND_LAYER_Invalid BACKGROUND_LAYER_Invalid
}; };
/** @brief The different ways of displaying the BPM. */
enum DisplayBPM
{
DISPLAY_BPM_ACTUAL, /**< Display the song's actual BPM. */
DISPLAY_BPM_SPECIFIED, /**< Display a specified value or values. */
DISPLAY_BPM_RANDOM /**< Display a random selection of BPMs. */
};
/** @brief A custom foreach loop for the different background layers. */ /** @brief A custom foreach loop for the different background layers. */
#define FOREACH_BackgroundLayer( bl ) FOREACH_ENUM( BackgroundLayer, bl ) #define FOREACH_BackgroundLayer( bl ) FOREACH_ENUM( BackgroundLayer, bl )
@@ -222,7 +231,7 @@ public:
float m_fSpecifiedLastBeat; // specified last beat of the song float m_fSpecifiedLastBeat; // specified last beat of the song
float m_fMusicSampleStartSeconds; float m_fMusicSampleStartSeconds;
float m_fMusicSampleLengthSeconds; float m_fMusicSampleLengthSeconds;
enum { DISPLAY_ACTUAL, DISPLAY_SPECIFIED, DISPLAY_RANDOM } m_DisplayBPMType; DisplayBPM m_DisplayBPMType;
float m_fSpecifiedBPMMin; float m_fSpecifiedBPMMin;
float m_fSpecifiedBPMMax; // if a range, then Min != Max float m_fSpecifiedBPMMax; // if a range, then Min != Max
+3 -3
View File
@@ -189,11 +189,11 @@ void Trail::GetDisplayBpms( DisplayBpms &AddTo ) const
ASSERT( pSong ); ASSERT( pSong );
switch( pSong->m_DisplayBPMType ) switch( pSong->m_DisplayBPMType )
{ {
case Song::DISPLAY_ACTUAL: case DISPLAY_BPM_ACTUAL:
case Song::DISPLAY_SPECIFIED: case DISPLAY_BPM_SPECIFIED:
pSong->GetDisplayBpms( AddTo ); pSong->GetDisplayBpms( AddTo );
break; break;
case Song::DISPLAY_RANDOM: case DISPLAY_BPM_RANDOM:
AddTo.Add( -1 ); AddTo.Add( -1 );
break; break;
DEFAULT_FAIL( pSong->m_DisplayBPMType ); DEFAULT_FAIL( pSong->m_DisplayBPMType );