From 97146abaafccbaebdfaf59bf71eb55e357bd6466 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 3 Jan 2004 03:42:40 +0000 Subject: [PATCH] clean up memory card logic --- .../Fonts/ScreenSystemLayer message.redir | 1 + stepmania/Themes/default/metrics.ini | 25 +- stepmania/src/Makefile.am | 2 +- stepmania/src/MemoryCardManager.cpp | 53 ++-- stepmania/src/ModeChoice.cpp | 1 - stepmania/src/ProfileManager.cpp | 64 +++-- stepmania/src/ProfileManager.h | 8 +- stepmania/src/Screen.cpp | 5 +- stepmania/src/ScreenManager.cpp | 254 +++++++++--------- stepmania/src/ScreenRemoveMemoryCard.cpp | 101 ------- stepmania/src/ScreenRemoveMemoryCard.h | 35 --- stepmania/src/StepMania.dsp | 16 +- stepmania/src/StepMania.vcproj | 6 - 13 files changed, 228 insertions(+), 343 deletions(-) create mode 100644 stepmania/Themes/default/Fonts/ScreenSystemLayer message.redir delete mode 100644 stepmania/src/ScreenRemoveMemoryCard.cpp delete mode 100644 stepmania/src/ScreenRemoveMemoryCard.h diff --git a/stepmania/Themes/default/Fonts/ScreenSystemLayer message.redir b/stepmania/Themes/default/Fonts/ScreenSystemLayer message.redir new file mode 100644 index 0000000000..ca24092074 --- /dev/null +++ b/stepmania/Themes/default/Fonts/ScreenSystemLayer message.redir @@ -0,0 +1 @@ +Common normal diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 12e9f79db4..ea286096d5 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2631,15 +2631,19 @@ TimerSeconds=0 [ScreenSystemLayer] StatsX=632 StatsY=10 -PlayerInfoP1X=120 -PlayerInfoP1Y=474 -PlayerInfoP1OnCommand=shadowlength,0 -PlayerInfoP2X=520 -PlayerInfoP2Y=474 -PlayerInfoP2OnCommand=shadowlength,0 -CreditsX=320 -CreditsY=474 -CreditsOnCommand=shadowlength,0 +StatsOnCommand=horizalign,right;vertalign,top;zoom,0.5;shadowlength,2 +MessageX=4 +MessageY=4 +MessageOnCommand=horizalign,left;vertalign,top;zoom,0.8;shadowlength,2 +TimeX=4 +TimeY=40 +TimeOnCommand=horizalign,left;vertalign,top;zoom,0.5;shadowlength,0;diffuse,1,0,1,1 +CreditsP1X=120 +CreditsP1Y=474 +CreditsP1OnCommand=shadowlength,0 +CreditsP2X=520 +CreditsP2Y=474 +CreditsP2OnCommand=shadowlength,0 CreditsJoinOnly=0 [MusicWheelItem] @@ -3611,9 +3615,6 @@ TimerSeconds=24 MaxRankingNameLength=4 StyleIcon=1 MemoryCardIcons=1 -NextScreen=ScreenRemoveMemoryCard - -[ScreenRemoveMemoryCard] NextScreen=ScreenBranchEnding@ScreenBranch [ScreenBranchEnding] diff --git a/stepmania/src/Makefile.am b/stepmania/src/Makefile.am index 09fc97406f..c9956565a7 100644 --- a/stepmania/src/Makefile.am +++ b/stepmania/src/Makefile.am @@ -42,7 +42,7 @@ ScreenMusicScroll.cpp ScreenMusicScroll.h ScreenNameEntry.cpp ScreenNameEntry.h ScreenOptionsMaster.cpp ScreenOptionsMaster.h ScreenOptionsMasterPrefs.cpp ScreenOptionsMasterPrefs.h \ ScreenPlayerOptions.cpp ScreenPlayerOptions.h ScreenPrompt.cpp ScreenPrompt.h \ ScreenProfileOptions.cpp ScreenProfileOptions.h ScreenRanking.cpp ScreenRanking.h ScreenRaveOptions.cpp ScreenRaveOptions.h \ -ScreenReloadSongs.cpp ScreenReloadSongs.h ScreenRemoveMemoryCard.cpp ScreenRemoveMemoryCard.h ScreenSandbox.cpp ScreenSandbox.h ScreenSelect.cpp ScreenSelect.h \ +ScreenReloadSongs.cpp ScreenReloadSongs.h ScreenSandbox.cpp ScreenSandbox.h ScreenSelect.cpp ScreenSelect.h \ ScreenSelectCharacter.cpp ScreenSelectCharacter.h ScreenSelectCourse.cpp ScreenSelectCourse.h \ ScreenSelectDifficulty.cpp ScreenSelectDifficulty.h ScreenSelectDifficultyEX.cpp ScreenSelectDifficultyEX.h \ ScreenSelectGroup.cpp ScreenSelectGroup.h ScreenSelectMaster.cpp ScreenSelectMaster.h \ diff --git a/stepmania/src/MemoryCardManager.cpp b/stepmania/src/MemoryCardManager.cpp index 4af6f9707c..76b00a475b 100644 --- a/stepmania/src/MemoryCardManager.cpp +++ b/stepmania/src/MemoryCardManager.cpp @@ -18,6 +18,8 @@ #include "ThemeManager.h" #include "PrefsManager.h" #include "RageLog.h" +#include "ScreenManager.h" +#include "ProfileManager.h" MemoryCardManager* MEMCARDMAN = NULL; // global and accessable from anywhere in our program @@ -56,44 +58,59 @@ void MemoryCardManager::Update( float fDelta ) vector vConnects; // fill these in below vector vDisconnects; // fill these in below - unsigned i; // check for disconnects - for( i=0; iTrace( ssprintf("Disconnected bus %d port %d device %d path %s", old.iBus, old.iPortOnHub, old.iDeviceOnBus, old.sOsMountDir.c_str()) ); - vDisconnects.push_back( old ); + const UsbStorageDevice old = vOld[i]; + if( find(vNew.begin(),vNew.end(),old) == vNew.end() ) // didn't find + { + LOG->Trace( ssprintf("Disconnected bus %d port %d device %d path %s", old.iBus, old.iPortOnHub, old.iDeviceOnBus, old.sOsMountDir.c_str()) ); + vDisconnects.push_back( old ); + } } } // check for connects - for( i=0; iTrace( ssprintf("Connected bus %d port %d device %d path %s", newd.iBus, newd.iPortOnHub, newd.iDeviceOnBus, newd.sOsMountDir.c_str()) ); - vConnects.push_back( newd ); + const UsbStorageDevice newd = vNew[i]; + if( find(vOld.begin(),vOld.end(),newd) == vOld.end() ) // didn't find + { + LOG->Trace( ssprintf("Connected bus %d port %d device %d path %s", newd.iBus, newd.iPortOnHub, newd.iDeviceOnBus, newd.sOsMountDir.c_str()) ); + vConnects.push_back( newd ); + } } } // unassign cards that were disconnected - for( int p=0; pProfileWasLoadedFromMemoryCard((PlayerNumber)p) ) + PROFILEMAN->UnloadProfile( (PlayerNumber)p ); + } } } AssignUnassignedCards(); + + if( !m_bCardsLocked ) + { + for( int p=0; pLoadProfileFromMemoryCard( (PlayerNumber)p ); + } + SCREENMAN->RefreshCreditsMessages(); } } diff --git a/stepmania/src/ModeChoice.cpp b/stepmania/src/ModeChoice.cpp index 17ec31d7e9..f6e25391e2 100644 --- a/stepmania/src/ModeChoice.cpp +++ b/stepmania/src/ModeChoice.cpp @@ -289,7 +289,6 @@ void ModeChoice::Apply( PlayerNumber pn ) const if( m_style != STYLE_INVALID ) { MEMCARDMAN->LockCards( true ); - PROFILEMAN->LoadFirstAvailableProfile( pn ); } } diff --git a/stepmania/src/ProfileManager.cpp b/stepmania/src/ProfileManager.cpp index dd971a0070..1bf97a7a7f 100644 --- a/stepmania/src/ProfileManager.cpp +++ b/stepmania/src/ProfileManager.cpp @@ -67,9 +67,7 @@ static const char *MEM_CARD_DIR[NUM_PLAYERS] = ProfileManager::ProfileManager() { for( int p=0; pGetCardState(pn) == MEMORY_CARD_STATE_READY ) + { + FILEMAN->Mount( "dir", MEMCARDMAN->GetOsMountDir(pn), MEM_CARD_DIR[pn] ); - DEBUG_ASSERT( FILEMAN->IsMounted(sDir) ); // should be called only if we've already mounted + CString sDir = MEM_CARD_DIR[pn]; + + DEBUG_ASSERT( FILEMAN->IsMounted(sDir) ); // should be called only if we've already mounted + + // tack on a subdirectory so that we don't write everything to the root + sDir += PREFSMAN->m_sMemoryCardProfileSubdir; + sDir += '/'; + + bool bResult; + bResult = LoadProfile( pn, sDir, true ); + if( bResult ) + return true; - // tack on a subdirectory so that we don't write everything to the root - sDir += PREFSMAN->m_sMemoryCardProfileSubdir; - sDir += '/'; - - m_bUsingMemoryCard[pn] = true; - bool bResult; - bResult = LoadProfile( pn, sDir, false ); - return bResult; + CreateMemoryCardProfile( pn ); + + bResult = LoadProfile( pn, sDir, true ); + return bResult; + } +#endif + return false; } bool ProfileManager::CreateMemoryCardProfile( PlayerNumber pn ) @@ -190,20 +203,8 @@ bool ProfileManager::CreateMemoryCardProfile( PlayerNumber pn ) bool ProfileManager::LoadFirstAvailableProfile( PlayerNumber pn ) { -#ifndef _XBOX - // mount card - if( MEMCARDMAN->GetCardState(pn) == MEMORY_CARD_STATE_READY ) - { - FILEMAN->Mount( "dir", MEMCARDMAN->GetOsMountDir(pn), MEM_CARD_DIR[pn] ); - - if( LoadProfileFromMemoryCard(pn) ) - return true; - - CreateMemoryCardProfile( pn ); - if( LoadProfileFromMemoryCard(pn) ) - return true; - } -#endif + if( LoadProfileFromMemoryCard(pn) ) + return true; if( LoadDefaultProfileFromMachine(pn) ) return true; @@ -229,7 +230,7 @@ bool ProfileManager::SaveProfile( PlayerNumber pn ) void ProfileManager::UnloadProfile( PlayerNumber pn ) { m_sProfileDir[pn] = ""; - m_bUsingMemoryCard[pn] = false; + m_bWasLoadedFromMemoryCard[pn] = false; m_Profile[pn].Init(); } @@ -1446,3 +1447,8 @@ bool ProfileManager::CategoryData::HighScore::operator>=( const HighScore& other else return iScore >= other.iScore; } + +bool ProfileManager::ProfileWasLoadedFromMemoryCard( PlayerNumber pn ) +{ + return GetProfile(pn) && m_bWasLoadedFromMemoryCard[pn]; +} diff --git a/stepmania/src/ProfileManager.h b/stepmania/src/ProfileManager.h index 520e4f6eb9..46db02068e 100644 --- a/stepmania/src/ProfileManager.h +++ b/stepmania/src/ProfileManager.h @@ -71,7 +71,8 @@ public: void GetLocalProfileIDs( vector &asProfileIDsOut ); void GetLocalProfileNames( vector &asNamesOut ); - bool LoadFirstAvailableProfile( PlayerNumber pn ); + bool LoadProfileFromMemoryCard( PlayerNumber pn ); + bool LoadFirstAvailableProfile( PlayerNumber pn ); // memory card or local profile bool SaveProfile( PlayerNumber pn ); void UnloadProfile( PlayerNumber pn ); @@ -83,7 +84,7 @@ public: Profile* GetMachineProfile() { return &m_MachineProfile; } CString GetPlayerName( PlayerNumber pn ); - bool IsUsingMemoryCard( PlayerNumber pn ) { return m_bUsingMemoryCard[pn]; } + bool ProfileWasLoadedFromMemoryCard( PlayerNumber pn ); // @@ -134,7 +135,6 @@ public: private: bool LoadDefaultProfileFromMachine( PlayerNumber pn ); bool CreateMemoryCardProfile( PlayerNumber pn ); - bool LoadProfileFromMemoryCard( PlayerNumber pn ); bool LoadProfile( PlayerNumber pn, CString sProfileDir, bool bIsMemCard ); bool CreateProfile( CString sProfileDir, CString sName ); @@ -142,7 +142,7 @@ private: // on a memory card. CString m_sProfileDir[NUM_PLAYERS]; - bool m_bUsingMemoryCard[NUM_PLAYERS]; + bool m_bWasLoadedFromMemoryCard[NUM_PLAYERS]; // actual loaded profile data Profile m_Profile[NUM_PLAYERS]; diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 9c463a8a83..d1f1b7ac83 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -18,6 +18,7 @@ #include "ThemeManager.h" #include "ScreenManager.h" #include "RageSounds.h" +#include "ProfileManager.h" Screen::Screen( CString sName ) { @@ -194,6 +195,8 @@ bool Screen::JoinInput( const DeviceInput& DeviceI, const InputEventType type, c if( GAMESTATE->m_MasterPlayerNumber == PLAYER_INVALID ) GAMESTATE->m_MasterPlayerNumber = MenuI.player; + for( int p=0; pLoadProfileFromMemoryCard( (PlayerNumber)p ); SCREENMAN->RefreshCreditsMessages(); SOUND->PlayOnce( THEME->GetPathToS("Common start") ); @@ -287,7 +290,6 @@ void Screen::ClearMessageQueue( const ScreenMessage SM ) #include "ScreenCenterImage.h" #include "ScreenTestInput.h" #include "ScreenBookkeeping.h" -#include "ScreenRemoveMemoryCard.h" #include "ScreenBranch.h" Screen* Screen::Create( CString sClassName ) @@ -392,7 +394,6 @@ Screen* Screen::Create( CString sClassName ) IF_RETURN( ScreenCenterImage ); IF_RETURN( ScreenTestInput ); IF_RETURN( ScreenBookkeeping ); - IF_RETURN( ScreenRemoveMemoryCard ); IF_RETURN( ScreenBranch ); RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() ); diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index b05b770731..5bd53b1e1d 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -31,34 +31,31 @@ #include "RageTextureManager.h" #include "ProfileManager.h" #include "ThemeManager.h" +#include "MemoryCardManager.h" ScreenManager* SCREENMAN = NULL; // global and accessable from anywhere in our program -#define STATS_X THEME->GetMetricF("ScreenSystemLayer","StatsX") -#define STATS_Y THEME->GetMetricF("ScreenSystemLayer","StatsY") -#define PLAYER_INFO_PRESS_START THEME->GetMetric ("ScreenSystemLayer","PlayerInfoPressStart") -#define PLAYER_INFO_INSERT_CARD THEME->GetMetric ("ScreenSystemLayer","PlayerInfoInsertCard") -#define PLAYER_INFO_NO_CARD THEME->GetMetric ("ScreenSystemLayer","PlayerInfoNoCard") -#define PLAYER_INFO_NOT_PRESENT THEME->GetMetric ("ScreenSystemLayer","PlayerInfoNotPresent") -#define PLAYER_INFO_INSERT_MORE THEME->GetMetric ("ScreenSystemLayer","PlayerInfoInsertMore") -#define CREDITS_TEXT_HOME THEME->GetMetric ("ScreenSystemLayer","CreditsTextHome") -#define CREDITS_TEXT_FREE_PLAY THEME->GetMetric ("ScreenSystemLayer","CreditsTextFreePlay") -#define CREDITS_TEXT_CREDITS THEME->GetMetric ("ScreenSystemLayer","CreditsTextCredits") -#define CREDITS_JOIN_ONLY THEME->GetMetric ("ScreenSystemLayer","CreditsJoinOnly") +#define CREDITS_PRESS_START THEME->GetMetric ("ScreenSystemLayer","CreditsPressStart") +#define CREDITS_INSERT_CARD THEME->GetMetric ("ScreenSystemLayer","CreditsInsertCard") +#define CREDITS_CARD_ERROR THEME->GetMetric ("ScreenSystemLayer","CreditsCardError") +#define CREDITS_CARD_TOO_LATE THEME->GetMetric ("ScreenSystemLayer","CreditsCardTooLate") +#define CREDITS_TEXT_HOME THEME->GetMetric ("ScreenSystemLayer","CreditsTextHome") +#define CREDITS_TEXT_FREE_PLAY THEME->GetMetric ("ScreenSystemLayer","CreditsTextFreePlay") +#define CREDITS_TEXT_CREDITS THEME->GetMetric ("ScreenSystemLayer","CreditsTextCredits") +#define CREDITS_JOIN_ONLY THEME->GetMetricB("ScreenSystemLayer","CreditsJoinOnly") -const int NUM_SKIPS = 5; +const int NUM_SKIPS_TO_SHOW = 5; /* This screen is drawn on top of everything else, and receives updates, * but not input. */ class ScreenSystemLayer: public Screen { BitmapText m_textStats; - BitmapText m_textSystemMessage; - BitmapText m_textPlayerInfo[NUM_PLAYERS]; - BitmapText m_textCredits; - BitmapText m_textSysTime; - BitmapText m_Skips[NUM_SKIPS]; + BitmapText m_textMessage; + BitmapText m_textCredits[NUM_PLAYERS]; + BitmapText m_textTime; + BitmapText m_textSkips[NUM_SKIPS_TO_SHOW]; int m_LastSkip; Quad m_SkipBackground; @@ -75,38 +72,29 @@ public: ScreenSystemLayer::ScreenSystemLayer() : Screen("ScreenSystemLayer") { - m_textSystemMessage.LoadFromFont( THEME->GetPathToF("Common normal") ); - m_textSystemMessage.SetHorizAlign( Actor::align_left ); - m_textSystemMessage.SetVertAlign( Actor::align_top ); - m_textSystemMessage.SetXY( 4.0f, 4.0f ); - m_textSystemMessage.SetZoom( 0.8f ); - m_textSystemMessage.SetShadowLength( 2 ); - m_textSystemMessage.SetDiffuse( RageColor(1,1,1,0) ); - this->AddChild(&m_textSystemMessage); + m_textMessage.LoadFromFont( THEME->GetPathToF("ScreenSystemLayer message") ); + m_textMessage.SetName( "Message" ); + SET_XY_AND_ON_COMMAND( m_textMessage ); + this->AddChild(&m_textMessage); - m_textStats.LoadFromFont( THEME->GetPathToF("Common normal") ); - m_textStats.SetXY( STATS_X, STATS_Y ); - m_textStats.SetHorizAlign( Actor::align_right ); - m_textStats.SetVertAlign( Actor::align_top ); - m_textStats.SetZoom( 0.5f ); - m_textStats.SetShadowLength( 2 ); + m_textStats.LoadFromFont( THEME->GetPathToF("ScreenSystemLayer stats") ); + m_textStats.SetName( "Stats" ); + SET_XY_AND_ON_COMMAND( m_textStats ); this->AddChild(&m_textStats); - m_textSysTime.LoadFromFont( THEME->GetPathToF("Common normal") ); - m_textSysTime.SetXY( 4.0f, 40.0f ); - m_textSysTime.SetHorizAlign( Actor::align_left ); - m_textSysTime.SetVertAlign( Actor::align_top ); - m_textSysTime.SetZoom( 0.5f ); - m_textSysTime.SetDiffuse( RageColor(1,0,1,1) ); - m_textSysTime.EnableShadow(false); - this->AddChild(&m_textSysTime); + m_textTime.LoadFromFont( THEME->GetPathToF("ScreenSystemLayer time") ); + m_textTime.SetName( "Time" ); + SET_XY_AND_ON_COMMAND( m_textTime ); + this->AddChild(&m_textTime); for( int p=0; pAddChild(&m_textPlayerInfo[p]); + m_textCredits[p].LoadFromFont( THEME->GetPathToF("ScreenManager credits") ); + m_textCredits[p].SetName( ssprintf("CreditsP%d",p+1) ); + SET_XY_AND_ON_COMMAND( &m_textCredits[p] ); + this->AddChild(&m_textCredits[p]); } - this->AddChild(&m_textCredits); /* "Was that a skip?" This displays a message when an update takes * abnormally long, to quantify skips more precisely, verify them @@ -118,124 +106,138 @@ ScreenSystemLayer::ScreenSystemLayer() : Screen("ScreenSystemLayer") SKIP_WIDTH = 160.0f, SKIP_Y_DIST = 16.0f; m_SkipBackground.StretchTo(RectF(SKIP_LEFT-8, SKIP_TOP-8, - SKIP_LEFT+SKIP_WIDTH, SKIP_TOP+SKIP_Y_DIST*NUM_SKIPS)); + SKIP_LEFT+SKIP_WIDTH, SKIP_TOP+SKIP_Y_DIST*NUM_SKIPS_TO_SHOW)); m_SkipBackground.SetDiffuse( RageColor(0,0,0,0) ); this->AddChild(&m_SkipBackground); - for( int i=0; iGetPathToF("Common normal") ); - m_Skips[i].SetXY( SKIP_LEFT, SKIP_TOP + SKIP_Y_DIST*i ); - m_Skips[i].SetHorizAlign( Actor::align_left ); - m_Skips[i].SetVertAlign( Actor::align_top ); - m_Skips[i].SetZoom( 0.5f ); - m_Skips[i].SetDiffuse( RageColor(1,1,1,0) ); - m_Skips[i].EnableShadow(false); - this->AddChild(&m_Skips[i]); + m_textSkips[i].LoadFromFont( THEME->GetPathToF("Common normal") ); + m_textSkips[i].SetXY( SKIP_LEFT, SKIP_TOP + SKIP_Y_DIST*i ); + m_textSkips[i].SetHorizAlign( Actor::align_left ); + m_textSkips[i].SetVertAlign( Actor::align_top ); + m_textSkips[i].SetZoom( 0.5f ); + m_textSkips[i].SetDiffuse( RageColor(1,1,1,0) ); + m_textSkips[i].EnableShadow(false); + this->AddChild(&m_textSkips[i]); } + + RefreshCreditsMessages(); } void ScreenSystemLayer::SystemMessage( CString sMessage ) { - m_textSystemMessage.FinishTweening(); - m_textSystemMessage.SetText( sMessage ); - m_textSystemMessage.SetDiffuseAlpha( 1 ); - m_textSystemMessage.SetX( -640 ); - m_textSystemMessage.BeginTweening( 0.5f ); - m_textSystemMessage.SetX( 4 ); - m_textSystemMessage.BeginTweening( 5 ); - m_textSystemMessage.BeginTweening( 0.5f ); - m_textSystemMessage.SetDiffuse( RageColor(1,1,1,0) ); + m_textMessage.FinishTweening(); + m_textMessage.SetText( sMessage ); + m_textMessage.SetDiffuseAlpha( 1 ); + m_textMessage.SetX( -640 ); + m_textMessage.BeginTweening( 0.5f ); + m_textMessage.SetX( 4 ); + m_textMessage.BeginTweening( 5 ); + m_textMessage.BeginTweening( 0.5f ); + m_textMessage.SetDiffuse( RageColor(1,1,1,0) ); } void ScreenSystemLayer::SystemMessageNoAnimate( CString sMessage ) { - m_textSystemMessage.FinishTweening(); - m_textSystemMessage.SetText( sMessage ); - m_textSystemMessage.SetX( 4 ); - m_textSystemMessage.SetDiffuseAlpha( 1 ); - m_textSystemMessage.BeginTweening( 5 ); - m_textSystemMessage.BeginTweening( 0.5f ); - m_textSystemMessage.SetDiffuse( RageColor(1,1,1,0) ); + m_textMessage.FinishTweening(); + m_textMessage.SetText( sMessage ); + m_textMessage.SetX( 4 ); + m_textMessage.SetDiffuseAlpha( 1 ); + m_textMessage.BeginTweening( 5 ); + m_textMessage.BeginTweening( 0.5f ); + m_textMessage.SetDiffuse( RageColor(1,1,1,0) ); } void ScreenSystemLayer::RefreshCreditsMessages() { - m_textCredits.LoadFromFont( THEME->GetPathToF("ScreenManager credits") ); - m_textCredits.SetName( "Credits" ); - SET_XY_AND_ON_COMMAND( &m_textCredits ); - - CString sCredits; - switch( PREFSMAN->m_iCoinMode ) - { - case COIN_HOME: - sCredits = CREDITS_TEXT_HOME; - break; - case COIN_PAY: - { - int Coins = GAMESTATE->m_iCoins % PREFSMAN->m_iCoinsPerCredit; - sCredits = ssprintf("%s %d", CREDITS_TEXT_CREDITS.c_str(), GAMESTATE->m_iCoins / PREFSMAN->m_iCoinsPerCredit); - if (Coins) - sCredits += ssprintf(" %d/%d", Coins, PREFSMAN->m_iCoinsPerCredit ); - } - break; - case COIN_FREE: - sCredits = CREDITS_TEXT_FREE_PLAY; - break; - default: - ASSERT(0); - } - if( CREDITS_JOIN_ONLY && !GAMESTATE->PlayersCanJoin() ) - sCredits = ""; - m_textCredits.SetText( sCredits ); - - // update joined for( int p=0; pGetPathToF("ScreenManager credits") ); - m_textPlayerInfo[p].SetName( ssprintf("PlayerInfoP%d",p+1 ) ); - SET_XY_AND_ON_COMMAND( &m_textPlayerInfo[p] ); + CString sCredits; - CString sPlayerInfo; - if( GAMESTATE->m_bSideIsJoined[p] ) + if( GAMESTATE->m_bIsOnSystemMenu ) // no mem card { + sCredits = ""; + } + else if( GAMESTATE->m_bSideIsJoined[p] ) + { + MemoryCardState mcs = MEMCARDMAN->GetCardState( (PlayerNumber)p ); Profile* pProfile = PROFILEMAN->GetProfile( (PlayerNumber)p ); if( pProfile ) { if( !pProfile->m_sLastUsedHighScoreName.empty() ) - sPlayerInfo = pProfile->m_sLastUsedHighScoreName; + sCredits = pProfile->m_sLastUsedHighScoreName; else - sPlayerInfo = pProfile->m_sName; + sCredits = pProfile->m_sName; } - else if( GAMESTATE->m_bIsOnSystemMenu ) // no mem card - sPlayerInfo = ""; else { - if( GAMESTATE->PlayersCanJoin() ) - sPlayerInfo = PLAYER_INFO_INSERT_CARD; - else - sPlayerInfo = PLAYER_INFO_NO_CARD; + switch( mcs ) + { + case MEMORY_CARD_STATE_NO_CARD: + if( GAMESTATE->PlayersCanJoin() ) + sCredits = CREDITS_INSERT_CARD; + else + sCredits = ""; + break; + case MEMORY_CARD_STATE_WRITE_ERROR: + sCredits = CREDITS_CARD_ERROR; + break; + case MEMORY_CARD_STATE_TOO_LATE: + sCredits = CREDITS_CARD_TOO_LATE; + break; + case MEMORY_CARD_STATE_READY: + sCredits = ""; + break; + default: + ASSERT(0); + } } } else if( GAMESTATE->PlayersCanJoin() ) { + sCredits = CREDITS_PRESS_START; + if( PREFSMAN->m_iCoinMode==COIN_PAY && PREFSMAN->m_Premium!=PrefsManager::JOINT_PREMIUM && GAMESTATE->m_iCoinsm_iCoinsPerCredit ) - sPlayerInfo = PLAYER_INFO_INSERT_MORE; - else - sPlayerInfo = PLAYER_INFO_PRESS_START; + { + int Coins = GAMESTATE->m_iCoins % PREFSMAN->m_iCoinsPerCredit; + sCredits = ssprintf("%s %d", CREDITS_TEXT_CREDITS.c_str(), GAMESTATE->m_iCoins / PREFSMAN->m_iCoinsPerCredit); + if (Coins) + sCredits += ssprintf(" %d/%d", Coins, PREFSMAN->m_iCoinsPerCredit ); + } } else { - sPlayerInfo = PLAYER_INFO_NOT_PRESENT; + switch( PREFSMAN->m_iCoinMode ) + { + case COIN_HOME: + sCredits = CREDITS_TEXT_HOME; + break; + case COIN_PAY: + { + int Coins = GAMESTATE->m_iCoins % PREFSMAN->m_iCoinsPerCredit; + sCredits = ssprintf("%s %d", CREDITS_TEXT_CREDITS.c_str(), GAMESTATE->m_iCoins / PREFSMAN->m_iCoinsPerCredit); + if (Coins) + sCredits += ssprintf(" %d/%d", Coins, PREFSMAN->m_iCoinsPerCredit ); + } + break; + case COIN_FREE: + sCredits = CREDITS_TEXT_FREE_PLAY; + break; + default: + ASSERT(0); + } } - m_textPlayerInfo[p].SetText( sPlayerInfo ); + if( CREDITS_JOIN_ONLY && !GAMESTATE->PlayersCanJoin() ) + sCredits = ""; + m_textCredits[p].SetText( sCredits ); } } @@ -244,7 +246,7 @@ void ScreenSystemLayer::UpdateTimestampAndSkips() if(!PREFSMAN->m_bTimestamping) { /* Hide: */ - m_textSysTime.SetDiffuse( RageColor(1,1,1,0) ); + m_textTime.SetDiffuse( RageColor(1,1,1,0) ); m_SkipBackground.SetDiffuse( RageColor(0,0,0,0) ); return; } @@ -282,23 +284,23 @@ void ScreenSystemLayer::UpdateTimestampAndSkips() RageColor(1,1,0,1), /* yellow */ RageColor(1,0.2f,0.2f,1) /* light red */ }; - m_Skips[m_LastSkip].SetText(ssprintf("%s: %.0fms (%.0f)", + m_textSkips[m_LastSkip].SetText(ssprintf("%s: %.0fms (%.0f)", time.c_str(), 1000*UpdateTime, UpdateTime/ExpectedUpdate)); - m_Skips[m_LastSkip].StopTweening(); - m_Skips[m_LastSkip].SetDiffuse(RageColor(1,1,1,1)); - m_Skips[m_LastSkip].BeginTweening(0.2f); - m_Skips[m_LastSkip].SetDiffuse(colors[skip]); - m_Skips[m_LastSkip].BeginTweening(3.0f); - m_Skips[m_LastSkip].BeginTweening(0.2f); - m_Skips[m_LastSkip].SetDiffuse(RageColor(1,1,1,0)); + m_textSkips[m_LastSkip].StopTweening(); + m_textSkips[m_LastSkip].SetDiffuse(RageColor(1,1,1,1)); + m_textSkips[m_LastSkip].BeginTweening(0.2f); + m_textSkips[m_LastSkip].SetDiffuse(colors[skip]); + m_textSkips[m_LastSkip].BeginTweening(3.0f); + m_textSkips[m_LastSkip].BeginTweening(0.2f); + m_textSkips[m_LastSkip].SetDiffuse(RageColor(1,1,1,0)); m_LastSkip++; - m_LastSkip %= NUM_SKIPS; + m_LastSkip %= NUM_SKIPS_TO_SHOW; } } - m_textSysTime.SetText( time ); - m_textSysTime.SetDiffuse( RageColor(1,0,1,1) ); + m_textTime.SetText( time ); + m_textTime.SetDiffuse( RageColor(1,0,1,1) ); } void ScreenSystemLayer::Update( float fDeltaTime ) diff --git a/stepmania/src/ScreenRemoveMemoryCard.cpp b/stepmania/src/ScreenRemoveMemoryCard.cpp deleted file mode 100644 index c6ea8e8082..0000000000 --- a/stepmania/src/ScreenRemoveMemoryCard.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#include "global.h" -/* ------------------------------------------------------------------------------ - Class: ScreenRemoveMemoryCard - - Desc: Where the player maps device input to pad input. - - Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. - Chris Danford ------------------------------------------------------------------------------ -*/ - -#include "ScreenRemoveMemoryCard.h" -#include "MemoryCardManager.h" -#include "RageLog.h" -#include "RageSounds.h" -#include "ThemeManager.h" -#include "GameConstantsAndTypes.h" -#include "PlayerNumber.h" -#include "ScreenManager.h" - -#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen") - -ScreenRemoveMemoryCard::ScreenRemoveMemoryCard( CString sClassName ) : Screen( sClassName ) -{ - if( !AnyCardsInserted() ) - { - HandleScreenMessage( SM_GoToNextScreen ); // Don't show this screen - return; - } - - LOG->Trace( "ScreenRemoveMemoryCard::ScreenRemoveMemoryCard()" ); - - m_Menu.Load( "ScreenRemoveMemoryCard" ); - this->AddChild( &m_Menu ); - - SOUND->PlayMusic( THEME->GetPathToS("ScreenRemoveMemoryCard music") ); -} - -ScreenRemoveMemoryCard::~ScreenRemoveMemoryCard() -{ - LOG->Trace( "ScreenRemoveMemoryCard::~ScreenRemoveMemoryCard()" ); -} - -void ScreenRemoveMemoryCard::DrawPrimitives() -{ - m_Menu.DrawBottomLayer(); - Screen::DrawPrimitives(); - m_Menu.DrawTopLayer(); -} - -void ScreenRemoveMemoryCard::Update( float fDelta ) -{ - Screen::Update( fDelta ); - - if( !AnyCardsInserted() ) // all cards are pulled out - { - if( !m_Menu.IsTransitioning() ) - m_Menu.StartTransitioning( SM_GoToPrevScreen ); - } -} - -void ScreenRemoveMemoryCard::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ) -{ - if( type != IET_FIRST_PRESS && type != IET_SLOW_REPEAT ) - return; // ignore - - Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default handler -} - -void ScreenRemoveMemoryCard::HandleScreenMessage( const ScreenMessage SM ) -{ - switch( SM ) - { - case SM_GoToNextScreen: - SCREENMAN->SetNewScreen( NEXT_SCREEN ); - break; - } -} - -void ScreenRemoveMemoryCard::MenuStart( PlayerNumber pn ) -{ - MenuBack( pn ); -} - -void ScreenRemoveMemoryCard::MenuBack( PlayerNumber pn ) -{ - if(!m_Menu.IsTransitioning()) - { - m_Menu.StartTransitioning( SM_GoToPrevScreen ); - } -} - -bool ScreenRemoveMemoryCard::AnyCardsInserted() -{ - for( int p=0; pGetCardState((PlayerNumber)p) != MEMORY_CARD_STATE_NO_CARD ) - return true; - - return false; -} diff --git a/stepmania/src/ScreenRemoveMemoryCard.h b/stepmania/src/ScreenRemoveMemoryCard.h deleted file mode 100644 index 146351a624..0000000000 --- a/stepmania/src/ScreenRemoveMemoryCard.h +++ /dev/null @@ -1,35 +0,0 @@ -/* ------------------------------------------------------------------------------ - Class: ScreenRemoveMemoryCard - - Desc: Remind the player to remove their memory card. - - Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. - Chris Danford ------------------------------------------------------------------------------ -*/ - -#include "Screen.h" -#include "MenuElements.h" - - -class ScreenRemoveMemoryCard : public Screen -{ -public: - ScreenRemoveMemoryCard( CString sName ); - virtual ~ScreenRemoveMemoryCard(); - - virtual void DrawPrimitives(); - virtual void Update( float fDelta ); - virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); - virtual void HandleScreenMessage( const ScreenMessage SM ); - - virtual void MenuStart( PlayerNumber pn ); - virtual void MenuBack( PlayerNumber pn ); - -private: - bool AnyCardsInserted(); - - MenuElements m_Menu; -}; - diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 93b9099df3..355bae3e50 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -65,7 +65,7 @@ IntDir=.\../Debug6 TargetDir=\stepmania\stepmania\Program TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool @@ -102,8 +102,8 @@ IntDir=.\Debug TargetDir=\stepmania\stepmania TargetName=default SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c \ - verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c \ + verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -136,14 +136,14 @@ BSC32=bscmake.exe LINK32=link.exe # ADD BASE LINK32 $(intdir)\verstub.obj kernel32.lib gdi32.lib shell32.lib user32.lib advapi32.lib winmm.lib /nologo /subsystem:windows /pdb:"../release6/StepMania.pdb" /map /debug /machine:I386 # SUBTRACT BASE LINK32 /verbose /pdb:none -# ADD LINK32 $(intdir)\verstub.obj kernel32.lib gdi32.lib shell32.lib user32.lib advapi32.lib winmm.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../Program/StepMania.exe" +# ADD LINK32 $(intdir)\verstub.obj kernel32.lib gdi32.lib shell32.lib user32.lib advapi32.lib winmm.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../../itg/Program/StepMania.exe" # SUBTRACT LINK32 /verbose /pdb:none # Begin Special Build Tool IntDir=.\../Release6 -TargetDir=\stepmania\stepmania\Program +TargetDir=\stepmania\itg\Program TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool @@ -184,8 +184,8 @@ IntDir=.\StepMania___Xbox_Release TargetDir=\stepmania\stepmania TargetName=default SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c \ - verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c \ + verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index d00c1f80f5..9b639fdb19 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -388,12 +388,6 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ - - - -