Move extra stage setting player options to SSMusic.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user