Shift+number to lay mines in editor

Alt+number to lay taps, holds, mines in right half of notefield
This commit is contained in:
Chris Danford
2003-08-31 23:52:02 +00:00
parent 151ed95ef9
commit 8f920347d6
2 changed files with 40 additions and 8 deletions
+38 -6
View File
@@ -124,7 +124,9 @@ Menu g_KeyboardShortcuts
MenuRow( "M: Play sample music", false ), MenuRow( "M: Play sample music", false ),
MenuRow( "B: Add/Edit Background Change", false ), MenuRow( "B: Add/Edit Background Change", false ),
MenuRow( "Insert: Insert beat and shift down", false ), MenuRow( "Insert: Insert beat and shift down", false ),
MenuRow( "Delete: Delete beat and shift up", false ) MenuRow( "Delete: Delete beat and shift up", false ),
MenuRow( "Shift + number: Lay mine", false ),
MenuRow( "Alt + number: Add to/remove from right half", false )
); );
Menu g_MainMenu Menu g_MainMenu
@@ -599,7 +601,14 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
if( type != IET_FIRST_PRESS ) if( type != IET_FIRST_PRESS )
break; // We only care about first presses break; // We only care about first presses
const int iCol = DeviceI.button == SDLK_0? 9: DeviceI.button - SDLK_1; int iCol = DeviceI.button - SDLK_1;
// Alt + number = input to right half
if( INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_LALT)) ||
INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_RALT)))
iCol += m_NoteFieldEdit.GetNumTracks()/2;
const float fSongBeat = GAMESTATE->m_fSongBeat; const float fSongBeat = GAMESTATE->m_fSongBeat;
const int iSongIndex = BeatToNoteRow( fSongBeat ); const int iSongIndex = BeatToNoteRow( fSongBeat );
@@ -624,13 +633,25 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
if( !bRemovedAHoldNote ) if( !bRemovedAHoldNote )
{ {
// Hold Shift to lay mine
bool bLayMine =
INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_LSHIFT)) ||
INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_RSHIFT));
// We didn't remove a HoldNote, so the user wants to add or delete a TapNote // We didn't remove a HoldNote, so the user wants to add or delete a TapNote
if( m_NoteFieldEdit.GetTapNote(iCol, iSongIndex) == TAP_EMPTY ) if( m_NoteFieldEdit.GetTapNote(iCol, iSongIndex) == TAP_EMPTY )
m_NoteFieldEdit.SetTapNote(iCol, iSongIndex, TAP_TAP ); {
if( bLayMine )
m_NoteFieldEdit.SetTapNote(iCol, iSongIndex, TAP_MINE );
else else
m_NoteFieldEdit.SetTapNote(iCol, iSongIndex, TAP_TAP );
}
else
{
m_NoteFieldEdit.SetTapNote(iCol, iSongIndex, TAP_EMPTY ); m_NoteFieldEdit.SetTapNote(iCol, iSongIndex, TAP_EMPTY );
} }
} }
}
break; break;
case SDLK_UP: case SDLK_UP:
case SDLK_DOWN: case SDLK_DOWN:
@@ -692,15 +713,26 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
const float fEndBeat = GAMESTATE->m_fSongBeat + fBeatsToMove; const float fEndBeat = GAMESTATE->m_fSongBeat + fBeatsToMove;
// check to see if they're holding a button // check to see if they're holding a button
for( int col=0; col<m_NoteFieldEdit.GetNumTracks() && col<=10; col++ ) for( int n=0; n<=9; n++ ) // for each number key
{ {
const DeviceInput di(DEVICE_KEYBOARD, SDLK_1+col); int iCol = n;
// Ctrl + number = input to right half
if( INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_LALT)) ||
INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, SDLK_RALT)))
iCol += m_NoteFieldEdit.GetNumTracks()/2;
if( iCol >= m_NoteFieldEdit.GetNumTracks() )
continue; // skip
const DeviceInput di(DEVICE_KEYBOARD, SDLK_1+n);
if( !INPUTFILTER->IsBeingPressed(di) ) if( !INPUTFILTER->IsBeingPressed(di) )
continue; continue;
// create a new hold note // create a new hold note
HoldNote newHN( col, min(fStartBeat, fEndBeat), max(fStartBeat, fEndBeat) ); HoldNote newHN( iCol, min(fStartBeat, fEndBeat), max(fStartBeat, fEndBeat) );
newHN.fStartBeat = max(newHN.fStartBeat, 0); newHN.fStartBeat = max(newHN.fStartBeat, 0);
newHN.fEndBeat = max(newHN.fEndBeat, 0); newHN.fEndBeat = max(newHN.fEndBeat, 0);
+2 -2
View File
@@ -53,11 +53,11 @@ struct Menu
Menu() {} Menu() {}
Menu( CString t, MenuRow r0, MenuRow r1=MenuRow(), MenuRow r2=MenuRow(), MenuRow r3=MenuRow(), MenuRow r4=MenuRow(), MenuRow r5=MenuRow(), MenuRow r6=MenuRow(), MenuRow r7=MenuRow(), MenuRow r8=MenuRow(), MenuRow r9=MenuRow(), MenuRow r10=MenuRow(), MenuRow r11=MenuRow(), MenuRow r12=MenuRow(), MenuRow r13=MenuRow(), MenuRow r14=MenuRow(), MenuRow r15=MenuRow(), MenuRow r16=MenuRow(), MenuRow r17=MenuRow(), MenuRow r18=MenuRow(), MenuRow r19=MenuRow() ) Menu( CString t, MenuRow r0, MenuRow r1=MenuRow(), MenuRow r2=MenuRow(), MenuRow r3=MenuRow(), MenuRow r4=MenuRow(), MenuRow r5=MenuRow(), MenuRow r6=MenuRow(), MenuRow r7=MenuRow(), MenuRow r8=MenuRow(), MenuRow r9=MenuRow(), MenuRow r10=MenuRow(), MenuRow r11=MenuRow(), MenuRow r12=MenuRow(), MenuRow r13=MenuRow(), MenuRow r14=MenuRow(), MenuRow r15=MenuRow(), MenuRow r16=MenuRow(), MenuRow r17=MenuRow(), MenuRow r18=MenuRow(), MenuRow r19=MenuRow(), MenuRow r20=MenuRow(), MenuRow r21=MenuRow() )
{ {
title = t; title = t;
#define PUSH( r ) if(r.name!="" || !r.choices.empty()) rows.push_back(r); #define PUSH( r ) if(r.name!="" || !r.choices.empty()) rows.push_back(r);
PUSH(r0);PUSH(r1);PUSH(r2);PUSH(r3);PUSH(r4);PUSH(r5);PUSH(r6);PUSH(r7);PUSH(r8);PUSH(r9);PUSH(r10);PUSH(r11);PUSH(r12);PUSH(r13);PUSH(r14);PUSH(r15);PUSH(r16);PUSH(r17);PUSH(r18);PUSH(r19); PUSH(r0);PUSH(r1);PUSH(r2);PUSH(r3);PUSH(r4);PUSH(r5);PUSH(r6);PUSH(r7);PUSH(r8);PUSH(r9);PUSH(r10);PUSH(r11);PUSH(r12);PUSH(r13);PUSH(r14);PUSH(r15);PUSH(r16);PUSH(r17);PUSH(r18);PUSH(r19);PUSH(r20);PUSH(r21);
#undef PUSH #undef PUSH
} }
}; };