From c089f53de76f727c4def96cbdc95a68032f1660f Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sun, 24 Aug 2003 05:12:08 +0000 Subject: [PATCH] switch Steps while in editor with F5/F6 --- stepmania/src/ScreenEdit.cpp | 52 ++++++++++++++++++++++++++++++-- stepmania/src/ScreenMiniMenu.cpp | 2 +- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 937a59fb0d..ee680ff332 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -112,6 +112,7 @@ Menu g_KeyboardShortcuts MenuRow( "Shift + P: Play current beat to end", false ), MenuRow( "Ctrl + R: Record", false ), MenuRow( "F4: Toggle assist tick", false ), + MenuRow( "F5/F6: Next/prev steps of same StepsType", false ), MenuRow( "F7/F8: Decrease/increase BPM at cur beat", false ), MenuRow( "F9/F10: Decrease/increase stop at cur beat", false ), MenuRow( "F11/F12: Decrease/increase music offset", false ), @@ -136,8 +137,6 @@ Menu g_MainMenu MenuRow( "Player Options", true ), MenuRow( "Song Options", true ), MenuRow( "Edit Song Info", true ), - MenuRow( "Add/Edit BPM Change", true ), - MenuRow( "Add/Edit Stop", true ), MenuRow( "Add/Edit BG Change", true ), MenuRow( "Play preview music", true ), MenuRow( "Exit (discards changes since last save)",true ) @@ -810,6 +809,55 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ case SDLK_F4: GAMESTATE->m_SongOptions.m_bAssistTick ^= 1; break; + case SDLK_F5: + case SDLK_F6: + { + // save current steps + Steps* pNotes = GAMESTATE->m_pCurNotes[PLAYER_1]; + ASSERT( pNotes ); + pNotes->SetNoteData( &m_NoteFieldEdit ); + + // Get all Steps of this StepsType + StepsType st = pNotes->m_StepsType; + vector vSteps; + GAMESTATE->m_pCurSong->GetSteps( vSteps, st ); + + // Find out what index the current Steps are + vector::iterator it = find( vSteps.begin(), vSteps.end(), pNotes ); + ASSERT( it != vSteps.end() ); + + switch( DeviceI.button ) + { + case SDLK_F5: + if( it==vSteps.begin() ) + { + SOUND->PlayOnce( THEME->GetPathToS("Common invalid") ); + return; + } + it--; + break; + case SDLK_F6: + it++; + if( it==vSteps.end() ) + { + SOUND->PlayOnce( THEME->GetPathToS("Common invalid") ); + return; + } + break; + default: ASSERT(0); return; + } + + pNotes = *it; + GAMESTATE->m_pCurNotes[PLAYER_1] = pNotes; + pNotes->GetNoteData( &m_NoteFieldEdit ); + SCREENMAN->SystemMessage( ssprintf( + "Switched to %s %s '%s'", + GAMEMAN->NotesTypeToString( pNotes->m_StepsType ).c_str(), + DifficultyToString( pNotes->GetDifficulty() ).c_str(), + pNotes->GetDescription().c_str() ) ); + SOUND->PlayOnce( THEME->GetPathToS("ScreenEdit switch") ); + } + break; case SDLK_F7: case SDLK_F8: { diff --git a/stepmania/src/ScreenMiniMenu.cpp b/stepmania/src/ScreenMiniMenu.cpp index f42c224f12..fd84f69b33 100644 --- a/stepmania/src/ScreenMiniMenu.cpp +++ b/stepmania/src/ScreenMiniMenu.cpp @@ -22,7 +22,7 @@ const float LABEL_X = 200; const float ANSWER_X = 440; -const float SPACING_Y = 26; +const float SPACING_Y = 24; const float ZOOM_SELECTED = 0.7f; const float ZOOM_NOT_SELECTED = 0.5f;