From ca7a13deaa0dd97adac7e3400af88dc6765e2a02 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 25 Sep 2003 02:16:37 +0000 Subject: [PATCH] add switch game code --- stepmania/Themes/default/metrics.ini | 4 ++++ stepmania/src/CodeDetector.cpp | 4 ++++ stepmania/src/CodeDetector.h | 4 ++++ stepmania/src/GameManager.cpp | 7 +++++++ stepmania/src/GameManager.h | 1 + stepmania/src/ScreenTitleMenu.cpp | 20 ++++++++++++++++++-- 6 files changed, 38 insertions(+), 2 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 956393b643..0043950692 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -1823,7 +1823,11 @@ HoldNotes=Right,Left,Down,Up Dark= CancelAll=Left,Right,Left,Right,Left,Right,Left,Right NextTheme=Left,Left,Left,Right,Right,Right,Left,Right +NextTheme2=MenuLeft,MenuLeft,MenuLeft,MenuRight,MenuRight,MenuRight,MenuLeft,MenuRight NextAnnouncer=Left,Left,Right,Right,Left,Left,Right,Right +NextAnnouncer2=MenuLeft,MenuLeft,MenuRight,MenuRight,MenuLeft,MenuLeft,MenuRight,MenuRight +NextGame=Left,Right,Left,Left,Right,Right,Left,Right +NextGame2=MenuLeft,MenuRight,MenuLeft,MenuLeft,MenuRight,MenuRight,MenuLeft,MenuRight NextBannerGroup=MenuUp,MenuRight,MenuRight NextBannerGroup2=MenuUp,MenuDown,MenuUp,MenuDown Hidden= diff --git a/stepmania/src/CodeDetector.cpp b/stepmania/src/CodeDetector.cpp index d1e7a0b6f8..b901fe269f 100644 --- a/stepmania/src/CodeDetector.cpp +++ b/stepmania/src/CodeDetector.cpp @@ -47,7 +47,11 @@ const CString g_sCodeNames[CodeDetector::NUM_CODES] = { "RandomVanish", "CancelAll", "NextTheme", + "NextTheme2", "NextAnnouncer", + "NextAnnouncer2", + "NextGame", + "NextGame2", "NextBannerGroup", "NextBannerGroup2" }; diff --git a/stepmania/src/CodeDetector.h b/stepmania/src/CodeDetector.h index 62652cf229..073015aab2 100644 --- a/stepmania/src/CodeDetector.h +++ b/stepmania/src/CodeDetector.h @@ -42,7 +42,11 @@ public: CODE_RANDOMVANISH, CODE_CANCEL_ALL, CODE_NEXT_THEME, + CODE_NEXT_THEME2, CODE_NEXT_ANNOUNCER, + CODE_NEXT_ANNOUNCER2, + CODE_NEXT_GAME, + CODE_NEXT_GAME2, CODE_BW_NEXT_GROUP, CODE_BW_NEXT_GROUP2, NUM_CODES // leave this at the end diff --git a/stepmania/src/GameManager.cpp b/stepmania/src/GameManager.cpp index daf7f010c2..c8d0cf1d5b 100644 --- a/stepmania/src/GameManager.cpp +++ b/stepmania/src/GameManager.cpp @@ -1688,6 +1688,13 @@ void GameManager::GetEnabledGames( vector& aGamesOut ) } } +bool GameManager::IsGameEnabled( Game game ) +{ + vector aGames; + GetEnabledGames( aGames ); + return find( aGames.begin(), aGames.end(), game ) != aGames.end(); +} + int GameManager::NotesTypeToNumTracks( StepsType nt ) { if(nt >= NUM_STEPS_TYPES) diff --git a/stepmania/src/GameManager.h b/stepmania/src/GameManager.h index 4bbd63cecd..c1434a9fc4 100644 --- a/stepmania/src/GameManager.h +++ b/stepmania/src/GameManager.h @@ -32,6 +32,7 @@ public: Style GetEditorStyleForNotesType( StepsType nt ); void GetEnabledGames( vector& aGamesOut ); + bool IsGameEnabled( Game game ); static int NotesTypeToNumTracks( StepsType nt ); static StepsType StringToNotesType( CString sNotesType ); diff --git a/stepmania/src/ScreenTitleMenu.cpp b/stepmania/src/ScreenTitleMenu.cpp index 2fb8852b4d..daed449335 100644 --- a/stepmania/src/ScreenTitleMenu.cpp +++ b/stepmania/src/ScreenTitleMenu.cpp @@ -272,7 +272,8 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty } // detect codes - if( CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_THEME) ) + if( CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_THEME) || + CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_THEME2) ) { THEME->NextTheme(); ApplyGraphicOptions(); // update window title and icon @@ -280,7 +281,8 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); TEXTUREMAN->DoDelayedDelete(); } - if( CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_ANNOUNCER) ) + if( CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_ANNOUNCER) || + CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_ANNOUNCER2) ) { ANNOUNCER->NextAnnouncer(); CString sName = ANNOUNCER->GetCurAnnouncerName(); @@ -288,6 +290,20 @@ void ScreenTitleMenu::Input( const DeviceInput& DeviceI, const InputEventType ty SCREENMAN->SystemMessage( "Announcer: "+sName ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); } + if( CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_GAME) || + CodeDetector::EnteredCode(GameI.controller,CodeDetector::CODE_NEXT_GAME2) ) + { + for( int i=0; im_CurGame = (Game)(GAMESTATE->m_CurGame+1); + wrap( (int&)GAMESTATE->m_CurGame, NUM_GAMES ); + + if( GAMEMAN->IsGameEnabled(GAMESTATE->m_CurGame) ) + break; // found the first enabled game. Stop searching. + } + SCREENMAN->SystemMessage( ssprintf("Game: %s",GAMESTATE->GetCurrentGameDef()->m_szName) ); + SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); + } // Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); }