sm-ssc v1.0 Public Beta 1 docs

This commit is contained in:
AJ Kelly
2010-03-01 00:46:49 -06:00
parent 02c7037721
commit 6014c22be6
6 changed files with 274 additions and 38 deletions
+52
View File
@@ -9,6 +9,58 @@ Not all changes are documented, for various reasons.
supported but exist anyways.)
_____________________________________________________________________________
sm-ssc v1.0 Public Beta 1 | 20100228
------------------------------------
This represents the first public version of sm-ssc. The previously publicly
available release was not the official public beta version, but was released
for more people to get their hands on it for testing.
sm-ssc v1.0 Public Beta 1 has 111 Lua bindings that you currently can't find in
StepMania 4 alpha versions as of 2010/02/28. That doesn't include the various
helper functions available to you in scripts via the fallback theme, either. :)
20100228
--------
* Applied stutter fix hack by Henke37
(src: http://www.pasteall.org/11353/diff)
* [ScreenPackages] Some strings that were once hardcoded are now not:
"VisitURL", "DL @ %d KB/s", "Failed.", "Invalid URL.", "File Already Exists",
"Failed to connect.", "Header Sent.", "Waiting for header."
* Allow multiple random modifiers to be listed in RandomModifiers.txt.
The random number generation for RandomModifiers has also changed.
20100227
--------
* [GameState] add GetCurMusicSeconds binding. Values can be negative,
so watch out when using.
20100226
--------
* rework some bindings to match SM4:
GetBPMAtBeat, GetBeatFromElapsedTime, and GetElapsedTimeFromBeat have
moved from Song to TimingData.
If you were using these against the Song, they will fail in your theme.
* [TimingData] GetStops only returns Stops now (and not Delays).
If you want Delays, there is a new GetDelays() binding, which works
like GetStops.
20100225
--------
* Added ToastyDropped message. [Midiman]
20100223
--------
* [Player] CheckpointsFlashOnHold metric added. Fixes issue 16.
20100222
--------
* [CodeDetector] NextBannerGroup and NextBannerGroup2 were previously used
for MusicBannerWheel, which is currently not used in sm-ssc. These codes
have been changed to NextGroup and PrevGroup. The codes switch between
groups as you would expect.
20100219
--------
* sm4svn r28313: don't filter NoteSkins at a PrefsManager/NoteSkinManager level.
+36 -13
View File
@@ -8,6 +8,7 @@
<Function name='Basename'/>
<Function name='BoostColor'/>
<Function name='Brightness'/>
<Function name='CheckpointsTapsSeparateJudgment'/>
<Function name='Color'/>
<Function name='ColorDarkTone'/>
<Function name='ColorLightTone'/>
@@ -16,6 +17,7 @@
<Function name='ColorToHex'/>
<Function name='ComboContinue'/>
<Function name='ComboMaintain'/>
<Function name='ComboPerRow'/>
<Function name='ComboTransformCommand'/>
<Function name='ConnectToServer'/>
<Function name='CourseDifficultyToLocalizedString'/>
@@ -27,6 +29,7 @@
<Function name='DayOfMonth'/>
<Function name='DayOfYear'/>
<Function name='DeepCopy'/>
<Function name='FailCombo'/>
<Function name='FindSelection'/>
<Function name='FindValue'/>
<Function name='FormatNumSongsPlayed'/>
@@ -55,9 +58,16 @@
<Function name='HSVA'/>
<Function name='HSVToColor'/>
<Function name='HSVToHex'/>
<Function name='HitCombo'/>
<Function name='HoldHeadStep'/>
<Function name='HoldJudgmentFail'/>
<Function name='HoldJudgmentPass'/>
<Function name='HoldTiming'/>
<Function name='Hour'/>
<Function name='Hue'/>
<Function name='ImmediateHoldLetGo'/>
<Function name='InitUserPrefs'/>
<Function name='InitialHoldLife'/>
<Function name='IsHighDefinition'/>
<Function name='IsNetConnected'/>
<Function name='IsNetSMOnline'/>
@@ -75,7 +85,9 @@
<Function name='LoadFont'/>
<Function name='LoadSongBackground'/>
<Function name='LocalizeOptionItem'/>
<Function name='MaxHoldLife'/>
<Function name='Minute'/>
<Function name='MissCombo'/>
<Function name='MonthOfYear'/>
<Function name='MonthToLocalizedString'/>
<Function name='MonthToString'/>
@@ -96,8 +108,10 @@
<Function name='ReadPrefFromFile'/>
<Function name='ReportStyle'/>
<Function name='ResolveRelativePath'/>
<Function name='RollBodyIncrementsCombo'/>
<Function name='SMOnlineScreen'/>
<Function name='Saturation'/>
<Function name='ScoreMissedHoldsAndRolls'/>
<Function name='Second'/>
<Function name='SecondsToHHMMSS'/>
<Function name='SecondsToMMSS'/>
@@ -132,6 +146,7 @@
<Function name='UserPrefAutoSetStyle'/>
<Function name='UserPrefGameplayShowScore'/>
<Function name='UserPrefGameplayShowStepsDisplay'/>
<Function name='UserPrefLongFail'/>
<Function name='UserPrefShowLotsaOptions'/>
<Function name='Var'/>
<Function name='VersionCheck'/>
@@ -270,6 +285,7 @@
<Function name='diffuseupperleft'/>
<Function name='diffuseupperright'/>
<Function name='draworder'/>
<Function name='drop'/>
<Function name='ease'/>
<Function name='effectclock'/>
<Function name='effectcolor1'/>
@@ -577,6 +593,7 @@
<Function name='GetCoins'/>
<Function name='GetCoinsNeededToJoin'/>
<Function name='GetCourseSongIndex'/>
<Function name='GetCurMusicSeconds'/>
<Function name='GetCurrentCourse'/>
<Function name='GetCurrentGame'/>
<Function name='GetCurrentSong'/>
@@ -717,6 +734,9 @@
<Class name='MessageManager'>
<Function name='Broadcast'/>
</Class>
<Class base='ActorFrame' name='MeterDisplay'>
<Function name='SetStreamWidth'/>
</Class>
<Class base='ActorFrame' name='ModIconRow'>
<Function name='Load'/>
</Class>
@@ -832,6 +852,7 @@
<Function name='GetTotalStepsWithTopGrade'/>
<Function name='GetTotalTapsAndHolds'/>
<Function name='GetTotalTrailsWithTopGrade'/>
<Function name='GetUserData'/>
<Function name='GetWeightPounds'/>
<Function name='HasPassedAnyStepsInSong'/>
<Function name='IsCodeUnlocked'/>
@@ -969,16 +990,13 @@
<Class base='ScreenWithMenuElements' name='ScreenWithMenuElementsSimple'/>
<Class name='Song'>
<Function name='GetAllSteps'/>
<Function name='GetBPMAtBeat'/>
<Function name='GetBackgroundPath'/>
<Function name='GetBannerPath'/>
<Function name='GetBeatFromElapsedTime'/>
<Function name='GetCDTitlePath'/>
<Function name='GetDisplayArtist'/>
<Function name='GetDisplayFullTitle'/>
<Function name='GetDisplayMainTitle'/>
<Function name='GetDisplaySubTitle'/>
<Function name='GetElapsedTimeFromBeat'/>
<Function name='GetFirstBeat'/>
<Function name='GetGenre'/>
<Function name='GetGroupName'/>
@@ -1132,8 +1150,12 @@
</Class>
<Class name='TimingData'>
<Function name='GetActualBPM'/>
<Function name='GetBPMAtBeat'/>
<Function name='GetBPMs'/>
<Function name='GetBPMsAndTimes'/>
<Function name='GetBeatFromElapsedTime'/>
<Function name='GetDelays'/>
<Function name='GetElapsedTimeFromBeat'/>
<Function name='GetStops'/>
<Function name='HasBPMChanges'/>
<Function name='HasStops'/>
@@ -1259,14 +1281,15 @@
<Enum name='BlendMode'>
<EnumValue name='&apos;BlendMode_Normal&apos;' value='0'/>
<EnumValue name='&apos;BlendMode_Add&apos;' value='1'/>
<EnumValue name='&apos;BlendMode_Modulate&apos;' value='2'/>
<EnumValue name='&apos;BlendMode_CopySrc&apos;' value='3'/>
<EnumValue name='&apos;BlendMode_AlphaMask&apos;' value='4'/>
<EnumValue name='&apos;BlendMode_AlphaKnockOut&apos;' value='5'/>
<EnumValue name='&apos;BlendMode_AlphaMultiply&apos;' value='6'/>
<EnumValue name='&apos;BlendMode_WeightedMultiply&apos;' value='7'/>
<EnumValue name='&apos;BlendMode_InvertDest&apos;' value='8'/>
<EnumValue name='&apos;BlendMode_NoEffect&apos;' value='9'/>
<EnumValue name='&apos;BlendMode_Subtract&apos;' value='2'/>
<EnumValue name='&apos;BlendMode_Modulate&apos;' value='3'/>
<EnumValue name='&apos;BlendMode_CopySrc&apos;' value='4'/>
<EnumValue name='&apos;BlendMode_AlphaMask&apos;' value='5'/>
<EnumValue name='&apos;BlendMode_AlphaKnockOut&apos;' value='6'/>
<EnumValue name='&apos;BlendMode_AlphaMultiply&apos;' value='7'/>
<EnumValue name='&apos;BlendMode_WeightedMultiply&apos;' value='8'/>
<EnumValue name='&apos;BlendMode_InvertDest&apos;' value='9'/>
<EnumValue name='&apos;BlendMode_NoEffect&apos;' value='10'/>
</Enum>
<Enum name='CoinMode'>
<EnumValue name='&apos;CoinMode_Home&apos;' value='0'/>
@@ -1774,6 +1797,6 @@
<Constant name='sGame' value='&apos;dance&apos;'/>
<Constant name='top' value='&apos;VertAlign_Top&apos;'/>
</Constants>
<Version>sm-ssc private beta 1.4</Version>
<Date>2010-02-08</Date>
<Version>sm-ssc v1.0 beta 1</Version>
<Date>2010-02-28</Date>
</Lua>
+60 -19
View File
@@ -611,6 +611,21 @@
<Function name='GetNumChildren' return='int' arguments=''>
Returns the number of children in the ActorFrame.
</Function>
<Function name='playcommandonchildren' return='void' arguments='string sCommandName'>
Plays the <code>sCommandName</code> command on the ActorFrame's children.
</Function>
<Function name='playcommandonleaves' return='void' arguments='string sCommandName'>
Plays the <code>sCommandName</code> command on the ActorFrame's leaves.
</Function>
<Function name='propagate' return='void' arguments='bool bPropagate'>
Sets if the Actorframe should propagate commands to its children.
</Function>
<Function name='RunCommandsOnChildren' return='void' arguments='LuaReference cmds'>
Runs the commands in <code>cmds</code> on the ActorFrame's children.
</Function>
<Function name='runcommandsonleaves' return='void' arguments='LuaReference cmds'>
Runs the commands in <code>cmds</code> on the ActorFrame's leaves.
</Function>
<Function name='SetAmbientLightColor' sm-ssc='true' return='void' arguments='Color c'>
Sets the ActorFrame's ambient light color to <code>c</code>.
</Function>
@@ -1123,6 +1138,9 @@
The <Link class='Song' />s in a <Link class='Course' /> are numbered sequentially
starting from 0. Return the number of the current <Link class='Song' />.
</Function>
<Function name='GetCurMusicSeconds' sm-ssc='true' return='float' arguments=''>
Return the current number of seconds that have passed in the current song. This value can be negative.
</Function>
<Function name='GetCurrentCourse' return='Course' arguments=''>
Return the current <Link class='Course' />.
</Function>
@@ -1527,21 +1545,39 @@
<Function name='GetMetricA' return='ActorCommand' arguments='string sElement, string sValue'>
Returns a command from the specified element and value.
</Function>
<Function name='GetMetricAForNoteSkin' return='ActorCommand' arguments='string sElement, string sValue, string sNoteSkin'>
Returns a command from the specified element and value using NoteSkin <code>sNoteSkin</code>.
</Function>
<Function name='GetMetricB' return='bool' arguments='string sElement, string sValue'>
Returns a bool from the specified element and value.
</Function>
<Function name='GetMetricBForNoteSkin' return='bool' arguments='string sElement, string sValue, string sNoteSkin'>
Returns a bool from the specified element and value using NoteSkin <code>sNoteSkin</code>.
</Function>
<Function name='GetMetricF' return='float' arguments='string sElement, string sValue'>
Returns a float from the specified element and value.
</Function>
<Function name='GetMetricFForNoteSkin' return='float' arguments='string sElement, string sValue, string sNoteSkin'>
Returns a float from the specified element and value using NoteSkin <code>sNoteSkin</code>.
</Function>
<Function name='GetMetricI' return='int' arguments='string sElement, string sValue'>
Returns a integer from the specified element and value.
</Function>
<Function name='GetMetricIForNoteSkin' return='int' arguments='string sElement, string sValue, string sNoteSkin'>
Returns a integer from the specified element and value using NoteSkin <code>sNoteSkin</code>.
</Function>
<Function name='GetPath' return='string' arguments='string sButton, string sElement'>
Returns the path for the specified <code>sButton sElement</code>.
</Function>
<Function name='GetPathForNoteSkin' return='string' arguments='string sButton, string sElement, string sNoteSkin'>
Returns the path for the specified <code>sButton sElement</code> using NoteSkin <code>sNoteSkin</code>.
</Function>
<Function name='LoadActor' return='Actor' arguments='string sButton, string sElement'>
Returns the actor for the specified <code>sButton sElement</code>.
</Function>
<Function name='LoadActorForNoteSkin' return='Actor' arguments='string sButton, string sElement, string sNoteSkin'>
Returns the actor for the specified <code>sButton sElement</code> using NoteSkin <code>sNoteSkin</code>.
</Function>
<!-- sm-ssc additions -->
<Function name='DoesNoteSkinExist' sm-ssc='true' return='bool' arguments='string strName'>
Returns <code>true</code> if the <code>strName</code> noteskin exists in the current gametype.
@@ -1557,7 +1593,7 @@
</Class>
<Class name='PercentageDisplay'>
<Function name='LoadFromStats' return='void' arguments='PlayerState pPlayerState, PlayerStageStats pPlayerStageStats'>
Sets the PaneDisplay from the specified PlayerState and PlayerStageStats.
Sets the PercentageDisplay from the specified PlayerState and PlayerStageStats.
</Function>
</Class>
<Class name='PlayerInfo'>
@@ -1972,6 +2008,11 @@
Pauses or unpauses the game, depending on the value of <code>bPause</code>.
</Function>
</Class>
<Class name='ScreenHowToPlay'>
<Function name='GetLifeMeter' return='LifeMeter' arguments=''>
Returns the LifeMeter.
</Function>
</Class>
<Class name='ScreenManager'>
<Function name='GetTopScreen' return='Screen' arguments=''>
Gets the screen at the top of the screen stack.
@@ -2076,12 +2117,6 @@
<Function name='GetBannerPath' return='string' arguments=''>
Returns the path to the song's banner.
</Function>
<Function name='GetBeatFromElapsedTime' sm-ssc='true' return='float' arguments='float fElapsedTime'>
Returns the beat from <code>fElapsedTime</code>.
</Function>
<Function name='GetBPMAtBeat' sm-ssc='true' return='float' arguments='float fBeat'>
Returns the BPM at <code>fBeat</code>.
</Function>
<Function name='GetCDTitlePath' sm-ssc='true' return='string' arguments=''>
Gets the path to the CDTitle.
</Function>
@@ -2097,12 +2132,15 @@
<Function name='GetDisplaySubTitle' return='string' arguments=''>
Returns the displayed subtitle of the song.
</Function>
<Function name='GetElapsedTimeFromBeat' return='float' arguments='float fBeat'>
Returns the elapsed time from <code>fBeat</code>.
</Function>
<Function name='GetFirstBeat' return='float' arguments=''>
Returns the first beat of the song.
</Function>
<Function name='GetGenre' return='string' arguments=''>
Returns the genre of the song.
</Function>
<Function name='GetGroupName' return='string' arguments=''>
Returns the group name that the song is in.
</Function>
<Function name='GetLastBeat' return='float' arguments=''>
Returns the last beat of the song.
</Function>
@@ -2112,15 +2150,6 @@
<Function name='GetMusicPath' sm-ssc='true' return='string' arguments=''>
Gets the path to the music file.
</Function>
<Function name='GetTranslitSubTitle' return='string' arguments=''>
Returns the displayed subtitle of the song.
</Function>
<Function name='GetGenre' return='string' arguments=''>
Returns the genre of the song.
</Function>
<Function name='GetGroupName' return='string' arguments=''>
Returns the group name that the song is in.
</Function>
<Function name='GetOneSteps' return='Steps' arguments='StepsType st, Difficulty d'>
Returns a Step object if the StepType and Difficulty exist.
</Function>
@@ -2504,15 +2533,27 @@
<Function name='GetActualBPM' sm-ssc='true' return='{float}' arguments=''>
Returns the minimum and maximum BPM of the song in a table (in that order).
</Function>
<Function name='GetBeatFromElapsedTime' sm-ssc='true' return='float' arguments='float fElapsedTime'>
Returns the beat from <code>fElapsedTime</code>.
</Function>
<Function name='GetBPMAtBeat' sm-ssc='true' return='float' arguments='float fBeat'>
Returns the BPM at <code>fBeat</code>.
</Function>
<Function name='GetBPMs' sm-ssc='true' return='{string}' arguments=''>
Returns a table of the BPMs as strings.
</Function>
<Function name='GetBPMsAndTimes' sm-ssc='true' return='{string}' arguments=''>
Returns a table of the BPMs and the times they happen as strings with the format "<code>beat=BPM</code>".
</Function>
<Function name='GetElapsedTimeFromBeat' return='float' arguments='float fBeat'>
Returns the elapsed time from <code>fBeat</code>.
</Function>
<Function name='GetStops' sm-ssc='true' return='{string}' arguments=''>
Returns a table of the Stops and the times they happen as strings with the format "<code>beat=stop seconds</code>".
</Function>
<Function name='GetDelays' sm-ssc='true' return='{string}' arguments=''>
Returns a table of the Delays and the times they happen as strings with the format "<code>beat=stop seconds</code>".
</Function>
<Function name='HasBPMChanges' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the TimingData contains BPM changes.
</Function>
+81 -5
View File
@@ -19,8 +19,9 @@ ii. Requirements
1. Metrics and Languages
2. BGAnimations
3. Graphics
4. Fonts, Sound
5. Scripts
4. Fonts
5. Sounds
6. Scripts
X. Making Your First sm-ssc Theme
1. Setup
2.
@@ -31,7 +32,6 @@ ii. Requirements
In order to follow along with this guide, you will need the following:
* sm-ssc (our fork of StepMania 4)
Right now, it's in private beta. If you have it, you're lucky.
* A decent text editor (syntax highlighting is a plus)
* A decent graphics editor (for any graphics changes you want to make)
* A decent sound editor (in case you want to edit sounds)
@@ -112,7 +112,7 @@ ________________________________________________________________________________
Unless you are a very fast learner and can learn by looking at other people's
code, you are probably wanting to know more about the elements in detail.
2.1 Metrics and Languages
2.1 Metrics and Languages ______________________________________________________
These two are grouped together since they both use ini files. This means the
layout of the file will contain groups, keys, and values.
@@ -124,4 +124,80 @@ In StepMania, most groups are Screens.
The Languages folder contains strings that StepMania displays when your theme
is used. Chances are, if you want to edit the text of something, there's an
entry for it in one of the Language files (en.ini, usually).
entry for it in one of the Language files (en.ini, usually).
By leaving out a key in your custom language, you tell StepMania to look in
the default language (typically en.ini)
2.2. BGAnimations ______________________________________________________________
There are multiple names StepMania recognizes for BGAnimation folders. Some
screens won't support all of these.
================================================================================
ScreenExample in - Played when the screen is transitioning in.
ScreenExample background - Background of the screen.
ScreenExample underlay - Shows over the background, but under decorations and overlay.
ScreenExample decorations - Newly added in StepMania 4 alphas.
ScreenExample overlay - Shows over everything, usually.
ScreenExample out - Played when the screen is transitioning out.
ScreenExample cancel - Played when the screen is canceled.
================================================================================
In StepMania 4 alphas and sm-ssc, BGAnimations are done with Lua.
A sample Lua BGAnimation follows:
=[begin code example]===========================================================
return Def.ActorFrame{
Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("#FFFFFF");diffusebottomedge,color("#AAAAAA"););
};
};
=[end code example]=============================================================
This will make a Quad (an untextured square) that fills the screen and fades from
white to light grey. It is best used as a background. You can try this example
out yourself by making a new folder in the Themes directory and putting this code
in ScreenTitleMenu background.lua;
The folder setup would end up like so:
sm-ssc/
Themes/
MyCoolTheme/
BGAnimations/
ScreenTitleMenu background.lua
Now open up sm-ssc and change the theme (or pass in --theme="MyCoolTheme",
replacing "MyCoolTheme" with your theme's folder name), and head to the title menu.
2.3. Graphics __________________________________________________________________
The Graphics folder contains various files StepMania calls on. For example, the
header and footer are found here, along with Common window icon and others.
The Graphics folder is also where Decorations expects to find files to load when
you use StandardDecorationFromFileOptional([MetricsName],[Filename]).
2.4. Fonts _____________________________________________________________________
StepMania fonts are a combination of images containing various characters, and
an ini file that defines the font metrics, such as spacing, character widths,
character mappings, and so on.
Fonts are typically generated with Texture Font Generator (which is included
with sm-ssc) or Bitmap Font Builder, both programs being Windows only. If you
aren't on Windows, your choices are then limited to whatever image editor you
can find (typically Photoshop or The GIMP).
fontini.txt in the ThemerDocs folder contains a list of all the known
font .ini values. It lacks explanation, however.
[Common]
CapitalsOnly
RightToLeft
DefaultStrokeColor
2.5. Sounds ____________________________________________________________________
sm-ssc can load Lua files as music, allowing for conditional music/sounds.
2.6. Scripts ___________________________________________________________________
Scripts allow you to define functions which can then be referenced in Metrics
and BGAnimations. Scripts can also store values and do other nice things, some
of which is outside of the scope of this guide.
+38
View File
@@ -180,6 +180,9 @@ The StepMania 4.0 alpha 4 Options Menu:
* Profiles
* Reload Songs/Courses
sm-ssc changes this up again, making the "Options" item on the Title Menu go
to System Direction (mostly-used options), leaving the normal options menu to
the Scroll Lock key. Blame Midiman. :)
--------------------------------------------------------------------------------
2.2.1: Frequently Asked Questions that can be Solved by Changing the Configuration
--------------------------------------------------------------------------------
@@ -316,7 +319,10 @@ StepMania\
--------------------------------------------------------------------------------
2.3.2: Installing Noteskins/New Gametypes
--------------------------------------------------------------------------------
NoteSkins change the appearance of the arrows. They are also linked with getting
other gametypes supported in StepMania.
The noteskin installation process looks something like this:
StepMania\
NoteSkins\
(gametype)\
@@ -325,10 +331,42 @@ StepMania\
(gametype2)\
default\
"gametype"/"gametype2" etc. can be any one of the following:
dance (typically 4 panels)
pump (typically 5 panels)
para (5 receptors)
techno (4, 5, and 8 panel modes)
beat (5 and 7 key modes with a turntable on each)
popn (5 and 9 line modes)
kb7 (6 or 7 keys depending on when you try to use it)
--------------------------------------------------------------------------------
2.3.3: Installing Themes
--------------------------------------------------------------------------------
Depending on if the theme is packaged in a SMZip or not, you have a few options.
If it is in a .smzip, you can put it in the Packages directory:
StepMania/
Packages/
MyTheme.smzip
and StepMania will automatically read it.
On Windows, you can double click on the .smzip file to install it in your user
packages directory. THIS IS NOT RECOMMENDED BECAUSE IT CAUSES CONFUSION.
Since .smzip files are really .zip files, you could also extract them in the
StepMania root folder.
If the themer has not packaged the theme in a .smzip, then you have to look
inside the archive to see how the directory layout looks.
1) Themes folder
If it has a themes folder when you open it up, extract in the StepMania root
folder, like you would a .smzip file.
2) Theme name as a folder
This one will have to be extracted in the Themes directory. You will get a
new folder with the files.
3) A bunch of folders + metrics.ini
The themer was lazy; you're going to have to make a folder in the Themes
directory and extract the theme in there.
When in doubt, read any documentation that comes with the theme for proper
installation instructions.
+7 -1
View File
@@ -18,12 +18,14 @@ shakesoda
* Theme edits
==other contributors==
(in no particular order aside from having SM team at the top)
StepMania Team
* Keeping StepMania 4 alive with changes, and providing a nice codebase for
us to work with.
Aldo_MX
* Code (Pump it Up delays), ideas, and support.
* Code (Pump it Up delays, among others), ideas, and support.
Jason Reid (jnr)
* Tested building sm-ssc on FreeBSD, provided fixes.
@@ -57,6 +59,10 @@ galopin
FSX
* [Player] ScoreMissedHoldsAndRolls metric
Henke37
* [MovieTexture_FFMpeg] Stutter fix
(http://www.pasteall.org/11353/diff)
==the beta testers==
[SSC Beta Testing Team]
KeithD