diff --git a/BackgroundEffects/Visualization2File.lua b/BackgroundEffects/Visualization2File.lua index 927d888b7b..c729ed7b9d 100644 --- a/BackgroundEffects/Visualization2File.lua +++ b/BackgroundEffects/Visualization2File.lua @@ -1,18 +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; +local Color1 = color(Var "Color1"); +local Color2 = color(Var "Color2"); + +local t = Def.ActorFrame { + 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); + }; + + LoadActor(Var "File2") .. { + OnCommand=cmd(blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color2;effectclock,"music"); + GainFocusCommand=cmd(play); + LoseFocusCommand=cmd(pause); + }; +}; + +return t; diff --git a/BackgroundEffects/Vizualization2File.lua b/BackgroundEffects/Vizualization2File.lua deleted file mode 100644 index c729ed7b9d..0000000000 --- a/BackgroundEffects/Vizualization2File.lua +++ /dev/null @@ -1,18 +0,0 @@ -local Color1 = color(Var "Color1"); -local Color2 = color(Var "Color2"); - -local t = Def.ActorFrame { - 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); - }; - - LoadActor(Var "File2") .. { - OnCommand=cmd(blend,"BlendMode_Add";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color2;effectclock,"music"); - GainFocusCommand=cmd(play); - LoseFocusCommand=cmd(pause); - }; -}; - -return t; 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/04 Scoring.lua b/Themes/_fallback/Scripts/04 Scoring.lua index 9a73fdb4c7..1637021c76 100644 --- a/Themes/_fallback/Scripts/04 Scoring.lua +++ b/Themes/_fallback/Scripts/04 Scoring.lua @@ -236,60 +236,6 @@ r['DDR SuperNOVA'] = function(params, pss) -- [ja] 計算して代入 pss:SetScore(math.floor(10000000 * sntmp_Score[p] / totalItems / 3)); end; - ------------------------------------------------------------ ---DDR SuperNOVA 2 scoring by @waiei ------------------------------------------------------------ -local sn2tmp_Sub={0,0}; -local sn2tmp_Score={0,0}; -local sn2tmp_Steps={0,0}; -r['DDR SuperNOVA 2'] = function(params, pss) - local multLookup = - { - ['TapNoteScore_W1'] = 10, - ['TapNoteScore_W2'] = 10, - ['TapNoteScore_W3'] = 5 - }; - setmetatable(multLookup, ZeroIfNotFound); - local radarValues = GetDirectRadar(params.Player); - local totalItems = GetTotalItems(radarValues); - local p = (params.Player == 'PlayerNumber_P1') and 1 or 2; - - -- [ja] スコアが0の時に初期化 - if pss:GetScore()==0 then - sn2tmp_Sub[p]=0; - sn2tmp_Score[p]=0; - sn2tmp_Steps[p]=0; - end; - - -- [ja] maxAdd は 加算する最高点を 10 とした時の値(つまり、10=100% / 5=50%) - local maxAdd = 0; - -- [ja] O.K.判定時は問答無用で満点 - if params.HoldNoteScore == 'HoldNoteScore_Held' then - maxAdd = 10; - else - -- [ja] N.G.判定時は問答無用で0点 - if params.HoldNoteScore == 'HoldNoteScore_LetGo' then - maxAdd = 0; - -- [ja] それ以外ということは、ロングノート以外の判定である - else - maxAdd = multLookup[params.TapNoteScore]; - if (params.TapNoteScore == 'TapNoteScore_W2') or (params.TapNoteScore=='TapNoteScore_W3') then - -- [ja] W2とW3の数を記録 - sn2tmp_Sub[p]=sn2tmp_Sub[p]+1; - end; - end - end; - sn2tmp_Score[p]=sn2tmp_Score[p]+maxAdd; - -- [ja] 踏み踏みしたステップ数 - sn2tmp_Steps[p]=sn2tmp_Steps[p]+1; - -- [ja] 現時点での、All W1判定の時のスコア - pss:SetCurMaxScore(math.floor(10000*sn2tmp_Steps[p]/totalItems) * 10); - - -- [ja] 計算して代入 - pss:SetScore((math.floor(10000*sn2tmp_Score[p]/totalItems) * 10) - (sn2tmp_Sub[p]*10) ); -end; - ----------------------------------------------------------- --Radar Master (disabled; todo: get this working with StepMania 5) ----------------------------------------------------------- @@ -340,15 +286,6 @@ r['MIGS'] = function(params,pss) curScore = math.max(0,curScore + ( pss:GetHoldNoteScores('HoldNoteScore_Held') * 6 )); pss:SetScore(curScore); end; - --------------------------------------------------------------- ---1bilDP scoring because I can. --------------------------------------------------------------- -r['Billions DP']= function(params,pss) - local poss = pss:GetPossibleDancePoints() - pss:SetScore(math.floor((pss:GetActualDancePoints()/poss)*1000000000)) - pss:SetCurMaxScore(math.floor((pss:GetCurrentPossibleDancePoints()/poss)*1000000000)) -end ------------------------------------------------------------------------------- -- Formulas end here. for v in ivalues(DisabledScoringModes) do r[v] = nil end diff --git a/Themes/_fallback/Scripts/05 NewScoringFrontend.lua b/Themes/_fallback/Scripts/05 NewScoringFrontend.lua index c3a5ec8e0d..16d8600a29 100644 --- a/Themes/_fallback/Scripts/05 NewScoringFrontend.lua +++ b/Themes/_fallback/Scripts/05 NewScoringFrontend.lua @@ -11,7 +11,7 @@ local function CreateOldScoringShim(name) judg,pss,player,mode=coroutine.yield() while true do if mode=="update" then - func(judg,pss) + if not judg.TapNoteScore:find("Mine") then func(judg,pss) end judg,pss,player,mode=coroutine.yield(pss:GetScore(),pss:GetCurMaxScore()) elseif mode=="finalize" then return pss:GetScore(),pss:GetCurMaxScore() @@ -28,7 +28,9 @@ function GetDirectRadar(player) return GAMESTATE:GetCurrentSteps(player):GetRadarValues(player) end ---The code here is an example of native modes. +--[[---------------------------------------------------------------------------- +Scoring modes begin here. +--]]---------------------------------------------------------------------------- --[[There are three operation modes: init mode: The JudgmentCommand is invalid in this mode. @@ -129,6 +131,61 @@ score=score+math.floor((actradar:GetValue(k)/thispossradar)*(thispossradar*v)) return score,bestscore end +ScoringModes["DDR SuperNOVA 2"]=function(judge,pss,player,mode) + local function dTransform(number) + return 10*math.round(number/10) + end + local curScore=0 + local curMaxScore=0 + local tnsMultiplier={ + TapNoteScore_W1=1, + TapNoteScore_W2=1, + TapNoteScore_W3=0.5, + TapNoteScore_AvoidMine=1} + local subtract10Points = { + TapNoteScore_W2=IsW1Allowed('TapNoteScore_W2'), + TapNoteScore_W3=true} + setmetatable(tnsMultiplier, ZeroIfNotFound) + local radar = pss:GetRadarPossible() + local stepScore = 1000000/math.max(radar:GetValue('RadarCategory_TapsAndHolds')+ + radar:GetValue('RadarCategory_Mines')+ + radar:GetValue('RadarCategory_Holds')+ + radar:GetValue('RadarCategory_Rolls'),1) + --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 + 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 + (judge.HoldNoteScore=='HoldNoteScore_Held' and 1 or 0))) + curMaxScore=curMaxScore+stepScore + judge,pss,player,mode=coroutine.yield(dTransform(curScore),dTransform(curMaxScore)) + end + --We might not always be able to register mines in gameplay. Add the scores after gameplay if we couldn't. + if not mineWasHit and radar:GetValue('RadarCategory_Mines')~=0 then + curMaxScore=curMaxScore+(stepScore*radar:GetValue('RadarCategory_Mines')) + curScore=curScore+(stepScore*pss:GetRadarActual():GetValue('RadarCategory_Miines')) + end + return dTransform(curScore),dTransform(curMaxScore) +end + +ScoringModes["Billions DP"]=function(judge,pss,player,mode) + local possibleDP=pss:GetPossibleDancePoints() + possibleDP=possibleDP>0 and possibleDP or 1 + local curScore = 0 + local curMaxScore = 0 + while true do + judge,pss,player,mode=coroutine.yield(curScore,curMaxScore) + curScore = (pss:GetActualDancePoints()/possibleDP)*1000000000 + curMaxScore = (pss:GetCurrentPossibleDancePoints()/possibleDP)*1000000000 + if mode=="finalize" then return curScore,curMaxScore end + end +end + +--[[---------------------------------------------------------------------------- +Scoring modes end here. +--]]---------------------------------------------------------------------------- for k,v in pairs(Scoring) do if ScoringModes[k] == nil then ScoringModes[k] = CreateOldScoringShim(k) diff --git a/Themes/default/Graphics/MusicWheelItem Course NormalPart.png b/Themes/default/Graphics/MusicWheelItem Course NormalPart (dither).png similarity index 100% rename from Themes/default/Graphics/MusicWheelItem Course NormalPart.png rename to Themes/default/Graphics/MusicWheelItem Course NormalPart (dither).png diff --git a/Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart.png b/Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png similarity index 100% rename from Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart.png rename to Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png diff --git a/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart.png b/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png similarity index 100% rename from Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart.png rename to Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png diff --git a/Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart.png b/Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png similarity index 100% rename from Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart.png rename to Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png diff --git a/Themes/default/Graphics/MusicWheelItem Song NormalPart.png b/Themes/default/Graphics/MusicWheelItem Song NormalPart (dither).png similarity index 100% rename from Themes/default/Graphics/MusicWheelItem Song NormalPart.png rename to Themes/default/Graphics/MusicWheelItem Song NormalPart (dither).png 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/Graphics/ScreenSelectPlayMode Icon/_background base.png b/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base.png rename to Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png diff --git a/Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless.png b/Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless.png rename to Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png diff --git a/Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop.png b/Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop.png rename to Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png diff --git a/Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni.png b/Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni.png rename to Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png diff --git a/Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame.png b/Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame.png rename to Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png diff --git a/Themes/default/Graphics/ScreenTitleMenu logo/_arrow.png b/Themes/default/Graphics/ScreenTitleMenu logo/_arrow (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenTitleMenu logo/_arrow.png rename to Themes/default/Graphics/ScreenTitleMenu logo/_arrow (dither).png diff --git a/Themes/default/Graphics/ScreenTitleMenu logo/_text.png b/Themes/default/Graphics/ScreenTitleMenu logo/_text (dither).png similarity index 100% rename from Themes/default/Graphics/ScreenTitleMenu logo/_text.png rename to Themes/default/Graphics/ScreenTitleMenu logo/_text (dither).png 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/_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