diff --git a/stepmania/Themes/default/Graphics/MusicWheelItem expanded.redir b/stepmania/Themes/default/Graphics/MusicWheelItem expanded.redir new file mode 100644 index 0000000000..fba071e1d3 --- /dev/null +++ b/stepmania/Themes/default/Graphics/MusicWheelItem expanded.redir @@ -0,0 +1 @@ +MusicWheelItem section \ No newline at end of file diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 3431f7a986..66e6ee9de8 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -872,7 +872,8 @@ void MusicWheel::RebuildMusicWheelItems( int dist ) WheelItemData *data = m_CurWheelItemData[iIndex]; MusicWheelItem *display = m_MusicWheelItems[i]; - display->LoadFromWheelItemData( data ); + bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sSectionName == m_sExpandedSectionName) : false; + display->LoadFromWheelItemData( data, bExpanded ); } } else @@ -889,7 +890,8 @@ void MusicWheel::RebuildMusicWheelItems( int dist ) WheelItemData *data = m_CurWheelItemData[iIndex]; MusicWheelItem *display = m_MusicWheelItems[i]; - display->LoadFromWheelItemData( data ); + bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sSectionName == m_sExpandedSectionName) : false; + display->LoadFromWheelItemData( data, bExpanded ); } } else if( dist < 0 ) @@ -902,7 +904,8 @@ void MusicWheel::RebuildMusicWheelItems( int dist ) WheelItemData *data = m_CurWheelItemData[iIndex]; MusicWheelItem *display = m_MusicWheelItems[i]; - display->LoadFromWheelItemData( data ); + bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sSectionName == m_sExpandedSectionName) : false; + display->LoadFromWheelItemData( data, bExpanded ); } } } diff --git a/stepmania/src/MusicWheelItem.cpp b/stepmania/src/MusicWheelItem.cpp index 7d62a9795f..2e9881dd62 100644 --- a/stepmania/src/MusicWheelItem.cpp +++ b/stepmania/src/MusicWheelItem.cpp @@ -60,6 +60,10 @@ MusicWheelItem::MusicWheelItem() m_sprSectionBar.SetXY( 0, 0 ); this->AddChild( &m_sprSectionBar ); + m_sprExpandedBar.Load( THEME->GetPathG("MusicWheelItem","expanded") ); + m_sprExpandedBar.SetXY( 0, 0 ); + this->AddChild( &m_sprExpandedBar ); + m_fPercentGray = 0; m_WheelNotifyIcon.SetXY( ICON_X, ICON_Y ); m_WheelNotifyIcon.RunCommands( ICON_ON_COMMAND ); @@ -103,7 +107,7 @@ MusicWheelItem::MusicWheelItem() } -void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID ) +void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID, bool bExpanded ) { ASSERT( pWID != NULL ); data = pWID; @@ -114,6 +118,7 @@ void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID ) m_TextBanner.SetHidden( true ); m_sprSongBar.SetHidden( true ); m_sprSectionBar.SetHidden( true ); + m_sprExpandedBar.SetHidden( true ); m_textSectionName.SetHidden( true ); m_textRoulette.SetHidden( true ); FOREACH_PlayerNumber( p ) @@ -193,7 +198,7 @@ void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID ) case TYPE_RANDOM: case TYPE_PORTAL: case TYPE_SORT: - m_sprSectionBar.SetHidden( false ); + (bExpanded ? m_sprExpandedBar : m_sprSectionBar).SetHidden( false ); break; case TYPE_SONG: case TYPE_COURSE: @@ -229,7 +234,6 @@ void MusicWheelItem::RefreshGrades() m_GradeDisplay[p].SetGrade( p, grade ); } - } @@ -244,7 +248,7 @@ void MusicWheelItem::DrawPrimitives() if( m_fPercentGray > 0 ) { - Sprite &bar = m_sprSectionBar.GetHidden() ? m_sprSongBar : m_sprSectionBar; + Sprite &bar = m_sprSongBar.GetVisible() ? m_sprSongBar : (m_sprSectionBar.GetVisible() ? m_sprSectionBar : m_sprExpandedBar); bar.SetGlow( RageColor(0,0,0,m_fPercentGray) ); bar.SetDiffuse( RageColor(0,0,0,0) ); bar.Draw(); diff --git a/stepmania/src/MusicWheelItem.h b/stepmania/src/MusicWheelItem.h index 48f0556100..f0b49c256c 100644 --- a/stepmania/src/MusicWheelItem.h +++ b/stepmania/src/MusicWheelItem.h @@ -23,7 +23,7 @@ public: virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); - void LoadFromWheelItemData( WheelItemData* pWID ); + void LoadFromWheelItemData( WheelItemData* pWID, bool bExpanded ); void RefreshGrades(); WheelItemData *data; @@ -31,6 +31,7 @@ public: Sprite m_sprSongBar; Sprite m_sprSectionBar; + Sprite m_sprExpandedBar; WheelNotifyIcon m_WheelNotifyIcon; TextBanner m_TextBanner; BitmapText m_textSectionName;