what? I don't really know what I'm doing here.
@@ -8,6 +8,10 @@ ________________________________________________________________________________
|
||||
StepMania 5.0 $NEXT | 20110xyy
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
2011/05/23
|
||||
----------
|
||||
* [Steps] Added the UsesSplitTiming Lua binding. [Wolfman2000]
|
||||
|
||||
2011/05/20
|
||||
----------
|
||||
* [CryptManager] Added SHA1File Lua binding. [AJ]
|
||||
@@ -51,6 +55,12 @@ StepMania 5.0 $NEXT | 20110xyy
|
||||
* [ScreenEvaluation] Stop the Bonus bars from overflowing in course modes. [AJ]
|
||||
* [Banner] Added ScrollMode and ScrollSortOrder metrics. [AJ]
|
||||
|
||||
2011/05/13
|
||||
----------
|
||||
* Added Split Timing to .SSC files. All older .SSC files and other file
|
||||
formats are converted to split timing on cache load. We are no longer bound
|
||||
by Song Timing for everything. [theDtTvB, Wolfman2000, TeruFSX]
|
||||
|
||||
2011/05/11
|
||||
----------
|
||||
* [GameSoundManager] Added PlayAnnouncer Lua binding. [AJ]
|
||||
|
||||
@@ -1374,6 +1374,7 @@
|
||||
<Function name='IsAPlayerEdit'/>
|
||||
<Function name='IsAnEdit'/>
|
||||
<Function name='IsAutogen'/>
|
||||
<Function name='UsesSplitTiming'/>
|
||||
</Class>
|
||||
<Class base='ActorFrame' name='StepsDisplay'>
|
||||
<Function name='Load'/>
|
||||
|
||||
@@ -3454,6 +3454,9 @@
|
||||
<Function name='IsAutogen' return='bool' arguments=''>
|
||||
Returns <code>true</code> if the steps were automatically generated.
|
||||
</Function>
|
||||
<Function name='UsesSplitTiming' return='bool' sm-ssc='true' arguments=''>
|
||||
Returns <code>true</code> if the Steps use different <code>TimingData</code> from the Song.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='StepsDisplay'>
|
||||
<Function name='Load' return='void' arguments='string sMetricsGroup'>
|
||||
|
||||
@@ -2609,7 +2609,7 @@ ItemsLongRowSharedX=SCREEN_CENTER_X+150
|
||||
ItemOnCommand=
|
||||
ColorSelected=color("0.5,1,0.5,1")
|
||||
ColorNotSelected=color("1,1,1,1")
|
||||
ColorDisabled=color("0.5,0.5,0.5,1")
|
||||
ColorDisabled=color("0.65,0,0,1")
|
||||
TweenSeconds=0
|
||||
|
||||
[ScreenMiniMenuContext]
|
||||
@@ -3711,10 +3711,11 @@ RowInitCommand=halign,0.5;valign,0.5;zoom,0.8;x,75;y,45;shadowlength,1
|
||||
OptionRowNormalMetricsGroup="OptionRowMiniMenuEditHelp"
|
||||
|
||||
[OptionRowMiniMenuEditHelp]
|
||||
# Help menu ( Keys & Stuff )
|
||||
Fallback="OptionRowMiniMenu"
|
||||
|
||||
TitleX=SCREEN_CENTER_X-312
|
||||
TitleOnCommand=halign,0;strokecolor,color("#222222CC");shadowlength,1;zoom,0.9
|
||||
TitleOnCommand=halign,0;strokecolor,color("#222222FF");shadowlength,1;zoom,0.75
|
||||
|
||||
RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \
|
||||
local indexOffset = itemIndex-(numItems-1)/2; \
|
||||
@@ -3726,8 +3727,8 @@ ItemsEndX=SCREEN_CENTER_X+260
|
||||
ItemsLongRowP1X=SCREEN_CENTER_X+260
|
||||
ItemsLongRowP2X=SCREEN_CENTER_X+260
|
||||
|
||||
ItemOnCommand=x,SCREEN_CENTER_X+176;halign,0;strokecolor,color("#222222CC");shadowlength,1;zoom,0.9
|
||||
ColorDisabled=color("1,1,1,1")
|
||||
ItemOnCommand=x,SCREEN_CENTER_X+176;halign,0;strokecolor,color("#222222CC");shadowlength,1;zoom,0.75
|
||||
ColorDisabled=Color("Orange")
|
||||
|
||||
[ScreenMiniMenuMainMenu]
|
||||
Fallback="ScreenMiniMenu"
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
local c;
|
||||
local player = Var "Player";
|
||||
local bShowProtiming = GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(player) );
|
||||
|
||||
local function MakeAverage( t )
|
||||
local sum = 0;
|
||||
for i=1,#t do
|
||||
sum = sum + t[i];
|
||||
end
|
||||
return sum / #t
|
||||
end
|
||||
|
||||
-- New
|
||||
local function PosCount( t )
|
||||
local Count = 0;
|
||||
for i=1,#t do
|
||||
if t[i] > 0 then Count = Count + 1 end
|
||||
end
|
||||
return Count
|
||||
end
|
||||
|
||||
local function NegCount( t )
|
||||
local Count = 0;
|
||||
for i=1,#t do
|
||||
if t[i] < 0 then Count = Count + 1 end
|
||||
end
|
||||
return Count
|
||||
end
|
||||
|
||||
|
||||
local function StdDev( t )
|
||||
local avg = MakeAverage( t );
|
||||
local sum = 0;
|
||||
for i=1,#t do
|
||||
sum = sum + math.pow(t[i] - avg, 2);
|
||||
end
|
||||
return math.sqrt(sum / (#t - 1))
|
||||
end
|
||||
|
||||
--
|
||||
local tTotalJudgments = {};
|
||||
-- Global?
|
||||
--[[ tPlayerData = {};
|
||||
for pn in ivalues(GAMESTATE:GetHumanPlayers())
|
||||
tPlayerData[pn].SignedJudgments = {};
|
||||
tPlayerData[pn].AverageDifference = 0;
|
||||
tPlayerData[pn].AbsoluteDifference = 0;
|
||||
tPlayerData[pn].StandardDeviation = 0;
|
||||
tPlayerData[pn].StandardDeviation = 0;
|
||||
tPlayerData[pn].Early = 0;
|
||||
tPlayerData[pn].Late = 0;
|
||||
end ]]
|
||||
--
|
||||
local JudgeCmds = {
|
||||
TapNoteScore_W1 = THEME:GetMetric( "Judgment", "JudgmentW1Command" );
|
||||
TapNoteScore_W2 = THEME:GetMetric( "Judgment", "JudgmentW2Command" );
|
||||
TapNoteScore_W3 = THEME:GetMetric( "Judgment", "JudgmentW3Command" );
|
||||
TapNoteScore_W4 = THEME:GetMetric( "Judgment", "JudgmentW4Command" );
|
||||
TapNoteScore_W5 = THEME:GetMetric( "Judgment", "JudgmentW5Command" );
|
||||
TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" );
|
||||
};
|
||||
|
||||
local ProtimingCmds = {
|
||||
TapNoteScore_W1 = THEME:GetMetric( "Protiming", "ProtimingW1Command" );
|
||||
TapNoteScore_W2 = THEME:GetMetric( "Protiming", "ProtimingW2Command" );
|
||||
TapNoteScore_W3 = THEME:GetMetric( "Protiming", "ProtimingW3Command" );
|
||||
TapNoteScore_W4 = THEME:GetMetric( "Protiming", "ProtimingW4Command" );
|
||||
TapNoteScore_W5 = THEME:GetMetric( "Protiming", "ProtimingW5Command" );
|
||||
TapNoteScore_Miss = THEME:GetMetric( "Protiming", "ProtimingMissCommand" );
|
||||
};
|
||||
|
||||
local AverageCmds = {
|
||||
Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" );
|
||||
};
|
||||
|
||||
local TNSFrames = {
|
||||
TapNoteScore_W1 = 0;
|
||||
TapNoteScore_W2 = 1;
|
||||
TapNoteScore_W3 = 2;
|
||||
TapNoteScore_W4 = 3;
|
||||
TapNoteScore_W5 = 4;
|
||||
TapNoteScore_Miss = 5;
|
||||
};
|
||||
local t = Def.ActorFrame {};
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
LoadActor(THEME:GetPathG("Judgment","Normal")) .. {
|
||||
Name="Judgment";
|
||||
InitCommand=cmd(pause;visible,false);
|
||||
OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand");
|
||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||
};
|
||||
LoadFont("Combo Numbers") .. {
|
||||
Name="ProtimingDisplay";
|
||||
Text="";
|
||||
InitCommand=cmd(visible,false);
|
||||
OnCommand=THEME:GetMetric("Protiming","ProtimingOnCommand");
|
||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||
};
|
||||
LoadFont("Common Normal") .. {
|
||||
Name="ProtimingAverage";
|
||||
Text="";
|
||||
InitCommand=cmd(visible,false);
|
||||
OnCommand=THEME:GetMetric("Protiming","AverageOnCommand");
|
||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphBG";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,192,16);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,0.8;visible,false);
|
||||
OnCommand=cmd(diffuse,Color("Black");diffusetopedge,color("0.1,0.1,0.1,1");diffusealpha,0.8;shadowlength,2;);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphWindowW3";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,192-4,16-4);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W3"];);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphWindowW2";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW2"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,192-4),16-4);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W2"];);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphWindowW1";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW1"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,192-4),16-4);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W1"];);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphUnderlay";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,192-4,16-4);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,0.25;visible,false);
|
||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphFill";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,0,16-4;horizalign,left;);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||
OnCommand=cmd(diffuse,Color("Red"););
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphAverage";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,2,7;);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,0.85;visible,false);
|
||||
OnCommand=cmd(diffuse,Color("Orange");diffusealpha,0.85);
|
||||
};
|
||||
Def.Quad {
|
||||
Name="ProtimingGraphCenter";
|
||||
InitCommand=cmd(visible,false;y,32;zoomto,2,16-4;);
|
||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||
OnCommand=cmd(diffuse,Color("White");diffusealpha,1);
|
||||
};
|
||||
InitCommand = function(self)
|
||||
c = self:GetChildren();
|
||||
end;
|
||||
|
||||
JudgmentMessageCommand=function(self, param)
|
||||
if param.Player ~= player then return end;
|
||||
if param.HoldNoteScore then return end;
|
||||
|
||||
local iNumStates = c.Judgment:GetNumStates();
|
||||
local iFrame = TNSFrames[param.TapNoteScore];
|
||||
|
||||
if not iFrame then return end
|
||||
if iNumStates == 12 then
|
||||
iFrame = iFrame * 2;
|
||||
if not param.Early then
|
||||
iFrame = iFrame + 1;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local fTapNoteOffset = param.TapNoteOffset;
|
||||
if param.HoldNoteScore then
|
||||
fTapNoteOffset = 1;
|
||||
else
|
||||
fTapNoteOffset = param.TapNoteOffset;
|
||||
end
|
||||
|
||||
if param.TapNoteScore == 'TapNoteScore_Miss' then
|
||||
fTapNoteOffset = 1;
|
||||
bUseNegative = true;
|
||||
else
|
||||
-- fTapNoteOffset = fTapNoteOffset;
|
||||
bUseNegative = false;
|
||||
end;
|
||||
|
||||
if fTapNoteOffset ~= 1 then
|
||||
-- we're safe, you can push the values
|
||||
tTotalJudgments[#tTotalJudgments+1] = bUseNegative and fTapNoteOffset or math.abs( fTapNoteOffset );
|
||||
-- New
|
||||
-- tPlayerData[player].SignedJudgments[#(tPlayerData[player].SignedJudgments)+1] = fTapNoteOffset;
|
||||
-- table.getn(tPlayerData[player].SignedJudgments = bUseNegative and fTapNoteOffset or fTapNoteOffset;
|
||||
end
|
||||
|
||||
self:playcommand("Reset");
|
||||
|
||||
c.Judgment:visible( not bShowProtiming );
|
||||
c.Judgment:setstate( iFrame );
|
||||
JudgeCmds[param.TapNoteScore](c.Judgment);
|
||||
|
||||
c.ProtimingDisplay:visible( bShowProtiming );
|
||||
c.ProtimingDisplay:settextf("%i",math.abs(fTapNoteOffset * 1000));
|
||||
ProtimingCmds[param.TapNoteScore](c.ProtimingDisplay);
|
||||
|
||||
c.ProtimingAverage:visible( bShowProtiming );
|
||||
c.ProtimingAverage:settextf("%.2f%%",clamp(100 - MakeAverage( tTotalJudgments ) * 1000 ,0,100));
|
||||
AverageCmds['Pulse'](c.ProtimingAverage);
|
||||
|
||||
c.ProtimingGraphBG:visible( bShowProtiming );
|
||||
c.ProtimingGraphUnderlay:visible( bShowProtiming );
|
||||
c.ProtimingGraphWindowW3:visible( bShowProtiming );
|
||||
c.ProtimingGraphWindowW2:visible( bShowProtiming );
|
||||
c.ProtimingGraphWindowW1:visible( bShowProtiming );
|
||||
c.ProtimingGraphFill:visible( bShowProtiming );
|
||||
c.ProtimingGraphFill:finishtweening();
|
||||
c.ProtimingGraphFill:decelerate(1/60);
|
||||
-- c.ProtimingGraphFill:zoomtowidth( clamp(fTapNoteOffset * 188,-188/2,188/2) );
|
||||
c.ProtimingGraphFill:zoomtowidth( clamp(
|
||||
scale(
|
||||
fTapNoteOffset,
|
||||
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
||||
0,188/2),
|
||||
-188/2,188/2)
|
||||
);
|
||||
c.ProtimingGraphAverage:visible( bShowProtiming );
|
||||
c.ProtimingGraphAverage:zoomtowidth( clamp(
|
||||
scale(
|
||||
MakeAverage( tTotalJudgments ),
|
||||
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
||||
0,188),
|
||||
0,188)
|
||||
);
|
||||
-- c.ProtimingGraphAverage:zoomtowidth( clamp(MakeAverage( tTotalJudgments ) * 1880,0,188) );
|
||||
c.ProtimingGraphCenter:visible( bShowProtiming );
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphBG);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphUnderlay);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW3);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW2);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW1);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphFill);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphAverage);
|
||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphCenter);
|
||||
end;
|
||||
|
||||
};
|
||||
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1,5 @@
|
||||
#TITLE:Love Is Eternity A;
|
||||
#OFFSET:0.000;
|
||||
#BPMS:0.000=140.000;
|
||||
#STOPS:;
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#TITLE:Love Is Eternity A;
|
||||
#OFFSET:0.000;
|
||||
#BPMS:0.000=140.000;
|
||||
#STOPS:;
|
||||
|
||||
@@ -61,4 +61,8 @@ t[#t+1] = Def.ActorFrame {
|
||||
InitCommand=cmd(x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y);
|
||||
CreateStats( PLAYER_1 );
|
||||
};
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
InitCommand=cmd(x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y);
|
||||
CreateStats( PLAYER_2 );
|
||||
};
|
||||
return t
|
||||
|
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 464 B After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 3.0 KiB |
@@ -1,4 +1,25 @@
|
||||
local t = Def.ActorFrame {};
|
||||
local function GetEdits( in_Song, in_StepsType )
|
||||
if in_Song then
|
||||
local sSong = in_Song;
|
||||
local sCurrentStyle = GAMESTATE:GetCurrentStyle();
|
||||
local sStepsType = in_StepsType;
|
||||
local iNumEdits = 0;
|
||||
if sSong:HasEdits( sStepsType ) then
|
||||
local tAllSteps = sSong:GetAllSteps();
|
||||
for i,Step in pairs(tAllSteps) do
|
||||
if Step:IsAnEdit() and s:GetStepsType() == sStepsType then
|
||||
iNumEdits = iNumEdits + 1;
|
||||
end
|
||||
end
|
||||
return iNumEdits;
|
||||
else
|
||||
return iNumEdits;
|
||||
end
|
||||
else
|
||||
return 0;
|
||||
end
|
||||
end;
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
LoadActor("_Background");
|
||||
};
|
||||
@@ -6,12 +27,12 @@ t[#t+1] = Def.ActorFrame {
|
||||
for idx,diff in pairs(Difficulty) do
|
||||
local sDifficulty = ToEnumShortString( diff );
|
||||
local tLocation = {
|
||||
Beginner = 16,
|
||||
Easy = 16*2,
|
||||
Medium = 16*3,
|
||||
Hard = 16*4,
|
||||
Challenge = 16*5,
|
||||
Edit = 16*7,
|
||||
Beginner = 32*-1.25,
|
||||
Easy = 32*-0.25,
|
||||
Medium = 32*0.75,
|
||||
Hard = 32*1.75,
|
||||
Challenge = 32*2.75,
|
||||
Edit = 32*4.75,
|
||||
};
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
SetCommand=function(self)
|
||||
@@ -27,14 +48,12 @@ for idx,diff in pairs(Difficulty) do
|
||||
local steps = song:GetOneSteps( st, diff );
|
||||
if steps then
|
||||
meter = steps:GetMeter();
|
||||
if meter >= 50 then
|
||||
meter = "!";
|
||||
end;
|
||||
--
|
||||
if diff == 'Difficulty_Edit' then
|
||||
meter = meter .. " Edit";
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
meter = GetEdits( song, st ) .. ' Edit';
|
||||
end
|
||||
end
|
||||
end
|
||||
c.Meter:settext( meter );
|
||||
self:playcommand( bHasStepsTypeAndDifficulty and "Show" or "Hide" );
|
||||
end;
|
||||
|
||||
@@ -5,14 +5,14 @@ local t = Def.ActorFrame{ -- [BGAnimation]
|
||||
LoadActor("_ball"); -- [Layer1] Type=0 File=_ball.png
|
||||
LoadActor("_ball")..{ -- [Layer2] Type=0 File=_ball.png
|
||||
};
|
||||
LoadActor("_text")..{ -- [Layer3] Type=0 File=_text.png
|
||||
--[[LoadActor("_text")..{ -- [Layer3] Type=0 File=_text.png
|
||||
InitCommand=cmd(y,48;hide_if,GAMESTATE:GetMultiplayer()); -- Command=y,48
|
||||
};
|
||||
LoadActor("_multi")..{ -- [Layer4] Type=0 File=_multi.png
|
||||
InitCommand=cmd(y,60;hide_if,not GAMESTATE:GetMultiplayer()); -- Command=y,48
|
||||
-- the hide_if command would be similar to Condition=, which also exists.
|
||||
-- Condition=GAMESTATE:GetMultiplayer(); is the equivalent code.
|
||||
};
|
||||
};]]
|
||||
LoadFont("Common normal")..{
|
||||
Text="sm-ssc Multiplayer";
|
||||
InitCommand=cmd(y,5;shadowlength,0;strokecolor,color("0,0,0,0.375");diffusebottomedge,color("#D6DBDD"););
|
||||
@@ -20,4 +20,4 @@ local t = Def.ActorFrame{ -- [BGAnimation]
|
||||
};
|
||||
};
|
||||
|
||||
return t;
|
||||
return t;
|
||||
|
||||
@@ -878,26 +878,26 @@ SortOrderSongChosenCommand=linear,0.25;diffusealpha,0;
|
||||
SortOrderOffCommand=bouncebegin,0.15;zoomy,0;
|
||||
#
|
||||
ShowStageDisplay=true
|
||||
StageDisplayX=SCREEN_CENTER_X-160-64
|
||||
StageDisplayY=SCREEN_TOP+160-96+4
|
||||
StageDisplayOnCommand=draworder,105;fov,90;zoom,0.75;zoomy,0;sleep,0.35;smooth,0.35;zoomy,0.75
|
||||
StageDisplayX=SCREEN_LEFT+192+32
|
||||
StageDisplayY=SCREEN_TOP+24+3
|
||||
StageDisplayOnCommand=skewx,-0.125;draworder,105;fov,90;zoom,0.675;zoomy,0;sleep,0.35;smooth,0.35;zoomy,0.675
|
||||
StageDisplayOffCommand=linear,0.25;zoomy,0;
|
||||
#
|
||||
ShowDifficultyDisplay=not GetGamePrefB("AutoSetStyle") and not GAMESTATE:IsCourseMode()
|
||||
# ShowDifficultyDisplay=not GetUserPrefB("UserPrefAutoSetStyle") and not GAMESTATE:IsCourseMode()
|
||||
DifficultyDisplayX=SCREEN_CENTER_X-160+64
|
||||
DifficultyDisplayY=SCREEN_TOP+160-96+4
|
||||
DifficultyDisplayX=SCREEN_CENTER_X-160
|
||||
DifficultyDisplayY=SCREEN_TOP+160-96+2
|
||||
DifficultyDisplayOnCommand=draworder,105;fov,90;zoom,1;zoomy,0;sleep,0.35;smooth,0.35;zoomy,1
|
||||
DifficultyDisplayOffCommand=linear,0.25;zoomy,0;
|
||||
#
|
||||
BannerX=SCREEN_CENTER_X-160
|
||||
BannerY=SCREEN_TOP+160-36
|
||||
BannerY=SCREEN_TOP+160-36+4
|
||||
BannerOnCommand=draworder,-1;scaletoclipped,256,80;visible,true;ztest,1;addy,-SCREEN_CENTER_Y;decelerate,0.35;addy,SCREEN_CENTER_Y
|
||||
BannerOffCommand=bouncebegin,0.15;zoomx,0;
|
||||
#
|
||||
ShowBannerFrame=true
|
||||
BannerFrameX=SCREEN_CENTER_X-160
|
||||
BannerFrameY=SCREEN_TOP+160-36
|
||||
BannerFrameY=SCREEN_TOP+160-36+4
|
||||
BannerFrameOnCommand=draworder,105;addy,-SCREEN_CENTER_Y;decelerate,0.35;addy,SCREEN_CENTER_Y
|
||||
BannerFrameOffCommand=bouncebegin,0.15;zoomx,0;
|
||||
#
|
||||
@@ -1200,7 +1200,7 @@ ItemsLongRowSharedX=SCREEN_CENTER_X+200
|
||||
ItemOnCommand=zoom,0.6375
|
||||
|
||||
ColorSelected=color("1,1,1,1")
|
||||
ColorNotSelected=color("0.9,0.9,0.9,1")
|
||||
ColorNotSelected=color("0.5,0.5,0.5,1")
|
||||
|
||||
[ScreenMiniMenuContext]
|
||||
PageOnCommand=visible,false
|
||||
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
@@ -35,14 +35,14 @@ t[#t+1] = Def.ActorFrame {
|
||||
self:visible( bShow == 1 );
|
||||
end;
|
||||
-- Grid
|
||||
LoadActor("_32") .. {
|
||||
--[[ LoadActor("_32") .. {
|
||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/32,SCREEN_HEIGHT/32);
|
||||
OnCommand=cmd(diffuse,color("0,0,0,0.5"));
|
||||
};
|
||||
LoadActor("_16") .. {
|
||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/16,SCREEN_HEIGHT/16);
|
||||
OnCommand=cmd(diffuse,color("1,1,1,0.125"));
|
||||
};
|
||||
}; --]]
|
||||
--[[ LoadActor("_8") .. {
|
||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/8,SCREEN_HEIGHT/8);
|
||||
OnCommand=cmd(diffuse,color("#00BFE833"));
|
||||
|
||||
@@ -13,7 +13,8 @@ public:
|
||||
void Init();
|
||||
/**
|
||||
* @brief Play the sounds in question for the particular chart.
|
||||
* @param nd the note data used for playing the ticks. */
|
||||
* @param nd the note data used for playing the ticks.
|
||||
* @param ps the player's state (and number) for Split Timing. */
|
||||
void PlayTicks( const NoteData &nd, const PlayerState *ps );
|
||||
/** @brief Stop playing the sounds. */
|
||||
void StopPlaying();
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* As an example, use "StepMania" here, not "StepMania4".
|
||||
*/
|
||||
#define PRODUCT_FAMILY_BARE sm-ssc
|
||||
#define PRODUCT_FAMILY_BARE StepMania
|
||||
|
||||
/**
|
||||
* @brief A unique name for each application that you might want installed side-by-side with other applications.
|
||||
@@ -16,7 +16,7 @@
|
||||
* As an example, use "StepMania4" here, not "StepMania".
|
||||
* It would cause a conflict with older versions such as StepMania 3.X.
|
||||
*/
|
||||
#define PRODUCT_ID_BARE sm-ssc
|
||||
#define PRODUCT_ID_BARE StepMania 5
|
||||
|
||||
/**
|
||||
* @brief Version info displayed to the user.
|
||||
@@ -35,7 +35,7 @@
|
||||
* </li></ul>
|
||||
*/
|
||||
#ifndef PRODUCT_VER_BARE
|
||||
#define PRODUCT_VER_BARE v1.2.5
|
||||
#define PRODUCT_VER_BARE v5.0 Preview 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
; Included by the NSIS installer script
|
||||
; Don't forget to also change ProductInfo.h!
|
||||
|
||||
!define PRODUCT_FAMILY "sm-ssc"
|
||||
!define PRODUCT_FAMILY "StepMania"
|
||||
|
||||
; see ProductInfo.h for use descriptions
|
||||
!define PRODUCT_ID "sm-ssc"
|
||||
!define PRODUCT_VER "v1.2.5"
|
||||
!define PRODUCT_ID "StepMania"
|
||||
!define PRODUCT_VER "v5.0 Preview 1"
|
||||
!define PRODUCT_DISPLAY "${PRODUCT_ID} ${PRODUCT_VER}"
|
||||
!define PRODUCT_BITMAP "ssc"
|
||||
|
||||
|
||||
@@ -341,10 +341,6 @@ public:
|
||||
Steps *CreateSteps();
|
||||
void InitSteps(Steps *pSteps);
|
||||
|
||||
/**
|
||||
* @brief Retrieve the beat based on the specified time.
|
||||
* @param fElapsedTime the amount of time since the Song started.
|
||||
* @return the appropriate beat. */
|
||||
/* [splittiming]
|
||||
float SongGetBeatFromElapsedTime( float fElapsedTime ) const
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "RageLog.h"
|
||||
#include "NoteData.h"
|
||||
#include "GameManager.h"
|
||||
#include "SongManager.h"
|
||||
#include "NoteDataUtil.h"
|
||||
#include "NotesLoaderSSC.h"
|
||||
#include "NotesLoaderSM.h"
|
||||
@@ -468,6 +469,13 @@ public:
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int UsesSplitTiming( T* p, lua_State *L )
|
||||
{
|
||||
Song *song = SONGMAN->GetSongFromSteps(p);
|
||||
lua_pushboolean(L, p->m_Timing != song->m_SongTiming);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
LunaSteps()
|
||||
{
|
||||
@@ -486,6 +494,7 @@ public:
|
||||
ADD_METHOD( IsAnEdit );
|
||||
ADD_METHOD( IsAutogen );
|
||||
ADD_METHOD( IsAPlayerEdit );
|
||||
ADD_METHOD( UsesSplitTiming );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1350,13 +1350,13 @@ public:
|
||||
/**
|
||||
* @brief Set the row to have the new Combo.
|
||||
* @param iNoteRow the row to have the new Combo.
|
||||
* @param iTicks the Combo.
|
||||
* @param iCombo the Combo.
|
||||
*/
|
||||
void SetComboAtRow( int iNoteRow, int iCombo );
|
||||
/**
|
||||
* @brief Set the beat to have the new Combo.
|
||||
* @param fBeat the beat to have the new Combo.
|
||||
* @param iTicks the Combo.
|
||||
* @param iCombo the Combo.
|
||||
*/
|
||||
void SetComboAtBeat( float fBeat, int iCombo ) { SetComboAtRow( BeatToNoteRow( fBeat ), iCombo ); }
|
||||
/**
|
||||
|
||||