Merge, Round II

This commit is contained in:
Jonathan Payne
2012-06-18 19:01:38 -07:00
25 changed files with 102 additions and 106 deletions
+18 -18
View File
@@ -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;
-18
View File
@@ -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;
+9 -4
View File
@@ -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.
just before starting the course.
* On some graphics cards, 3D models may cause crashes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

+1 -1
View File
@@ -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" },
-------------------------------------------------------------
-63
View File
@@ -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
@@ -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)

Before

Width:  |  Height:  |  Size: 940 B

After

Width:  |  Height:  |  Size: 940 B

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

+15
View File
@@ -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"
#