From 9609f5303a64590661708155d924e69397402b3d Mon Sep 17 00:00:00 2001 From: Geoff Benson Date: Wed, 23 Jun 2004 22:18:22 +0000 Subject: [PATCH] Added support for Dance Magic/Battle on Techno Motion 8-panel. Kind of hacky, but perhaps it will inspire others. --- stepmania/src/ArrowEffects.cpp | 4 +++- stepmania/src/GameState.cpp | 7 +++++++ stepmania/src/ModeChoice.cpp | 5 +++-- 3 files changed, 13 insertions(+), 3 deletions(-) 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