diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index 54b001785f..19adb41807 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -41,6 +41,8 @@ const ScreenMessage SM_PlayPostSwitchPage = (ScreenMessage)(SM_User+1); REGISTER_SCREEN_CLASS( ScreenSelectMaster ); ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sClassName ) { + + // TODO: Move default choice to ScreenSelect int iDefaultChoice = -1; for( unsigned c=0; cGetPathToG(sFName) ); - this->AddChild( &m_sprCursor[i][0] ); + m_sprCursor[i][0]->SetName( ssprintf("CursorPart%d",i+1) ); + this->AddChild( m_sprCursor[i][0] ); } } else @@ -77,9 +79,9 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl FOREACH_HumanPlayer( p ) { CString sFName = ssprintf("%s Cursor Part%d P%d", m_sName.c_str(),i+1,p+1); - m_sprCursor[i][p].SetName( ssprintf("CursorPart%dP%d",i+1,p+1) ); m_sprCursor[i][p].Load( THEME->GetPathToG(sFName) ); - this->AddChild( &m_sprCursor[i][p] ); + m_sprCursor[i][p]->SetName( ssprintf("CursorPart%dP%d",i+1,p+1) ); + this->AddChild( m_sprCursor[i][p] ); } } } @@ -178,9 +180,9 @@ ScreenSelectMaster::ScreenSelectMaster( CString sClassName ) : ScreenSelect( sCl for( int page=0; pageGetPathToG( ssprintf("%s more page%d",m_sName.c_str(), page+1) ) ); - this->AddChild( &m_sprMore[page] ); + m_sprMore[page]->SetName( ssprintf("MorePage%d",page+1) ); + this->AddChild( m_sprMore[page] ); m_sprExplanation[page].Load( THEME->GetPathToG( ssprintf("%s explanation page%d",m_sName.c_str(), page+1) ) ); m_sprExplanation[page]->SetName( ssprintf("ExplanationPage%d",page+1) ); @@ -278,7 +280,7 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM ) { for( int i=0; iSetXY( GetCursorX((PlayerNumber)0,i), GetCursorY((PlayerNumber)0,i) ); COMMAND( m_sprCursor[i][0], "PostSwitchPage" ); } } @@ -287,7 +289,7 @@ void ScreenSelectMaster::HandleScreenMessage( const ScreenMessage SM ) for( int i=0; iSetXY( GetCursorX(p,i), GetCursorY(p,i) ); COMMAND( m_sprCursor[i][p], "PostSwitchPage" ); } } @@ -333,13 +335,10 @@ void ScreenSelectMaster::UpdateSelectableChoices() for( int i=0; iIsHumanPlayer(p) ) - continue; - if( !m_aGameCommands[m_iChoice[p]].IsPlayable() ) - Move( (PlayerNumber) p, DIR_AUTO ); + Move( p, DIR_AUTO ); ASSERT( m_aGameCommands[m_iChoice[p]].IsPlayable() ); } } @@ -521,7 +520,7 @@ bool ScreenSelectMaster::ChangeSelection( PlayerNumber pn, int iNewChoice ) for( int i=0; iSetXY( GetCursorX((PlayerNumber)0,i), GetCursorY((PlayerNumber)0,i) ); } } else @@ -529,7 +528,7 @@ bool ScreenSelectMaster::ChangeSelection( PlayerNumber pn, int iNewChoice ) for( int i=0; iSetXY( GetCursorX(p,i), GetCursorY(p,i) ); } } @@ -576,13 +575,13 @@ float ScreenSelectMaster::DoMenuStart( PlayerNumber pn ) for( int page=0; pageGetTweenTimeLeft() ); } for( int i=0; iGetTweenTimeLeft() ); } return fSecs; @@ -672,7 +671,7 @@ void ScreenSelectMaster::TweenOnScreen() { for( int i=0; iSetXY( GetCursorX((PlayerNumber)0,i), GetCursorY((PlayerNumber)0,i) ); ON_COMMAND( m_sprCursor[i][0] ); } } @@ -681,7 +680,7 @@ void ScreenSelectMaster::TweenOnScreen() for( int i=0; iSetXY( GetCursorX(p,i), GetCursorY(p,i) ); ON_COMMAND( m_sprCursor[i][p] ); } } @@ -710,7 +709,7 @@ void ScreenSelectMaster::TweenOnScreen() for (int page=0;pageSetXY(999,999); m_sprExplanation[page]->SetXY(999,999); } diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index db81fd5487..fb5a7b092f 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -9,6 +9,8 @@ #include "ActorUtil.h" #include "ActorScroller.h" +#define MAX_CHOICES 30 + class ScreenSelectMaster : public ScreenSelect { public: @@ -55,7 +57,7 @@ protected: float GetCursorY( PlayerNumber pn, int iPartIndex ); AutoActor m_sprExplanation[NUM_PAGES]; - Sprite m_sprMore[NUM_PAGES]; + AutoActor m_sprMore[NUM_PAGES]; #define MAX_ICON_PARTS 3 // icon is the piece shared, per-choice piece AutoActor m_sprIcon[MAX_ICON_PARTS][MAX_CHOICES]; @@ -64,7 +66,7 @@ protected: AutoActor m_sprPreview[MAX_PREVIEW_PARTS][MAX_CHOICES][NUM_PLAYERS]; #define MAX_CURSOR_PARTS 3 // cursor is the per-player that's shared by all choices - Sprite m_sprCursor[MAX_CURSOR_PARTS][NUM_PLAYERS]; + AutoActor m_sprCursor[MAX_CURSOR_PARTS][NUM_PLAYERS]; // scroll is the per-player, per-choice piece that's scrolled AutoActor m_sprScroll[MAX_CHOICES][NUM_PLAYERS]; ActorScroller m_Scroller[NUM_PLAYERS];