Move extra stage setting player options to SSMusic.

This commit is contained in:
Steve Checkoway
2006-08-06 23:34:33 +00:00
parent 9480321254
commit 387b1397c1
2 changed files with 32 additions and 28 deletions
+31 -2
View File
@@ -288,9 +288,38 @@ void ScreenSelectMusic::Init()
void ScreenSelectMusic::BeginScreen()
{
ScreenWithMenuElements::BeginScreen();
// Set up extra stage mods.
if( GAMESTATE->IsAnExtraStage() )
{
// make the preferred group the group of the last song played.
if( GAMESTATE->m_sPreferredSongGroup == GROUP_ALL && !PREFSMAN->m_bPickExtraStage )
{
ASSERT( GAMESTATE->m_pCurSong );
GAMESTATE->m_sPreferredSongGroup.Set( GAMESTATE->m_pCurSong->m_sGroupName );
}
Song* pSong;
Steps* pSteps;
PlayerOptions po;
SongOptions so;
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pSong, pSteps, &po, &so );
GAMESTATE->m_pCurSong.Set( pSong );
GAMESTATE->m_pPreferredSong = pSong;
FOREACH_HumanPlayer( pn )
{
GAMESTATE->m_pCurSteps[pn].Set( pSteps );
GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.Assign( ModsLevel_Stage, po );
GAMESTATE->m_PreferredDifficulty[pn].Set( pSteps->GetDifficulty() );
MESSAGEMAN->Broadcast( ssprintf("PlayerOptionsChangedP%i", pn+1) );
}
GAMESTATE->m_SongOptions.Assign( ModsLevel_Stage, so );
MESSAGEMAN->Broadcast( "SongOptionsChanged" );
}
// XXX BeginScreen?
m_MusicWheel.BeginScreen();
m_bMadeChoice = false;
m_bGoToOptions = false;
m_bAllowOptionsMenu = m_bAllowOptionsMenuRepeat = false;