local t = LoadFallbackB(); t[#t+1] = LoadActor("../_shared header")..{ InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); OnCommand=cmd(draworder,0); } if not GAMESTATE:IsCourseMode() then local function GenerateModIconRow(pn) local MetricsName = "ModIcons" .. ToEnumShortString(pn); return Def.ActorFrame { InitCommand=function(self) self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end; LoadActor( THEME:GetPathG("OptionIcon","Player") )..{ InitCommand=cmd(pause;halign,0;x,-19); BeginCommand=function(self) self:setstate( pn == PLAYER_1 and 0 or 1 ); end; OnCommand=cmd(zoomy,0;linear,0.5;zoomy,1;); OffCommand=cmd(linear,0.5;zoomy,0;); }; Def.ModIconRow { InitCommand=cmd(Load,"ModIconRowSelectMusic"..ToEnumShortString(pn),pn;x,152;); OnCommand=cmd(zoomy,0;linear,0.5;zoomy,1;); OffCommand=cmd(linear,0.5;zoomy,0;); }; }; end; for pn in ivalues(GAMESTATE:GetHumanPlayers()) do if ShowStandardDecoration("ModIcons") then t[#t+1] = GenerateModIconRow(pn); end end; end; t[#t+1] = StandardDecorationFromFileOptional("StyleIcon","StyleIcon"); t[#t+1] = StandardDecorationFromFile("StageDisplay","StageDisplay") t[#t+1] = StandardDecorationFromFile("BannerFrame","BannerFrame") t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay") t[#t+1] = StandardDecorationFromFileOptional("SortDisplay","SortDisplay") t[#t+1] = StandardDecorationFromFileOptional("AvailableDifficulties", "AvailableDifficulties") t[#t+1] = Def.ActorFrame { InitCommand=cmd(sleep,1.18); LoadActor( "h0" )..{ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-215); }; LoadActor( "h1" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+104;y,SCREEN_CENTER_Y-215;horizalign,left;sleep,0.264;accelerate,0.2;x,SCREEN_CENTER_X-310;linear,0.066;zoomx,1.5;linear,0.066;zoomx,1;linear,0.066;zoomx,1.3;linear,0.066;zoomx,1;linear,0.066;zoomx,1.1;linear,0.066;zoomx,1); OffCommand=cmd(x,SCREEN_CENTER_X-310;y,SCREEN_CENTER_Y-215;horizalign,left;sleep,0.396;sleep,0.02;accelerate,0.2;x,SCREEN_CENTER_X+104;linear,0.066;zoomx,1.5;linear,0.066;zoomx,1;linear,0.066;zoomx,1.3;linear,0.066;zoomx,1;linear,0.066;zoomx,1.1;linear,0.066;zoomx,1); }; LoadActor( "h1" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+128;y,SCREEN_CENTER_Y-215;horizalign,left;sleep,0.264;sleep,0.02;accelerate,0.2;x,SCREEN_CENTER_X-286;linear,0.066;zoomx,1.5;linear,0.066;zoomx,1;linear,0.066;zoomx,1.3;linear,0.066;zoomx,1;linear,0.066;zoomx,1.1;linear,0.066;zoomx,1); OffCommand=cmd(x,SCREEN_CENTER_X-286;y,SCREEN_CENTER_Y-215;horizalign,left;sleep,0.396;sleep,0.01;accelerate,0.2;x,SCREEN_CENTER_X+128;linear,0.066;zoomx,1.5;linear,0.066;zoomx,1;linear,0.066;zoomx,1.3;linear,0.066;zoomx,1;linear,0.066;zoomx,1.1;linear,0.066;zoomx,1); }; LoadActor( "h1" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+152;y,SCREEN_CENTER_Y-215;horizalign,left); OffCommand=cmd(x,SCREEN_CENTER_X+152;y,SCREEN_CENTER_Y-215;horizalign,left;sleep,0.396;sleep,0.2;linear,0.066;zoomx,1.5;linear,0.066;zoomx,1;linear,0.066;zoomx,1.3;linear,0.066;zoomx,1;linear,0.066;zoomx,1.1;linear,0.066;zoomx,1); }; LoadActor( "h2" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y-215;horizalign,left;cropright,1;sleep,0.264;sleep,0.04;accelerate,0.2;x,SCREEN_CENTER_X-262;cropright,0); OffCommand=cmd(x,SCREEN_CENTER_X-262;y,SCREEN_CENTER_Y-215;horizalign,left;cropright,0;sleep,0.396;accelerate,0.2;x,SCREEN_CENTER_X+160;cropright,1); }; LoadActor( "h1" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+176;y,SCREEN_CENTER_Y-215;horizalign,left); OffCommand=cmd(x,SCREEN_CENTER_X+176;y,SCREEN_CENTER_Y-215;horizalign,left); }; LoadActor( "hm" )..{ OnCommand=cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y-215;horizalign,left;cropright,1;sleep,0.264;sleep,0.04;accelerate,0.2;x,SCREEN_CENTER_X-262;cropright,0;linear,0.066;addx,5;linear,0.066;addx,-5;linear,0.066;addx,5;linear,0.066;addx,-5;linear,0.066;addx,5;linear,0.066;addx,-5); OffCommand=cmd(x,SCREEN_CENTER_X-262;y,SCREEN_CENTER_Y-215;horizalign,left;cropright,0;sleep,0.396;accelerate,0.2;x,SCREEN_CENTER_X+160;cropright,1); }; } -- difficulty icons if ShowStandardDecoration("DifficultyIcons") then for pn in ivalues(GAMESTATE:GetHumanPlayers()) do local diffFrame = LoadActor(THEME:GetPathG(Var "LoadingScreen", "DifficultyFrame"), pn) t[#t+1] = StandardDecorationFromTable( "DifficultyFrame" .. ToEnumShortString(pn), diffFrame ); local diffIcon = LoadActor(THEME:GetPathG(Var "LoadingScreen", "DifficultyIcon"), pn) t[#t+1] = StandardDecorationFromTable( "DifficultyIcon" .. ToEnumShortString(pn), diffIcon ); end end t[#t+1] = StandardDecorationFromFileOptional("GrooveRadar","GrooveRadar") -- StepsDisplay local function StepsDisplay(pn) local function set(self, player) self:SetFromGameState(player); end local name = "StepsDisplaySelMusic"; local sd = Def.StepsDisplay { InitCommand=cmd(Load,name..ToEnumShortString(pn),GAMESTATE:GetPlayerState(pn);); CurrentSongChangedMessageCommand=function(self) local song = GAMESTATE:GetCurrentSong(); if not song then -- hacky hack 1: set all feet to nothing! self:GetChild("Ticks"):settext("0000000000"); -- hacky hack 2: diffuse to beginner self:GetChild("Ticks"):diffuse(CustomDifficultyToColor("Beginner")) end end; }; if pn == PLAYER_1 then sd.CurrentStepsP1ChangedMessageCommand=function(self) set(self, pn); end; sd.CurrentTrailP1ChangedMessageCommand=function(self) set(self, pn); end; else sd.CurrentStepsP2ChangedMessageCommand=function(self) set(self, pn); end; sd.CurrentTrailP2ChangedMessageCommand=function(self) set(self, pn); end; end return sd; end if ShowStandardDecoration("StepsDisplay") then for pn in ivalues(GAMESTATE:GetHumanPlayers()) do -- frame local meterFrame = LoadActor(THEME:GetPathG(Var "LoadingScreen", "MeterFrame"), pn) t[#t+1] = StandardDecorationFromTable( "MeterFrame" .. ToEnumShortString(pn), meterFrame ); -- stepsdisplay local MetricsName = "StepsDisplay" .. PlayerNumberToString(pn); t[#t+1] = StepsDisplay(pn) .. { InitCommand=function(self) self:player(pn); self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end; }; end end -- song options text (e.g. 1.5xmusic) t[#t+1] = StandardDecorationFromFileOptional("SongOptions","SongOptions") if AllowOptionsMenu() then t[#t+1] = StandardDecorationFromFile("OptionsMessage","OptionsMessage") end -- other items (balloons, etc.) t[#t+1] = LoadActor("help")..{ InitCommand=cmd(x,SCREEN_CENTER_X+80;y,SCREEN_BOTTOM-33.5;); OnCommand=cmd(draworder,199;shadowlength,0;diffuseblink;linear,0.5); } return t