From 1ee92c65e98f11b0fa31bf5b769e670deadf2e2e Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Thu, 12 May 2011 20:55:45 -0400 Subject: [PATCH] [splittiming] Allow F1^H4 dedicated Timing Menu. --- src/ScreenEdit.cpp | 39 ++++++++++++++++++++++++++------------- src/ScreenEdit.h | 4 ++++ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp index 8b9e03cb0d..9427fb8ee6 100644 --- a/src/ScreenEdit.cpp +++ b/src/ScreenEdit.cpp @@ -194,6 +194,9 @@ void ScreenEdit::InitEditMappings() return; case EditMode_Full: + // F4 = Show timing menu + m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_TIMING_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F4); + /* Don't allow F5/F6 in home mode. It breaks the "delay creation until first save" logic. */ m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_PREV_STEPS][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F5); m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_NEXT_STEPS][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F6); @@ -1522,6 +1525,11 @@ void ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB ) case EDIT_BUTTON_OPEN_INPUT_HELP: DoHelp(); break; + case EDIT_BUTTON_OPEN_TIMING_MENU: + { + DisplayTimingMenu(); + break; + } case EDIT_BUTTON_OPEN_NEXT_STEPS: case EDIT_BUTTON_OPEN_PREV_STEPS: { @@ -3056,6 +3064,23 @@ static void ChangeMaxBPM( const RString &sNew ) GAMESTATE->m_pCurSong->m_fSpecifiedBPMMax = StringToFloat( sNew ); } +void ScreenEdit::DisplayTimingMenu() +{ + TimingData pTime = m_pSteps->m_Timing; + const float fBeat = GAMESTATE->m_pPlayerState[PLAYER_1]->m_Position.m_fSongBeat; + g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetBPMAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[stop].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetStopAtBeat( fBeat ) ) ) ; + g_TimingDataInformation.rows[delay].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetDelayAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[time_signature_numerator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureNumeratorAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[time_signature_denominator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureDenominatorAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[combo].SetOneUnthemedChoice( ssprintf("%d", pTime.GetComboAtBeat( fBeat ) ) ); + g_TimingDataInformation.rows[label].SetOneUnthemedChoice( pTime.GetLabelAtBeat( fBeat ).c_str() ); + g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetWarpAtBeat( fBeat ) ) ); + + EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation ); +} + // End helper functions static LocalizedString REVERT_LAST_SAVE ( "ScreenEdit", "Do you want to revert to your last save?" ); @@ -3259,19 +3284,7 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector &iAns break; case edit_timing_data: { - TimingData pTime = m_pSteps->m_Timing; - const float fBeat = GAMESTATE->m_pPlayerState[PLAYER_1]->m_Position.m_fSongBeat; - g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetBPMAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[stop].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetStopAtBeat( fBeat ) ) ) ; - g_TimingDataInformation.rows[delay].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetDelayAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[time_signature_numerator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureNumeratorAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[time_signature_denominator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureDenominatorAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[combo].SetOneUnthemedChoice( ssprintf("%d", pTime.GetComboAtBeat( fBeat ) ) ); - g_TimingDataInformation.rows[label].SetOneUnthemedChoice( pTime.GetLabelAtBeat( fBeat ).c_str() ); - g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetWarpAtBeat( fBeat ) ) ); - - EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation ); + DisplayTimingMenu(); } break; diff --git a/src/ScreenEdit.h b/src/ScreenEdit.h index ea10ca22a2..58656f419a 100644 --- a/src/ScreenEdit.h +++ b/src/ScreenEdit.h @@ -86,6 +86,7 @@ enum EditButton EDIT_BUTTON_SNAP_PREV, EDIT_BUTTON_OPEN_EDIT_MENU, + EDIT_BUTTON_OPEN_TIMING_MENU, EDIT_BUTTON_OPEN_AREA_MENU, EDIT_BUTTON_OPEN_BGCHANGE_LAYER1_MENU, EDIT_BUTTON_OPEN_BGCHANGE_LAYER2_MENU, @@ -231,6 +232,9 @@ protected: float GetMaximumBeatForMoving() const; // don't allow Down key to go past this beat. void DoHelp(); + + /** @brief Display the TimingData menu for editing song and step timing. */ + void DisplayTimingMenu(); EditState m_EditState;