sm-ssc v1.0 Public Beta 1 docs
This commit is contained in:
@@ -9,6 +9,58 @@ Not all changes are documented, for various reasons.
|
|||||||
supported but exist anyways.)
|
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
|
20100219
|
||||||
--------
|
--------
|
||||||
* sm4svn r28313: don't filter NoteSkins at a PrefsManager/NoteSkinManager level.
|
* sm4svn r28313: don't filter NoteSkins at a PrefsManager/NoteSkinManager level.
|
||||||
|
|||||||
+36
-13
@@ -8,6 +8,7 @@
|
|||||||
<Function name='Basename'/>
|
<Function name='Basename'/>
|
||||||
<Function name='BoostColor'/>
|
<Function name='BoostColor'/>
|
||||||
<Function name='Brightness'/>
|
<Function name='Brightness'/>
|
||||||
|
<Function name='CheckpointsTapsSeparateJudgment'/>
|
||||||
<Function name='Color'/>
|
<Function name='Color'/>
|
||||||
<Function name='ColorDarkTone'/>
|
<Function name='ColorDarkTone'/>
|
||||||
<Function name='ColorLightTone'/>
|
<Function name='ColorLightTone'/>
|
||||||
@@ -16,6 +17,7 @@
|
|||||||
<Function name='ColorToHex'/>
|
<Function name='ColorToHex'/>
|
||||||
<Function name='ComboContinue'/>
|
<Function name='ComboContinue'/>
|
||||||
<Function name='ComboMaintain'/>
|
<Function name='ComboMaintain'/>
|
||||||
|
<Function name='ComboPerRow'/>
|
||||||
<Function name='ComboTransformCommand'/>
|
<Function name='ComboTransformCommand'/>
|
||||||
<Function name='ConnectToServer'/>
|
<Function name='ConnectToServer'/>
|
||||||
<Function name='CourseDifficultyToLocalizedString'/>
|
<Function name='CourseDifficultyToLocalizedString'/>
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
<Function name='DayOfMonth'/>
|
<Function name='DayOfMonth'/>
|
||||||
<Function name='DayOfYear'/>
|
<Function name='DayOfYear'/>
|
||||||
<Function name='DeepCopy'/>
|
<Function name='DeepCopy'/>
|
||||||
|
<Function name='FailCombo'/>
|
||||||
<Function name='FindSelection'/>
|
<Function name='FindSelection'/>
|
||||||
<Function name='FindValue'/>
|
<Function name='FindValue'/>
|
||||||
<Function name='FormatNumSongsPlayed'/>
|
<Function name='FormatNumSongsPlayed'/>
|
||||||
@@ -55,9 +58,16 @@
|
|||||||
<Function name='HSVA'/>
|
<Function name='HSVA'/>
|
||||||
<Function name='HSVToColor'/>
|
<Function name='HSVToColor'/>
|
||||||
<Function name='HSVToHex'/>
|
<Function name='HSVToHex'/>
|
||||||
|
<Function name='HitCombo'/>
|
||||||
|
<Function name='HoldHeadStep'/>
|
||||||
|
<Function name='HoldJudgmentFail'/>
|
||||||
|
<Function name='HoldJudgmentPass'/>
|
||||||
|
<Function name='HoldTiming'/>
|
||||||
<Function name='Hour'/>
|
<Function name='Hour'/>
|
||||||
<Function name='Hue'/>
|
<Function name='Hue'/>
|
||||||
|
<Function name='ImmediateHoldLetGo'/>
|
||||||
<Function name='InitUserPrefs'/>
|
<Function name='InitUserPrefs'/>
|
||||||
|
<Function name='InitialHoldLife'/>
|
||||||
<Function name='IsHighDefinition'/>
|
<Function name='IsHighDefinition'/>
|
||||||
<Function name='IsNetConnected'/>
|
<Function name='IsNetConnected'/>
|
||||||
<Function name='IsNetSMOnline'/>
|
<Function name='IsNetSMOnline'/>
|
||||||
@@ -75,7 +85,9 @@
|
|||||||
<Function name='LoadFont'/>
|
<Function name='LoadFont'/>
|
||||||
<Function name='LoadSongBackground'/>
|
<Function name='LoadSongBackground'/>
|
||||||
<Function name='LocalizeOptionItem'/>
|
<Function name='LocalizeOptionItem'/>
|
||||||
|
<Function name='MaxHoldLife'/>
|
||||||
<Function name='Minute'/>
|
<Function name='Minute'/>
|
||||||
|
<Function name='MissCombo'/>
|
||||||
<Function name='MonthOfYear'/>
|
<Function name='MonthOfYear'/>
|
||||||
<Function name='MonthToLocalizedString'/>
|
<Function name='MonthToLocalizedString'/>
|
||||||
<Function name='MonthToString'/>
|
<Function name='MonthToString'/>
|
||||||
@@ -96,8 +108,10 @@
|
|||||||
<Function name='ReadPrefFromFile'/>
|
<Function name='ReadPrefFromFile'/>
|
||||||
<Function name='ReportStyle'/>
|
<Function name='ReportStyle'/>
|
||||||
<Function name='ResolveRelativePath'/>
|
<Function name='ResolveRelativePath'/>
|
||||||
|
<Function name='RollBodyIncrementsCombo'/>
|
||||||
<Function name='SMOnlineScreen'/>
|
<Function name='SMOnlineScreen'/>
|
||||||
<Function name='Saturation'/>
|
<Function name='Saturation'/>
|
||||||
|
<Function name='ScoreMissedHoldsAndRolls'/>
|
||||||
<Function name='Second'/>
|
<Function name='Second'/>
|
||||||
<Function name='SecondsToHHMMSS'/>
|
<Function name='SecondsToHHMMSS'/>
|
||||||
<Function name='SecondsToMMSS'/>
|
<Function name='SecondsToMMSS'/>
|
||||||
@@ -132,6 +146,7 @@
|
|||||||
<Function name='UserPrefAutoSetStyle'/>
|
<Function name='UserPrefAutoSetStyle'/>
|
||||||
<Function name='UserPrefGameplayShowScore'/>
|
<Function name='UserPrefGameplayShowScore'/>
|
||||||
<Function name='UserPrefGameplayShowStepsDisplay'/>
|
<Function name='UserPrefGameplayShowStepsDisplay'/>
|
||||||
|
<Function name='UserPrefLongFail'/>
|
||||||
<Function name='UserPrefShowLotsaOptions'/>
|
<Function name='UserPrefShowLotsaOptions'/>
|
||||||
<Function name='Var'/>
|
<Function name='Var'/>
|
||||||
<Function name='VersionCheck'/>
|
<Function name='VersionCheck'/>
|
||||||
@@ -270,6 +285,7 @@
|
|||||||
<Function name='diffuseupperleft'/>
|
<Function name='diffuseupperleft'/>
|
||||||
<Function name='diffuseupperright'/>
|
<Function name='diffuseupperright'/>
|
||||||
<Function name='draworder'/>
|
<Function name='draworder'/>
|
||||||
|
<Function name='drop'/>
|
||||||
<Function name='ease'/>
|
<Function name='ease'/>
|
||||||
<Function name='effectclock'/>
|
<Function name='effectclock'/>
|
||||||
<Function name='effectcolor1'/>
|
<Function name='effectcolor1'/>
|
||||||
@@ -577,6 +593,7 @@
|
|||||||
<Function name='GetCoins'/>
|
<Function name='GetCoins'/>
|
||||||
<Function name='GetCoinsNeededToJoin'/>
|
<Function name='GetCoinsNeededToJoin'/>
|
||||||
<Function name='GetCourseSongIndex'/>
|
<Function name='GetCourseSongIndex'/>
|
||||||
|
<Function name='GetCurMusicSeconds'/>
|
||||||
<Function name='GetCurrentCourse'/>
|
<Function name='GetCurrentCourse'/>
|
||||||
<Function name='GetCurrentGame'/>
|
<Function name='GetCurrentGame'/>
|
||||||
<Function name='GetCurrentSong'/>
|
<Function name='GetCurrentSong'/>
|
||||||
@@ -717,6 +734,9 @@
|
|||||||
<Class name='MessageManager'>
|
<Class name='MessageManager'>
|
||||||
<Function name='Broadcast'/>
|
<Function name='Broadcast'/>
|
||||||
</Class>
|
</Class>
|
||||||
|
<Class base='ActorFrame' name='MeterDisplay'>
|
||||||
|
<Function name='SetStreamWidth'/>
|
||||||
|
</Class>
|
||||||
<Class base='ActorFrame' name='ModIconRow'>
|
<Class base='ActorFrame' name='ModIconRow'>
|
||||||
<Function name='Load'/>
|
<Function name='Load'/>
|
||||||
</Class>
|
</Class>
|
||||||
@@ -832,6 +852,7 @@
|
|||||||
<Function name='GetTotalStepsWithTopGrade'/>
|
<Function name='GetTotalStepsWithTopGrade'/>
|
||||||
<Function name='GetTotalTapsAndHolds'/>
|
<Function name='GetTotalTapsAndHolds'/>
|
||||||
<Function name='GetTotalTrailsWithTopGrade'/>
|
<Function name='GetTotalTrailsWithTopGrade'/>
|
||||||
|
<Function name='GetUserData'/>
|
||||||
<Function name='GetWeightPounds'/>
|
<Function name='GetWeightPounds'/>
|
||||||
<Function name='HasPassedAnyStepsInSong'/>
|
<Function name='HasPassedAnyStepsInSong'/>
|
||||||
<Function name='IsCodeUnlocked'/>
|
<Function name='IsCodeUnlocked'/>
|
||||||
@@ -969,16 +990,13 @@
|
|||||||
<Class base='ScreenWithMenuElements' name='ScreenWithMenuElementsSimple'/>
|
<Class base='ScreenWithMenuElements' name='ScreenWithMenuElementsSimple'/>
|
||||||
<Class name='Song'>
|
<Class name='Song'>
|
||||||
<Function name='GetAllSteps'/>
|
<Function name='GetAllSteps'/>
|
||||||
<Function name='GetBPMAtBeat'/>
|
|
||||||
<Function name='GetBackgroundPath'/>
|
<Function name='GetBackgroundPath'/>
|
||||||
<Function name='GetBannerPath'/>
|
<Function name='GetBannerPath'/>
|
||||||
<Function name='GetBeatFromElapsedTime'/>
|
|
||||||
<Function name='GetCDTitlePath'/>
|
<Function name='GetCDTitlePath'/>
|
||||||
<Function name='GetDisplayArtist'/>
|
<Function name='GetDisplayArtist'/>
|
||||||
<Function name='GetDisplayFullTitle'/>
|
<Function name='GetDisplayFullTitle'/>
|
||||||
<Function name='GetDisplayMainTitle'/>
|
<Function name='GetDisplayMainTitle'/>
|
||||||
<Function name='GetDisplaySubTitle'/>
|
<Function name='GetDisplaySubTitle'/>
|
||||||
<Function name='GetElapsedTimeFromBeat'/>
|
|
||||||
<Function name='GetFirstBeat'/>
|
<Function name='GetFirstBeat'/>
|
||||||
<Function name='GetGenre'/>
|
<Function name='GetGenre'/>
|
||||||
<Function name='GetGroupName'/>
|
<Function name='GetGroupName'/>
|
||||||
@@ -1132,8 +1150,12 @@
|
|||||||
</Class>
|
</Class>
|
||||||
<Class name='TimingData'>
|
<Class name='TimingData'>
|
||||||
<Function name='GetActualBPM'/>
|
<Function name='GetActualBPM'/>
|
||||||
|
<Function name='GetBPMAtBeat'/>
|
||||||
<Function name='GetBPMs'/>
|
<Function name='GetBPMs'/>
|
||||||
<Function name='GetBPMsAndTimes'/>
|
<Function name='GetBPMsAndTimes'/>
|
||||||
|
<Function name='GetBeatFromElapsedTime'/>
|
||||||
|
<Function name='GetDelays'/>
|
||||||
|
<Function name='GetElapsedTimeFromBeat'/>
|
||||||
<Function name='GetStops'/>
|
<Function name='GetStops'/>
|
||||||
<Function name='HasBPMChanges'/>
|
<Function name='HasBPMChanges'/>
|
||||||
<Function name='HasStops'/>
|
<Function name='HasStops'/>
|
||||||
@@ -1259,14 +1281,15 @@
|
|||||||
<Enum name='BlendMode'>
|
<Enum name='BlendMode'>
|
||||||
<EnumValue name=''BlendMode_Normal'' value='0'/>
|
<EnumValue name=''BlendMode_Normal'' value='0'/>
|
||||||
<EnumValue name=''BlendMode_Add'' value='1'/>
|
<EnumValue name=''BlendMode_Add'' value='1'/>
|
||||||
<EnumValue name=''BlendMode_Modulate'' value='2'/>
|
<EnumValue name=''BlendMode_Subtract'' value='2'/>
|
||||||
<EnumValue name=''BlendMode_CopySrc'' value='3'/>
|
<EnumValue name=''BlendMode_Modulate'' value='3'/>
|
||||||
<EnumValue name=''BlendMode_AlphaMask'' value='4'/>
|
<EnumValue name=''BlendMode_CopySrc'' value='4'/>
|
||||||
<EnumValue name=''BlendMode_AlphaKnockOut'' value='5'/>
|
<EnumValue name=''BlendMode_AlphaMask'' value='5'/>
|
||||||
<EnumValue name=''BlendMode_AlphaMultiply'' value='6'/>
|
<EnumValue name=''BlendMode_AlphaKnockOut'' value='6'/>
|
||||||
<EnumValue name=''BlendMode_WeightedMultiply'' value='7'/>
|
<EnumValue name=''BlendMode_AlphaMultiply'' value='7'/>
|
||||||
<EnumValue name=''BlendMode_InvertDest'' value='8'/>
|
<EnumValue name=''BlendMode_WeightedMultiply'' value='8'/>
|
||||||
<EnumValue name=''BlendMode_NoEffect'' value='9'/>
|
<EnumValue name=''BlendMode_InvertDest'' value='9'/>
|
||||||
|
<EnumValue name=''BlendMode_NoEffect'' value='10'/>
|
||||||
</Enum>
|
</Enum>
|
||||||
<Enum name='CoinMode'>
|
<Enum name='CoinMode'>
|
||||||
<EnumValue name=''CoinMode_Home'' value='0'/>
|
<EnumValue name=''CoinMode_Home'' value='0'/>
|
||||||
@@ -1774,6 +1797,6 @@
|
|||||||
<Constant name='sGame' value=''dance''/>
|
<Constant name='sGame' value=''dance''/>
|
||||||
<Constant name='top' value=''VertAlign_Top''/>
|
<Constant name='top' value=''VertAlign_Top''/>
|
||||||
</Constants>
|
</Constants>
|
||||||
<Version>sm-ssc private beta 1.4</Version>
|
<Version>sm-ssc v1.0 beta 1</Version>
|
||||||
<Date>2010-02-08</Date>
|
<Date>2010-02-28</Date>
|
||||||
</Lua>
|
</Lua>
|
||||||
|
|||||||
@@ -611,6 +611,21 @@
|
|||||||
<Function name='GetNumChildren' return='int' arguments=''>
|
<Function name='GetNumChildren' return='int' arguments=''>
|
||||||
Returns the number of children in the ActorFrame.
|
Returns the number of children in the ActorFrame.
|
||||||
</Function>
|
</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'>
|
<Function name='SetAmbientLightColor' sm-ssc='true' return='void' arguments='Color c'>
|
||||||
Sets the ActorFrame's ambient light color to <code>c</code>.
|
Sets the ActorFrame's ambient light color to <code>c</code>.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -1123,6 +1138,9 @@
|
|||||||
The <Link class='Song' />s in a <Link class='Course' /> are numbered sequentially
|
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' />.
|
starting from 0. Return the number of the current <Link class='Song' />.
|
||||||
</Function>
|
</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=''>
|
<Function name='GetCurrentCourse' return='Course' arguments=''>
|
||||||
Return the current <Link class='Course' />.
|
Return the current <Link class='Course' />.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -1527,21 +1545,39 @@
|
|||||||
<Function name='GetMetricA' return='ActorCommand' arguments='string sElement, string sValue'>
|
<Function name='GetMetricA' return='ActorCommand' arguments='string sElement, string sValue'>
|
||||||
Returns a command from the specified element and value.
|
Returns a command from the specified element and value.
|
||||||
</Function>
|
</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'>
|
<Function name='GetMetricB' return='bool' arguments='string sElement, string sValue'>
|
||||||
Returns a bool from the specified element and value.
|
Returns a bool from the specified element and value.
|
||||||
</Function>
|
</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'>
|
<Function name='GetMetricF' return='float' arguments='string sElement, string sValue'>
|
||||||
Returns a float from the specified element and value.
|
Returns a float from the specified element and value.
|
||||||
</Function>
|
</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'>
|
<Function name='GetMetricI' return='int' arguments='string sElement, string sValue'>
|
||||||
Returns a integer from the specified element and value.
|
Returns a integer from the specified element and value.
|
||||||
</Function>
|
</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'>
|
<Function name='GetPath' return='string' arguments='string sButton, string sElement'>
|
||||||
Returns the path for the specified <code>sButton sElement</code>.
|
Returns the path for the specified <code>sButton sElement</code>.
|
||||||
</Function>
|
</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'>
|
<Function name='LoadActor' return='Actor' arguments='string sButton, string sElement'>
|
||||||
Returns the actor for the specified <code>sButton sElement</code>.
|
Returns the actor for the specified <code>sButton sElement</code>.
|
||||||
</Function>
|
</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 -->
|
<!-- sm-ssc additions -->
|
||||||
<Function name='DoesNoteSkinExist' sm-ssc='true' return='bool' arguments='string strName'>
|
<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.
|
Returns <code>true</code> if the <code>strName</code> noteskin exists in the current gametype.
|
||||||
@@ -1557,7 +1593,7 @@
|
|||||||
</Class>
|
</Class>
|
||||||
<Class name='PercentageDisplay'>
|
<Class name='PercentageDisplay'>
|
||||||
<Function name='LoadFromStats' return='void' arguments='PlayerState pPlayerState, PlayerStageStats pPlayerStageStats'>
|
<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>
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='PlayerInfo'>
|
<Class name='PlayerInfo'>
|
||||||
@@ -1972,6 +2008,11 @@
|
|||||||
Pauses or unpauses the game, depending on the value of <code>bPause</code>.
|
Pauses or unpauses the game, depending on the value of <code>bPause</code>.
|
||||||
</Function>
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
|
<Class name='ScreenHowToPlay'>
|
||||||
|
<Function name='GetLifeMeter' return='LifeMeter' arguments=''>
|
||||||
|
Returns the LifeMeter.
|
||||||
|
</Function>
|
||||||
|
</Class>
|
||||||
<Class name='ScreenManager'>
|
<Class name='ScreenManager'>
|
||||||
<Function name='GetTopScreen' return='Screen' arguments=''>
|
<Function name='GetTopScreen' return='Screen' arguments=''>
|
||||||
Gets the screen at the top of the screen stack.
|
Gets the screen at the top of the screen stack.
|
||||||
@@ -2076,12 +2117,6 @@
|
|||||||
<Function name='GetBannerPath' return='string' arguments=''>
|
<Function name='GetBannerPath' return='string' arguments=''>
|
||||||
Returns the path to the song's banner.
|
Returns the path to the song's banner.
|
||||||
</Function>
|
</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=''>
|
<Function name='GetCDTitlePath' sm-ssc='true' return='string' arguments=''>
|
||||||
Gets the path to the CDTitle.
|
Gets the path to the CDTitle.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2097,12 +2132,15 @@
|
|||||||
<Function name='GetDisplaySubTitle' return='string' arguments=''>
|
<Function name='GetDisplaySubTitle' return='string' arguments=''>
|
||||||
Returns the displayed subtitle of the song.
|
Returns the displayed subtitle of the song.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetElapsedTimeFromBeat' return='float' arguments='float fBeat'>
|
|
||||||
Returns the elapsed time from <code>fBeat</code>.
|
|
||||||
</Function>
|
|
||||||
<Function name='GetFirstBeat' return='float' arguments=''>
|
<Function name='GetFirstBeat' return='float' arguments=''>
|
||||||
Returns the first beat of the song.
|
Returns the first beat of the song.
|
||||||
</Function>
|
</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=''>
|
<Function name='GetLastBeat' return='float' arguments=''>
|
||||||
Returns the last beat of the song.
|
Returns the last beat of the song.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2112,15 +2150,6 @@
|
|||||||
<Function name='GetMusicPath' sm-ssc='true' return='string' arguments=''>
|
<Function name='GetMusicPath' sm-ssc='true' return='string' arguments=''>
|
||||||
Gets the path to the music file.
|
Gets the path to the music file.
|
||||||
</Function>
|
</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'>
|
<Function name='GetOneSteps' return='Steps' arguments='StepsType st, Difficulty d'>
|
||||||
Returns a Step object if the StepType and Difficulty exist.
|
Returns a Step object if the StepType and Difficulty exist.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2504,15 +2533,27 @@
|
|||||||
<Function name='GetActualBPM' sm-ssc='true' return='{float}' arguments=''>
|
<Function name='GetActualBPM' sm-ssc='true' return='{float}' arguments=''>
|
||||||
Returns the minimum and maximum BPM of the song in a table (in that order).
|
Returns the minimum and maximum BPM of the song in a table (in that order).
|
||||||
</Function>
|
</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=''>
|
<Function name='GetBPMs' sm-ssc='true' return='{string}' arguments=''>
|
||||||
Returns a table of the BPMs as strings.
|
Returns a table of the BPMs as strings.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetBPMsAndTimes' sm-ssc='true' return='{string}' arguments=''>
|
<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>".
|
Returns a table of the BPMs and the times they happen as strings with the format "<code>beat=BPM</code>".
|
||||||
</Function>
|
</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=''>
|
<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>".
|
Returns a table of the Stops and the times they happen as strings with the format "<code>beat=stop seconds</code>".
|
||||||
</Function>
|
</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=''>
|
<Function name='HasBPMChanges' sm-ssc='true' return='bool' arguments=''>
|
||||||
Returns <code>true</code> if the TimingData contains BPM changes.
|
Returns <code>true</code> if the TimingData contains BPM changes.
|
||||||
</Function>
|
</Function>
|
||||||
|
|||||||
@@ -19,8 +19,9 @@ ii. Requirements
|
|||||||
1. Metrics and Languages
|
1. Metrics and Languages
|
||||||
2. BGAnimations
|
2. BGAnimations
|
||||||
3. Graphics
|
3. Graphics
|
||||||
4. Fonts, Sound
|
4. Fonts
|
||||||
5. Scripts
|
5. Sounds
|
||||||
|
6. Scripts
|
||||||
X. Making Your First sm-ssc Theme
|
X. Making Your First sm-ssc Theme
|
||||||
1. Setup
|
1. Setup
|
||||||
2.
|
2.
|
||||||
@@ -31,7 +32,6 @@ ii. Requirements
|
|||||||
In order to follow along with this guide, you will need the following:
|
In order to follow along with this guide, you will need the following:
|
||||||
|
|
||||||
* sm-ssc (our fork of StepMania 4)
|
* 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 text editor (syntax highlighting is a plus)
|
||||||
* A decent graphics editor (for any graphics changes you want to make)
|
* A decent graphics editor (for any graphics changes you want to make)
|
||||||
* A decent sound editor (in case you want to edit sounds)
|
* 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
|
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.
|
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
|
These two are grouped together since they both use ini files. This means the
|
||||||
layout of the file will contain groups, keys, and values.
|
layout of the file will contain groups, keys, and values.
|
||||||
|
|
||||||
@@ -125,3 +125,79 @@ In StepMania, most groups are Screens.
|
|||||||
The Languages folder contains strings that StepMania displays when your theme
|
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
|
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.
|
||||||
@@ -180,6 +180,9 @@ The StepMania 4.0 alpha 4 Options Menu:
|
|||||||
* Profiles
|
* Profiles
|
||||||
* Reload Songs/Courses
|
* 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
|
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
|
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\
|
StepMania\
|
||||||
NoteSkins\
|
NoteSkins\
|
||||||
(gametype)\
|
(gametype)\
|
||||||
@@ -325,10 +331,42 @@ StepMania\
|
|||||||
(gametype2)\
|
(gametype2)\
|
||||||
default\
|
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
|
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
|
When in doubt, read any documentation that comes with the theme for proper
|
||||||
installation instructions.
|
installation instructions.
|
||||||
|
|||||||
+7
-1
@@ -18,12 +18,14 @@ shakesoda
|
|||||||
* Theme edits
|
* Theme edits
|
||||||
|
|
||||||
==other contributors==
|
==other contributors==
|
||||||
|
(in no particular order aside from having SM team at the top)
|
||||||
|
|
||||||
StepMania Team
|
StepMania Team
|
||||||
* Keeping StepMania 4 alive with changes, and providing a nice codebase for
|
* Keeping StepMania 4 alive with changes, and providing a nice codebase for
|
||||||
us to work with.
|
us to work with.
|
||||||
|
|
||||||
Aldo_MX
|
Aldo_MX
|
||||||
* Code (Pump it Up delays), ideas, and support.
|
* Code (Pump it Up delays, among others), ideas, and support.
|
||||||
|
|
||||||
Jason Reid (jnr)
|
Jason Reid (jnr)
|
||||||
* Tested building sm-ssc on FreeBSD, provided fixes.
|
* Tested building sm-ssc on FreeBSD, provided fixes.
|
||||||
@@ -57,6 +59,10 @@ galopin
|
|||||||
FSX
|
FSX
|
||||||
* [Player] ScoreMissedHoldsAndRolls metric
|
* [Player] ScoreMissedHoldsAndRolls metric
|
||||||
|
|
||||||
|
Henke37
|
||||||
|
* [MovieTexture_FFMpeg] Stutter fix
|
||||||
|
(http://www.pasteall.org/11353/diff)
|
||||||
|
|
||||||
==the beta testers==
|
==the beta testers==
|
||||||
[SSC Beta Testing Team]
|
[SSC Beta Testing Team]
|
||||||
KeithD
|
KeithD
|
||||||
|
|||||||
Reference in New Issue
Block a user