[default -> sm130futures] Bring up to date.
@@ -9,9 +9,12 @@ change to JSON, but it is unsure if this will be done.
|
|||||||
Implement .ssc at your own risk.
|
Implement .ssc at your own risk.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
[v0.57] - Wolfman2000
|
[v0.58] - Wolfman2000
|
||||||
* Implement #LABELS tag for easier Editor work/Rock Band section mimicry.
|
* Implement #LABELS tag for easier Editor work/Rock Band section mimicry.
|
||||||
|
|
||||||
|
[v0.57] - AJ
|
||||||
|
* Add #ORIGIN tag to metadata.
|
||||||
|
|
||||||
[v0.56] - Wolfman2000
|
[v0.56] - Wolfman2000
|
||||||
* Implement #WARPS tag to replace negative bpm/stop gimmicks.
|
* Implement #WARPS tag to replace negative bpm/stop gimmicks.
|
||||||
|
|
||||||
|
|||||||
@@ -30,20 +30,66 @@ sm-ssc $SM5VERSION | 2011????
|
|||||||
jump to different labels made. [Wolfman2000]
|
jump to different labels made. [Wolfman2000]
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
sm-ssc v1.2.5 | 201104??
|
sm-ssc v1.2.5 | 20110501
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
20110430
|
||||||
|
--------
|
||||||
|
* [ScreenOptions] Renamed "ScreenOptions LineHighlight" to "ScreenOptions
|
||||||
|
LineHighlight P#", making it load per-player. [AJ]
|
||||||
|
* [OptionRow] Added Text param to RefreshMessageCommand. [AJ]
|
||||||
|
* [ScreenOptions] Added SelectMultipleMessageCommand, ChangeValueMessageCommand. [AJ]
|
||||||
|
* [UnlockEntry] Added GetCourse, GetCode Lua bindings. [AJ]
|
||||||
|
* [UnlockManager] Added UnlockRequirement_NumUnlocked enum. [AJ]
|
||||||
|
* [Song] Added Origin (#ORIGIN tag in .ssc) [AJ]
|
||||||
|
* [UnlockManager] Added GetPoints(UnlockRequirement),
|
||||||
|
GetPointsForProfile(Profile,UnlockRequirement) Lua bindings. [AJ]
|
||||||
|
* [Course] Added #SCRIPTER tag and GetScripter Lua binding. [AJ]
|
||||||
|
|
||||||
|
20110428
|
||||||
|
--------
|
||||||
|
* [BeginnerHelper] Various changes: [AJ]
|
||||||
|
* Changed Player_#X/Y metrics to Player#X/Y metrics for consistency.
|
||||||
|
* Converted the background to an AutoActor.
|
||||||
|
* [BPMDisplay] Added SetFromSong Lua binding. [AJ]
|
||||||
|
|
||||||
|
20110423
|
||||||
|
--------
|
||||||
|
* [CourseLoaderCRS] Fixed loading of Player's Best/Most Played courses,
|
||||||
|
probably others too. [AJ]
|
||||||
|
* [ScreenGameplaySyncMachine] Fixed a crash when entering
|
||||||
|
ScreenGameplaySyncMachine as Player 2. (Fixes issue 127) [AJ]
|
||||||
|
* [ScreenOptionsEditCourse] Fixed a crash when going to the first row.
|
||||||
|
(Fixes issue 235) [AJ]
|
||||||
|
* [SongManager] Added GetCourseGroupNames Lua binding. [AJ]
|
||||||
|
|
||||||
|
20110422
|
||||||
|
--------
|
||||||
|
* [Banner] Added ScrollSpeedDivisor metric; controls the scroll speed of
|
||||||
|
Random/Roulette banners. [AJ]
|
||||||
|
* [FadingBanner] Added BannerRoulette, BannerRandom, and Banner(Custom Item Name) commands. [AJ]
|
||||||
|
|
||||||
|
20110421
|
||||||
|
--------
|
||||||
|
* [ScreenSelectMusic] Changed "Percent Frame p1" to "PercentFrame P1" for consistency. [AJ]
|
||||||
|
* [LifeMeterBattery] Convert Frame to an AutoActor. [AJ]
|
||||||
|
* [ScreenEvaluation] Added RollingNumbersClass metric, allowing for the ability
|
||||||
|
to change which RollingNumbers class is loaded. [AJ]
|
||||||
|
* [ScreenGameplay] Added SongNumberFormat metric. [AJ]
|
||||||
|
|
||||||
|
20110420
|
||||||
|
--------
|
||||||
|
* [CourseContentsList] Fix a crash. [AJ]
|
||||||
|
|
||||||
20110416
|
20110416
|
||||||
--------
|
--------
|
||||||
* [PlayerOptions] Added UsingReverse() Lua binding (automatically tests
|
* [PlayerOptions] Added UsingReverse() Lua binding (automatically tests GetReverse() == 1) [AJ]
|
||||||
GetReverse() == 1) [AJ]
|
|
||||||
* [PlayerState] Added GetCurrentPlayerOptions() Lua binding [AJ]
|
* [PlayerState] Added GetCurrentPlayerOptions() Lua binding [AJ]
|
||||||
|
|
||||||
20110413
|
20110413
|
||||||
--------
|
--------
|
||||||
* [ScreenSelectMusic] Made score frame into an AutoActor, changed the filename
|
* [ScreenSelectMusic] Made score frame into an AutoActor, changed the filename
|
||||||
from "score frame p1" to "ScoreFrame P1" for consistency with other elements.
|
from "score frame p1" to "ScoreFrame P1" for consistency with other elements. [AJ]
|
||||||
[AJ]
|
|
||||||
|
|
||||||
20110405
|
20110405
|
||||||
--------
|
--------
|
||||||
|
|||||||
@@ -0,0 +1,141 @@
|
|||||||
|
local function Fooled()
|
||||||
|
local phrases = {
|
||||||
|
"hornswaggled",
|
||||||
|
"bamboozled",
|
||||||
|
"hoodwinked",
|
||||||
|
"swindled",
|
||||||
|
"duped",
|
||||||
|
"hoaxed",
|
||||||
|
"fleeced",
|
||||||
|
"shafted",
|
||||||
|
"caboodled",
|
||||||
|
"beguiled",
|
||||||
|
"finagled",
|
||||||
|
"two-timed",
|
||||||
|
"suckered",
|
||||||
|
"flimflammed"
|
||||||
|
}
|
||||||
|
return phrases[math.random(#phrases)]
|
||||||
|
end
|
||||||
|
|
||||||
|
local ssc = {
|
||||||
|
"AJ Kelly as freem",
|
||||||
|
"Jonathan Payne (Midiman)",
|
||||||
|
"Colby Klein (shakesoda)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local sm_ssc = {
|
||||||
|
"Jason Felds (wolfman2000)",
|
||||||
|
"Alberto Ramos (Daisuke Master)",
|
||||||
|
"Jack Walstrom (FSX)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local stepmania = {
|
||||||
|
"Chris Danford",
|
||||||
|
"Glenn Maynard",
|
||||||
|
"Steve Checkoway",
|
||||||
|
-- and various other contributors
|
||||||
|
}
|
||||||
|
|
||||||
|
local contrib = {
|
||||||
|
"Aldo Fregoso (Aldo_MX)", -- delays
|
||||||
|
"Chris Eldridge (kurisu)", -- dance-threepanel
|
||||||
|
"cerbo",
|
||||||
|
"cesarmades", -- pump/cmd* noteskins
|
||||||
|
"corec", -- various fixes
|
||||||
|
"galopin", -- piu PlayStation2 usb mat support
|
||||||
|
"gholms", -- automake 1.11 support
|
||||||
|
"juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods
|
||||||
|
"Kaox", -- pump/default noteskin
|
||||||
|
"NitroX72", -- pump/frame noteskin
|
||||||
|
"sy567", -- beginner helper fix
|
||||||
|
"Thai Pangsakulyanont (theDtTvB)",
|
||||||
|
"v1toko", -- x-mode from StepNXA
|
||||||
|
}
|
||||||
|
|
||||||
|
local thanks = {
|
||||||
|
"A Pseudonymous Coder", -- support
|
||||||
|
"Bill Shillito (DM Ashura)", -- Music (not yet though)
|
||||||
|
"cpubasic13", -- testing (a lot)
|
||||||
|
"Dreamwoods",
|
||||||
|
"Infamouspat", -- oitg bro
|
||||||
|
"Jason Bolt (LightningXCE)",
|
||||||
|
"Jousway", -- Noteskins
|
||||||
|
"Matt1360", -- Automake magic + oitg bro
|
||||||
|
"Mark Cannon (vyhd)", -- oitg bro + twirl/roll
|
||||||
|
"Petriform", -- Music
|
||||||
|
"Renard",
|
||||||
|
"Ryan McKanna (Plaguefox)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local shoutout = {
|
||||||
|
"The Lua team", -- lua project lead or some shit. super nerdy but oh hell.
|
||||||
|
"Mojang", -- minecraft forever -freem
|
||||||
|
"NAKET Coder",
|
||||||
|
"Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits
|
||||||
|
--Image(), -- we should have some logos probably to look super pro
|
||||||
|
"You showed us... your ultimate dance",
|
||||||
|
-- "Can't stop crying... buckets of tears!"
|
||||||
|
}
|
||||||
|
|
||||||
|
local copyright = {
|
||||||
|
"StepMania is released under the terms of the MIT license.",
|
||||||
|
"If you paid for the program you've been " .. Fooled() .. ".",
|
||||||
|
"All content is the sole property of their respectful owners."
|
||||||
|
}
|
||||||
|
|
||||||
|
local sections = {
|
||||||
|
{ "the spinal shark collective (project lead)", ssc },
|
||||||
|
{ "sm-ssc Team", sm_ssc },
|
||||||
|
{ "StepMania Team", stepmania },
|
||||||
|
{ "Other Contributors", contrib },
|
||||||
|
{ "Special Thanks", thanks },
|
||||||
|
{ "Shoutouts", shoutout },
|
||||||
|
{ "Copyright", copyright },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- To add people or sections modify the above.
|
||||||
|
|
||||||
|
local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3)
|
||||||
|
local sectionOn = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,3)
|
||||||
|
local item_padding_start = 4;
|
||||||
|
|
||||||
|
local creditScroller = Def.ActorScroller {
|
||||||
|
SecondsPerItem = 0.5;
|
||||||
|
NumItemsToDraw = 40;
|
||||||
|
TransformFunction = function( self, offset, itemIndex, numItems)
|
||||||
|
self:y(30*offset)
|
||||||
|
end;
|
||||||
|
OnCommand = cmd(scrollwithpadding,item_padding_start,15);
|
||||||
|
}
|
||||||
|
|
||||||
|
local function AddLine( text, command )
|
||||||
|
local text = Def.ActorFrame{
|
||||||
|
LoadFont("Common normal")..{
|
||||||
|
Text = text or "";
|
||||||
|
OnCommand = command or lineOn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table.insert( creditScroller, text )
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add sections with padding.
|
||||||
|
for section in ivalues(sections) do
|
||||||
|
AddLine( section[1], sectionOn )
|
||||||
|
for name in ivalues(section[2]) do
|
||||||
|
AddLine( name )
|
||||||
|
end
|
||||||
|
AddLine()
|
||||||
|
AddLine()
|
||||||
|
end
|
||||||
|
|
||||||
|
creditScroller.BeginCommand=function(self)
|
||||||
|
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) );
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
return Def.ActorFrame{
|
||||||
|
creditScroller..{
|
||||||
|
InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64),
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
function GetLocalProfiles()
|
function GetLocalProfiles()
|
||||||
local ret = {};
|
local t = {};
|
||||||
|
|
||||||
for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do
|
for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do
|
||||||
local profile=PROFILEMAN:GetLocalProfileFromIndex(p);
|
local profile=PROFILEMAN:GetLocalProfileFromIndex(p);
|
||||||
local item = Def.ActorFrame {
|
local ProfileCard = Def.ActorFrame {
|
||||||
--[[ Def.Quad {
|
--[[ Def.Quad {
|
||||||
InitCommand=cmd(zoomto,200,1;y,40/2);
|
InitCommand=cmd(zoomto,200,1;y,40/2);
|
||||||
OnCommand=cmd(diffuse,Color('Outline'););
|
OnCommand=cmd(diffuse,Color('Outline'););
|
||||||
@@ -22,10 +22,10 @@ function GetLocalProfiles()
|
|||||||
end;
|
end;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
table.insert( ret, item );
|
t[#t+1]=ProfileCard;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
return ret;
|
return t;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function LoadCard(cColor)
|
function LoadCard(cColor)
|
||||||
@@ -38,14 +38,14 @@ function LoadCard(cColor)
|
|||||||
return t
|
return t
|
||||||
end
|
end
|
||||||
function LoadPlayerStuff(Player)
|
function LoadPlayerStuff(Player)
|
||||||
local ret = {};
|
local t = {};
|
||||||
|
|
||||||
local pn = (Player == PLAYER_1) and 1 or 2;
|
local pn = (Player == PLAYER_1) and 1 or 2;
|
||||||
|
|
||||||
--[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. {
|
--[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. {
|
||||||
Name = 'BigFrame';
|
Name = 'BigFrame';
|
||||||
}; --]]
|
}; --]]
|
||||||
local t = Def.ActorFrame {
|
t[#t+1] = Def.ActorFrame {
|
||||||
Name = 'JoinFrame';
|
Name = 'JoinFrame';
|
||||||
LoadCard(Color('Orange'));
|
LoadCard(Color('Orange'));
|
||||||
--[[ Def.Quad {
|
--[[ Def.Quad {
|
||||||
@@ -62,23 +62,13 @@ function LoadPlayerStuff(Player)
|
|||||||
OnCommand=cmd(diffuseshift;effectcolor1,Color('White');effectcolor2,color("0.5,0.5,0.5"));
|
OnCommand=cmd(diffuseshift;effectcolor1,Color('White');effectcolor2,color("0.5,0.5,0.5"));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
t = Def.ActorFrame {
|
t[#t+1] = Def.ActorFrame {
|
||||||
Name = 'BigFrame';
|
Name = 'BigFrame';
|
||||||
LoadCard(PlayerColor(Player));
|
LoadCard(PlayerColor(Player));
|
||||||
};
|
};
|
||||||
table.insert( ret, t );
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
|
||||||
--[[ t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 170, 20) .. {
|
|
||||||
Name = 'SmallFrame';
|
Name = 'SmallFrame';
|
||||||
}; --]]
|
|
||||||
t = Def.ActorFrame {
|
|
||||||
Name = 'SmallFrame';
|
|
||||||
--[[ Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,170+4,32+4);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
}; --]]
|
|
||||||
InitCommand=cmd(y,-2);
|
InitCommand=cmd(y,-2);
|
||||||
Def.Quad {
|
Def.Quad {
|
||||||
InitCommand=cmd(zoomto,200-10,40+2);
|
InitCommand=cmd(zoomto,200-10,40+2);
|
||||||
@@ -97,9 +87,8 @@ function LoadPlayerStuff(Player)
|
|||||||
OnCommand=cmd(diffuse,PlayerColor(Player);glow,color("1,1,1,0.25"));
|
OnCommand=cmd(diffuse,PlayerColor(Player);glow,color("1,1,1,0.25"));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
t = Def.ActorScroller{
|
t[#t+1] = Def.ActorScroller{
|
||||||
Name = 'Scroller';
|
Name = 'Scroller';
|
||||||
NumItemsToDraw=6;
|
NumItemsToDraw=6;
|
||||||
-- InitCommand=cmd(y,-230/2+20;);
|
-- InitCommand=cmd(y,-230/2+20;);
|
||||||
@@ -114,34 +103,17 @@ function LoadPlayerStuff(Player)
|
|||||||
end;
|
end;
|
||||||
children = GetLocalProfiles();
|
children = GetLocalProfiles();
|
||||||
};
|
};
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
t = Def.ActorFrame {
|
t[#t+1] = Def.ActorFrame {
|
||||||
Name = "EffectFrame";
|
Name = "EffectFrame";
|
||||||
--[[ Def.Quad {
|
|
||||||
InitCommand=cmd(y,-230/2;vertalign,top;zoomto,200,8;fadebottom,1);
|
|
||||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
|
||||||
};
|
};
|
||||||
Def.Quad {
|
t[#t+1] = LoadFont("Common Normal") .. {
|
||||||
InitCommand=cmd(y,230/2;vertalign,bottom;zoomto,200,8;fadetop,1);
|
|
||||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
|
||||||
}; --]]
|
|
||||||
};
|
|
||||||
table.insert( ret, t );
|
|
||||||
--[[ t = Def.BitmapText {
|
|
||||||
OnCommand = cmd(y,160);
|
|
||||||
Name = 'SelectedProfileText';
|
|
||||||
Font = "Common Normal";
|
|
||||||
Text = 'No profile';
|
|
||||||
}; --]]
|
|
||||||
t = LoadFont("Common Normal") .. {
|
|
||||||
Name = 'SelectedProfileText';
|
Name = 'SelectedProfileText';
|
||||||
--InitCommand=cmd(y,160;shadowlength,1;diffuse,PlayerColor(Player));
|
--InitCommand=cmd(y,160;shadowlength,1;diffuse,PlayerColor(Player));
|
||||||
InitCommand=cmd(y,160;shadowlength,1;);
|
InitCommand=cmd(y,160;shadowlength,1;);
|
||||||
};
|
};
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
return ret;
|
return t;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function UpdateInternal3(self, Player)
|
function UpdateInternal3(self, Player)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.5 KiB |
@@ -1,4 +1,4 @@
|
|||||||
[common]
|
[common]
|
||||||
Top=5
|
Top=5
|
||||||
Baseline=26
|
Baseline=26
|
||||||
LineSpacing=28
|
LineSpacing=28
|
||||||
@@ -42,4 +42,5 @@ line 2=큰탑터투트티펌페
|
|||||||
line 3=폼핑할함해행헤혀
|
line 3=폼핑할함해행헤혀
|
||||||
line 4=환회휘태난터까시
|
line 4=환회휘태난터까시
|
||||||
line 5=간너샐러버문쳐달
|
line 5=간너샐러버문쳐달
|
||||||
line 6=깡천림홍석
|
line 6=깡천림홍석악전반
|
||||||
|
line 7=채
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
_blank
|
||||||
@@ -435,7 +435,7 @@ SoundResampleQuality=Advanced: Select the resampling quality to use.
|
|||||||
SoundVolume=Adjust the volume level during gameplay.
|
SoundVolume=Adjust the volume level during gameplay.
|
||||||
SoundVolumeAttract=Adjust the volume level during attract mode.
|
SoundVolumeAttract=Adjust the volume level during attract mode.
|
||||||
Speed=Speed
|
Speed=Speed
|
||||||
Stepmania Credits=The Stepmania Development Team
|
StepMania Credits=The StepMania Development Team.
|
||||||
Steps=Steps
|
Steps=Steps
|
||||||
Style=
|
Style=
|
||||||
Test Input=Test the responsiveness of connected joysticks.
|
Test Input=Test the responsiveness of connected joysticks.
|
||||||
@@ -995,7 +995,7 @@ ShowSongOptions=Show Song Options
|
|||||||
ShowStats=Show Stats
|
ShowStats=Show Stats
|
||||||
SmoothLines=SmoothLines
|
SmoothLines=SmoothLines
|
||||||
SoundEffect=Sound Effect
|
SoundEffect=Sound Effect
|
||||||
Stepmania Credits=Stepmania Credits
|
StepMania Credits=StepMania Credits
|
||||||
Center1Player=Center 1 Player
|
Center1Player=Center 1 Player
|
||||||
Song=Song
|
Song=Song
|
||||||
Song Group=Song Group
|
Song Group=Song Group
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ v1.1
|
|||||||
* Cleaned up code some, I think.
|
* Cleaned up code some, I think.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
anticipated future changes:
|
anticipated future changes:
|
||||||
* M-Mod support (when sm-ssc imntegrates it)
|
* M-Mod support (when sm-ssc integrates it)
|
||||||
]]
|
]]
|
||||||
|
|
||||||
-- ProfileDir(slot): gets the profile dir for slot,
|
-- ProfileDir(slot): gets the profile dir for slot,
|
||||||
@@ -68,7 +68,7 @@ local function ParseSpeedModFile(path)
|
|||||||
return mods
|
return mods
|
||||||
else
|
else
|
||||||
-- error; write a fallback mod file and return it
|
-- error; write a fallback mod file and return it
|
||||||
local fallbackString = "0.5x,0.75x,1x,1.75x,2x,2.25x,2.5x,C150,C300"
|
local fallbackString = "0.5x,1x,1.5x,2x,3x,4x,8x,C200,C400"
|
||||||
Trace("[CustomSpeedMods]: Could not read SpeedMods; writing fallback to "..path)
|
Trace("[CustomSpeedMods]: Could not read SpeedMods; writing fallback to "..path)
|
||||||
file:Open(path, 2)
|
file:Open(path, 2)
|
||||||
file:Write(fallbackString)
|
file:Write(fallbackString)
|
||||||
|
|||||||
@@ -141,6 +141,10 @@ function Actor:xy(actorX,actorY)
|
|||||||
self:y(actorY)
|
self:y(actorY)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function PositionPerPlayer(player, p1X, p2X)
|
||||||
|
return player == PLAYER_1 and p1X or p2X
|
||||||
|
end
|
||||||
|
|
||||||
-- MaskSource([clearzbuffer])
|
-- MaskSource([clearzbuffer])
|
||||||
-- Sets an actor up as the source for a mask. Clears zBuffer by default.
|
-- Sets an actor up as the source for a mask. Clears zBuffer by default.
|
||||||
function Actor:MaskSource(noclear)
|
function Actor:MaskSource(noclear)
|
||||||
|
|||||||
@@ -123,11 +123,37 @@ UnlockColor=color("1,0.5,0,1")
|
|||||||
ExtraColor=color("#ff0000") -- red
|
ExtraColor=color("#ff0000") -- red
|
||||||
|
|
||||||
[UnlockManager]
|
[UnlockManager]
|
||||||
# Unlock specific things. we'll go in-depth with this one day, but it really
|
# Unlock specific things.
|
||||||
# isnt what sm-ssc was designed for.
|
|
||||||
AutoLockChallengeSteps=false
|
AutoLockChallengeSteps=false
|
||||||
UnlockNames=""
|
UnlockNames=""
|
||||||
|
|
||||||
|
# useful commands:
|
||||||
|
# require,(UnlockRequirement),(value);
|
||||||
|
# where (UnlockRequirement) is one of the UnlockRequirement enums.
|
||||||
|
|
||||||
|
# song,(Song Name);
|
||||||
|
# sets a Song to be unlocked
|
||||||
|
|
||||||
|
# course,(Course Name);
|
||||||
|
# sets a Course to be unlocked
|
||||||
|
|
||||||
|
# roulette;
|
||||||
|
# Song shows up in roulette (useful with Song only)
|
||||||
|
|
||||||
|
# mod,(modifier);
|
||||||
|
# sets a modifier to be unlocked.
|
||||||
|
|
||||||
|
# code,(code);
|
||||||
|
# assigns a code to the unlock
|
||||||
|
|
||||||
|
# examples:
|
||||||
|
# 1) The song "Pledge" requires 500 AP.
|
||||||
|
# Unlock1Command=song,"Pledge";require,"UnlockRequirement_ArcadePoints",500
|
||||||
|
|
||||||
|
# 2) The song "ABC" can be unlocked via roulette; pick an arbitrary code
|
||||||
|
# to use to store the unlock.
|
||||||
|
# Unlock2Command=song,"ABC";code,"59183751";roulette
|
||||||
|
|
||||||
# 03 #
|
# 03 #
|
||||||
|
|
||||||
[ArrowEffects]
|
[ArrowEffects]
|
||||||
@@ -195,6 +221,8 @@ BottomEdge=SCREEN_BOTTOM
|
|||||||
# Scroll stuff when you roll over it, DDR Extreme style.
|
# Scroll stuff when you roll over it, DDR Extreme style.
|
||||||
ScrollRandom=false
|
ScrollRandom=false
|
||||||
ScrollRoulette=false
|
ScrollRoulette=false
|
||||||
|
# Control how fast the banner scrolls. Higher numbers mean slower.
|
||||||
|
ScrollSpeedDivisor=2
|
||||||
|
|
||||||
[BitmapText]
|
[BitmapText]
|
||||||
# The colors in the 'roulette' text. you can have alot!
|
# The colors in the 'roulette' text. you can have alot!
|
||||||
@@ -467,6 +495,9 @@ BannerFadeOffCommand=diffusealpha,1;stoptweening;linear,0.25;diffusealpha,0
|
|||||||
# ?
|
# ?
|
||||||
BannerResetFadeCommand=diffusealpha,1
|
BannerResetFadeCommand=diffusealpha,1
|
||||||
|
|
||||||
|
BannerRouletteCommand=
|
||||||
|
BannerRandomCommand=
|
||||||
|
|
||||||
[Gameplay]
|
[Gameplay]
|
||||||
# System Direction
|
# System Direction
|
||||||
ComboIsPerRow=ComboPerRow()
|
ComboIsPerRow=ComboPerRow()
|
||||||
@@ -1731,7 +1762,7 @@ LoadEdits=true
|
|||||||
Fallback="ScreenWithMenuElements"
|
Fallback="ScreenWithMenuElements"
|
||||||
Class="ScreenSelectProfile"
|
Class="ScreenSelectProfile"
|
||||||
#
|
#
|
||||||
ScreenOnCommand=lockinput,1
|
ScreenOnCommand=%function(self) self:lockinput(3); end;
|
||||||
#
|
#
|
||||||
NextScreen=Branch.AfterSelectProfile()
|
NextScreen=Branch.AfterSelectProfile()
|
||||||
PrevScreen=Branch.TitleMenu()
|
PrevScreen=Branch.TitleMenu()
|
||||||
@@ -1744,7 +1775,8 @@ CodeUp="+MenuUp"
|
|||||||
CodeUp2="+Up"
|
CodeUp2="+Up"
|
||||||
CodeDown="+MenuDown"
|
CodeDown="+MenuDown"
|
||||||
CodeDown2="+Down"
|
CodeDown2="+Down"
|
||||||
CodeStart="Start"
|
# Holding Start let us skip ( annoying )
|
||||||
|
CodeStart="~Start,+Start"
|
||||||
CodeBack="Back"
|
CodeBack="Back"
|
||||||
CodeCenter="Center"
|
CodeCenter="Center"
|
||||||
CodeDownLeft="DownLeft"
|
CodeDownLeft="DownLeft"
|
||||||
@@ -1764,16 +1796,16 @@ DefaultChoice="Single"
|
|||||||
ChoiceNames=GameCompatibleModes()
|
ChoiceNames=GameCompatibleModes()
|
||||||
#
|
#
|
||||||
OptionOrderAuto="1:2,2:1"
|
OptionOrderAuto="1:2,2:1"
|
||||||
ChoiceSingle="name,Single;style,single;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceSingle="name,Single;style,single;text,Single;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceDouble="name,Double;style,double;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceDouble="name,Double;style,double;text,Double;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceSolo="name,Solo;style,solo;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceSolo="name,Solo;style,solo;text,Solo;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceVersus="name,Versus;style,versus;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceVersus="name,Versus;style,versus;text,Versus;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceCouple="name,Couple;style,couple;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceCouple="name,Couple;style,couple;text,Couple;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice5Keys="name,5Keys;style,single5;;screen,"..Branch.AfterSelectPlayMode()
|
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice7Keys="name,7Keys;style,single7;screen,"..Branch.AfterSelectPlayMode()
|
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice10Keys="name,10Keys;style,double10;screen,"..Branch.AfterSelectPlayMode()
|
Choice10Keys="name,10Keys;style,double10;text,10Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice14Keys="name,14Keys;style,double14;screen,"..Branch.AfterSelectPlayMode()
|
Choice14Keys="name,14Keys;style,double14;text,14Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceKB7="name,kb7;style,single;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceKB7="name,kb7;style,single;screen,"..Branch.AfterSelectPlayMode()
|
||||||
#
|
#
|
||||||
PerChoiceScrollElement=false
|
PerChoiceScrollElement=false
|
||||||
@@ -1794,7 +1826,7 @@ PrevScreen=Branch.TitleMenu()
|
|||||||
#
|
#
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
#
|
#
|
||||||
DefaultChoice="Easy"
|
DefaultChoice="Normal"
|
||||||
ChoiceNames="Normal,Rave,Extended,Oni,Endless"
|
ChoiceNames="Normal,Rave,Extended,Oni,Endless"
|
||||||
#
|
#
|
||||||
PerChoiceScrollElement=false
|
PerChoiceScrollElement=false
|
||||||
@@ -1804,13 +1836,13 @@ ShowScroller=true
|
|||||||
WrapScroller=true
|
WrapScroller=true
|
||||||
ShowIcon=false
|
ShowIcon=false
|
||||||
#
|
#
|
||||||
ChoiceEasy="applydefaultoptions;name,Easy;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
ChoiceEasy="applydefaultoptions;name,Easy;text,Easy;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||||
ChoiceNormal="applydefaultoptions;name,Normal;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
ChoiceNormal="applydefaultoptions;name,Normal;text,Normal;playmode,regular;difficulty,easy;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||||
ChoiceHard="applydefaultoptions;name,Hard;playmode,regular;difficulty,hard;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
ChoiceHard="applydefaultoptions;name,Hard;text,Hard;playmode,regular;difficulty,hard;screen,ScreenSelectMusic;setenv,sMode,Normal"
|
||||||
ChoiceRave="applydefaultoptions;name,Rave;playmode,rave;screen,ScreenSelectMusic;setenv,sMode,Rave"
|
ChoiceRave="applydefaultoptions;name,Rave;text,Rave;playmode,rave;screen,ScreenSelectMusic;setenv,sMode,Rave"
|
||||||
ChoiceExtended="applydefaultoptions;name,Extended;playmode,nonstop;screen,ScreenSelectCourse;setenv,sMode,Extended"
|
ChoiceExtended="applydefaultoptions;name,Extended;text,Extended;playmode,nonstop;screen,ScreenSelectCourse;setenv,sMode,Extended"
|
||||||
ChoiceOni="applydefaultoptions;name,Oni;playmode,oni;screen,ScreenSelectCourse;setenv,sMode,Oni"
|
ChoiceOni="applydefaultoptions;name,Oni;text,Oni;playmode,oni;screen,ScreenSelectCourse;setenv,sMode,Oni"
|
||||||
ChoiceEndless="applydefaultoptions;name,Endless;playmode,endless;screen,ScreenSelectCourse;setenv,sMode,Endless"
|
ChoiceEndless="applydefaultoptions;name,Endless;text,Endless;playmode,endless;screen,ScreenSelectCourse;setenv,sMode,Endless"
|
||||||
|
|
||||||
[ScreenSelectCharacter]
|
[ScreenSelectCharacter]
|
||||||
Class="ScreenSelectMaster"
|
Class="ScreenSelectMaster"
|
||||||
@@ -2052,9 +2084,12 @@ PageOnCommand=
|
|||||||
ContainerOnCommand=
|
ContainerOnCommand=
|
||||||
ContainerOffCommand=
|
ContainerOffCommand=
|
||||||
CursorOnCommand=
|
CursorOnCommand=
|
||||||
LineHighlightOnCommand=
|
LineHighlightP1OnCommand=
|
||||||
LineHighlightChangeCommand=
|
LineHighlightP1ChangeCommand=
|
||||||
LineHighlightChangeToExitCommand=
|
LineHighlightP1ChangeToExitCommand=
|
||||||
|
LineHighlightP2OnCommand=
|
||||||
|
LineHighlightP2ChangeCommand=
|
||||||
|
LineHighlightP2ChangeToExitCommand=
|
||||||
ShowScrollBar=false
|
ShowScrollBar=false
|
||||||
ScrollBarHeight=0
|
ScrollBarHeight=0
|
||||||
ScrollBarTime=0
|
ScrollBarTime=0
|
||||||
@@ -2442,9 +2477,13 @@ Fallback="ScreenOptionsSimple"
|
|||||||
|
|
||||||
OptionRowNormalMetricsGroup="OptionRowService"
|
OptionRowNormalMetricsGroup="OptionRowService"
|
||||||
|
|
||||||
LineHighlightOnCommand=visible,false
|
LineHighlightP1OnCommand=visible,false
|
||||||
LineHighlightChangeCommand=
|
LineHighlightP1ChangeCommand=
|
||||||
LineHighlightChangeToExitCommand=
|
LineHighlightP1ChangeToExitCommand=
|
||||||
|
|
||||||
|
LineHighlightP2OnCommand=visible,false
|
||||||
|
LineHighlightP2ChangeCommand=
|
||||||
|
LineHighlightP2ChangeToExitCommand=
|
||||||
|
|
||||||
CursorOnCommand=visible,false
|
CursorOnCommand=visible,false
|
||||||
|
|
||||||
@@ -2455,7 +2494,7 @@ Fallback="ScreenOptionsSimpleService"
|
|||||||
NextScreen=Branch.Init()
|
NextScreen=Branch.Init()
|
||||||
PrevScreen=Branch.Init()
|
PrevScreen=Branch.Init()
|
||||||
|
|
||||||
LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,MoreOptions"
|
LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,Credits,MoreOptions"
|
||||||
# LineNames="SystemDirection,1,2,Sync,13,3,10,11,4,12,6,5,Theme,8,9"
|
# LineNames="SystemDirection,1,2,Sync,13,3,10,11,4,12,6,5,Theme,8,9"
|
||||||
Line1="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings"
|
Line1="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings"
|
||||||
Line2="gamecommand;screen,ScreenTestInput;name,Test Input"
|
Line2="gamecommand;screen,ScreenTestInput;name,Test Input"
|
||||||
@@ -2476,6 +2515,7 @@ LineKeyConfig="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings"
|
|||||||
LineGameType="gamecommand;screen,ScreenSelectGame;name,Select Game"
|
LineGameType="gamecommand;screen,ScreenSelectGame;name,Select Game"
|
||||||
LineSync="gamecommand;screen,ScreenGameplaySyncMachine;name,Calibrate Machine Sync"
|
LineSync="gamecommand;screen,ScreenGameplaySyncMachine;name,Calibrate Machine Sync"
|
||||||
LineReload="gamecommand;screen,ScreenReloadSongs;name,Reload Songs"
|
LineReload="gamecommand;screen,ScreenReloadSongs;name,Reload Songs"
|
||||||
|
LineCredits="gamecommand;screen,ScreenCredits;name,StepMania Credits"
|
||||||
LineMoreOptions="gamecommand;screen,ScreenOptionsExtended;name,More Options"
|
LineMoreOptions="gamecommand;screen,ScreenOptionsExtended;name,More Options"
|
||||||
|
|
||||||
[ScreenOptionsExtended]
|
[ScreenOptionsExtended]
|
||||||
@@ -2500,9 +2540,13 @@ PrevScreen="ScreenOptionsService"
|
|||||||
NextScreen="ScreenOptionsService"
|
NextScreen="ScreenOptionsService"
|
||||||
HelpText=Screen.String("HelpTextOptionsAndBack")
|
HelpText=Screen.String("HelpTextOptionsAndBack")
|
||||||
|
|
||||||
LineHighlightOnCommand=visible,false
|
LineHighlightP1OnCommand=visible,false
|
||||||
LineHighlightChangeCommand=
|
LineHighlightP1ChangeCommand=
|
||||||
LineHighlightChangeToExitCommand=
|
LineHighlightP1ChangeToExitCommand=
|
||||||
|
|
||||||
|
LineHighlightP2OnCommand=visible,false
|
||||||
|
LineHighlightP2ChangeCommand=
|
||||||
|
LineHighlightP2ChangeToExitCommand=
|
||||||
#
|
#
|
||||||
ExplanationTogetherX=SCREEN_CENTER_X
|
ExplanationTogetherX=SCREEN_CENTER_X
|
||||||
ExplanationTogetherY=SCREEN_CENTER_Y+174
|
ExplanationTogetherY=SCREEN_CENTER_Y+174
|
||||||
@@ -3168,6 +3212,7 @@ DebugX=SCREEN_CENTER_X
|
|||||||
DebugY=SCREEN_BOTTOM-72
|
DebugY=SCREEN_BOTTOM-72
|
||||||
DebugOnCommand=zoom,0.75
|
DebugOnCommand=zoom,0.75
|
||||||
#
|
#
|
||||||
|
SongNumberFormat="%d"
|
||||||
SongNumberP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") - 60
|
SongNumberP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") - 60
|
||||||
SongNumberP1Y=SCREEN_TOP+24+7
|
SongNumberP1Y=SCREEN_TOP+24+7
|
||||||
SongNumberP1OnCommand=visible,false
|
SongNumberP1OnCommand=visible,false
|
||||||
@@ -3219,6 +3264,7 @@ PlayerOptionsHideFailType=false
|
|||||||
MaxComboNumDigits=4
|
MaxComboNumDigits=4
|
||||||
#
|
#
|
||||||
ShowBannerArea=true
|
ShowBannerArea=true
|
||||||
|
RollingNumbersClass="RollingNumbersJudgment"
|
||||||
ShowSharedJudgmentLineLabels=false
|
ShowSharedJudgmentLineLabels=false
|
||||||
ShowJudgmentLineW1=false
|
ShowJudgmentLineW1=false
|
||||||
ShowJudgmentLineW2=false
|
ShowJudgmentLineW2=false
|
||||||
@@ -3782,7 +3828,7 @@ NextScreen="ScreenOptionsExtended"
|
|||||||
PlayerType="PlayerSyncMachine"
|
PlayerType="PlayerSyncMachine"
|
||||||
|
|
||||||
AllowCenter1Player=false
|
AllowCenter1Player=false
|
||||||
SyncInfoOnCommand=x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y;zoom,0;decelerate,0.5;zoom,0.6
|
SyncInfoOnCommand=x,PositionPerPlayer(GAMESTATE:GetMasterPlayerNumber(),SCREEN_CENTER_X+160,SCREEN_CENTER_X-160);y,SCREEN_CENTER_Y;zoom,0;decelerate,0.5;zoom,0.6
|
||||||
|
|
||||||
# hidden by default:
|
# hidden by default:
|
||||||
LifeP1OnCommand=visible,false
|
LifeP1OnCommand=visible,false
|
||||||
@@ -4167,3 +4213,15 @@ StartScreen="ScreenTitleMenu"
|
|||||||
LightsMode="LightsMode_Demonstration"
|
LightsMode="LightsMode_Demonstration"
|
||||||
ShowCourseModifiersProbability=0
|
ShowCourseModifiersProbability=0
|
||||||
AllowAdvancedModifiers=true
|
AllowAdvancedModifiers=true
|
||||||
|
|
||||||
|
[ScreenCredits]
|
||||||
|
Class="ScreenSplash"
|
||||||
|
Fallback="ScreenSplash"
|
||||||
|
AllowStartToSkip=true
|
||||||
|
NextScreen=Branch.TitleMenu()
|
||||||
|
PrevScreen=Branch.TitleMenu()
|
||||||
|
TimerSeconds=40
|
||||||
|
TimerStealth=true
|
||||||
|
ForceTimer=true
|
||||||
|
TimerMetricsGroup="MenuTimerNoSound"
|
||||||
|
TimerOnCommand=visible,false
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 1.7 MiB |
@@ -0,0 +1,20 @@
|
|||||||
|
local scrolltime = 95;
|
||||||
|
|
||||||
|
local t = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(Center);
|
||||||
|
LoadActor("_space")..{
|
||||||
|
InitCommand=cmd(y,-SCREEN_HEIGHT*1.5;fadebottom,0.125;fadetop,0.25);
|
||||||
|
OnCommand=cmd(linear,scrolltime;addy,SCREEN_HEIGHT*1.5825);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
InitCommand=cmd(scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT);
|
||||||
|
OnCommand=cmd(diffusecolor,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45);
|
||||||
|
};
|
||||||
|
LoadActor("_grid")..{
|
||||||
|
InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true);
|
||||||
|
OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset';
|
||||||
|
effectcolor2,Color("Black");effectcolor1,Colors.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return t
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
local function Fooled()
|
||||||
|
local phrases = {
|
||||||
|
"hornswaggled",
|
||||||
|
"bamboozled",
|
||||||
|
"hoodwinked",
|
||||||
|
"swindled",
|
||||||
|
"duped",
|
||||||
|
"hoaxed",
|
||||||
|
"fleeced",
|
||||||
|
"shafted",
|
||||||
|
"caboodled",
|
||||||
|
"beguiled",
|
||||||
|
"finagled",
|
||||||
|
"two-timed",
|
||||||
|
"suckered",
|
||||||
|
"flimflammed"
|
||||||
|
}
|
||||||
|
return phrases[math.random(#phrases)]
|
||||||
|
end
|
||||||
|
|
||||||
|
local ssc = {
|
||||||
|
"AJ Kelly as freem",
|
||||||
|
"Jonathan Payne (Midiman)",
|
||||||
|
"Colby Klein (shakesoda)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local sm_ssc = {
|
||||||
|
"Jason Felds (wolfman2000)",
|
||||||
|
"Alberto Ramos (Daisuke Master)",
|
||||||
|
"Jack Walstrom (FSX)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local stepmania = {
|
||||||
|
"Chris Danford",
|
||||||
|
"Glenn Maynard",
|
||||||
|
"Steve Checkoway",
|
||||||
|
-- and various other contributors
|
||||||
|
}
|
||||||
|
|
||||||
|
local contrib = {
|
||||||
|
"Aldo Fregoso (Aldo_MX)", -- delays
|
||||||
|
"Chris Eldridge (kurisu)", -- dance-threepanel
|
||||||
|
"cerbo",
|
||||||
|
"cesarmades", -- pump/cmd* noteskins
|
||||||
|
"corec", -- various fixes
|
||||||
|
"galopin", -- piu PlayStation2 usb mat support
|
||||||
|
"gholms", -- automake 1.11 support
|
||||||
|
"juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods
|
||||||
|
"Kaox", -- pump/default noteskin
|
||||||
|
"NitroX72", -- pump/frame noteskin
|
||||||
|
"sy567", -- beginner helper fix
|
||||||
|
"Thai Pangsakulyanont (theDtTvB)",
|
||||||
|
"v1toko", -- x-mode from StepNXA
|
||||||
|
}
|
||||||
|
|
||||||
|
local thanks = {
|
||||||
|
"A Pseudonymous Coder", -- support
|
||||||
|
"Bill Shillito (DM Ashura)", -- Music (not yet though)
|
||||||
|
"cpubasic13", -- testing (a lot)
|
||||||
|
"Dreamwoods",
|
||||||
|
"Infamouspat", -- oitg bro
|
||||||
|
"Jason Bolt (LightningXCE)",
|
||||||
|
"Jousway", -- Noteskins
|
||||||
|
"Matt1360", -- Automake magic + oitg bro
|
||||||
|
"Mark Cannon (vyhd)", -- oitg bro + twirl/roll
|
||||||
|
"Petriform", -- Music
|
||||||
|
"Renard",
|
||||||
|
"Ryan McKanna (Plaguefox)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local shoutout = {
|
||||||
|
"The Lua team", -- lua project lead or some shit. super nerdy but oh hell.
|
||||||
|
"Mojang", -- minecraft forever -freem
|
||||||
|
"NAKET Coder",
|
||||||
|
"Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits
|
||||||
|
--Image(), -- we should have some logos probably to look super pro
|
||||||
|
"You showed us... your ultimate dance",
|
||||||
|
-- "Can't stop crying... buckets of tears!"
|
||||||
|
}
|
||||||
|
|
||||||
|
local copyright = {
|
||||||
|
"StepMania is released under the terms of the MIT license.",
|
||||||
|
"If you paid for the program you've been " .. Fooled() .. ".",
|
||||||
|
"All content is the sole property of their respectful owners."
|
||||||
|
}
|
||||||
|
|
||||||
|
local sections = {
|
||||||
|
{ "the spinal shark collective (project lead)", ssc },
|
||||||
|
{ "sm-ssc Team", sm_ssc },
|
||||||
|
{ "StepMania Team", stepmania },
|
||||||
|
{ "Other Contributors", contrib },
|
||||||
|
{ "Special Thanks", thanks },
|
||||||
|
{ "Shoutouts", shoutout },
|
||||||
|
{ "Copyright", copyright },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- To add people or sections modify the above.
|
||||||
|
|
||||||
|
local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3)
|
||||||
|
local sectionOn = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,3)
|
||||||
|
local item_padding_start = 4;
|
||||||
|
|
||||||
|
local creditScroller = Def.ActorScroller {
|
||||||
|
SecondsPerItem = 1.25;
|
||||||
|
NumItemsToDraw = 40;
|
||||||
|
TransformFunction = function( self, offset, itemIndex, numItems)
|
||||||
|
self:y(30*offset)
|
||||||
|
end;
|
||||||
|
OnCommand = cmd(scrollwithpadding,item_padding_start,15);
|
||||||
|
}
|
||||||
|
|
||||||
|
local function AddLine( text, command )
|
||||||
|
local text = Def.ActorFrame{
|
||||||
|
LoadFont("Common normal")..{
|
||||||
|
Text = text or "";
|
||||||
|
OnCommand = command or lineOn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table.insert( creditScroller, text )
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add sections with padding.
|
||||||
|
for section in ivalues(sections) do
|
||||||
|
AddLine( section[1], sectionOn )
|
||||||
|
for name in ivalues(section[2]) do
|
||||||
|
AddLine( name )
|
||||||
|
end
|
||||||
|
AddLine()
|
||||||
|
AddLine()
|
||||||
|
end
|
||||||
|
|
||||||
|
creditScroller.BeginCommand=function(self)
|
||||||
|
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) );
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
return Def.ActorFrame{
|
||||||
|
creditScroller..{
|
||||||
|
InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64),
|
||||||
|
},
|
||||||
|
LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top"))..{
|
||||||
|
InitCommand=cmd(Center),
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -2109,3 +2109,6 @@ ShowBPMDisplay=false
|
|||||||
[ScreenJukeboxMenu]
|
[ScreenJukeboxMenu]
|
||||||
|
|
||||||
[ScreenJukebox]
|
[ScreenJukebox]
|
||||||
|
|
||||||
|
[ScreenCredits]
|
||||||
|
TimerSeconds=96
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
-- Loads up a slew of objects to load into the screen, like how 3.9 does.
|
||||||
|
-- I prefer to keep these optional, incase another screen wants to hide
|
||||||
|
-- these elements.
|
||||||
|
local t = LoadFallbackB();
|
||||||
|
|
||||||
|
-- Legacy StepMania 4 Function
|
||||||
|
local function CreateStepDisplay(pn)
|
||||||
|
local function set(self, player)
|
||||||
|
self:SetFromGameState( player );
|
||||||
|
end
|
||||||
|
|
||||||
|
local t = Def.StepsDisplay {
|
||||||
|
InitCommand=cmd(Load,"StepsDisplay",GAMESTATE:GetPlayerState(pn););
|
||||||
|
};
|
||||||
|
|
||||||
|
if pn == PLAYER_1 then
|
||||||
|
t.CurrentStepsP1ChangedMessageCommand=function(self) set(self, pn); end;
|
||||||
|
t.CurrentTrailP1ChangedMessageCommand=function(self) set(self, pn); end;
|
||||||
|
else
|
||||||
|
t.CurrentStepsP2ChangedMessageCommand=function(self) set(self, pn); end;
|
||||||
|
t.CurrentTrailP2ChangedMessageCommand=function(self) set(self, pn); end;
|
||||||
|
end
|
||||||
|
|
||||||
|
return t;
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
local MetricsName = "StepsDisplay" .. PlayerNumberToString(pn);
|
||||||
|
t[#t+1] = CreateStepDisplay(pn) .. {
|
||||||
|
InitCommand=function(self) self:player(pn); self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end;
|
||||||
|
PlayerJoinedMessageCommand=function(self, params)
|
||||||
|
if params.Player == pn then
|
||||||
|
self:visible(true);
|
||||||
|
(cmd(zoom,0;bounceend,0.3;zoom,1))(self);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
PlayerUnjoinedMessageCommand=function(self, params)
|
||||||
|
if params.Player == pn then
|
||||||
|
self:visible(true);
|
||||||
|
(cmd(bouncebegin,0.3;zoom,0))(self);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
local gc = Var("GameCommand");
|
||||||
|
|
||||||
|
local t = Def.ActorFrame {
|
||||||
|
LoadActor("PlayMode " .. gc:GetText() );
|
||||||
|
};
|
||||||
|
|
||||||
|
t[1].OnCommand=Screen.Metric("ScrollerItemOnCommand");
|
||||||
|
t[1].GainFocusCommand=Screen.Metric("ScrollerItemGainFocusCommand");
|
||||||
|
t[1].LoseFocusCommand=Screen.Metric("ScrollerItemLoseFocusCommand");
|
||||||
|
t[1].OffFocusedCommand=Screen.Metric("ScrollerItemOffFocusedCommand");
|
||||||
|
t[1].OffUnfocusedCommand=Screen.Metric("ScrollerItemOffUnfocusedCommand");
|
||||||
|
return t;
|
||||||
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
local gc = Var("GameCommand");
|
||||||
|
|
||||||
|
local t = Def.ActorFrame {
|
||||||
|
LoadActor("Style " .. gc:GetText() );
|
||||||
|
};
|
||||||
|
-- This works.
|
||||||
|
t[1].OnCommand=Screen.Metric("ScrollerItemOnCommand");
|
||||||
|
t[1].GainFocusCommand=Screen.Metric("ScrollerItemGainFocusCommand");
|
||||||
|
t[1].LoseFocusCommand=Screen.Metric("ScrollerItemLoseFocusCommand");
|
||||||
|
t[1].OffFocusedCommand=Screen.Metric("ScrollerItemOffFocusedCommand");
|
||||||
|
t[1].OffUnfocusedCommand=Screen.Metric("ScrollerItemOffUnfocusedCommand");
|
||||||
|
return t;
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
local mainMaxWidth = 228; -- zoom w/subtitle is 0.75 (multiply by 1.25)
|
||||||
|
local subMaxWidth = 420; -- zoom is 0.6 (multiply zoom,1 value by 1.4)
|
||||||
|
local artistMaxWidth = 300/0.8;
|
||||||
|
|
||||||
|
function TextBannerAfterSet(self,param)
|
||||||
|
local Title=self:GetChild("Title");
|
||||||
|
local Subtitle=self:GetChild("Subtitle");
|
||||||
|
local Artist=self:GetChild("Artist");
|
||||||
|
if Subtitle:GetText() == "" then
|
||||||
|
(cmd(maxwidth,mainMaxWidth;y,-8;zoom,1;))(Title);
|
||||||
|
(cmd(visible,false))(Subtitle);
|
||||||
|
(cmd(zoom,0.66;maxwidth,artistMaxWidth;y,8))(Artist);
|
||||||
|
else
|
||||||
|
-- subtitle below
|
||||||
|
(cmd(maxwidth,mainMaxWidth*1.25;y,-11;zoom,0.75;))(Title);
|
||||||
|
(cmd(visible,true;zoom,0.6;y,0;maxwidth,subMaxWidth))(Subtitle);
|
||||||
|
(cmd(zoom,0.6;maxwidth,artistMaxWidth;y,10))(Artist);
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#TITLE:Break The Sabbath;
|
#TITLE:Technotris;
|
||||||
#OFFSET:0.000;
|
#OFFSET:0.000;
|
||||||
#BPMS:0.000=140.000;
|
#BPMS:0.000=148.000;
|
||||||
#STOPS:;
|
#STOPS:;
|
||||||
|
|
||||||
|
|||||||
@@ -3,43 +3,46 @@ FallbackTheme=_fallback
|
|||||||
[ScreenSystemLayer]
|
[ScreenSystemLayer]
|
||||||
CreditsP1X=SCREEN_CENTER_X-256-32
|
CreditsP1X=SCREEN_CENTER_X-256-32
|
||||||
CreditsP1Y=SCREEN_BOTTOM-4
|
CreditsP1Y=SCREEN_BOTTOM-4
|
||||||
CreditsP1OnCommand=horizalign,left;vertalign,bottom;zoom,0.675;shadowlength,1;diffusebottomedge,PlayerColor(PLAYER_1);
|
# ColorLightTone & ColorDarkTone make colors 50% brighter or darker, where ColorMidTone makes them 25% darker
|
||||||
|
# ColorLightTone( color here ); example: ColorLightTone( PlayerColor(PLAYER_1) );
|
||||||
|
CreditsP1OnCommand=horizalign,left;vertalign,bottom;zoom,0.675;shadowlength,1;diffusebottomedge,ColorLightTone( PlayerColor(PLAYER_1) );strokecolor,Color("Black");
|
||||||
#
|
#
|
||||||
CreditsP2X=SCREEN_CENTER_X+256+32
|
CreditsP2X=SCREEN_CENTER_X+256+32
|
||||||
CreditsP2Y=SCREEN_BOTTOM-4
|
CreditsP2Y=SCREEN_BOTTOM-4
|
||||||
CreditsP2OnCommand=horizalign,right;vertalign,bottom;zoom,0.675;shadowlength,1;diffusebottomedge,PlayerColor(PLAYER_2);
|
CreditsP2OnCommand=horizalign,right;vertalign,bottom;zoom,0.675;shadowlength,1;diffusebottomedge,ColorLightTone( PlayerColor(PLAYER_2) );strokecolor,Color("Black");
|
||||||
[ScreenWithMenuElements]
|
[ScreenWithMenuElements]
|
||||||
# Header ( Top of Screen )
|
# Header ( Top of Screen )
|
||||||
ShowHeader=true
|
ShowHeader=true
|
||||||
HeaderX=SCREEN_CENTER_X
|
HeaderX=SCREEN_CENTER_X
|
||||||
HeaderY=SCREEN_TOP
|
HeaderY=SCREEN_TOP
|
||||||
HeaderOnCommand=vertalign,top
|
HeaderOnCommand=vertalign,top;addy,-64;decelerate,0.35;addy,64;
|
||||||
HeaderOffCommand=
|
HeaderOffCommand=
|
||||||
# Text Header ( Text displayed at top of screen on top of header )
|
# Text Header ( Text displayed at top of screen on top of header )
|
||||||
ShowTextHeader=true
|
ShowTextHeader=true
|
||||||
TextHeaderX=SCREEN_CENTER_X-256-32
|
TextHeaderX=SCREEN_CENTER_X-256-32
|
||||||
TextHeaderY=SCREEN_TOP+32+8-1.5
|
TextHeaderY=SCREEN_TOP+32+8-1.5
|
||||||
TextHeaderOnCommand=horizalign,left;vertalign,bottom;
|
TextHeaderOnCommand=horizalign,left;vertalign,bottom;skewx,-0.125;shadowlength,1;diffusealpha,0;addx,-16;sleep,0.35;decelerate,0.125;diffusealpha,1;addx,16;
|
||||||
TextHeaderOffCommand=
|
TextHeaderOffCommand=
|
||||||
# Footer ( Bottom Of Screen )
|
# Footer ( Bottom Of Screen )
|
||||||
ShowFooter=true
|
ShowFooter=true
|
||||||
FooterX=SCREEN_CENTER_X
|
FooterX=SCREEN_CENTER_X
|
||||||
FooterY=SCREEN_BOTTOM
|
FooterY=SCREEN_BOTTOM
|
||||||
FooterOnCommand=vertalign,bottom
|
FooterOnCommand=vertalign,bottom;addy,48;decelerate,0.35;addy,-48
|
||||||
FooterOffCommand=
|
FooterOffCommand=
|
||||||
# Menu Timer
|
# Menu Timer
|
||||||
TimerX=SCREEN_CENTER_X+256+32
|
TimerX=SCREEN_CENTER_X+256+32
|
||||||
TimerY=SCREEN_TOP+32+8-1.5
|
TimerY=SCREEN_TOP+32+8-1.5
|
||||||
|
# We animate the timer in [MenuTimer], since diffusion doesn't work here.
|
||||||
TimerOnCommand=
|
TimerOnCommand=
|
||||||
TimerOffCommand=
|
TimerOffCommand=
|
||||||
[MenuTimer]
|
[MenuTimer]
|
||||||
# Text
|
# Text associated with the menutimer
|
||||||
Text1OnCommand=stopeffect;stoptweening;horizalign,right;vertalign,bottom;
|
Text1OnCommand=stopeffect;stoptweening;horizalign,right;vertalign,bottom;shadowlength,1;diffusealpha,0;x,16;sleep,0.35;decelerate,0.125;diffusealpha,1;x,0;
|
||||||
Text1FormatFunction=function(fSeconds) \
|
Text1FormatFunction=function(fSeconds) \
|
||||||
return string.format("%0.1f", fSeconds); \
|
return string.format("%0.1f", fSeconds); \
|
||||||
end
|
end
|
||||||
FrameOnCommand=
|
FrameOnCommand=
|
||||||
# Warning
|
#
|
||||||
Warning10Command=diffuseshift;effectperiod,1;effectcolor2,Color("Red");effectcolor1,color("0.5,0,0,1");
|
Warning10Command=diffuseshift;effectperiod,1;effectcolor2,Color("Red");effectcolor1,color("0.5,0,0,1");
|
||||||
[ScreenTitleMenu]
|
[ScreenTitleMenu]
|
||||||
# Don't show these
|
# Don't show these
|
||||||
@@ -66,9 +69,274 @@ ScrollerItemLoseFocusCommand=stoptweening;linear,0.125;zoom,0.75;
|
|||||||
ScrollerItemOffFocusedCommand=sleep,0.35;linear,0.15;zoom,0;
|
ScrollerItemOffFocusedCommand=sleep,0.35;linear,0.15;zoom,0;
|
||||||
# OffUnfocused is for items that were not selected and the screen is exiting.
|
# OffUnfocused is for items that were not selected and the screen is exiting.
|
||||||
ScrollerItemOffUnfocusedCommand=linear,0.15;zoom,0;
|
ScrollerItemOffUnfocusedCommand=linear,0.15;zoom,0;
|
||||||
|
[ScreenSelectStyle]
|
||||||
|
# Let items do OffCommand
|
||||||
|
WaitForChildrenBeforeTweening=true
|
||||||
|
# Explanatory
|
||||||
|
ShowIcon=true
|
||||||
|
ShowScroller=true
|
||||||
|
# Force theme to load image for each style type, instead of a lua file
|
||||||
|
PerChoiceIconElement=true
|
||||||
|
PerChoiceScrollElement=false
|
||||||
|
#
|
||||||
|
ScrollerX=SCREEN_CENTER_X
|
||||||
|
ScrollerY=SCREEN_CENTER_Y-16
|
||||||
|
# Menu Items [ThemeKit Only]
|
||||||
|
ScrollerItemOnCommand=
|
||||||
|
ScrollerItemOnFocusedCommand=visible,true
|
||||||
|
# GainFocus is when an item is selected.
|
||||||
|
ScrollerItemGainFocusCommand=visible,true;finishtweening;zoom,1.25;linear,0.125;zoom,1;
|
||||||
|
# LoseFocus is when an item is deselected.
|
||||||
|
ScrollerItemLoseFocusCommand=finishtweening;visible,false;
|
||||||
|
# OffFocused is for items you have selected and the screen is exiting.
|
||||||
|
ScrollerItemOffFocusedCommand=sleep,0.35;linear,0.15;zoom,0;
|
||||||
|
# OffUnfocused is for items that were not selected and the screen is exiting.
|
||||||
|
ScrollerItemOffUnfocusedCommand=linear,0.15;zoom,0;
|
||||||
|
# Need this so that icons animate from metrics
|
||||||
|
UseIconMetrics=true
|
||||||
|
# Positions of all da 'cons
|
||||||
|
IconChoiceSingleX=SCREEN_CENTER_X-256
|
||||||
|
IconChoiceSingleY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceSingleOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceSingleGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceSingleLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceSingleEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceSingleDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceSingleOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceSingleOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoiceSoloX=SCREEN_CENTER_X-128
|
||||||
|
IconChoiceSoloY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceSoloOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceSoloGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceSoloLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceSoloEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceSoloDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceSoloOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceSoloOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
IconChoiceHalfDoubleX=SCREEN_CENTER_X-128
|
||||||
|
IconChoiceHalfDoubleY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceHalfDoubleOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceHalfDoubleGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceHalfDoubleLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceHalfDoubleEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceHalfDoubleDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceHalfDoubleOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceHalfDoubleOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoiceDoubleX=SCREEN_CENTER_X
|
||||||
|
IconChoiceDoubleY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceDoubleOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceDoubleGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceDoubleLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceDoubleEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceDoubleDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceDoubleOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceDoubleOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoiceVersusX=SCREEN_CENTER_X+128
|
||||||
|
IconChoiceVersusY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceVersusOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceVersusGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceVersusLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceVersusEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceVersusDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceVersusOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceVersusOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoiceCoupleX=SCREEN_CENTER_X+256
|
||||||
|
IconChoiceCoupleY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceCoupleOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceCoupleGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceCoupleLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceCoupleEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceCoupleDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceCoupleOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceCoupleOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoiceKB7X=SCREEN_CENTER_X
|
||||||
|
IconChoiceKB7Y=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceKB7OnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceKB7GainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceKB7LoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceKB7EnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceKB7DisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceKB7OffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceKB7OffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoice5KeysX=SCREEN_CENTER_X-128
|
||||||
|
IconChoice5KeysY=SCREEN_BOTTOM-64
|
||||||
|
IconChoice5KeysOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoice5KeysGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoice5KeysLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoice5KeysEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoice5KeysDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoice5KeysOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoice5KeysOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoice7KeysX=SCREEN_CENTER_X-64
|
||||||
|
IconChoice7KeysY=SCREEN_BOTTOM-64
|
||||||
|
IconChoice7KeysOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoice7KeysGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoice7KeysLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoice7KeysEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoice7KeysDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoice7KeysOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoice7KeysOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoice10KeysX=SCREEN_CENTER_X+64
|
||||||
|
IconChoice10KeysY=SCREEN_BOTTOM-64
|
||||||
|
IconChoice10KeysOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoice10KeysGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoice10KeysLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoice10KeysEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoice10KeysDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoice10KeysOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoice10KeysOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
#
|
||||||
|
IconChoice14KeysX=SCREEN_CENTER_X+128
|
||||||
|
IconChoice14KeysY=SCREEN_BOTTOM-64
|
||||||
|
IconChoice14KeysOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoice14KeysGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoice14KeysLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoice14KeysEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoice14KeysDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoice14KeysOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoice14KeysOffFocusedCommand=stopeffect;sleep,0.1175;linear,0.25;zoom,1.1;sleep,0.25;decelerate,0.3;zoom,0;
|
||||||
|
[ScreenSelectPlayMode]
|
||||||
|
# Let items do OffCommand
|
||||||
|
WaitForChildrenBeforeTweening=true
|
||||||
|
# Explanatory
|
||||||
|
ShowIcon=true
|
||||||
|
ShowScroller=true
|
||||||
|
# Force theme to load image for each style type, instead of a lua file
|
||||||
|
PerChoiceIconElement=true
|
||||||
|
PerChoiceScrollElement=false
|
||||||
|
#
|
||||||
|
ScrollerX=SCREEN_CENTER_X
|
||||||
|
ScrollerY=SCREEN_CENTER_Y-16
|
||||||
|
# Menu Items [ThemeKit Only]
|
||||||
|
ScrollerItemOnCommand=
|
||||||
|
ScrollerItemOnFocusedCommand=visible,true
|
||||||
|
# GainFocus is when an item is selected.
|
||||||
|
ScrollerItemGainFocusCommand=visible,true;finishtweening;zoom,1.25;linear,0.125;zoom,1;
|
||||||
|
# LoseFocus is when an item is deselected.
|
||||||
|
ScrollerItemLoseFocusCommand=finishtweening;visible,false;
|
||||||
|
# OffFocused is for items you have selected and the screen is exiting.
|
||||||
|
ScrollerItemOffFocusedCommand=sleep,0.35;linear,0.15;zoom,0;
|
||||||
|
# OffUnfocused is for items that were not selected and the screen is exiting.
|
||||||
|
ScrollerItemOffUnfocusedCommand=linear,0.15;zoom,0;
|
||||||
|
# Need this so that icons animate from metrics
|
||||||
|
UseIconMetrics=true
|
||||||
|
# Positions of all da 'cons
|
||||||
|
IconChoiceNormalX=SCREEN_CENTER_X-256
|
||||||
|
IconChoiceNormalY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceNormalOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceNormalGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceNormalLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceNormalEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceNormalDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceNormalOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceNormalOffFocusedCommand=stopeffect;sleep,0
|
||||||
|
#
|
||||||
|
IconChoiceRaveX=SCREEN_CENTER_X-128
|
||||||
|
IconChoiceRaveY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceRaveOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceRaveGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceRaveLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceRaveEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceRaveDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceRaveOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceRaveOffFocusedCommand=stopeffect;sleep,0
|
||||||
|
#
|
||||||
|
IconChoiceExtendedX=SCREEN_CENTER_X
|
||||||
|
IconChoiceExtendedY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceExtendedOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceExtendedGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceExtendedLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceExtendedEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceExtendedDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceExtendedOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceExtendedOffFocusedCommand=stopeffect;sleep,0
|
||||||
|
#
|
||||||
|
IconChoiceOniX=SCREEN_CENTER_X+128
|
||||||
|
IconChoiceOniY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceOniOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceOniGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceOniLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceOniEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceOniDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceOniOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceOniOffFocusedCommand=stopeffect;sleep,0
|
||||||
|
#
|
||||||
|
IconChoiceEndlessX=SCREEN_CENTER_X+256
|
||||||
|
IconChoiceEndlessY=SCREEN_BOTTOM-64
|
||||||
|
IconChoiceEndlessOnCommand=zoom,0;bounceend,0.35;zoom,1
|
||||||
|
IconChoiceEndlessGainFocusCommand=stoptweening;zoom,1;pulse;effectmagnitude,1,1.125,1;
|
||||||
|
IconChoiceEndlessLoseFocusCommand=stoptweening;stopeffect;zoom,0.75;
|
||||||
|
IconChoiceEndlessEnabledCommand=diffuse,color("1,1,1,1");
|
||||||
|
IconChoiceEndlessDisabledCommand=diffuse,color("1,0,0,0.5");
|
||||||
|
IconChoiceEndlessOffUnfocusedCommand=linear,0.1175;zoomx,0
|
||||||
|
IconChoiceEndlessOffFocusedCommand=stopeffect;sleep,0
|
||||||
[ScreenSelectMusic]
|
[ScreenSelectMusic]
|
||||||
|
ShowStepsDisplayP1=true
|
||||||
|
StepsDisplayP1X=SCREEN_CENTER_X-192
|
||||||
|
StepsDisplayP1Y=SCREEN_BOTTOM-64
|
||||||
|
StepsDisplayP1OnCommand=
|
||||||
|
StepsDisplayP1OffCommand=
|
||||||
|
#
|
||||||
|
ShowStepsDisplayP2=true
|
||||||
|
StepsDisplayP2X=SCREEN_CENTER_X-192
|
||||||
|
StepsDisplayP2Y=SCREEN_BOTTOM-64
|
||||||
|
StepsDisplayP2OnCommand=
|
||||||
|
StepsDisplayP2OffCommand=
|
||||||
|
#
|
||||||
MusicWheelX=SCREEN_RIGHT-128-18
|
MusicWheelX=SCREEN_RIGHT-128-18
|
||||||
MusicWheelOnCommand=draworder,-1
|
MusicWheelOnCommand=draworder,-1
|
||||||
[MusicWheel]
|
[MusicWheel]
|
||||||
|
HighlightOnCommand=blend,Blend.Add;diffuseramp;effectclock,'beatnooffset'
|
||||||
|
#
|
||||||
ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*0 ); self:y( offsetFromCenter*48 ); end
|
ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*0 ); self:y( offsetFromCenter*48 ); end
|
||||||
NumWheelItems=13
|
NumWheelItems=13
|
||||||
|
[MusicWheelItem]
|
||||||
|
# Move Song all the way to the left, since it is left aligned
|
||||||
|
# see [TextBanner]
|
||||||
|
SongNameX=-124
|
||||||
|
#
|
||||||
|
SectionExpandedX=-126
|
||||||
|
SectionExpandedY=0
|
||||||
|
SectionExpandedOnCommand=horizalign,left;maxwidth,252;shadowlength,1
|
||||||
|
#
|
||||||
|
SectionCollapsedX=-126
|
||||||
|
SectionCollapsedY=0
|
||||||
|
SectionCollapsedOnCommand=horizalign,left;maxwidth,252;shadowlength,1
|
||||||
|
#
|
||||||
|
SectionCountX=108
|
||||||
|
SectionCountY=16
|
||||||
|
SectionCountOnCommand=zoom,0.5;shadowlength,1;
|
||||||
|
[TextBanner]
|
||||||
|
TitleOnCommand=horizalign,left;shadowlength,1;
|
||||||
|
SubtitleOnCommand=horizalign,left;shadowlength,1;
|
||||||
|
ArtistOnCommand=horizalign,left;shadowlength,1;skewx,-0.2
|
||||||
|
ArtistPrependString=""
|
||||||
|
[StepsDisplay]
|
||||||
|
ShowMeter=true
|
||||||
|
ZeroMeterString="?"
|
||||||
|
MeterX=92
|
||||||
|
MeterY=0
|
||||||
|
MeterOnCommand=horizalign,right;zoom,0.75;shadowlength,1
|
||||||
|
MeterSetCommand=%function(self,param) \
|
||||||
|
if param.CustomDifficulty then \
|
||||||
|
self:diffuse(CustomDifficultyToLightColor(param.CustomDifficulty)); \
|
||||||
|
end \
|
||||||
|
end;
|
||||||
|
#
|
||||||
|
ShowDescription=true
|
||||||
|
DescriptionX=-92
|
||||||
|
DescriptionY=0
|
||||||
|
DescriptionOnCommand=horizalign,left;zoom,0.75;shadowlength,1;uppercase,true;
|
||||||
|
DescriptionSetCommand=%function(self,param) \
|
||||||
|
if param.CustomDifficulty then \
|
||||||
|
self:diffuse(CustomDifficultyToLightColor(param.CustomDifficulty)); \
|
||||||
|
end \
|
||||||
|
end;
|
||||||
@@ -294,11 +294,22 @@ class LunaBPMDisplay: public Luna<BPMDisplay>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int SetFromGameState( T* p, lua_State *L ) { p->SetFromGameState(); return 0; }
|
static int SetFromGameState( T* p, lua_State *L ) { p->SetFromGameState(); return 0; }
|
||||||
|
static int SetFromSong( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
if( lua_isnil(L,1) ) { p->NoBPM(); }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const Song* pSong = Luna<Song>::check( L, 1, true );
|
||||||
|
p->SetBpmFromSong(pSong);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
static int GetText( T* p, lua_State *L ) { lua_pushstring( L, p->GetText() ); return 1; }
|
static int GetText( T* p, lua_State *L ) { lua_pushstring( L, p->GetText() ); return 1; }
|
||||||
|
|
||||||
LunaBPMDisplay()
|
LunaBPMDisplay()
|
||||||
{
|
{
|
||||||
ADD_METHOD( SetFromGameState );
|
ADD_METHOD( SetFromGameState );
|
||||||
|
ADD_METHOD( SetFromSong );
|
||||||
ADD_METHOD( GetText );
|
ADD_METHOD( GetText );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ REGISTER_ACTOR_CLASS( Banner );
|
|||||||
|
|
||||||
ThemeMetric<bool> SCROLL_RANDOM ("Banner","ScrollRandom");
|
ThemeMetric<bool> SCROLL_RANDOM ("Banner","ScrollRandom");
|
||||||
ThemeMetric<bool> SCROLL_ROULETTE ("Banner","ScrollRoulette");
|
ThemeMetric<bool> SCROLL_ROULETTE ("Banner","ScrollRoulette");
|
||||||
|
//ThemeMetric<bool> SCROLL_MODE ("Banner","ScrollMode");
|
||||||
|
//ThemeMetric<bool> SCROLL_SORT_ORDER ("Banner","ScrollSortOrder");
|
||||||
|
ThemeMetric<float> SCROLL_SPEED_DIVISOR ("Banner","ScrollSpeedDivisor");
|
||||||
|
|
||||||
Banner::Banner()
|
Banner::Banner()
|
||||||
{
|
{
|
||||||
@@ -79,7 +82,7 @@ void Banner::Update( float fDeltaTime )
|
|||||||
|
|
||||||
if( m_bScrolling )
|
if( m_bScrolling )
|
||||||
{
|
{
|
||||||
m_fPercentScrolling += fDeltaTime/2;
|
m_fPercentScrolling += fDeltaTime/(float)SCROLL_SPEED_DIVISOR;
|
||||||
m_fPercentScrolling -= (int)m_fPercentScrolling;
|
m_fPercentScrolling -= (int)m_fPercentScrolling;
|
||||||
|
|
||||||
const RectF *pTextureRect = GetCurrentTextureCoordRect();
|
const RectF *pTextureRect = GetCurrentTextureCoordRect();
|
||||||
|
|||||||
@@ -12,12 +12,12 @@
|
|||||||
#include "ScreenDimensions.h"
|
#include "ScreenDimensions.h"
|
||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
|
|
||||||
// "PLAYER_X" offsets are relative to the pad.. ex: Setting this to 10, and the HELPER to 300, will put the dancer at 310
|
// "PLAYER_X" offsets are relative to the pad. ex: Setting this to 10, and the HELPER to 300, will put the dancer at 310
|
||||||
#define PLAYER_X( px ) THEME->GetMetricF("BeginnerHelper",ssprintf("Player%d_X",px+1))
|
#define PLAYER_X( px ) THEME->GetMetricF("BeginnerHelper",ssprintf("Player%dX",px+1))
|
||||||
#define PLAYER_ANGLE THEME->GetMetricF("BeginnerHelper","PlayerAngle")
|
#define PLAYER_ANGLE THEME->GetMetricF("BeginnerHelper","PlayerAngle")
|
||||||
#define DANCEPAD_ANGLE THEME->GetMetricF("BeginnerHelper","DancePadAngle")
|
#define DANCEPAD_ANGLE THEME->GetMetricF("BeginnerHelper","DancePadAngle")
|
||||||
|
|
||||||
// "HELPER" offsets effect the pad/dancer as a whole.. Their relative Y cooridinates are hard-coded for eachother.
|
// "HELPER" offsets effect the pad/dancer as a whole. Their relative Y cooridinates are hard-coded for each other.
|
||||||
#define HELPER_X THEME->GetMetricF("BeginnerHelper","HelperX")
|
#define HELPER_X THEME->GetMetricF("BeginnerHelper","HelperX")
|
||||||
#define HELPER_Y THEME->GetMetricF("BeginnerHelper","HelperY")
|
#define HELPER_Y THEME->GetMetricF("BeginnerHelper","HelperY")
|
||||||
|
|
||||||
@@ -75,6 +75,108 @@ BeginnerHelper::~BeginnerHelper()
|
|||||||
delete m_pDancePad;
|
delete m_pDancePad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool BeginnerHelper::Init( int iDancePadType )
|
||||||
|
{
|
||||||
|
ASSERT( !m_bInitialized );
|
||||||
|
if( !CanUse() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// If no players were successfully added, bail.
|
||||||
|
{
|
||||||
|
bool bAnyLoaded = false;
|
||||||
|
for( int pn=0; pn<NUM_PLAYERS; pn++ )
|
||||||
|
if( m_bPlayerEnabled[pn] )
|
||||||
|
bAnyLoaded = true;
|
||||||
|
|
||||||
|
if( !bAnyLoaded )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load the Background and flash. Flash only shows if the BG does.
|
||||||
|
if( m_bShowBackground )
|
||||||
|
{
|
||||||
|
m_sBackground.Load( THEME->GetPathG("BeginnerHelper","background") );
|
||||||
|
this->AddChild( m_sBackground );
|
||||||
|
//m_sBackground.SetXY( 1, 1 );
|
||||||
|
|
||||||
|
m_sFlash.Load( THEME->GetPathG("BeginnerHelper","flash") );
|
||||||
|
m_sFlash.SetXY( 0, 0 );
|
||||||
|
m_sFlash.SetDiffuseAlpha( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load StepCircle graphics
|
||||||
|
for( int lsc=0; lsc<NUM_PLAYERS; lsc++ )
|
||||||
|
{
|
||||||
|
for( int lsce=0; lsce<4; lsce++ )
|
||||||
|
{
|
||||||
|
m_sStepCircle[lsc][lsce].Load( THEME->GetPathG("BeginnerHelper","stepcircle") );
|
||||||
|
m_sStepCircle[lsc][lsce].SetZoom( 0 ); // Hide until needed.
|
||||||
|
this->AddChild(&m_sStepCircle[lsc][lsce]);
|
||||||
|
|
||||||
|
// Set StepCircle coordinates
|
||||||
|
switch( lsce )
|
||||||
|
{
|
||||||
|
case 0: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)-80),HELPER_Y); break; // Left
|
||||||
|
case 1: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)+80),HELPER_Y); break; // Right
|
||||||
|
case 2: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)),(HELPER_Y-60)); break; // Up
|
||||||
|
case 3: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)),(HELPER_Y+60)); break; // Down
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SHOW_DANCE_PAD.Load( "BeginnerHelper","ShowDancePad" );
|
||||||
|
// Load the DancePad
|
||||||
|
if( SHOW_DANCE_PAD )
|
||||||
|
{
|
||||||
|
switch( iDancePadType )
|
||||||
|
{
|
||||||
|
case 0: break; // No pad
|
||||||
|
case 1: m_pDancePad->LoadMilkshapeAscii(GetAnimPath(ANIM_DANCE_PAD)); break;
|
||||||
|
case 2: m_pDancePad->LoadMilkshapeAscii(GetAnimPath(ANIM_DANCE_PADS)); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_pDancePad->SetHorizAlign( align_left ); // xxx: hardcoded -aj
|
||||||
|
m_pDancePad->SetRotationX( DANCEPAD_ANGLE );
|
||||||
|
m_pDancePad->SetX( HELPER_X );
|
||||||
|
m_pDancePad->SetY( HELPER_Y );
|
||||||
|
// xxx: hardcoded -aj
|
||||||
|
m_pDancePad->SetZoom( 23 ); // Pad should always be 3 units bigger in zoom than the dancer.
|
||||||
|
}
|
||||||
|
|
||||||
|
for( int pl=0; pl<NUM_PLAYERS; pl++ ) // Load players
|
||||||
|
{
|
||||||
|
// Skip if not enabled
|
||||||
|
if( !m_bPlayerEnabled[pl] )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Load character data
|
||||||
|
const Character *Character = GAMESTATE->m_pCurCharacters[pl];
|
||||||
|
ASSERT( Character != NULL );
|
||||||
|
|
||||||
|
// Load textures
|
||||||
|
m_pDancer[pl]->SetHorizAlign( align_left );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAscii( Character->GetModelPath() );
|
||||||
|
|
||||||
|
// Load needed animations
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-LEFT", GetAnimPath(ANIM_LEFT) );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-DOWN", GetAnimPath(ANIM_DOWN) );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-UP", GetAnimPath(ANIM_UP) );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-RIGHT", GetAnimPath(ANIM_RIGHT) );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-JUMPLR", GetAnimPath(ANIM_JUMPLR) );
|
||||||
|
m_pDancer[pl]->LoadMilkshapeAsciiBones( "rest", Character->GetRestAnimationPath() );
|
||||||
|
m_pDancer[pl]->SetDefaultAnimation( "rest" ); // Stay bouncing after a step has finished animating
|
||||||
|
m_pDancer[pl]->PlayAnimation( "rest" );
|
||||||
|
m_pDancer[pl]->SetRotationX( PLAYER_ANGLE );
|
||||||
|
m_pDancer[pl]->SetX( HELPER_X+PLAYER_X(pl) );
|
||||||
|
m_pDancer[pl]->SetY( HELPER_Y+10 );
|
||||||
|
m_pDancer[pl]->SetZoom( 20 );
|
||||||
|
m_pDancer[pl]->SetCullMode( CULL_NONE ); // many of the models floating around have the vertex order flipped
|
||||||
|
}
|
||||||
|
|
||||||
|
m_bInitialized = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void BeginnerHelper::ShowStepCircle( PlayerNumber pn, int CSTEP )
|
void BeginnerHelper::ShowStepCircle( PlayerNumber pn, int CSTEP )
|
||||||
{
|
{
|
||||||
int isc=0; // Save OR issues within array boundries.. it's worth the extra few bytes of memory.
|
int isc=0; // Save OR issues within array boundries.. it's worth the extra few bytes of memory.
|
||||||
@@ -120,102 +222,6 @@ bool BeginnerHelper::CanUse()
|
|||||||
return GAMESTATE->GetCurrentStyle()->m_bCanUseBeginnerHelper;
|
return GAMESTATE->GetCurrentStyle()->m_bCanUseBeginnerHelper;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BeginnerHelper::Initialize( int iDancePadType )
|
|
||||||
{
|
|
||||||
ASSERT( !m_bInitialized );
|
|
||||||
if( !CanUse() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// If no players were successfully added, bail.
|
|
||||||
{
|
|
||||||
bool bAnyLoaded = false;
|
|
||||||
for( int pn=0; pn<NUM_PLAYERS; pn++ )
|
|
||||||
if( m_bPlayerEnabled[pn] )
|
|
||||||
bAnyLoaded = true;
|
|
||||||
|
|
||||||
if( !bAnyLoaded )
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load the Background and flash.. Flash only shows if the BG does.
|
|
||||||
if( m_bShowBackground )
|
|
||||||
{
|
|
||||||
m_sBackground.Load( THEME->GetPathG("BeginnerHelper","background") );
|
|
||||||
this->AddChild( &m_sBackground );
|
|
||||||
m_sBackground.SetXY( 1, 1 );
|
|
||||||
m_sFlash.Load( THEME->GetPathG("BeginnerHelper","flash") );
|
|
||||||
m_sFlash.SetXY( 0, 0 );
|
|
||||||
m_sFlash.SetDiffuseAlpha( 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load StepCircle graphics
|
|
||||||
for( int lsc=0; lsc<NUM_PLAYERS; lsc++ )
|
|
||||||
{
|
|
||||||
for( int lsce=0; lsce<4; lsce++ )
|
|
||||||
{
|
|
||||||
m_sStepCircle[lsc][lsce].Load( THEME->GetPathG("BeginnerHelper","stepcircle") );
|
|
||||||
m_sStepCircle[lsc][lsce].SetZoom( 0 ); // Hide until needed.
|
|
||||||
this->AddChild(&m_sStepCircle[lsc][lsce]);
|
|
||||||
|
|
||||||
// Set coordinates of StepCircle
|
|
||||||
switch( lsce )
|
|
||||||
{
|
|
||||||
case 0: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)-80),HELPER_Y); break; // Left
|
|
||||||
case 1: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)+80),HELPER_Y); break; // Right
|
|
||||||
case 2: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)),(HELPER_Y-60)); break; // Up
|
|
||||||
case 3: m_sStepCircle[lsc][lsce].SetXY((HELPER_X+PLAYER_X(lsc)),(HELPER_Y+60)); break; // Down
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load the DancePad
|
|
||||||
switch( iDancePadType )
|
|
||||||
{
|
|
||||||
case 0: break; // No pad
|
|
||||||
case 1: m_pDancePad->LoadMilkshapeAscii(GetAnimPath(ANIM_DANCE_PAD)); break;
|
|
||||||
case 2: m_pDancePad->LoadMilkshapeAscii(GetAnimPath(ANIM_DANCE_PADS)); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_pDancePad->SetHorizAlign( align_left );
|
|
||||||
m_pDancePad->SetRotationX( DANCEPAD_ANGLE );
|
|
||||||
m_pDancePad->SetX( HELPER_X );
|
|
||||||
m_pDancePad->SetY( HELPER_Y );
|
|
||||||
m_pDancePad->SetZoom( 23 ); // Pad should always be 3 units bigger in zoom than the dancer.
|
|
||||||
|
|
||||||
for( int pl=0; pl<NUM_PLAYERS; pl++ ) // Load players
|
|
||||||
{
|
|
||||||
// Skip if not enabled
|
|
||||||
if( !m_bPlayerEnabled[pl] )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Load character data
|
|
||||||
const Character *Character = GAMESTATE->m_pCurCharacters[pl];
|
|
||||||
ASSERT( Character != NULL );
|
|
||||||
|
|
||||||
// Load textures
|
|
||||||
m_pDancer[pl]->SetHorizAlign( align_left );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAscii( Character->GetModelPath() );
|
|
||||||
|
|
||||||
// Load needed animations
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-LEFT", GetAnimPath(ANIM_LEFT) );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-DOWN", GetAnimPath(ANIM_DOWN) );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-UP", GetAnimPath(ANIM_UP) );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-RIGHT", GetAnimPath(ANIM_RIGHT) );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "Step-JUMPLR", GetAnimPath(ANIM_JUMPLR) );
|
|
||||||
m_pDancer[pl]->LoadMilkshapeAsciiBones( "rest", Character->GetRestAnimationPath() );
|
|
||||||
m_pDancer[pl]->SetDefaultAnimation( "rest" ); // Stay bouncing after a step has finished animating
|
|
||||||
m_pDancer[pl]->PlayAnimation( "rest" );
|
|
||||||
m_pDancer[pl]->SetRotationX( PLAYER_ANGLE );
|
|
||||||
m_pDancer[pl]->SetX( HELPER_X+PLAYER_X(pl) );
|
|
||||||
m_pDancer[pl]->SetY( HELPER_Y+10 );
|
|
||||||
m_pDancer[pl]->SetZoom( 20 );
|
|
||||||
m_pDancer[pl]->SetCullMode( CULL_NONE ); // many of the models floating around have the vertex order flipped
|
|
||||||
}
|
|
||||||
|
|
||||||
m_bInitialized = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BeginnerHelper::DrawPrimitives()
|
void BeginnerHelper::DrawPrimitives()
|
||||||
{
|
{
|
||||||
// If not initialized, don't bother with this
|
// If not initialized, don't bother with this
|
||||||
@@ -226,6 +232,9 @@ void BeginnerHelper::DrawPrimitives()
|
|||||||
m_sFlash.Draw();
|
m_sFlash.Draw();
|
||||||
|
|
||||||
bool DrawCelShaded = PREFSMAN->m_bCelShadeModels;
|
bool DrawCelShaded = PREFSMAN->m_bCelShadeModels;
|
||||||
|
// Draw Pad
|
||||||
|
if( SHOW_DANCE_PAD )
|
||||||
|
{
|
||||||
if( DrawCelShaded )
|
if( DrawCelShaded )
|
||||||
m_pDancePad->DrawCelShaded();
|
m_pDancePad->DrawCelShaded();
|
||||||
else
|
else
|
||||||
@@ -243,15 +252,17 @@ void BeginnerHelper::DrawPrimitives()
|
|||||||
DISPLAY->SetLightOff( 0 );
|
DISPLAY->SetLightOff( 0 );
|
||||||
DISPLAY->SetLighting( false );
|
DISPLAY->SetLighting( false );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Draw StepCircles
|
// Draw StepCircles
|
||||||
for(int scd=0; scd<NUM_PLAYERS; scd++)
|
for(int scd=0; scd<NUM_PLAYERS; scd++)
|
||||||
for(int scde=0; scde<4; scde++)
|
for(int scde=0; scde<4; scde++)
|
||||||
m_sStepCircle[scd][scde].Draw();
|
m_sStepCircle[scd][scde].Draw();
|
||||||
|
|
||||||
|
// Draw Dancers
|
||||||
if( DrawCelShaded )
|
if( DrawCelShaded )
|
||||||
{
|
{
|
||||||
FOREACH_PlayerNumber( pn ) // Draw each dancer
|
FOREACH_PlayerNumber( pn )
|
||||||
if( GAMESTATE->IsHumanPlayer(pn) )
|
if( GAMESTATE->IsHumanPlayer(pn) )
|
||||||
m_pDancer[pn]->DrawCelShaded();
|
m_pDancer[pn]->DrawCelShaded();
|
||||||
}
|
}
|
||||||
@@ -265,7 +276,7 @@ void BeginnerHelper::DrawPrimitives()
|
|||||||
RageColor(0,0,0,1),
|
RageColor(0,0,0,1),
|
||||||
RageVector3(0, 0, 1) );
|
RageVector3(0, 0, 1) );
|
||||||
|
|
||||||
FOREACH_PlayerNumber( pn ) // Draw each dancer
|
FOREACH_PlayerNumber( pn )
|
||||||
if( GAMESTATE->IsHumanPlayer(pn) )
|
if( GAMESTATE->IsHumanPlayer(pn) )
|
||||||
m_pDancer[pn]->Draw();
|
m_pDancer[pn]->Draw();
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,10 @@
|
|||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
#include "Character.h"
|
#include "Character.h"
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
|
#include "AutoActor.h"
|
||||||
#include "PlayerNumber.h"
|
#include "PlayerNumber.h"
|
||||||
#include "NoteData.h"
|
#include "NoteData.h"
|
||||||
|
#include "ThemeMetric.h"
|
||||||
class Model;
|
class Model;
|
||||||
/** @brief A dancing character that follows the steps of the Song. */
|
/** @brief A dancing character that follows the steps of the Song. */
|
||||||
class BeginnerHelper : public ActorFrame
|
class BeginnerHelper : public ActorFrame
|
||||||
@@ -14,7 +16,7 @@ public:
|
|||||||
BeginnerHelper();
|
BeginnerHelper();
|
||||||
~BeginnerHelper();
|
~BeginnerHelper();
|
||||||
|
|
||||||
bool Initialize( int iDancePadType );
|
bool Init( int iDancePadType );
|
||||||
bool IsInitialized() { return m_bInitialized; }
|
bool IsInitialized() { return m_bInitialized; }
|
||||||
static bool CanUse();
|
static bool CanUse();
|
||||||
void AddPlayer( PlayerNumber pn, const NoteData &nd );
|
void AddPlayer( PlayerNumber pn, const NoteData &nd );
|
||||||
@@ -32,12 +34,14 @@ protected:
|
|||||||
Model *m_pDancer[NUM_PLAYERS];
|
Model *m_pDancer[NUM_PLAYERS];
|
||||||
Model *m_pDancePad;
|
Model *m_pDancePad;
|
||||||
Sprite m_sFlash;
|
Sprite m_sFlash;
|
||||||
Sprite m_sBackground;
|
AutoActor m_sBackground;
|
||||||
Sprite m_sStepCircle[NUM_PLAYERS][4]; // More memory, but much easier to manage
|
Sprite m_sStepCircle[NUM_PLAYERS][4]; // More memory, but much easier to manage
|
||||||
|
|
||||||
int m_iLastRowChecked;
|
int m_iLastRowChecked;
|
||||||
int m_iLastRowFlashed;
|
int m_iLastRowFlashed;
|
||||||
bool m_bInitialized;
|
bool m_bInitialized;
|
||||||
|
|
||||||
|
ThemeMetric<bool> SHOW_DANCE_PAD;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ int CourseEntry::GetNumModChanges() const
|
|||||||
Course::Course(): m_bIsAutogen(false), m_sPath(""), m_sMainTitle(""),
|
Course::Course(): m_bIsAutogen(false), m_sPath(""), m_sMainTitle(""),
|
||||||
m_sMainTitleTranslit(""), m_sSubTitle(""), m_sSubTitleTranslit(""),
|
m_sMainTitleTranslit(""), m_sSubTitle(""), m_sSubTitleTranslit(""),
|
||||||
m_sBannerPath(""), m_sBackgroundPath(""), m_sCDTitlePath(""),
|
m_sBannerPath(""), m_sBackgroundPath(""), m_sCDTitlePath(""),
|
||||||
m_sGroupName(""), m_bRepeat(false), m_fGoalSeconds(0),
|
m_sGroupName(""), m_sScripter(""), m_bRepeat(false), m_fGoalSeconds(0),
|
||||||
m_bShuffle(false), m_iLives(-1), m_bSortByMeter(false),
|
m_bShuffle(false), m_iLives(-1), m_bSortByMeter(false),
|
||||||
m_bIncomplete(false), m_vEntries(), m_SortOrder_TotalDifficulty(0),
|
m_bIncomplete(false), m_vEntries(), m_SortOrder_TotalDifficulty(0),
|
||||||
m_SortOrder_Ranking(0), m_LoadedFromProfile(ProfileSlot_Invalid),
|
m_SortOrder_Ranking(0), m_LoadedFromProfile(ProfileSlot_Invalid),
|
||||||
@@ -175,6 +175,7 @@ void Course::Init()
|
|||||||
m_sMainTitleTranslit = "";
|
m_sMainTitleTranslit = "";
|
||||||
m_sSubTitle = "";
|
m_sSubTitle = "";
|
||||||
m_sSubTitleTranslit = "";
|
m_sSubTitleTranslit = "";
|
||||||
|
m_sScripter = "";
|
||||||
|
|
||||||
m_sBannerPath = "";
|
m_sBannerPath = "";
|
||||||
m_sBackgroundPath = "";
|
m_sBackgroundPath = "";
|
||||||
@@ -1091,6 +1092,7 @@ public:
|
|||||||
static int GetGroupName( T* p, lua_State *L ) { lua_pushstring(L, p->m_sGroupName ); return 1; }
|
static int GetGroupName( T* p, lua_State *L ) { lua_pushstring(L, p->m_sGroupName ); return 1; }
|
||||||
static int IsAutogen( T* p, lua_State *L ) { lua_pushboolean(L, p->m_bIsAutogen ); return 1; }
|
static int IsAutogen( T* p, lua_State *L ) { lua_pushboolean(L, p->m_bIsAutogen ); return 1; }
|
||||||
static int GetEstimatedNumStages( T* p, lua_State *L ) { lua_pushnumber(L, p->GetEstimatedNumStages() ); return 1; }
|
static int GetEstimatedNumStages( T* p, lua_State *L ) { lua_pushnumber(L, p->GetEstimatedNumStages() ); return 1; }
|
||||||
|
static int GetScripter( T* p, lua_State *L ) { lua_pushstring(L, p->m_sScripter ); return 1; }
|
||||||
static int GetTotalSeconds( T* p, lua_State *L )
|
static int GetTotalSeconds( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
StepsType st = Enum::Check<StepsType>(L, 1);
|
StepsType st = Enum::Check<StepsType>(L, 1);
|
||||||
@@ -1111,28 +1113,29 @@ public:
|
|||||||
|
|
||||||
LunaCourse()
|
LunaCourse()
|
||||||
{
|
{
|
||||||
ADD_METHOD( GetPlayMode ); // [sm-ssc] returns PlayMode enum now
|
ADD_METHOD( GetPlayMode );
|
||||||
ADD_METHOD( GetDisplayFullTitle );
|
ADD_METHOD( GetDisplayFullTitle );
|
||||||
ADD_METHOD( GetTranslitFullTitle );
|
ADD_METHOD( GetTranslitFullTitle );
|
||||||
ADD_METHOD( HasMods );
|
ADD_METHOD( HasMods );
|
||||||
ADD_METHOD( HasTimedMods );
|
ADD_METHOD( HasTimedMods );
|
||||||
ADD_METHOD( GetCourseType ); // [sm-ssc] returns CourseType enum now
|
ADD_METHOD( GetCourseType );
|
||||||
ADD_METHOD( GetCourseEntry );
|
ADD_METHOD( GetCourseEntry );
|
||||||
ADD_METHOD( GetCourseEntries );
|
ADD_METHOD( GetCourseEntries );
|
||||||
ADD_METHOD( GetAllTrails );
|
ADD_METHOD( GetAllTrails );
|
||||||
ADD_METHOD( GetBannerPath );
|
ADD_METHOD( GetBannerPath );
|
||||||
ADD_METHOD( GetBackgroundPath ); // sm-ssc addition
|
ADD_METHOD( GetBackgroundPath );
|
||||||
ADD_METHOD( GetCourseDir ); // sm-ssc addition
|
ADD_METHOD( GetCourseDir );
|
||||||
ADD_METHOD( GetGroupName );
|
ADD_METHOD( GetGroupName );
|
||||||
ADD_METHOD( IsAutogen );
|
ADD_METHOD( IsAutogen );
|
||||||
ADD_METHOD( GetEstimatedNumStages );
|
ADD_METHOD( GetEstimatedNumStages );
|
||||||
|
ADD_METHOD( GetScripter );
|
||||||
ADD_METHOD( GetTotalSeconds );
|
ADD_METHOD( GetTotalSeconds );
|
||||||
ADD_METHOD( IsEndless );
|
ADD_METHOD( IsEndless );
|
||||||
ADD_METHOD( IsNonstop ); // sm-ssc addition
|
ADD_METHOD( IsNonstop );
|
||||||
ADD_METHOD( IsOni ); // sm-ssc addition
|
ADD_METHOD( IsOni );
|
||||||
ADD_METHOD( GetGoalSeconds );
|
ADD_METHOD( GetGoalSeconds );
|
||||||
ADD_METHOD( HasBanner ); // sm-ssc addition
|
ADD_METHOD( HasBanner );
|
||||||
ADD_METHOD( HasBackground ); // sm-ssc addition
|
ADD_METHOD( HasBackground );
|
||||||
ADD_METHOD( IsAnEdit );
|
ADD_METHOD( IsAnEdit );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -161,9 +161,10 @@ public:
|
|||||||
|
|
||||||
RString m_sMainTitle, m_sMainTitleTranslit;
|
RString m_sMainTitle, m_sMainTitleTranslit;
|
||||||
RString m_sSubTitle, m_sSubTitleTranslit;
|
RString m_sSubTitle, m_sSubTitleTranslit;
|
||||||
|
RString m_sScripter;
|
||||||
|
|
||||||
RString m_sBannerPath;
|
RString m_sBannerPath;
|
||||||
RString m_sBackgroundPath; // after 9 years yes finally -aj
|
RString m_sBackgroundPath;
|
||||||
RString m_sCDTitlePath;
|
RString m_sCDTitlePath;
|
||||||
RString m_sGroupName;
|
RString m_sGroupName;
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,9 @@ void CourseContentsList::SetItemFromGameState( Actor *pActor, int iCourseEntryIn
|
|||||||
FOREACH_HumanPlayer(pn)
|
FOREACH_HumanPlayer(pn)
|
||||||
{
|
{
|
||||||
const Trail *pTrail = GAMESTATE->m_pCurTrail[pn];
|
const Trail *pTrail = GAMESTATE->m_pCurTrail[pn];
|
||||||
if( pTrail == NULL || iCourseEntryIndex >= (int) pTrail->m_vEntries.size() )
|
if( pTrail == NULL
|
||||||
|
|| iCourseEntryIndex >= (int) pTrail->m_vEntries.size()
|
||||||
|
|| iCourseEntryIndex >= (int) pCourse->m_vEntries.size() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const TrailEntry *te = &pTrail->m_vEntries[iCourseEntryIndex];
|
const TrailEntry *te = &pTrail->m_vEntries[iCourseEntryIndex];
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou
|
|||||||
out.m_sMainTitle = sParams[1];
|
out.m_sMainTitle = sParams[1];
|
||||||
else if( 0 == stricmp(sValueName, "COURSETRANSLIT") )
|
else if( 0 == stricmp(sValueName, "COURSETRANSLIT") )
|
||||||
out.m_sMainTitleTranslit = sParams[1];
|
out.m_sMainTitleTranslit = sParams[1];
|
||||||
|
else if( 0 == stricmp(sValueName, "SCRIPTER") )
|
||||||
|
out.m_sScripter = sParams[1];
|
||||||
else if( 0 == stricmp(sValueName, "REPEAT") )
|
else if( 0 == stricmp(sValueName, "REPEAT") )
|
||||||
{
|
{
|
||||||
RString str = sParams[1];
|
RString str = sParams[1];
|
||||||
@@ -161,6 +163,7 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou
|
|||||||
// infer entry::Type from the first param
|
// infer entry::Type from the first param
|
||||||
// todo: make sure these aren't generating bogus entries due
|
// todo: make sure these aren't generating bogus entries due
|
||||||
// to a lack of songs. -aj
|
// to a lack of songs. -aj
|
||||||
|
LOG->Trace("[CourseLoaderCRS] sParams[1] = %s",sParams[1].c_str());
|
||||||
// most played
|
// most played
|
||||||
if( sParams[1].Left(strlen("BEST")) == "BEST" )
|
if( sParams[1].Left(strlen("BEST")) == "BEST" )
|
||||||
{
|
{
|
||||||
@@ -176,7 +179,7 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou
|
|||||||
new_entry.songSort = SongSort_FewestPlays;
|
new_entry.songSort = SongSort_FewestPlays;
|
||||||
}
|
}
|
||||||
// best grades
|
// best grades
|
||||||
if( sParams[1].Left(strlen("GRADEBEST")) == "GRADEBEST" )
|
else if( sParams[1].Left(strlen("GRADEBEST")) == "GRADEBEST" )
|
||||||
{
|
{
|
||||||
new_entry.iChooseIndex = atoi( sParams[1].Right(sParams[1].size()-strlen("GRADEBEST")) ) - 1;
|
new_entry.iChooseIndex = atoi( sParams[1].Right(sParams[1].size()-strlen("GRADEBEST")) ) - 1;
|
||||||
CLAMP( new_entry.iChooseIndex, 0, 500 );
|
CLAMP( new_entry.iChooseIndex, 0, 500 );
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ bool CourseWriterCRS::Write( const Course &course, RageFileBasic &f, bool bSavin
|
|||||||
f.PutLine( ssprintf("#COURSE:%s;", course.m_sMainTitle.c_str()) );
|
f.PutLine( ssprintf("#COURSE:%s;", course.m_sMainTitle.c_str()) );
|
||||||
if( course.m_sMainTitleTranslit != "" )
|
if( course.m_sMainTitleTranslit != "" )
|
||||||
f.PutLine( ssprintf("#COURSETRANSLIT:%s;", course.m_sMainTitleTranslit.c_str()) );
|
f.PutLine( ssprintf("#COURSETRANSLIT:%s;", course.m_sMainTitleTranslit.c_str()) );
|
||||||
|
if( course.m_sScripter != "" )
|
||||||
|
f.PutLine( ssprintf("#SCRIPTER:%s;", course.m_sScripter.c_str()) );
|
||||||
if( course.m_bRepeat )
|
if( course.m_bRepeat )
|
||||||
f.PutLine( "#REPEAT:YES;" );
|
f.PutLine( "#REPEAT:YES;" );
|
||||||
if( course.m_iLives != -1 )
|
if( course.m_iLives != -1 )
|
||||||
|
|||||||
@@ -226,12 +226,14 @@ void FadingBanner::LoadRoulette()
|
|||||||
{
|
{
|
||||||
BeforeChange();
|
BeforeChange();
|
||||||
m_Banner[m_iIndexLatest].LoadRoulette();
|
m_Banner[m_iIndexLatest].LoadRoulette();
|
||||||
|
m_Banner[m_iIndexLatest].PlayCommand( "Roulette" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadingBanner::LoadRandom()
|
void FadingBanner::LoadRandom()
|
||||||
{
|
{
|
||||||
BeforeChange();
|
BeforeChange();
|
||||||
m_Banner[m_iIndexLatest].LoadRandom();
|
m_Banner[m_iIndexLatest].LoadRandom();
|
||||||
|
m_Banner[m_iIndexLatest].PlayCommand( "Random" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadingBanner::LoadFromSortOrder( SortOrder so )
|
void FadingBanner::LoadFromSortOrder( SortOrder so )
|
||||||
@@ -252,6 +254,13 @@ void FadingBanner::LoadCourseFallback()
|
|||||||
m_Banner[m_iIndexLatest].LoadCourseFallback();
|
m_Banner[m_iIndexLatest].LoadCourseFallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FadingBanner::LoadCustom( RString sBanner )
|
||||||
|
{
|
||||||
|
BeforeChange();
|
||||||
|
m_Banner[m_iIndexLatest].Load( THEME->GetPathG( "Banner", sBanner ) );
|
||||||
|
m_Banner[m_iIndexLatest].PlayCommand( sBanner );
|
||||||
|
}
|
||||||
|
|
||||||
// lua start
|
// lua start
|
||||||
#include "LuaBinding.h"
|
#include "LuaBinding.h"
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public:
|
|||||||
void LoadFromSortOrder( SortOrder so );
|
void LoadFromSortOrder( SortOrder so );
|
||||||
void LoadFallback();
|
void LoadFallback();
|
||||||
void LoadCourseFallback();
|
void LoadCourseFallback();
|
||||||
|
void LoadCustom( RString sBanner );
|
||||||
|
|
||||||
bool LoadFromCachedBanner( const RString &path );
|
bool LoadFromCachedBanner( const RString &path );
|
||||||
bool LoadFromCachedBackground( const RString &path );
|
bool LoadFromCachedBackground( const RString &path );
|
||||||
|
|||||||
@@ -157,11 +157,6 @@ void FontPage::SetTextureCoords( const vector<int> &widths, int iAdvanceExtraPix
|
|||||||
|
|
||||||
void FontPage::SetExtraPixels( int iDrawExtraPixelsLeft, int iDrawExtraPixelsRight )
|
void FontPage::SetExtraPixels( int iDrawExtraPixelsLeft, int iDrawExtraPixelsRight )
|
||||||
{
|
{
|
||||||
/* Hack: do one more than we were asked to; I think a lot of fonts are one
|
|
||||||
* too low. - glenn */
|
|
||||||
iDrawExtraPixelsRight++;
|
|
||||||
iDrawExtraPixelsLeft++;
|
|
||||||
|
|
||||||
if( (iDrawExtraPixelsLeft % 2) == 1 )
|
if( (iDrawExtraPixelsLeft % 2) == 1 )
|
||||||
++iDrawExtraPixelsLeft;
|
++iDrawExtraPixelsLeft;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ void LifeMeterBattery::Load( const PlayerState *pPlayerState, PlayerStageStats *
|
|||||||
bool bPlayerEnabled = GAMESTATE->IsPlayerEnabled( pPlayerState );
|
bool bPlayerEnabled = GAMESTATE->IsPlayerEnabled( pPlayerState );
|
||||||
|
|
||||||
m_sprFrame.Load( THEME->GetPathG(sType,"frame") );
|
m_sprFrame.Load( THEME->GetPathG(sType,"frame") );
|
||||||
this->AddChild( &m_sprFrame );
|
this->AddChild( m_sprFrame );
|
||||||
|
|
||||||
m_sprBattery.Load( THEME->GetPathG(sType,"lives 1x4") );
|
m_sprBattery.Load( THEME->GetPathG(sType,"lives 1x4") );
|
||||||
m_sprBattery.SetName( ssprintf("BatteryP%i",int(pn+1)) );
|
m_sprBattery.SetName( ssprintf("BatteryP%i",int(pn+1)) );
|
||||||
@@ -101,14 +101,12 @@ void LifeMeterBattery::OnSongEnded()
|
|||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LifeMeterBattery::ChangeLife( TapNoteScore score )
|
void LifeMeterBattery::ChangeLife( TapNoteScore score )
|
||||||
{
|
{
|
||||||
if( m_iLivesLeft == 0 )
|
if( m_iLivesLeft == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// xxx: this is hardcoded; we should use metrics for this. -aj
|
// xxx: This is hardcoded; we should use metrics for this. -aj
|
||||||
// How to: have a TapNote reference similar to LifeMeterBattery
|
|
||||||
switch( score )
|
switch( score )
|
||||||
{
|
{
|
||||||
case TNS_W1:
|
case TNS_W1:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "RageSound.h"
|
#include "RageSound.h"
|
||||||
#include "PercentageDisplay.h"
|
#include "PercentageDisplay.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
|
#include "AutoActor.h"
|
||||||
|
|
||||||
/** @brief Battery life meter used in Oni mode. */
|
/** @brief Battery life meter used in Oni mode. */
|
||||||
class LifeMeterBattery : public LifeMeter
|
class LifeMeterBattery : public LifeMeter
|
||||||
@@ -45,7 +46,7 @@ private:
|
|||||||
//ThemeMetric<> METRIC_NAME;
|
//ThemeMetric<> METRIC_NAME;
|
||||||
ThemeMetric<float> BATTERY_BLINK_TIME;
|
ThemeMetric<float> BATTERY_BLINK_TIME;
|
||||||
|
|
||||||
Sprite m_sprFrame;
|
AutoActor m_sprFrame;
|
||||||
Sprite m_sprBattery;
|
Sprite m_sprBattery;
|
||||||
BitmapText m_textNumLives;
|
BitmapText m_textNumLives;
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,13 @@ ModIcon::ModIcon( const ModIcon &cpy ):
|
|||||||
void ModIcon::Load( RString sMetricsGroup )
|
void ModIcon::Load( RString sMetricsGroup )
|
||||||
{
|
{
|
||||||
m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") );
|
m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") );
|
||||||
|
m_sprFilled->SetName("Filled");
|
||||||
|
ActorUtil::LoadAllCommands( m_sprFilled, sMetricsGroup );
|
||||||
this->AddChild( m_sprFilled );
|
this->AddChild( m_sprFilled );
|
||||||
|
|
||||||
m_sprEmpty.Load( THEME->GetPathG(sMetricsGroup,"Empty") );
|
m_sprEmpty.Load( THEME->GetPathG(sMetricsGroup,"Empty") );
|
||||||
|
m_sprEmpty->SetName("Empty");
|
||||||
|
ActorUtil::LoadAllCommands( m_sprEmpty, sMetricsGroup );
|
||||||
this->AddChild( m_sprEmpty );
|
this->AddChild( m_sprEmpty );
|
||||||
|
|
||||||
m_text.LoadFromFont( THEME->GetPathF(sMetricsGroup,"Text") );
|
m_text.LoadFromFont( THEME->GetPathF(sMetricsGroup,"Text") );
|
||||||
@@ -70,7 +74,7 @@ void ModIcon::Set( const RString &_sText )
|
|||||||
|
|
||||||
m_text.SetText( sText );
|
m_text.SetText( sText );
|
||||||
// This line makes Lua option rows crash: -aj
|
// This line makes Lua option rows crash: -aj
|
||||||
m_text.CropToWidth( CROP_TEXT_TO_WIDTH );
|
//m_text.CropToWidth( CROP_TEXT_TO_WIDTH );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -360,6 +360,8 @@ bool MusicWheel::SelectModeMenuItem()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// bool MusicWheel::SelectCustomItem()
|
||||||
|
|
||||||
void MusicWheel::GetSongList( vector<Song*> &arraySongs, SortOrder so )
|
void MusicWheel::GetSongList( vector<Song*> &arraySongs, SortOrder so )
|
||||||
{
|
{
|
||||||
vector<Song*> apAllSongs;
|
vector<Song*> apAllSongs;
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ protected:
|
|||||||
bool SelectSongOrCourse();
|
bool SelectSongOrCourse();
|
||||||
bool SelectCourse( const Course *p );
|
bool SelectCourse( const Course *p );
|
||||||
bool SelectModeMenuItem();
|
bool SelectModeMenuItem();
|
||||||
|
//bool SelectCustomItem();
|
||||||
|
|
||||||
virtual void UpdateSwitch();
|
virtual void UpdateSwitch();
|
||||||
|
|
||||||
|
|||||||
@@ -178,6 +178,11 @@ bool SSCLoader::LoadFromSSCFile( const RString &sPath, Song &out, bool bFromCach
|
|||||||
out.m_sGenre = sParams[1];
|
out.m_sGenre = sParams[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="ORIGIN" )
|
||||||
|
{
|
||||||
|
out.m_sOrigin = sParams[1];
|
||||||
|
}
|
||||||
|
|
||||||
else if( sValueName=="CREDIT" )
|
else if( sValueName=="CREDIT" )
|
||||||
{
|
{
|
||||||
out.m_sCredit = sParams[1];
|
out.m_sCredit = sParams[1];
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ static RString GetSMNotesTag( const Song &song, const Steps &in )
|
|||||||
RString desc = (USE_CREDIT ? in.GetCredit() : in.GetDescription());
|
RString desc = (USE_CREDIT ? in.GetCredit() : in.GetDescription());
|
||||||
lines.push_back( ssprintf( " %s:", SmEscape(desc).c_str() ) );
|
lines.push_back( ssprintf( " %s:", SmEscape(desc).c_str() ) );
|
||||||
lines.push_back( ssprintf( " %s:", DifficultyToString(in.GetDifficulty()).c_str() ) );
|
lines.push_back( ssprintf( " %s:", DifficultyToString(in.GetDifficulty()).c_str() ) );
|
||||||
lines.push_back( ssprintf( " %d:", in.GetMeter() ) );
|
lines.push_back( ssprintf( " %d:", clamp( in.GetMeter(), MIN_METER, MAX_METER ) ) );
|
||||||
|
|
||||||
vector<RString> asRadarValues;
|
vector<RString> asRadarValues;
|
||||||
// SM files don't use fakes for radar data. Keep it that way.
|
// SM files don't use fakes for radar data. Keep it that way.
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
|
|||||||
f.PutLine( ssprintf( "#SUBTITLETRANSLIT:%s;", SmEscape(out.m_sSubTitleTranslit).c_str() ) );
|
f.PutLine( ssprintf( "#SUBTITLETRANSLIT:%s;", SmEscape(out.m_sSubTitleTranslit).c_str() ) );
|
||||||
f.PutLine( ssprintf( "#ARTISTTRANSLIT:%s;", SmEscape(out.m_sArtistTranslit).c_str() ) );
|
f.PutLine( ssprintf( "#ARTISTTRANSLIT:%s;", SmEscape(out.m_sArtistTranslit).c_str() ) );
|
||||||
f.PutLine( ssprintf( "#GENRE:%s;", SmEscape(out.m_sGenre).c_str() ) );
|
f.PutLine( ssprintf( "#GENRE:%s;", SmEscape(out.m_sGenre).c_str() ) );
|
||||||
|
f.PutLine( ssprintf( "#ORIGIN:%s;", SmEscape(out.m_sOrigin).c_str() ) );
|
||||||
f.PutLine( ssprintf( "#CREDIT:%s;", SmEscape(out.m_sCredit).c_str() ) );
|
f.PutLine( ssprintf( "#CREDIT:%s;", SmEscape(out.m_sCredit).c_str() ) );
|
||||||
f.PutLine( ssprintf( "#BANNER:%s;", SmEscape(out.m_sBannerFile).c_str() ) );
|
f.PutLine( ssprintf( "#BANNER:%s;", SmEscape(out.m_sBannerFile).c_str() ) );
|
||||||
f.PutLine( ssprintf( "#BACKGROUND:%s;", SmEscape(out.m_sBackgroundFile).c_str() ) );
|
f.PutLine( ssprintf( "#BACKGROUND:%s;", SmEscape(out.m_sBackgroundFile).c_str() ) );
|
||||||
@@ -293,7 +294,7 @@ static RString GetSSCNoteData( const Song &song, const Steps &in, bool bSavingCa
|
|||||||
lines.push_back( ssprintf( "#DESCRIPTION:%s;", SmEscape(in.GetDescription()).c_str() ) );
|
lines.push_back( ssprintf( "#DESCRIPTION:%s;", SmEscape(in.GetDescription()).c_str() ) );
|
||||||
lines.push_back( ssprintf( "#CHARTSTYLE:%s;", SmEscape(in.GetChartStyle()).c_str() ) );
|
lines.push_back( ssprintf( "#CHARTSTYLE:%s;", SmEscape(in.GetChartStyle()).c_str() ) );
|
||||||
lines.push_back( ssprintf( "#DIFFICULTY:%s;", DifficultyToString(in.GetDifficulty()).c_str() ) );
|
lines.push_back( ssprintf( "#DIFFICULTY:%s;", DifficultyToString(in.GetDifficulty()).c_str() ) );
|
||||||
lines.push_back( ssprintf( "#METER:%d;", in.GetMeter() ) );
|
lines.push_back( ssprintf( "#METER:%d;", clamp( in.GetMeter(), MIN_METER, MAX_METER ) ) );
|
||||||
|
|
||||||
vector<RString> asRadarValues;
|
vector<RString> asRadarValues;
|
||||||
FOREACH_PlayerNumber( pn )
|
FOREACH_PlayerNumber( pn )
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ void OptionRow::ChoicesChanged( RowType type )
|
|||||||
|
|
||||||
InitText( type );
|
InitText( type );
|
||||||
|
|
||||||
/* When choices change, the old focus position is meaningless; reset it. */
|
// When choices change, the old focus position is meaningless; reset it.
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
SetChoiceInRowWithFocus( p, 0 );
|
SetChoiceInRowWithFocus( p, 0 );
|
||||||
|
|
||||||
@@ -398,7 +398,7 @@ void OptionRow::InitText( RowType type )
|
|||||||
this->SortByDrawOrder();
|
this->SortByDrawOrder();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* After importing options, choose which item is focused. */
|
// After importing options, choose which item is focused.
|
||||||
void OptionRow::AfterImportOptions( PlayerNumber pn )
|
void OptionRow::AfterImportOptions( PlayerNumber pn )
|
||||||
{
|
{
|
||||||
/* We load items for both players on start, since we don't know which players
|
/* We load items for both players on start, since we don't know which players
|
||||||
@@ -645,6 +645,7 @@ void OptionRow::SetModIcon( PlayerNumber pn, const RString &sText, GameCommand &
|
|||||||
// update row frame
|
// update row frame
|
||||||
Message msg( "Refresh" );
|
Message msg( "Refresh" );
|
||||||
msg.SetParam( "GameCommand", &gc );
|
msg.SetParam( "GameCommand", &gc );
|
||||||
|
msg.SetParam( "Text", sText );
|
||||||
m_sprFrame->HandleMessage( msg );
|
m_sprFrame->HandleMessage( msg );
|
||||||
if( m_ModIcons[pn] != NULL )
|
if( m_ModIcons[pn] != NULL )
|
||||||
m_ModIcons[pn]->Set( sText );
|
m_ModIcons[pn]->Set( sText );
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
* </li></ul>
|
* </li></ul>
|
||||||
*/
|
*/
|
||||||
#ifndef PRODUCT_VER_BARE
|
#ifndef PRODUCT_VER_BARE
|
||||||
#define PRODUCT_VER_BARE v1.2.4
|
#define PRODUCT_VER_BARE v1.2.5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
; see ProductInfo.h for use descriptions
|
; see ProductInfo.h for use descriptions
|
||||||
!define PRODUCT_ID "sm-ssc"
|
!define PRODUCT_ID "sm-ssc"
|
||||||
!define PRODUCT_VER "v1.2.4"
|
!define PRODUCT_VER "v1.2.5"
|
||||||
!define PRODUCT_DISPLAY "${PRODUCT_ID} ${PRODUCT_VER}"
|
!define PRODUCT_DISPLAY "${PRODUCT_ID} ${PRODUCT_VER}"
|
||||||
!define PRODUCT_BITMAP "ssc"
|
!define PRODUCT_BITMAP "ssc"
|
||||||
|
|
||||||
|
|||||||
@@ -824,7 +824,7 @@ public:
|
|||||||
if( pProfile )
|
if( pProfile )
|
||||||
pProfile->PushSelf(L);
|
pProfile->PushSelf(L);
|
||||||
else
|
else
|
||||||
lua_pushnil(L );
|
lua_pushnil(L);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
static int GetLocalProfileFromIndex( T* p, lua_State *L ) { Profile *pProfile = p->GetLocalProfileFromIndex(IArg(1)); ASSERT(pProfile); pProfile->PushSelf(L); return 1; }
|
static int GetLocalProfileFromIndex( T* p, lua_State *L ) { Profile *pProfile = p->GetLocalProfileFromIndex(IArg(1)); ASSERT(pProfile); pProfile->PushSelf(L); return 1; }
|
||||||
|
|||||||
@@ -519,8 +519,7 @@ static MenuDef g_AreaMenu(
|
|||||||
static MenuDef g_StepsInformation(
|
static MenuDef g_StepsInformation(
|
||||||
"ScreenMiniMenuStepsInformation",
|
"ScreenMiniMenuStepsInformation",
|
||||||
MenuRowDef( ScreenEdit::difficulty, "Difficulty", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::difficulty, "Difficulty", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
// xxx: this giant list of numbers SUUUUUUUUUUCKS -aj
|
MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, MIN_METER, MAX_METER ),
|
||||||
MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, "1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25" ),
|
|
||||||
MenuRowDef( ScreenEdit::description, "Description", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::description, "Description", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::chartstyle, "Chart Style", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::chartstyle, "Chart Style", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::step_credit, "Step Author", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::step_credit, "Step Author", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ void ScreenEvaluation::Init()
|
|||||||
{
|
{
|
||||||
FOREACH_EnabledPlayer( p )
|
FOREACH_EnabledPlayer( p )
|
||||||
{
|
{
|
||||||
m_sprPercentFrame[p].Load( THEME->GetPathG(m_sName,ssprintf("percent frame p%d",p+1)) );
|
m_sprPercentFrame[p].Load( THEME->GetPathG(m_sName,ssprintf("PercentFrame p%d",p+1)) );
|
||||||
m_sprPercentFrame[p]->SetName( ssprintf("PercentFrameP%d",p+1) );
|
m_sprPercentFrame[p]->SetName( ssprintf("PercentFrameP%d",p+1) );
|
||||||
ActorUtil::LoadAllCommands( *m_sprPercentFrame[p], m_sName );
|
ActorUtil::LoadAllCommands( *m_sprPercentFrame[p], m_sName );
|
||||||
SET_XY( m_sprPercentFrame[p] );
|
SET_XY( m_sprPercentFrame[p] );
|
||||||
@@ -452,6 +452,7 @@ void ScreenEvaluation::Init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// init judgment area
|
// init judgment area
|
||||||
|
ROLLING_NUMBERS_CLASS.Load( m_sName, "RollingNumbersClass" );
|
||||||
FOREACH_ENUM( JudgmentLine, l )
|
FOREACH_ENUM( JudgmentLine, l )
|
||||||
{
|
{
|
||||||
if( l == JudgmentLine_W1 && !GAMESTATE->ShowW1() )
|
if( l == JudgmentLine_W1 && !GAMESTATE->ShowW1() )
|
||||||
@@ -473,7 +474,7 @@ void ScreenEvaluation::Init()
|
|||||||
{
|
{
|
||||||
m_textJudgmentLineNumber[l][p].LoadFromFont( THEME->GetPathF(m_sName, "JudgmentLineNumber") );
|
m_textJudgmentLineNumber[l][p].LoadFromFont( THEME->GetPathF(m_sName, "JudgmentLineNumber") );
|
||||||
m_textJudgmentLineNumber[l][p].SetName( JudgmentLineToString(l)+ssprintf("NumberP%d",p+1) );
|
m_textJudgmentLineNumber[l][p].SetName( JudgmentLineToString(l)+ssprintf("NumberP%d",p+1) );
|
||||||
m_textJudgmentLineNumber[l][p].Load( "RollingNumbersJudgment" );
|
m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_CLASS );
|
||||||
ActorUtil::LoadAllCommands( m_textJudgmentLineNumber[l][p], m_sName );
|
ActorUtil::LoadAllCommands( m_textJudgmentLineNumber[l][p], m_sName );
|
||||||
SET_XY( m_textJudgmentLineNumber[l][p] );
|
SET_XY( m_textJudgmentLineNumber[l][p] );
|
||||||
this->AddChild( &m_textJudgmentLineNumber[l][p] );
|
this->AddChild( &m_textJudgmentLineNumber[l][p] );
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ protected:
|
|||||||
GradeDisplay m_Grades[NUM_PLAYERS];
|
GradeDisplay m_Grades[NUM_PLAYERS];
|
||||||
|
|
||||||
// points area
|
// points area
|
||||||
bool m_bNewSongsUnlocked;
|
|
||||||
PercentageDisplay m_Percent[NUM_PLAYERS];
|
PercentageDisplay m_Percent[NUM_PLAYERS];
|
||||||
AutoActor m_sprPercentFrame[NUM_PLAYERS];
|
AutoActor m_sprPercentFrame[NUM_PLAYERS];
|
||||||
|
|
||||||
@@ -115,6 +114,7 @@ protected:
|
|||||||
RageSound m_soundStart; // sound played if the player passes or fails
|
RageSound m_soundStart; // sound played if the player passes or fails
|
||||||
|
|
||||||
ThemeMetric<bool> SUMMARY;
|
ThemeMetric<bool> SUMMARY;
|
||||||
|
ThemeMetric<RString> ROLLING_NUMBERS_CLASS;
|
||||||
/** @brief Did a player save a screenshot of their score? */
|
/** @brief Did a player save a screenshot of their score? */
|
||||||
bool m_bSavedScreenshot[NUM_PLAYERS];
|
bool m_bSavedScreenshot[NUM_PLAYERS];
|
||||||
};
|
};
|
||||||
|
|||||||