ExtraStage doesn't happen in courses.

Don't set the stage mods to the preferred mods in extra stages because those mods have already been set in SSMusic. Any changes to preferred mods afterward will propagate to the stage mods anyway.
This commit is contained in:
Steve Checkoway
2006-08-07 00:17:33 +00:00
parent 387b1397c1
commit 5e68924991
+10 -6
View File
@@ -484,9 +484,13 @@ void GameState::BeginStage()
ResetStageStatistics();
FOREACH_PlayerNumber( p )
m_pPlayerState[p]->m_PlayerOptions.Assign( ModsLevel_Stage, m_pPlayerState[p]->m_PlayerOptions.GetPreferred() );
m_SongOptions.Assign( ModsLevel_Stage, m_SongOptions.GetPreferred() );
// Stage mods for extra stage have already been set. Don't overwrite preferred.
if( !IsAnExtraStage() )
{
FOREACH_PlayerNumber( p )
m_pPlayerState[p]->m_PlayerOptions.Assign( ModsLevel_Stage, m_pPlayerState[p]->m_PlayerOptions.GetPreferred() );
m_SongOptions.Assign( ModsLevel_Stage, m_SongOptions.GetPreferred() );
}
m_iNumStagesOfThisSong = GetNumStagesForCurrentSong();
ASSERT( m_iNumStagesOfThisSong != -1 );
@@ -712,17 +716,17 @@ bool GameState::IsFinalStage() const
bool GameState::IsAnExtraStage() const
{
return !IsEventMode() && m_iCurrentStageIndex >= PREFSMAN->m_iSongsPerPlay;
return !IsEventMode() && !IsCourseMode() && m_iCurrentStageIndex >= PREFSMAN->m_iSongsPerPlay;
}
bool GameState::IsExtraStage() const
{
return !IsEventMode() && m_iCurrentStageIndex == PREFSMAN->m_iSongsPerPlay;
return !IsEventMode() && !IsCourseMode() && m_iCurrentStageIndex == PREFSMAN->m_iSongsPerPlay;
}
bool GameState::IsExtraStage2() const
{
return !IsEventMode() && m_iCurrentStageIndex == PREFSMAN->m_iSongsPerPlay+1;
return !IsEventMode() && !IsCourseMode() && m_iCurrentStageIndex == PREFSMAN->m_iSongsPerPlay+1;
}
Stage GameState::GetCurrentStage() const