diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index 48f3e6bdad..4ee385600c 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -77,9 +77,9 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl for( i=0; iGetPathToG(sFName) ); - this->AddChild( &m_sprIcon[i][c] ); + m_sprIcon[i][c]->SetName( ssprintf("IconPart%dChoice%d",i+1,c+1) ); + this->AddChild( m_sprIcon[i][c] ); } if( SHARED_PREVIEW_AND_CURSOR ) @@ -87,9 +87,9 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl for( i=0; iGetPathToG(sFName) ); - this->AddChild( &m_sprPreview[i][c][0] ); + m_sprPreview[i][c][0]->SetName( ssprintf("PreviewPart%d",i+1) ); + this->AddChild( m_sprPreview[i][c][0] ); } } else @@ -101,9 +101,9 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl if( !GAMESTATE->IsPlayerEnabled(p) ) continue; // skip CString sFName = ssprintf("%s Preview Part%d Choice%d P%d", m_sName.c_str(),i+1,c+1,p+1); - m_sprPreview[i][c][p].SetName( ssprintf("PreviewPart%dP%d",i+1,p+1) ); m_sprPreview[i][c][p].Load( THEME->GetPathToG(sFName) ); - this->AddChild( &m_sprPreview[i][c][p] ); + m_sprPreview[i][c][p]->SetName( ssprintf("PreviewPart%dP%d",i+1,p+1) ); + this->AddChild( m_sprPreview[i][c][p] ); } } } @@ -206,10 +206,10 @@ void ScreenSelectMaster::UpdateSelectableChoices() { if( m_aModeChoices[c].IsPlayable() ) for( int i=0; iSetDiffuse( RageColor(1,1,1,1) ); else for( int i=0; iSetDiffuse( DISABLED_COLOR ); } for( int p=0; pFinishTweening(); + } + + } if( SHARED_PREVIEW_AND_CURSOR ) { int p=0; for( int i=0; iFinishTweening(); } } else @@ -465,11 +483,12 @@ float ScreenSelectMaster::TweenOnScreen() if( GAMESTATE->IsPlayerEnabled(p) ) for( int i=0; iFinishTweening(); } } } @@ -482,9 +501,16 @@ float ScreenSelectMaster::TweenOnScreen() else { for( int p=0; pIsPlayerEnabled(p) ) + { + if( !GAMESTATE->IsPlayerEnabled(p) ) + continue; + for( int c=0; c<(int) m_aModeChoices.size(); c++ ) for( int i=0; iGetX() + CURSOR_OFFSET_X_FROM_ICON(pn, iPartIndex); } float ScreenSelectMaster::GetCursorY( PlayerNumber pn, int iPartIndex ) { - return m_sprIcon[0][m_iChoice[pn]].GetY() + CURSOR_OFFSET_Y_FROM_ICON(pn, iPartIndex); + return m_sprIcon[0][m_iChoice[pn]]->GetY() + CURSOR_OFFSET_Y_FROM_ICON(pn, iPartIndex); } diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index 92e3e098a4..fc4c6210ab 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -17,6 +17,7 @@ #include "BitmapText.h" #include "RageSound.h" #include "RandomSample.h" +#include "ActorUtil.h" class ScreenSelectMaster : public ScreenSelect { @@ -53,9 +54,9 @@ protected: Sprite m_sprExplanation[NUM_PAGES]; Sprite m_sprMore[NUM_PAGES]; #define MAX_ICON_PARTS 3 - Sprite m_sprIcon[MAX_ICON_PARTS][MAX_CHOICES]; + AutoActor m_sprIcon[MAX_ICON_PARTS][MAX_CHOICES]; #define MAX_PREVIEW_PARTS 3 - Sprite m_sprPreview[MAX_PREVIEW_PARTS][MAX_CHOICES][NUM_PLAYERS]; + AutoActor m_sprPreview[MAX_PREVIEW_PARTS][MAX_CHOICES][NUM_PLAYERS]; #define MAX_CURSOR_PARTS 3 Sprite m_sprCursor[MAX_CURSOR_PARTS][NUM_PLAYERS];