This commit is contained in:
Thai Pangsakulyanont
2011-02-23 21:45:26 +07:00
381 changed files with 5486 additions and 1672 deletions
+2
View File
@@ -12,6 +12,7 @@ tests/*.err
*.idb
*.pdb
*.exp
___*
.hg
.hgignore
.hgtags
@@ -24,6 +25,7 @@ Thumbs.db
*.mode1v3
*.exe
*.vdi
Docs/doxygen
PBProject/build
Xcode/build
src/build-*
+3
View File
@@ -9,6 +9,9 @@ change to JSON, but it is unsure if this will be done.
Implement .ssc at your own risk.
________________________________________________________________________________
[v0.52] - AJ
* Add CHARTSTYLE tag to NoteData section.
[v0.51] - AJ
* Move VERSION tag to the first line.
* Limit VERSION tag to two decimal places.
+49 -1
View File
@@ -10,9 +10,57 @@ supported but exist anyways.)
_____________________________________________________________________________
================================================================================
sm-ssc v1.2.2 | 201102??
sm-ssc v1.2.3 | 201102??
--------------------------------------------------------------------------------
20110222
--------
* [ScreenEdit] Display the Player Number for Routine mode. [Wolfman2000]
* [ScreenEdit] Add format string metrics for the right hand side of the editor.
[Wolfman2000]
* [ScreenGameplaySyncMachine] Allow themes to use either .ssc or .sm files. [AJ]
20110221
--------
* Reverted ArrowSpacing back to 64 (which was the previous value).
Please re-adjust your speed mods accordingly. [AJ]
* [OptionRow] Added GetLayoutType() and GetSelectType() Lua bindings. [AJ]
* Fix .sm-style edits not being loaded. [AJ]
* [Common] Added OperatorMenuScreen metric. [AJ]
================================================================================
sm-ssc v1.2.2 | 20110220
--------------------------------------------------------------------------------
20110219
--------
* [BPMDisplay] Added FormatString metric. [AJ]
* [GrooveRadar] Changed "Label#OffsetX/Y" metrics to "Label#X/Y". [AJ]
* [GrooveRadar] Fixed RadarFrame from not running commands on RadarFrame base. [AJ]
* [GrooveRadar] Removed RadarFrameTweenOnScreen and RadarFrameTweenOffScreen metrics. (Themers: Use RadarFrameOnCommand and RadarFrameOffCommand instead) [AJ]
* [GrooveRadar] Removed non-working PreDelayOnCommand, PostDelayOnCommand. (Themers: Use Label#OnCommand and Label#OffCommand instead.) [AJ]
* [ScreenOptions] Renamed "GetCurrentRow" Lua binding to "GetCurrentRowIndex". [AJ]
* [OptionRow] Added FirstItemGoesDown(), GetChoiceInRowWithFocus(PlayerNumber),
GetName(), GetNumChoices(), GetRowTitle(), HasFocus(PlayerNumber),
and OneChoiceForAllPlayers() Lua bindings. [AJ]
* [ScreenOptions] Added Change message (params: RowIndex, ChangedToExit). [AJ]
* [ScreenOptions] Added FocusedItemEndsScreen(PlayerNumber) and GetOptionRow(int)
Lua bindings. [AJ]
* [ScreenPlayerOptions] now derives from ScreenOptions, allowing it to get the
new ScreenOptions bindings. [AJ]
20110218
--------
* [WheelBase] Added SetOpenSection Lua binding. [AJ]
20110217
--------
* Allowed refreshing of Fonts again. [AJ]
20110214
--------
* Added #CHARTSTYLE to .ssc format, mainly meant for Pad/Keyboard distinctions. [AJ]
20110213
--------
* Life Difficulty 4 is now as difficult as Life 6 was. [AJ]
+1722
View File
File diff suppressed because it is too large Load Diff
+17 -8
View File
@@ -39,7 +39,6 @@
<Function name='FormatNumberAndSuffix'/>
<Function name='FormatPercentScore'/>
<Function name='GameCompatibleModes'/>
<Function name='GamePrefAdjustSpeed'/>
<Function name='GamePrefAutoSetStyle'/>
<Function name='GamePrefComboOnRolls'/>
<Function name='GamePrefComboUnderField'/>
@@ -775,8 +774,6 @@
<Class base='ActorFrame' name='GrooveRadar'>
<Function name='SetEmpty'/>
<Function name='SetFromRadarValues'/>
<Function name='tweenoffscreen'/>
<Function name='tweenonscreen'/>
</Class>
<Class base='BitmapText' name='HelpDisplay'>
<Function name='SetSecsBetweenSwitches'/>
@@ -856,6 +853,15 @@
<Function name='LoadActor'/>
<Function name='LoadActorForNoteSkin'/>
</Class>
<Class base='ActorFrame' name='OptionRow'>
<Function name='FirstItemGoesDown'/>
<Function name='GetChoiceInRowWithFocus'/>
<Function name='GetName'/>
<Function name='GetNumChoices'/>
<Function name='GetRowTitle'/>
<Function name='HasFocus'/>
<Function name='OneChoiceForAllPlayers'/>
</Class>
<Class base='ActorFrame' name='PaneDisplay'>
<Function name='SetFromGameState'/>
</Class>
@@ -1074,9 +1080,11 @@
</Class>
<Class base='ScreenWithMenuElements' name='ScreenOptions'>
<Function name='AllAreOnLastRow'/>
<Function name='GetCurrentRow'/>
<Function name='FocusedItemEndsScreen'/>
<Function name='GetCurrentRowIndex'/>
<Function name='GetOptionRow'/>
</Class>
<Class base='ScreenWithMenuElements' name='ScreenPlayerOptions'>
<Class base='ScreenOptions' name='ScreenPlayerOptions'>
<Function name='GetGoToOptions'/>
</Class>
<Class base='ScreenWithMenuElements' name='ScreenProfileLoad'>
@@ -1236,8 +1244,8 @@
<Function name='Reset'/>
</Class>
<Class name='Steps'>
<Function name='GetDescription'/>
<Function name='GetAuthorCredit'/>
<Function name='GetDescription'/>
<Function name='GetDifficulty'/>
<Function name='GetFilename'/>
<Function name='GetHash'/>
@@ -1348,6 +1356,7 @@
<Function name='GetWheelItem'/>
<Function name='IsLocked'/>
<Function name='IsSettled'/>
<Function name='SetOpenSection'/>
</Class>
<Class base='ActorFrame' name='WorkoutGraph'>
<Function name='SetFromCurrentWorkout'/>
@@ -1954,6 +1963,6 @@
<Constant name='sGame' value='&apos;dance&apos;'/>
<Constant name='top' value='&apos;VertAlign_Top&apos;'/>
</Constants>
<Version>sm-ssc v1.2.1</Version>
<Date>2011-02-10</Date>
<Version>sm-ssc v1.2.2</Version>
<Date>2011-02-21</Date>
</Lua>
+34 -2
View File
@@ -2038,6 +2038,29 @@
Returns a table of noteskin names for the current gametype.
</Function>
</Class>
<Class name='OptionRow'>
<Function name='FirstItemGoesDown' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the first item in the row goes down.
</Function>
<Function name='GetChoiceInRowWithFocus' sm-ssc='true' return='int' arguments='PlayerNumber pn'>
Returns an index of the choice in the row that player <code>pn</code> is on.
</Function>
<Function name='GetName' sm-ssc='true' return='string' arguments=''>
Returns the name of the OptionRow.
</Function>
<Function name='GetNumChoices' sm-ssc='true' return='int' arguments=''>
Returns the number of choices in this OptionRow.
</Function>
<Function name='GetRowTitle' sm-ssc='true' return='string' arguments=''>
Returns the row title string.
</Function>
<Function name='HasFocus' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
Returns <code>true</code> if this row is focused by player <code>pn</code>.
</Function>
<Function name='OneChoiceForAllPlayers' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if this row forces one choice on all players.
</Function>
</Class>
<Class name='PaneDisplay'>
<Function name='SetFromGameState' return='void' arguments=''>
Sets the PaneDisplay from the GameState.
@@ -2604,8 +2627,14 @@
<Function name='AllAreOnLastRow' return='bool' sm-ssc='true' arguments=''>
Returns <code>true</code> if all active players are on the last options row.
</Function>
<Function name='GetCurrentRow' return='int' arguments='PlayerNumber pn'>
Returns the current row that player <code>pn</code> is on.
<Function name='FocusedItemEndsScreen' return='bool' sm-ssc='true' arguments='PlayerNumber pn'>
Returns <code>true</code> if the specified player is on an items that ends the screen.
</Function>
<Function name='GetCurrentRowIndex' renamed='true' return='int' arguments='PlayerNumber pn'>
Returns the current row that player <code>pn</code> is on. (Was previously <code>GetCurrentRow</code>.)
</Function>
<Function name='GetOptionRow' sm-ssc='true' return='OptionRow' arguments='int iRow'>
Returns the specified OptionRow.
</Function>
</Class>
<Class name='ScreenPlayerOptions'>
@@ -3325,6 +3354,9 @@
<Function name='Move' sm-ssc='true' return='void' arguments='int n'>
Moves the wheel by <code>n</code>.
</Function>
<Function name='SetOpenSection' sm-ssc='true' return='void' arguments='string sSection'>
Attempts to set the open section to <code>sSection</code>.
</Function>
</Class>
<Class name='WorkoutGraph'>
<Function name='SetFromCurrentWorkout' return='void' arguments=''>
@@ -0,0 +1 @@
_Tap Mine
@@ -0,0 +1 @@
_Tap Mine
@@ -0,0 +1,11 @@
local Noteskin = ... or {}
Noteskin.PartsToRotate = {
--["elemenu"] = true|false;
["Roll Head Active"] = false;
["Roll Head Inactive"] = false;
--
["Tap Note"] = false;
}
return Noteskin
@@ -0,0 +1,2 @@
[Global]
FallbackNoteSkin=cmd
@@ -0,0 +1 @@
Center Tap Note (doubleres) 3x2.png
@@ -0,0 +1 @@
DownLeft Tap Note (doubleres) 3x2.png
@@ -0,0 +1 @@
DownRight Tap Note (doubleres) 3x2.png
@@ -0,0 +1 @@
UpLeft Tap Note (doubleres) 3x2.png
@@ -0,0 +1 @@
UpRight Tap Note (doubleres) 3x2.png
@@ -0,0 +1 @@
Center Tap Note 5x1 (doubleres).png
@@ -0,0 +1 @@
DownLeft Tap Note 6x1 (doubleres).png
@@ -0,0 +1 @@
DownRight Tap Note 6x1 (doubleres).png
@@ -0,0 +1 @@
UpLeft Tap Note 6x1 (doubleres).png
@@ -0,0 +1 @@
UpRight Tap Note 6x1 (doubleres).png
@@ -0,0 +1 @@
Center Tap Note 3x2.png
@@ -0,0 +1,3 @@
return NOTESKIN:LoadActor("Center","Tap Note")..{
InitCommand=cmd(pulse;effectclock,"beat";effecttiming,1,0.5,1,0.5;effectmagnitude,0.5,0.5,0.5);
};
@@ -0,0 +1 @@
DownLeft Tap Note 3x2.png
@@ -0,0 +1,3 @@
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
InitCommand=cmd(pulse;effectclock,"beat";effecttiming,1,0.5,1,0.5;effectmagnitude,0.5,0.5,0.5)
};
@@ -0,0 +1 @@
DownRight Tap Note 3x2.png
@@ -0,0 +1,3 @@
return NOTESKIN:LoadActor("DownRight","Tap Note")..{
InitCommand=cmd(pulse;effectclock,"beat";effecttiming,1,0.5,1,0.5;effectmagnitude,0.5,0.5,0.5)
};
+1 -1
View File
@@ -20,6 +20,7 @@ Noteskin.ElementRedirs = {
["Roll Head Active"] = "Roll Head Active";
["Roll Head Inactive"] = "Roll Head Active";
["Tap Fake"] = "Tap Note";
["Tap Lift"] = "Tap Note";
--
["Hold Topcap Inactive"] = "Hold Topcap Active";
["Hold Body Inactive"] = "Hold Body Active";
@@ -94,7 +95,6 @@ local function func()
end
if sElement == "Explosion"
or sElement == "Tap Lift"
or sElement == "Tap Mine"
or sElement == "Receptor"
then
@@ -0,0 +1 @@
UpLeft Tap Note 3x2.png
@@ -0,0 +1,3 @@
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{
InitCommand=cmd(pulse;effectclock,"beat";effecttiming,1,0.5,1,0.5;effectmagnitude,0.5,0.5,0.5)
};
@@ -0,0 +1 @@
UpRight Tap Note 3x2.png
@@ -0,0 +1,3 @@
return NOTESKIN:LoadActor("UpRight","Tap Note")..{
InitCommand=cmd(pulse;effectclock,"beat";effecttiming,1,0.5,1,0.5;effectmagnitude,0.5,0.5,0.5)
};
@@ -0,0 +1 @@
Center Tap Note 8x1 (doubleres).png
@@ -0,0 +1 @@
DownLeft Tap Note 8x1 (doubleres).png
@@ -0,0 +1 @@
DownRight Tap Note 8x1 (doubleres).png
@@ -0,0 +1 @@
UpLeft Tap Note 8x1 (doubleres).png
@@ -0,0 +1 @@
UpRight Tap Note 8x1 (doubleres).png
@@ -0,0 +1 @@
Center Tap Note 3x2.png
@@ -0,0 +1 @@
DownLeft Tap Note 3x2.png
@@ -0,0 +1 @@
DownRight Tap Note 3x2.png
@@ -0,0 +1 @@
UpLeft Tap Note 3x2.png
@@ -0,0 +1 @@
UpRight Tap Note 3x2.png
@@ -0,0 +1 @@
_Center Tap Note 6x8.png
@@ -0,0 +1 @@
_DownLeft Tap Note 6x8.png
@@ -0,0 +1 @@
_UpLeft Tap Note 6x8.png
@@ -0,0 +1 @@
Center Tap Note 8x1.png
@@ -0,0 +1 @@
DownLeft Tap Note 8x1.png
@@ -0,0 +1 @@
DownRight Tap Note 8x1.png
@@ -0,0 +1 @@
UpLeft Tap Note 8x1.png
@@ -0,0 +1 @@
UpRight Tap Note 8x1.png
@@ -0,0 +1,4 @@
return Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("#fffdf200"));
OnCommand=cmd(decelerate,1;diffusealpha,1);
};
@@ -0,0 +1,6 @@
return Def.ActorFrame{
Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("#fffdf200"));
OnCommand=cmd(sleep,1.125;decelerate,0.875;diffusealpha,1);
};
}
@@ -0,0 +1,72 @@
-- This file returns an ActorFrame that holds a few objects.
-- Since I like to collapse similar code, here is a simple example:
local lineWidth = SCREEN_WIDTH*0.9;
-- previously, I had this set to SCREEN_WIDTH*0.8 in each of the
-- Def.Quad blocks below. Now I just use lineWidth and I get two advantages:
-- 1) I can change it and it takes effect in multiple places.
-- 2) I get a human readable name out of it.
-- It makes your code easier to read and work with.
local lineTime = 0.625;
-- same with this code.
return Def.ActorFrame {
Def.ActorFrame{
Name="Flourishes";
-- it has to be 0.05 since 0.9 uses up space on both sides.
InitCommand=cmd(x,SCREEN_LEFT+(SCREEN_WIDTH*0.05);y,SCREEN_CENTER_Y;);
Def.Quad{
Name="Red";
InitCommand=cmd(horizalign,left;zoomto,0,4;diffuse,color("#DA8989");diffuserightedge,color("#FFBBBB"));
OnCommand=cmd(sleep,0.1;linear,lineTime;zoomx,lineWidth);
};
Def.Quad{
Name="Yellow";
InitCommand=cmd(y,4;horizalign,left;zoomto,0,4;diffuse,color("#DAD989");diffuserightedge,color("#FFFCBB"));
OnCommand=cmd(sleep,0.05;linear,lineTime;zoomx,lineWidth);
};
Def.Quad{
Name="Blue";
InitCommand=cmd(y,8;horizalign,left;zoomto,0,4;diffuse,color("#89C6DA");diffuserightedge,color("#BBEEFF"));
OnCommand=cmd(linear,lineTime;zoomx,lineWidth);
};
};
-- LoadActor() is used to automatically load objects.
-- You'll be using it a lot.
-- THEME:GetPathG() gets a file from the Graphics folder.
-- What graphic depends on the arguments.
-- There must always be two, and there usually is a space between the
-- first and second, unless you perform a trick like this:
LoadActor( THEME:GetPathG("","_common/_logo") ) .. {
-- the InitCommand puts the logo 44 pixels above vertical center
-- and moves it 60 pixels to the left of horizontal center.
-- diffusealpha,0 makes the object invisible,
-- which is handy for transitions...
InitCommand=cmd(x,SCREEN_CENTER_X*0.8125;y,SCREEN_CENTER_Y-44;diffusealpha,0;);
-- ...as we see in the OnCommand. linear means to perform the next
-- commands over a span of time (in seconds).
-- diffusealpha,1 makes the logo fade in when applied here.
OnCommand=cmd(linear,0.5;diffusealpha,1;);
};
-- Creative Commons logo, using a local file in the same directory:
LoadActor( "creativecommons" )..{
InitCommand=cmd(x,SCREEN_LEFT+64;y,SCREEN_BOTTOM-48;Real);
OnCommand=cmd(addy,32;cropbottom,1;fadebottom,1;decelerate,0.8;cropbottom,0;fadebottom,0;addy,-32);
};
-- Making a cheap reflection effect for the sake of showing off the fov and
-- vanishpoint commands on ActorFrames.
Def.ActorFrame{
InitCommand=cmd(fov,45;vanishpoint,SCREEN_LEFT+64,SCREEN_BOTTOM-24;);
LoadActor( "creativecommons" )..{
InitCommand=cmd(x,SCREEN_LEFT+64;y,SCREEN_BOTTOM-24;valign,0;zoomy,-0.6;rotationx,-60;diffusealpha,0.6;Real;);
OnCommand=cmd(croptop,1;fadetop,0;decelerate,0.8;croptop,0;fadetop,1;);
};
};
};
@@ -0,0 +1,8 @@
-- this file returns a single quad that represents the background of most screens in the theme.
return Def.Quad{
-- FullScreen is defined in Themes/_fallback/Scripts/02 Actor.lua in sm-ssc.
-- colors can either be entered as hex ("#FFFFFFFF") or 0..1 ("1.0,1.0,1.0,1.0")
-- where the values are Red, Green, Blue, and Alpha (transparency).
InitCommand=cmd(FullScreen;diffuse,color("#fffdf2"));
};
@@ -0,0 +1 @@
ScreenWithMenuElements out
@@ -0,0 +1,8 @@
-- ScreenWithMenuElements decorations is a very important file, as it will put a
-- decorations layer on pretty much every screen.
local t = Def.ActorFrame{};
t[#t+1] = StandardDecorationFromFileOptional("Header","Header");
--t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer");
return t;
@@ -0,0 +1,6 @@
return Def.ActorFrame{
Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("#fffdf2FF"));
OnCommand=cmd(decelerate,0.75;diffusealpha,0);
};
};
@@ -0,0 +1,6 @@
return Def.ActorFrame{
Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("#fffdf200"));
OnCommand=cmd(decelerate,0.875;diffusealpha,1);
};
}
+4
View File
@@ -0,0 +1,4 @@
local time = ...
if not time then time = 1.0 end
return Def.Actor{ OnCommand=cmd(sleep,time); };
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -0,0 +1,392 @@
[main]
Baseline=23
Top=6
LineSpacing=28
DrawExtraPixelsLeft=1
DrawExtraPixelsRight=0
AdvanceExtraPixels=0
0=10
1=10
2=10
3=10
4=10
5=10
6=10
7=10
8=10
9=10
10=10
11=10
12=10
13=10
14=10
15=10
16=10
17=10
18=10
19=10
20=10
21=10
22=10
23=10
24=10
25=10
26=10
27=10
28=10
29=10
30=10
31=10
32=7
33=9
34=13
35=13
36=13
37=24
38=17
39=7
40=8
41=8
42=13
43=14
44=7
45=8
46=7
47=7
48=13
49=13
50=13
51=13
52=13
53=13
54=13
55=13
56=13
57=13
58=7
59=7
60=14
61=14
62=14
63=12
64=19
65=17
66=15
67=15
68=17
69=13
70=12
71=17
72=17
73=7
74=9
75=16
76=12
77=23
78=17
79=19
80=13
81=19
82=15
83=12
84=13
85=17
86=16
87=24
88=16
89=16
90=13
91=8
92=7
93=8
94=14
95=12
96=7
97=13
98=15
99=11
100=15
101=13
102=9
103=15
104=15
105=7
106=7
107=13
108=7
109=21
110=15
111=15
112=15
113=15
114=9
115=9
116=9
117=15
118=12
119=20
120=12
121=12
122=12
123=8
124=5
125=8
126=14
127=10
128=13
129=10
130=7
131=13
132=13
133=24
134=13
135=13
136=7
137=24
138=12
139=7
140=23
141=10
142=13
143=10
144=10
145=7
146=7
147=13
148=13
149=12
150=12
151=24
152=7
153=24
154=9
155=7
156=23
157=12
158=10
159=16
160=7
161=9
162=13
163=13
164=13
165=13
166=5
167=13
168=7
169=19
170=9
171=13
172=14
173=8
174=19
175=7
176=10
177=14
178=9
179=9
180=7
181=15
182=14
183=7
184=7
185=9
186=10
187=13
188=20
189=20
190=20
191=12
192=17
193=17
194=17
195=17
196=17
197=17
198=23
199=15
200=13
201=13
202=13
203=13
204=7
205=7
206=7
207=7
208=17
209=17
210=19
211=19
212=19
213=19
214=19
215=14
216=19
217=17
218=17
219=17
220=17
221=16
222=13
223=15
224=13
225=13
226=13
227=13
228=13
229=13
230=21
231=11
232=13
233=13
234=13
235=13
236=7
237=7
238=7
239=7
240=15
241=15
242=15
243=15
244=15
245=15
246=15
247=14
248=15
249=15
250=15
251=15
252=15
253=12
254=15
255=12
[alt]
0=10
1=10
2=10
3=10
4=10
5=10
6=10
7=10
8=10
9=10
10=10
11=10
12=10
13=10
14=10
15=10
16=10
17=10
18=10
19=10
20=10
21=10
22=10
23=10
24=10
25=10
26=10
27=10
28=10
29=10
30=10
31=10
32=7
33=12
34=7
35=12
36=13
37=10
38=11
39=13
40=7
41=12
42=11
43=9
44=11
45=8
46=13
47=11
48=10
49=11
50=7
51=7
52=7
53=7
54=9
55=7
56=7
57=9
58=9
59=7
60=8
61=7
62=12
63=8
64=13
65=17
66=17
67=12
68=17
69=10
70=12
71=15
72=12
73=13
74=11
75=13
76=11
77=7
78=7
79=13
80=13
81=13
82=13
83=19
84=19
85=13
86=19
87=14
88=13
89=12
90=17
91=12
92=17
93=16
94=9
95=15
96=7
97=13
98=13
99=11
100=13
101=5
102=9
103=11
104=9
105=13
106=10
107=13
108=10
109=7
110=7
111=13
112=11
113=11
114=11
115=15
116=15
117=11
118=15
119=14
120=7
121=11
122=15
123=11
124=15
125=12
126=6
127=7
@@ -0,0 +1,23 @@
local t = Def.ActorFrame{
Def.Quad{
InitCommand=cmd(zoomto,SCREEN_WIDTH,120;diffuse,color("#EEF4FFCC"));
};
Def.ActorFrame{
InitCommand=cmd(y,16);
LoadFont("_frutiger roman 24px")..{
Name="Header";
Text=THEME:GetString("ScreenGuideMain","Header");
InitCommand=cmd(x,-312;y,-50;halign,0;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44"));
};
Def.Quad{
InitCommand=cmd(zoomto,SCREEN_WIDTH*0.975,2;y,-32;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44");fadeleft,0.1;faderight,0.625);
};
LoadFont("_frutiger roman 24px")..{
Name="Header";
Text=THEME:GetString("ScreenGuideMain","Explanation");
InitCommand=cmd(x,-312;y,-24;align,0,0;diffuse,color("#111111FF");zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH)*1.45);
};
};
};
return t;
@@ -0,0 +1,40 @@
local gc = Var("GameCommand")
local itemName = gc:GetName()
local t = Def.ActorFrame{
-- focused frame
LoadActor( THEME:GetPathG("SectionMenu","ItemFocused") )..{
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0);
};
-- unfocused
LoadActor( THEME:GetPathG("SectionMenu","ItemUnfocused") )..{
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1);
};
LoadActor( THEME:GetPathG("_section", "Guide") )..{
InitCommand=cmd(x,-250;y,-24;Real;halign,0);
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
};
Def.ActorFrame{
LoadFont("_frutiger roman 24px")..{
Name="SectionName";
Text=THEME:GetString("ScreenGuideMain",itemName);
InitCommand=cmd(x,-250;y,-6;halign,0;diffuse,color("#222222FF"));
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5);
};
LoadFont("_frutiger roman 24px")..{
Name="SectionDesc";
Text=THEME:GetString("ScreenGuideMain",itemName.."Desc");
InitCommand=cmd(x,-248;y,10;align,0,0;diffuse,color("#222222FF");zoom,0.5);
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5);
};
};
};
return t;
@@ -0,0 +1,23 @@
local t = Def.ActorFrame{
Def.Quad{
InitCommand=cmd(zoomto,SCREEN_WIDTH,96;diffuse,color("#EEF4FFCC"));
};
Def.ActorFrame{
InitCommand=cmd(y,12);
LoadFont("_frutiger roman 24px")..{
Name="Header";
Text=THEME:GetString("ScreenReferenceMain","Header");
InitCommand=cmd(x,-312;y,-34;halign,0;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44"));
};
Def.Quad{
InitCommand=cmd(zoomto,SCREEN_WIDTH*0.975,2;y,-20;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44");fadeleft,0.1;faderight,0.625);
};
LoadFont("_frutiger roman 24px")..{
Name="Header";
Text=THEME:GetString("ScreenReferenceMain","Explanation");
InitCommand=cmd(x,-312;y,-14;align,0,0;diffuse,color("#111111FF");zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH)*1.45);
};
};
};
return t;
@@ -0,0 +1,40 @@
local gc = Var("GameCommand")
local itemName = gc:GetName()
local t = Def.ActorFrame{
-- focused frame
LoadActor( THEME:GetPathG("SectionMenu","ItemFocused") )..{
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0);
};
-- unfocused
LoadActor( THEME:GetPathG("SectionMenu","ItemUnfocused") )..{
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1);
};
LoadActor( THEME:GetPathG("_section", "Reference") )..{
InitCommand=cmd(x,-250;y,-24;Real;halign,0);
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
};
Def.ActorFrame{
LoadFont("_frutiger roman 24px")..{
Name="SectionName";
Text=THEME:GetString("ScreenReferenceMain",itemName);
InitCommand=cmd(x,-250;y,-6;halign,0;diffuse,color("#222222FF"));
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5);
};
LoadFont("_frutiger roman 24px")..{
Name="SectionDesc";
Text=THEME:GetString("ScreenReferenceMain",itemName.."Desc");
InitCommand=cmd(x,-248;y,10;align,0,0;diffuse,color("#222222FF");zoom,0.5);
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1);
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5);
};
};
};
return t;
@@ -0,0 +1,35 @@
-- This file is used to define how the items should look on ScreenTitleMenu.
-- The syntax is different because I took this code from moonlight. :)
--[[
Concepts used:
* THEME:GetString(screen,string)
* zoom
* shadowlength
* diffuse
* halign (0 = left, 0.5 = middle, 1 = right)
* strokecolor
* stoptweening
* accelerate
--]]
-- this is used as a shorthand for GameCommand.
local gc = Var("GameCommand")
local t = Def.ActorFrame{
LoadFont( "_frutiger roman" ) ..{
-- This line tries to find a corresponding line in the current language
-- ini file; If it doesn't, (and you haven't disabled error messages,)
-- then an error will pop up telling you where you need to add the
-- string.
Text=THEME:GetString( 'ScreenTitleMenu', gc:GetText() );
InitCommand=cmd(zoom,0.85;y,-1;shadowlength,0;diffuse,color("#000000");halign,1;strokecolor,color("0,0,0,0"););
DisabledCommand=cmd( diffuse,color("0.45,0,0,1") );
GainFocusCommand=cmd(stoptweening;accelerate,0.15;diffuse,color("#000000");strokecolor,color("0.85,0.9,1,0.75"););
LoseFocusCommand=cmd(stoptweening;accelerate,0.2;diffuse,color("#888888");strokecolor,color("0,0,0,0"););
OffFocusedCommand=cmd(sleep,1;decelerate,1;addx,-32;diffuse,color("#FF0000"););
OffUnfocusedCommand=cmd(sleep,0.2*gc:GetIndex();linear,0.5;addx,SCREEN_CENTER_X;);
};
};
return t;
@@ -0,0 +1,4 @@
-- temporary
local t = Def.ActorFrame{};
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

+43
View File
@@ -0,0 +1,43 @@
[Common]
WindowTitle=Hello World (and other sm-ssc theming examples)
[ScreenTitleMenu]
Guide=Guide
Reference=Reference
Tutorial=Tutorials
[ScreenGuideMain]
Header=Guide
Explanation=The Guide section is meant for beginners who may not know the ins and outs of the StepMania theming system. It is also useful for themers coming from earlier versions of StepMania, as some things have changed in sm-ssc.
Metrics=Metrics
MetricsDesc=Metrics and Languages (since they're similar).
Fonts=Fonts
FontsDesc=Dealing with fonts.
Graphics=Graphics
GraphicsDesc=The Graphics folder and what goes in there.
BGAnims=BGAnimations
BGAnimsDesc=Bee Gees animations
Sounds=Sounds
SoundsDesc=Music and sound effects.
Scripts=Scripts
ScriptsDesc=Lua scripting.
Other=Other
OtherDesc=Things like PreferredSort and ScreenHowToPlay/ScreenGameplaySyncMachine steps.
NoteSkins=NoteSkins
NoteSkinsDesc=NoteSkin creation involves knowing the theming system, somewhat.
Announcers=Announcers
AnnouncersDesc=The lost art of announcers, and how to “properly” make one.
Characters=Characters
CharactersDesc=Three-dimensional characters dancing in Gameplay. Modeling skills not included.
[ScreenReferenceMain]
Header=Reference
Explanation=This section contains reference material. It is meant for themers who already somewhat know what they are looking for.
Screens=Screens
ScreensDesc=A reference of all of sm-ssc's available screens.
Managers=Managers and Singletons
ManagersDesc=Various things that end in "Manager" (and sometimes not).
Classes=Classes
ClassesDesc=The classes that make up some of your favorite elements.
+6
View File
@@ -0,0 +1,6 @@
# [en] ThemeInfo is used to set the theme's name (as it appears in the options
# menu), as well as the author (which shows up on ScreenInit, assuming you use it
# in your theme).
[ThemeInfo]
DisplayName=Hello World
Author=Various Contributors
Binary file not shown.
Binary file not shown.
Binary file not shown.
+281
View File
@@ -0,0 +1,281 @@
# Hello World
# (and other sm-ssc theming examples)
# A theme by various contributors. Sign your comments if you wish.
# contributors:
# AJ Kelly of the Spinal Shark Collective (http://ssc.ajworld.net/)
################################################################################
#
[Common]
# InitialScreen defines the starting screen of the theme.
# It can either be a string or a Lua function that returns a string.
InitialScreen="ScreenTitleMenu"
################################################################################
# [base] Base Screens aren't concrete, but are referenced by concrete screens.
# Pretty much every screen derives from this one. Adding decorations to it is
# one of the first things a themer does.
[ScreenWithMenuElements]
ShowHeader=true
HeaderX=SCREEN_CENTER_X
HeaderY=SCREEN_TOP+24
HeaderOnCommand=draworder,100
ShowFooter=false
FooterX=SCREEN_CENTER_X
FooterY=SCREEN_BOTTOM-24
FooterOnCommand=draworder,100
ShowCreditDisplay=false
################################################################################
# [overlay] Overlay screens sit on top of everything.
################################################################################
# [core] Core Screens; these are the concrete implementations.
# ScreenTitleMenu is the first screen you see in this theme, thanks to the
# [Common] InitialScreen metric being changed.
[ScreenTitleMenu]
# PrevScreen is set to make sure nothing gets messed up.
PrevScreen="ScreenTitleMenu"
# These settings are used to disable the attract sequence:
IdleTimeoutSeconds=-1
IdleTimeoutScreen="ScreenTitleMenu"
# no header or footer here
ShowHeader=false
ShowFooter=false
# These settings define what options appear on the menu and what commands are
# run when they are selected:
ChoiceNames="1,2,3,4,5"
Choice1="text,Guide;screen,ScreenGuideMain"
Choice2="text,Reference;screen,ScreenReferenceMain"
Choice3="text,Tutorial;"
Choice4="text,Options;screen,ScreenOptionsService;"
Choice5="text,Exit;screen,ScreenExit;"
# These control the placement of the items, as well as the list:
ScrollerX=SCREEN_RIGHT-44
ScrollerY=SCREEN_CENTER_Y+32
ScrollerOnCommand=addx,SCREEN_CENTER_X;decelerate,0.8;addx,-SCREEN_CENTER_X
ScrollerTransform=function(self,offset,itemIndex,numItems) self:y(27*offset) end
[ScreenOptionsService]
# dummying out ScreenInit
NextScreen="ScreenTitleMenu"
PrevScreen="ScreenTitleMenu"
################################################################################
# [guide] The guide splits the elements of StepMania theming into different sections.
# It acts as an introduction to all of the concepts in modern StepMania theming.
# All guide pages aside from ScreenGuideMain MUST be prefixed with "Guide" in
# order to differentiate them from the core screens.
[ScreenGuideMain]
Class="ScreenSelectMaster"
Fallback="ScreenSelectMaster"
PrevScreen="ScreenTitleMenu"
AllowRepeatingInput=true
# modifying header position
HeaderY=SCREEN_TOP+72
ChoiceNames="Metrics,Fonts,Graphics,BGAnims,Sounds,Scripts,Other,NoteSkins,Announcers,Characters"
ChoiceMetrics="name,Metrics"
ChoiceFonts="name,Fonts"
ChoiceGraphics="name,Graphics"
ChoiceBGAnims="name,BGAnims"
ChoiceSounds="name,Sounds"
ChoiceScripts="name,Scripts"
ChoiceOther="name,Other"
ChoiceNoteSkins="name,NoteSkins"
ChoiceAnnouncers="name,Announcers"
ChoiceCharacters="name,Characters"
DefaultChoice="Metrics"
ShowScroller=true
LoopScroller=false
PerChoiceScrollElement=false
ScrollerX=SCREEN_CENTER_X
ScrollerY=SCREEN_CENTER_Y*0.775
ScrollerNumItemsToDraw=10
ScrollerSecondsPerItem=0.1
ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))+offset*64) end
# guide base screen (sets up things I don't want to retype a lot -aj) #
[GuideBase]
Class="ScreenSelectMaster"
Fallback="ScreenSelectMaster"
## Metrics
[GuideMetrics]
Fallback="GuideBase"
## Fonts
[GuideFonts]
Fallback="GuideBase"
## Graphics
[GuideGraphics]
Fallback="GuideBase"
## BGAnimations
[GuideBGA]
Fallback="GuideBase"
### Decorations (simpler)
### Overlay/Underlay (can be more complex)
## Sounds
[GuideSounds]
Fallback="GuideBase"
## Scripts
[GuideScripts]
Fallback="GuideBase"
## the Other folder
[GuideOther]
Fallback="GuideBase"
### HowToPlay steps
### PreferredSort
# And then there are the things that are related to theming:
## NoteSkins
[GuideNoteSkins]
Fallback="GuideBase"
## Announcers
[GuideAnnouncers]
Fallback="GuideBase"
## Characters
[GuideCharacters]
Fallback="GuideBase"
################################################################################
# [ref] The reference section contains a complete listing of commands and examples of how they work. #
# All reference pages aside from ScreenReferenceMain MUST be prefixed with "Reference"
# in order to differentiate them from the core screens.
[ScreenReferenceMain]
Class="ScreenSelectMaster"
Fallback="ScreenSelectMaster"
PrevScreen="ScreenTitleMenu"
AllowRepeatingInput=true
# modifying header position
HeaderY=SCREEN_TOP+72
ChoiceNames="Screens,Managers,Classes"
ChoiceScreens="name,Screens"
ChoiceManagers="name,Managers"
ChoiceClasses="name,Classes"
DefaultChoice="Screens"
ShowScroller=true
LoopScroller=false
PerChoiceScrollElement=false
ScrollerX=SCREEN_CENTER_X
ScrollerY=SCREEN_CENTER_Y+32
ScrollerNumItemsToDraw=10
ScrollerSecondsPerItem=0.1
ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))*64) end
# reference base screen (sets up things I don't want to retype a lot -aj) #
[ReferenceBase]
Class="ScreenSelectMaster"
Fallback="ScreenSelectMaster"
## Screens
[ReferenceScreens]
Fallback="ReferenceBase"
## Managers and other Singletons
[ReferenceManagers]
Fallback="ReferenceBase"
#@# STEPMANIA ROBOT MASTERS
### ANNOUNCER [man]
[ReferenceAnnouncerMan]
### CHARMAN
[ReferenceCharMan]
### FILEMAN
[ReferenceFileMan]
### GAMEMAN
[ReferenceGameMan]
### GAMESOUNDMAN
[ReferenceGameSoundMan]
### GAMESTATE
[ReferenceGameState]
### MEMCARDMAN
[ReferenceMemCardMan]
### MESSAGEMAN
[ReferenceMessageMan]
### NOTESKIN [man]
[ReferenceNoteskinMan]
### PREFSMAN
[ReferencePrefsMan]
### PROFILEMAN
[ReferenceProfileMan]
### SCREENMAN
[ReferenceScreenMan]
### SONGMAN
[ReferenceSongMan]
### STATSMAN
[ReferenceStatsMan]
### THEME [man]
[ReferenceThemeMan]
### UNLOCKMAN
[ReferenceUnlockMan]
## Classes
[ReferenceClasses]
Fallback="ReferenceBase"
### Actor
[ReferenceActor]
#### many sub-things
### ActorFrame
[ReferenceActorFrame]
### Banner
[ReferenceBanner]
### Song
[ReferenceSong]
### Steps
[ReferenceSteps]
### Course
[ReferenceCourse]
### Trail
[ReferenceTrail]
### and a ton of missing stuff
################################################################################
# [tutor] Tutorials are guides to implementing specific things #
[ScreenTutorialMain]
# todo: figure out what tutorials
+49
View File
@@ -0,0 +1,49 @@
Hello World
and other sm-ssc theming examples
--------------------------------------
A theme by various contributors.
--------------------------------------
This theme and its accompanying documentation are licensed under
the Creative Commons Attribution-Share Alike 3.0 license.
The license text can be viewed at:
http://creativecommons.org/licenses/by-sa/3.0/us/
================================================================================
Table of Contents
Introduction [intro]
Chapter List [chapt]
Guide [guide]
Metrics [g_met]
Fonts [g_fon]
Graphics [g_gfx]
BGAnims [g_bga]
Sounds [g_sfx]
Scripts [g_scr]
Other [g_oth]
NoteSkins [g_not]
Announcers [g_ann]
Characters [g_cha]
Reference [ref]
Screens [r_scr]
Managers [r_man]
Classes [r_cls]
Tutorials [tutor]
[others tba]
================================================================================
Introduction [intro]
Hello, and welcome to Hello World (and other sm-ssc theming examples).
This theme and accompanying documentation are provided for people new to
theming for StepMania, using sm-ssc as a base.
================================================================================
The Chapters [chapt]
The theme itself is split into three sections, encompassing various elements of
sm-ssc theming.
The Guide is a general run-through of how Themes are constructed (along with
NoteSkins, Announcers, and Characters)
+4
View File
@@ -787,6 +787,7 @@ CelShadeModels=Cel-shaded Models
Center Image=Center Image
Chaos=Chaos
Characters=Characters
Chart Style=Chart Style
Choose=Choose
Clear Bookkeeping Data=Clear Bookkeeping Data
Clear Machine Edits=Clear Machine Edits
@@ -1205,6 +1206,7 @@ Enter a new artist.=Enter a new artist.
Enter a new genre.=Enter a new genre.
Enter a new credit.=Enter a new credit.
Enter a new description.=Enter a new description.
Enter a new chart style.=Enter a new chart style (e.g. "Pad", "Keyboard").
Enter the author who made this step pattern.=Enter the author who made this step pattern.
Enter a new last beat hint.=Enter a new last beat hint.
Enter a new main title transliteration.=Enter a new main title transliteration.
@@ -1231,6 +1233,7 @@ Snap to=Snap to
Selection beat=Selection beat
Difficulty=Difficulty
Description=Description
Chart Style=Chart Style
Main title=Main title
Subtitle=Subtitle
Tap Steps=Tap Steps
@@ -1244,6 +1247,7 @@ Preview Start=Preview Start
Preview Length=Preview Length
Help=Help
Info=Info
Routine Player=Player
[ScreenEditMenu]
HeaderText=Edit Song/Steps
@@ -6,7 +6,6 @@ function InitGamePrefs()
{ "NotePosition", true },
{ "ComboOnRolls", false },
{ "ComboUnderField", true },
{ "AdjustSpeed", false },
};
for idx,pref in ipairs(Prefs) do
@@ -387,49 +386,6 @@ function GamePrefComboUnderField()
return t;
end
function GetDefaultArrowSpacing()
local rates = {
64, -- Default
80, -- Pro
128, -- New
};
return GetGamePrefB("AdjustSpeed") and rates[3] or rates[1];
end;
function GamePrefAdjustSpeed()
local t = {
Name = "GamePrefAdjustSpeed";
LayoutType = "ShowAllInRow";
SelectType = "SelectOne";
OneChoiceForAllPlayers = true;
ExportOnChange = false;
Choices = { 'Normal','Fast' };
LoadSelections = function(self, list, pn)
if ReadGamePrefFromFile("AdjustSpeed") ~= nil then
if GetGamePrefB("AdjustSpeed") then
list[2] = true;
else
list[1] = true;
end;
else
WriteGamePrefToFile("AdjustSpeed",true);
list[2] = true;
end;
end;
SaveSelections = function(self, list, pn)
local val;
if list[2] then
val = true;
else
val = false;
end;
WriteGamePrefToFile("AdjustSpeed",val);
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } );
THEME:ReloadMetrics();
end;
};
setmetatable( t, t );
return t;
end
function GamePrefAutoSetStyle()
local t = {
Name = "GamePrefAutoSetStyle";
+42 -11
View File
@@ -22,14 +22,16 @@ IsBaseTheme=1
# for 480p, it would be enlarged for bigger screens!
ScreenWidth=1
ScreenHeight=480
# Allows you to pick all available game modes for your gametype: for example,
# inserting enough coins for 1p would let you choose between solo, single
# and double before each game
# AutoSetStyle=true
AutoSetStyle=GetGamePrefB("AutoSetStyle")
# Default modifiers and noteskin.
DefaultModifiers="default;1.5x;"
DefaultNoteSkinName="default"
# Difficulties to show. Useful for custom games where you want to hide these.
DifficultiesToShow="beginner,easy,medium,hard,challenge"
# Same as above, but for courses.
@@ -37,19 +39,27 @@ CourseDifficultiesToShow="easy,medium,hard"
# Things to hide. You couldn't play cabinet anyways.
StepsTypesToHide="lights-cabinet"
#~ StepsTypesToHide="dance-couple,dance-solo,pump-halfdouble,lights-cabinet"
# Useless?
# The number of entries before "Various" is shown on the BPMDisplay, etc.
MaxCourseEntriesBeforeShowVarious=10
# Legacy metric: The first screen that shows up when you take forever to press
# start.
# The screen that appears when pressing the operator button.
OperatorMenuScreen="ScreenOptionsService"
# The first screen in the attract cycle.
FirstAttractScreen="ScreenDemonstration"
# First screen that pops up when you start the game. ScreenInit in particular
# shows the theme information before going to the title screen.
InitialScreen="ScreenInit"
# Music selection screen used after downloading files.
SelectMusicScreen="ScreenSelectMusic"
# Screens that show over everything else. you shouldn't worry bout this, since
# it wont matter much.
# Screens that show over everything else.
# Only mess with this if you know what you're doing.
OverlayScreens="ScreenSystemLayer,ScreenSyncOverlay,ScreenStatsOverlay,ScreenDebugOverlay,ScreenConsoleOverlay,ScreenInstallOverlay"
# Legacy metric: Percentage Scoring shows this many decimals ( 00.00% ).
PercentScoreDecimalPlaces=2
@@ -126,7 +136,7 @@ FrameWidthEffectsMinMultiplier=0.5
FrameWidthEffectsMaxMultiplier=1.2
FrameWidthLockEffectsToOverlapping=false
FrameWidthLockEffectsTweenPixels=25
ArrowSpacing=128
ArrowSpacing=64
DrawHiddenNotesAfterReceptor=true
BlinkModFrequency=0.3333
BoostModMinClamp=-400
@@ -218,6 +228,8 @@ QuestionMarksText="???"
RandomText="!!!"
# xxx: localize me -aj
VariousText="000"
FormatString="%03.0f"
[CodeDetector]
# Codes on the MusicWheel that change stuff!
PrevSteps1="Up,Up"
@@ -512,11 +524,9 @@ DisablePremiumInEventMode=false
# Polar graph that shows difficulty stuff in depth
# how thick the line is
EdgeWidth=2
# ?
LabelOnDelay=0
# How visible the middle is
CenterAlpha=0.25
# what to do with each players part of the graph
# what to do with each player's part of the graph
RadarValueMapP1OnCommand=diffuse,PlayerColor(PLAYER_1)
RadarValueMapP2OnCommand=diffuse,PlayerColor(PLAYER_2)
@@ -3070,7 +3080,6 @@ Class="ScreenGameplayNormal"
NextScreen=Branch.AfterGameplay()
PrevScreen=Branch.BackOutOfStageInformation()
#
UseAlternativeInput=false
ShowLifeMeterForDisabledPlayers=false
StopCourseEarly=false
ShowEvaluationOnFail=true
@@ -3602,6 +3611,28 @@ PlayRecordHelpX=SCREEN_LEFT+20
PlayRecordHelpY=SCREEN_BOTTOM-20
PlayRecordHelpOnCommand=halign,0;valign,0;shadowlength,1
CurrentBeatFormat="%s:\n %.5f\n"
CurrentSecondFormat="%s:\n %.5f\n"
SnapToFormat="%s:\n %s\n"
SelectionBeatBeginFormat="%s:\n %.5f"
SelectionBeatUnfinishedFormat=" ...\n"
SelectionBeatEndFormat="-%.5f\n"
DifficultyFormat="%s:\n %s\n"
RoutinePlayerFormat="%s:\n %d\n"
DescriptionFormat="%s:\n %s\n"
ChartStyleFormat="%s:\n %s\n"
MainTitleFormat="%s:\n %s\n"
SubtitleFormat="%s:\n %s\n"
NumStepsFormat="%s: %d\n"
NumJumpsFormat="%s: %d\n"
NumHoldsFormat="%s: %d\n"
NumMinesFormat="%s: %d\n"
NumHandsFormat="%s: %d\n"
NumRollsFormat="%s: %d\n"
Beat0OffsetFormat="%s:\n %.5f secs\n"
PreviewStartFormat="%s:\n %.5f secs\n"
PreviewLengthFormat="%s:\n %.5f secs\n"
[ScreenPracticeMenu]
Fallback="ScreenEditMenu"
Class="ScreenEditMenu"
-2
View File
@@ -64,7 +64,6 @@ UserPrefSpecialScoringMode=Special Scoring Mode
GamePrefNotePosition=Note Positions
GamePrefComboOnRolls=Rolls Increment Combo
GamePrefComboUnderField=Combo Under Field
GamePrefAdjustSpeed=Adjust Speed
UserPrefGameplayShowScore=Show Score
UserPrefGameplayShowStepsDisplay=Show Steps
@@ -76,7 +75,6 @@ GamePrefAutoSetStyle=Allow the game to list all one player and two player modes
GamePrefNotePosition=Determines where the arrow receptors are placed in gameplay.
GamePrefComboOnRolls=Choose if rolls should increment the combo or not.
GamePrefComboUnderField=Determine if the combo should display under the notes or not.
GamePrefAdjustSpeed=Adjust the default scale for speed modifiers. Normal corresponds to the original StepMania 3.9 speed, Fast is twice that rate.
UserPrefGameplayShowScore=Show or Hide the score display in gameplay.
UserPrefSpecialScoringMode=Select the scoring mode to be used if the Special scoring type is selected.
-48
View File
@@ -51,9 +51,6 @@ function InitUserPrefs()
if GetUserPrefB("UserPrefComboUnderField") == nil then
SetUserPref("UserPrefComboUnderField", true);
end;
if GetUserPrefB("UserPrefAdjustSpeed") == nil then
SetUserPref("UserPrefAdjustSpeed", false);
end;
--[[ if GetUserPref("ProTimingP1") == nil then
SetUserPref("ProTimingP1", false);
end;
@@ -500,49 +497,4 @@ function UserPrefComboUnderField()
setmetatable( t, t );
return t;
end
function GetDefaultArrowSpacing()
local rates = {
64, -- Default
80, -- Pro
128, -- New
};
return GetUserPrefB("UserPrefAdjustSpeed") and rates[3] or rates[1];
end;
function UserPrefAdjustSpeed()
local t = {
Name = "UserPrefAdjustSpeed";
LayoutType = "ShowAllInRow";
SelectType = "SelectOne";
OneChoiceForAllPlayers = true;
ExportOnChange = false;
Choices = { 'Slow','Fast' };
LoadSelections = function(self, list, pn)
if ReadPrefFromFile("UserPrefAdjustSpeed") ~= nil then
if GetUserPrefB("UserPrefAdjustSpeed") then
list[2] = true;
else
list[1] = true;
end;
else
WritePrefToFile("UserPrefAdjustSpeed",true);
list[2] = true;
end;
end;
SaveSelections = function(self, list, pn)
local val;
if list[2] then
val = true;
else
val = false;
end;
WritePrefToFile("UserPrefAdjustSpeed",val);
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } );
THEME:ReloadMetrics();
end;
};
setmetatable( t, t );
return t;
end
--[[ end option rows ]]
+1 -5
View File
@@ -321,9 +321,6 @@ AveragePulseCommand=finishtweening;diffusealpha,1;zoom,0.75*1.25;decelerate,0.05
# ReceptorArrowsYReverse=GetTapPosition('Reverse')
# RollBodyIncrementsCombo=GetUserPrefB("UserPrefComboOnRolls")
[ArrowEffects]
ArrowSpacing=GetDefaultArrowSpacing()
[ScoreDisplayNormal]
FrameX=
FrameY=
@@ -827,7 +824,7 @@ ItemsLongRowSharedX=SCREEN_CENTER_X
[ScreenOptionsTheme]
Fallback="ScreenOptionsServiceChild"
LineNames="gNotePos,gAuto,gScore,gSScore,gSDisp,gOpts,gLongFail,gComboUnderField,FlashyCombo,AdjustSpeed"
LineNames="gNotePos,gAuto,gScore,gSScore,gSDisp,gOpts,gLongFail,gComboUnderField,FlashyCombo"
LinegNotePos="lua,GamePrefNotePosition()"
LinegScore="lua,UserPrefGameplayShowScore()"
LinegSScore="lua,UserPrefSpecialScoringMode()"
@@ -837,7 +834,6 @@ LinegAuto="lua,GamePrefAutoSetStyle()"
LinegLongFail="lua,UserPrefLongFail()"
LinegComboUnderField="lua,GamePrefComboUnderField()"
LineFlashyCombo="lua,UserPrefFlashyCombo()"
LineAdjustSpeed="lua,GamePrefAdjustSpeed()"
[ScreenOptionsSystemDirection]
LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,15,16,LF,17,18,19,20,21,22"
LineLF="lua,UserPrefLongFail()"
+14 -6
View File
@@ -1,29 +1,37 @@
/* ActiveAttackList - Shows currently active player modifiers during gameplay. */
#ifndef ACTIVE_ATTACK_LIST_H
#define ACTIVE_ATTACK_LIST_H
#include "BitmapText.h"
class PlayerState;
/** @brief Shows currently active Player modifiers during gameplay. */
class ActiveAttackList : public BitmapText
{
public:
/** @brief The constructor that does nothing. */
ActiveAttackList();
/**
* @brief Set up the PlayerState.
* @param pPlayerState the PlayerState involved with the attacks. */
void Init( const PlayerState* pPlayerState );
/**
* @brief Look into updating the list.
* @param fDelta the present time. */
virtual void Update( float fDelta );
/** @brief Refresh the list of attacks. */
void Refresh();
protected:
/** @brief the PlayerState of the Player who is dealing with the attack list. */
const PlayerState* m_pPlayerState;
};
#endif
/*
* (c) 2004 Chris Danford
/**
* @file
* @author Chris Danford (c) 2004
* @section LICENSE
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
+6 -2
View File
@@ -18,7 +18,10 @@
static Preference<bool> g_bShowMasks("ShowMasks", false);
/* It's useful to be able to construct a basic Actor in XML, in
/**
* @brief Set up a hidden Actor that won't be drawn.
*
* It's useful to be able to construct a basic Actor in XML, in
* order to simply delay a Transition, or receive and send broadcasts.
* Since these actors will never draw, set them hidden by default. */
class HiddenActor: public Actor
@@ -27,7 +30,7 @@ public:
HiddenActor() { SetVisible(false); }
virtual HiddenActor *Copy() const;
};
REGISTER_ACTOR_CLASS_WITH_NAME( HiddenActor, Actor )
REGISTER_ACTOR_CLASS_WITH_NAME( HiddenActor, Actor );
float Actor::g_fCurrentBGMTime = 0, Actor::g_fCurrentBGMBeat;
float Actor::g_fCurrentBGMTimeNoOffset = 0, Actor::g_fCurrentBGMBeatNoOffset = 0;
@@ -1307,6 +1310,7 @@ Actor::TweenInfo &Actor::TweenInfo::operator=( const TweenInfo &rhs )
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the Actor. */
class LunaActor : public Luna<Actor>
{
public:
+84 -32
View File
@@ -1,5 +1,3 @@
/* Actor - Base class for all objects that appear on the screen. */
#ifndef ACTOR_H
#define ACTOR_H
@@ -16,47 +14,60 @@ class LuaClass;
typedef AutoPtrCopyOnWrite<LuaReference> apActorCommands;
// background
/** @brief The background layer. */
#define DRAW_ORDER_BEFORE_EVERYTHING -200
// underlay
/** @brief The underlay layer. */
#define DRAW_ORDER_UNDERLAY -100
// decorations
#define DRAW_ORDER_DECORATIONS 0
// normal screen elements go here
/** @brief The decorations layer. */
#define DRAW_ORDER_DECORATIONS 0
/** @brief The overlay layer.
*
* Normal screen elements go here. */
#define DRAW_ORDER_OVERLAY +100
/** @brief The transitions layer. */
#define DRAW_ORDER_TRANSITIONS +200
/** @brief The over everything layer. */
#define DRAW_ORDER_AFTER_EVERYTHING +300
/** @brief The different horizontal alignments. */
enum HorizAlign
{
HorizAlign_Left,
HorizAlign_Center,
HorizAlign_Right,
NUM_HorizAlign,
HorizAlign_Left, /**< Align to the left. */
HorizAlign_Center, /**< Align to the center. */
HorizAlign_Right, /**< Align to the right. */
NUM_HorizAlign, /**< The number of horizontal alignments. */
HorizAlign_Invalid
};
LuaDeclareType( HorizAlign );
/** @brief The different vertical alignments. */
enum VertAlign
{
VertAlign_Top,
VertAlign_Middle,
VertAlign_Bottom,
NUM_VertAlign,
VertAlign_Top, /**< Align to the top. */
VertAlign_Middle, /**< Align to the middle. */
VertAlign_Bottom, /**< Align to the bottom. */
NUM_VertAlign, /**< The number of vertical alignments. */
VertAlign_Invalid
};
LuaDeclareType( VertAlign );
/** @brief The left horizontal alignment constant. */
#define align_left 0.0f
/** @brief The center horizontal alignment constant. */
#define align_center 0.5f
/** @brief The right horizontal alignment constant. */
#define align_right 1.0f
/** @brief The top vertical alignment constant. */
#define align_top 0.0f
/** @brief The middle vertical alignment constant. */
#define align_middle 0.5f
/** @brief The bottom vertical alignment constant. */
#define align_bottom 1.0f
/** @brief Base class for all objects that appear on the screen. */
class Actor : public MessageSubscriber
{
public:
/** @brief Set up the Actor with its initial settings. */
Actor();
Actor( const Actor &cpy );
virtual ~Actor();
@@ -67,8 +78,11 @@ public:
static void SetBGMTime( float fTime, float fBeat, float fTimeNoOffset, float fBeatNoOffset );
static void SetBGMLight( int iLightNumber, float fCabinetLights );
// todo: split out into diffuse effects and translation effects, or
// create an effect stack instead. -aj
/**
* @brief The list of the different effects.
*
* todo: split out into diffuse effects and translation effects, or
* create an effect stack instead. -aj */
enum Effect { no_effect,
// diffuse effects
diffuse_blink, diffuse_shift, diffuse_ramp,
@@ -99,13 +113,22 @@ public:
RageVector4 quat;
RageVector3 scale;
float fSkewX, fSkewY;
RectF crop; // 0 = no cropping, 1 = fully cropped
RectF fade; // 0 = no fade
/**
* @brief The amount of cropping involved.
*
* If 0, there is no cropping. If 1, it's fully cropped. */
RectF crop;
/**
* @brief The amount of fading involved.
*
* If 0, there is no fade. If 1, it's fully faded. */
RectF fade;
RageColor diffuse[4];
RageColor glow;
float aux;
};
/** @brief Various values an Actor's effect can be tied to. */
enum EffectClock
{
CLOCK_TIMER,
@@ -134,9 +157,21 @@ public:
virtual void UpdateInternal( float fDeltaTime ); // override this
void UpdateTweening( float fDeltaTime );
/**
* @brief Retrieve the Actor's name.
* @return the Actor's name. */
const RString &GetName() const { return m_sName; }
/**
* @brief Set the Actor's name to a new one.
* @param sName the new name for the Actor. */
virtual void SetName( const RString &sName ) { m_sName = sName; }
/**
* @brief Give this Actor a new parent.
* @param pParent the new parent Actor. */
void SetParent( Actor *pParent );
/**
* @brief Retrieve the Actor's parent.
* @return the Actor's parent. */
Actor *GetParent() { return m_pParent; }
RString GetLineage() const;
@@ -162,7 +197,7 @@ public:
void SetWidth( float width ) { m_size.x = width; }
void SetHeight( float height ) { m_size.y = height; }
// Base
// Base values
float GetBaseZoomX() const { return m_baseScale.x; }
void SetBaseZoomX( float zoom ) { m_baseScale.x = zoom; }
float GetBaseZoomY() const { return m_baseScale.y; }
@@ -176,7 +211,6 @@ public:
void SetBaseRotation( const RageVector3 &rot ) { m_baseRotation = rot; }
virtual void SetBaseAlpha( float fAlpha ) { m_fBaseAlpha = fAlpha; }
float GetZoom() const { return DestTweenState().scale.x; } // not accurate in some cases
float GetZoomX() const { return DestTweenState().scale.x; }
float GetZoomY() const { return DestTweenState().scale.y; }
@@ -417,9 +451,12 @@ protected:
TweenInfo &operator=( const TweenInfo &rhs );
ITween *m_pTween;
float m_fTimeLeftInTween; // how far into the tween are we?
float m_fTweenTime; // seconds between Start and End positions/zooms
RString m_sCommandName; // command to execute when this TweenState goes into effect
/** @brief How far into the tween are we? */
float m_fTimeLeftInTween;
/** @brief The number of seconds between Start and End positions/zooms. */
float m_fTweenTime;
/** @brief The command to execute when this TweenState goes into effect. */
RString m_sCommandName;
};
RageVector3 m_baseRotation;
@@ -436,14 +473,20 @@ protected:
};
vector<TweenStateAndInfo *> m_Tweens;
// Temporary variables that are filled just before drawing
/** @brief Temporary variables that are filled just before drawing */
TweenState *m_pTempState;
bool m_bFirstUpdate;
// Stuff for alignment
float m_fHorizAlign; /* 0.0 left 0.5 center 1.0 right */
float m_fVertAlign; /* 0.0 top 0.5 center 1.0 bottom */
/** @brief The particular horizontal alignment.
*
* Use the defined constant values for best effect. */
float m_fHorizAlign;
/** @brief The particular vertical alignment.
*
* Use the defined constant values for best effect. */
float m_fVertAlign;
// Stuff for effects
@@ -480,7 +523,10 @@ protected:
float m_fShadowLengthX;
float m_fShadowLengthY;
RageColor m_ShadowColor;
int m_iDrawOrder; // lower first
/** @brief The draw order priority.
*
* The lower this number is, the sooner it is drawn. */
int m_iDrawOrder;
// render states
BlendMode m_BlendMode;
@@ -490,7 +536,11 @@ protected:
bool m_bTextureFiltering;
bool m_bClearZBuffer;
bool m_bZWrite;
float m_fZBias; // 0 = no bias; 1 = full bias
/**
* @brief The amount of bias.
*
* If 0, there is no bias. If 1, there is a full bias. */
float m_fZBias;
// global state
static float g_fCurrentBGMTime, g_fCurrentBGMBeat;
@@ -503,8 +553,10 @@ private:
#endif
/*
* (c) 2001-2004 Chris Danford
/**
* @file
* @author Chris Danford (c) 2001-2004
* @section LICENSE
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
+3 -2
View File
@@ -16,8 +16,8 @@
* children. The name "ActorFrame" is widely used in Lua, so we'll have
* that string instead create an ActorFrameAutoDeleteChildren object.
*/
//REGISTER_ACTOR_CLASS( ActorFrame )
REGISTER_ACTOR_CLASS_WITH_NAME( ActorFrameAutoDeleteChildren, ActorFrame )
//REGISTER_ACTOR_CLASS( ActorFrame );
REGISTER_ACTOR_CLASS_WITH_NAME( ActorFrameAutoDeleteChildren, ActorFrame );
ActorFrame *ActorFrame::Copy() const { return new ActorFrame(*this); }
@@ -451,6 +451,7 @@ void ActorFrame::SetDrawByZPosition( bool b )
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the ActorFrame. */
class LunaActorFrame : public Luna<ActorFrame>
{
public:
+21 -5
View File
@@ -1,4 +1,4 @@
/* ActorFrame - A container for other actors. */
/** @brief ActorFrame - A container for other actors. */
#ifndef ACTORFRAME_H
#define ACTORFRAME_H
@@ -12,6 +12,7 @@ public:
ActorFrame( const ActorFrame &cpy );
virtual ~ActorFrame();
/** @brief Set up the initial state. */
virtual void InitState();
void LoadFromNode( const XNode* pNode );
virtual ActorFrame *Copy() const;
@@ -23,8 +24,17 @@ public:
vector<Actor*> GetChildren() { return m_SubActors; }
int GetNumChildren() const { return m_SubActors.size(); }
/** @brief Remove all of the children from the frame. */
void RemoveAllChildren();
/**
* @brief Move a particular actor to the tail.
* @param pActor the actor to go to the tail.
*/
void MoveToTail( Actor* pActor );
/**
* @brief Move a particular actor to the head.
* @param pActor the actor to go to the head.
*/
void MoveToHead( Actor* pActor );
void SortByDrawOrder();
void SetDrawByZPosition( bool b );
@@ -73,7 +83,7 @@ public:
virtual void SetPropagateCommands( bool b );
// Amount of time until all tweens (and all children's tweens) have stopped:
/** @brief Amount of time until all tweens (and all children's tweens) have stopped: */
virtual float GetTweenTimeLeft() const;
virtual void HandleMessage( const Message &msg );
@@ -95,7 +105,11 @@ protected:
float m_fFOV; // -1 = no change
float m_fVanishX;
float m_fVanishY;
bool m_bOverrideLighting; // if true, set lighting to m_bLighting
/**
* @brief A flad to see if an override for the lighting is needed.
*
* If true, set lightning to m_bLightning. */
bool m_bOverrideLighting;
bool m_bLighting;
// lighting variables
@@ -115,8 +129,10 @@ public:
#endif
/*
* (c) 2001-2004 Chris Danford
/**
* @file
* @author Chris Danford (c) 2001-2004
* @section LICENSE
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
+2 -1
View File
@@ -4,7 +4,7 @@
#include "RageTextureManager.h"
#include "ActorUtil.h"
REGISTER_ACTOR_CLASS_WITH_NAME( ActorFrameTextureAutoDeleteChildren, ActorFrameTexture )
REGISTER_ACTOR_CLASS_WITH_NAME( ActorFrameTextureAutoDeleteChildren, ActorFrameTexture );
ActorFrameTexture *ActorFrameTexture::Copy() const { return new ActorFrameTexture(*this); }
ActorFrameTexture::ActorFrameTexture()
@@ -67,6 +67,7 @@ void ActorFrameTexture::DrawPrimitives()
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the ActorFrameTexture. */
class LunaActorFrameTexture : public Luna<ActorFrameTexture>
{
public:
+15 -6
View File
@@ -12,11 +12,18 @@ public:
virtual ~ActorFrameTexture();
virtual ActorFrameTexture *Copy() const;
/* Set the texture name, which can be used with RageTextureManager (and users,
* eg. Sprite) to load the texture. If no name is supplied, a unique one will
* be generated. In that case, the only way to access the texture is via
* GetTextureName. */
/**
* @brief Set the texture name.
*
* This can be used with RageTextureManager (and users, eg. Sprite)
* to load the texture. If no name is supplied, a unique one will
* be generated. In that case, the only way to access the texture
* is via GetTextureName.
* @param sName the new name. */
void SetTextureName( const RString &sName ) { m_sTextureName = sName; }
/**
* @brief Retrieve the texture name.
* @return the texture name. */
RString GetTextureName() const { return m_sTextureName; }
RageTextureRenderTarget *GetTexture() { return m_pRenderTarget; }
@@ -52,8 +59,10 @@ public:
#endif
/*
* (c) 2006 Glenn Maynard
/**
* @file
* @author Glenn Maynard (c) 2006
* @section LICENSE
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
+2 -1
View File
@@ -13,7 +13,7 @@
#include "LuaBinding.h"
#include "LuaManager.h"
REGISTER_ACTOR_CLASS( ActorMultiTexture )
REGISTER_ACTOR_CLASS( ActorMultiTexture );
ActorMultiTexture::ActorMultiTexture()
@@ -134,6 +134,7 @@ bool ActorMultiTexture::EarlyAbortDraw() const
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the ActorMultiTexture. */
class LunaActorMultiTexture: public Luna<ActorMultiTexture>
{
public:
+5 -3
View File
@@ -1,4 +1,4 @@
/* ActorMultiTexture - A texture created from multiple textures. */
/** @brief ActorMultiTexture - A texture created from multiple textures. */
#ifndef ACTOR_MULTI_TEXTURE_H
#define ACTOR_MULTI_TEXTURE_H
@@ -45,8 +45,10 @@ private:
#endif
/*
* (c) 2001-2004 Chris Danford
/**
* @file
* @author Chris Danford (c) 2001-2004
* @section LICENSE
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
+2 -1
View File
@@ -2,7 +2,7 @@
#include "ActorProxy.h"
#include "ActorUtil.h"
REGISTER_ACTOR_CLASS( ActorProxy )
REGISTER_ACTOR_CLASS( ActorProxy );
ActorProxy::ActorProxy()
{
@@ -33,6 +33,7 @@ void ActorProxy::LoadFromNode( const XNode* pNode )
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the ActorProxy. */
class LunaActorProxy: public Luna<ActorProxy>
{
public:
+1 -3
View File
@@ -1,12 +1,10 @@
/* ActorProxy - renders another actor. */
#ifndef ACTOR_PROXY_H
#define ACTOR_PROXY_H
#include "Actor.h"
struct lua_State;
/** @brief Rendrs another actor. */
class ActorProxy: public Actor
{
public:

Some files were not shown because too many files have changed in this diff Show More