diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index 8916f99138..9b7c9fd1a0 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -15,6 +15,12 @@ sm-ssc $NEXTVERSION | 2011???? It depends on who you ask. It could be v1.2.5, it could be v1.3.0, it could even be StepMania 5. +20110402 +-------- +* Fix a crash (issue 247) when exiting Practice mode from dance-solo, + dance-threepanel, and popn-nine (all of which can only have one player). + If you find any other modes this crashes on, let us know. [AJ] + 20110329 -------- * [ScreenEdit] Changed sample playback button to L. [AJ] diff --git a/src/GameState.cpp b/src/GameState.cpp index 1a3f2d0793..90792cad8c 100644 --- a/src/GameState.cpp +++ b/src/GameState.cpp @@ -355,9 +355,14 @@ void GameState::JoinPlayer( PlayerNumber pn ) if( ALLOW_LATE_JOIN && m_pCurStyle != NULL ) { const Style *pStyle; - // only use one player for StyleType_OnePlayerTwoSides. + // Only use one player for StyleType_OnePlayerTwoSides and StepsTypes + // that can only be played by one player (e.g. dance-solo, + // dance-threepanel, popn-nine). -aj // XXX?: still shows joined player as "Insert Card". May not be an issue? -aj - if( m_pCurStyle->m_StyleType == StyleType_OnePlayerTwoSides ) + if( m_pCurStyle->m_StyleType == StyleType_OnePlayerTwoSides || + m_pCurStyle->m_StepsType == StepsType_dance_solo || + m_pCurStyle->m_StepsType == StepsType_dance_threepanel || + m_pCurStyle->m_StepsType == StepsType_popn_nine ) pStyle = GAMEMAN->GetFirstCompatibleStyle( m_pCurGame, 1, m_pCurStyle->m_StepsType ); else pStyle = GAMEMAN->GetFirstCompatibleStyle( m_pCurGame, GetNumSidesJoined(), m_pCurStyle->m_StepsType );