cleanup, add section count text
This commit is contained in:
+164
-169
@@ -16,13 +16,27 @@
|
|||||||
#include "ActorUtil.h"
|
#include "ActorUtil.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
#include "HighScore.h"
|
#include "HighScore.h"
|
||||||
|
#include "ScreenSelectMusic.h"
|
||||||
|
#include "ScreenManager.h"
|
||||||
|
|
||||||
WheelItemData::WheelItemData( WheelItemType wit, Song* pSong, RString sSectionName, Course* pCourse, RageColor color ):
|
static const char *MusicWheelItemTypeNames[] = {
|
||||||
WheelItemBaseData(wit, sSectionName, color)
|
"Song",
|
||||||
|
"SectionExpanded",
|
||||||
|
"SectionCollapsed",
|
||||||
|
"Roulette",
|
||||||
|
"Course",
|
||||||
|
"Sort",
|
||||||
|
"Mode",
|
||||||
|
};
|
||||||
|
XToString( MusicWheelItemType );
|
||||||
|
|
||||||
|
MusicWheelItemData::MusicWheelItemData( WheelItemDataType type, Song* pSong, RString sSectionName, Course* pCourse, RageColor color, int iSectionCount ):
|
||||||
|
WheelItemBaseData(type, sSectionName, color)
|
||||||
{
|
{
|
||||||
m_pSong = pSong;
|
m_pSong = pSong;
|
||||||
m_pCourse = pCourse;
|
m_pCourse = pCourse;
|
||||||
m_Flags = WheelNotifyIcon::Flags();
|
m_Flags = WheelNotifyIcon::Flags();
|
||||||
|
m_iSectionCount = iSectionCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
MusicWheelItem::MusicWheelItem( RString sType ):
|
MusicWheelItem::MusicWheelItem( RString sType ):
|
||||||
@@ -30,22 +44,46 @@ MusicWheelItem::MusicWheelItem( RString sType ):
|
|||||||
{
|
{
|
||||||
GRADES_SHOW_MACHINE.Load( sType, "GradesShowMachine" );
|
GRADES_SHOW_MACHINE.Load( sType, "GradesShowMachine" );
|
||||||
|
|
||||||
data = NULL;
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
|
{
|
||||||
|
m_sprColorPart[i].Load( THEME->GetPathG(sType,MusicWheelItemTypeToString(i)+" ColorPart") );
|
||||||
|
this->AddChild( m_sprColorPart[i] );
|
||||||
|
|
||||||
m_sprSongBar.Load( THEME->GetPathG(sType,"song") );
|
m_sprNormalPart[i].Load( THEME->GetPathG(sType,MusicWheelItemTypeToString(i)+" NormalPart") );
|
||||||
this->AddChild( m_sprSongBar );
|
this->AddChild( m_sprNormalPart[i] );
|
||||||
|
}
|
||||||
|
|
||||||
m_sprSectionBar.Load( THEME->GetPathG(sType,"section") );
|
m_TextBanner.SetName( "SongName" );
|
||||||
this->AddChild( m_sprSectionBar );
|
ActorUtil::LoadAllCommands( m_TextBanner, "MusicWheelItem" );
|
||||||
|
m_TextBanner.Load( "TextBanner" );
|
||||||
|
ActorUtil::SetXY( m_TextBanner, "MusicWheelItem" );
|
||||||
|
m_TextBanner.PlayCommand( "On" );
|
||||||
|
this->AddChild( &m_TextBanner );
|
||||||
|
|
||||||
m_sprExpandedBar.Load( THEME->GetPathG(sType,"expanded") );
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
this->AddChild( m_sprExpandedBar );
|
{
|
||||||
|
m_pText[i] = NULL;
|
||||||
|
|
||||||
m_sprModeBar.Load( THEME->GetPathG(sType,"mode") );
|
// Don't init text for Type_Song. It uses a TextBanner.
|
||||||
this->AddChild( m_sprModeBar );
|
if( i == MusicWheelItemType_Song )
|
||||||
|
continue;
|
||||||
|
|
||||||
m_sprSortBar.Load( THEME->GetPathG(sType,"sort") );
|
m_pText[i] = new BitmapText;
|
||||||
this->AddChild( m_sprSortBar );
|
m_pText[i]->SetName( MusicWheelItemTypeToString(i) );
|
||||||
|
ActorUtil::LoadAllCommands( m_pText[i], "MusicWheelItem" );
|
||||||
|
m_pText[i]->LoadFromFont( THEME->GetPathF(sType,MusicWheelItemTypeToString(i)) );
|
||||||
|
ActorUtil::SetXY( m_pText[i], "MusicWheelItem" );
|
||||||
|
m_pText[i]->PlayCommand( "On" );
|
||||||
|
this->AddChild( m_pText[i] );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_pTextSectionCount = new BitmapText;
|
||||||
|
m_pTextSectionCount->SetName( "SectionCount" );
|
||||||
|
ActorUtil::LoadAllCommands( m_pTextSectionCount, "MusicWheelItem" );
|
||||||
|
m_pTextSectionCount->LoadFromFont( THEME->GetPathF(sType,"SectionCount") );
|
||||||
|
ActorUtil::SetXY( m_pTextSectionCount, "MusicWheelItem" );
|
||||||
|
m_pTextSectionCount->PlayCommand( "On" );
|
||||||
|
this->AddChild( m_pTextSectionCount );
|
||||||
|
|
||||||
m_WheelNotifyIcon.SetName( "Icon" );
|
m_WheelNotifyIcon.SetName( "Icon" );
|
||||||
ActorUtil::LoadAllCommands( m_WheelNotifyIcon, "MusicWheelItem" );
|
ActorUtil::LoadAllCommands( m_WheelNotifyIcon, "MusicWheelItem" );
|
||||||
@@ -53,39 +91,6 @@ MusicWheelItem::MusicWheelItem( RString sType ):
|
|||||||
m_WheelNotifyIcon.PlayCommand( "On" );
|
m_WheelNotifyIcon.PlayCommand( "On" );
|
||||||
this->AddChild( &m_WheelNotifyIcon );
|
this->AddChild( &m_WheelNotifyIcon );
|
||||||
|
|
||||||
m_TextBanner.SetName( "SongName" );
|
|
||||||
ActorUtil::LoadAllCommands( m_TextBanner, "MusicWheelItem" );
|
|
||||||
m_TextBanner.Load( "TextBanner" );
|
|
||||||
ActorUtil::SetXY( m_WheelNotifyIcon, "MusicWheelItem" );
|
|
||||||
m_TextBanner.PlayCommand( "On" );
|
|
||||||
this->AddChild( &m_TextBanner );
|
|
||||||
|
|
||||||
m_textSection.SetName( "Section" );
|
|
||||||
ActorUtil::LoadAllCommands( m_textSection, "MusicWheelItem" );
|
|
||||||
m_textSection.LoadFromFont( THEME->GetPathF(sType,"section") );
|
|
||||||
ActorUtil::SetXY( m_textSection, "MusicWheelItem" );
|
|
||||||
m_textSection.SetShadowLength( 0 );
|
|
||||||
m_textSection.PlayCommand( "On" );
|
|
||||||
this->AddChild( &m_textSection );
|
|
||||||
|
|
||||||
m_textRoulette.SetName( "Roulette" );
|
|
||||||
ActorUtil::LoadAllCommands( m_textRoulette, "MusicWheelItem" );
|
|
||||||
m_textRoulette.LoadFromFont( THEME->GetPathF(sType,"roulette") );
|
|
||||||
ActorUtil::SetXY( m_textRoulette, "MusicWheelItem" );
|
|
||||||
m_textRoulette.SetShadowLength( 0 );
|
|
||||||
m_textRoulette.PlayCommand( "On" );
|
|
||||||
this->AddChild( &m_textRoulette );
|
|
||||||
|
|
||||||
m_textCourse.SetName( "CourseName" );
|
|
||||||
m_textCourse.LoadFromFont( THEME->GetPathF(sType,"course") );
|
|
||||||
LOAD_ALL_COMMANDS_AND_SET_XY( &m_textCourse );
|
|
||||||
this->AddChild( &m_textCourse );
|
|
||||||
|
|
||||||
m_textSort.SetName( "Sort" );
|
|
||||||
m_textSort.LoadFromFont( THEME->GetPathF(sType,"sort") );
|
|
||||||
LOAD_ALL_COMMANDS_AND_SET_XY( &m_textSort );
|
|
||||||
this->AddChild( &m_textSort );
|
|
||||||
|
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
m_pGradeDisplay[p].Load( THEME->GetPathG(sType,"grades") );
|
m_pGradeDisplay[p].Load( THEME->GetPathG(sType,"grades") );
|
||||||
@@ -105,31 +110,37 @@ MusicWheelItem::MusicWheelItem( RString sType ):
|
|||||||
MusicWheelItem::MusicWheelItem( const MusicWheelItem &cpy ):
|
MusicWheelItem::MusicWheelItem( const MusicWheelItem &cpy ):
|
||||||
WheelItemBase( cpy ),
|
WheelItemBase( cpy ),
|
||||||
GRADES_SHOW_MACHINE( cpy.GRADES_SHOW_MACHINE ),
|
GRADES_SHOW_MACHINE( cpy.GRADES_SHOW_MACHINE ),
|
||||||
m_sprSongBar( cpy.m_sprSongBar ),
|
|
||||||
m_sprSectionBar( cpy.m_sprSectionBar ),
|
|
||||||
m_sprExpandedBar( cpy.m_sprExpandedBar ),
|
|
||||||
m_sprModeBar( cpy.m_sprModeBar ),
|
|
||||||
m_sprSortBar( cpy.m_sprSortBar ),
|
|
||||||
m_WheelNotifyIcon( cpy.m_WheelNotifyIcon ),
|
|
||||||
m_TextBanner( cpy.m_TextBanner ),
|
m_TextBanner( cpy.m_TextBanner ),
|
||||||
m_textSection( cpy.m_textSection ),
|
m_WheelNotifyIcon( cpy.m_WheelNotifyIcon )
|
||||||
m_textRoulette( cpy.m_textRoulette ),
|
|
||||||
m_textCourse( cpy.m_textCourse ),
|
|
||||||
m_textSort( cpy.m_textSort )
|
|
||||||
{
|
{
|
||||||
data = NULL;
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
|
{
|
||||||
|
m_sprColorPart[i] = cpy.m_sprColorPart[i];
|
||||||
|
this->AddChild( m_sprColorPart[i] );
|
||||||
|
|
||||||
|
m_sprNormalPart[i] = cpy.m_sprNormalPart[i];
|
||||||
|
this->AddChild( m_sprNormalPart[i] );
|
||||||
|
}
|
||||||
|
|
||||||
this->AddChild( m_sprSongBar );
|
|
||||||
this->AddChild( m_sprSectionBar );
|
|
||||||
this->AddChild( m_sprExpandedBar );
|
|
||||||
this->AddChild( m_sprModeBar );
|
|
||||||
this->AddChild( m_sprSortBar );
|
|
||||||
this->AddChild( &m_WheelNotifyIcon );
|
|
||||||
this->AddChild( &m_TextBanner );
|
this->AddChild( &m_TextBanner );
|
||||||
this->AddChild( &m_textSection );
|
|
||||||
this->AddChild( &m_textRoulette );
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
this->AddChild( &m_textCourse );
|
{
|
||||||
this->AddChild( &m_textSort );
|
if( cpy.m_pText[i] == NULL )
|
||||||
|
{
|
||||||
|
m_pText[i] = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_pText[i] = new BitmapText( *cpy.m_pText[i] );
|
||||||
|
this->AddChild( m_pText[i] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_pTextSectionCount = new BitmapText( *cpy.m_pTextSectionCount );
|
||||||
|
this->AddChild( m_pTextSectionCount );
|
||||||
|
|
||||||
|
this->AddChild( &m_WheelNotifyIcon );
|
||||||
|
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
@@ -142,132 +153,114 @@ MusicWheelItem::~MusicWheelItem()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pWIBD, int iIndex, bool bHasFocus )
|
void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pData, int iIndex, bool bHasFocus )
|
||||||
{
|
{
|
||||||
const WheelItemData *pWID = dynamic_cast<const WheelItemData*>( pWIBD );
|
WheelItemBase::LoadFromWheelItemData( pData, iIndex, bHasFocus );
|
||||||
|
|
||||||
ASSERT( pWID != NULL );
|
|
||||||
data = pWID;
|
|
||||||
|
|
||||||
|
const MusicWheelItemData *pWID = dynamic_cast<const MusicWheelItemData*>( pData );
|
||||||
|
|
||||||
// hide all
|
// hide all
|
||||||
m_WheelNotifyIcon.SetVisible( false );
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
|
{
|
||||||
|
m_sprColorPart[i]->SetVisible( false );
|
||||||
|
m_sprNormalPart[i]->SetVisible( false );
|
||||||
|
}
|
||||||
m_TextBanner.SetVisible( false );
|
m_TextBanner.SetVisible( false );
|
||||||
m_sprSongBar->SetVisible( false );
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
m_sprSectionBar->SetVisible( false );
|
if( m_pText[i] )
|
||||||
m_sprExpandedBar->SetVisible( false );
|
m_pText[i]->SetVisible( false );
|
||||||
m_sprModeBar->SetVisible( false );
|
m_pTextSectionCount->SetVisible( false );
|
||||||
m_sprSortBar->SetVisible( false );
|
m_WheelNotifyIcon.SetVisible( false );
|
||||||
m_textSection.SetVisible( false );
|
|
||||||
m_textRoulette.SetVisible( false );
|
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
m_pGradeDisplay[p]->SetVisible( false );
|
m_pGradeDisplay[p]->SetVisible( false );
|
||||||
m_textCourse.SetVisible( false );
|
|
||||||
m_textSort.SetVisible( false );
|
|
||||||
|
|
||||||
|
|
||||||
// init and unhide type specific stuff
|
// Fill these in below
|
||||||
switch( pWID->m_Type )
|
|
||||||
{
|
|
||||||
DEFAULT_FAIL( pWID->m_Type );
|
|
||||||
case TYPE_SECTION:
|
|
||||||
case TYPE_COURSE:
|
|
||||||
case TYPE_SORT:
|
|
||||||
{
|
|
||||||
RString sDisplayName, sTranslitName;
|
RString sDisplayName, sTranslitName;
|
||||||
BitmapText *bt = NULL;
|
MusicWheelItemType type = MusicWheelItemType_Invalid;
|
||||||
|
|
||||||
switch( pWID->m_Type )
|
switch( pWID->m_Type )
|
||||||
{
|
{
|
||||||
case TYPE_SECTION:
|
|
||||||
sDisplayName = SONGMAN->ShortenGroupName(data->m_sText);
|
|
||||||
bt = &m_textSection;
|
|
||||||
break;
|
|
||||||
case TYPE_COURSE:
|
|
||||||
sDisplayName = data->m_pCourse->GetDisplayFullTitle();
|
|
||||||
sTranslitName = data->m_pCourse->GetTranslitFullTitle();
|
|
||||||
bt = &m_textCourse;
|
|
||||||
m_WheelNotifyIcon.SetFlags( data->m_Flags );
|
|
||||||
m_WheelNotifyIcon.SetVisible( true );
|
|
||||||
break;
|
|
||||||
case TYPE_SORT:
|
|
||||||
sDisplayName = data->m_sLabel;
|
|
||||||
bt = &m_textSort;
|
|
||||||
break;
|
|
||||||
DEFAULT_FAIL( pWID->m_Type );
|
DEFAULT_FAIL( pWID->m_Type );
|
||||||
}
|
|
||||||
|
|
||||||
bt->SetText( sDisplayName, sTranslitName );
|
|
||||||
bt->SetDiffuse( data->m_color );
|
|
||||||
bt->SetRainbowScroll( false );
|
|
||||||
bt->SetVisible( true );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TYPE_SONG:
|
case TYPE_SONG:
|
||||||
m_TextBanner.LoadFromSong( data->m_pSong );
|
type = MusicWheelItemType_Song;
|
||||||
m_TextBanner.SetDiffuse( data->m_color );
|
|
||||||
|
m_TextBanner.SetFromSong( pWID->m_pSong );
|
||||||
|
m_TextBanner.SetDiffuse( pWID->m_color );
|
||||||
m_TextBanner.SetVisible( true );
|
m_TextBanner.SetVisible( true );
|
||||||
|
|
||||||
m_WheelNotifyIcon.SetFlags( data->m_Flags );
|
m_WheelNotifyIcon.SetFlags( pWID->m_Flags );
|
||||||
m_WheelNotifyIcon.SetVisible( true );
|
m_WheelNotifyIcon.SetVisible( true );
|
||||||
RefreshGrades();
|
RefreshGrades();
|
||||||
break;
|
break;
|
||||||
case TYPE_ROULETTE:
|
|
||||||
m_textRoulette.SetText( THEME->GetString("MusicWheel","Roulette") );
|
|
||||||
m_textRoulette.SetVisible( true );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_RANDOM:
|
|
||||||
m_textRoulette.SetText( THEME->GetString("MusicWheel","Random") );
|
|
||||||
m_textRoulette.SetVisible( true );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_PORTAL:
|
|
||||||
m_textRoulette.SetText( THEME->GetString("MusicWheel","Portal") );
|
|
||||||
m_textRoulette.SetVisible( true );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Actor *pBars[] = { m_sprBar, m_sprExpandedBar, m_sprSectionBar, m_sprModeBar, m_sprSortBar, m_sprSongBar, NULL };
|
|
||||||
for( unsigned i = 0; pBars[i] != NULL; ++i )
|
|
||||||
pBars[i]->SetVisible( false );
|
|
||||||
|
|
||||||
switch( data->m_Type )
|
|
||||||
{
|
|
||||||
case TYPE_SECTION:
|
case TYPE_SECTION:
|
||||||
case TYPE_ROULETTE:
|
{
|
||||||
case TYPE_RANDOM:
|
sDisplayName = SONGMAN->ShortenGroupName(pWID->m_sText);
|
||||||
case TYPE_PORTAL:
|
RString sExpandedSectionName;
|
||||||
if( m_bExpanded )
|
|
||||||
m_sprExpandedBar->SetVisible( true );
|
// TODO: Move the expaneded section name into GameState?
|
||||||
|
ScreenSelectMusic *pScreen = dynamic_cast<ScreenSelectMusic*>(SCREENMAN->GetTopScreen() );
|
||||||
|
if( pScreen )
|
||||||
|
sExpandedSectionName = pScreen->GetMusicWheel()->GetExpandedSectionName();
|
||||||
|
if( sExpandedSectionName == pWID->m_sText )
|
||||||
|
type = MusicWheelItemType_SectionExpanded;
|
||||||
else
|
else
|
||||||
m_sprSectionBar->SetVisible( true );
|
type = MusicWheelItemType_SectionCollapsed;
|
||||||
|
|
||||||
|
m_pTextSectionCount->SetText( ssprintf("%d",pWID->m_iSectionCount) );
|
||||||
|
m_pTextSectionCount->SetVisible( true );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case TYPE_COURSE:
|
||||||
|
sDisplayName = pWID->m_pCourse->GetDisplayFullTitle();
|
||||||
|
sTranslitName = pWID->m_pCourse->GetTranslitFullTitle();
|
||||||
|
type = MusicWheelItemType_Course;
|
||||||
|
m_WheelNotifyIcon.SetFlags( pWID->m_Flags );
|
||||||
|
m_WheelNotifyIcon.SetVisible( true );
|
||||||
break;
|
break;
|
||||||
case TYPE_SORT:
|
case TYPE_SORT:
|
||||||
if( pWID->m_pAction->m_pm != PlayMode_Invalid )
|
sDisplayName = pWID->m_sLabel;
|
||||||
m_sprModeBar->SetVisible( true );
|
type = MusicWheelItemType_Sort;
|
||||||
else
|
|
||||||
m_sprSortBar->SetVisible( true );
|
|
||||||
break;
|
break;
|
||||||
case TYPE_SONG:
|
case TYPE_ROULETTE:
|
||||||
case TYPE_COURSE:
|
sDisplayName = THEME->GetString("MusicWheel","Roulette");
|
||||||
m_sprSongBar->SetVisible( true );
|
type = MusicWheelItemType_Roulette;
|
||||||
|
break;
|
||||||
|
case TYPE_RANDOM:
|
||||||
|
sDisplayName = THEME->GetString("MusicWheel","Random");
|
||||||
|
type = MusicWheelItemType_Roulette;
|
||||||
|
break;
|
||||||
|
case TYPE_PORTAL:
|
||||||
|
sDisplayName = THEME->GetString("MusicWheel","Portal");
|
||||||
|
type = MusicWheelItemType_Roulette;
|
||||||
break;
|
break;
|
||||||
DEFAULT_FAIL( data->m_Type );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for( unsigned i = 0; pBars[i] != NULL; ++i )
|
m_sprColorPart[type]->SetVisible( true );
|
||||||
|
m_sprColorPart[type]->SetDiffuse( pWID->m_color );
|
||||||
|
m_sprNormalPart[type]->SetVisible( true );
|
||||||
|
BitmapText *bt = m_pText[type];
|
||||||
|
if( bt )
|
||||||
{
|
{
|
||||||
if( !pBars[i]->GetVisible() )
|
bt->SetText( sDisplayName, sTranslitName );
|
||||||
continue;
|
bt->SetDiffuse( pWID->m_color );
|
||||||
SetGrayBar( pBars[i] );
|
bt->SetVisible( true );
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call "Set" so that elements can react to the change in song.
|
FOREACH_ENUM( MusicWheelItemType, i )
|
||||||
|
{
|
||||||
|
if( m_sprColorPart[i]->GetVisible() )
|
||||||
|
{
|
||||||
|
SetGrayBar( m_sprColorPart[i] );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call "Set" so that elements like TextBanner react to the change in song.
|
||||||
{
|
{
|
||||||
Message msg( "Set" );
|
Message msg( "Set" );
|
||||||
msg.SetParam( "Song", data->m_pSong );
|
msg.SetParam( "Song", pWID->m_pSong );
|
||||||
msg.SetParam( "Course", data->m_pCourse );
|
msg.SetParam( "Course", pWID->m_pCourse );
|
||||||
msg.SetParam( "Index", iIndex );
|
msg.SetParam( "Index", iIndex );
|
||||||
msg.SetParam( "HasFocus", bHasFocus );
|
msg.SetParam( "HasFocus", bHasFocus );
|
||||||
msg.SetParam( "SongGroup", pWID->m_sText );
|
msg.SetParam( "SongGroup", pWID->m_sText );
|
||||||
@@ -277,13 +270,15 @@ void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pWIBD, int
|
|||||||
|
|
||||||
void MusicWheelItem::RefreshGrades()
|
void MusicWheelItem::RefreshGrades()
|
||||||
{
|
{
|
||||||
if( data == NULL )
|
const MusicWheelItemData *pWID = dynamic_cast<const MusicWheelItemData*>( m_pData );
|
||||||
|
|
||||||
|
if( pWID == NULL )
|
||||||
return; // LoadFromWheelItemData() hasn't been called yet.
|
return; // LoadFromWheelItemData() hasn't been called yet.
|
||||||
FOREACH_HumanPlayer( p )
|
FOREACH_HumanPlayer( p )
|
||||||
{
|
{
|
||||||
m_pGradeDisplay[p]->SetVisible( false );
|
m_pGradeDisplay[p]->SetVisible( false );
|
||||||
|
|
||||||
if( data->m_pSong == NULL && data->m_pCourse == NULL )
|
if( pWID->m_pSong == NULL && pWID->m_pCourse == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Difficulty dc;
|
Difficulty dc;
|
||||||
@@ -310,17 +305,17 @@ void MusicWheelItem::RefreshGrades()
|
|||||||
HighScoreList *pHSL = NULL;
|
HighScoreList *pHSL = NULL;
|
||||||
if( PROFILEMAN->IsPersistentProfile(ps) && dc != Difficulty_Invalid )
|
if( PROFILEMAN->IsPersistentProfile(ps) && dc != Difficulty_Invalid )
|
||||||
{
|
{
|
||||||
if( data->m_pSong )
|
if( pWID->m_pSong )
|
||||||
{
|
{
|
||||||
const Steps* pSteps = SongUtil::GetStepsByDifficulty( data->m_pSong, GAMESTATE->GetCurrentStyle()->m_StepsType, dc );
|
const Steps* pSteps = SongUtil::GetStepsByDifficulty( pWID->m_pSong, GAMESTATE->GetCurrentStyle()->m_StepsType, dc );
|
||||||
if( pSteps != NULL )
|
if( pSteps != NULL )
|
||||||
pHSL = &pProfile->GetStepsHighScoreList(data->m_pSong, pSteps);
|
pHSL = &pProfile->GetStepsHighScoreList(pWID->m_pSong, pSteps);
|
||||||
}
|
}
|
||||||
else if( data->m_pCourse )
|
else if( pWID->m_pCourse )
|
||||||
{
|
{
|
||||||
const Trail *pTrail = data->m_pCourse->GetTrail( GAMESTATE->GetCurrentStyle()->m_StepsType, dc );
|
const Trail *pTrail = pWID->m_pCourse->GetTrail( GAMESTATE->GetCurrentStyle()->m_StepsType, dc );
|
||||||
if( pTrail != NULL )
|
if( pTrail != NULL )
|
||||||
pHSL = &pProfile->GetCourseHighScoreList( data->m_pCourse, pTrail );
|
pHSL = &pProfile->GetCourseHighScoreList( pWID->m_pCourse, pTrail );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,21 @@
|
|||||||
class Course;
|
class Course;
|
||||||
class Song;
|
class Song;
|
||||||
|
|
||||||
struct WheelItemData;
|
struct MusicWheelItemData;
|
||||||
|
|
||||||
|
enum MusicWheelItemType
|
||||||
|
{
|
||||||
|
MusicWheelItemType_Song,
|
||||||
|
MusicWheelItemType_SectionExpanded,
|
||||||
|
MusicWheelItemType_SectionCollapsed,
|
||||||
|
MusicWheelItemType_Roulette,
|
||||||
|
MusicWheelItemType_Course,
|
||||||
|
MusicWheelItemType_Sort,
|
||||||
|
MusicWheelItemType_Mode,
|
||||||
|
NUM_MusicWheelItemType,
|
||||||
|
MusicWheelItemType_Invalid,
|
||||||
|
};
|
||||||
|
const RString& MusicWheelItemTypeToString( MusicWheelItemType i );
|
||||||
|
|
||||||
class MusicWheelItem : public WheelItemBase
|
class MusicWheelItem : public WheelItemBase
|
||||||
{
|
{
|
||||||
@@ -30,34 +44,32 @@ public:
|
|||||||
virtual void HandleMessage( const Message &msg );
|
virtual void HandleMessage( const Message &msg );
|
||||||
void RefreshGrades();
|
void RefreshGrades();
|
||||||
|
|
||||||
const WheelItemData *data;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ThemeMetric<bool> GRADES_SHOW_MACHINE;
|
ThemeMetric<bool> GRADES_SHOW_MACHINE;
|
||||||
|
|
||||||
AutoActor m_sprSongBar;
|
AutoActor m_sprColorPart[NUM_MusicWheelItemType];
|
||||||
AutoActor m_sprSectionBar;
|
AutoActor m_sprNormalPart[NUM_MusicWheelItemType];
|
||||||
AutoActor m_sprExpandedBar;
|
|
||||||
AutoActor m_sprModeBar;
|
TextBanner m_TextBanner; // used by Type_Song instead of m_pText
|
||||||
AutoActor m_sprSortBar;
|
BitmapText *m_pText[NUM_MusicWheelItemType];
|
||||||
|
BitmapText *m_pTextSectionCount;
|
||||||
|
|
||||||
WheelNotifyIcon m_WheelNotifyIcon;
|
WheelNotifyIcon m_WheelNotifyIcon;
|
||||||
TextBanner m_TextBanner;
|
|
||||||
BitmapText m_textSection;
|
|
||||||
BitmapText m_textRoulette;
|
|
||||||
BitmapText m_textCourse;
|
|
||||||
BitmapText m_textSort;
|
|
||||||
AutoActor m_pGradeDisplay[NUM_PLAYERS];
|
AutoActor m_pGradeDisplay[NUM_PLAYERS];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct WheelItemData : public WheelItemBaseData
|
struct MusicWheelItemData : public WheelItemBaseData
|
||||||
{
|
{
|
||||||
WheelItemData() {}
|
MusicWheelItemData() : m_iSectionCount(0) { }
|
||||||
WheelItemData( WheelItemType wit, Song* pSong, RString sSectionName, Course* pCourse, RageColor color );
|
MusicWheelItemData( WheelItemDataType type, Song* pSong, RString sSectionName, Course* pCourse, RageColor color, int iSectionCount );
|
||||||
|
|
||||||
Course* m_pCourse;
|
Course* m_pCourse;
|
||||||
Song* m_pSong;
|
Song* m_pSong;
|
||||||
WheelNotifyIcon::Flags m_Flags;
|
WheelNotifyIcon::Flags m_Flags;
|
||||||
|
|
||||||
|
// for TYPE_SORT
|
||||||
|
int m_iSectionCount;
|
||||||
|
|
||||||
// for TYPE_SORT
|
// for TYPE_SORT
|
||||||
RString m_sLabel;
|
RString m_sLabel;
|
||||||
HiddenPtr<GameCommand> m_pAction;
|
HiddenPtr<GameCommand> m_pAction;
|
||||||
|
|||||||
Reference in New Issue
Block a user