diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index 37a7db1380..0648ef7bad 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -421,7 +421,9 @@ float ArrowGetZoom( PlayerNumber pn ) { /* Hack: make STYLE_TECHNO_VERSUS8 fit. */ if( GAMESTATE->m_CurGame == GAME_TECHNO && - GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 ) + ( GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 + || GAMESTATE->m_PlayMode == PLAY_MODE_BATTLE + || GAMESTATE->m_PlayMode == PLAY_MODE_RAVE ) ) return 0.6f; return 1.0f; } diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index fe0faab2b5..24c93d1ce5 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -780,6 +780,13 @@ GameDef* GameState::GetCurrentGameDef() const StyleDef* GameState::GetCurrentStyleDef() const { ASSERT( m_CurStyle != STYLE_INVALID ); // the style must be set before calling this + + // HACK: if we're in TM doing PLAY_MODE_BATTLE or PLAY_MODE_RAVE, + // pretend that we're doing STYLE_TECHNO_VERSUS8 instead. + if( m_CurGame == GAME_TECHNO && + ( m_PlayMode == PLAY_MODE_BATTLE || m_PlayMode == PLAY_MODE_RAVE ) ) + return GAMEMAN->GetStyleDefForStyle( STYLE_TECHNO_VERSUS8 ); + return GAMEMAN->GetStyleDefForStyle( m_CurStyle ); } diff --git a/stepmania/src/ModeChoice.cpp b/stepmania/src/ModeChoice.cpp index e273b74edd..8852956513 100644 --- a/stepmania/src/ModeChoice.cpp +++ b/stepmania/src/ModeChoice.cpp @@ -268,7 +268,8 @@ static bool AreStyleAndPlayModeCompatible( Style style, PlayMode pm ) // 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 ) + // Techno Motion scales down versus arrows, though, so allow this. + if( GAMEMAN->GetStyleDefForStyle(style)->m_iColsPerPlayer >= 6 && GAMESTATE->m_CurGame != GAME_TECHNO ) return false; /* Don't allow battle modes if the style takes both sides. */ @@ -407,6 +408,7 @@ void ModeChoice::Apply( PlayerNumber pn ) const GAMESTATE->m_CurGame = m_game; if( m_pm != PLAY_MODE_INVALID ) GAMESTATE->m_PlayMode = m_pm; + if( m_style != STYLE_INVALID ) { GAMESTATE->m_CurStyle = m_style; @@ -479,7 +481,6 @@ void ModeChoice::Apply( PlayerNumber pn ) const { GAMESTATE->PlayersFinalized(); } - } bool ModeChoice::IsZero() const