diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 6c1e561bf5..b43760e29a 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -97,10 +97,8 @@ void MusicWheel::Load( RString sType ) SONGMAN->UpdateRankingCourses(); - m_soundChangeSort.Load( THEME->GetPathS(sType,"sort") ); - m_soundExpand.Load( THEME->GetPathS(sType,"expand"), true ); - - m_WheelState = STATE_SELECTING; + m_soundChangeSort.Load( THEME->GetPathS(sType,"sort") ); + m_soundExpand.Load( THEME->GetPathS(sType,"expand"), true ); if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) { @@ -127,19 +125,6 @@ void MusicWheel::Load( RString sType ) GAMESTATE->m_SongOptions = so; } - GAMESTATE->m_SortOrder.Set( GAMESTATE->m_PreferredSortOrder ); - - /* Never start in the mode menu; some elements may not initialize correctly. */ - if( GAMESTATE->m_SortOrder == SORT_MODE_MENU ) - GAMESTATE->m_SortOrder.Set( SORT_INVALID ); - - GAMESTATE->m_SortOrder.Set( ForceAppropriateSort(GAMESTATE->m_PlayMode, GAMESTATE->m_SortOrder) ); - - /* Only save the sort order if the player didn't already have one. If he did, don't - * overwrite it. */ - if( GAMESTATE->m_PreferredSortOrder == SORT_INVALID ) - GAMESTATE->m_PreferredSortOrder = GAMESTATE->m_SortOrder; - /* Update for SORT_MOST_PLAYED. */ SONGMAN->UpdatePopular(); @@ -164,13 +149,32 @@ void MusicWheel::Load( RString sType ) { const vector &from = m_WheelItemDatas[SORT_MODE_MENU]; for( unsigned i=0; im_SortOrder.Set( GAMESTATE->m_PreferredSortOrder ); + + /* Never start in the mode menu; some elements may not initialize correctly. */ + if( GAMESTATE->m_SortOrder == SORT_MODE_MENU ) + GAMESTATE->m_SortOrder.Set( SORT_INVALID ); + + GAMESTATE->m_SortOrder.Set( ForceAppropriateSort(GAMESTATE->m_PlayMode, GAMESTATE->m_SortOrder) ); + + /* Only save the sort order if the player didn't already have one. If he did, don't + * overwrite it. */ + if( GAMESTATE->m_PreferredSortOrder == SORT_INVALID ) + GAMESTATE->m_PreferredSortOrder = GAMESTATE->m_SortOrder; // HACK: invalidate currently selected song in the case that it // cannot be played due to lack of stages remaining diff --git a/stepmania/src/MusicWheel.h b/stepmania/src/MusicWheel.h index dc280fd1a1..9b2bc990bf 100644 --- a/stepmania/src/MusicWheel.h +++ b/stepmania/src/MusicWheel.h @@ -28,6 +28,7 @@ public: MusicWheel(); ~MusicWheel(); virtual void Load( RString sType ); + void BeginScreen(); virtual void DrawItem( int index ); diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 312ca26869..3005741032 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -289,6 +289,8 @@ void ScreenSelectMusic::BeginScreen() { ScreenWithMenuElements::BeginScreen(); + m_MusicWheel.BeginScreen(); + m_bMadeChoice = false; m_bGoToOptions = false; m_bAllowOptionsMenu = m_bAllowOptionsMenuRepeat = false; diff --git a/stepmania/src/WheelItemBase.cpp b/stepmania/src/WheelItemBase.cpp index 115cc5438e..37f9eb41c7 100644 --- a/stepmania/src/WheelItemBase.cpp +++ b/stepmania/src/WheelItemBase.cpp @@ -80,11 +80,16 @@ void WheelItemBase::DrawGrayBar( Actor& bar ) if( m_fPercentGray == 0 ) return; + RageColor glow = bar.GetGlow(); + RageColor diffuse = bar.GetDiffuse(); + bar.SetGlow( RageColor(0,0,0,m_fPercentGray) ); bar.SetDiffuse( RageColor(0,0,0,0) ); + bar.Draw(); - bar.SetDiffuse( RageColor(0,0,0,1) ); - bar.SetGlow( RageColor(0,0,0,0) ); + + bar.SetGlow( glow ); + bar.SetDiffuse( diffuse ); } void WheelItemBase::DrawPrimitives()