diff --git a/stepmania/src/ScreenOptionsMemoryCard.cpp b/stepmania/src/ScreenOptionsMemoryCard.cpp index fa6ccd3489..5c0dca0ecd 100644 --- a/stepmania/src/ScreenOptionsMemoryCard.cpp +++ b/stepmania/src/ScreenOptionsMemoryCard.cpp @@ -16,9 +16,27 @@ void ScreenOptionsMemoryCard::Init() { ScreenOptions::Init(); + m_textCurrentCard.SetName( "CurrentCard" ); + m_textCurrentCard.LoadFromFont( THEME->GetPathF(m_sName,"current") ); + this->AddChild( &m_textCurrentCard ); + this->SubscribeToMessage( Message_StorageDevicesChanged ); } +void ScreenOptionsMemoryCard::TweenOnScreen() +{ + ON_COMMAND( m_textCurrentCard ); + + ScreenOptions::TweenOnScreen(); +} + +void ScreenOptionsMemoryCard::TweenOffScreen() +{ + OFF_COMMAND( m_textCurrentCard ); + + ScreenOptions::TweenOffScreen(); +} + bool ScreenOptionsMemoryCard::UpdateCurrentUsbStorageDevices() { vector aOldDevices = m_CurrentUsbStorageDevices; @@ -46,10 +64,6 @@ void ScreenOptionsMemoryCard::CreateMenu() // TODO: Make these string themable vector vs; - if( iter->sOsMountDir.empty() ) - vs.push_back( "(no mount dir)" ); - else - vs.push_back( iter->sOsMountDir ); if( iter->sVolumeLabel.empty() ) vs.push_back( "(no label)" ); else @@ -100,6 +114,21 @@ void ScreenOptionsMemoryCard::HandleScreenMessage( const ScreenMessage SM ) ScreenOptions::HandleScreenMessage( SM ); } +void ScreenOptionsMemoryCard::AfterChangeRow( PlayerNumber pn ) +{ + ScreenOptions::AfterChangeRow( pn ); + + if( m_CurrentUsbStorageDevices.empty() ) + { + m_textCurrentCard.SetText( "" ); + } + else + { + int iRow = m_iCurrentRow[GAMESTATE->m_MasterPlayerNumber]; + m_textCurrentCard.SetText( m_CurrentUsbStorageDevices[iRow].sOsMountDir ); + } +} + void ScreenOptionsMemoryCard::HandleMessage( const RString& sMessage ) { if( sMessage == MessageToString(Message_StorageDevicesChanged) ) diff --git a/stepmania/src/ScreenOptionsMemoryCard.h b/stepmania/src/ScreenOptionsMemoryCard.h index 3760569e41..011f7eaadb 100644 --- a/stepmania/src/ScreenOptionsMemoryCard.h +++ b/stepmania/src/ScreenOptionsMemoryCard.h @@ -11,6 +11,11 @@ public: void BeginScreen(); virtual void HandleScreenMessage( const ScreenMessage SM ); + virtual void TweenOnScreen(); + virtual void TweenOffScreen(); + +protected: + virtual void AfterChangeRow( PlayerNumber pn ); private: void ImportOptions( int iRow, const vector &vpns ); @@ -25,6 +30,8 @@ private: bool UpdateCurrentUsbStorageDevices(); vector m_CurrentUsbStorageDevices; + + BitmapText m_textCurrentCard; }; #endif