diff --git a/stepmania/Themes/default/Scripts/Branches.lua b/stepmania/Themes/default/Scripts/Branches.lua index 35e1c48cf3..46ef713faa 100644 --- a/stepmania/Themes/default/Scripts/Branches.lua +++ b/stepmania/Themes/default/Scripts/Branches.lua @@ -1,3 +1,22 @@ +function SongSelectionScreen() + if PlayModeName() == "Nonstop" then return "ScreenSelectCourseNonstop" end + if PlayModeName() == "Oni" then return "ScreenSelectCourseOni" end + if PlayModeName() == "Endless" then return "ScreenSelectCourseEndless" end + if IsNetSMOnline() then return LoginScreen() end + if IsNetConnected() then return "ScreenNetSelectMusic" end + return "ScreenSelectMusic" +end + +function LoginScreen() + if not IsSMOnlineLoggedIn(1) and IsPlayerEnabled(1) then + return "ScreenSMOnlineLogin1" + elseif not IsSMOnlineLoggedIn(2) and IsPlayerEnabled(2) then + return "ScreenSMOnlineLogin2" + else + return "ScreenNetRoom" + end +end + function SelectGameplayScreen() if IsExtraStage() or IsExtraStage2() then return "ScreenGameplay" end return "ScreenGameplay" @@ -13,3 +32,14 @@ function SelectEvaluationScreen() if( Mode == "Rave" ) then return "ScreenEvaluationRave" end if( Mode == "Battle" ) then return "ScreenEvaluationBattle" end end + +function SelectFirstOptionsScreen() + if PlayModeName() == "Rave" then return ScreenRaveOptions end + return "ScreenPlayerOptions" +end + +function SelectEndingScreen() + if GetBestFinalGrade() >= Grade("AAA") then return "ScreenMusicScroll" end + return "ScreenCredits" +end + diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 9261d43c3c..0cc6aa0d8b 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -693,7 +693,7 @@ MemoryCardIcons=1 SampleMusicDelay=0.25 PrevScreen=ScreenTitleBranch NextScreen=ScreenStage -NextOptionsScreen=ScreenBranchFirstOptions +NextOptionsScreen=@SelectFirstOptionsScreen() DoRouletteOnMenuTimer=1 AlignMusicBeat=0 Codes= @@ -748,18 +748,6 @@ ScoreFrameP2OnCommand=hidden,1 Fallback=ScreenSelectCourse DefaultSort=Endless -[ScreenSMOnlineLoginSet] -Class=ScreenBranch -Choices=1,2,3 - //( IsPlayerEnabled(1) && not( IsSMOnlineLoggedIn(1) ) ) -Condition1= ( not IsSMOnlineLoggedIn(1) ) and ( IsPlayerEnabled(1) ) - //( IsPlayerEnabled(2) && not( IsSMOnlineLoggedIn(2) ) ) -Condition2= ( not IsSMOnlineLoggedIn(2) ) and ( IsPlayerEnabled(2) ) -Condition3=true -NextScreen1=screen,ScreenSMOnlineLogin1 -NextScreen2=screen,ScreenSMOnlineLogin2 -NextScreen3=screen,ScreenNetRoom - [ScreenSMOnlineLogin1] PlayerNumber=1 Class=ScreenSMOnlineLogin @@ -772,7 +760,7 @@ Fallback=ScreenSMOnlineLogin [ScreenSMOnlineLogin] PasswordBG= -NextScreen=ScreenSMOnlineLoginSet +NextScreen=@LoginScreen() PrevScreen=ScreenTitleBranch PasswordBGX=320 PasswordBGY=260 @@ -1034,7 +1022,7 @@ 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 PrevScreen=ScreenTitleBranch NextScreen=ScreenStage -NextOptionsScreen=ScreenBranchFirstOptions +NextOptionsScreen=@SelectFirstOptionsScreen() TimerSeconds=60 TimerStealth=0 StyleIcon=0 @@ -1042,7 +1030,7 @@ MemoryCardIcons=0 [ScreenStage] NextScreen=@SelectGameplayScreen() -PrevScreen=ScreenBranchSelectSongOrCourse +PrevScreen=@SongSelectionScreen() // This is the minimum delay after the "in" transition before the // "out" transition will begin. (NextScreen is loaded during this // time.) @@ -1077,7 +1065,7 @@ OverlayOffCommand= ShowEvaluationOnFail=0 StaticBGY=SCREEN_CENTER_Y+0 StaticBGX=SCREEN_CENTER_X+0 -PrevScreen=ScreenBranchSelectSongOrCourse +PrevScreen=@SongSelectionScreen() NextScreen=@SelectEvaluationScreen() InitialBackgroundBrightnessRegular=1 InitialBackgroundBrightnessNonstop=1 @@ -3362,7 +3350,7 @@ TimerSeconds=24 MaxRankingNameLength=4 StyleIcon=1 MemoryCardIcons=1 -NextScreen=ScreenBranchEnding +NextScreen=@SelectEndingScreen() PlayerP1OnePlayerOneSideX=SCREEN_CENTER_X-160 PlayerP2OnePlayerOneSideX=SCREEN_CENTER_X+160 PlayerP1TwoPlayersTwoSidesX=SCREEN_CENTER_X-160 @@ -3370,14 +3358,6 @@ PlayerP2TwoPlayersTwoSidesX=SCREEN_CENTER_X+160 PlayerP1OnePlayerTwoSidesX=SCREEN_CENTER_X PlayerP2OnePlayerTwoSidesX=SCREEN_CENTER_X -[ScreenBranchEnding] -Class=ScreenBranch -Choices=Credits,MusicScroll -ConditionCredits=GetBestFinalGrade() <= Grade("AA") -ConditionMusicScroll=true -NextScreenCredits=screen,ScreenCredits -NextScreenMusicScroll=screen,ScreenMusicScroll - [EditMenu] Arrows1X=SCREEN_CENTER_X-130 Arrows2X=SCREEN_CENTER_X+270 @@ -3552,18 +3532,6 @@ LineNames=1 OptionMenuFlags=together Line1=conf,Game -[ScreenBranchSelectSongOrCourse] -Class=ScreenBranch -Choices=1,2,3,4 -Condition1=PlayModeName() == "Nonstop" -Condition2=PlayModeName() == "Oni" -Condition3=PlayModeName() == "Endless" -Condition4=true -NextScreen1=screen,ScreenSelectCourseNonstop -NextScreen2=screen,ScreenSelectCourseOni -NextScreen3=screen,ScreenSelectCourseEndless -NextScreen4=screen,ScreenSelectBranchForNet - [ScreenEvaluationExitBranch] Class=ScreenBranch Choices=1,2,3 @@ -3574,19 +3542,9 @@ NextScreen1=screen,ScreenNetRoom NextScreen2=screen,ScreenNetSelectMusic NextScreen3=screen,ScreenSelectMusic -[ScreenSelectBranchForNet] -Class=ScreenBranch -Choices=1,2,3 -Condition1=IsNetSMOnline() -Condition2=IsNetConnected() -Condition3=true -NextScreen1=screen,ScreenSMOnlineLoginSet -NextScreen2=screen,ScreenNetSelectMusic -NextScreen3=screen,ScreenSelectMusic - [ScreenPlayerOptions] Fallback=ScreenOptions -PrevScreen=ScreenBranchSelectSongOrCourse +PrevScreen=@SongSelectionScreen() NextScreen=ScreenSongOptions TimerSeconds=30 StyleIcon=0 @@ -3635,17 +3593,9 @@ 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] Fallback=ScreenOptions -PrevScreen=ScreenBranchFirstOptions +PrevScreen=@SelectFirstOptionsScreen() NextScreen=ScreenStage Game=Change the current game type with this option. TimerSeconds=30 @@ -3731,7 +3681,7 @@ TimerSeconds=40 StyleIcon=1 MemoryCardIcons=1 PrevScreen=ScreenTitleBranch -NextScreen=ScreenBranchSelectSongOrCourse +NextScreen=@SongSelectionScreen() [BeginnerHelper] # All X,Y coordinates are relative to the HelperX,Y