From bfd7b1930cff3652fa1822eb4fc0e43a91f82a26 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 3 May 2004 00:34:54 +0000 Subject: [PATCH] simplify name update logic --- stepmania/src/GameState.cpp | 4 +-- stepmania/src/MemoryCardManager.cpp | 27 +++---------------- stepmania/src/MemoryCardManager.h | 3 +-- stepmania/src/ScreenBranch.cpp | 2 +- .../src/arch/MemoryCard/MemoryCardDriver.h | 16 ++++++----- .../MemoryCardDriverThreaded_Windows.cpp | 13 +++++++++ .../MemoryCardDriverThreaded_Windows.h | 4 ++- 7 files changed, 32 insertions(+), 37 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index df2b15ce37..27dc1e9ed0 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -368,11 +368,9 @@ void GameState::EndGame() PROFILEMAN->UnloadProfile( pn ); } - MEMCARDMAN->RefreshNames(); - // Reset the USB storage device numbers -after- saving CHECKPOINT; - MEMCARDMAN->FlushAllDisks(); + MEMCARDMAN->FlushAndReset(); CHECKPOINT; SONGMAN->FreeAllLoadedFromProfiles(); diff --git a/stepmania/src/MemoryCardManager.cpp b/stepmania/src/MemoryCardManager.cpp index 257cbe929e..10ccf63ab5 100644 --- a/stepmania/src/MemoryCardManager.cpp +++ b/stepmania/src/MemoryCardManager.cpp @@ -176,8 +176,8 @@ void MemoryCardManager::AssignUnassignedCards() continue; vector::iterator it = find(vUnassignedDevices.begin(),vUnassignedDevices.end(),m_Device[p]); - ASSERT( it != vUnassignedDevices.end() ) // the assigned card better be connected! - vUnassignedDevices.erase( it ); + if( it != vUnassignedDevices.end() ) + vUnassignedDevices.erase( it ); } } @@ -259,7 +259,7 @@ match: } } -void MemoryCardManager::FlushAllDisks() +void MemoryCardManager::FlushAndReset() { FOREACH_PlayerNumber( p ) { @@ -270,7 +270,7 @@ void MemoryCardManager::FlushAllDisks() m_pDriver->Flush(&m_Device[p]); } - m_pDriver->ResetUsbStorage(); + m_pDriver->ResetUsbStorage(); // forces cards to be re-detected } bool MemoryCardManager::PathIsMemCard( CString sDir ) const @@ -285,22 +285,3 @@ CString MemoryCardManager::GetName( PlayerNumber pn ) const { return m_Device[pn].sName; } - -void MemoryCardManager::RefreshNames() -{ - // HACK: UsbStorageDevice::sName is only read when the device is connected. - // If the player leaves their memory card in after the game ends and they - // immediate start another game, then sName isn't re-read automatically. - // It's much harder to add logic to read the name again to MemoryCardDriver - // than to add a small hack here. - - FOREACH_PlayerNumber( p ) - { - if( m_Device[p].IsBlank() ) // no card assigned - continue; // skip - if( m_bWriteError[p] || m_bTooLate[p] ) - continue; // skip - CString sProfileDir = MEM_CARD_MOUNT_POINT[p] + PREFSMAN->m_sMemoryCardProfileSubdir + '/'; - m_Device[p].sName = Profile::GetProfileDisplayNameFromDir( sProfileDir ); - } -} diff --git a/stepmania/src/MemoryCardManager.h b/stepmania/src/MemoryCardManager.h index babb94309a..27a2359be0 100644 --- a/stepmania/src/MemoryCardManager.h +++ b/stepmania/src/MemoryCardManager.h @@ -37,12 +37,11 @@ public: void LockCards( bool bLock ); // prevent removing or changing of memory cards - void FlushAllDisks(); // force all files to be written to mounted memory cards + void FlushAndReset(); // force all files to be written to mounted memory cards bool PathIsMemCard( CString sDir ) const; CString GetName( PlayerNumber pn ) const; - void RefreshNames(); protected: void AssignUnassignedCards(); // do our best to assign a Device to each player diff --git a/stepmania/src/ScreenBranch.cpp b/stepmania/src/ScreenBranch.cpp index 58daf1aa36..98fac2f332 100644 --- a/stepmania/src/ScreenBranch.cpp +++ b/stepmania/src/ScreenBranch.cpp @@ -30,7 +30,7 @@ ScreenBranch::ScreenBranch( CString sClassName ) : Screen( sClassName ) for( unsigned i=0; i