From 5e68924991ac94064da86f1c0aaa7c15c663ee34 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Mon, 7 Aug 2006 00:17:33 +0000 Subject: [PATCH] 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. --- stepmania/src/GameState.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index b98ed0210f..900498df30 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -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