diff --git a/stepmania/src/GameCommand.cpp b/stepmania/src/GameCommand.cpp index ddd1cb0eac..402267d15a 100644 --- a/stepmania/src/GameCommand.cpp +++ b/stepmania/src/GameCommand.cpp @@ -633,7 +633,7 @@ void GameCommand::Apply( const vector &vpns ) const if( MEMCARDMAN->GetCardState(pn) != MEMORY_CARD_STATE_READY ) continue; // skip - MEMCARDMAN->MountUsedCard(pn); + MEMCARDMAN->MountCard(pn); bTriedToSave = true; @@ -664,7 +664,7 @@ void GameCommand::Apply( const vector &vpns ) const if( MEMCARDMAN->GetCardState(pn) != MEMORY_CARD_STATE_READY ) continue; // skip - MEMCARDMAN->MountUsedCard(pn); + MEMCARDMAN->MountCard(pn); bTriedToLoad = true; diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 19e1f062fa..6c65e71ffa 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -235,7 +235,7 @@ void GameState::PlayersFinalized() // apply saved default modifiers if any FOREACH_HumanPlayer( pn ) { - MEMCARDMAN->MountUsedCard( pn ); + MEMCARDMAN->MountCard( pn ); PROFILEMAN->LoadFirstAvailableProfile( pn ); // load full profile @@ -358,7 +358,7 @@ void GameState::EndGame() continue; if( PROFILEMAN->ProfileWasLoadedFromMemoryCard(pn) ) - MEMCARDMAN->MountUsedCard( pn ); + MEMCARDMAN->MountCard( pn ); PROFILEMAN->SaveProfile( pn ); MEMCARDMAN->UnmountCard( pn ); diff --git a/stepmania/src/MemoryCardManager.cpp b/stepmania/src/MemoryCardManager.cpp index 8484d2c6d4..770d40c36a 100644 --- a/stepmania/src/MemoryCardManager.cpp +++ b/stepmania/src/MemoryCardManager.cpp @@ -233,21 +233,12 @@ void MemoryCardManager::UnlockCards() m_pDriver->SetMountThreadState( MemoryCardDriver::detect_and_mount ); } -/* Called in EndGame just before writing the profile. Should block. */ -void MemoryCardManager::MountUsedCard( PlayerNumber pn ) -{ - if( m_Device[pn].IsBlank() ) // they don't have an assigned card - return; - - MountCard( pn ); -} - +/* Called just before reading or writing to the memory card. Should block. */ void MemoryCardManager::MountCard( PlayerNumber pn ) { - ASSERT( !m_Device[pn].IsBlank() ); - - if( !m_Device[pn].bWriteTestSucceeded || m_bTooLate[pn] ) + if( GetCardState(pn) != MEMORY_CARD_STATE_READY ) return; + ASSERT( !m_Device[pn].IsBlank() ); /* Pause the mounting thread when we mount the first drive. */ bool bStartingMemoryCardAccess = true; diff --git a/stepmania/src/MemoryCardManager.h b/stepmania/src/MemoryCardManager.h index 790b321725..b06e6ce2e5 100644 --- a/stepmania/src/MemoryCardManager.h +++ b/stepmania/src/MemoryCardManager.h @@ -21,7 +21,6 @@ public: void LockCards(); // prevent removing or changing of memory cards void UnlockCards(); - void MountUsedCard( PlayerNumber pn ); void MountCard( PlayerNumber pn ); void UnmountCard( PlayerNumber pn );