From dd5fa35ff0e73aa23e0463b471271b721186cdf1 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sat, 15 May 2010 15:56:45 -0500 Subject: [PATCH] The beginning of arcade mode stuff. Mainly only deals with TitleJoin and Demonstration at the moment and pretty much assumes Event Mode is on. --- Themes/_fallback/Scripts/02 Branches.lua | 14 +++- Themes/_fallback/metrics.ini | 82 ++++++++++++------- .../BGAnimations/ScreenDemonstration out.lua | 6 ++ .../ScreenDemonstration overlay/default.lua | 43 ++++++++++ .../BGAnimations/ScreenTitleJoin overlay.lua | 11 +++ Themes/default/Languages/en.ini | 9 ++ Themes/default/metrics.ini | 31 ++++++- 7 files changed, 163 insertions(+), 33 deletions(-) create mode 100644 Themes/default/BGAnimations/ScreenDemonstration out.lua create mode 100644 Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua create mode 100644 Themes/default/BGAnimations/ScreenTitleJoin overlay.lua diff --git a/Themes/_fallback/Scripts/02 Branches.lua b/Themes/_fallback/Scripts/02 Branches.lua index 69460fc16c..54112f82ae 100644 --- a/Themes/_fallback/Scripts/02 Branches.lua +++ b/Themes/_fallback/Scripts/02 Branches.lua @@ -25,7 +25,19 @@ function SelectMusicOrCourse() end; Branch = { - TitleMenu = "ScreenTitleMenu", + TitleMenu = function() + -- home mode is the most assumed use of sm-ssc. + if GAMESTATE:GetCoinMode() == "CoinMode_Home" then return "ScreenTitleMenu" end; + -- arcade junk: + if GAMESTATE:GetCoinsNeededToJoin() > GAMESTATE:GetCoins() then + -- if no credits are inserted, don't show the Join screen. SM4 has + -- this as the initial screen, but that means we'd be stuck in a + -- loop with ScreenInit. No good. + return "ScreenDemonstration"; + else + return "ScreenTitleJoin" + end; + end, AfterProfileLoad = function() return "ScreenSelectProfile" end, diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 62c1b6e2b3..3afa2ff90a 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -1302,8 +1302,8 @@ Class="ScreenAttract" Fallback="ScreenAttract" # PrevScreen="ScreenInit" -NextScreen="ScreenTitleMenu" -StartScreen="ScreenTitleMenu" +NextScreen=Branch.TitleMenu() +StartScreen=Branch.TitleMenu() # ForceTimer=true TimerSeconds=5 @@ -1318,7 +1318,7 @@ Fallback="ScreenSelectMaster" PrevScreen="ScreenInit" NextScreen="ScreenInit" # -CoinModeChangeScreen=Branch.TitleMenu +CoinModeChangeScreen=Branch.TitleMenu() # ScreenOnCommand=lockinput,0 LightsMode="LightsMode_Joining" @@ -1407,13 +1407,14 @@ LogoOffCommand= [ScreenTitleJoin] Fallback="ScreenTitleMenu" +ChoiceNames="1" [ScreenQuickSetupOverview] Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" # NextScreen=Branch.QuickSetupA -PrevScreen=Branch.TitleMenu +PrevScreen=Branch.TitleMenu() # TimerSeconds=-1 # @@ -1481,7 +1482,7 @@ ChoiceBack="name,Back;screen,".. Branch.QuickSetupC Class="ScreenSelectMaster" Fallback="ScreenQuickSetupOverview" # -NextScreen=Branch.TitleMenu +NextScreen=Branch.TitleMenu() PrevScreen=Branch.QuickSetupD # DefaultChoice="Set" @@ -1495,7 +1496,7 @@ Fallback="ScreenWithMenuElementsBlank" # NextScreen=Branch.AfterProfileLoad() #~ NextScreen="ScreenSelectProfile" -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # TimerSeconds=-1 # @@ -1506,7 +1507,7 @@ Fallback="ScreenWithMenuElements" Class="ScreenSelectProfile" # NextScreen=Branch.AfterSelectProfile() -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() StartScreen=Branch.AfterSelectProfile() # TimerSeconds=40 @@ -1525,7 +1526,7 @@ Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" # NextScreen=Branch.AfterSelectPlayMode() -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # TimerSeconds=40 # @@ -1559,7 +1560,7 @@ Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" # NextScreen=Branch.GetGameInformationScreen -PrevScreen=Branch.TitleMenu +PrevScreen=Branch.TitleMenu() # TimerSeconds=40 # @@ -1581,7 +1582,7 @@ Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" # NextScreen=Branch.GetGameInformationScreen -PrevScreen=Branch.TitleMenu +PrevScreen=Branch.TitleMenu() # PerChoiceScrollElement=false PerChoiceIconElement=false @@ -1595,7 +1596,7 @@ Fallback="ScreenSelectMaster" # #~ NextScreen="ScreenSelectMusic" NextScreen=GAMESTATE:IsCourseMode() and "ScreenSelectCourse" or "ScreenSelectMusic" -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # TimerSeconds=15 # @@ -1615,7 +1616,7 @@ Class="ScreenSelectMusic" Fallback="ScreenWithMenuElements" # NextScreen=Branch.PlayerOptions() -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # MusicWheelType="MusicWheel" Codes="" @@ -2163,8 +2164,8 @@ CursorOnCommand=visible,false [ScreenOptionsService] Class="ScreenOptionsMaster" Fallback="ScreenOptionsSimpleService" -NextScreen="ScreenTitleMenu" -PrevScreen="ScreenTitleMenu" +NextScreen=Branch.TitleMenu() +PrevScreen=Branch.TitleMenu() LineNames="SD,1,2,Sync,13,3,10,11,4,12,6,5,Theme,8,9" Line1="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings" Line2="gamecommand;screen,ScreenTestInput;name,Test Input" @@ -2309,8 +2310,8 @@ PrevScreen="ScreenOptionsService" [ScreenOptionsSystemDirection] Fallback="ScreenOptionsServiceChild" -PrevScreen=Branch.TitleMenu -NextScreen=Branch.TitleMenu +PrevScreen=Branch.TitleMenu() +NextScreen=Branch.TitleMenu() LineNames="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22" Line1="conf,Windowed" Line2="conf,DisplayResolution" @@ -2440,8 +2441,8 @@ Fallback="ScreenOptionsServiceChild" [ScreenSelectGame] Fallback="ScreenOptionsServiceChild" -PrevScreen="ScreenTitleMenu" -NextScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() +NextScreen=Branch.TitleMenu() LineNames="1" Line1="conf,Game" @@ -2468,12 +2469,12 @@ PageOnCommand=visible,false [ScreenReloadSongs] Class="ScreenReloadSongs" Fallback="Screen" -NextScreen="ScreenTitleMenu" +NextScreen=Branch.TitleMenu() [ScreenSelectGame] Fallback="ScreenOptionsServiceChild" PrevScreen="ScreenOptionsService" -NextScreen="ScreenTitleMenu" +NextScreen=Branch.TitleMenu() LineNames="1" Line1="conf,Game" @@ -2974,7 +2975,7 @@ Class="ScreenProfileSave" Fallback="ScreenWithMenuElementsBlank" # NextScreen=Branch.AfterProfileSave() -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # TimerSeconds=-1 [ScreenProfileSaveSummary] @@ -2986,9 +2987,9 @@ PrevScreen="ScreenGameOver" Class="ScreenEnding" Fallback="ScreenAttract" # -PrevScreen="ScreenTitleMenu" -NextScreen="ScreenTitleMenu" -StartScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() +NextScreen=Branch.TitleMenu() +StartScreen=Branch.TitleMenu() # TimerSeconds=10 # @@ -3047,8 +3048,8 @@ Answer3Of3OffCommand= Class="ScreenOptionsMaster" Fallback="ScreenOptionsSimpleService" ; This NextScreen is only used for the "exit" choice. -NextScreen="ScreenTitleMenu" -PrevScreen="ScreenTitleMenu" +NextScreen=Branch.TitleMenu() +PrevScreen=Branch.TitleMenu() #LineNames="1,2,3,4,5,6" LineNames="1,2,3" Line1="gamecommand;screen,ScreenEditMenu;name,Edit Songs/Steps" @@ -3106,7 +3107,7 @@ Fallback="TextBanner" Fallback="ScreenWithMenuElements" Class="ScreenEditMenu" NextScreen="ScreenEdit" -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() EditMenuType="EditMenu" ExplanationX=SCREEN_CENTER_X ExplanationY=SCREEN_BOTTOM-56 @@ -3301,7 +3302,7 @@ ComboOnCommand=visible,false Class="ScreenSMOnlineLogin" Fallback="ScreenOptionsServiceChild" NextScreen=Branch.AfterSMOLogin -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() ShowStyleIcon=false TimerSeconds=-1 ShowHelp=false @@ -3354,7 +3355,7 @@ Class="ScreenNetSelectMusic" Fallback="ScreenNetSelectBase" PrevScreen="ScreenNetRoom" NextScreen="ScreenStageInformation" -NoSongsScreen="ScreenTitleMenu" +NoSongsScreen=Branch.TitleMenu() RoomSelectScreen="ScreenNetRoom" ShowStyleIcon=false @@ -3422,7 +3423,7 @@ HelpText=Screen.String("HelpTextNetSelectMusic"); [ScreenNetRoom] Class="ScreenNetRoom" Fallback="ScreenNetSelectBase" -PrevScreen="ScreenTitleMenu" +PrevScreen=Branch.TitleMenu() # XXX NextScreen="ScreenGameplayBranch" MusicSelectScreen="ScreenNetSelectMusic" @@ -3547,4 +3548,23 @@ UsersBG2OffCommand= UserDX=0 UserDY=24 UserOnCommand= -UserOffCommand= \ No newline at end of file +UserOffCommand= + +# some arcade mode things +[ScreenDemonstration] +Fallback="ScreenGameplay" +Class="ScreenDemonstration" +# +NextScreen="ScreenInit" +StartScreen=Branch.TitleMenu() +PlayMusic=false +SecondsToShow=60 + +LightsMode="LightsMode_Demonstration" +DifficultiesToShow="easy,medium" +ShowCourseModifiersProbability=0 +AllowAdvancedModifiers=false +AllowStyleTypes="TwoPlayersTwoSides" + +MinSecondsToStep=0 +MinSecondsToMusic=0 \ No newline at end of file diff --git a/Themes/default/BGAnimations/ScreenDemonstration out.lua b/Themes/default/BGAnimations/ScreenDemonstration out.lua new file mode 100644 index 0000000000..3d1cfdd216 --- /dev/null +++ b/Themes/default/BGAnimations/ScreenDemonstration out.lua @@ -0,0 +1,6 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1");cropbottom,1;fadebottom,1); + OnCommand=cmd(decelerate,0.5;cropbottom,0;fadebottom,0); + }; +}; \ No newline at end of file diff --git a/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua b/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua new file mode 100644 index 0000000000..b841cfdac8 --- /dev/null +++ b/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua @@ -0,0 +1,43 @@ +local t = Def.ActorFrame{ + Def.Quad{ + Name="TopFrame"; + InitCommand=cmd(CenterX;y,SCREEN_TOP;valign,0;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0.1,0.1,0.1,1");fadebottom,0.5); + }; + + Def.Quad{ + Name="BotFrame"; + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM;valign,1;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0.1,0.1,0.1,1");fadetop,0.5); + }; + + Def.ActorFrame{ + Name="MiddleSection"; + InitCommand=cmd(CenterX;y,SCREEN_CENTER_Y*1.35); + Def.Quad{ + Name="Frame"; + InitCommand=cmd(zoomto,SCREEN_WIDTH,0;diffuse,color("0.1,0.1,0.1,0.75");fadebottom,0.25;fadetop,0.25;); + OnCommand=cmd(smooth,0.75;zoomtoheight,64;); + }; + LoadFont("Common normal")..{ + Text=Screen.String("Demonstration"); + InitCommand=cmd(diffusealpha,0;strokecolor,color("0,0,0,0.5")); + OnCommand=cmd(smooth,0.75;diffusealpha,1;diffuseshift;effectcolor1,HSV(38,0.45,0.95)); + }; + }; + + LoadFont("Common normal")..{ + Name="SongTitle"; + InitCommand=cmd(x,SCREEN_WIDTH*2;y,SCREEN_TOP+20;); + BeginCommand=function(self) + local song = GAMESTATE:GetCurrentSong(); + local text = ""; + if song then + text = song:GetDisplayArtist().." / "..song:GetDisplayFullTitle().." [from "..song:GetGroupName().."]"; + end; + self:settext(text); + end; + OnCommand=cmd(queuecommand,"Scroll"); + ScrollCommand=cmd(linear,10;x,-SCREEN_WIDTH*2;sleep,1;x,SCREEN_WIDTH*2;queuecommand,"Scroll"); + }; +}; + +return t; \ No newline at end of file diff --git a/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua b/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua new file mode 100644 index 0000000000..fd321c1401 --- /dev/null +++ b/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua @@ -0,0 +1,11 @@ +local t = Def.ActorFrame{}; + +-- todo: add event mode indicators and such +if GAMESTATE:IsEventMode() then + t[#t+1] = LoadFont("Common normal")..{ + Text=Screen.String("EventMode"); + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-72;zoom,0.75;diffuse,HSV(56,0.8,1)); + }; +end; + +return t; \ No newline at end of file diff --git a/Themes/default/Languages/en.ini b/Themes/default/Languages/en.ini index 81190cf95e..a514e2ca63 100644 --- a/Themes/default/Languages/en.ini +++ b/Themes/default/Languages/en.ini @@ -10,6 +10,15 @@ Connected to %s=Connected to %s CurrentGametype=Current Gametype: %s LifeDifficulty=Life Difficulty: %s TimingDifficulty=Timing Difficulty: %s +[ScreenTitleJoin] +HelpText=Press &START; to Play +EventMode=Event Mode +JointPremiumMain=Joint Premium +JointPremiumSecondary=Two players can play with one credit! +DoublesPremiumMain=Doubles Premium +DoublesPremiumSecondary=Play doubles for one credit! +[ScreenDemonstration] +Demonstration=Demonstration [ScreenQuickSetupOverview] Explanation=Quick Setup provides a easy way to set commonly-changed and useful preferences. [ScreenProfileLoad] diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index 65852b63d2..3ee039dbda 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -739,6 +739,7 @@ DefaultChoice="1" #DisabledChoices="Setup" #ChoiceSetup="text,Setup" ChoiceSetup="screen,ScreenQuickSetupOverview;text,Setup" + [ScreenQuickSetupOverview] IconStartX=SCREEN_CENTER_X-160 IconStartY=SCREEN_BOTTOM-60 @@ -1582,4 +1583,32 @@ SmallBanner2OffCommand= SmallBanner3X=SCREEN_CENTER_X SmallBanner3Y=SCREEN_TOP+180 SmallBanner3OnCommand=zoom,0.5 -SmallBanner3OffCommand= \ No newline at end of file +SmallBanner3OffCommand= + +# arcade stuff +[ScreenTitleJoin] +HelpText=Screen.String("HelpTextTitleJoin") +HelpY=SCREEN_CENTER_Y+100 +HelpOnCommand=zoom,1;strokecolor,color("0.125,0.125,0.125,0.5");queuecommand,"Anim" + +LogoX=SCREEN_CENTER_X +LogoY=SCREEN_CENTER_Y-28 +LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 +LogoOffCommand=stopeffect;bouncebegin,0.35;rotationz,360;zoom,0 + +VersionInfoX=SCREEN_CENTER_X+114 +VersionInfoY=SCREEN_CENTER_Y+44 +VersionInfoOnCommand=settext,ProductVersion();horizalign,right;vertalign,bottom;bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.65;shadowlength,1;shadowcolor,color("0.2,0.2,0.2,0.925"); + +ScrollerOnCommand=visible,false; + +[ScreenDemonstration] +SongMeterDisplayP1OnCommand=visible,false +SongMeterDisplayP2OnCommand=visible,false +LifeP1OnCommand=visible,false +LifeP2OnCommand=visible,false +ScoreP1OnCommand=visible,false +ScoreP2OnCommand=visible,false +StepsDisplayP1OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 +StepsDisplayP2OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 +ShowBPMDisplay=false \ No newline at end of file