diff --git a/stepmania/src/ScreenWithMenuElements.cpp b/stepmania/src/ScreenWithMenuElements.cpp index f272992b72..1c43a98290 100644 --- a/stepmania/src/ScreenWithMenuElements.cpp +++ b/stepmania/src/ScreenWithMenuElements.cpp @@ -128,12 +128,11 @@ void ScreenWithMenuElements::BeginScreen() /* Evaluate FirstUpdateCommand. */ this->PlayCommand( "FirstUpdate" ); - /* If AutoJoin is enabled, we may have a credit that couldn't be used to join when - * the coin was inserted due to AllowLateJoin being disabled at the time. Try to - * join players when a new screen starts. */ + /* If AutoJoin and a player is already joined, then try to join a player. (If no players + * are joined, they'll join on the first JoinInput.) */ if( GAMESTATE->GetCoinMode() == CoinMode_Pay && GAMESTATE->m_bAutoJoin.Get() ) { - if( GAMESTATE->JoinPlayers() ) + if( GAMESTATE->GetNumSidesJoined() > 0 && GAMESTATE->JoinPlayers() ) SCREENMAN->PlayStartSound(); } } diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index 5ee258194a..c312ceddff 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -1198,10 +1198,11 @@ void StepMania::InsertCoin( int iNum, bool bCountInBookkeeping ) else SCREENMAN->PlayInvalidSound(); - /* If AutoJoin and enough coins to join have been inserted, then try to join a player. */ - if( GAMESTATE->m_bAutoJoin.Get() ) + /* If AutoJoin and a player is already joined, then try to join a player. (If no players + * are joined, they'll join on the first JoinInput.) */ + if( GAMESTATE->m_bAutoJoin.Get() && GAMESTATE->GetNumSidesJoined() > 0 ) { - if( GAMESTATE->JoinPlayers() ) + if( GAMESTATE->GetNumSidesJoined() > 0 && GAMESTATE->JoinPlayers() ) SCREENMAN->PlayStartSound(); }