no battle in doubles

This commit is contained in:
Glenn Maynard
2004-03-20 18:11:17 +00:00
parent a2a7b51d1b
commit d9daa9fc04
+27 -10
View File
@@ -211,6 +211,30 @@ int GetSidesRequiredToPlayStyle( Style style )
} }
} }
static bool AreStyleAndPlayModeCompatible( Style style, PlayMode pm )
{
if( style == STYLE_INVALID || pm == PLAY_MODE_INVALID )
return true;
switch( pm )
{
case PLAY_MODE_BATTLE:
case PLAY_MODE_RAVE:
// Can't play rave if there isn't enough room for two players.
// This is correct for dance (ie, no rave for solo and doubles),
// and should be okay for pump .. not sure about other game types.
if( GAMEMAN->GetStyleDefForStyle(style)->m_iColsPerPlayer >= 6 )
return false;
/* Don't allow battle modes if the style takes both sides. */
const StyleDef *sd = GAMEMAN->GetStyleDefForStyle( style );
if( sd->m_StyleType==StyleDef::ONE_PLAYER_TWO_CREDITS )
return false;
}
return true;
}
bool ModeChoice::IsPlayable( CString *why ) const bool ModeChoice::IsPlayable( CString *why ) const
{ {
if( m_bInvalid ) if( m_bInvalid )
@@ -230,16 +254,9 @@ bool ModeChoice::IsPlayable( CString *why ) const
if( m_pm != PLAY_MODE_INVALID || m_style != STYLE_INVALID ) if( m_pm != PLAY_MODE_INVALID || m_style != STYLE_INVALID )
{ {
const PlayMode pm = (m_pm != PLAY_MODE_INVALID) ? m_pm : GAMESTATE->m_PlayMode; const PlayMode pm = (m_pm != PLAY_MODE_INVALID) ? m_pm : GAMESTATE->m_PlayMode;
if( pm == PLAY_MODE_RAVE || pm == PLAY_MODE_BATTLE ) const Style style = (m_style != STYLE_INVALID)? m_style: GAMESTATE->m_CurStyle;
{ if( !AreStyleAndPlayModeCompatible( style, pm ) )
// Can't play rave if there isn't enough room for two players. return false;
// This is correct for dance (ie, no rave for solo and doubles),
// and should be okay for pump .. not sure about other game types.
const Style &style = m_style != STYLE_INVALID? m_style: GAMESTATE->m_CurStyle;
if( style != STYLE_INVALID &&
GAMEMAN->GetStyleDefForStyle(style)->m_iColsPerPlayer >= 6 )
return false;
}
} }
if( !m_sScreen.CompareNoCase("ScreenEditCoursesMenu") ) if( !m_sScreen.CompareNoCase("ScreenEditCoursesMenu") )