From 7589a61591674e81597ba30644d5a4e85def4c0b Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 10 Nov 2003 18:57:29 +0000 Subject: [PATCH] simplify and fix ScreenSelectMaster::MenuStart --- stepmania/src/ScreenSelectMaster.cpp | 66 ++++++++++++---------------- stepmania/src/ScreenSelectMaster.h | 1 + 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index b7be2d7b1d..e68506e3ef 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -414,52 +414,44 @@ ScreenSelectMaster::Page ScreenSelectMaster::GetCurrentPage() } +float ScreenSelectMaster::DoMenuStart( PlayerNumber pn ) +{ + if( m_bChosen[pn] == true ) + return 0; + m_bChosen[pn] = true; + + float fSecs = 0; + for( int page=0; page 0 ) return; - if( m_bChosen[pn] == true ) - return; - m_bChosen[pn] = true; - for( int page=0; pagePlayOnceFromDir( ANNOUNCER->GetPathTo(ssprintf("%s comment %s",m_sName.c_str(), mc.m_sName.c_str())) ); - m_soundSelect.Play(); - } - - if( GetCurrentPage() == PAGE_2 ) - { - // choose this for all the other players too - for( p=0; pIsHumanPlayer(p) && !m_bChosen[p] ) - MenuStart( (PlayerNumber)p ); - } - - float fSecs = 0; - - for( int i=0; iPlayOnceFromDir( ANNOUNCER->GetPathTo(ssprintf("%s comment %s",m_sName.c_str(), m_aModeChoices[m_iChoice[pn]].m_sName.c_str())) ); + m_soundSelect.Play(); bool bAllDone = true; - - /* If SHARED_PREVIEW_AND_CURSOR, only one player has to pick. */ - if( !SHARED_PREVIEW_AND_CURSOR ) + float fSecs = 0; + if( SHARED_PREVIEW_AND_CURSOR || GetCurrentPage() == PAGE_2 ) { + /* Only one player has to pick. Choose this for all the other players, too. */ + for( int p=0; pIsHumanPlayer(p) ) + { + ASSERT( !m_bChosen[p] ); + fSecs = max( fSecs, DoMenuStart( (PlayerNumber)p ) ); + } + } else { + fSecs = max( fSecs, DoMenuStart(pn) ); // check to see if everyone has chosen - for( p=0; pIsHumanPlayer((PlayerNumber)p) ) bAllDone &= m_bChosen[p]; } diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index 0078a3aeb8..24ed6ca56d 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -48,6 +48,7 @@ protected: bool Move( PlayerNumber pn, int dir ); bool ChangePage( int iNewChoice ); bool ChangeSelection( PlayerNumber pn, int iNewChoice ); + float DoMenuStart( PlayerNumber pn ); float GetCursorX( PlayerNumber pn, int iPartIndex ); float GetCursorY( PlayerNumber pn, int iPartIndex );