diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index e52c87b4be..db6e83e36e 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -108,6 +108,9 @@ void GameState::Reset() { EndGame(); + /* Don't do the OS mount for cards during the attract screens. Only do OS mounts in + * the time between BeginGame and PlayersFinalized. XXX: I think we do that anyway, + * when m_bMemoryCardsMountOnlyWhenNecessary is true. Can we remove this? */ MEMCARDMAN->LockCards(); ASSERT( THEME ); @@ -227,7 +230,8 @@ void GameState::PlayersFinalized() m_bPlayersFinalized = true; MEMCARDMAN->PauseMountingThread(); - MEMCARDMAN->LockCards(); // this does a mount + MEMCARDMAN->LockCards(); + MEMCARDMAN->TryMountAllCards(); // apply saved default modifiers if any FOREACH_HumanPlayer( pn ) diff --git a/stepmania/src/MemoryCardManager.cpp b/stepmania/src/MemoryCardManager.cpp index 3af6a07dbc..a064d749aa 100644 --- a/stepmania/src/MemoryCardManager.cpp +++ b/stepmania/src/MemoryCardManager.cpp @@ -219,16 +219,6 @@ void MemoryCardManager::LockCards() return; m_bCardsLocked = true; - - LOG->Trace( "do the final mount" ); - - FOREACH_EnabledPlayer( p ) - { - if( m_Device[p].IsBlank() ) // they don't have an assigned card - continue; - - MountCard( p ); - } } void MemoryCardManager::UnlockCards() @@ -243,7 +233,8 @@ void MemoryCardManager::UnlockCards() } -/* Used by TransferStatsFromMachine, TransferStatsToMachine. Should block. */ +/* Used by TransferStatsFromMachine, TransferStatsToMachine, and PlayersFinalized() + * just before reading the profile. Should block. */ void MemoryCardManager::TryMountAllCards() { FOREACH_EnabledPlayer( p )