diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index f3a5f2bf51..97138fd2fe 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -760,7 +760,7 @@ CreditsColor=1,1,1,1 CreditsShadowLength=0 CreditsZoom=1.0 -[WheelItemDisplay] +[MusicWheelItem] IconX=-136 SongNameX=-30 SectionNameX=-30 @@ -932,9 +932,9 @@ StartDrawingAtPixels=-60 StopDrawingAtPixels=350 [BPMDisplay] -NormalColor=1.0,0.5,0.0,1 // orange -ChangeColor=0.6,0.0,0.0,1 // dark red -ExtraColor=0.6,0.0,0.0,1 // dark red +NormalColor=1.0,1.0,0.0,1 // yellow +ChangeColor=1.0,0.5,0.0,1 // orange +ExtraColor=0.7,0.0,0.0,1 // dark red [GrayArrow] StepZoom=0.75 diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 4c9dedcb93..f7b5e759d0 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -24,6 +24,8 @@ #include "GameState.h" #include #include "ThemeManager.h" +#include "Song.h" +#include "Course.h" #define NUM_WHEEL_ITEMS min( MAX_WHEEL_ITEMS, THEME->GetMetricI("MusicWheel","NumWheelItems") ) @@ -179,7 +181,7 @@ MusicWheel::MusicWheel() if(!selected) SetOpenGroup(""); // rebuild the WheelItems that appear on screen - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); } MusicWheel::~MusicWheel() @@ -518,7 +520,7 @@ float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle ) return roundf( fX ); } -void MusicWheel::RebuildWheelItemDisplays() +void MusicWheel::RebuildMusicWheelItems() { // rewind to first index that will be displayed; int iIndex = m_iSelection; @@ -535,7 +537,7 @@ void MusicWheel::RebuildWheelItemDisplays() for( int i=0; iPostMessageToTopScreen( SM_SongChanged, 0 ); - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); TweenOnScreen(true); m_WheelState = STATE_FLYING_ON_AFTER_NEXT_SORT; } @@ -850,7 +852,7 @@ void MusicWheel::ChangeMusic(int dist) else if( m_iSelection > int(m_CurWheelItemData.size()-1) ) m_iSelection = 0; - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); m_fPositionOffsetFromSelection += dist; @@ -912,7 +914,7 @@ bool MusicWheel::Select() // return true of a playable item was chosen return false; } - switch( m_CurWheelItemData[m_iSelection]->m_WheelItemType ) + switch( m_CurWheelItemData[m_iSelection]->m_Type ) { case TYPE_SECTION: { @@ -924,7 +926,7 @@ bool MusicWheel::Select() // return true of a playable item was chosen SetOpenGroup(m_sExpandedSectionName); - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); m_soundExpand.Play(); @@ -934,7 +936,7 @@ bool MusicWheel::Select() // return true of a playable item was chosen // find the section header and select it for( unsigned i=0; im_WheelItemType == TYPE_SECTION + if( m_CurWheelItemData[i]->m_Type == TYPE_SECTION && m_CurWheelItemData[i]->m_sSectionName == sThisItemSectionName ) { m_iSelection = i; @@ -983,7 +985,7 @@ void MusicWheel::StartRandom() m_WheelState = STATE_RANDOM_SPINNING; this->Select(); - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); } void MusicWheel::SetOpenGroup(CString group, SongSortOrder so) @@ -1002,8 +1004,8 @@ void MusicWheel::SetOpenGroup(CString group, SongSortOrder so) unsigned i; for(i = 0; i < from.size(); ++i) { - if((from[i].m_WheelItemType == TYPE_SONG || - from[i].m_WheelItemType == TYPE_COURSE) && + if((from[i].m_Type == TYPE_SONG || + from[i].m_Type == TYPE_COURSE) && !from[i].m_sSectionName.empty() && from[i].m_sSectionName != group) continue; @@ -1018,7 +1020,7 @@ void MusicWheel::SetOpenGroup(CString group, SongSortOrder so) m_iSelection=i; } - RebuildWheelItemDisplays(); + RebuildMusicWheelItems(); } bool MusicWheel::IsRouletting() const @@ -1062,7 +1064,7 @@ void MusicWheel::TweenOnScreen(bool changing_sort) for( int i=0; im_WheelItemType; }; + WheelItemType GetSelectedType() { return m_CurWheelItemData[m_iSelection]->m_Type; }; Song* GetSelectedSong() { return m_CurWheelItemData[m_iSelection]->m_pSong; }; Course* GetSelectedCourse() { return m_CurWheelItemData[m_iSelection]->m_pCourse; }; CString GetSelectedSection(){ return m_CurWheelItemData[m_iSelection]->m_sSectionName; }; bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); } - void RebuildWheelItemDisplays(); + void RebuildMusicWheelItems(); protected: void GetSongList(vector &arraySongs, bool bRoulette ); @@ -93,7 +89,7 @@ protected: vector m_WheelItemDatas[NUM_SORT_ORDERS]; vector m_CurWheelItemData; - WheelItemDisplay m_WheelItemDisplays[MAX_WHEEL_ITEMS]; + MusicWheelItem m_MusicWheelItems[MAX_WHEEL_ITEMS]; int m_iSelection; // index into m_CurWheelItemData CString m_sExpandedSectionName; diff --git a/stepmania/src/MusicWheelItem.cpp b/stepmania/src/MusicWheelItem.cpp index e0e8eb54ad..7e51e19a03 100644 --- a/stepmania/src/MusicWheelItem.cpp +++ b/stepmania/src/MusicWheelItem.cpp @@ -12,7 +12,7 @@ ----------------------------------------------------------------------------- */ -#include "MusicWheel.h" +#include "MusicWheelItem.h" #include "RageUtil.h" #include "SongManager.h" #include "GameManager.h" @@ -25,25 +25,26 @@ #include #include "ThemeManager.h" #include "Notes.h" +#include "Song.h" // WheelItem stuff -#define ICON_X THEME->GetMetricF("WheelItemDisplay","IconX") -#define SONG_NAME_X THEME->GetMetricF("WheelItemDisplay","SongNameX") -#define SECTION_NAME_X THEME->GetMetricF("WheelItemDisplay","SectionNameX") -#define SECTION_ZOOM THEME->GetMetricF("WheelItemDisplay","SectionZoom") -#define ROULETTE_X THEME->GetMetricF("WheelItemDisplay","RouletteX") -#define ROULETTE_ZOOM THEME->GetMetricF("WheelItemDisplay","RouletteZoom") -#define COURSE_X THEME->GetMetricF("WheelItemDisplay","CourseX") -#define COURSE_ZOOM THEME->GetMetricF("WheelItemDisplay","CourseZoom") -#define GRADE_X( p ) THEME->GetMetricF("WheelItemDisplay",ssprintf("GradeP%dX",p+1)) +#define ICON_X THEME->GetMetricF("MusicWheelItem","IconX") +#define SONG_NAME_X THEME->GetMetricF("MusicWheelItem","SongNameX") +#define SECTION_NAME_X THEME->GetMetricF("MusicWheelItem","SectionNameX") +#define SECTION_ZOOM THEME->GetMetricF("MusicWheelItem","SectionZoom") +#define ROULETTE_X THEME->GetMetricF("MusicWheelItem","RouletteX") +#define ROULETTE_ZOOM THEME->GetMetricF("MusicWheelItem","RouletteZoom") +#define COURSE_X THEME->GetMetricF("MusicWheelItem","CourseX") +#define COURSE_ZOOM THEME->GetMetricF("MusicWheelItem","CourseZoom") +#define GRADE_X( p ) THEME->GetMetricF("MusicWheelItem",ssprintf("GradeP%dX",p+1)) -WheelItemData::WheelItemData( WheelItemType wit, Song* pSong, const CString &sSectionName, Course* pCourse, const RageColor color ) +WheelItemData::WheelItemData( WheelItemType wit, Song* pSong, CString sSectionName, Course* pCourse, RageColor color ) { - m_WheelItemType = wit; + m_Type = wit; m_pSong = pSong; m_sSectionName = sSectionName; m_pCourse = pCourse; @@ -52,7 +53,7 @@ WheelItemData::WheelItemData( WheelItemType wit, Song* pSong, const CString &sSe } -WheelItemDisplay::WheelItemDisplay() +MusicWheelItem::MusicWheelItem() { data = NULL; @@ -96,7 +97,7 @@ WheelItemDisplay::WheelItemDisplay() } -void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID ) +void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID ) { ASSERT( pWID != NULL ); @@ -105,7 +106,7 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID ) data = pWID; /* // copy all data items - this->m_WheelItemType = pWID->m_WheelItemType; + this->m_Type = pWID->m_Type; this->m_sSectionName = pWID->m_sSectionName; this->m_pCourse = pWID->m_pCourse; this->m_pSong = pWID->m_pSong; @@ -114,14 +115,14 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID ) // init type specific stuff - switch( pWID->m_WheelItemType ) + switch( pWID->m_Type ) { case TYPE_SECTION: case TYPE_COURSE: { CString sDisplayName; BitmapText *bt; - if(pWID->m_WheelItemType == TYPE_SECTION) + if(pWID->m_Type == TYPE_SECTION) { sDisplayName = SONGMAN->ShortenGroupName(data->m_sSectionName); bt = &m_textSectionName; @@ -163,7 +164,7 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID ) } } -void WheelItemDisplay::RefreshGrades() +void MusicWheelItem::RefreshGrades() { // Refresh Grades for( int p=0; pm_WheelItemType ) + switch( data->m_Type ) { case TYPE_SECTION: m_sprSectionBar.Update( fDeltaTime ); @@ -221,10 +222,10 @@ void WheelItemDisplay::Update( float fDeltaTime ) } } -void WheelItemDisplay::DrawPrimitives() +void MusicWheelItem::DrawPrimitives() { Sprite *bar = NULL; - switch( data->m_WheelItemType ) + switch( data->m_Type ) { case TYPE_SECTION: case TYPE_ROULETTE: @@ -236,7 +237,7 @@ void WheelItemDisplay::DrawPrimitives() bar->Draw(); - switch( data->m_WheelItemType ) + switch( data->m_Type ) { case TYPE_SECTION: m_textSectionName.Draw(); diff --git a/stepmania/src/MusicWheelItem.h b/stepmania/src/MusicWheelItem.h index 60363e87a5..e46eeac7c2 100644 --- a/stepmania/src/MusicWheelItem.h +++ b/stepmania/src/MusicWheelItem.h @@ -11,30 +11,20 @@ ----------------------------------------------------------------------------- */ +#include "ActorFrame.h" #include "GradeDisplay.h" +#include "BitmapText.h" +#include "WheelNotifyIcon.h" +#include "TextBanner.h" +class Course; +class Song; +struct WheelItemData; -enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_RANDOM, TYPE_COURSE }; - -struct WheelItemData +class MusicWheelItem : public ActorFrame { public: - WheelItemData() {} - WheelItemData( WheelItemType wit, Song* pSong, const CString &sSectionName, Course* pCourse, const RageColor color ); - - WheelItemType m_WheelItemType; - CString m_sSectionName; - Course* m_pCourse; - Song* m_pSong; - RageColor m_color; // either text color or section background color - WheelNotifyIcon::Flags m_Flags; -}; - - -class WheelItemDisplay: public ActorFrame -{ -public: - WheelItemDisplay(); + MusicWheelItem(); virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); @@ -62,4 +52,19 @@ public: BitmapText m_textCourse; }; +enum WheelItemType { TYPE_SECTION, TYPE_SONG, TYPE_ROULETTE, TYPE_RANDOM, TYPE_COURSE }; + +struct WheelItemData +{ + WheelItemData() {} + WheelItemData( WheelItemType wit, Song* pSong, CString sSectionName, Course* pCourse, RageColor color ); + + WheelItemType m_Type; + CString m_sSectionName; + Course* m_pCourse; + Song* m_pSong; + RageColor m_color; // either text color or section background color + WheelNotifyIcon::Flags m_Flags; +}; + #endif diff --git a/stepmania/src/ScreenSelectCourse.cpp b/stepmania/src/ScreenSelectCourse.cpp index 30389b9757..628ecc5aa2 100644 --- a/stepmania/src/ScreenSelectCourse.cpp +++ b/stepmania/src/ScreenSelectCourse.cpp @@ -201,7 +201,7 @@ void ScreenSelectCourse::Input( const DeviceInput& DeviceI, InputEventType type, { if( type != IET_FIRST_PRESS ) return; PREFSMAN->m_bShowTranslations ^= 1; - m_MusicWheel.RebuildWheelItemDisplays(); + m_MusicWheel.RebuildMusicWheelItems(); Course* pCourse = m_MusicWheel.GetSelectedCourse(); if(pCourse) m_CourseContentsFrame.SetFromCourse( pCourse ); diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 4b73d77709..cdf68adc0b 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -340,7 +340,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type, { if( type != IET_FIRST_PRESS ) return; PREFSMAN->m_bShowTranslations ^= 1; - m_MusicWheel.RebuildWheelItemDisplays(); + m_MusicWheel.RebuildMusicWheelItems(); return; }