<?xml version="1.0" encoding="UTF-8" ?>

<!-- Before checking the documentation in, make sure that it validates by
     going to http://tools.decisionsoft.com/schemaValidate/ and using
     Lua.xsd for the XML Schema and this file for the XML Instanace. -->

<!-- Using Link:
     If you leave out the text (i.e., <Link ... />), it tries to output what
     you would want.

     To add a link to a function in the current class:
     <Link function='addx' /> -> Actor.addx()
     To add a link to a function in another class:
     <Link class='ActorFrame' function='propagate' /> -> ActorFrame.propagate()
     To add a link to a class:
     <Link class='ActorFrame' /> -> ActorFrame
     To add a link to a global function:
     <Link class='GLOBAL' function='Basename' /> -> Basename()
     To add a link to an Enum:
     <Link class='ENUM' function='CoinMode' /> -> CoinMode
  -->


<Documentation xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
<!-- Global functions -->
<GlobalFunctions>
	<Function name='Basename' return='string' arguments='string path'>
		Returns the base name of file path.
	</Function>
	<Function name='DayOfMonth' return='int' arguments=''>
		Returns the current day of the month.
	</Function>
	<Function name='DayOfYear' return='int' arguments=''>
		Returns the current day of the year.
	</Function>
	<Function name='FormatNumberAndSuffix' return='string' arguments='int num'>
		Returns the number passed to the function followed by its suffix (&quot;th&quot;, &quot;nd&quot;, and so on).
	</Function>
	<Function name='FormatPercentScore' return='string' arguments='float fPercentDancePoints'>
		Returns <code>fPercentDancePoints</code> formatted as a percentage.
	</Function>
	<Function name='GetGradeFromPercent' return='Grade' arguments='float fPercent, bool bMerciful'>
		Returns a corresponding <Link class='ENUM' function='Grade' /> for the given percentage.
	</Function>
	<Function name='GetLifeDifficulty' return='int' arguments=''>
		Returns the current Life Difficulty.
	</Function>
	<Function name='GetThemeAspectRatio' return='float' arguments=''>
		Returns the theme's aspect ratio.
	</Function>
	<Function name='Hour' return='int' arguments=''>
		Returns the current hour.
	</Function>
	<Function name='IsEventMode' return='bool' arguments=''>
		Returns <code>true</code> if Event Mode is turned on.
	</Function>
	<Function name='IsNetConnected' return='bool' arguments=''>
		Returns <code>true</code> if connected to the Internet.
	</Function>
	<Function name='IsNetSMOnline' return='bool' arguments=''>
		Returns <code>true</code> if connected to StepMania Online.
	</Function>
	<Function name='LoadActor' return='ActorDef' arguments='string sPath, ...'>
		Returns an Actor definition for the actor at <code>sPath</code>. If <code>sPath</code> points to a Lua file, any additional arguments will be passed to that script.
	</Function>
	<Function name='Minute' return='int' arguments=''>
		Returns the current Minute.
	</Function>
	<Function name='MonthOfYear' return='int' arguments=''>
		Returns the current month of the year.
	</Function>
	<Function name='Second' return='int' arguments=''>
		Returns the current second.
	</Function>
	<Function name='SecondsToMSSMsMs' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format.
	</Function>
	<Function name='Trace' return='void' arguments='string sString'>
		Alias for <Link class='lua' function='Trace' />.
	</Function>
	<Function name='Warn' return='void' arguments='string sString'>
		Alias for <Link class='lua' function='Warn' />.
	</Function>
	<Function name='Year' return='int' arguments=''>
		Returns the current year.
	</Function>
	<Function name='mbstrlen' return='int' arguments='string sString'>
		Returns the length of the multi-byte character string <code>sString</code>.
	</Function>
</GlobalFunctions>

<!-- Namespaces -->
<Namespaces>
<Namespace name='ActorUtil'>
	<Function name='IsRegisteredClass' return='bool' arguments='string sClassName'>
		Returns <code>true</code> if <code>sClassName</code> is a registered Class.
	</Function>
</Namespace>
<Namespace name='Enum'>
	<Description>
		Enumerated types are lookup tables associating a string to each numerical
		value for each <Link class='Enums'>Enum</Link>. For example,
		<code><Link class='ENUM' function='PlayerNumber' />[1]</code> would be the
		string <code>'PlayerNumber_P1'</code>.<br />
		The functions defined in the <code>Enum</code> namespace are valid member
		functions of every <Link class='Enums'>Enum</Link> where the first argument is
		omitted and the name of the <Link class='Enums'>Enum</Link> is used in place
		of <code>Enum</code>. Instead of
		<code><Link function='GetName'>Enum.GetName</Link>(
		<Link class='ENUM' function='PlayerNumber' /> )</code> or
		<code><Link function='Reverse'>Enum.Reverse</Link>( 
		<Link class='ENUM' function='PlayerNumber' /> )</code>, one can use
		<code><Link class='ENUM' function='PlayerNumber' />:<!--
		--><Link function='GetName'>GetName</Link>()</code> or
		<code><Link class='ENUM' function='PlayerNumber' />:<!--
		--><Link function='Reverse'>Reverse</Link>()</code>, respectively.
	</Description>
	<Function name='Compare' return='int' arguments='Enum e, string x, string y'>
		Both <code>x</code> and <code>y</code> need to be elements of the enumerated
		type <code>e</code>. Returns a value less than/greater than/equal to
		<code>0</code> corresponding to the numerical value of <code>x</code> being
		less than/greater than/equal to the numerical value of <code>y</code> as
		determined by
		<code><Link function='Reverse'>Enum.Reverse</Link>( e )</code>.
	</Function>
	<Function name='GetName' return='string' arguments='Enum e'>
		Returns the type of <code>e</code>. For example,
		<code>Enum.GetName( <Link class='ENUM' function='PlayerNumber' /> )</code>
		will return the string <code>'PlayerNumber'</code>.
	</Function>
	<Function name='Reverse' return='{int}' arguments='Enum e'>
		Returns a reverse lookup table for the enumerated type <code>e</code>.  For
		example: <br /><code>local r =
		Enum.Reverse( <Link class='ENUM' function='PlayerNumber'/> );<br />
		local n = r['PlayerNumber_P2'];</code><br />
		The value of <code>n</code> in this case would be <code>1</code> corresponding
		to the 0-based indexing using in C++ and not <code>2</code> as might be
		expected for the 1-based indexing used in Lua.
	</Function>
</Namespace>
<Namespace name='GameManager'>
	<Function name='GetFirstStepsTypeForGame' return='StepsType' arguments='Game game'>
		Return the first of the <Link class='StepsType' /> corresponding to <code>game</code>.
	</Function>
	<Function name='StepsTypeToLocalizedString' return='string' arguments='StepsType st'>
		Return the localized string representation of <code>st</code>.
	</Function>
</Namespace>
<Namespace name='lua'>
	<Function name='Trace' return='void' arguments='string sString'>
		Writes <code>sString</code> to log.txt. Aliased by
		<Link class='GLOBAL' function='Trace' />.
	</Function>
	<Function name='Warn' return='void' arguments='string sString'>
		Writes <code>sString</code> to info.txt and log.txt as
		a warning. Aliased by <Link class='GLOBAL' function='Warn' />.
	</Function>
	<Function name='Flush' return='void' arguments='' >
		Flushes log files to disk.
	</Function>
</Namespace>
<Namespace name='RageFileUtil'>
	<Function name='CreateRageFile' return='RageFile' arguments=''>
		Creates a RageFile handle with which one can use the commands in <Link class='RageFile' />.
	</Function>
</Namespace>
<Namespace name='ScreenSystemLayerHelpers'>
	<Function name='GetCreditsMessage' return='string' arguments='PlayerNumber pn'>
		Gets the credits message for Player <code>pn</code>.
	</Function>
</Namespace>
<Namespace name='SongUtil'>
	<Function name='IsStepsPlayable' return='bool' arguments='Song so, Steps st'>
		Returns true if <code>so</code> has steps for <code>st</code>.
	</Function>
	<Function name='IsStepsTypePlayable' return='bool' arguments='Song so, StepsType st'>
		Returns true if <code>so</code> has a StepsType matching <code>st</code>.
	</Function>
</Namespace>
</Namespaces>

<!-- Classes -->
<Classes>
<Class name='Actor'>
	<Function name='GetVisible' return='bool' arguments=''>
		Returns the current Actor's visibility.
	</Function>
	<Function name='GetX' return='float' arguments=''>
		Returns the current Actor's x position.
	</Function>
	<Function name='GetY' return='float' arguments=''>
		Returns the current Actor's y position.
	</Function>
	<Function name='GetZ' return='float' arguments=''>
		Returns the current Actor's z position.
	</Function>
	<Function name='SetTextureFiltering' return='void' arguments='bool b'>
		Sets Texture Filtering for an Actor to <code>b</code>.
	</Function>
	<Function name='addx' return='void' arguments='float xPos'>
		Adds <code>xPos</code> to the Actor's current x position.
	</Function>
	<Function name='addy' return='void' arguments='float yPos'>
		Adds <code>yPos</code> to the Actor's current y position.
	</Function>
	<Function name='addz' return='void' arguments='float zPos'>
		Adds <code>zPos</code> to the Actor's current z position.
	</Function>
	<Function name='animate' return='void' arguments='bool b'>
		Sets whether or not the Actor should animate.
	</Function>
	<Function name='basealpha' return='void' arguments='float fAlpha'>
		Sets the Actor's base alpha to <code>fAlpha</code>, where <code>fAlpha</code> is in the range 0..1.
	</Function>
	<Function name='blend' return='void' arguments='BlendMode mode'>
		Sets the Actor to use the specified blend mode.
	</Function>
	<Function name='cropbottom' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the bottom where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cropleft' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the left where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cropright' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the right where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='croptop' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the top where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cullmode' return='void' arguments='CullMode mode'>
		Sets the Actor's cull mode to <code>mode</code>.
	</Function>
	<Function name='diffuse' return='void' arguments='color c'>
		Set the Actor's diffuse color to <code>c</code>.
	</Function>
	<Function name='diffusealpha' return='void' arguments='float fAlpha'>
		Set's the Actor's alpha level to <code>fAlpha</code>, where <code>fAlpha</code> is in the range 0..1.
	</Function>
	<Function name='diffusecolor' return='void' arguments='color c'>
		Set the Actor's diffuse color to <code>c</code>, ignoring any alpha value in <code>c</code>.
	</Function>
	<Function name='draworder' return='void' arguments='int iOrder'>
		Set's the Actor's draworder to <code>iOrder</code>, where larger values display first.
	</Function>
	<Function name='effectclock' return='void' arguments='string s'>
		Set the Actor's effect clock to <code>s</code>.
	</Function>
	<Function name='effectcolor1' return='void' arguments='color c'>
		Sets the first effect color to <code>c</code>.
	</Function>
	<Function name='effectcolor2' return='void' arguments='color c'>
		Sets the second effect color to <code>c</code>.
	</Function>
	<Function name='effectmagnitude' return='void' arguments='float fX, float fY, float fZ'>
		Set the Actor's effect magnitude in each direction to the given values.
	</Function>
	<Function name='effectoffset' return='void' arguments='float fTime'>
		Set the Actor's effect offset to <code>fTime</code>.
	</Function>
	<Function name='effectperiod' return='void' arguments='float fTime'>
		Set the Actor's effect period to <code>fTime</code>.
	</Function>
	<Function name='fadebottom' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the bottom where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='fadeleft' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the left where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='faderight' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the right where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='fadetop' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the top where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='finishtweening' return='void' arguments=''>
		Finishes up an Actor's tween immediately.
	</Function>
	<Function name='GetCommand' return='bool' arguments='string sCmdName'>
		Returns <code>true</code> if the Actor has a command named <code>sCmdName</code>.
	</Function>
	<Function name='GetDiffuseAlpha' return='float' arguments=''>
		Returns the Actor's current diffusealpha.
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the Actor's name.
	</Function>
	<Function name='GetNumStates' return='int' arguments=''>
		Returns the number of states the Actor has.
	</Function>
	<Function name='GetHeight' return='float' arguments=''>
		Returns the Actor's current height.
	</Function>
	<Function name='GetWidth' return='float' arguments=''>
		Returns the Actor's current width.
	</Function>
	<Function name='halign' return='void' arguments='float fAlign'>
		Set the fractional horizontal alignment of the Actor according to <code>fAlign</code> which should be a float in the range 0..1. An alignment of 0 is left aligned while an alignment of 1 is right aligned. See <Link function='horizalign' /> for the common case.
	</Function>
	<Function name='hidden' return='void' arguments='bool b'>
		Sets an Actor's hidden value to b. Deprecated, use <Link function='visible' /> instead.
	</Function>
	<Function name='horizalign' return='void' arguments='HorizAlign align'>
		Set the horizontal alignment of the Actor according to <code>align</code>. See <Link function='halign' /> for fractional alignment.
	</Function>
	<Function name='hurrytweening' return='void' arguments='float factor'>
		Hurries up an Actor's tweening by <code>factor</code>.
	</Function>
	<Function name='playcommand' return='void' arguments='string sCommandName'>
		Plays a command named <code>sCommandName</code>.
	</Function>
	<Function name='pulse' return='void' arguments=''>
		Makes the Actor grow and shrink. Can use <Link function='effectmagnitude' /> to define different pulsing behavior.
	</Function>
	<Function name='queuecommand' return='void' arguments='string sCommandName'>
		Queues a command named <code>sCommandName</code> to be played.
	</Function>
	<Function name='rotationx' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the X axis to <code>fAlign</code>.
	</Function>
	<Function name='rotationy' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the Y axis to <code>fAlign</code>.
	</Function>
	<Function name='rotationz' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the Z axis to <code>fAlign</code>.
	</Function>
	<Function name='setstate' return='void' arguments='int iNewState'>
		Sets a multi-framed Actor's state to <code>iNewState</code>.
	</Function>
	<Function name='shadowcolor' return='void' arguments='color c'>
		Sets the shadow's color to <code>c</code>.
	</Function>
	<Function name='shadowlength' return='void' arguments='float fLength'>
		Sets the Actor's shadow length to <code>fLength</code>.
	</Function>
	<Function name='shadowlengthx' return='void' arguments='float fLength'>
		Sets the Actor's horizontal shadow length to <code>fLength</code>.
	</Function>
	<Function name='shadowlengthy' return='void' arguments='float fLength'>
		Sets the Actor's vertical shadow length to <code>fLength</code>.
	</Function>
	<Function name='skewx' return='void' arguments='float fAmount'>
		Skews the Actor on the x axis by <code>fAmount</code>.
	</Function>
	<Function name='spin' return='void' arguments=''>
		Tells the Actor to spin. Can use <Link function='effectmagnitude' /> to define different spinning behavior.
	</Function>
	<Function name='stopeffect' return='void' arguments=''>
		Stops any effect the Actor has.
	</Function>
	<Function name='valign' return='void' arguments='float fAlign'>
		Set the fractional vertical alignment of the Actor according to <code>fAlign</code> which should be a float in the range 0..1. An alignment of 0 is top aligned while an alignment of 1 is bottom aligned. See <Link function="vertalign" /> for the common case.
	</Function>
	<Function name='vertalign' return='void' arguments='VertAlign align'>
		Set the vertical alignment of the Actor according to <code>align</code>. See <Link function="valign" /> for fractional alignment.
	</Function>
	<Function name='visible' return='void' arguments='bool b'>
		Sets an Actor's visibility to b.
	</Function>
	<Function name='x' return='void' arguments='float xPos'>
		Set the x position of the Actor to <code>xPos</code>.
	</Function>
	<Function name='y' return='void' arguments='float yPos'>
		Set the y position of the Actor to <code>yPos</code>.
	</Function>
	<Function name='z' return='void' arguments='float zPos'>
		Set the z position of the Actor to <code>zPos</code>.
	</Function>
</Class>
<Class name='ActorFrame'>
	<Function name='fov' return='void' arguments='float fFOV'>
		Sets the field of view for the ActorFrame.
	</Function>
	<Function name='GetChild' return='Actor' arguments='string sName'>
		Returns the child with a name of <code>sName</code>.
	</Function>
	<Function name='GetNumChildren' return='int' arguments=''>
		Returns the number of children in the ActorFrame.
	</Function>
	<Function name='SetFOV' return='void' arguments='float fFOV'>
		Sets the field of view for the ActorFrame.
	</Function>
	<Function name='SetUpdateFunction' return='void' arguments='LuaReference UpdateFunction'>
		Sets the ActorFrame's update function to the specified Lua function.
	</Function>
	<Function name='SetUpdateRate' return='void' arguments='float fRate'>
		Sets the update function's rate to <code>fRate</code>.
	</Function>
	<Function name='SortByDrawOrder' return='void' arguments=''>
		Tells the ActorFrame to sort by draw order.
	</Function>
	<Function name='vanishpoint' return='void' arguments='float fX, float fY'>
		Sets the vanishing point for the ActorFrame.
	</Function>
</Class>
<Class name='ActorMultiTexture'>
	<Function name='ClearTextures' return='void' arguments=''>
		Clears all the textures from the MultiTexture.
	</Function>
	<Function name='SetEffectMode' return='void' arguments='EffectMode em'>
		Sets the EffectMode on the MultiTexture.
	</Function>
	<Function name='SetTextureMode' return='void' arguments='int iIndex, TextureMode tm'>
		Sets a TextureMode on the specified index.
	</Function>
</Class>
<Class name='ActorProxy'>
	<Function name='GetTarget' return='Actor' arguments=''>
		Returns the target of the ActorProxy.
	</Function>
	<Function name='SetTarget' return='void' arguments='Actor a'>
		Sets the ActorProxy target to <code>a</code>.
	</Function>
</Class>
<Class name='ActorScroller'>
	<Function name='SetLoop' return='void' arguments='bool bLoop'>
		Specifies if the scroller should loop or not.
	</Function>
	<Function name='SetTransformFromHeight' return='void' arguments='float fItemHeight'>
		Sets the scroller's transform function from <code>fItemHeight</code>.
	</Function>
	<Function name='SetTransformFromWidth' return='void' arguments='float fItemWidth'>
		Sets the scroller's transform function from <code>fItemWidth</code>.
	</Function>
</Class>
<Class name='ActorSound'>
	<Description>
		This Actor represents a playable sound. There are two attributes that can be set on load.<br />
		* <code>SupportPan</code> - Let the sound pan from side to side.<br />
		* <code>SupportRateChanging</code> - Let the sound change rate and pitch.
	</Description>
	<Function name='get' return='RageSound' arguments=''>
		Returns the <Link class='RageSound' /> that can be played by this Actor.
	</Function>
	<Function name='load' return='void' arguments='string sPath'>
		Loads the sound at <code>sPath</code>.
	</Function>
	<Function name='play' return='void' arguments=''>
		Play the sound.
	</Function>
	<Function name='playforplayer' return='void' arguments='PlayerNumber pn'>
		Play the sound on the given player's side. You must set <code>SupportPan = true</code> on load.
	</Function>
</Class>
<Class name='Banner'>
	<Function name='LoadFromCourse' return='void' arguments='Course c'>
		Loads a Banner from a specified Course.
	</Function>
	<Function name='LoadFromSong' return='void' arguments='Song s'>
		Loads a Banner from a specified Song.
	</Function>
	<Function name='LoadFromSongGroup' return='void' arguments='string s'>
		Loads a Banner from a specified Song Group.
	</Function>
</Class>
<Class name='BitmapText'>
	<Function name='AddAttribute' return='void' arguments='int iPos, Attribute attr'>
		Add the attribute <code>attr</code> to the string at position
		<code>iPos</code>.<br />
		The attribute is a table that must contain <code>Length</code>
		which specifies how many (multi-byte) characters the attribute
		is to apply. If <code>Length=-1</code>, then the attribute applies
		until another attribute overrides it.<br />
		If the table contains <code>Diffuse</code>, then the color value
		is applied to the range of text.<br />
		If the table contains <code>Diffuses</code>, then it should be
		an array of 4 colors which specify the diffuse color for the
		top left, top right, bottom left, and bottom right.<br />
		If the table contains <code>Glow</code>, then the color value
		is applied as a glow to the range of text.<br />
		Example:<br />
		<code>attr = { Length = 10; Diffuse = color("#AABBCC"); }</code>
	</Function>
	<Function name='ClearAttributes' return='void' arguments=''>
		Clear all attributes associated with the BitmapText.
	</Function>
	<Function name='GetText' return='string' arguments=''>
		Returns the text that is currently set.
	</Function>
	<Function name='jitter' return='void' arguments='bool bJitter'>
		If <code>bJitter</code> is <code>true</code>, move each character of the string around by a small random amount.
	</Function>
	<Function name='maxheight' return='void' arguments='float fHeight'>
		Set the maximum height of the unzoomed text to <code>fHeight</code>. If <code>fHeight</code> is <code>0</code>, then there is no maximum height.
	</Function>
	<Function name='maxwidth' return='void' arguments='float hWidth'>
		Set the maximum width of the unzoomed text to <code>fWidth</code>. If <code>fWidth</code> is <code>0</code>, then there is no maximum width.
	</Function>
	<Function name='rainbowscroll' return='void' arguments='bool bRainbowScroll'>
		If <code>true</code>, set each character of the text in turn to the rainbow colors in the metrics <code>BitmapText::RainbowColor#</code>.
	</Function>
	<Function name='settext' return='void' arguments='string sText'>
		Set the text to <code>sText</code>. This clears all attributes.
	</Function>
	<Function name='strokecolor' return='void' arguments='color c'>
		Sets the stroke color to <code>c</code>.
	</Function>
	<Function name='uppercase' return='void' arguments='bool b'>
		If <code>true</code>, make all text uppercase.
	</Function>
	<Function name='vertspacing' return='void' arguments='int iSpacing'>
		Add <code>iSpacing</code> pixels of padding between lines of text.
	</Function>
	<Function name='wrapwidthpixels' return='void' arguments='int iWidth'>
		Wrap the unzoomed text at <code>iWidth</code> pixels. If you <Link class='Actor' function='zoom' /> or <Link class='Actor' function='zoomx' /> by <code>x</code> and you want the text wrapped at <code>width</code>, then you should use <code>wrapwidthpixels(width/x)</code>.
	</Function>
</Class>
<Class name='Course'>
	<Function name='GetAllTrails' return='{Trail}' arguments=''>
		Returns a table of all the Trails in the Course.
	</Function>
	<Function name='GetBannerPath' return='int' arguments=''>
		Returns the path to the Course's banner.
	</Function>
	<Function name='GetCourseEntry' return='CourseEntry' arguments='int iIndex'>
		Gets the CourseEntry at <code>iIndex</code> from the Course.
	</Function>
	<Function name='GetCourseType' return='CourseType' arguments=''>
		Returns the Course's <Link class='ENUM' function='CourseType' />.
	</Function>
	<Function name='GetDisplayFullTitle' return='string' arguments=''>
		Returns the full display title of the Course.
	</Function>
	<Function name='GetEstimatedNumStages' return='int' arguments=''>
		Returns the estimated number of stages for the Course.
	</Function>
	<Function name='GetGroupName' return='string' arguments=''>
		Returns the Course's group name.
	</Function>
	<Function name='GetPlayMode' return='PlayMode' arguments=''>
		Returns the Course's <Link class='ENUM' function='PlayMode' />.
	</Function>
	<Function name='GetTotalSeconds' return='float' arguments=''>
		Returns the total length of the Course in seconds.
	</Function>
	<Function name='GetTranslitFullTitle' return='string' arguments=''>
		Returns the full transliterated title of the Course.
	</Function>
	<Function name='HasMods' return='bool' arguments=''>
		Returns <code>true</code> if the Course has modifiers.
	</Function>
	<Function name='HasTimedMods' return='bool' arguments=''>
		Returns <code>true</code> if the Course has timed modifiers.
	</Function>
	<Function name='IsAutogen' return='bool' arguments=''>
		Returns <code>true</code> if the Course was automatically generated.
	</Function>
</Class>
<Class name='CourseEntry'>
	<Function name='GetSong' return='Song' arguments=''>
		Returns the Song that this CourseEntry corresponds to.
	</Function>
</Class>
<Class name='CharacterManager'>
	<Function name='GetCharacter' return='Character' arguments='string sID'>
		Return the <Link class='Character' /> corresponding to <code>sID</code>.
	</Function>
</Class>
<Class name='Game'>
	<Function name='GetName' return='string' arguments=''>
		Returns the name of the game such as &quot;dance&quot; or &quot;pump&quot;.
	</Function>
</Class>
<Class name='GameSoundManager'>
	<Function name='DimMusic' return='void' arguments='float fVolume, float fDuration'>
		Set the music volume to <code>fVolume</code> for <code>fDuration</code> seconds.
	</Function>
	<Function name='GetPlayerBalance' return='float' arguments='PlayerNumber pn'>
		<!-- XXX: Presumably, 0 is all the way to the left, and 1 is all the way
		          to the right. -->
		Return the sound balance for <code>pn</code>.
	</Function>
	<Function name='PlayOnce' return='void' arguments='string sPath'>
		Play the sound at <code>sPath</code> one time.
	</Function>
</Class>
<Class name='GameState'>
	<Function name='AnyPlayerHasRankingFeats' return='bool' arguments=''>
		Returns <code>true</code> if any player has performed a feat worthy of ranking.
	</Function>
	<Function name='ApplyGameCommand' return='void' arguments='string sCommand, PlayerNumber pn'>
		The second argument is optional. Apply the GameCommand represented by <code>sCommand</code>
		for <code>pn</code>, if given. See <Link class='GameCommand' />.
	</Function>
	<Function name='EnoughCreditsToJoin' return='bool' arguments=''>
		Returns <code>true</code> if enough credits have been inserted to join.
	</Function>
	<Function name='Env' return='table' arguments=''>
		Returns the environment table. See <Link class='GameCommand' />.
	</Function>
	<Function name='GetCoinMode' return='CoinMode'>
		Returns the current <Link class='ENUM' function='CoinMode' />.
	</Function>
	<Function name='GetCoins' return='int' arguments=''>
		Return the number of inserted but unused coins. This number is
		decremented when players join.
	</Function>
	<Function name='GetCoinsNeededToJoin' return='int' arguments=''>
		Return the number of coins needed to join based on the current coin and premium modes
		as well as the number of people joined, if that matters for the premium mode. See
		<Link function='GetCoinMode' /> and <Link function='GetPremium' />.
	</Function>
	<Function name='GetCourseSongIndex' return='int' arguments=''>
		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='GetCurrentCourse' return='Course' arguments=''>
		Return the current <Link class='Course' />.
	</Function>
	<Function name='GetCurrentGame' return='Game' arguments=''>
		Return the current <Link class='Game' />.
	</Function>
	<Function name='GetCurrentSong' return='Song' arguments=''>
		Return the current <Link class='Song' />.
	</Function>
	<Function name='GetCurrentStage' return='Stage' arguments=''>
		Return the current <Link class='Stage' />.
	</Function>
	<Function name='GetCurrentSteps' return='Steps' arguments='PlayerNumber pn'>
		Return the current <Link class='Steps' /> for the specified Player.
	</Function>
	<Function name='GetCurrentStepsCredits' return='multiple' arguments=''>
		Return a variable number of arguments based on the <Link class='Steps' /> being
		played by all players. For each distinct <Link class='Steps' /> being played by
		the players, in increasing <Link class='ENUM' function='PlayerNumber' /> order,
		the difficulty and description of the <Link class='Steps' /> is returned as strings.
		<br />For example,<br />
		<code>local credits = {GAMESTATE:GetCurrentStepsCredits()};</code><br />
		will make a table of the difficulties and descriptions.
	</Function>
	<Function name='GetCurrentStyle' return='Style' arguments=''>
		Return the current <Link class='Style' />.
	</Function>
	<Function name='GetCurrentTrail' return='Trail' arguments=''>
		Return the current <Link class='Trail' />.
	</Function>
	<Function name='GetDefaultSongOptions' return='string' arguments=''>
		Return a string representation of the default song options.
	</Function>
	<Function name='GetEasiestStepsDifficulty' return='Difficulty' arguments=''>
		Return the easiest <Link class='ENUM' function='Difficulty' /> of the
		currently selected steps by all players. For example, if player 1 has
		selected Hard steps and player 2 has selected Medium steps, Medium will
		be returned.
	</Function>
	<Function name='GetEditCourseEntryIndex' return='int' arguments=''>
		<!-- XXX: What is the edit course entry index? -->
	</Function>
	<Function name='GetEditLocalProfile' return='Profile' arguments=''>
		<!-- XXX: What is the EditLocalProfile? -->
		Return the Edit Local <Link class='Profile' /> or <code>nil</code> if
		it does not exist.
	</Function>
	<Function name='GetEditLocalProfileID' return='string' arguments=''>
		<!-- XXX: What is the EditLocalProfileID? -->
	</Function>
	<Function name='GetEditSourceSteps' return='Steps' arguments=''>
		Return the source <Link class='Steps' /> for the editor or <code>nil</code>
		if it does not exist.
	</Function>
	<Function name='GetFreeze' return='bool' arguments=''>
		Returns <code>true</code> if a freeze/stop is active in the song.
	</Function>
	<Function name='GetGameSeed' return='int' arguments=''>
		Return the random seed for the game.
	</Function>
	<Function name='GetGameplayLeadIn' return='bool' arguments=''>
		Return <code>true</code> if the gameplay lead in is enabled. If
		<code>false</code>, gameplay begins immediately. <!-- XXX: I think. -->
	</Function>
	<Function name='GetHumanPlayers' return='{PlayerNumber}' arguments=''>
		Returns an array of <Link class='PlayerNumber' />s corresponding to Human players.
	</Function>
	<Function name='GetMasterPlayerNumber' return='PlayerNumber' arguments=''>
		Returns the master player number.
	</Function>
	<Function name='GetMultiplayer' return='bool' arguments=''>
		Returns <code>true</code> if the game is Multiplayer.
	</Function>
	<Function name='GetNumPlayersEnabled' return='int' arguments=''>
		Returns the number of players enabled.
	</Function>
	<Function name='GetNumSidesJoined' return='int' arguments=''>
		Returns the number of sides joined.
	</Function>
	<Function name='GetNumStagesForCurrentSongAndStepsOrCourse' return='int' arguments=''>
		Returns the number of stages for the current Song and its Steps or the current Course.
	</Function>
	<Function name='GetNumStagesLeft' return='int' arguments='PlayerNumber pn'>
		Returns the number of stages left for player <code>pn</code>.
	</Function>
	<Function name='GetPlayerDisplayName' return='string' arguments='PlayerNumber pn'>
		Returns the display name for player <code>pn</code>.
	</Function>
	<Function name='GetPlayerState' return='PlayerState' arguments='PlayerNumber pn'>
		Returns the PlayerState for player <code>pn</code>.
	</Function>
	<Function name='GetPlayMode' return='PlayMode' arguments=''>
		Returns the current PlayMode.
	</Function>
	<Function name='GetPreferredDifficulty' return='Difficulty' arguments=''>
		Returns the preferred difficulty.
	</Function>
	<Function name='GetPreferredSong' return='Song' arguments=''>
		Returns the preferred song.
	</Function>
	<Function name='GetPreferredSongGroup' return='string' arguments=''>
		Returns the preferred song group.
	</Function>
	<Function name='GetPremium' return='Premium' arguments=''>
		Returns the current Premium.
	</Function>
	<Function name='GetSongBeat' return='float' arguments=''>
		<!-- XXX: Not exactly sure on this. -->
		Returns the current beat of the song.
	</Function>
	<Function name='GetSongBeatVisible' return='float' arguments=''>
		Returns the current visible beat of the song.
	</Function>
	<Function name='GetSongBPS' return='float' arguments=''>
		Returns the song's current beats per second.
	</Function>
	<Function name='GetSongFreeze' return='bool' arguments=''>
		Returns <code>true</code> if the song is currently in a freeze.
	</Function>
	<Function name='GetSongOptionsString' return='string' arguments=''>
		Returns the song options as a string.
	</Function>
	<Function name='GetSortOrder' return='SortOrder' arguments=''>
		Returns the current SortOrder.
	</Function>
	<Function name='GetStageIndex' return='int' arguments=''>
		Returns the current stage index.
	</Function>
	<Function name='GetStageSeed' return='int' arguments=''>
		Return the random seed for the current stage.
	</Function>
	<Function name='HasEarnedExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if an extra stage was earned.
	</Function>
	<Function name='IsAnExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if this is an extra stage.
	</Function>
	<Function name='IsAnyHumanPlayerUsingMemoryCard' return='bool' arguments=''>
		Returns <code>true</code> if any human player is using a memory card.
	</Function>
	<Function name='IsCourseMode' return='bool' arguments=''>
		Returns <code>true</code> if playing in a Course mode.
	</Function>
	<Function name='IsDemonstration' return='bool' arguments=''>
		Returns <code>true</code> if in Demonstration mode.
	</Function>
	<Function name='IsDraw' return='bool' arguments=''>
		Returns <code>true</code> if the match was a draw.
	</Function>
	<Function name='IsEventMode' return='bool' arguments=''>
		Returns <code>true</code> if Event Mode is on, <Link class='GameState' function='SetTemporaryEventMode'>temporary</Link> or otherwise.
	</Function>
	<Function name='IsExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if this is the first extra stage.
	</Function>
	<Function name='IsExtraStage2' return='bool' arguments=''>
		Returns <code>true</code> if this is the second extra stage.
	</Function>
	<Function name='IsHumanPlayer' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> is human.
	</Function>
	<Function name='IsPlayerEnabled' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> is enabled.
	</Function>
	<Function name='IsSideJoined' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> has joined the game.
	</Function>
	<Function name='PlayersCanJoin' return='bool' arguments=''>
		Returns <code>true</code> if players can join the game.
	</Function>
	<Function name='SaveLocalData' return='void' arguments=''>
		Saves the bookkeeping and machine profile data.
	</Function>
</Class>
<Class name='HighScore'>
	<Function name='GetDate' return='DateTime' arguments=''>
		Returns the date and time the high score was achieved.
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the name associated with the high score.
	</Function>
	<Function name='GetPercentDP' return='float' arguments=''>
		Returns the percentage of dance points associated with the high score.
	</Function>
	<Function name='GetScore' return='int' arguments=''>
		Returns the score associated with the high score.
	</Function>
	<Function name='GetSurvivalSeconds' return='float' arguments=''>
		Returns the number of seconds survived associated with the high score.
	</Function>
</Class>
<Class name='LifeMeter'>
	<Function name='GetLife' return='float' arguments=''>
		Returns the amount of life left in the LifeMeter as a float in the range 0..1.
	</Function>
	<Function name='IsFailing' return='bool' arguments=''>
		Returns <code>true</code> if failing.
	</Function>
	<Function name='IsHot' return='bool' arguments=''>
		Returns <code>true</code> if the LifeMeter is "hot".
	</Function>
	<Function name='IsInDanger' return='bool' arguments=''>
		Returns <code>true</code> if in danger.
	</Function>
</Class>
<Class name='MemoryCardManager'>
	<Function name='GetCardState' return='MemoryCardState' arguments='PlayerNumber pn'>
		Return the state for player <code>pn</code>.
	</Function>
</Class>
<Class name='MenuTimer'>
	<Function name='pause' return='void' arguments=''>
		Pauses the MenuTimer, stopping it from counting down.
	</Function>
	<Function name='setseconds' return='void' arguments='float fSeconds'>
		Sets the MenuTimer's value to <code>fSeconds</code>.
	</Function>
	<Function name='silent' return='void' arguments='bool bSilent'>
		Sets the MenuTimer's silent setting to <code>bSilent</code>.
	</Function>
	<Function name='stealth' return='void' arguments='bool bStealth'>
		Sets the MenuTimer's stealth setting to <code>bStealth</code>. If
		<code>true</code>, the timer will be invisible and silent.
	</Function>
	<Function name='stop' return='void'>
		Stops the MenuTimer by setting it to 0 and pausing.
	</Function>
</Class>
<Class name='MessageManager'>
	<Function name='Broadcast' return='void' arguments='string sMessage, table paramTable'>
		Broadcast the message to all listeners subscribed to <code>sMessage</code>. The
		second argument is an optional table of parameters. It may be omitted or explicitly
		set to <code>nil</code>.
	</Function>
</Class>
<Class name='PlayerInfo'>
	<Function name='GetLifeMeter' return='LifeMeter' arguments='PlayerNumber pn'>
		Returns the <Link class='LifeMeter' /> of player <code>pn</code>.
	</Function>
</Class>
<Class name='PlayerStageStats'>
	<Function name='FullCombo' return='bool' arguments=''>
		Returns <code>true</code> if a full combo (TNS_W3 and up) was obtained.
	</Function>
	<Function name='GetActualDancePoints' return='int' arguments=''>
		Returns the number of Dance Points obtained by the player.
	</Function>
	<Function name='GetCaloriesBurned' return='float' arguments=''>
		Returns the number of calories burned.
	</Function>
	<Function name='GetCurrentCombo' return='int' arguments=''>
		Returns the player's current combo.
	</Function>
	<Function name='GetCurrentLife' return='float' arguments=''>
		Returns the player's current life from 0..1.
	</Function>
	<Function name='GetCurrentScoreMultiplier' return='int' arguments=''>
		Returns the player's current score multiplier.
	</Function>
	<Function name='GetGrade' return='Grade' arguments=''>
		Returns the player's grade.
	</Function>
	<Function name='GetHoldNoteScores' return='int' arguments='HoldNoteScore hns'>
		Returns the number of judgments for a specified HoldNoteScore.
	</Function>
	<Function name='GetLifeRemainingSeconds' return='float' arguments=''>
		Returns the player's life remaining seconds.
	</Function>
	<Function name='GetPercentDancePoints' return='float' arguments=''>
		Returns the player's Dance Point percentage.
	</Function>
	<Function name='GetPossibleDancePoints' return='int' arguments=''>
		Returns the number of possible Dance Points.
	</Function>
	<Function name='GetScore' return='int' arguments=''>
		Returns the score.
	</Function>
	<Function name='GetTapNoteScores' return='int' arguments='TapNoteScore tns'>
		Returns the number of judgments for a specified TapNoteScore.
	</Function>
	<Function name='IsDisqualified' return='bool' arguments=''>
		Returns <code>true</code> if the player was disqualified from ranking.
	</Function>
</Class>
<Class name='PlayerState'>
	<Function name='GetPlayerNumber' return='PlayerNumber' arguments=''>
		Returns the player number for this PlayerState.
	</Function>
	<Function name='SetPlayerOptions' return='string' arguments='ModsLevel ml, string sPlayerOptions'>
		Sets the player options to <code>sPlayerOptions</code> for the specified ModsLevel.
	</Function>
	<Function name='GetPlayerOptions' return='string' arguments='ModsLevel ml'>
		Returns a string of player options for the specified ModsLevel.
	</Function>
</Class>
<Class name='PrefsManager'>
	<Function name='GetPreference' return='various' arguments='string sPreference'>
		Return the value of the preference <code>sPreference</code>.
	</Function>
	<Function name='SetPreference' return='void' arguments='string sPreference, various value'>
		Set the value of the preference <code>sPreference</code> to <code>value</code>.
	</Function>
	<Function name='SetPreferenceToDefault' return='void' arguments='string sPreference'>
		Reset preference <code>sPreference</code> to the default value.
	</Function>
</Class>
<Class name='Profile'>
	<Function name='GetCaloriesBurnedToday' return='float' arguments=''>
		Returns the number of calories burned during the current day.
	</Function>
	<Function name='GetDisplayName' return='string' arguments=''>
		Returns the profile's display name.
	</Function>
	<Function name='GetNumToasties' return='int' arguments=''>
		Returns the number of Toasties gotten using the specified profile.
	</Function>
	<Function name='GetMostPopularCourse' return='Course' arguments=''>
		Returns the profile's most popular course.
	</Function>
	<Function name='GetMostPopularSong' return='Song' arguments=''>
		Returns the profile's most popular song.
	</Function>
	<Function name='GetNumTotalSongsPlayed' return='int' arguments=''>
		Returns the total number of songs played with the profile.
	</Function>
	<Function name='GetSongNumTimesPlayed' return='int' arguments='Song s'>
		Returns the number of times song <code>s</code> has been played with the profile.
	</Function>
	<Function name='GetTotalHands' return='int' arguments=''>
		Returns the number of Hands stepped on.
	</Function>
	<Function name='GetTotalHolds' return='int' arguments=''>
		Returns the number of successful Holds.
	</Function>
	<Function name='GetTotalJumps' return='int' arguments=''>
		Returns the number of Jumps stepped on.
	</Function>
	<Function name='GetTotalMines' return='int' arguments=''>
		Returns the number of Mines stepped on.
	</Function>
	<Function name='GetTotalNumSongsPlayed' return='int' arguments=''>
		Returns the total number of songs played with the profile.
	</Function>
	<Function name='GetTotalRolls' return='int' arguments=''>
		Returns the number of successful Rolls.
	</Function>
</Class>
<Class name='ProfileManager'>
	<Function name='GetMachineProfile' return='Profile' arguments=''>
		Retuns the machine profile.
	</Function>
	<Function name='GetNumLocalProfiles' return='int' arguments=''>
		Retuns the amount of local profiles.
	</Function>
	<Function name='SaveMachineProfile' return='void' arguments=''>
		Saves the machine profile.
	</Function>
</Class>
<Class name='RadarValues'>
	<Function name='GetValue' return='int' arguments='RadarCategory rc'>
		Returns the value of <code>rc</code> from <Link class='Steps' function='GetRadarValues' />.
	</Function>
</Class>
<Class name='RageDisplay'>
	<Function name='GetDisplayHeight' return='int' arguments=''>
		Return the height of the display.
	</Function>
	<Function name='GetDisplayWidth' return='int' arguments=''>
		Return the width of the display.
	</Function>
</Class>
<Class name='RageFile'>
	<Description>
		These commands require a RageFile handle. You can create one using
		<Link class='RageFileUtil' />.
	</Description>
	<Function name='Close' return='void' arguments=''>
		Closes the file and releases it from memory.
	</Function>
	<Function name='Open' return='bool' arguments='string sPath, int iAccessType'>
		Opens a file at <code>sPath</code> (relative to the StepMania root directory).<br />
		<code>iAccessType</code> can be set to read (<code>1</code>), write (<code>2</code>), stream (<code>4</code>) or flush to disk on close (<code>8</code>).<br />
		These can also be combined with addition. For example, to set up read and write, set <code>iAccessType</code> to <code>3</code> (1+2).
	</Function>
</Class>
<Class name='RageInput'>
	<Function name='GetDescriptions' return='{string}' arguments=''>
		Return an array of connected input device descriptions.
	</Function>
</Class>
<Class name='RageSound'>
	<Description>
		See <Link class='ActorSound' /> for loading a sound.
	</Description>
	<Function name='SetProperty' return='void' arguments='string sProperty, float fVal'>
		Set the value of <code>sProperty</code> to <code>fVal</code>. The supported properties depend on how the associated <Link class='ActorSound' /> was loaded.
	</Function>
	<Function name='pitch' return='void' arguments='float fPitch'>
		Set the pitch to <code>fPitch</code>. The associated <Link class='ActorSound' /> have <code>SupportsRateChanging = true</code> on load.
	</Function>
	<Function name='speed' return='void' arguments='float fSpeed'>
		Set the speed (that is, the rate at which the sound plays) to <code>fSpeed</code>. The associated <Link class='ActorSound' /> must have <code>SupportsRateChanging = true</code> on load.
	</Function>
</Class>
<Class name='RageTexture'>
	<Function name='GetTextureCoordRect' return='{float}' arguments=''>
		Return the texture coordinate rectangle as <code>{left, top, right, bottom}</code>.
	</Function>
	<Function name='loop' return='void' arguments='bool bLoop'>
		Sets the animation or movie looping to <code>bLoop</code>.
	</Function>
	<Function name='position' return='void' arguments='float fPos'>
		Sets the animation or movie position to <code>fPos</code>.
	</Function>
	<Function name='rate' return='void' arguments='float fRate'>
		Sets the animation or movie playback rate to <code>fRate</code>.
	</Function>
</Class>
<Class name='RollingNumbers'>
	<Function name='targetnumber' return='void' arguments='float f'>
		Sets the target number to <code>f</code>.
	</Function>
</Class>
<Class name='Screen'>
	<Function name='GetNextScreenName' return='string' arguments=''>
		Returns the name of the next Screen.
	</Function>
	<Function name='lockinput' return='void' arguments='float f'>
		Locks input for <code>f</code> seconds.
	</Function>
	<Function name='PostScreenMessage' return='void' arguments='string sScreenMsg'>
		Posts a message with the text <code>sScreenMsg</code> to the Screen.
	</Function>
</Class>
<Class name='ScreenGameplay'>
	<Function name='Center1Player' return='bool' arguments=''>
		Returns <code>true</code> if a single <Link class='Player' /> has its NoteField centered.
	</Function>
	<Function name='GetLifeMeter' return='LifeMeter' arguments='PlayerNumber pn'>
		Returns the <Link class='LifeMeter' /> for the specified <Link class='ENUM' function='PlayerNumber' /> <code>pn</code>.
	</Function>
	<Function name='SetNewScreen' return='void' arguments='string s'>
		Sets the next Screen to be loaded.
	</Function>
	<Function name='GetNextCourseSong' return='Song' arguments=''>
		Returns the next <Link class='Song' /> in the current <Link class='Course' />.
	</Function>
</Class>
<Class name='ScreenManager'>
	<Function name='GetTopScreen' return='Screen' arguments=''>
		Gets the screen at the top of the screen stack.
	</Function>
	<Function name='ScreenClassExists' return='bool' arguments='string s'>
		Returns <code>true</code> if screen class <code>s</code> exists.
	</Function>
	<Function name='SetNewScreen' return='void' arguments='string s'>
		Sets the next screen to <code>s</code>.
	</Function>
	<Function name='SystemMessage' return='void' arguments='string s'>
		Broadcasts a system message.
	</Function>
</Class>
<Class name='ScreenProfileLoad'>
	<Function name='HaveProfileToLoad' return='bool' arguments=''>
		Returns <code>true</code> if there is a profile that can be loaded.
	</Function>
</Class>
<Class name='ScreenProfileSave'>
	<Function name='HaveProfileToSave' return='bool' arguments=''>
		Returns <code>true</code> if there is a profile that can be saved.
	</Function>
</Class>
<Class name='Song'>
	<Function name='GetAllSteps' return='{Steps}' arguments=''>
		Returns an array of all the available <Link class='Steps' /> objects for a <Link class='Song' />.
	</Function>
	<Function name='GetBackgroundPath' return='string' arguments=''>
		Returns the path to the song's background image.
	</Function>
	<Function name='GetBannerPath' return='string' arguments=''>
		Returns the path to the song's banner.
	</Function>
	<Function name='GetDisplayArtist' return='string' arguments=''>
		Returns the displayed artist of the song.
	</Function>
	<Function name='GetDisplayFullTitle' return='string' arguments=''>
		Returns the displayed full title of the song, including subtitle.
	</Function>
	<Function name='GetDisplayMainTitle' return='string' arguments=''>
		Returns the displayed main title 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>
	<Function name='GetSongDir' return='string' arguments=''>
		Returns the song's directory.
	</Function>
	<Function name='GetTimingData' return='TimingData' arguments=''>
		Returns the song's TimingData.
	</Function>
	<Function name='GetTranslitArtist' return='string' arguments=''>
		Returns the transliterated artist of the song.
	</Function>
	<Function name='GetTranslitFullTitle' return='string' arguments=''>
		Returns the transliterated full title of the song, including subtitle.
	</Function>
	<Function name='GetTranslitMainTitle' return='string' arguments=''>
		Returns the transliterated main title of the song.
	</Function>
	<Function name='HasStepsTypeAndDifficulty' return='bool' arguments='StepsType st, Difficulty d'>
		Returns <code>true</code> if the song has steps for the specified difficulty in <code>st</code>.
	</Function>
	<Function name='IsLong' return='bool' arguments=''>
		Returns <code>true</code> if the song meets the criteria for a &quot;Long Version&quot;.
	</Function>
	<Function name='IsMarathon' return='bool' arguments=''>
		Returns <code>true</code> if the song meets the criteria for &quot;Marathon&quot; length.
	</Function>
	<Function name='IsTutorial' return='bool' arguments=''>
		Returns <code>true</code> if the song only has Beginner steps.
	</Function>
	<Function name='MusicLengthSeconds' return='float' arguments=''>
		Returns the length of the song in seconds.
	</Function>
</Class>
<Class name='SongManager'>
	<Function name='GetAllCourses' return='{Course}' arguments='bool bIncludeAutogen'>
		Returns an array of all the installed courses.
	</Function>
	<Function name='GetAllSongs' return='{Song}' arguments=''>
		Returns an array of all the installed songs.
	</Function>
	<Function name='GetNumAdditionalCourses' return='int' arguments=''>
		Returns the number of courses loaded via Additional folders.
	</Function>
	<Function name='GetNumAdditionalSongs' return='int' arguments=''>
		Returns the number of songs loaded via Additional folders.
	</Function>
	<Function name='GetNumCourseGroups' return='int' arguments=''>
		Returns the number of course groups.
	</Function>
	<Function name='GetNumCourses' return='int' arguments=''>
		Returns the number of courses.
	</Function>
	<Function name='GetNumSongGroups' return='int' arguments=''>
		Returns the number of song groups.
	</Function>
	<Function name='GetNumSongs' return='int' arguments=''>
		Returns the number of songs.
	</Function>
	<Function name='GetRandomCourse' return='Course' arguments=''>
		Returns a random course.
	</Function>
	<Function name='GetRandomSong' return='Song' arguments=''>
		Returns a random song.
	</Function>
	<Function name='GetSongColor' return='color' arguments='Song s'>
		Returns the song color of <code>s</code>.
	</Function>
	<Function name='GetSongGroupColor' return='color' arguments='string sGroupName'>
		Returns the song group color of <code>sGroupName</code>.
	</Function>
</Class>
<Class name='Sprite'>
	<Function name='GetAnimationLengthSeconds' return='float' arguments=''>
		Returns the length of the animation in seconds.
	</Function>
	<Function name='GetTexture' return='RageTexture' arguments=''>
		Returns the Sprite's texture.
	</Function>
	<Function name='LinearFrames' return='{Frame}' arguments='int iNumFrames, float fSeconds'>
		Returns a <code>Frames</code> table consisting of <code>iNumFrames</code> frames lasting for a total of <code>fSeconds</code> seconds. This function is not a member function and should be used as <code>Frames = Sprite.LinearFrames( 5, 2.6 )</code>.
	</Function>
	<Function name='Load' return='void' arguments='string sPath'>
		If <code>sPath</code> is <code>nil</code>, then unload the texture. Otherwise, load the texture at path <code>sPath</code>.
	</Function>
	<Function name='LoadBackground' return='void' arguments='string sPath'>
		Load the song background texture at <code>sPath</code>.
	</Function>
	<Function name='LoadBanner' return='void' arguments='string sPath'>
		Load the song banner texture at <code>sPath</code>.
	</Function>
	<Function name='LoadFromSongBackground' return='void' arguments='Song song'>
		Load the texture for <code>song</code>'s background.
	</Function>
	<Function name='LoadFromSongBanner' return='void' arguments='Song song'>
		Load the texture for <code>song</code>'s banner.
	</Function>
	<Function name='SetCustomImageRect' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		<!-- XXX: What does this do? -->
	</Function>
	<Function name='SetEffectMode' return='void' arguments='EffectMode mode'>
		Set the <Link class='ENUM' function='EffectMode' /> to <code>mode</code>.
	</Function>
	<Function name='SetTexture' return='void' arguments='RageTexture texture'>
		Set the texture to <code>texture</code>.
	</Function>
	<Function name='addimagecoords' return='void' arguments='float fX, float fY'>
		<!-- XXX: What does this do? -->
	</Function>
	<Function name='customtexturerect' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		<!-- XXX: What does this do? -->
	</Function>
	<Function name='loop' return='void' arguments='bool bLoop'>
		Call <Link class='RageTexture' function='loop'><code>RageTexture:loop</code></Link><code>( bLoop )</code> on the texture.
	</Function>
	<Function name='position' return='void' arguments='float fPos'>
		Call <Link class='RageTexture' function='position'><code>RageTexture:position</code></Link><code>( fPos )</code> on the texture.
	</Function>
	<Function name='rate' return='void' arguments='float fRate'>
		Call <Link class='RageTexture' function='rate'><code>RageTexture:rate</code></Link><code>( fRate )</code> on the texture.
	</Function>
	<Function name='scaletoclipped' return='void' arguments='float fWidth, float fHeight'>
		Scale the Sprite to width <code>fWidth</code> and height <code>fHeight</code> clipping if the dimensions do not match.
	</Function>
	<Function name='setstate' return='void' arguments='int iNewState'>
		Set the Sprite's state to <code>iNewState</code>.
	</Function>
	<Function name='stretchtexcoords' return='void' arguments='float fX, float fY'>
		<!-- XXX: What does this do? -->
	</Function>
	<Function name='texcoordvelocity' return='void' arguments='float fVelX, float fVelY'>
		Set the texture coordinate velocity which controls how the Sprite changes as it animates. <!-- XXX: Can we be more specific? -->
	</Function>
</Class>
<Class name='Steps'>
	<Function name='GetDescription' return='string' arguments=''>
		Returns the Steps description.
	</Function>
	<Function name='GetDifficulty' return='Difficulty' arguments=''>
		Returns the Steps difficulty.
	</Function>
	<Function name='GetFilename' return='string' arguments=''>
		Returns the Steps filename.
	</Function>
	<Function name='GetMeter' return='int' arguments=''>
		Returns the numerical difficulty of the Steps.
	</Function>
	<Function name='GetRadarValues' return='RadarValues' arguments='PlayerNumber pn'>
		Returns the complete list of RadarValues for player <code>pn</code>. Use <Link class='RadarValues' function='GetValue' /> to grab a specific value.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the Steps type.
	</Function>
	<Function name='IsAutogen' return='bool' arguments=''>
		Returns <code>true</code> if the steps were automatically generated.
	</Function>
</Class>
<Class name='Style'>
	<Function name='GetName' return='string' arguments=''>
		Returns the name of the Style.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the StepsType for this Style.
	</Function>
	<Function name='GetStyleType' return='StyleType' arguments=''>
		Returns the StyleType for this Style.
	</Function>
</Class>
<Class name='TextBanner'>
	<Function name='SetFromSong' return='void' arguments='Song s'>
		Loads the TextBanner's child elements from a <Link class='Song' />.
	</Function>
	<Function name='SetFromString' return='void' arguments='string sDisplayTitle, string sTranslitTitle, string sDisplaySubTitle, string sTranslitSubTitle, string sDisplayArtist, string sTranslitArtist'>
		Loads the TextBanner's child elements from strings.
	</Function>
</Class>
<Class name='ThemeManager'>
	<Function name='GetMetric' return='string' arguments='string ClassName, string Element'>
		Returns the value of <code>Element</code> in <code>Class</code> from metrics.ini.
	</Function>
	<Function name='GetNumSelectableThemes' return='int' arguments=''>
		Returns the number of selectable themes.
	</Function>
	<Function name='GetPathB' return='string' arguments='string ClassName, string Element'>
		Returns the path of <code>ClassName Element</code> in the BGAnimations folder.
	</Function>
	<Function name='GetPathF' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Fonts folder.
	</Function>
	<Function name='GetPathG' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Graphics folder.
	</Function>
	<Function name='GetPathS' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Sounds folder.
	</Function>
	<Function name='GetString' return='string' arguments='string ClassName, string Element'>
		Returns the value of <code>Element</code> in <code>Class</code> for the currently loaded language.
	</Function>
</Class>
<Class name='TimingData'>
	<Function name='HasStops' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains stops.
	</Function>
</Class>
<Class name='Trail'>
	<Function name='GetArtists' return='{string}' arguments=''>
		Returns an array with all the artists in the Trail.
	</Function>
	<Function name='GetDifficulty' return='Difficulty' arguments=''>
		Returns the Trail's difficulty.
	</Function>
	<Function name='GetMeter' return='int' arguments=''>
		Returns the Trail's difficulty rating.
	</Function>
	<Function name='GetRadarValues' return='RadarValues' arguments=''>
		Returns the Trail's RadarValues.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the Trail's StepsType.
	</Function>
</Class>
<Class name='WheelBase'>
	<Function name='GetWheelItem' return='WheelItemBaseData' arguments='int iIndex'>
		Returns the WheelItem at index <code>iIndex</code>.
	</Function>
</Class>
</Classes>
<!-- Enums -->
<Enums>
<Enum name='BlendMode'>
	<Description>
		Blending modes. See <Link class='Actor' function='blend' />.
	</Description>
</Enum>
<Enum name='HorizAlign'>
	<Description>
		Horizontal alignment. See <Link class='Actor' function='horizalign' />.
	</Description>
</Enum>
<Enum name='VertAlign'>
	<Description>
		Vertical alignment. See <Link class='Actor' function='vertalign' />.
	</Description>
</Enum>
</Enums>
</Documentation>
