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/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/Docs/KnownIssues.txt b/Docs/KnownIssues.txt index 4cfaffa4b7..e7f80072dd 100644 --- a/Docs/KnownIssues.txt +++ b/Docs/KnownIssues.txt @@ -4,6 +4,7 @@ The following is a list of known issues with StepMania 5. NoteSkins. Random Vanish, in particular, has caused crashes. * In a more technical and general sense, diffuse commands do not work properly with ActorFrames. + * This is most evident with the default dance mode noteskin. * The course editor is not working. (It could stand to be rewritten.) @@ -22,7 +23,7 @@ The following is a list of known issues with StepMania 5. * Routine mode (dance or pump) isn't perfect yet. * Attempting to use the Jukebox to show Routine steps will lead to an infinite loop that is not escapable short of killing the program. - * Practice mode and routine steps may cause a crash. (?) + * Attempting to select routine mode in the Practice menu causes a crash. * The attempted unlock code written around Previews 2-4 (?) does not seem to work at this time. Assistance may be needed here. @@ -31,6 +32,7 @@ The following is a list of known issues with StepMania 5. shouldn't be all the time. * C-Mods have not been fully tested with all of the new segments yet. + Warp segments are ignored when C-Mods are used. * Split Timing needs adjustments with only one chart in place. * Either that, or all tags must be allowable in song timing. @@ -46,12 +48,13 @@ The following is a list of known issues with StepMania 5. * FFMPEG ruins our lives. I suspect init problems for Linux, since it works perfectly fine seemingly at random. Unsure for other platforms. + * is this still an issue with ffmpeg 0.10? -freem * VBR MP3's don't seek correctly in the editor, which botches sync. * While ScreenHowToPlay no longer crashes (?), the steps do not show up. - The steps themselves are being read, as the character will react to where - the arrows would be. + The steps themselves are being read, as the character will still step + to the arrows would be. * There is no make install target for linux systems - this is important for packaging purposes in particular (it would be great to release .debs!) @@ -59,4 +62,6 @@ The following is a list of known issues with StepMania 5. * LuaDriver works well, but without threading it has latency issues. * Survival courses crash if you set a noteskin in the player options - just before starting the course. \ No newline at end of file + just before starting the course. + +* On some graphics cards, 3D models may cause crashes. \ No newline at end of file diff --git a/Themes/_fallback/Graphics/ScreenEvaluation Win p1 1x3.png b/Themes/_fallback/Graphics/ScreenEvaluation Win p1 1x3.png new file mode 100644 index 0000000000..f19c582d85 Binary files /dev/null and b/Themes/_fallback/Graphics/ScreenEvaluation Win p1 1x3.png differ diff --git a/Themes/_fallback/Graphics/ScreenEvaluation Win p2 1x3.png b/Themes/_fallback/Graphics/ScreenEvaluation Win p2 1x3.png new file mode 100644 index 0000000000..8ee9934437 Binary files /dev/null and b/Themes/_fallback/Graphics/ScreenEvaluation Win p2 1x3.png differ diff --git a/Themes/_fallback/Scripts/03 Gameplay.lua b/Themes/_fallback/Scripts/03 Gameplay.lua index f8b0bf43b0..60168e0eb2 100644 --- a/Themes/_fallback/Scripts/03 Gameplay.lua +++ b/Themes/_fallback/Scripts/03 Gameplay.lua @@ -152,7 +152,7 @@ function FailCombo() end local RoutineSkins = { - dance = { P1 = "midi-routine-p1", P2 = "midi-routine-p1" }, + dance = { P1 = "midi-routine-p1", P2 = "midi-routine-p2" }, pump = { P1 = "cmd-routine-p1", P2 = "cmd-routine-p2" }, kb7 = { P1 = "default", P2 = "retrobar" }, ------------------------------------------------------------- diff --git a/Themes/_fallback/Scripts/05 NewScoringFrontend.lua b/Themes/_fallback/Scripts/05 NewScoringFrontend.lua index da36313dfc..16d8600a29 100644 --- a/Themes/_fallback/Scripts/05 NewScoringFrontend.lua +++ b/Themes/_fallback/Scripts/05 NewScoringFrontend.lua @@ -154,7 +154,7 @@ ScoringModes["DDR SuperNOVA 2"]=function(judge,pss,player,mode) --this is how one activates ScoringEngine2's built-in filter system. judge,pss,player,mode=coroutine.yield({{'TapNoteScore_None','TapNoteScore_CheckpointHit','TapNoteScore_CheckpointMiss'},{"HoldNoteScore_None"}}) local mineWasHit=false - while mode == "update" do + while mode=="update" do if judge.TapNoteScore:find("Mine") then mineWasHit = true end curScore=curScore+(stepScore*(not judge.HoldNoteScore and tnsMultiplier[judge.TapNoteScore] - (subtract10Points[judge.TapNoteScore] and 10 or 0) or @@ -178,7 +178,7 @@ ScoringModes["Billions DP"]=function(judge,pss,player,mode) while true do judge,pss,player,mode=coroutine.yield(curScore,curMaxScore) curScore = (pss:GetActualDancePoints()/possibleDP)*1000000000 - curMaxScore = (pss:GetCurrentPossibleDancePoints/possibleDP)*1000000000 + curMaxScore = (pss:GetCurrentPossibleDancePoints()/possibleDP)*1000000000 if mode=="finalize" then return curScore,curMaxScore end end end diff --git a/Themes/default/Graphics/ScreenEvaluation Win p1 1x3.png b/Themes/default/Graphics/ScreenEvaluation Win p1 1x3.png new file mode 100644 index 0000000000..9a8084143a Binary files /dev/null and b/Themes/default/Graphics/ScreenEvaluation Win p1 1x3.png differ diff --git a/Themes/default/Graphics/ScreenEvaluation Win p2 1x3.png b/Themes/default/Graphics/ScreenEvaluation Win p2 1x3.png new file mode 100644 index 0000000000..141ea049f4 Binary files /dev/null and b/Themes/default/Graphics/ScreenEvaluation Win p2 1x3.png differ diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index e8da6a3a63..e8b1e5b107 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -1870,6 +1870,21 @@ SongInformationY=SCREEN_TOP+100 SongInformationOnCommand=playcommand,"Set";draworder,105 SongInformationOffCommand= +ShowWinArea=GAMESTATE:GetPlayMode() == 'PlayMode_Rave' +WinFrameP1X= +WinFrameP1Y= +WinFrameP1OnCommand= +WinFrameP2X= +WinFrameP2Y= +WinFrameP2OnCommand= +#----# +WinP1X=SCREEN_CENTER_X-224 +WinP1Y=SCREEN_BOTTOM-224 +WinP1OnCommand=draworder,101 +WinP2X=SCREEN_CENTER_X+224 +WinP2Y=SCREEN_BOTTOM-224 +WinP2OnCommand=draworder,101 + [ScreenEvaluationNormal] Fallback="ScreenEvaluation" # 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= # diff --git a/_assets/Themes/default/~res/ScreenEvaluation Win p1 1x3.psd b/_assets/Themes/default/~res/ScreenEvaluation Win p1 1x3.psd new file mode 100644 index 0000000000..4c5e9387b1 Binary files /dev/null and b/_assets/Themes/default/~res/ScreenEvaluation Win p1 1x3.psd differ diff --git a/_assets/Themes/default/~res/ScreenEvaluation Win p2 1x3.psd b/_assets/Themes/default/~res/ScreenEvaluation Win p2 1x3.psd new file mode 100644 index 0000000000..d264057a57 Binary files /dev/null and b/_assets/Themes/default/~res/ScreenEvaluation Win p2 1x3.psd differ