diff --git a/stepmania/src/MusicWheelItem.cpp b/stepmania/src/MusicWheelItem.cpp index 4c356a1bfd..036d9b2b94 100644 --- a/stepmania/src/MusicWheelItem.cpp +++ b/stepmania/src/MusicWheelItem.cpp @@ -223,6 +223,15 @@ void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID, bool bExpanded default: ASSERT(0); } + Sprite *pBar = NULL; + if( m_sprBar.GetVisible() ) + pBar = &m_sprBar; + else if( m_sprSectionBar.GetVisible() ) + pBar = &m_sprSectionBar; + else + pBar = &m_sprExpandedBar; + + SetGrayBar( pBar ); } void MusicWheelItem::RefreshGrades() @@ -254,15 +263,7 @@ void MusicWheelItem::RefreshGrades() void MusicWheelItem::DrawPrimitives() { - Sprite *pBar = NULL; - if( m_sprBar.GetVisible() ) - pBar = &m_sprBar; - else if( m_sprSectionBar.GetVisible() ) - pBar = &m_sprSectionBar; - else - pBar = &m_sprExpandedBar; - - WheelItemBase::DrawPrimitives( *pBar ); + WheelItemBase::DrawPrimitives(); } /* diff --git a/stepmania/src/WheelItemBase.cpp b/stepmania/src/WheelItemBase.cpp index 2bdefd08d8..f80ea36fc8 100644 --- a/stepmania/src/WheelItemBase.cpp +++ b/stepmania/src/WheelItemBase.cpp @@ -28,6 +28,7 @@ WheelItemBaseData::WheelItemBaseData( WheelItemType wit, CString sText, RageColo WheelItemBase::WheelItemBase(CString sType) { SetName( sType ); + m_pBar = NULL; Load(sType); } @@ -42,6 +43,7 @@ void WheelItemBase::Load( CString sType ) m_sprBar.Load( THEME->GetPathG(sType,"bar") ); m_sprBar.SetXY( 0, 0 ); this->AddChild( &m_sprBar ); + m_pBar = &m_sprBar; m_text.LoadFromFont( THEME->GetPathF(sType,"text") ); m_text.SetShadowLength( 0 ); @@ -79,7 +81,7 @@ void WheelItemBase::Update( float fDeltaTime ) Actor::Update( fDeltaTime ); } -void WheelItemBase::DrawGrayBar( Sprite& bar ) +void WheelItemBase::DrawGrayBar( Actor& bar ) { if( m_fPercentGray == 0 ) return; @@ -91,11 +93,12 @@ void WheelItemBase::DrawGrayBar( Sprite& bar ) bar.SetGlow( RageColor(0,0,0,0) ); } -void WheelItemBase::DrawPrimitives(Sprite& bar) +void WheelItemBase::DrawPrimitives() { ActorFrame::DrawPrimitives(); - DrawGrayBar( bar ); + if( m_pBar != NULL ) + DrawGrayBar( *m_pBar ); } /* diff --git a/stepmania/src/WheelItemBase.h b/stepmania/src/WheelItemBase.h index b77e81609b..a911d1e1b9 100644 --- a/stepmania/src/WheelItemBase.h +++ b/stepmania/src/WheelItemBase.h @@ -28,20 +28,23 @@ enum WheelItemType class WheelItemBase : public ActorFrame { public: - WheelItemBase(CString sType = "WheelItemBase"); - WheelItemBaseData* data; + WheelItemBase( CString sType = "WheelItemBase" ); virtual void Update( float fDeltaTime ); - virtual void DrawPrimitives(Sprite& bar); - virtual void DrawPrimitives() { DrawPrimitives( m_sprBar ); } + virtual void DrawPrimitives(); void Load( CString sType ); - void DrawGrayBar( Sprite& bar ); + void DrawGrayBar( Actor& bar ); virtual void LoadFromWheelItemBaseData( WheelItemBaseData* pWID ); float m_fPercentGray; protected: + void SetGrayBar( Actor *pBar ) { m_pBar = pBar; } + + WheelItemBaseData* data; + + Actor *m_pBar; Sprite m_sprBar; BitmapText m_text; WheelItemType m_Type;