WheelItemDisplay -> MusicWheelItem

clean up header dependencies in MusicWheel classes
This commit is contained in:
Chris Danford
2003-03-31 23:06:15 +00:00
parent fb8ccf786d
commit e9f44f14a7
7 changed files with 79 additions and 75 deletions
+4 -4
View File
@@ -760,7 +760,7 @@ CreditsColor=1,1,1,1
CreditsShadowLength=0 CreditsShadowLength=0
CreditsZoom=1.0 CreditsZoom=1.0
[WheelItemDisplay] [MusicWheelItem]
IconX=-136 IconX=-136
SongNameX=-30 SongNameX=-30
SectionNameX=-30 SectionNameX=-30
@@ -932,9 +932,9 @@ StartDrawingAtPixels=-60
StopDrawingAtPixels=350 StopDrawingAtPixels=350
[BPMDisplay] [BPMDisplay]
NormalColor=1.0,0.5,0.0,1 // orange NormalColor=1.0,1.0,0.0,1 // yellow
ChangeColor=0.6,0.0,0.0,1 // dark red ChangeColor=1.0,0.5,0.0,1 // orange
ExtraColor=0.6,0.0,0.0,1 // dark red ExtraColor=0.7,0.0,0.0,1 // dark red
[GrayArrow] [GrayArrow]
StepZoom=0.75 StepZoom=0.75
+19 -17
View File
@@ -24,6 +24,8 @@
#include "GameState.h" #include "GameState.h"
#include <math.h> #include <math.h>
#include "ThemeManager.h" #include "ThemeManager.h"
#include "Song.h"
#include "Course.h"
#define NUM_WHEEL_ITEMS min( MAX_WHEEL_ITEMS, THEME->GetMetricI("MusicWheel","NumWheelItems") ) #define NUM_WHEEL_ITEMS min( MAX_WHEEL_ITEMS, THEME->GetMetricI("MusicWheel","NumWheelItems") )
@@ -179,7 +181,7 @@ MusicWheel::MusicWheel()
if(!selected) SetOpenGroup(""); if(!selected) SetOpenGroup("");
// rebuild the WheelItems that appear on screen // rebuild the WheelItems that appear on screen
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
} }
MusicWheel::~MusicWheel() MusicWheel::~MusicWheel()
@@ -518,7 +520,7 @@ float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle )
return roundf( fX ); return roundf( fX );
} }
void MusicWheel::RebuildWheelItemDisplays() void MusicWheel::RebuildMusicWheelItems()
{ {
// rewind to first index that will be displayed; // rewind to first index that will be displayed;
int iIndex = m_iSelection; int iIndex = m_iSelection;
@@ -535,7 +537,7 @@ void MusicWheel::RebuildWheelItemDisplays()
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
WheelItemData *data = m_CurWheelItemData[iIndex]; WheelItemData *data = m_CurWheelItemData[iIndex];
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
display.LoadFromWheelItemData( data ); display.LoadFromWheelItemData( data );
@@ -551,7 +553,7 @@ void MusicWheel::NotesChanged( PlayerNumber pn ) // update grade graphics and to
{ {
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
display.RefreshGrades(); display.RefreshGrades();
} }
} }
@@ -562,7 +564,7 @@ void MusicWheel::DrawPrimitives()
{ {
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
switch( m_WheelState ) switch( m_WheelState )
{ {
@@ -618,7 +620,7 @@ void MusicWheel::Update( float fDeltaTime )
unsigned i; unsigned i;
for( i=0; i<unsigned(NUM_WHEEL_ITEMS); i++ ) for( i=0; i<unsigned(NUM_WHEEL_ITEMS); i++ )
{ {
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
display.Update( fDeltaTime ); display.Update( fDeltaTime );
} }
@@ -683,7 +685,7 @@ void MusicWheel::Update( float fDeltaTime )
} }
SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 ); SCREENMAN->PostMessageToTopScreen( SM_SongChanged, 0 );
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
TweenOnScreen(true); TweenOnScreen(true);
m_WheelState = STATE_FLYING_ON_AFTER_NEXT_SORT; 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) ) else if( m_iSelection > int(m_CurWheelItemData.size()-1) )
m_iSelection = 0; m_iSelection = 0;
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
m_fPositionOffsetFromSelection += dist; m_fPositionOffsetFromSelection += dist;
@@ -912,7 +914,7 @@ bool MusicWheel::Select() // return true of a playable item was chosen
return false; return false;
} }
switch( m_CurWheelItemData[m_iSelection]->m_WheelItemType ) switch( m_CurWheelItemData[m_iSelection]->m_Type )
{ {
case TYPE_SECTION: case TYPE_SECTION:
{ {
@@ -924,7 +926,7 @@ bool MusicWheel::Select() // return true of a playable item was chosen
SetOpenGroup(m_sExpandedSectionName); SetOpenGroup(m_sExpandedSectionName);
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
m_soundExpand.Play(); 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 // find the section header and select it
for( unsigned i=0; i<m_CurWheelItemData.size(); i++ ) for( unsigned i=0; i<m_CurWheelItemData.size(); i++ )
{ {
if( m_CurWheelItemData[i]->m_WheelItemType == TYPE_SECTION if( m_CurWheelItemData[i]->m_Type == TYPE_SECTION
&& m_CurWheelItemData[i]->m_sSectionName == sThisItemSectionName ) && m_CurWheelItemData[i]->m_sSectionName == sThisItemSectionName )
{ {
m_iSelection = i; m_iSelection = i;
@@ -983,7 +985,7 @@ void MusicWheel::StartRandom()
m_WheelState = STATE_RANDOM_SPINNING; m_WheelState = STATE_RANDOM_SPINNING;
this->Select(); this->Select();
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
} }
void MusicWheel::SetOpenGroup(CString group, SongSortOrder so) void MusicWheel::SetOpenGroup(CString group, SongSortOrder so)
@@ -1002,8 +1004,8 @@ void MusicWheel::SetOpenGroup(CString group, SongSortOrder so)
unsigned i; unsigned i;
for(i = 0; i < from.size(); ++i) for(i = 0; i < from.size(); ++i)
{ {
if((from[i].m_WheelItemType == TYPE_SONG || if((from[i].m_Type == TYPE_SONG ||
from[i].m_WheelItemType == TYPE_COURSE) && from[i].m_Type == TYPE_COURSE) &&
!from[i].m_sSectionName.empty() && !from[i].m_sSectionName.empty() &&
from[i].m_sSectionName != group) from[i].m_sSectionName != group)
continue; continue;
@@ -1018,7 +1020,7 @@ void MusicWheel::SetOpenGroup(CString group, SongSortOrder so)
m_iSelection=i; m_iSelection=i;
} }
RebuildWheelItemDisplays(); RebuildMusicWheelItems();
} }
bool MusicWheel::IsRouletting() const bool MusicWheel::IsRouletting() const
@@ -1062,7 +1064,7 @@ void MusicWheel::TweenOnScreen(bool changing_sort)
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection; float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
float fX = GetBannerX(fThisBannerPositionOffsetFromSelection); float fX = GetBannerX(fThisBannerPositionOffsetFromSelection);
@@ -1105,7 +1107,7 @@ void MusicWheel::TweenOffScreen(bool changing_sort)
for( int i=0; i<NUM_WHEEL_ITEMS; i++ ) for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{ {
WheelItemDisplay& display = m_WheelItemDisplays[i]; MusicWheelItem& display = m_MusicWheelItems[i];
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection; float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection;
float fX = GetBannerX(fThisBannerPositionOffsetFromSelection); float fX = GetBannerX(fThisBannerPositionOffsetFromSelection);
+6 -10
View File
@@ -12,21 +12,17 @@
*/ */
#include "Sprite.h" #include "Sprite.h"
#include "song.h"
#include "ActorFrame.h" #include "ActorFrame.h"
#include "BitmapText.h"
#include "Quad.h"
#include "TextBanner.h"
#include "RandomSample.h" #include "RandomSample.h"
#include "GameConstantsAndTypes.h" #include "GameConstantsAndTypes.h"
#include "MusicSortDisplay.h" #include "MusicSortDisplay.h"
#include "WheelNotifyIcon.h" #include "ScreenMessage.h"
#include "Screen.h" // for ScreenMessage
#include "ScoreDisplayNormal.h" #include "ScoreDisplayNormal.h"
#include "ScrollBar.h" #include "ScrollBar.h"
#include "Course.h"
#include "RageTimer.h" #include "RageTimer.h"
#include "MusicWheelItem.h" #include "MusicWheelItem.h"
class Course;
class Song;
const int MAX_WHEEL_ITEMS = 15; const int MAX_WHEEL_ITEMS = 15;
@@ -71,13 +67,13 @@ public:
float GetBannerY( float fPosOffsetsFromMiddle ); float GetBannerY( float fPosOffsetsFromMiddle );
bool Select(); // return true if the selected item is a music, otherwise false bool Select(); // return true if the selected item is a music, otherwise false
WheelItemType GetSelectedType() { return m_CurWheelItemData[m_iSelection]->m_WheelItemType; }; WheelItemType GetSelectedType() { return m_CurWheelItemData[m_iSelection]->m_Type; };
Song* GetSelectedSong() { return m_CurWheelItemData[m_iSelection]->m_pSong; }; Song* GetSelectedSong() { return m_CurWheelItemData[m_iSelection]->m_pSong; };
Course* GetSelectedCourse() { return m_CurWheelItemData[m_iSelection]->m_pCourse; }; Course* GetSelectedCourse() { return m_CurWheelItemData[m_iSelection]->m_pCourse; };
CString GetSelectedSection(){ return m_CurWheelItemData[m_iSelection]->m_sSectionName; }; CString GetSelectedSection(){ return m_CurWheelItemData[m_iSelection]->m_sSectionName; };
bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); } bool WheelIsLocked() { return (m_WheelState == STATE_LOCKED ? true : false); }
void RebuildWheelItemDisplays(); void RebuildMusicWheelItems();
protected: protected:
void GetSongList(vector<Song*> &arraySongs, bool bRoulette ); void GetSongList(vector<Song*> &arraySongs, bool bRoulette );
@@ -93,7 +89,7 @@ protected:
vector<WheelItemData> m_WheelItemDatas[NUM_SORT_ORDERS]; vector<WheelItemData> m_WheelItemDatas[NUM_SORT_ORDERS];
vector<WheelItemData *> m_CurWheelItemData; vector<WheelItemData *> m_CurWheelItemData;
WheelItemDisplay m_WheelItemDisplays[MAX_WHEEL_ITEMS]; MusicWheelItem m_MusicWheelItems[MAX_WHEEL_ITEMS];
int m_iSelection; // index into m_CurWheelItemData int m_iSelection; // index into m_CurWheelItemData
CString m_sExpandedSectionName; CString m_sExpandedSectionName;
+24 -23
View File
@@ -12,7 +12,7 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "MusicWheel.h" #include "MusicWheelItem.h"
#include "RageUtil.h" #include "RageUtil.h"
#include "SongManager.h" #include "SongManager.h"
#include "GameManager.h" #include "GameManager.h"
@@ -25,25 +25,26 @@
#include <math.h> #include <math.h>
#include "ThemeManager.h" #include "ThemeManager.h"
#include "Notes.h" #include "Notes.h"
#include "Song.h"
// WheelItem stuff // WheelItem stuff
#define ICON_X THEME->GetMetricF("WheelItemDisplay","IconX") #define ICON_X THEME->GetMetricF("MusicWheelItem","IconX")
#define SONG_NAME_X THEME->GetMetricF("WheelItemDisplay","SongNameX") #define SONG_NAME_X THEME->GetMetricF("MusicWheelItem","SongNameX")
#define SECTION_NAME_X THEME->GetMetricF("WheelItemDisplay","SectionNameX") #define SECTION_NAME_X THEME->GetMetricF("MusicWheelItem","SectionNameX")
#define SECTION_ZOOM THEME->GetMetricF("WheelItemDisplay","SectionZoom") #define SECTION_ZOOM THEME->GetMetricF("MusicWheelItem","SectionZoom")
#define ROULETTE_X THEME->GetMetricF("WheelItemDisplay","RouletteX") #define ROULETTE_X THEME->GetMetricF("MusicWheelItem","RouletteX")
#define ROULETTE_ZOOM THEME->GetMetricF("WheelItemDisplay","RouletteZoom") #define ROULETTE_ZOOM THEME->GetMetricF("MusicWheelItem","RouletteZoom")
#define COURSE_X THEME->GetMetricF("WheelItemDisplay","CourseX") #define COURSE_X THEME->GetMetricF("MusicWheelItem","CourseX")
#define COURSE_ZOOM THEME->GetMetricF("WheelItemDisplay","CourseZoom") #define COURSE_ZOOM THEME->GetMetricF("MusicWheelItem","CourseZoom")
#define GRADE_X( p ) THEME->GetMetricF("WheelItemDisplay",ssprintf("GradeP%dX",p+1)) #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_pSong = pSong;
m_sSectionName = sSectionName; m_sSectionName = sSectionName;
m_pCourse = pCourse; m_pCourse = pCourse;
@@ -52,7 +53,7 @@ WheelItemData::WheelItemData( WheelItemType wit, Song* pSong, const CString &sSe
} }
WheelItemDisplay::WheelItemDisplay() MusicWheelItem::MusicWheelItem()
{ {
data = NULL; data = NULL;
@@ -96,7 +97,7 @@ WheelItemDisplay::WheelItemDisplay()
} }
void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID ) void MusicWheelItem::LoadFromWheelItemData( WheelItemData* pWID )
{ {
ASSERT( pWID != NULL ); ASSERT( pWID != NULL );
@@ -105,7 +106,7 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID )
data = pWID; data = pWID;
/* /*
// copy all data items // copy all data items
this->m_WheelItemType = pWID->m_WheelItemType; this->m_Type = pWID->m_Type;
this->m_sSectionName = pWID->m_sSectionName; this->m_sSectionName = pWID->m_sSectionName;
this->m_pCourse = pWID->m_pCourse; this->m_pCourse = pWID->m_pCourse;
this->m_pSong = pWID->m_pSong; this->m_pSong = pWID->m_pSong;
@@ -114,14 +115,14 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID )
// init type specific stuff // init type specific stuff
switch( pWID->m_WheelItemType ) switch( pWID->m_Type )
{ {
case TYPE_SECTION: case TYPE_SECTION:
case TYPE_COURSE: case TYPE_COURSE:
{ {
CString sDisplayName; CString sDisplayName;
BitmapText *bt; BitmapText *bt;
if(pWID->m_WheelItemType == TYPE_SECTION) if(pWID->m_Type == TYPE_SECTION)
{ {
sDisplayName = SONGMAN->ShortenGroupName(data->m_sSectionName); sDisplayName = SONGMAN->ShortenGroupName(data->m_sSectionName);
bt = &m_textSectionName; bt = &m_textSectionName;
@@ -163,7 +164,7 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID )
} }
} }
void WheelItemDisplay::RefreshGrades() void MusicWheelItem::RefreshGrades()
{ {
// Refresh Grades // Refresh Grades
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
@@ -188,11 +189,11 @@ void WheelItemDisplay::RefreshGrades()
} }
void WheelItemDisplay::Update( float fDeltaTime ) void MusicWheelItem::Update( float fDeltaTime )
{ {
Actor::Update( fDeltaTime ); Actor::Update( fDeltaTime );
switch( data->m_WheelItemType ) switch( data->m_Type )
{ {
case TYPE_SECTION: case TYPE_SECTION:
m_sprSectionBar.Update( fDeltaTime ); m_sprSectionBar.Update( fDeltaTime );
@@ -221,10 +222,10 @@ void WheelItemDisplay::Update( float fDeltaTime )
} }
} }
void WheelItemDisplay::DrawPrimitives() void MusicWheelItem::DrawPrimitives()
{ {
Sprite *bar = NULL; Sprite *bar = NULL;
switch( data->m_WheelItemType ) switch( data->m_Type )
{ {
case TYPE_SECTION: case TYPE_SECTION:
case TYPE_ROULETTE: case TYPE_ROULETTE:
@@ -236,7 +237,7 @@ void WheelItemDisplay::DrawPrimitives()
bar->Draw(); bar->Draw();
switch( data->m_WheelItemType ) switch( data->m_Type )
{ {
case TYPE_SECTION: case TYPE_SECTION:
m_textSectionName.Draw(); m_textSectionName.Draw();
+24 -19
View File
@@ -11,30 +11,20 @@
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
*/ */
#include "ActorFrame.h"
#include "GradeDisplay.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 }; class MusicWheelItem : public ActorFrame
struct WheelItemData
{ {
public: public:
WheelItemData() {} MusicWheelItem();
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();
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
virtual void DrawPrimitives(); virtual void DrawPrimitives();
@@ -62,4 +52,19 @@ public:
BitmapText m_textCourse; 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 #endif
+1 -1
View File
@@ -201,7 +201,7 @@ void ScreenSelectCourse::Input( const DeviceInput& DeviceI, InputEventType type,
{ {
if( type != IET_FIRST_PRESS ) return; if( type != IET_FIRST_PRESS ) return;
PREFSMAN->m_bShowTranslations ^= 1; PREFSMAN->m_bShowTranslations ^= 1;
m_MusicWheel.RebuildWheelItemDisplays(); m_MusicWheel.RebuildMusicWheelItems();
Course* pCourse = m_MusicWheel.GetSelectedCourse(); Course* pCourse = m_MusicWheel.GetSelectedCourse();
if(pCourse) if(pCourse)
m_CourseContentsFrame.SetFromCourse( pCourse ); m_CourseContentsFrame.SetFromCourse( pCourse );
+1 -1
View File
@@ -340,7 +340,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
{ {
if( type != IET_FIRST_PRESS ) return; if( type != IET_FIRST_PRESS ) return;
PREFSMAN->m_bShowTranslations ^= 1; PREFSMAN->m_bShowTranslations ^= 1;
m_MusicWheel.RebuildWheelItemDisplays(); m_MusicWheel.RebuildMusicWheelItems();
return; return;
} }