only remount cards that were in use

This commit is contained in:
Chris Danford
2004-10-03 06:21:16 +00:00
parent 5d954e5659
commit f65c1d3fbb
4 changed files with 25 additions and 7 deletions
+2 -2
View File
@@ -271,7 +271,7 @@ void GameState::PlayersFinalized()
} }
if( PREFSMAN->m_bMemoryCardsMountOnlyWhenNecessary ) if( PREFSMAN->m_bMemoryCardsMountOnlyWhenNecessary )
MEMCARDMAN->UnmountAllCards(); MEMCARDMAN->UnmountAllUsedCards();
} }
/* This data is added to each player profile, and to the machine profile per-player. */ /* This data is added to each player profile, and to the machine profile per-player. */
@@ -345,7 +345,7 @@ void GameState::EndGame()
if( PREFSMAN->m_bMemoryCardsMountOnlyWhenNecessary ) if( PREFSMAN->m_bMemoryCardsMountOnlyWhenNecessary )
MEMCARDMAN->MountAllCards(); MEMCARDMAN->UnmountAllUsedCards();
BOOKKEEPER->WriteToDisk(); BOOKKEEPER->WriteToDisk();
+19 -2
View File
@@ -222,7 +222,7 @@ void MemoryCardManager::LockCards( bool bLock )
m_pDriver->SetMountThreadState( MemoryCardDriver::detect_and_mount ); m_pDriver->SetMountThreadState( MemoryCardDriver::detect_and_mount );
} }
void MemoryCardManager::MountAllCards() void MemoryCardManager::TryMountAllCards()
{ {
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
{ {
@@ -233,13 +233,30 @@ void MemoryCardManager::MountAllCards()
} }
} }
void MemoryCardManager::UnmountAllCards() void MemoryCardManager::MountAllUsedCards()
{ {
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
{ {
if( m_Device[p].IsBlank() ) // they don't have an assigned card if( m_Device[p].IsBlank() ) // they don't have an assigned card
continue; continue;
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded )
continue;
m_pDriver->MountAndTestWrite(&m_Device[p], MEM_CARD_MOUNT_POINT[p]);
}
}
void MemoryCardManager::UnmountAllUsedCards()
{
FOREACH_PlayerNumber( p )
{
if( m_Device[p].IsBlank() ) // they don't have an assigned card
continue;
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded )
continue;
m_pDriver->Unmount(&m_Device[p], MEM_CARD_MOUNT_POINT[p]); m_pDriver->Unmount(&m_Device[p], MEM_CARD_MOUNT_POINT[p]);
} }
} }
+3 -2
View File
@@ -27,8 +27,9 @@ public:
// CString GetOsMountDir( PlayerNumber pn ); // only valid when state = ready // CString GetOsMountDir( PlayerNumber pn ); // only valid when state = ready
void LockCards( bool bLock ); // prevent removing or changing of memory cards void LockCards( bool bLock ); // prevent removing or changing of memory cards
void MountAllCards(); void TryMountAllCards();
void UnmountAllCards(); void MountAllUsedCards();
void UnmountAllUsedCards();
void MountCard( PlayerNumber pn ); void MountCard( PlayerNumber pn );
void UnmountCard( PlayerNumber pn ); void UnmountCard( PlayerNumber pn );
+1 -1
View File
@@ -10,7 +10,7 @@
static void SaveMachineStatsToFirstMemCard() static void SaveMachineStatsToFirstMemCard()
{ {
MEMCARDMAN->MountAllCards(); MEMCARDMAN->TryMountAllCards();
FOREACH_PlayerNumber( pn ) FOREACH_PlayerNumber( pn )
{ {