diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 3959df75ab..7a30c79338 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -561,12 +561,7 @@ CropWidth=146 InitCommand=horizalign,left;vertalign,top;shadowlength,2;zoom,0.5; [ScreenInstructions] -NextScreenArcade=ScreenSelectCharacter -NextScreenNonstop=ScreenSelectCharacter -NextScreenOni=ScreenSelectCharacter -NextScreenEndless=ScreenSelectCharacter -NextScreenBattle=ScreenSelectCharacter -NextScreenRave=ScreenSelectCharacter +NextScreen=ScreenSelectCharacter TimerSeconds=15 StyleIcon=1 MemoryCardIcons=1 @@ -749,18 +744,10 @@ MemoryCardIcons=1 SampleMusicDelay=0.25 PrevScreen=ScreenTitleMenu NextScreen=ScreenStage -NextOptionsScreen=ScreenBranchOptions +NextOptionsScreen=ScreenBranchFirstOptions DoRouletteOnMenuTimer=1 AlignMusicBeat=0 -[ScreenBranchOptions] -Class=ScreenBranch -Choices=Rave,Normal -ConditionRave=PlayModeName() == "rave" -ConditionNormal=true -NextScreenRave=screen,ScreenRaveOptions -NextScreenNormal=screen,ScreenPlayerOptions - [ScreenEz2SelectMusic] UseModeSwitcher=0 BalloonX=492 @@ -812,24 +799,9 @@ DifficultyRatingY=999 DifficultyRatingOrientation=0 DifficultyRatingSpacing=40.0 PreviewMusicMode=0 // 0 = play music as you select, 1 = no music plays, select once and preview music plays, select again for confirm, 2 = no music plays at all, 3 = play music as select, press twice to confirm, 4 = static menu music plays, no confirm -PrevScreenArcade=ScreenTitleMenu -PrevScreenNonstop=ScreenTitleMenu -PrevScreenOni=ScreenTitleMenu -PrevScreenEndless=ScreenTitleMenu -PrevScreenBattle=ScreenTitleMenu -PrevScreenRave=ScreenTitleMenu -NextScreenArcade=ScreenStage -NextScreenNonstop=ScreenStage -NextScreenOni=ScreenStage -NextScreenEndless=ScreenStage -NextScreenBattle=ScreenStage -NextScreenRave=ScreenStage -NextOptionsScreenArcade=ScreenPlayerOptions -NextOptionsScreenNonstop=ScreenPlayerOptions -NextOptionsScreenOni=ScreenPlayerOptions -NextOptionsScreenEndless=ScreenPlayerOptions -NextOptionsScreenBattle=ScreenPlayerOptions -NextOptionsScreenRave=ScreenRaveOptions +PrevScreen=ScreenTitleMenu +NextScreen=ScreenStage +NextOptionsScreen=ScreenBranchFirstOptions TimerSeconds=60 StyleIcon=0 MemoryCardIcons=0 @@ -887,18 +859,8 @@ BannerOffCommand=hidden,1 ShowEvaluationOnFail=0 StaticBGY=240 StaticBGX=320 -PrevScreenArcade=ScreenSelectMusic -PrevScreenNonstop=ScreenSelectCourse -PrevScreenOni=ScreenSelectCourse -PrevScreenEndless=ScreenSelectCourse -PrevScreenBattle=ScreenSelectMusic -PrevScreenRave=ScreenSelectMusic -NextScreenArcade=ScreenEvaluationStage -NextScreenNonstop=ScreenEvaluationNonstop -NextScreenOni=ScreenEvaluationOni -NextScreenEndless=ScreenEvaluationEndless -NextScreenBattle=ScreenEvaluationBattle -NextScreenRave=ScreenEvaluationRave +PrevScreen=ScreenBranchSelectSongOrCourse +NextScreen=ScreenBranchEvaluation InitialBackgroundBrightnessArcade=1 InitialBackgroundBrightnessNonstop=1 InitialBackgroundBrightnessOni=1 @@ -1125,6 +1087,22 @@ SongPositionMeterY= SongPositionMeterOnCommand=hidden,1 SongPositionMeterOffCommand= +[ScreenBranchEvaluation] +Class=ScreenBranch +Choices=1,2,3,4,5,6 +Condition1=PlayModeName() == "Arcade" +Condition2=PlayModeName() == "Nonstop" +Condition3=PlayModeName() == "Oni" +Condition4=PlayModeName() == "Endless" +Condition5=PlayModeName() == "Rave" +Condition6=PlayModeName() == "Battle" +NextScreen1=screen,ScreenEvaluationStage +NextScreen2=screen,ScreenEvaluationNonstop +NextScreen3=screen,ScreenEvaluationOni +NextScreen4=screen,ScreenEvaluationEndless +NextScreen5=screen,ScreenEvaluationRave +NextScreen6=screen,ScreenEvaluationBattle + [ScreenEvaluation] Class=ScreenEvaluation FailedSoundTime=0 @@ -3871,26 +3849,23 @@ LineNames=1 OptionMenuFlags=together Line1=conf,Game -[ScreenPlayerOptions] +[ScreenBranchSelectSongOrCourse] +Class=ScreenBranch +Choices=1,2 +Condition1=IsCourseMode() +Condition2=true +NextScreen1=screen,ScreenSelectCourse +NextScreen2=screen,ScreenSelectMusic -PrevScreenArcade=ScreenSelectMusic -PrevScreenNonstop=ScreenSelectCourse -PrevScreenOni=ScreenSelectCourse -PrevScreenEndless=ScreenSelectCourse -PrevScreenBattle=ScreenSelectMusic -PrevScreenRave=ScreenSelectMusic -NextScreenArcade=ScreenSongOptions -NextScreenNonstop=ScreenSongOptions -NextScreenOni=ScreenSongOptions -NextScreenEndless=ScreenSongOptions -NextScreenBattle=ScreenSongOptions -NextScreenRave=ScreenSongOptions +[ScreenPlayerOptions] +PrevScreen=ScreenBranchSelectSongOrCourse +NextScreen=ScreenSongOptions TimerSeconds=30 StyleIcon=0 MemoryCardIcons=0 -PrevScreen= -NextScreen= +PrevScreen=ScreenBranchSelectSongOrCourse +NextScreen=ScreenSongOptions LineNames=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 OptionMenuFlags= @@ -3937,26 +3912,24 @@ Line3=list,NoteSkins Line4=list,Persp Line5=Steps +[ScreenBranchFirstOptions] +Class=ScreenBranch +Choices=1,2 +Condition1=PlayModeName() == "Rave" +Condition2=true +NextScreen1=screen,ScreenRaveOptions +NextScreen2=screen,ScreenPlayerOptions + [ScreenSongOptions] -PrevScreenArcade=ScreenPlayerOptions -PrevScreenNonstop=ScreenPlayerOptions -PrevScreenOni=ScreenPlayerOptions -PrevScreenEndless=ScreenPlayerOptions -PrevScreenBattle=ScreenPlayerOptions -PrevScreenRave=ScreenRaveOptions -NextScreenArcade=ScreenStage -NextScreenNonstop=ScreenStage -NextScreenOni=ScreenStage -NextScreenEndless=ScreenStage -NextScreenBattle=ScreenStage -NextScreenRave=ScreenStage +PrevScreen=ScreenBranchFirstOptions +NextScreen=ScreenStage Game=Change the current game type with this option. TimerSeconds=30 StyleIcon=0 MemoryCardIcons=0 -PrevScreen=ScreenOptionsMenu -NextScreen=ScreenOptionsMenu +PrevScreen=ScreenBranchFirstOptions +NextScreen=ScreenStage LineNames=1,2,3,4,5,6,7,8 OptionMenuFlags= @@ -4037,18 +4010,8 @@ SleepAfterTweenOffSeconds=0.8 TimerSeconds=40 StyleIcon=1 MemoryCardIcons=1 -PrevScreenArcade=ScreenTitleMenu -PrevScreenNonstop=ScreenTitleMenu -PrevScreenOni=ScreenTitleMenu -PrevScreenEndless=ScreenTitleMenu -PrevScreenBattle=ScreenTitleMenu -PrevScreenRave=ScreenTitleMenu -NextScreenArcade=ScreenSelectMusic -NextScreenNonstop=ScreenSelectCourse -NextScreenOni=ScreenSelectCourse -NextScreenEndless=ScreenSelectCourse -NextScreenBattle=ScreenSelectMusic -NextScreenRave=ScreenSelectMusic +PrevScreen=ScreenTitleMenu +NextScreen=ScreenBranchSelectSongOrCourse [BeginnerHelper] # All X,Y coordinates are relative to the HelperX,Y diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index bb69a08da2..17a7164691 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -53,8 +53,8 @@ // // Defines // -#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenGameplay","PrevScreen"+Capitalize(PlayModeToString(play_mode))) -#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenGameplay","NextScreen"+Capitalize(PlayModeToString(play_mode))) +#define PREV_SCREEN THEME->GetMetric ("ScreenGameplay","PrevScreen") +#define NEXT_SCREEN THEME->GetMetric ("ScreenGameplay","NextScreen") #define SHOW_LIFE_METER_FOR_DISABLED_PLAYERS THEME->GetMetricB("ScreenGameplay","ShowLifeMeterForDisabledPlayers") #define EVAL_ON_FAIL THEME->GetMetricB("ScreenGameplay","ShowEvaluationOnFail") #define SHOW_SCORE_IN_RAVE THEME->GetMetricB("ScreenGameplay","ShowScoreInRave") @@ -2145,7 +2145,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) GAMESTATE->CancelStage(); - SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( PREV_SCREEN ); break; case SM_GoToStateAfterCleared: @@ -2159,7 +2159,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) SongFinished(); StageFinished( false ); - SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( NEXT_SCREEN ); break; case SM_LoseFocus: @@ -2218,7 +2218,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) if(EVAL_ON_FAIL) // go to the eval screen if we fail SCREENMAN->SetNewScreen( "ScreenEvaluationStage" ); else // the theme says just fail and go back to the song select for event mode - SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( PREV_SCREEN ); } else if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) SCREENMAN->SetNewScreen( "ScreenEvaluationStage" ); diff --git a/stepmania/src/ScreenInstructions.cpp b/stepmania/src/ScreenInstructions.cpp index 4222021487..2cce6e6c81 100644 --- a/stepmania/src/ScreenInstructions.cpp +++ b/stepmania/src/ScreenInstructions.cpp @@ -21,9 +21,9 @@ #include "PrefsManager.h" -#define HELP_TEXT THEME->GetMetric("ScreenInstructions","HelpText") -#define TIMER_SECONDS THEME->GetMetricI("ScreenInstructions","TimerSeconds") -#define NEXT_SCREEN( pm ) THEME->GetMetric("ScreenInstructions","NextScreen"+Capitalize(PlayModeToString(pm)) ) +#define HELP_TEXT THEME->GetMetric("ScreenInstructions","HelpText") +#define TIMER_SECONDS THEME->GetMetricI("ScreenInstructions","TimerSeconds") +#define NEXT_SCREEN THEME->GetMetric("ScreenInstructions","NextScreen") ScreenInstructions::ScreenInstructions( CString sName ) : Screen( sName ) @@ -114,7 +114,7 @@ void ScreenInstructions::HandleScreenMessage( const ScreenMessage SM ) SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); break; case SM_GoToNextScreen: - SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( NEXT_SCREEN ); break; } } diff --git a/stepmania/src/ScreenOptionsMaster.cpp b/stepmania/src/ScreenOptionsMaster.cpp index b23a5c7847..05c5b59489 100644 --- a/stepmania/src/ScreenOptionsMaster.cpp +++ b/stepmania/src/ScreenOptionsMaster.cpp @@ -570,8 +570,7 @@ void ScreenOptionsMaster::ExportOptions() } CHECKPOINT; - // NEXT_SCREEN(GAMESTATE->m_PlayMode) ); - // XXX: handle different destinations based on play mode? + // NEXT_SCREEN; if( m_NextScreen == "" ) m_NextScreen = NEXT_SCREEN; diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index bee99c10dd..4851ae9f8f 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -20,8 +20,8 @@ #include "CodeDetector.h" -#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenPlayerOptions","PrevScreen"+Capitalize(PlayModeToString(play_mode))) -#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenPlayerOptions","NextScreen"+Capitalize(PlayModeToString(play_mode))) +#define PREV_SCREEN THEME->GetMetric ("ScreenPlayerOptions","PrevScreen") +#define NEXT_SCREEN THEME->GetMetric ("ScreenPlayerOptions","NextScreen") ScreenPlayerOptions::ScreenPlayerOptions( CString sClassName ) : ScreenOptionsMaster( sClassName ) @@ -68,7 +68,7 @@ void ScreenPlayerOptions::GoToPrevState() if( GAMESTATE->m_bEditing ) SCREENMAN->PopTopScreen(); else - SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( PREV_SCREEN ); } void ScreenPlayerOptions::GoToNextState() @@ -80,7 +80,7 @@ void ScreenPlayerOptions::GoToNextState() GAMESTATE->AdjustFailType(); if( m_bGoToOptions ) - SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( NEXT_SCREEN ); else SCREENMAN->SetNewScreen( ScreenSongOptions::GetNextScreen() ); } diff --git a/stepmania/src/ScreenSelectCharacter.cpp b/stepmania/src/ScreenSelectCharacter.cpp index fdb60cc553..0d116e689f 100644 --- a/stepmania/src/ScreenSelectCharacter.cpp +++ b/stepmania/src/ScreenSelectCharacter.cpp @@ -45,8 +45,8 @@ #define HELP_TEXT THEME->GetMetric ("ScreenSelectCharacter","HelpText") #define TIMER_SECONDS THEME->GetMetricI("ScreenSelectCharacter","TimerSeconds") #define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF("ScreenSelectCharacter","SleepAfterTweenOffSeconds") -#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenSelectCharacter","PrevScreen"+Capitalize(PlayModeToString(play_mode))) -#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenSelectCharacter","NextScreen"+Capitalize(PlayModeToString(play_mode))) +#define PREV_SCREEN THEME->GetMetric ("ScreenSelectCharacter","PrevScreen") +#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectCharacter","NextScreen") #define ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","IconWidth") #define ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","IconHeight") #define ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOnCommand",p+1)) @@ -214,10 +214,10 @@ void ScreenSelectCharacter::HandleScreenMessage( const ScreenMessage SM ) MenuStart(PLAYER_1); break; case SM_GoToPrevScreen: - SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( PREV_SCREEN ); break; case SM_GoToNextScreen: - SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( NEXT_SCREEN ); break; } } diff --git a/stepmania/src/ScreenSongOptions.cpp b/stepmania/src/ScreenSongOptions.cpp index 357d1ef118..f0df67d14f 100644 --- a/stepmania/src/ScreenSongOptions.cpp +++ b/stepmania/src/ScreenSongOptions.cpp @@ -15,13 +15,13 @@ #include "ThemeManager.h" #include "PrefsManager.h" -#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenSongOptions","PrevScreen"+Capitalize(PlayModeToString(play_mode))) -#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenSongOptions","NextScreen"+Capitalize(PlayModeToString(play_mode))) +#define PREV_SCREEN THEME->GetMetric ("ScreenSongOptions","PrevScreen") +#define NEXT_SCREEN THEME->GetMetric ("ScreenSongOptions","NextScreen") /* Get the next screen we'll go to when finished. */ CString ScreenSongOptions::GetNextScreen() { - return NEXT_SCREEN(GAMESTATE->m_PlayMode); + return NEXT_SCREEN; } @@ -42,7 +42,7 @@ void ScreenSongOptions::GoToPrevState() if( GAMESTATE->m_bEditing ) SCREENMAN->PopTopScreen( SM_None ); else - SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( PREV_SCREEN ); } void ScreenSongOptions::GoToNextState() @@ -50,5 +50,5 @@ void ScreenSongOptions::GoToNextState() if( GAMESTATE->m_bEditing ) SCREENMAN->PopTopScreen(); else - SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); + SCREENMAN->SetNewScreen( NEXT_SCREEN ); }