From 0285f7687f95c9849be97585399bbc379205dfee Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sun, 7 Aug 2011 18:33:35 -0500 Subject: [PATCH] [GameState, SongUtil] Fix Issue 263 by not charging 2x stages for doubles when not using joint premium. --- Docs/Changelog_sm5.txt | 2 ++ src/GameState.cpp | 23 +---------------------- src/SongUtil.cpp | 2 +- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 3b35cfac8a..df2db06e55 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -13,6 +13,8 @@ StepMania 5.0 Preview 3 | 20110??? * [LifeMeterBattery] Added LostLife param to LifeChanged message. [AJ] * [LifeMeterBattery] Converted LifeMeterBattery lives to an AutoActor. [AJ] * [TimingData] Add HasDelays() Lua binding; HasStops() now only checks stops. [AJ] +* [GameState, SongUtil] Fix Issue 263 by not charging 2x stages for doubles when + not using joint premium. [AJ] 2011/08/06 ---------- diff --git a/src/GameState.cpp b/src/GameState.cpp index 5e4e1ebd39..6f1d86f97b 100644 --- a/src/GameState.cpp +++ b/src/GameState.cpp @@ -630,27 +630,6 @@ int GameState::GetNumStagesMultiplierForSong( const Song* pSong ) return iNumStages; } -int GameState::GetNumStagesForSongAndStyleType( const Song* pSong, StyleType st ) -{ - int iNumStages = GetNumStagesMultiplierForSong( pSong ); - - // One player, two-sides styles cost extra - switch( st ) - { - DEFAULT_FAIL( st ); - case StyleType_OnePlayerTwoSides: - if( g_Premium == Premium_Off ) - iNumStages *= 2; - break; - case StyleType_TwoPlayersTwoSides: - case StyleType_OnePlayerOneSide: - case StyleType_TwoPlayersSharedSides: - break; - } - - return iNumStages; -} - int GameState::GetNumStagesForCurrentSongAndStepsOrCourse() const { int iNumStagesOfThisSong = 1; @@ -688,7 +667,7 @@ int GameState::GetNumStagesForCurrentSongAndStepsOrCourse() const if( IsAnExtraStage() ) iNumStagesOfThisSong = 1; else - iNumStagesOfThisSong = GameState::GetNumStagesForSongAndStyleType( m_pCurSong, pStyle->m_StyleType ); + iNumStagesOfThisSong = GameState::GetNumStagesMultiplierForSong( m_pCurSong ); } else if( m_pCurCourse ) iNumStagesOfThisSong = PREFSMAN->m_iSongsPerPlay; diff --git a/src/SongUtil.cpp b/src/SongUtil.cpp index a585aa663c..0d01495931 100644 --- a/src/SongUtil.cpp +++ b/src/SongUtil.cpp @@ -975,7 +975,7 @@ void SongUtil::GetPlayableStepsTypes( const Song *pSong, set &vOut ) const Style *pStyle = GAMEMAN->GetFirstCompatibleStyle( GAMESTATE->m_pCurGame, iNumPlayers, *st ); bool bEnoughStages = GAMESTATE->IsAnExtraStage() || GAMESTATE->GetSmallestNumStagesLeftForAnyHumanPlayer() >= - GAMESTATE->GetNumStagesForSongAndStyleType(pSong, pStyle->m_StyleType); + GAMESTATE->GetNumStagesMultiplierForSong(pSong); if( bShowThisStepsType && bEnoughStages ) vOut.insert( *st );