diff --git a/BackgroundEffects/File1FlashOverlay.lua b/BackgroundEffects/File1FlashOverlay.lua
new file mode 100644
index 0000000000..ea88ca18eb
--- /dev/null
+++ b/BackgroundEffects/File1FlashOverlay.lua
@@ -0,0 +1,13 @@
+local Color1 = color(Var "Color1");
+local Color2 = color(Var "Color2");
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(diffuse,Color1;blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;linear,1;diffusealpha,0);
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+};
+
+
+return t;
diff --git a/BackgroundEffects/File2Flash.lua b/BackgroundEffects/File2Flash.lua
new file mode 100644
index 0000000000..dd98d708ff
--- /dev/null
+++ b/BackgroundEffects/File2Flash.lua
@@ -0,0 +1,20 @@
+local Color1 = color(Var "Color1");
+local Color2 = color(Var "Color2");
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color1;effectclock,"music");
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+};
+
+if Var("File2") ~= nil then
+ t[#t+1] = LoadActor(Var("File2")) .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color2;effectclock,"music";linear,1;diffusealpha,0);
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+ };
+end;
+
+return t;
diff --git a/BackgroundEffects/File2Normal.lua b/BackgroundEffects/File2Normal.lua
new file mode 100644
index 0000000000..318a36bee1
--- /dev/null
+++ b/BackgroundEffects/File2Normal.lua
@@ -0,0 +1,21 @@
+local Color1 = color(Var "Color1");
+local Color2 = color(Var "Color2");
+local stretchBG = PREFSMAN:GetPreference("StretchBackgrounds")
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color1;effectclock,"music");
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+};
+
+if Var("File2") ~= nil then
+ t[#t+1] = LoadActor(Var("File2")) .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color1;effectclock,"music");
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+ };
+end;
+
+return t;
diff --git a/BackgroundEffects/OverlayAdd.lua b/BackgroundEffects/OverlayAdd.lua
new file mode 100644
index 0000000000..dd918ddda0
--- /dev/null
+++ b/BackgroundEffects/OverlayAdd.lua
@@ -0,0 +1,11 @@
+local Color1 = color(Var "Color1");
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(diffuse,Color1;blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;);
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+};
+
+return t;
diff --git a/BackgroundEffects/Visualization2File.lua b/BackgroundEffects/Visualization2File.lua
new file mode 100644
index 0000000000..927d888b7b
--- /dev/null
+++ b/BackgroundEffects/Visualization2File.lua
@@ -0,0 +1,18 @@
+local Color1 = color(Var "Color1");
+local Color2 = color(Var "Color2");
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color1;effectclock,"music");
+};
+
+if Var("File2") ~= nil then
+ t[#t+1] = LoadActor(Var("File2")) .. {
+ OnCommand=cmd(blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color2;effectclock,"music");
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+ };
+end;
+
+return t;
diff --git a/BackgroundEffects/Visualization2FileFlash.lua b/BackgroundEffects/Visualization2FileFlash.lua
new file mode 100644
index 0000000000..9bc9f3e13f
--- /dev/null
+++ b/BackgroundEffects/Visualization2FileFlash.lua
@@ -0,0 +1,20 @@
+local Color1 = color(Var "Color1");
+local Color2 = color(Var "Color2");
+
+local t = Def.ActorFrame {};
+
+t[#t+1] = LoadActor(Var "File1") .. {
+ OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color1;effectclock,"music");
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+};
+
+if Var("File2") ~= nil then
+ t[#t+1] = LoadActor(Var("File2")) .. {
+ OnCommand=cmd(blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scale_or_crop_background;diffuse,Color2;effectclock,"music";linear,1;diffusealpha,0);
+ GainFocusCommand=cmd(play);
+ LoseFocusCommand=cmd(pause);
+ };
+end;
+
+return t;
diff --git a/BackgroundTransitions/CrossFade_Faster.xml b/BackgroundTransitions/CrossFade_Faster.xml
new file mode 100644
index 0000000000..1ac7263839
--- /dev/null
+++ b/BackgroundTransitions/CrossFade_Faster.xml
@@ -0,0 +1,4 @@
+
diff --git a/BackgroundTransitions/CrossFade_Fastest.xml b/BackgroundTransitions/CrossFade_Fastest.xml
new file mode 100644
index 0000000000..a5ed57d756
--- /dev/null
+++ b/BackgroundTransitions/CrossFade_Fastest.xml
@@ -0,0 +1,4 @@
+
diff --git a/BackgroundTransitions/FadeCenterHorizontal.xml b/BackgroundTransitions/FadeCenterHorizontal.xml
new file mode 100644
index 0000000000..3636efcc65
--- /dev/null
+++ b/BackgroundTransitions/FadeCenterHorizontal.xml
@@ -0,0 +1,4 @@
+
diff --git a/BackgroundTransitions/FadeCenterVertical.xml b/BackgroundTransitions/FadeCenterVertical.xml
new file mode 100644
index 0000000000..228060773c
--- /dev/null
+++ b/BackgroundTransitions/FadeCenterVertical.xml
@@ -0,0 +1,4 @@
+
diff --git a/Themes/new/BGAnimations/ScreenSelectMusic decorations.lua b/Themes/new/BGAnimations/ScreenSelectMusic decorations.lua
index f7c1c28553..f0ca39bc2a 100644
--- a/Themes/new/BGAnimations/ScreenSelectMusic decorations.lua
+++ b/Themes/new/BGAnimations/ScreenSelectMusic decorations.lua
@@ -2,11 +2,34 @@ local t = LoadFallbackB();
--
t[#t+1] = StandardDecorationFromFileOptional("BannerFrame","BannerFrame");
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
-t[#t+1] = StandardDecorationFromFileOptional("TimeDisplay","TimeDisplay");
+--~ t[#t+1] = StandardDecorationFromFileOptional("TimeDisplay","TimeDisplay");
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
-t[#t+1] = StandardDecorationFromFileOptional("SortDisplay","SortDisplay");
-t[#t+1] = StandardDecorationFromFileOptional("DifficultyList","DifficultyList");
-
+--~ t[#t+1] = StandardDecorationFromFileOptional("SortDisplay","SortDisplay");
+--~ t[#t+1] = StandardDecorationFromFileOptional("DifficultyList","DifficultyList");
+t[#t+1] = Def.ActorFrame {
+ Def.Quad {
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24;y,SCREEN_CENTER_Y-192+16;zoomto,40-4,20;diffuse,PlayerColor(PLAYER_1));
+ };
+ LoadFont("Common Normal") .. {
+ Text=ToEnumShortString(PLAYER_1);
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24;y,SCREEN_CENTER_Y-192+16;diffuse,ThemeColor.Secondary);
+ };
+ LoadActor(THEME:GetPathG(Var "LoadingScreen", "OptionRows"),PLAYER_1) .. {
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24+40;y,SCREEN_CENTER_Y-192+16);
+ };
+};
+t[#t+1] = Def.ActorFrame {
+ Def.Quad {
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24;y,SCREEN_CENTER_Y-192+16+22;zoomto,40-4,20;diffuse,PlayerColor(PLAYER_2));
+ };
+ LoadFont("Common Normal") .. {
+ Text=ToEnumShortString(PLAYER_1);
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24;y,SCREEN_CENTER_Y-192+16+22;diffuse,ThemeColor.Secondary);
+ };
+ LoadActor(THEME:GetPathG(Var "LoadingScreen", "OptionRows"),PLAYER_1) .. {
+ InitCommand=cmd(x,SCREEN_CENTER_X-320+24+40;y,SCREEN_CENTER_Y-192+16+22);
+ };
+};
-- StepsDisplay creator
local function CreateStepsDisplay( _pn )
local function set(self, _pn)
@@ -34,10 +57,4 @@ for pn in ivalues(PlayerNumber) do
InitCommand=function(self) self:player(pn); self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end;
};
end
--- Create PaneDisplay for each player
-t[#t+1] = StandardDecorationFromFileOptional("PaneDisplay","PaneDisplay");
---[[ for pn in ivalues(PlayerNumber) do
- local MetricsName = "PaneDisplay" .. PlayerNumberToString(pn);
- t[#t+1] = StandardDecorationFromFileOptional(MetricsName,"PaneDisplay",PlayerNumber);
-end ]]
return t;
\ No newline at end of file
diff --git a/Themes/new/Graphics/ScreenSelectMusic BPMDisplay.lua b/Themes/new/Graphics/ScreenSelectMusic BPMDisplay.lua
index 0b34bd35e4..605ca7eb18 100644
--- a/Themes/new/Graphics/ScreenSelectMusic BPMDisplay.lua
+++ b/Themes/new/Graphics/ScreenSelectMusic BPMDisplay.lua
@@ -33,32 +33,41 @@ return Def.ActorFrame {
self:aux(0);
self:playcommand( GAMESTATE:GetCurrentSong():GetTimingData():HasBPMChanges() and "MultipleBPM" or "SingleBPM" );
end;
- -- BPM Background
- Def.Quad {
- Name="BPMBackground";
- InitCommand=cmd(zoomto,96,32;diffuse,ThemeColor.Secondary;shadowlength,2;shadowcolor,Color.Alpha(ColorDarkTone(ThemeColor.Primary),0.95));
- };
- -- BPM Multiple Warning
- Def.Quad {
- Name="BPMFlag";
- InitCommand=cmd(x,32;y,-8;basezoomx,24;basezoomy,4;fadeleft,0.2;faderight,0.2;diffuse,ThemeColor.Primary;thump,1;effectclock,'beatnooffset');
- SingleBPMCommand=cmd(finishtweening;decelerate,0.1;zoom,0;zoomx,8;diffusealpha,0);
- MultipleBPMCommand=cmd(finishtweening;smooth,0.05;zoom,1;diffusealpha,1;);
- };
-- BPM Label
- LoadFont("Common Normal") .. {
- Name="BPMLabel";
- Text="BPM";
- InitCommand=cmd(x,-32;y,-8;zoom,0.5);
- };
- -- BPM Display
+ LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",160,20);
+ -- BPM Display Low
Def.RollingNumbers {
- Name="BPMText";
+ Name="BPMTextLow";
File=THEME:GetPathF("Common","Normal");
InitCommand=cmd(Load,"RollingNumbersBPMDisplay");
- OnCommand=cmd(horizalign,left;x,-46;y,6;zoom,0.75;maxwidth,92/0.75;);
+ OnCommand=cmd(horizalign,left;x,-64;maxwidth,92/0.75;);
BeginCommand=cmd(playcommand,"Set");
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
+ SetCommand=function(self);
+ Song = GAMESTATE:GetCurrentSong();
+ BPMs = Song:GetDisplayBpms() or {0,0};
+ -- reset numbers
+ self:targetnumber( clamp(BPMs[1],0,9999) );
+ -- (force once)
+ if (self:getaux() == 0) then
+ self:settext(clamp(BPMs[1],0,9999));
+ self:aux( 1 );
+ end;
+ end;
+ };
+ LoadFont("Common Normal") .. {
+ Text="-";
+ };
+ -- BPM Display High
+ Def.RollingNumbers {
+ Name="BPMTextHigh";
+ File=THEME:GetPathF("Common","Normal");
+ InitCommand=cmd(Load,"RollingNumbersBPMDisplay");
+ OnCommand=cmd(horizalign,left;x,8;maxwidth,92/0.75;);
+ BeginCommand=cmd(playcommand,"Set");
+ CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
+ HideCommand=cmd(finishtweening;linear,0.2;diffusealpha,0);
+ ShowCommand=cmd(finishtweening;decelerate,0.125;diffusealpha,1);
SetCommand=function(self)
Song = GAMESTATE:GetCurrentSong();
BPMs = Song:GetDisplayBpms() or {0,0};
diff --git a/Themes/new/Graphics/ScreenWithMenuElements StageDisplay.lua b/Themes/new/Graphics/ScreenWithMenuElements StageDisplay.lua
index d50a9037c2..e59353e533 100644
--- a/Themes/new/Graphics/ScreenWithMenuElements StageDisplay.lua
+++ b/Themes/new/Graphics/ScreenWithMenuElements StageDisplay.lua
@@ -8,10 +8,11 @@ local curStageIndex = GAMESTATE:GetCurrentStageIndex();
local t = Def.ActorFrame {};
t[#t+1] = Def.ActorFrame {
- LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",160,20);
+ LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",160,20);
LoadFont("Common Normal") .. {
- Text=StageToLocalizedString( curStage ) .. " Stage (" .. curStageIndex .. ")";
- InitCommand=cmd(zoom,0.75;y,-2;shadowlength,1;
+ Text=StageToLocalizedString( curStage ) .. " Stage";
+--~ Text=StageToLocalizedString( curStage ) .. " Stage (" .. curStageIndex .. ")";
+ InitCommand=cmd(shadowlength,1;
diffuse,StageToColor(curStage);
diffusetopedge,ColorLightTone(StageToColor(curStage));
-- shadowcolor,ColorDarkTone(StageToColor(curStage));
diff --git a/Themes/new/Sounds/ScreenWithMenuElements music (loop).ogg b/Themes/new/Sounds/ScreenWithMenuElements music (loop).ogg
index 57bfd4620b..b119d02958 100644
Binary files a/Themes/new/Sounds/ScreenWithMenuElements music (loop).ogg and b/Themes/new/Sounds/ScreenWithMenuElements music (loop).ogg differ
diff --git a/Themes/new/metrics.ini b/Themes/new/metrics.ini
index 049bea05cf..a91c13d82a 100644
--- a/Themes/new/metrics.ini
+++ b/Themes/new/metrics.ini
@@ -34,20 +34,26 @@ StageDisplayOffCommand=
MusicWheelX=SCREEN_CENTER_X+180
MusicWheelY=SCREEN_CENTER_Y
#
-BannerX=SCREEN_CENTER_X-160+32
-BannerY=SCREEN_CENTER_Y-100
+BannerX=SCREEN_CENTER_X-160
+BannerY=SCREEN_CENTER_Y-64-4
BannerOnCommand=draworder,111;scaletoclipped,256,80
BannerOffCommand=
#
ShowBannerFrame=true
BannerFrameX=SCREEN_CENTER_X-128-32
-BannerFrameY=SCREEN_CENTER_Y-96-4
+BannerFrameY=SCREEN_CENTER_Y-64-4
BannerFrameOnCommand=draworder,110
BannerFrameOffCommand=
#
+ShowStageDisplay=true
+StageDisplayX=SCREEN_CENTER_X-128-128+12
+StageDisplayY=SCREEN_CENTER_Y-64-64
+StageDisplayOnCommand=draworder,115;zoom,0.75
+StageDisplayOffCommand=
+#
ShowBPMDisplay=true
-BPMDisplayX=SCREEN_CENTER_X-256
-BPMDisplayY=SCREEN_CENTER_Y-128-40
+BPMDisplayX=SCREEN_CENTER_X-256+12+160
+BPMDisplayY=SCREEN_CENTER_Y-64-64
BPMDisplayOnCommand=draworder,115
BPMDisplayOffCommand=
#