Have a MiniMenu of TimingData in ScreenEdit.
This commit is contained in:
@@ -831,6 +831,7 @@ Edit steps information=Edit steps information
|
|||||||
Exit Edit Mode=Exit Edit Mode
|
Exit Edit Mode=Exit Edit Mode
|
||||||
Edit stop=Edit stop
|
Edit stop=Edit stop
|
||||||
Edit delay=Edit delay
|
Edit delay=Edit delay
|
||||||
|
Edit Timing Data=Edit Timing Data
|
||||||
Edit time signature=Edit time signature (not working yet)
|
Edit time signature=Edit time signature (not working yet)
|
||||||
Edit time signature (top)=Edit time signature (beats per measure)
|
Edit time signature (top)=Edit time signature (beats per measure)
|
||||||
Edit time signature (bottom)=Edit time signature (single beat note value)
|
Edit time signature (bottom)=Edit time signature (single beat note value)
|
||||||
|
|||||||
@@ -3611,6 +3611,9 @@ Fallback="ScreenMiniMenu"
|
|||||||
[ScreenMiniMenuSongInformation]
|
[ScreenMiniMenuSongInformation]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
[ScreenMiniMenuTimingDataInformation]
|
||||||
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
[ScreenMiniMenuBackgroundChange]
|
[ScreenMiniMenuBackgroundChange]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
|||||||
+87
-74
@@ -71,6 +71,7 @@ AutoScreenMessage( SM_BackFromInsertCourseAttackPlayerOptions );
|
|||||||
AutoScreenMessage( SM_BackFromCourseModeMenu );
|
AutoScreenMessage( SM_BackFromCourseModeMenu );
|
||||||
AutoScreenMessage( SM_DoRevertToLastSave );
|
AutoScreenMessage( SM_DoRevertToLastSave );
|
||||||
AutoScreenMessage( SM_DoRevertFromDisk );
|
AutoScreenMessage( SM_DoRevertFromDisk );
|
||||||
|
AutoScreenMessage( SM_BackFromTimingDataInformation );
|
||||||
AutoScreenMessage( SM_BackFromBPMChange );
|
AutoScreenMessage( SM_BackFromBPMChange );
|
||||||
AutoScreenMessage( SM_BackFromStopChange );
|
AutoScreenMessage( SM_BackFromStopChange );
|
||||||
AutoScreenMessage( SM_BackFromDelayChange );
|
AutoScreenMessage( SM_BackFromDelayChange );
|
||||||
@@ -506,12 +507,7 @@ static MenuDef g_MainMenu(
|
|||||||
MenuRowDef( ScreenEdit::revert_from_disk, "Revert from disk", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::revert_from_disk, "Revert from disk", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::options, "Editor options", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::options, "Editor options", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_song_info, "Edit song info", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::edit_song_info, "Edit song info", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_bpm, "Edit BPM change", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::edit_timing_data, "Edit Timing Data", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_stop, "Edit stop", true, EditMode_Full, true, true, 0, NULL ),
|
|
||||||
MenuRowDef( ScreenEdit::edit_delay, "Edit delay", true, EditMode_Full, true, true, 0, NULL ),
|
|
||||||
//MenuRowDef( ScreenEdit::edit_time_signature, "Edit time signature", true, EditMode_Full, true, true, 0, NULL ),
|
|
||||||
MenuRowDef( ScreenEdit::edit_time_signature_numerator, "Edit time signature (top)", true, EditMode_Full, true, true, 0, NULL ),
|
|
||||||
MenuRowDef( ScreenEdit::edit_time_signature_denominator,"Edit time signature (bottom)", true, EditMode_Full, true, true, 0, NULL ),
|
|
||||||
MenuRowDef( ScreenEdit::play_preview_music, "Play preview music", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::play_preview_music, "Play preview music", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::exit, "Exit Edit Mode", true, EditMode_Practice, true, true, 0, NULL )
|
MenuRowDef( ScreenEdit::exit, "Exit Edit Mode", true, EditMode_Practice, true, true, 0, NULL )
|
||||||
);
|
);
|
||||||
@@ -572,6 +568,16 @@ static MenuDef g_SongInformation(
|
|||||||
MenuRowDef( ScreenEdit::last_beat_hint, "Last beat hint", true, EditMode_Full, true, true, 0, NULL )
|
MenuRowDef( ScreenEdit::last_beat_hint, "Last beat hint", true, EditMode_Full, true, true, 0, NULL )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
static MenuDef g_TimingDataInformation(
|
||||||
|
"ScreenMiniMenuTimingDataInformation",
|
||||||
|
MenuRowDef( ScreenEdit::bpm, "Edit BPM change", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::stop, "Edit stop", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::delay, "Edit delay", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::time_signature_numerator, "Edit time signature (top)", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::time_signature_denominator, "Edit time signature (bottom)", true, EditMode_Full, true, true, 0, NULL )
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
enum { song_bganimation, song_movie, song_bitmap, global_bganimation, global_movie, global_movie_song_group, global_movie_song_group_and_genre, dynamic_random, baked_random, none };
|
enum { song_bganimation, song_movie, song_bitmap, global_bganimation, global_movie, global_movie_song_group, global_movie_song_group_and_genre, dynamic_random, baked_random, none };
|
||||||
static bool EnabledIfSet1SongBGAnimation();
|
static bool EnabledIfSet1SongBGAnimation();
|
||||||
static bool EnabledIfSet1SongMovie();
|
static bool EnabledIfSet1SongMovie();
|
||||||
@@ -2556,6 +2562,10 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
||||||
}
|
}
|
||||||
|
else if( SM == SM_BackFromTimingDataInformation )
|
||||||
|
{
|
||||||
|
HandleTimingDataInformationChoice( (TimingDataInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
||||||
|
}
|
||||||
else if( SM == SM_BackFromBPMChange )
|
else if( SM == SM_BackFromBPMChange )
|
||||||
{
|
{
|
||||||
float fBPM = StringToFloat( ScreenTextEntry::s_sLastAnswer );
|
float fBPM = StringToFloat( ScreenTextEntry::s_sLastAnswer );
|
||||||
@@ -2901,11 +2911,6 @@ static LocalizedString REVERT_LAST_SAVE ( "ScreenEdit", "Do you want to revert
|
|||||||
static LocalizedString DESTROY_ALL_UNSAVED_CHANGES ( "ScreenEdit", "This will destroy all unsaved changes." );
|
static LocalizedString DESTROY_ALL_UNSAVED_CHANGES ( "ScreenEdit", "This will destroy all unsaved changes." );
|
||||||
static LocalizedString REVERT_FROM_DISK ( "ScreenEdit", "Do you want to revert from disk?" );
|
static LocalizedString REVERT_FROM_DISK ( "ScreenEdit", "Do you want to revert from disk?" );
|
||||||
static LocalizedString SAVE_CHANGES_BEFORE_EXITING ( "ScreenEdit", "Do you want to save changes before exiting?" );
|
static LocalizedString SAVE_CHANGES_BEFORE_EXITING ( "ScreenEdit", "Do you want to save changes before exiting?" );
|
||||||
static LocalizedString ENTER_BPM_VALUE ( "ScreenEdit", "Enter a new BPM value." );
|
|
||||||
static LocalizedString ENTER_STOP_VALUE ( "ScreenEdit", "Enter a new Stop value." );
|
|
||||||
static LocalizedString ENTER_DELAY_VALUE ( "ScreenEdit", "Enter a new Delay value." );
|
|
||||||
static LocalizedString ENTER_TIME_SIGNATURE_NUMERATOR_VALUE ( "ScreenEdit", "Enter a new Time Signature numerator value." );
|
|
||||||
static LocalizedString ENTER_TIME_SIGNATURE_DENOMINATOR_VALUE ( "ScreenEdit", "Enter a new Time Signature denominator value." );
|
|
||||||
|
|
||||||
void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAnswers )
|
void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAnswers )
|
||||||
{
|
{
|
||||||
@@ -3091,70 +3096,21 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
EditMiniMenu( &g_SongInformation, SM_BackFromSongInformation );
|
EditMiniMenu( &g_SongInformation, SM_BackFromSongInformation );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case edit_bpm:
|
case edit_timing_data:
|
||||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
{
|
||||||
ScreenTextEntry::TextEntry(
|
const Song* pSong = GAMESTATE->m_pCurSong;
|
||||||
SM_BackFromBPMChange,
|
TimingData pTime = pSong->m_Timing;
|
||||||
ENTER_BPM_VALUE,
|
const float fBeat = GAMESTATE->m_fSongBeat;
|
||||||
ssprintf( "%.4f", m_pSong->GetBPMAtBeat(GAMESTATE->m_fSongBeat) ),
|
g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.5f", pSong->GetBPMAtBeat( fBeat ) ) );
|
||||||
10
|
g_TimingDataInformation.rows[stop].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetStopAtBeat( fBeat ) ) ) ;
|
||||||
);
|
g_TimingDataInformation.rows[delay].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetDelayAtBeat( fBeat ) ) );
|
||||||
break;
|
g_TimingDataInformation.rows[time_signature_numerator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureNumeratorAtBeat( fBeat ) ) );
|
||||||
case edit_stop:
|
g_TimingDataInformation.rows[time_signature_denominator].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTimeSignatureDenominatorAtBeat( fBeat ) ) );
|
||||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
|
||||||
bool bThrowaway; // is it?
|
EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation );
|
||||||
ScreenTextEntry::TextEntry(
|
}
|
||||||
SM_BackFromStopChange,
|
|
||||||
ENTER_STOP_VALUE,
|
|
||||||
ssprintf( "%.4f", m_pSong->m_Timing.GetStopAtRow( BeatToNoteRow(GAMESTATE->m_fSongBeat), bThrowaway ) ),
|
|
||||||
10
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
case edit_delay:
|
|
||||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
|
||||||
ScreenTextEntry::TextEntry(
|
|
||||||
SM_BackFromDelayChange,
|
|
||||||
ENTER_DELAY_VALUE,
|
|
||||||
ssprintf( "%.4f", m_pSong->m_Timing.GetStopAtRow( BeatToNoteRow(GAMESTATE->m_fSongBeat), bThrowaway ) ),
|
|
||||||
10
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
/*
|
|
||||||
The following code does not work due to problems with having two
|
|
||||||
ScreenTextEntry's at the same time. A proper fix is not known
|
|
||||||
at the time of this comment. -wolfman2000
|
|
||||||
case edit_time_signature:
|
|
||||||
// These need to be in reverse order due to the stack nature.
|
|
||||||
ScreenTextEntry::TextEntry(
|
|
||||||
SM_BackFromTimeSignatureDenominatorChange,
|
|
||||||
ENTER_TIME_SIGNATURE_DENOMINATOR_VALUE,
|
|
||||||
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iDenominator ),
|
|
||||||
3
|
|
||||||
);
|
|
||||||
ScreenTextEntry::TextEntry(
|
|
||||||
SM_BackFromTimeSignatureNumeratorChange,
|
|
||||||
ENTER_TIME_SIGNATURE_NUMERATOR_VALUE,
|
|
||||||
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iNumerator ),
|
|
||||||
3
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
case edit_time_signature_numerator:
|
|
||||||
ScreenTextEntry::TextEntry(
|
|
||||||
SM_BackFromTimeSignatureNumeratorChange,
|
|
||||||
ENTER_TIME_SIGNATURE_NUMERATOR_VALUE,
|
|
||||||
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iNumerator ),
|
|
||||||
3
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
case edit_time_signature_denominator:
|
|
||||||
ScreenTextEntry::TextEntry(
|
|
||||||
SM_BackFromTimeSignatureDenominatorChange,
|
|
||||||
ENTER_TIME_SIGNATURE_DENOMINATOR_VALUE,
|
|
||||||
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iDenominator ),
|
|
||||||
3
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case play_preview_music:
|
case play_preview_music:
|
||||||
PlayPreviewMusic();
|
PlayPreviewMusic();
|
||||||
break;
|
break;
|
||||||
@@ -3571,6 +3527,63 @@ void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vec
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static LocalizedString ENTER_BPM_VALUE ( "ScreenEdit", "Enter a new BPM value." );
|
||||||
|
static LocalizedString ENTER_STOP_VALUE ( "ScreenEdit", "Enter a new Stop value." );
|
||||||
|
static LocalizedString ENTER_DELAY_VALUE ( "ScreenEdit", "Enter a new Delay value." );
|
||||||
|
static LocalizedString ENTER_TIME_SIGNATURE_NUMERATOR_VALUE ( "ScreenEdit", "Enter a new Time Signature numerator value." );
|
||||||
|
static LocalizedString ENTER_TIME_SIGNATURE_DENOMINATOR_VALUE ( "ScreenEdit", "Enter a new Time Signature denominator value." );
|
||||||
|
void ScreenEdit::HandleTimingDataInformationChoice( TimingDataInformationChoice c, const vector<int> &iAnswers )
|
||||||
|
{
|
||||||
|
switch( c )
|
||||||
|
{
|
||||||
|
DEFAULT_FAIL( c );
|
||||||
|
case bpm:
|
||||||
|
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||||
|
ScreenTextEntry::TextEntry(
|
||||||
|
SM_BackFromBPMChange,
|
||||||
|
ENTER_BPM_VALUE,
|
||||||
|
ssprintf( "%.4f", m_pSong->GetBPMAtBeat(GAMESTATE->m_fSongBeat) ),
|
||||||
|
10
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case stop:
|
||||||
|
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||||
|
bool bThrowaway; // is it?
|
||||||
|
ScreenTextEntry::TextEntry(
|
||||||
|
SM_BackFromStopChange,
|
||||||
|
ENTER_STOP_VALUE,
|
||||||
|
ssprintf( "%.4f", m_pSong->m_Timing.GetStopAtRow( BeatToNoteRow(GAMESTATE->m_fSongBeat), bThrowaway ) ),
|
||||||
|
10
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case delay:
|
||||||
|
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||||
|
ScreenTextEntry::TextEntry(
|
||||||
|
SM_BackFromDelayChange,
|
||||||
|
ENTER_DELAY_VALUE,
|
||||||
|
ssprintf( "%.4f", m_pSong->m_Timing.GetStopAtRow( BeatToNoteRow(GAMESTATE->m_fSongBeat), bThrowaway ) ),
|
||||||
|
10
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case time_signature_numerator:
|
||||||
|
ScreenTextEntry::TextEntry(
|
||||||
|
SM_BackFromTimeSignatureNumeratorChange,
|
||||||
|
ENTER_TIME_SIGNATURE_NUMERATOR_VALUE,
|
||||||
|
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iNumerator ),
|
||||||
|
3
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case time_signature_denominator:
|
||||||
|
ScreenTextEntry::TextEntry(
|
||||||
|
SM_BackFromTimeSignatureDenominatorChange,
|
||||||
|
ENTER_TIME_SIGNATURE_DENOMINATOR_VALUE,
|
||||||
|
ssprintf( "%d", m_pSong->m_Timing.GetTimeSignatureSegmentAtBeat( GAMESTATE->m_fSongBeat ).m_iDenominator ),
|
||||||
|
3
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ScreenEdit::HandleBGChangeChoice( BGChangeChoice c, const vector<int> &iAnswers )
|
void ScreenEdit::HandleBGChangeChoice( BGChangeChoice c, const vector<int> &iAnswers )
|
||||||
{
|
{
|
||||||
BackgroundChange newChange;
|
BackgroundChange newChange;
|
||||||
|
|||||||
+14
-6
@@ -310,12 +310,7 @@ public:
|
|||||||
revert_from_disk,
|
revert_from_disk,
|
||||||
options,
|
options,
|
||||||
edit_song_info,
|
edit_song_info,
|
||||||
edit_bpm,
|
edit_timing_data,
|
||||||
edit_stop,
|
|
||||||
edit_delay,
|
|
||||||
// edit_time_signature,
|
|
||||||
edit_time_signature_numerator,
|
|
||||||
edit_time_signature_denominator,
|
|
||||||
play_preview_music,
|
play_preview_music,
|
||||||
exit,
|
exit,
|
||||||
save_on_exit,
|
save_on_exit,
|
||||||
@@ -443,6 +438,19 @@ public:
|
|||||||
};
|
};
|
||||||
void HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers );
|
void HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers );
|
||||||
|
|
||||||
|
enum TimingDataInformationChoice
|
||||||
|
{
|
||||||
|
bpm,
|
||||||
|
stop,
|
||||||
|
delay,
|
||||||
|
// time_signature,
|
||||||
|
time_signature_numerator,
|
||||||
|
time_signature_denominator,
|
||||||
|
NUM_TIMING_DATA_INFORMATION_CHOICES
|
||||||
|
};
|
||||||
|
|
||||||
|
void HandleTimingDataInformationChoice ( TimingDataInformationChoice c, const vector<int> &iAnswers );
|
||||||
|
|
||||||
enum BGChangeChoice
|
enum BGChangeChoice
|
||||||
{
|
{
|
||||||
layer,
|
layer,
|
||||||
|
|||||||
Reference in New Issue
Block a user