Don't track the individual stage with Stage; use the stage index for that.

(Reducing the usage of the "stage" concept.  It conflicts with overlapped
play.)
This commit is contained in:
Glenn Maynard
2007-04-25 01:11:50 +00:00
parent 1c203eb4f6
commit ccc19fa60b
4 changed files with 6 additions and 31 deletions
+1 -14
View File
@@ -941,10 +941,9 @@ Stage GameState::GetCurrentStage() const
else if( m_PlayMode == PLAY_MODE_ONI ) return STAGE_ONI;
else if( m_PlayMode == PLAY_MODE_NONSTOP ) return STAGE_NONSTOP;
else if( m_PlayMode == PLAY_MODE_ENDLESS ) return STAGE_ENDLESS;
else if( IsFinalStage() ) return STAGE_FINAL;
else if( IsExtraStage() ) return STAGE_EXTRA1;
else if( IsExtraStage2() ) return STAGE_EXTRA2;
else return enum_add2( STAGE_1, GetLargestCurrentStageIndexForAnyHumanPlayer() );
else return STAGE_NORMAL;
}
// Return true if it's possible for GetCurrentStage() to return the given stage.
@@ -958,18 +957,6 @@ bool GameState::IsStagePossible( Stage s ) const
Stage actual = GAMESTATE->GetCurrentStage();
GAMESTATE->m_pCurSong.SetWithoutBroadcast( pSong );
/* Check long/marathon, which can change the stage to FINAL. */
if( s == STAGE_FINAL && actual >= STAGE_1 && actual <= STAGE_FINAL )
{
Stage max_actual = actual;
// For long/marathon songs:
enum_add( max_actual, +2 );
if( max_actual >= STAGE_FINAL )
return true;
}
return s == actual;
}