merge+fix NotesLoaderBMS.cpp

This commit is contained in:
Thai Pangsakulyanont
2011-03-15 21:57:04 +07:00
214 changed files with 2171 additions and 1401 deletions
+3
View File
@@ -28,6 +28,8 @@ Thumbs.db
Docs/doxygen Docs/doxygen
PBProject/build PBProject/build
Xcode/build Xcode/build
Xcode/stepmania.xcodeproj/xcuserdata
Xcode/stepmania.xcodeproj/project.xcworkspace/xcuserdata
src/build-* src/build-*
src/Release-* src/Release-*
src/libtomcrypt/build-* src/libtomcrypt/build-*
@@ -35,6 +37,7 @@ src/libtomcrypt/Release-*
src/libtommath/build-* src/libtommath/build-*
src/libtommath/Release-* src/libtommath/Release-*
src/*.old src/*.old
src/.deps
ver.cpp ver.cpp
lib*_link.a lib*_link.a
Data/UserPrefs Data/UserPrefs
+23 -18
View File
@@ -1,24 +1,29 @@
varying vec2 texCoords; uniform sampler2D Texture0;
varying vec3 normal, viewVector;
varying vec4 lightVector, lightColor;
uniform sampler2D Texture1; varying vec2 vCoord;
varying vec3 vNor;
void main(void) const vec4 shadowColor = vec4(0.6, 0.75, 0.9, 1.0);
{
float intensity = dot(normal, lightVector.xyz);
float fresnel = pow(1.0 - dot(viewVector, normal), 5.0);
fresnel = fresnel < 0.5 ? 0.0 : 0.4;
float shade = 1.0; void main() {
if( intensity > 0.35 ) vec3 nor, light;
shade = clamp(1.0 * intensity + 0.4, 0.0, 1.0); nor = normalize(vNor);
else
shade = clamp(0.85 * intensity + 0.25, 0.4, 0.6);
shade = clamp(shade - fresnel, 0.3, 1.0);
vec4 vcol = gl_FrontMaterial.diffuse; vec4 diffuse, specular, color, lightSource;
vec4 tex = texture2D(Texture1, texCoords); float ambient = length(gl_FrontMaterial.ambient.rgb);
lightSource = gl_LightSource[0].position;
light = normalize(gl_ModelViewMatrix * lightSource).xyz;
gl_FragColor = lightColor * vec4(tex.rgb * shade, 1.0); color = texture2D(Texture0, vCoord.st);
float intensity = max(dot(light,nor), 0.0);
if (intensity < 0.5) {
intensity *= 0.5;
color *= shadowColor;
}
intensity = min(clamp(intensity, ambient, 1.0) + 0.25, 1.0);
gl_FragColor = color * intensity;
// Don't allow transparency. Bad Things will happen.
gl_FragColor.a = 1.0;
} }
+6 -13
View File
@@ -1,16 +1,9 @@
varying vec3 normal, viewVector; varying vec2 vCoord;
varying vec4 lightVector, lightColor; varying vec3 vNor;
varying vec2 texCoords;
void main(void) void main() {
{ vCoord = gl_MultiTexCoord0.st;
texCoords = gl_MultiTexCoord0.st; vNor = gl_Normal.xyz;
vec4 objectPos = gl_ModelViewMatrix * gl_Vertex; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
normal = gl_NormalMatrix * gl_Normal;
lightVector = normalize(gl_LightSource[0].position);
lightColor = gl_LightSource[0].diffuse;
viewVector = normalize(vec3(0) - objectPos.xyz);
gl_Position = ftransform();
} }
+3
View File
@@ -0,0 +1,3 @@
void main() {
gl_FragColor = vec4(0.25, 0.125, 0.125, 1.0);
}
+7
View File
@@ -0,0 +1,7 @@
void main() {
vec4 position = gl_Vertex + vec4(gl_Normal, 1.0) * 0.125;
// prevent skewing
position.w = 1.0;
gl_Position = gl_ModelViewProjectionMatrix * position;
}
+6
View File
@@ -9,6 +9,12 @@ change to JSON, but it is unsure if this will be done.
Implement .ssc at your own risk. Implement .ssc at your own risk.
________________________________________________________________________________ ________________________________________________________________________________
[v0.55] - Wolfman2000
* Add #COMBOS tag to the Song and Steps (does nothing here).
[v0.54] - Wolfman2000
* Add #ATTACKS tag to the Notedata sections. Right now it does nothing.
[v0.53] - Wolfman2000 [v0.53] - Wolfman2000
* Added Fakes to the RadarCategories. Start parsing between versions. * Added Fakes to the RadarCategories. Start parsing between versions.
* Always write out the latest version to cache and hard drive. * Always write out the latest version to cache and hard drive.
+40 -2
View File
@@ -10,9 +10,48 @@ supported but exist anyways.)
_____________________________________________________________________________ _____________________________________________________________________________
================================================================================ ================================================================================
sm-ssc v1.2.3 | 2011022? sm-ssc v1.2.4 | 20110???
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
20110313
--------
* [NotesWriterSM] Allow for either the #DESCRIPTION or #CREDIT tags to be used
for the .sm format's description token. [Wolfman2000]
* [ScreenEdit] Add Tap Note Cycling to allow inputting all of the taps. The way
to make holds and rolls are still the same as before. [Wolfman2000]
================================================================================
sm-ssc v1.2.3 | 20110323
--------------------------------------------------------------------------------
20110309
--------
* [MusicWheelItem] Added Label param, renamed SongGroup param to Text. [AJ]
20110308
--------
* [WheelBase] Add GetCurrentIndex and GetNumItems Lua bindings. [AJ]
* [ScreenSelectMusic] Add GetMusicWheel Lua binding. [AJ]
* Added custom MusicWheel items. [AJ]
* [MeterDisplay] Add Lua binding. "Allow setting and changing the width
dynamically. Phase out the "StreamWidth" node property; set it with
SetStreamWidth instead." [Glenn Maynard]
20110305
--------
* Added #COMBOS tag to the .ssc format. [Wolfman2000]
20110302
--------
* [ScreenGameplaySyncMachine] Allow themers to use either .ssc or .sm files. [AJ]
* [ScreenHowToPlay] Allow themers to use either .ssc or .sm files. [AJ]
* [ScreenGameplay] Footer to prevent 'arrow overflow' [Midiman]
20110301
--------
* Allow Tickcount Segments to have a value of 0 to better replicate some
charts in the Pump series. [Wolfman2000]
20110228 20110228
-------- --------
* Add Fakes to the RadarCategories. [Wolfman2000] * Add Fakes to the RadarCategories. [Wolfman2000]
@@ -56,7 +95,6 @@ sm-ssc v1.2.3 | 2011022?
* [ScreenEdit] Display the Player Number for Routine mode. [Wolfman2000] * [ScreenEdit] Display the Player Number for Routine mode. [Wolfman2000]
* [ScreenEdit] Add format string metrics for the right hand side of the editor. * [ScreenEdit] Add format string metrics for the right hand side of the editor.
[Wolfman2000] [Wolfman2000]
* [ScreenGameplaySyncMachine] Allow themes to use either .ssc or .sm files. [AJ]
20110221 20110221
-------- --------
+36 -7
View File
@@ -42,10 +42,10 @@
<Function name='GamePrefAutoSetStyle'/> <Function name='GamePrefAutoSetStyle'/>
<Function name='GamePrefComboOnRolls'/> <Function name='GamePrefComboOnRolls'/>
<Function name='GamePrefComboUnderField'/> <Function name='GamePrefComboUnderField'/>
<Function name='GamePrefDefaultFail'/>
<Function name='GamePrefNotePosition'/> <Function name='GamePrefNotePosition'/>
<Function name='GetCoursesToShowRanking'/> <Function name='GetCoursesToShowRanking'/>
<Function name='GetCustomDifficulty'/> <Function name='GetCustomDifficulty'/>
<Function name='GetDefaultArrowSpacing'/>
<Function name='GetDefaultOptionLines'/> <Function name='GetDefaultOptionLines'/>
<Function name='GetDirectRadar'/> <Function name='GetDirectRadar'/>
<Function name='GetEditModeSubScreens'/> <Function name='GetEditModeSubScreens'/>
@@ -177,11 +177,11 @@
<Function name='TrailToCustomDifficulty'/> <Function name='TrailToCustomDifficulty'/>
<Function name='URLEncode'/> <Function name='URLEncode'/>
<Function name='UnlockRewardTypeToLocalizedString'/> <Function name='UnlockRewardTypeToLocalizedString'/>
<Function name='UserPrefAdjustSpeed'/>
<Function name='UserPrefAutoSetStyle'/> <Function name='UserPrefAutoSetStyle'/>
<Function name='UserPrefComboOnRolls'/> <Function name='UserPrefComboOnRolls'/>
<Function name='UserPrefComboUnderField'/> <Function name='UserPrefComboUnderField'/>
<Function name='UserPrefFlashyCombo'/> <Function name='UserPrefFlashyCombo'/>
<Function name='UserPrefGameplayFooter'/>
<Function name='UserPrefGameplayShowScore'/> <Function name='UserPrefGameplayShowScore'/>
<Function name='UserPrefGameplayShowStepsDisplay'/> <Function name='UserPrefGameplayShowStepsDisplay'/>
<Function name='UserPrefLongFail'/> <Function name='UserPrefLongFail'/>
@@ -672,6 +672,7 @@
<Function name='AnyPlayerHasRankingFeats'/> <Function name='AnyPlayerHasRankingFeats'/>
<Function name='ApplyGameCommand'/> <Function name='ApplyGameCommand'/>
<Function name='ClearStageModifiersIllegalForCourse'/> <Function name='ClearStageModifiersIllegalForCourse'/>
<Function name='Dopefish'/>
<Function name='EnoughCreditsToJoin'/> <Function name='EnoughCreditsToJoin'/>
<Function name='Env'/> <Function name='Env'/>
<Function name='GetCharacter'/> <Function name='GetCharacter'/>
@@ -801,6 +802,10 @@
<Class base='ActorFrame' name='HoldJudgment'> <Class base='ActorFrame' name='HoldJudgment'>
<Function name='LoadFromMultiPlayer'/> <Function name='LoadFromMultiPlayer'/>
</Class> </Class>
<Class name='InputFilter'>
<Function name='GetMouseX'/>
<Function name='GetMouseY'/>
</Class>
<Class base='ActorFrame' name='LifeMeter'> <Class base='ActorFrame' name='LifeMeter'>
<Function name='GetLife'/> <Function name='GetLife'/>
<Function name='IsFailing'/> <Function name='IsFailing'/>
@@ -826,6 +831,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>
@@ -856,9 +864,11 @@
<Class base='ActorFrame' name='OptionRow'> <Class base='ActorFrame' name='OptionRow'>
<Function name='FirstItemGoesDown'/> <Function name='FirstItemGoesDown'/>
<Function name='GetChoiceInRowWithFocus'/> <Function name='GetChoiceInRowWithFocus'/>
<Function name='GetLayoutType'/>
<Function name='GetName'/> <Function name='GetName'/>
<Function name='GetNumChoices'/> <Function name='GetNumChoices'/>
<Function name='GetRowTitle'/> <Function name='GetRowTitle'/>
<Function name='GetSelectType'/>
<Function name='HasFocus'/> <Function name='HasFocus'/>
<Function name='OneChoiceForAllPlayers'/> <Function name='OneChoiceForAllPlayers'/>
</Class> </Class>
@@ -876,6 +886,9 @@
<Function name='GetLifeMeter'/> <Function name='GetLifeMeter'/>
<Function name='GetStepsQueueWrapped'/> <Function name='GetStepsQueueWrapped'/>
</Class> </Class>
<Class name='PlayerOptions'>
<Function name='GetNoteSkin'/>
</Class>
<Class name='PlayerStageStats'> <Class name='PlayerStageStats'>
<Function name='FullCombo'/> <Function name='FullCombo'/>
<Function name='FullComboOfScore'/> <Function name='FullComboOfScore'/>
@@ -917,6 +930,7 @@
<Function name='GetPlayerNumber'/> <Function name='GetPlayerNumber'/>
<Function name='GetPlayerOptions'/> <Function name='GetPlayerOptions'/>
<Function name='GetPlayerOptionsArray'/> <Function name='GetPlayerOptionsArray'/>
<Function name='GetPlayerOptionsString'/>
<Function name='SetPlayerOptions'/> <Function name='SetPlayerOptions'/>
</Class> </Class>
<Class name='PrefsManager'> <Class name='PrefsManager'>
@@ -1100,6 +1114,7 @@
</Class> </Class>
<Class base='ScreenWithMenuElements' name='ScreenSelectMusic'> <Class base='ScreenWithMenuElements' name='ScreenSelectMusic'>
<Function name='GetGoToOptions'/> <Function name='GetGoToOptions'/>
<Function name='GetMusicWheel'/>
<Function name='setupcoursestagemods'/> <Function name='setupcoursestagemods'/>
<Function name='setupmusicstagemods'/> <Function name='setupmusicstagemods'/>
</Class> </Class>
@@ -1245,6 +1260,7 @@
</Class> </Class>
<Class name='Steps'> <Class name='Steps'>
<Function name='GetAuthorCredit'/> <Function name='GetAuthorCredit'/>
<Function name='GetChartStyle'/>
<Function name='GetDescription'/> <Function name='GetDescription'/>
<Function name='GetDifficulty'/> <Function name='GetDifficulty'/>
<Function name='GetFilename'/> <Function name='GetFilename'/>
@@ -1353,6 +1369,8 @@
<Function name='UnlockEntryIndex'/> <Function name='UnlockEntryIndex'/>
</Class> </Class>
<Class base='ActorFrame' name='WheelBase'> <Class base='ActorFrame' name='WheelBase'>
<Function name='GetCurrentIndex'/>
<Function name='GetNumItems'/>
<Function name='GetWheelItem'/> <Function name='GetWheelItem'/>
<Function name='IsLocked'/> <Function name='IsLocked'/>
<Function name='IsSettled'/> <Function name='IsSettled'/>
@@ -1583,6 +1601,10 @@
<EnumValue name='&apos;JudgmentLine_Held&apos;' value='6'/> <EnumValue name='&apos;JudgmentLine_Held&apos;' value='6'/>
<EnumValue name='&apos;JudgmentLine_MaxCombo&apos;' value='7'/> <EnumValue name='&apos;JudgmentLine_MaxCombo&apos;' value='7'/>
</Enum> </Enum>
<Enum name='LayoutType'>
<EnumValue name='&apos;LayoutType_ShowAllInRow&apos;' value='0'/>
<EnumValue name='&apos;LayoutType_ShowOneInRow&apos;' value='1'/>
</Enum>
<Enum name='LightsMode'> <Enum name='LightsMode'>
<EnumValue name='&apos;LightsMode_Attract&apos;' value='0'/> <EnumValue name='&apos;LightsMode_Attract&apos;' value='0'/>
<EnumValue name='&apos;LightsMode_Joining&apos;' value='1'/> <EnumValue name='&apos;LightsMode_Joining&apos;' value='1'/>
@@ -1696,9 +1718,10 @@
<EnumValue name='&apos;PaneCategory_Mines&apos;' value='4'/> <EnumValue name='&apos;PaneCategory_Mines&apos;' value='4'/>
<EnumValue name='&apos;PaneCategory_Hands&apos;' value='5'/> <EnumValue name='&apos;PaneCategory_Hands&apos;' value='5'/>
<EnumValue name='&apos;PaneCategory_Lifts&apos;' value='6'/> <EnumValue name='&apos;PaneCategory_Lifts&apos;' value='6'/>
<EnumValue name='&apos;PaneCategory_MachineHighScore&apos;' value='7'/> <EnumValue name='&apos;PaneCategory_Fakes&apos;' value='7'/>
<EnumValue name='&apos;PaneCategory_MachineHighName&apos;' value='8'/> <EnumValue name='&apos;PaneCategory_MachineHighScore&apos;' value='8'/>
<EnumValue name='&apos;PaneCategory_ProfileHighScore&apos;' value='9'/> <EnumValue name='&apos;PaneCategory_MachineHighName&apos;' value='9'/>
<EnumValue name='&apos;PaneCategory_ProfileHighScore&apos;' value='10'/>
</Enum> </Enum>
<Enum name='PeakComboAward'> <Enum name='PeakComboAward'>
<EnumValue name='&apos;PeakComboAward_1000&apos;' value='0'/> <EnumValue name='&apos;PeakComboAward_1000&apos;' value='0'/>
@@ -1752,6 +1775,7 @@
<EnumValue name='&apos;RadarCategory_Hands&apos;' value='9'/> <EnumValue name='&apos;RadarCategory_Hands&apos;' value='9'/>
<EnumValue name='&apos;RadarCategory_Rolls&apos;' value='10'/> <EnumValue name='&apos;RadarCategory_Rolls&apos;' value='10'/>
<EnumValue name='&apos;RadarCategory_Lifts&apos;' value='11'/> <EnumValue name='&apos;RadarCategory_Lifts&apos;' value='11'/>
<EnumValue name='&apos;RadarCategory_Fakes&apos;' value='12'/>
</Enum> </Enum>
<Enum name='RandomBackgroundMode'> <Enum name='RandomBackgroundMode'>
<EnumValue name='&apos;RandomBackgroundMode_Off&apos;' value='0'/> <EnumValue name='&apos;RandomBackgroundMode_Off&apos;' value='0'/>
@@ -1779,6 +1803,11 @@
<EnumValue name='&apos;ScreenType_Gameplay&apos;' value='2'/> <EnumValue name='&apos;ScreenType_Gameplay&apos;' value='2'/>
<EnumValue name='&apos;ScreenType_SystemMenu&apos;' value='3'/> <EnumValue name='&apos;ScreenType_SystemMenu&apos;' value='3'/>
</Enum> </Enum>
<Enum name='SelectType'>
<EnumValue name='&apos;SelectType_SelectOne&apos;' value='0'/>
<EnumValue name='&apos;SelectType_SelectMultiple&apos;' value='1'/>
<EnumValue name='&apos;SelectType_SelectNone&apos;' value='2'/>
</Enum>
<Enum name='ShowDancingCharacters'> <Enum name='ShowDancingCharacters'>
<EnumValue name='&apos;ShowDancingCharacters_Off&apos;' value='0'/> <EnumValue name='&apos;ShowDancingCharacters_Off&apos;' value='0'/>
<EnumValue name='&apos;ShowDancingCharacters_Random&apos;' value='1'/> <EnumValue name='&apos;ShowDancingCharacters_Random&apos;' value='1'/>
@@ -1963,6 +1992,6 @@
<Constant name='sGame' value='&apos;dance&apos;'/> <Constant name='sGame' value='&apos;dance&apos;'/>
<Constant name='top' value='&apos;VertAlign_Top&apos;'/> <Constant name='top' value='&apos;VertAlign_Top&apos;'/>
</Constants> </Constants>
<Version>sm-ssc v1.2.2</Version> <Version>sm-ssc v1.2.3</Version>
<Date>2011-02-21</Date> <Date>2011-03-15</Date>
</Lua> </Lua>
+43 -6
View File
@@ -1526,6 +1526,9 @@
<Function name='EnoughCreditsToJoin' return='bool' arguments=''> <Function name='EnoughCreditsToJoin' return='bool' arguments=''>
Returns <code>true</code> if enough credits have been inserted to join. Returns <code>true</code> if enough credits have been inserted to join.
</Function> </Function>
<Function name='Dopefish' sm-ssc='true' return='bool' arguments=''>
fishpolk.mid; See also: Rise of the Triad
</Function>
<Function name='Env' return='table' arguments=''> <Function name='Env' return='table' arguments=''>
Returns the environment table. See <Link class='GameCommand' />. Returns the environment table. See <Link class='GameCommand' />.
</Function> </Function>
@@ -1898,6 +1901,14 @@
Loads the HoldJudgment for the specified MultiPlayer. Loads the HoldJudgment for the specified MultiPlayer.
</Function> </Function>
</Class> </Class>
<Class name='InputFilter'>
<Function name='GetMouseX' sm-ssc='true' return='float' arguments=''>
Returns the X position of the mouse.
</Function>
<Function name='GetMouseY' sm-ssc='true' return='float' arguments=''>
Returns the Y position of the mouse.
</Function>
</Class>
<Class name='LifeMeter'> <Class name='LifeMeter'>
<Function name='GetLife' return='float' arguments=''> <Function name='GetLife' return='float' arguments=''>
Returns the amount of life left in the LifeMeter as a float in the range 0..1. Returns the amount of life left in the LifeMeter as a float in the range 0..1.
@@ -1964,7 +1975,7 @@
</Class> </Class>
<Class name='MeterDisplay'> <Class name='MeterDisplay'>
<Function name='SetStreamWidth' return='void' arguments='float fWidth'> <Function name='SetStreamWidth' return='void' arguments='float fWidth'>
Sets the width of the MeterDisplay to <code>fWidth</code>.
</Function> </Function>
</Class> </Class>
<Class name='Model'> <Class name='Model'>
@@ -2045,6 +2056,9 @@
<Function name='GetChoiceInRowWithFocus' sm-ssc='true' return='int' arguments='PlayerNumber pn'> <Function name='GetChoiceInRowWithFocus' sm-ssc='true' return='int' arguments='PlayerNumber pn'>
Returns an index of the choice in the row that player <code>pn</code> is on. Returns an index of the choice in the row that player <code>pn</code> is on.
</Function> </Function>
<Function name='GetLayoutType' sm-ssc='true' return='LayoutType' arguments=''>
Returns the OptionRow's layout type.
</Function>
<Function name='GetName' sm-ssc='true' return='string' arguments=''> <Function name='GetName' sm-ssc='true' return='string' arguments=''>
Returns the name of the OptionRow. Returns the name of the OptionRow.
</Function> </Function>
@@ -2054,6 +2068,9 @@
<Function name='GetRowTitle' sm-ssc='true' return='string' arguments=''> <Function name='GetRowTitle' sm-ssc='true' return='string' arguments=''>
Returns the row title string. Returns the row title string.
</Function> </Function>
<Function name='GetSelectType' sm-ssc='true' return='SelectType' arguments=''>
Returns the OptionRow's select type.
</Function>
<Function name='HasFocus' sm-ssc='true' return='bool' arguments='PlayerNumber pn'> <Function name='HasFocus' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
Returns <code>true</code> if this row is focused by player <code>pn</code>. Returns <code>true</code> if this row is focused by player <code>pn</code>.
</Function> </Function>
@@ -2080,6 +2097,11 @@
</Function> </Function>
</Class> </Class>
<Class name='PlayerOptions'>
<Function name='GetNoteSkin' sm-ssc='true' return='string' arguments=''>
Returns the current NoteSkin set in the PlayerOptions.
</Function>
</Class>
<Class name='PlayerStageStats'> <Class name='PlayerStageStats'>
<Function name='FullCombo' return='bool' arguments=''> <Function name='FullCombo' return='bool' arguments=''>
Returns <code>true</code> if a full combo (TNS_W3 and up) was obtained. Returns <code>true</code> if a full combo (TNS_W3 and up) was obtained.
@@ -2208,8 +2230,11 @@
<Function name='GetPlayerNumber' return='PlayerNumber' arguments=''> <Function name='GetPlayerNumber' return='PlayerNumber' arguments=''>
Returns the player number for this PlayerState. Returns the player number for this PlayerState.
</Function> </Function>
<Function name='GetPlayerOptions' return='string' arguments='ModsLevel ml'> <Function name='GetPlayerOptions' renamed='true' return='PlayerOptions' arguments='ModsLevel ml'>
Returns a string of player options for the specified ModsLevel. Returns a PlayerOptions object for the specified ModsLevel.
</Function>
<Function name='GetPlayerOptionsString' sm-ssc='true' return='string' arguments='ModsLevel ml'>
Returns a string of player options for the specified ModsLevel. (was GetPlayerOptions in v1.2.2 and prior)
</Function> </Function>
<Function name='GetPlayerOptionsArray' return='{string}' arguments='ModsLevel ml'> <Function name='GetPlayerOptionsArray' return='{string}' arguments='ModsLevel ml'>
Returns a table of strings, containing the player options for the specified ModsLevel. Returns a table of strings, containing the player options for the specified ModsLevel.
@@ -2667,6 +2692,9 @@
<Function name='GetGoToOptions' return='bool' arguments=''> <Function name='GetGoToOptions' return='bool' arguments=''>
Returns <code>true</code> if the player is going to the options screen. Returns <code>true</code> if the player is going to the options screen.
</Function> </Function>
<Function name='GetMusicWheel' sm-ssc='true' return='MusicWheel' arguments=''>
Returns the MusicWheel used on this screen.
</Function>
<Function name='setupcoursestagemods' theme='_fallback' return='void' arguments=''> <Function name='setupcoursestagemods' theme='_fallback' return='void' arguments=''>
[02 StageMods.lua] Sets up modifiers for course modes. [02 StageMods.lua] Sets up modifiers for course modes.
</Function> </Function>
@@ -3059,12 +3087,15 @@
</Function> </Function>
</Class> </Class>
<Class name='Steps'> <Class name='Steps'>
<Function name='GetDescription' return='string' arguments=''>
Returns the Steps description.
</Function>
<Function name='GetAuthorCredit' return='string' arguments=''> <Function name='GetAuthorCredit' return='string' arguments=''>
Returns the author that made that particular Steps pattern. Returns the author that made that particular Steps pattern.
</Function> </Function>
<Function name='GetChartStyle' sm-ssc='true' return='string' arguments=''>
Returns the Chart Style for this Steps.
</Function>
<Function name='GetDescription' return='string' arguments=''>
Returns the Steps description.
</Function>
<Function name='GetDifficulty' return='Difficulty' arguments=''> <Function name='GetDifficulty' return='Difficulty' arguments=''>
Returns the Steps difficulty. Returns the Steps difficulty.
</Function> </Function>
@@ -3342,6 +3373,12 @@
</Function> </Function>
</Class> </Class>
<Class name='WheelBase'> <Class name='WheelBase'>
<Function name='GetCurrentIndex' sm-ssc='true' return='int' arguments=''>
Returns the wheel's current index.
</Function>
<Function name='GetNumItems' sm-ssc='true' return='int' arguments=''>
Returns the total number of items in the wheel.
</Function>
<Function name='GetWheelItem' return='WheelItemBaseData' arguments='int iIndex'> <Function name='GetWheelItem' return='WheelItemBaseData' arguments='int iIndex'>
Returns the WheelItem at index <code>iIndex</code>. Returns the WheelItem at index <code>iIndex</code>.
</Function> </Function>
+4
View File
@@ -109,6 +109,10 @@ juanelote
NitroX72 NitroX72
* Pump/frame noteskin * Pump/frame noteskin
Tatsh
* A patch to fix building with system ffmpeg
(http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=218)
==the beta testers== ==the beta testers==
[SSC Beta Testing Team] [SSC Beta Testing Team]
KeithD KeithD
+1 -1
View File
@@ -1,4 +1,4 @@
[as taken from src/ProductInfo.h] [as taken from src/ProductInfo.h] (before doxygen)
Version info displayed to the user. Version info displayed to the user.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 18 KiB

-17
View File
@@ -4,35 +4,27 @@
TapNoteAnimationIsVivid=0 TapNoteAnimationIsVivid=0
DrawHoldHeadForTapsOnSameRow=0 DrawHoldHeadForTapsOnSameRow=0
TapNoteAnimationLength=2 TapNoteAnimationLength=2
TapAdditionAnimationLength=4 TapAdditionAnimationLength=4
TapMineAnimationLength=1 TapMineAnimationLength=1
TapLiftAnimationLength=4 TapLiftAnimationLength=4
HoldHeadAnimationLength=1 // doesn't matter. Only 1 frame anyway. HoldHeadAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldTopCapAnimationLength=1 // doesn't matter. Only 1 frame anyway. HoldTopCapAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldBottomCapAnimationLength=1 // doesn't matter. Only 1 frame anyway. HoldBottomCapAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldBodyAnimationLength=1 // doesn't matter. Only 1 frame anyway. HoldBodyAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldTailAnimationLength=1 // doesn't matter. Only 1 frame anyway. HoldTailAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldHeadAnimationIsNoteColor=0 HoldHeadAnimationIsNoteColor=0
HoldTopCapAnimationIsNoteColor=0 HoldTopCapAnimationIsNoteColor=0
HoldBodyAnimationIsNoteColor=0 HoldBodyAnimationIsNoteColor=0
HoldBottomCapAnimationIsNoteColor=0 HoldBottomCapAnimationIsNoteColor=0
HoldTailAnimationIsNoteColor=0 HoldTailAnimationIsNoteColor=0
HoldLetGoGrayPercent=0.25 HoldLetGoGrayPercent=0.25
HoldHeadIsAboveWavyParts=0 HoldHeadIsAboveWavyParts=0
HoldTailIsAboveWavyParts=0 HoldTailIsAboveWavyParts=0
StartDrawingHoldBodyOffsetFromHead=0 StartDrawingHoldBodyOffsetFromHead=0
StopDrawingHoldBodyOffsetFromTail=0 // top of tail StopDrawingHoldBodyOffsetFromTail=0 // top of tail
@@ -48,8 +40,6 @@ TapNoteNoteColorTextureCoordSpacingY=0
HoldHeadNoteColorTextureCoordSpacingX=0 HoldHeadNoteColorTextureCoordSpacingX=0
HoldHeadNoteColorTextureCoordSpacingY=0 HoldHeadNoteColorTextureCoordSpacingY=0
[GhostArrowDim] [GhostArrowDim]
HitMineCommand=blend,"BlendMode_Add";diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0 HitMineCommand=blend,"BlendMode_Add";diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0 W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
@@ -71,17 +61,10 @@ W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusea
W1Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.2;zoom,1.5;decelerate,0.1;zoom,1.5;diffusealpha,0 W1Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.2;zoom,1.5;decelerate,0.1;zoom,1.5;diffusealpha,0
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0 HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[ReceptorArrow] [ReceptorArrow]
InitCommand=effectclock,'beat';diffuseramp;effectcolor1,color("0.5,0.5,0.5,1");effectcolor2,color("1,1,1,1"); InitCommand=effectclock,'beat';diffuseramp;effectcolor1,color("0.5,0.5,0.5,1");effectcolor2,color("1,1,1,1");
# By default, always step. Individual game skins can override this.
NoneCommand=zoom,1.1;linear,0.06;diffusealpha,0;linear,0.06;zoom,1.0;diffuse,0.3,0.8,1.0,1 NoneCommand=zoom,1.1;linear,0.06;diffusealpha,0;linear,0.06;zoom,1.0;diffuse,0.3,0.8,1.0,1
HitMineCommand= HitMineCommand=
AvoidMineCommand= AvoidMineCommand=
MissCommand= MissCommand=
+1
View File
@@ -14,6 +14,7 @@ TEXT_IO_SMZIP_PACKAGE=SMZIP package
TEXT_IO_FATAL_ERROR_COPYING_PCK =Fatal error copying pck files. TEXT_IO_FATAL_ERROR_COPYING_PCK =Fatal error copying pck files.
TEXT_IO_FATAL_ERROR_INSTALL=Fatal error during install. TEXT_IO_FATAL_ERROR_INSTALL=Fatal error during install.
TEXT_IO_LAUNCH_THE_GAME=Launch StepMania TEXT_IO_LAUNCH_THE_GAME=Launch StepMania
TEXT_IO_TEXTURE_FONT_GENERATOR=Texture Font Generator
[Installer Functions] [Installer Functions]
TEXT_IO_TITLE=${PRODUCT_DISPLAY} TEXT_IO_TITLE=${PRODUCT_DISPLAY}
@@ -0,0 +1 @@
Common Normal
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
MusicWheelItem Roulette NormalPart
@@ -0,0 +1 @@
MusicWheelItem Roulette NormalPart
+5 -2
View File
@@ -842,6 +842,7 @@ Edit time signature=Edit time signature (not working yet)
Edit time signature (top)=Edit time signature (beats per measure) Edit time signature (top)=Edit time signature (beats per measure)
Edit time signature (bottom)=Edit time signature (single beat note value) Edit time signature (bottom)=Edit time signature (single beat note value)
Edit tickcount=Edit tickcount Edit tickcount=Edit tickcount
Edit combo=Edit combo
Editor options=Options Editor options=Options
EditorShowBGChangesPlay=Show Backgrounds EditorShowBGChangesPlay=Show Backgrounds
Effect=Effect Effect=Effect
@@ -1207,6 +1208,7 @@ Enter a new Delay value.=Enter a new Delay value.
Enter a new Time Signature numerator value.=Enter the number of beats per measure. Enter a new Time Signature numerator value.=Enter the number of beats per measure.
Enter a new Time Signature denominator value.=Enter the note value that represents one beat. Enter a new Time Signature denominator value.=Enter the note value that represents one beat.
Enter a new Tickcount value.=Enter a new Tickcount value. Enter a new Tickcount value.=Enter a new Tickcount value.
Enter a new Combo value.=Enter a new Combo value.
Enter a new artist transliteration.=Enter a new artist transliteration. Enter a new artist transliteration.=Enter a new artist transliteration.
Enter a new artist.=Enter a new artist. Enter a new artist.=Enter a new artist.
Enter a new genre.=Enter a new genre. Enter a new genre.=Enter a new genre.
@@ -1221,7 +1223,7 @@ Enter a new sub title transliteration.=Enter a new sub title transliteration.
Enter a new sub title.=Enter a new sub title. Enter a new sub title.=Enter a new sub title.
More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted. More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted.
No backgrounds available=No backgrounds available No backgrounds available=No backgrounds available
EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF1:\n Show help\n EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF1:\n Show help\n
PlayRecordHelpText=Press START to end PlayRecordHelpText=Press START to end
Save successful.=Save successful. Save successful.=Save successful.
Saved as SM and DWI.=Saved as SM and DWI. Saved as SM and DWI.=Saved as SM and DWI.
@@ -1242,6 +1244,7 @@ Description=Description
Chart Style=Chart Style Chart Style=Chart Style
Main title=Main title Main title=Main title
Subtitle=Subtitle Subtitle=Subtitle
Tap Note=Tap Note
Tap Steps=Tap Steps Tap Steps=Tap Steps
Jumps=Jumps Jumps=Jumps
Hands=Hands Hands=Hands
@@ -1910,7 +1913,6 @@ Play current beat to end=Play current beat to end
Play whole song=Play whole song Play whole song=Play whole song
Record=Record Record=Record
Set selection=Set selection Set selection=Set selection
Drag area marker=Drag area marker
Toggle assist tick=Toggle assist tick Toggle assist tick=Toggle assist tick
Next/prev steps of same StepsType=Next/prev steps of same StepsType Next/prev steps of same StepsType=Next/prev steps of same StepsType
Decrease/increase BPM at cur beat=Decrease/increase BPM at cur beat Decrease/increase BPM at cur beat=Decrease/increase BPM at cur beat
@@ -1924,6 +1926,7 @@ Insert beat and shift down=Insert beat and shift down
Shift BPM changes and stops down one beat=Shift BPM changes and stops down one beat Shift BPM changes and stops down one beat=Shift BPM changes and stops down one beat
Delete beat and shift up=Delete beat and shift up Delete beat and shift up=Delete beat and shift up
Shift BPM changes and stops up one beat=Shift BPM changes and stops up one beat Shift BPM changes and stops up one beat=Shift BPM changes and stops up one beat
Cycle between tap notes=Cycle between tap notes
Lay mine=Lay mine Lay mine=Lay mine
Lay lift=Lay lift Lay lift=Lay lift
Add to/remove from right half=Add to/remove from right half Add to/remove from right half=Add to/remove from right half
+12 -4
View File
@@ -18,9 +18,17 @@ function ScreenSelectMusic:setupmusicstagemods()
local pm = GAMESTATE:GetPlayMode() local pm = GAMESTATE:GetPlayMode()
if pm == "PlayMode_Battle" or pm == "PlayMode_Rave" then if pm == "PlayMode_Battle" or pm == "PlayMode_Rave" then
local so = GAMESTATE:GetDefaultSongOptions() .. ",failoff" -- FIX DAT BUG;
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so ) local sFail = "";
MESSAGEMAN:Broadcast( "SongOptionsChanged" ) if GetGamePref("DefaultFail") then
sFail = string.format("Fail%s", GetGamePref("DefaultFail") );
else
sFail = "Failoff";
end;
--
local so = GAMESTATE:GetDefaultSongOptions() .. "," .. sFail;
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so );
MESSAGEMAN:Broadcast( "SongOptionsChanged" );
elseif GAMESTATE:IsAnExtraStage() then elseif GAMESTATE:IsAnExtraStage() then
if GAMESTATE:GetPreferredSongGroup() == "---Group All---" then if GAMESTATE:GetPreferredSongGroup() == "---Group All---" then
local song = GAMESTATE:GetCurrentSong() local song = GAMESTATE:GetCurrentSong()
@@ -51,7 +59,7 @@ function ScreenSelectMusic:setupmusicstagemods()
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} ) MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
end end
-- if PREFSMAN:GetPreference("
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so ) GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
MESSAGEMAN:Broadcast( "SongOptionsChanged" ) MESSAGEMAN:Broadcast( "SongOptionsChanged" )
+1 -1
View File
@@ -74,7 +74,7 @@ function ComboContinue()
sGame = GAMESTATE:GetCurrentGame():GetName() sGame = GAMESTATE:GetCurrentGame():GetName()
local Continue = { local Continue = {
dance = GAMESTATE:GetPlayMode() == "PlayMode_Oni" and "TapNoteScore_W2" or "TapNoteScore_W3", dance = GAMESTATE:GetPlayMode() == "PlayMode_Oni" and "TapNoteScore_W2" or "TapNoteScore_W3",
pump = "TapNoteScore_W4", pump = "TapNoteScore_W3",
beat = "TapNoteScore_W3", beat = "TapNoteScore_W3",
kb7 = "TapNoteScore_W3", kb7 = "TapNoteScore_W3",
para = "TapNoteScore_W4" para = "TapNoteScore_W4"
@@ -46,6 +46,7 @@ function InitUserPrefs()
{ "UserPrefProtimingP1", false}, { "UserPrefProtimingP1", false},
{ "UserPrefProtimingP2", false}, { "UserPrefProtimingP2", false},
{ "FlashyCombos", false}, { "FlashyCombos", false},
{ "GameplayFooter", false},
}; };
for idx,pref in ipairs(Prefs) do for idx,pref in ipairs(Prefs) do
@@ -323,6 +324,42 @@ function UserPrefFlashyCombo()
setmetatable( t, t ); setmetatable( t, t );
return t; return t;
end end
function UserPrefGameplayFooter()
local t = {
Name = "UserPrefGameplayFooter";
LayoutType = "ShowAllInRow";
SelectType = "SelectOne";
OneChoiceForAllPlayers = true;
ExportOnChange = false;
Choices = { 'Off','On' };
LoadSelections = function(self, list, pn)
if ReadPrefFromFile("GameplayFooter") ~= nil then
if GetUserPrefB("GameplayFooter") then
list[2] = true;
else
list[1] = true;
end;
else
WritePrefToFile("GameplayFooter",false);
list[1] = true;
end;
end;
SaveSelections = function(self, list, pn)
local val;
if list[2] then
val = true;
else
val = false;
end;
WritePrefToFile("GameplayFooter",val);
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } );
THEME:ReloadMetrics();
end;
};
setmetatable( t, t );
return t;
end
--[[ end themeoption rows ]] --[[ end themeoption rows ]]
--[[ game option rows ]] --[[ game option rows ]]
@@ -479,7 +516,18 @@ function GamePrefDefaultFail()
LoadSelections = function(self, list, pn) LoadSelections = function(self, list, pn)
if ReadGamePrefFromFile("DefaultFail") ~= nil then if ReadGamePrefFromFile("DefaultFail") ~= nil then
if GetGamePref("DefaultFail") then if GetGamePref("DefaultFail") then
list[table.find( list, GetGamePref("DefaultFail") )] = true; if GetGamePref("DefaultFail") == "Immediate" then
list[1] = true;
elseif GetGamePref("DefaultFail") == "ImmediateContinue" then
list[2] = true;
elseif GetGamePref("DefaultFail") == "AtEnd" then
list[3] = true;
elseif GetGamePref("DefaultFail") == "Off" then
list[4] = true;
else
list[1] = true;
end
-- list[table.find( list, GetGamePref("DefaultFail") )] = true;
else else
list[1] = true; list[1] = true;
end; end;
@@ -492,14 +540,18 @@ function GamePrefDefaultFail()
-- This is so stupid. -- This is so stupid.
local tChoices = { "Immediate","ImmediateContinue", "AtEnd", "Off" }; local tChoices = { "Immediate","ImmediateContinue", "AtEnd", "Off" };
local val; local val;
for i=1,#list do if list[1] then
if list[i] then val = tChoices[1];
val = i; elseif list[2] then
val = tChoices[2];
elseif list[3] then
val = tChoices[3];
elseif list[4] then
val = tChoices[4];
else else
val = 1; val = tChoices[1];
end end
end WriteGamePrefToFile("DefaultFail",val);
WriteGamePrefToFile("DefaultFail",tChoices[val]);
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } ); MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } );
THEME:ReloadMetrics(); THEME:ReloadMetrics();
end; end;
+15 -1
View File
@@ -647,6 +647,9 @@ LyricBackChangedCommand=LyricCommand,"Back"
InLength=0 InLength=0
OutLength=0 OutLength=0
[NotesWriterSM]
DescriptionUsesCreditField=false
[OptionRow] [OptionRow]
ShowModIcons=false ShowModIcons=false
ShowUnderlines=true ShowUnderlines=true
@@ -843,6 +846,8 @@ ShowPortal=false
MostPlayedSongsToShow=30 MostPlayedSongsToShow=30
RecentSongsToShow=30 RecentSongsToShow=30
# #
UseEasyMarkerFlag=false
#
ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent" ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent"
# ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent,NormalMode,BattleMode" # ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent,NormalMode,BattleMode"
ChoicePreferred="sort,Preferred" ChoicePreferred="sort,Preferred"
@@ -865,8 +870,8 @@ ChoiceLength="sort,Length"
ChoiceRecent="sort,Recent" ChoiceRecent="sort,Recent"
ChoiceNormalMode="playmode,regular" ChoiceNormalMode="playmode,regular"
ChoiceBattleMode="playmode,battle" ChoiceBattleMode="playmode,battle"
UseEasyMarkerFlag=false
# #
CustomWheelItemNames=""
[CourseWheel] [CourseWheel]
Fallback="MusicWheel" Fallback="MusicWheel"
@@ -930,6 +935,10 @@ ModeX=0
ModeY=0 ModeY=0
ModeOnCommand= ModeOnCommand=
# #
CustomX=0
CustomY=0
CustomOnCommand=
#
GradeP1X=0 GradeP1X=0
GradeP1Y=0 GradeP1Y=0
GradeP2X=0 GradeP2X=0
@@ -956,18 +965,21 @@ StopColor=color("0.8,0.8,0,1")
DelayColor=color("0,0.8,0.8,1") DelayColor=color("0,0.8,0.8,1")
TimeSignatureColor=color("1,0.55,0,1") TimeSignatureColor=color("1,0.55,0,1")
TickcountColor=color("0,1,0,1") TickcountColor=color("0,1,0,1")
ComboColor=color("0.55,1,0,1")
# #
BPMIsLeftSide=true BPMIsLeftSide=true
StopIsLeftSide=true StopIsLeftSide=true
DelayIsLeftSide=true DelayIsLeftSide=true
TimeSignatureIsLeftSide=true TimeSignatureIsLeftSide=true
TickcountIsLeftSide=false TickcountIsLeftSide=false
ComboIsLeftSide=false
# #
BPMOffsetX=60 BPMOffsetX=60
StopOffsetX=10 StopOffsetX=10
DelayOffsetX=10 DelayOffsetX=10
TimeSignatureOffsetX=30 TimeSignatureOffsetX=30
TickcountOffsetX=10 TickcountOffsetX=10
ComboOffsetX=30
[PlayerStageStats] [PlayerStageStats]
# Original CVS Grading # Original CVS Grading
@@ -3640,6 +3652,7 @@ DescriptionFormat="%s:\n %s\n"
ChartStyleFormat="%s:\n %s\n" ChartStyleFormat="%s:\n %s\n"
MainTitleFormat="%s:\n %s\n" MainTitleFormat="%s:\n %s\n"
SubtitleFormat="%s:\n %s\n" SubtitleFormat="%s:\n %s\n"
TapNoteTypeFormat="%s: %s\n"
NumStepsFormat="%s: %d\n" NumStepsFormat="%s: %d\n"
NumJumpsFormat="%s: %d\n" NumJumpsFormat="%s: %d\n"
NumHoldsFormat="%s: %d\n" NumHoldsFormat="%s: %d\n"
@@ -3706,6 +3719,7 @@ Fallback="StepsDisplay"
# oh, right, minimenus. # oh, right, minimenus.
[ScreenMiniMenuEditHelp] [ScreenMiniMenuEditHelp]
Fallback="ScreenMiniMenu" Fallback="ScreenMiniMenu"
ShowFooter=false
ColorDisabled=color("1,1,1,1") ColorDisabled=color("1,1,1,1")
RowInitCommand=halign,0.5;valign,0.5;zoom,0.8;x,75;y,45;shadowlength,1 RowInitCommand=halign,0.5;valign,0.5;zoom,0.8;x,75;y,45;shadowlength,1
OptionRowNormalMetricsGroup="OptionRowMiniMenuEditHelp" OptionRowNormalMetricsGroup="OptionRowMiniMenuEditHelp"
@@ -184,15 +184,15 @@ t[#t+1] = StandardDecorationFromFileOptional("SongInformation","SongInformation"
if SongOrCourse:GetDisplaySubTitle() == "" then if SongOrCourse:GetDisplaySubTitle() == "" then
c.TextTitle:visible(true); c.TextTitle:visible(true);
c.TextTitle:y(-16.5/2); c.TextTitle:y(-16.5/2);
c.Subtitle:visible(false); c.TextSubtitle:visible(false);
c.Subtitle:y(0); c.TextSubtitle:y(0);
c.TextArtist:visible(true); c.TextArtist:visible(true);
c.TextArtist:y(18/2); c.TextArtist:y(18/2);
else else
c.TextTitle:visible(true); c.TextTitle:visible(true);
c.TextTitle:y(-16.5); c.TextTitle:y(-16.5);
c.Subtitle:visible(true); c.TextSubtitle:visible(true);
c.Subtitle:y(0); c.TextSubtitle:y(0);
c.TextArtist:visible(true); c.TextArtist:visible(true);
c.TextArtist:y(18); c.TextArtist:y(18);
end end
@@ -1,8 +1,9 @@
local vStats = STATSMAN:GetCurStageStats(); local vStats = STATSMAN:GetCurStageStats();
local function CreateStats( pnPlayer ) local function CreateStats( pnPlayer )
-- Actor Templates -- Actor Templates
local aLabel = LoadFont("Common Normal") .. { Text="..."; InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); }; local aLabel = LoadFont("Common Normal") .. { InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); };
local aText = LoadFont("Common Normal") .. { Text="..."; InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); }; local aText = LoadFont("Common Normal") .. { InitCommand=cmd(zoom,0.5;shadowlength,1;horizalign,left); };
-- DA STATS, JIM!! -- DA STATS, JIM!!
local pnStageStats = vStats:GetPlayerStageStats( pnPlayer ); local pnStageStats = vStats:GetPlayerStageStats( pnPlayer );
-- Organized Stats. -- Organized Stats.
@@ -28,12 +29,11 @@ local function CreateStats( pnPlayer )
MIGS = ( tStats["W1"]*3 + tStats["W2"]*2 + tStats["W3"] - tStats["W5"]*4 - tStats["Miss"]*8 + tStats["Held"]*6 ), MIGS = ( tStats["W1"]*3 + tStats["W2"]*2 + tStats["W3"] - tStats["W5"]*4 - tStats["Miss"]*8 + tStats["Held"]*6 ),
-- (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6 -- (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6
MIGS_MAX = ( (tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"])*3 + (tStats["Held"] + tStats["LetGo"])*6 ), MIGS_MAX = ( (tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"])*3 + (tStats["Held"] + tStats["LetGo"])*6 ),
}; };
--
local t = Def.ActorFrame {}; local t = Def.ActorFrame {};
t[#t+1] = Def.ActorFrame { t[#t+1] = Def.ActorFrame {
InitCommand=cmd(y,-32); InitCommand=cmd(y,-34);
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer ));
}; };
@@ -43,7 +43,7 @@ local function CreateStats( pnPlayer )
aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); };
}; };
t[#t+1] = Def.ActorFrame { t[#t+1] = Def.ActorFrame {
InitCommand=cmd(y,-16); InitCommand=cmd(y,-6);
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer ));
}; };
@@ -52,20 +52,13 @@ local function CreateStats( pnPlayer )
aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); }; aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); };
aText .. { Text=string.format("%04i",tValues["MIGS_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; aText .. { Text=string.format("%04i",tValues["MIGS_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); };
}; };
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(y,0);
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer ));
};
aLabel .. { Text="Signed:"; InitCommand=cmd(x,-64) };
aText .. { Text=string.format( #(tPlayerData[PLAYER_1].SignedJudgments) ); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.675); };
};
return t return t
end; end;
-- xxx: this only currently works for player 1. -aj
local t = Def.ActorFrame {}; local t = Def.ActorFrame {};
t[#t+1] = Def.ActorFrame { t[#t+1] = Def.ActorFrame {
InitCommand=cmd(x,math.floor(SCREEN_CENTER_X*0.5)-8;y,SCREEN_CENTER_Y); InitCommand=cmd(x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y);
--
CreateStats( PLAYER_1 ); CreateStats( PLAYER_1 );
}; };
return t return t
@@ -130,9 +130,12 @@ for pn in ivalues(PlayerNumber) do
end; end;
}; };
end; end;
t[#t+1] = StandardDecorationFromFileOptional("ScoreFrame","ScoreFrame");
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle"); t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle");
t[#t+1] = Def.ActorFrame { t[#t+1] = Def.ActorFrame {
InitCommand=function(self) InitCommand=function(self)
self:name("SongMeterDisplay"); self:name("SongMeterDisplay");
@@ -157,7 +160,7 @@ t[#t+1] = Def.ActorFrame {
OnCommand=cmd(x,scale(0.75,0,1,-380/2,380/2);diffuse,Color("Orange");diffusealpha,0.5); OnCommand=cmd(x,scale(0.75,0,1,-380/2,380/2);diffuse,Color("Orange");diffusealpha,0.5);
}; };
Def.SongMeterDisplay { Def.SongMeterDisplay {
StreamWidth=THEME:GetMetric( "SongMeterDisplay", 'StreamWidth' ); InitCommand=cmd(SetStreamWidth,THEME:GetMetric( "SongMeterDisplay", 'StreamWidth' ));
Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream ' .. PlayerNumberToString(PLAYER_1) ) )..{ Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream ' .. PlayerNumberToString(PLAYER_1) ) )..{
InitCommand=cmd(diffuse,Color("Orange");diffusealpha,0.5;blend,Blend.Add;); InitCommand=cmd(diffuse,Color("Orange");diffusealpha,0.5;blend,Blend.Add;);
}; };
@@ -1 +0,0 @@
_CombinedLifeMeterTug stream p1
@@ -1 +0,0 @@
_CombinedLifeMeterTug stream p2
@@ -33,6 +33,9 @@ local ProtimingCmds = {
local AverageCmds = { local AverageCmds = {
Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" ); Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" );
}; };
local TextCmds = {
Pulse = THEME:GetMetric( "Protiming", "TextPulseCommand" );
};
local TNSFrames = { local TNSFrames = {
TapNoteScore_W1 = 0; TapNoteScore_W1 = 0;
@@ -64,6 +67,13 @@ t[#t+1] = Def.ActorFrame {
OnCommand=THEME:GetMetric("Protiming","AverageOnCommand"); OnCommand=THEME:GetMetric("Protiming","AverageOnCommand");
ResetCommand=cmd(finishtweening;stopeffect;visible,false); ResetCommand=cmd(finishtweening;stopeffect;visible,false);
}; };
LoadFont("Common Normal") .. {
Name="TextDisplay";
Text="MS";
InitCommand=cmd(visible,false);
OnCommand=THEME:GetMetric("Protiming","TextOnCommand");
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
};
Def.Quad { Def.Quad {
Name="ProtimingGraphBG"; Name="ProtimingGraphBG";
InitCommand=cmd(visible,false;y,32;zoomto,192,16); InitCommand=cmd(visible,false;y,32;zoomto,192,16);
@@ -166,6 +176,9 @@ t[#t+1] = Def.ActorFrame {
c.ProtimingAverage:settextf("%.2f%%",clamp(100 - MakeAverage( tTotalJudgments ) * 1000 ,0,100)); c.ProtimingAverage:settextf("%.2f%%",clamp(100 - MakeAverage( tTotalJudgments ) * 1000 ,0,100));
AverageCmds['Pulse'](c.ProtimingAverage); AverageCmds['Pulse'](c.ProtimingAverage);
c.TextDisplay:visible( bShowProtiming );
TextCmds['Pulse'](c.TextDisplay);
c.ProtimingGraphBG:visible( bShowProtiming ); c.ProtimingGraphBG:visible( bShowProtiming );
c.ProtimingGraphUnderlay:visible( bShowProtiming ); c.ProtimingGraphUnderlay:visible( bShowProtiming );
c.ProtimingGraphWindowW3:visible( bShowProtiming ); c.ProtimingGraphWindowW3:visible( bShowProtiming );
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+6
View File
@@ -70,6 +70,7 @@ UserPrefGameplayShowStepsDisplay=Show Steps
UserPrefShowLotsaOptions=Options Density UserPrefShowLotsaOptions=Options Density
UserPrefLongFail=Fail Length UserPrefLongFail=Fail Length
UserPrefFlashyCombo=Flashy Combo UserPrefFlashyCombo=Flashy Combo
UserPrefGameplayFooter=Gameplay Footer
[OptionExplanations] [OptionExplanations]
GamePrefAutoSetStyle=Allow the game to list all one player and two player modes at once instead of one style only. This might require a restart of StepMania\n( or alternatively hit F2! ) GamePrefAutoSetStyle=Allow the game to list all one player and two player modes at once instead of one style only. This might require a restart of StepMania\n( or alternatively hit F2! )
GamePrefNotePosition=Determines where the arrow receptors are placed in gameplay. GamePrefNotePosition=Determines where the arrow receptors are placed in gameplay.
@@ -82,6 +83,8 @@ UserPrefGameplayShowStepsDisplay=Show or Hide the step information display in ga
UserPrefShowLotsaOptions=Choose how many lines/rows of options to choose from. &oq;Few&cq; keeps the list to a minimum. &oq;Many&cq; adds various show-off mods. UserPrefShowLotsaOptions=Choose how many lines/rows of options to choose from. &oq;Few&cq; keeps the list to a minimum. &oq;Many&cq; adds various show-off mods.
UserPrefLongFail=Choose between the original sm-ssc fail (Long) or the new sm-ssc fail (Short). UserPrefLongFail=Choose between the original sm-ssc fail (Long) or the new sm-ssc fail (Short).
UserPrefFlashyCombo=Determine if combo flashes should be shown or not. UserPrefFlashyCombo=Determine if combo flashes should be shown or not.
UserPrefGameplayFooter=If on, displays a footer that blocks visibility of incoming arrows for a certain region ( DDR's score frame ).
ScoringType=Defines which scoring method to use. If Special is selected, you can select a Special Scoring Mode in Theme Options. ScoringType=Defines which scoring method to use. If Special is selected, you can select a Special Scoring Mode in Theme Options.
Speed=Adjust the speed at which arrows travel toward the targets. Speed=Adjust the speed at which arrows travel toward the targets.
@@ -155,3 +158,6 @@ Explanation-Exit=Return to the title menu.
[OptionNames] [OptionNames]
Custom=Special Custom=Special
[ScreenTestInput]
HelpText=Hold &BACK; or &START; to exit.
@@ -10,7 +10,7 @@
#BACKGROUND:; #BACKGROUND:;
#LYRICSPATH:; #LYRICSPATH:;
#CDTITLE:; #CDTITLE:;
#MUSIC:ScreenGameplaySyncMachine music.ogg; #MUSIC:_gameplay sync music.ogg;
#OFFSET:-0.012; #OFFSET:-0.012;
#SAMPLESTART:0.000; #SAMPLESTART:0.000;
#SAMPLELENGTH:12.000; #SAMPLELENGTH:12.000;
+14 -2
View File
@@ -307,6 +307,7 @@ RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2)
[Protiming] [Protiming]
ProtimingOnCommand=shadowlength,1;horizalign,right;x,30;strokecolor,Color("Outline");skewx,-0.125;textglowmode,"TextGlowMode_Inner"; ProtimingOnCommand=shadowlength,1;horizalign,right;x,30;strokecolor,Color("Outline");skewx,-0.125;textglowmode,"TextGlowMode_Inner";
AverageOnCommand=shadowlength,1;horizalign,left;x,32;y,8;zoom,0.75;diffuse,ColorLightTone( Color("Green") );strokecolor,Color("Outline");skewx,-0.125;textglowmode,"TextGlowMode_Inner"; AverageOnCommand=shadowlength,1;horizalign,left;x,32;y,8;zoom,0.75;diffuse,ColorLightTone( Color("Green") );strokecolor,Color("Outline");skewx,-0.125;textglowmode,"TextGlowMode_Inner";
TextOnCommand=shadowlength,1;horizalign,left;x,32;y,-6;zoom,0.5;strokecolor,Color("Outline");skewx,-0.125;textglowmode,"TextGlowMode_Inner";
# #
ProtimingW1Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W1"];sleep,2;linear,0.5;diffuse,Color("Invisible"); ProtimingW1Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W1"];sleep,2;linear,0.5;diffuse,Color("Invisible");
ProtimingW2Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W2"];sleep,2;linear,0.5;diffuse,Color("Invisible"); ProtimingW2Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W2"];sleep,2;linear,0.5;diffuse,Color("Invisible");
@@ -315,7 +316,8 @@ ProtimingW4Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("W
ProtimingW5Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W5"];sleep,2;linear,0.5;diffuse,Color("Invisible"); ProtimingW5Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W5"];sleep,2;linear,0.5;diffuse,Color("Invisible");
ProtimingMissCommand=finishtweening;diffusealpha,1;zoom,1.15;glow,GameColor.Judgment["JudgmentLine_Miss"];linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_Miss"];sleep,2;linear,0.5;diffuse,Color("Invisible"); ProtimingMissCommand=finishtweening;diffusealpha,1;zoom,1.15;glow,GameColor.Judgment["JudgmentLine_Miss"];linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_Miss"];sleep,2;linear,0.5;diffuse,Color("Invisible");
# #
AveragePulseCommand=finishtweening;diffusealpha,1;zoom,0.75*1.25;decelerate,0.05;zoom,0.75;sleep,2;linear,0.5;diffusealpha,0; AveragePulseCommand=finishtweening;diffusealpha,1;zoom,0.75*1.025;decelerate,0.05;zoom,0.75;sleep,2;linear,0.5;diffusealpha,0;
TextPulseCommand=finishtweening;diffusealpha,1;zoom,0.5*1.025;decelerate,0.05;zoom,0.5;sleep,2;linear,0.5;diffusealpha,0;
[Player] [Player]
# ReceptorArrowsYStandard=GetTapPosition('Standard') # ReceptorArrowsYStandard=GetTapPosition('Standard')
# ReceptorArrowsYReverse=GetTapPosition('Reverse') # ReceptorArrowsYReverse=GetTapPosition('Reverse')
@@ -647,6 +649,7 @@ MeterSetCommand=%function(self,param) \
end; \ end; \
if param.Meter then \ if param.Meter then \
if param.Meter >= 10 then \ if param.Meter >= 10 then \
self:textglowmode('TextGlowMode_Inner'); \
self:glowshift(); \ self:glowshift(); \
else \ else \
self:stopeffect(); \ self:stopeffect(); \
@@ -824,7 +827,9 @@ ItemsLongRowSharedX=SCREEN_CENTER_X
[ScreenOptionsTheme] [ScreenOptionsTheme]
Fallback="ScreenOptionsServiceChild" Fallback="ScreenOptionsServiceChild"
LineNames="gNotePos,gAuto,gScore,gSScore,gSDisp,gOpts,gLongFail,gComboUnderField,FlashyCombo" NextScreen="ScreenOptionsExtended"
PrevScreen="ScreenOptionsExtended"
LineNames="gNotePos,gAuto,gScore,gSScore,gSDisp,gOpts,gLongFail,gComboUnderField,FlashyCombo,GameplayFooter"
LinegNotePos="lua,GamePrefNotePosition()" LinegNotePos="lua,GamePrefNotePosition()"
LinegScore="lua,UserPrefGameplayShowScore()" LinegScore="lua,UserPrefGameplayShowScore()"
LinegSScore="lua,UserPrefSpecialScoringMode()" LinegSScore="lua,UserPrefSpecialScoringMode()"
@@ -834,6 +839,7 @@ LinegAuto="lua,GamePrefAutoSetStyle()"
LinegLongFail="lua,UserPrefLongFail()" LinegLongFail="lua,UserPrefLongFail()"
LinegComboUnderField="lua,GamePrefComboUnderField()" LinegComboUnderField="lua,GamePrefComboUnderField()"
LineFlashyCombo="lua,UserPrefFlashyCombo()" LineFlashyCombo="lua,UserPrefFlashyCombo()"
LineGameplayFooter="lua,UserPrefGameplayFooter()"
[ScreenOptionsSystemDirection] [ScreenOptionsSystemDirection]
LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,15,16,LF,17,18,19,20,21,22" LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,15,16,LF,17,18,19,20,21,22"
LineLF="lua,UserPrefLongFail()" LineLF="lua,UserPrefLongFail()"
@@ -1435,6 +1441,12 @@ StageDisplayY=SCREEN_TOP+24
StageDisplayOnCommand=zoom,0.5; StageDisplayOnCommand=zoom,0.5;
StageDisplayOffCommand=bounceend,0.25;zoom,0 StageDisplayOffCommand=bounceend,0.25;zoom,0
# #
ShowScoreFrame=GetUserPrefB("GameplayFooter");
ScoreFrameX=SCREEN_CENTER_X
ScoreFrameY=SCREEN_BOTTOM+4
ScoreFrameOnCommand=vertalign,bottom;zoomtowidth,SCREEN_WIDTH+4;diffuse,color("#ffd400");addy,80;sleep,2;decelerate,0.5;addy,-80;
ScoreFrameOffCommand=
#
LifeP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") LifeP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX")
# LifeP1X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") # LifeP1X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX")
LifeP1Y=SCREEN_TOP+24 LifeP1Y=SCREEN_TOP+24
@@ -1,8 +1,62 @@
return Def.ActorFrame { local t = Def.ActorFrame {};
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); --
--[[ local tGridSizeMajor = { 32, 32 };
local tGridSizeMinor = { 16, 16 };
local function CreateDebugGrid()
local t = Def.ActorFrame {};
local numX = math.ceil(SCREEN_WIDTH/tGridSizeMajor[1])
local numY = math.ceil(SCREEN_HEIGHT/tGridSizeMajor[2])
local offset = ( math.ceil(SCREEN_WIDTH/tGridSizeMajor[1]) - SCREEN_WIDTH ) + SCREEN_WIDTH;
for a=1,numY do
for b=1,numX do
t[#t+1] = Def.Quad {
InitCommand=cmd(x,b*tGridSizeMajor[1]-(tGridSizeMajor[1]/2);y,a*tGridSizeMajor[2]-(tGridSizeMajor[2]/2));
OnCommand=cmd(zoomto,tGridSizeMajor[1]-2,tGridSizeMajor[2]-2;diffuse,color("1,1,1,0.25"));
};
end;
end;
return t
end --]]
Def.Quad { --
InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT); t[#t+1] = Def.ActorFrame {
OnCommand=cmd(diffuse,color("0.25,0.15,0.25,1")); InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y);
LoadActor("VOL1-29-NTSC") .. {
InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT);
OnCommand=cmd(diffusealpha,0.75);
}; };
}; };
--
local bShow = 0;
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(visible,false);
ToggleConsoleDisplayMessageCommand=function(self)
bShow = 1 - bShow;
self:visible( bShow == 1 );
end;
-- Grid
LoadActor("_32") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/32,SCREEN_HEIGHT/32);
OnCommand=cmd(diffuse,color("0,0,0,0.5"));
};
LoadActor("_16") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/16,SCREEN_HEIGHT/16);
OnCommand=cmd(diffuse,color("1,1,1,0.125"));
};
--[[ LoadActor("_8") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;customtexturerect,0,0,SCREEN_WIDTH/8,SCREEN_HEIGHT/8);
OnCommand=cmd(diffuse,color("#00BFE833"));
}; --]]
-- Left
Def.Quad {
InitCommand=cmd(horizalign,left;x,SCREEN_LEFT;y,SCREEN_CENTER_Y;zoomto,16,SCREEN_HEIGHT);
OnCommand=cmd(diffuse,color("0,0,0,0.5"));
};
-- Right
Def.Quad {
InitCommand=cmd(horizalign,right;x,SCREEN_RIGHT;y,SCREEN_CENTER_Y;zoomto,16,SCREEN_HEIGHT);
OnCommand=cmd(diffuse,color("0,0,0,0.5"));
};
};
--
return t
@@ -2,8 +2,6 @@
-- I prefer to keep these optional, incase another screen wants to hide -- I prefer to keep these optional, incase another screen wants to hide
-- these elements. -- these elements.
local t = Def.ActorFrame {}; local t = Def.ActorFrame {};
t[#t+1] = StandardDecorationFromFileOptional("Header","Header"); t[#t+1] = StandardDecorationFromFileOptional("Header","Header");
t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer"); t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer");
return t return t
@@ -4,10 +4,8 @@ local t = Def.ActorFrame {};
t[#t+1] = LoadFont("Common Normal") .. { t[#t+1] = LoadFont("Common Normal") .. {
Text=gc:GetText(); Text=gc:GetText();
InitCommand=THEME:GetMetric(Var "LoadingScreen","ScrollerItemInitCommand");
GainFocusCommand=THEME:GetMetric(Var "LoadingScreen","ScrollerItemGainFocusCommand");
LoseFocusCommand=THEME:GetMetric(Var "LoadingScreen","ScrollerItemGainFocusCommand");
}; };
t.GainFocusCommand=cmd(diffusealpha,1);
t.LoseFocusCommand=cmd(diffusealpha,0.5);
return t; return t;
@@ -1,3 +0,0 @@
return Def.Quad {
InitCommand=cmd(zoomto,SCREEN_WIDTH,32);
};
@@ -1,3 +0,0 @@
return Def.Quad {
InitCommand=cmd(zoomto,SCREEN_WIDTH,48);
};
+24 -46
View File
@@ -1,59 +1,37 @@
[Global] [Global]
FallbackTheme=_fallback FallbackTheme=_fallback
[CustomScoring]
ComboAboveThresholdAddsToScoreBonus=0
ComboScoreBonusThreshold=50
ComboScoreBonusValue=+1000
ComboMultiplier=0.0
DoubleNoteScoreMultiplier=2.0
TripleNoteScoreMultiplier=3.0
QuadOrHigherNoteScoreMultiplier=4.0
PointsW1=+50
PointsW2=+20
PointsW3=+10
PointsW4=+5
PointsW5=0
PointsMiss=-5
PointsHitMine=-5
PointsCheckpointHit=+5
PointsCheckpointMiss=-5
PointsNone=0
PointsHoldHeld=+5
PointsHoldLetGo=-5
[ScreenWithMenuElements] [ScreenWithMenuElements]
WaitForChildrenBeforeTweeningOut=true
ShowHeader=true ShowHeader=true
HeaderX=SCREEN_CENTER_X HeaderX=SCREEN_CENTER_X
HeaderY=SCREEN_TOP HeaderY=SCREEN_TOP
HeaderOnCommand=vertalign,top;diffuse,color("0.5,0.25,0.35,1"); HeaderOnCommand=
HeaderOffCommand= HeaderOffCommand=
#
ShowFooter=true ShowFooter=true
FooterX=SCREEN_CENTER_X FooterX=SCREEN_CENTER_X
FooterY=SCREEN_BOTTOM FooterY=SCREEN_BOTTOM
FooterOnCommand=vertalign,bottom;diffuse,color("0.5,0.25,0.35,1"); FooterOnCommand=
FooterOffCommand= FooterOffCommand=
#
TimerX=SCREEN_WIDTH-64
TimerY=SCREEN_TOP+48-4.5
TimerOnCommand=
TimerOffCommand=
[MenuTimer]
# Text
Text1OnCommand=stopeffect;stoptweening;vertalign,bottom;horizalign,right
Text1FormatFunction=function(fSeconds) \
return string.format("%0.1f", fSeconds); \
end
FrameOnCommand=
# Warning
Warning10Command=diffuseshift;effectperiod,1;effectcolor2,Color("Red");effectcolor1,color("0.5,0,0,1");
[ScreenTitleMenu] [ScreenTitleMenu]
ScrollerY=SCREEN_CENTER_Y*1.5 ShowHeader=true
ScrollerOnCommand= ShowFooter=true
# New: Load ScrollerItem SpacingX/Y
ScrollerTransform=function(self,offset,itemIndex,numItems) \
local fSpaceX = THEME:GetMetric( Var "LoadingScreen","ScrollerItemSpacingX"); \
local fSpaceY = THEME:GetMetric( Var "LoadingScreen","ScrollerItemSpacingY"); \
self:x( (i-1) * fSpaceX ); \
self:y( (i-1) * fSpaceY ); \
end;
# New: Adjust menu items
ScrollerItemSpacingX=0
ScrollerItemSpacingY=24
ScrollerItemInitCommand=zoom,1;shadowlength,1
ScrollerItemGainFocusCommand=finishtweening;linear,0.125;zoom,1.25
ScrollerItemLoseFocusCommand=finishtweening;linear,0.125;zoom,1
[ScreenSelectMusic] [ScreenSelectMusic]
MusicWheelX=SCREEN_RIGHT-128-18
MusicWheelOnCommand=draworder,-1
[MusicWheel]
ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*0 ); self:y( offsetFromCenter*48 ); end
NumWheelItems=13
Regular → Executable
View File
+1 -1
View File
@@ -27,7 +27,7 @@ success () {
echo okay. echo okay.
fi fi
if [ $notify -gt 0 ]; then if [ $notify -gt 0 ]; then
notify send "sm-ssc build script" "$msg...okay." notify-send "sm-ssc build script" "$msg...okay."
fi fi
} }
+1 -1
View File
@@ -50,7 +50,7 @@
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.4.10</string> <string>10.4.10</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2010</string> <string>Copyright 2001-2011</string>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string>SMApplication</string> <string>SMApplication</string>
</dict> </dict>
+24 -8
View File
@@ -7099,7 +7099,7 @@
GCC_DYNAMIC_NO_PIC = YES; GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO; GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES; GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO; GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7112,16 +7112,20 @@
GCC_UNROLL_LOOPS = YES; GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0; GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_SHADOW = NO; GCC_WARN_PROTOTYPE_CONVERSION = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = NO; GCC_WARN_UNINITIALIZED_AUTOS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = YES; GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
@@ -7632,7 +7636,7 @@
GCC_DYNAMIC_NO_PIC = YES; GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO; GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES; GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO; GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7644,16 +7648,20 @@
GCC_UNROLL_LOOPS = YES; GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0; GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_SHADOW = NO; GCC_WARN_PROTOTYPE_CONVERSION = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES; GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
@@ -7963,7 +7971,7 @@
GCC_DYNAMIC_NO_PIC = YES; GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO; GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES; GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO; GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7975,16 +7983,20 @@
GCC_UNROLL_LOOPS = YES; GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0; GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_SHADOW = NO; GCC_WARN_PROTOTYPE_CONVERSION = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES; GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
@@ -8088,7 +8100,7 @@
GCC_DYNAMIC_NO_PIC = YES; GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO; GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES; GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO; GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -8100,16 +8112,20 @@
GCC_UNROLL_LOOPS = YES; GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0; GCC_VERSION = 4.0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_SHADOW = NO; GCC_WARN_PROTOTYPE_CONVERSION = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES; GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
+14 -2
View File
@@ -40,12 +40,23 @@
CRCCheck off CRCCheck off
!endif !endif
; don't forget to change this before releasing a new verson.
; wish this could be automated, but it requires "X.Y.Z.a" format. -aj
VIProductVersion "1.2.3.0"
VIAddVersionKey "ProductName" "${PRODUCT_ID}"
VIAddVersionKey "FileVersion" "${PRODUCT_VER}"
VIAddVersionKey "FileDescription" "${PRODUCT_ID} Installer"
AutoCloseWindow true ; (can be true for the window go away automatically at end) AutoCloseWindow true ; (can be true for the window go away automatically at end)
; ShowInstDetails hide ; (can be show to have them shown, or nevershow to disable) ; ShowInstDetails hide ; (can be show to have them shown, or nevershow to disable)
SetDateSave on ; (can be on to have files restored to their orginal date) SetDateSave on ; (can be on to have files restored to their orginal date)
; may not be the best idea for vista/7? -aj
; I think it may need actual admin privs for writing to the registry... -aj
; RequestExecutionLevel user
; this folder may not be the best idea for Windows Vista/7. -aj
InstallDir "$PROGRAMFILES\${PRODUCT_ID}" InstallDir "$PROGRAMFILES\${PRODUCT_ID}"
InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" "" InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" ""
; DirShow show ; (make this hide to not let the user change it) ; DirShow show ; (make this hide to not let the user change it)
DirText "${PRODUCT_DISPLAY}" DirText "${PRODUCT_DISPLAY}"
InstallColors /windows InstallColors /windows
@@ -464,7 +475,7 @@ Section "Main Section" SecMain
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_PROGRAM_FOLDER).lnk" "$WINDIR\explorer.exe" "$INSTDIR\" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_PROGRAM_FOLDER).lnk" "$WINDIR\explorer.exe" "$INSTDIR\"
!endif !endif
!ifdef MAKE_OPEN_SETTINGS_FOLDER_SHORTCUT !ifdef MAKE_OPEN_SETTINGS_FOLDER_SHORTCUT
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_SETTINGS_FOLDER).lnk" "$WINDIR\explorer.exe" "%APPDATA%\${PRODUCT_ID}" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_SETTINGS_FOLDER).lnk" "$WINDIR\explorer.exe" "$APPDATA\${PRODUCT_ID}"
!endif !endif
;CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_VIEW_STATISTICS).lnk" "$INSTDIR\Program\tools.exe" "--machine-profile-stats" ;CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_VIEW_STATISTICS).lnk" "$INSTDIR\Program\tools.exe" "--machine-profile-stats"
@@ -472,6 +483,7 @@ Section "Main Section" SecMain
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_MANUAL).lnk" "$INSTDIR\Manual\index.html" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_MANUAL).lnk" "$INSTDIR\Manual\index.html"
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_UNINSTALL).lnk" "$INSTDIR\uninstall.exe" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_UNINSTALL).lnk" "$INSTDIR\uninstall.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_WEB_SITE).lnk" "${PRODUCT_URL}" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_WEB_SITE).lnk" "${PRODUCT_URL}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_TEXTURE_FONT_GENERATOR).lnk" '"$INSTDIR\Program\Texture Font Generator.exe"'
!ifdef MAKE_UPDATES_SHORTCUT !ifdef MAKE_UPDATES_SHORTCUT
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_CHECK_FOR_UPDATES).lnk" "${UPDATES_URL}" CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_CHECK_FOR_UPDATES).lnk" "${UPDATES_URL}"
!endif !endif
+3
View File
@@ -528,6 +528,7 @@ public:
} }
static int SortByDrawOrder( T* p, lua_State *L ) { p->SortByDrawOrder(); return 0; } static int SortByDrawOrder( T* p, lua_State *L ) { p->SortByDrawOrder(); return 0; }
//static int CustomLighting( T* p, lua_State *L ) { p->SetCustomLighting(BArg(1)); return 0; }
static int SetAmbientLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetAmbientLightColor( c ); return 0; } static int SetAmbientLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetAmbientLightColor( c ); return 0; }
static int SetDiffuseLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetDiffuseLightColor( c ); return 0; } static int SetDiffuseLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetDiffuseLightColor( c ); return 0; }
static int SetSpecularLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetSpecularLightColor( c ); return 0; } static int SetSpecularLightColor( T* p, lua_State *L ) { RageColor c; c.FromStackCompat( L, 1 ); p->SetSpecularLightColor( c ); return 0; }
@@ -546,6 +547,7 @@ public:
p->SetLightDirection( vTmp ); p->SetLightDirection( vTmp );
return 0; return 0;
} }
// xxx: these might not be good ideas... -aj // xxx: these might not be good ideas... -aj
/* /*
static int AddChild( T* p, lua_State *L ) static int AddChild( T* p, lua_State *L )
@@ -585,6 +587,7 @@ public:
ADD_METHOD( GetDrawFunction ); ADD_METHOD( GetDrawFunction );
ADD_METHOD( SetUpdateFunction ); ADD_METHOD( SetUpdateFunction );
ADD_METHOD( SortByDrawOrder ); ADD_METHOD( SortByDrawOrder );
//ADD_METHOD( CustomLighting );
ADD_METHOD( SetAmbientLightColor ); ADD_METHOD( SetAmbientLightColor );
ADD_METHOD( SetDiffuseLightColor ); ADD_METHOD( SetDiffuseLightColor );
ADD_METHOD( SetSpecularLightColor ); ADD_METHOD( SetSpecularLightColor );
+1
View File
@@ -81,6 +81,7 @@ public:
void SetFOV( float fFOV ) { m_fFOV = fFOV; } void SetFOV( float fFOV ) { m_fFOV = fFOV; }
void SetVanishPoint( float fX, float fY) { m_fVanishX = fX; m_fVanishY = fY; } void SetVanishPoint( float fX, float fY) { m_fVanishX = fX; m_fVanishY = fY; }
void SetCustomLighting( bool bCustomLighting ) { m_bOverrideLighting = bCustomLighting; }
void SetAmbientLightColor( RageColor c ) { m_ambientColor = c; } void SetAmbientLightColor( RageColor c ) { m_ambientColor = c; }
void SetDiffuseLightColor( RageColor c ) { m_diffuseColor = c; } void SetDiffuseLightColor( RageColor c ) { m_diffuseColor = c; }
void SetSpecularLightColor( RageColor c ) { m_specularColor = c; } void SetSpecularLightColor( RageColor c ) { m_specularColor = c; }
+1
View File
@@ -33,6 +33,7 @@ public:
static void GetSyncChangeTextGlobal( vector<RString> &vsAddTo ); static void GetSyncChangeTextGlobal( vector<RString> &vsAddTo );
static void GetSyncChangeTextSong( vector<RString> &vsAddTo ); static void GetSyncChangeTextSong( vector<RString> &vsAddTo );
/** @brief The minimum number of steps to hit for syncing purposes. */
static const int OFFSET_SAMPLE_COUNT = 56; static const int OFFSET_SAMPLE_COUNT = 56;
static float s_fAutosyncOffset[OFFSET_SAMPLE_COUNT]; static float s_fAutosyncOffset[OFFSET_SAMPLE_COUNT];
+1 -1
View File
@@ -445,7 +445,7 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float
{ {
// find the middle, and split based on iColNum // find the middle, and split based on iColNum
// it's unknown if this will work for routine. // it's unknown if this will work for routine.
const int iMiddleColumn = floor(pStyle->m_iColsPerPlayer/2.0f); const int iMiddleColumn = static_cast<int>(floor(pStyle->m_iColsPerPlayer/2.0f));
if( iColNum > iMiddleColumn-1 ) if( iColNum > iMiddleColumn-1 )
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_XMODE]*-(fYOffset); fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_XMODE]*-(fYOffset);
else else
+2 -2
View File
@@ -34,8 +34,8 @@ void Attack::GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlay
fStartBeat = min( GAMESTATE->m_fSongBeat+8, pPlayerState->m_fLastDrawnBeat ); fStartBeat = min( GAMESTATE->m_fSongBeat+8, pPlayerState->m_fLastDrawnBeat );
fStartBeat = truncf(fStartBeat)+1; fStartBeat = truncf(fStartBeat)+1;
const float fStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat ); const float lStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat );
const float fEndSecond = fStartSecond + fSecsRemaining; const float fEndSecond = lStartSecond + fSecsRemaining;
fEndBeat = pSong->GetBeatFromElapsedTime( fEndSecond ); fEndBeat = pSong->GetBeatFromElapsedTime( fEndSecond );
fEndBeat = truncf(fEndBeat)+1; fEndBeat = truncf(fEndBeat)+1;
+9 -11
View File
@@ -32,7 +32,10 @@ struct Attack
bGlobal = false; bGlobal = false;
bShowInAttackList = true; bShowInAttackList = true;
} }
Attack() { MakeBlank(); } Attack(): level(ATTACK_LEVEL_1), fStartSecond(-1),
fSecsRemaining(0), sModifiers(RString()),
bOn(false), bGlobal(false), bShowInAttackList(true)
{} // MakeBlank() is effectively called here.
Attack( Attack(
AttackLevel level_, AttackLevel level_,
float fStartSecond_, float fStartSecond_,
@@ -40,16 +43,11 @@ struct Attack
RString sModifiers_, RString sModifiers_,
bool bOn_, bool bOn_,
bool bGlobal_, bool bGlobal_,
bool bShowInAttackList_ = true ) bool bShowInAttackList_ = true ):
{ level(level_), fStartSecond(fStartSecond_),
level = level_; fSecsRemaining(fSecsRemaining_), sModifiers(sModifiers_),
fStartSecond = fStartSecond_; bOn(bOn_), bGlobal(bGlobal_),
fSecsRemaining = fSecsRemaining_; bShowInAttackList(bShowInAttackList_) {}
sModifiers = sModifiers_;
bOn = bOn_;
bGlobal = bGlobal_;
bShowInAttackList = bShowInAttackList_;
}
void GetAttackBeats( const Song *pSong, float &fStartBeat, float &fEndBeat ) const; void GetAttackBeats( const Song *pSong, float &fStartBeat, float &fEndBeat ) const;
void GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlayerState, float &fStartBeat, float &fEndBeat ) const; void GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlayerState, float &fStartBeat, float &fEndBeat ) const;
+2 -2
View File
@@ -80,11 +80,11 @@ void AutoKeysounds::LoadAutoplaySoundsInto( RageSoundReader_Chain *pChain )
bool bSoundIsGlobal = true; bool bSoundIsGlobal = true;
{ {
PlayerNumber pn = GetNextEnabledPlayer((PlayerNumber)-1); PlayerNumber pn = GetNextEnabledPlayer((PlayerNumber)-1);
const TapNote &t = tn[pn]; const TapNote &tap = tn[pn];
pn = GetNextEnabledPlayer(pn); pn = GetNextEnabledPlayer(pn);
while( pn != PLAYER_INVALID ) while( pn != PLAYER_INVALID )
{ {
if( tn[pn].type != TapNote::autoKeysound || tn[pn].iKeysoundIndex != t.iKeysoundIndex ) if( tn[pn].type != TapNote::autoKeysound || tn[pn].iKeysoundIndex != tap.iKeysoundIndex )
bSoundIsGlobal = false; bSoundIsGlobal = false;
pn = GetNextEnabledPlayer(pn); pn = GetNextEnabledPlayer(pn);
} }
+3 -3
View File
@@ -77,9 +77,9 @@ void BGAnimation::AddLayersFromAniDir( const RString &_sAniDir, const XNode *pNo
else else
{ {
// import as a single layer // import as a single layer
BGAnimationLayer* pLayer = new BGAnimationLayer; BGAnimationLayer* bgLayer = new BGAnimationLayer;
pLayer->LoadFromNode( pKey ); bgLayer->LoadFromNode( pKey );
this->AddChild( pLayer ); this->AddChild( bgLayer );
} }
} }
} }
+3 -3
View File
@@ -746,9 +746,9 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
if( !change.m_sTransition.empty() ) if( !change.m_sTransition.empty() )
{ {
map<RString,BackgroundTransition>::const_iterator iter = mapNameToTransition.find( change.m_sTransition ); map<RString,BackgroundTransition>::const_iterator lIter = mapNameToTransition.find( change.m_sTransition );
ASSERT( iter != mapNameToTransition.end() ); ASSERT( lIter != mapNameToTransition.end() );
const BackgroundTransition &bt = iter->second; const BackgroundTransition &bt = lIter->second;
m_pFadingBGA->RunCommandsOnLeaves( *bt.cmdLeaves ); m_pFadingBGA->RunCommandsOnLeaves( *bt.cmdLeaves );
m_pFadingBGA->RunCommands( *bt.cmdRoot ); m_pFadingBGA->RunCommands( *bt.cmdRoot );
} }
+2
View File
@@ -250,9 +250,11 @@ void BeginnerHelper::DrawPrimitives()
m_sStepCircle[scd][scde].Draw(); m_sStepCircle[scd][scde].Draw();
if( DrawCelShaded ) if( DrawCelShaded )
{
FOREACH_PlayerNumber( pn ) // Draw each dancer FOREACH_PlayerNumber( pn ) // Draw each dancer
if( GAMESTATE->IsHumanPlayer(pn) ) if( GAMESTATE->IsHumanPlayer(pn) )
m_pDancer[pn]->DrawCelShaded(); m_pDancer[pn]->DrawCelShaded();
}
else else
{ {
DISPLAY->SetLighting( true ); DISPLAY->SetLighting( true );
+5 -10
View File
@@ -328,9 +328,6 @@ void BitmapText::DrawChars( bool bUseStrokeTexture )
} }
} }
vector<RageSpriteVertex*> vertices;
int iNumVertsToDraw = 0;
for( int start = iStartGlyph; start < iEndGlyph; ) for( int start = iStartGlyph; start < iEndGlyph; )
{ {
int end = start; int end = start;
@@ -346,21 +343,19 @@ void BitmapText::DrawChars( bool bUseStrokeTexture )
else else
DISPLAY->SetTexture( TextureUnit_1, m_vpFontPageTextures[start]->m_pTextureMain->GetTexHandle() ); DISPLAY->SetTexture( TextureUnit_1, m_vpFontPageTextures[start]->m_pTextureMain->GetTexHandle() );
/* Don't bother setting texture render states for text. We never go outside of 0..1. */ // Don't bother setting texture render states for text. We never go outside of 0..1.
/* We should call SetTextureRenderStates because it does more than just setting /* We should call SetTextureRenderStates because it does more than just setting
* the texture wrapping state. If setting the wrapping state is found to be slow, * the texture wrapping state. If setting the wrapping state is found to be slow,
* there should probably be a "don't care" texture wrapping mode set in Actor. -Chris */ * there should probably be a "don't care" texture wrapping mode set in Actor. -Chris */
Actor::SetTextureRenderStates();
RageSpriteVertex &start_vertex = m_aVertices[start*4]; // This is SLOW. We need to do something else about this. -Colby
vertices.push_back(&start_vertex); //Actor::SetTextureRenderStates();
iNumVertsToDraw += (end-start)*4;
DISPLAY->DrawQuads( &m_aVertices[start*4], (end-start)*4);
} }
start = end; start = end;
} }
if (!vertices.empty())
DISPLAY->DrawQuads( vertices[0], iNumVertsToDraw );
} }
/* sText is UTF-8. If not all of the characters in sText are available in the /* sText is UTF-8. If not all of the characters in sText are available in the
+3 -4
View File
@@ -5,10 +5,9 @@
#include "RageTextureID.h" #include "RageTextureID.h"
#include "ActorUtil.h" #include "ActorUtil.h"
Character::Character() Character::Character(): m_sCharDir(""), m_sCharacterID(""),
{ m_sDisplayName(""), m_sCardPath(""), m_sIconPath(""),
m_iPreloadRefcount = 0; m_bUsableInRave(false), m_iPreloadRefcount(0) {}
}
bool Character::Load( RString sCharDir ) bool Character::Load( RString sCharDir )
{ {
+44 -45
View File
@@ -85,47 +85,7 @@ int CourseEntry::GetNumModChanges() const
return iNumModChanges; return iNumModChanges;
} }
// lua start
#include "LuaBinding.h"
/** @brief Allow Lua to have access to the CourseEntry. */
class LunaCourseEntry: public Luna<CourseEntry>
{
public:
static int GetSong( T* p, lua_State *L )
{
if( p->songID.ToSong() )
p->songID.ToSong()->PushSelf(L);
else
lua_pushnil(L);
return 1;
}
DEFINE_METHOD( IsSecret, bSecret );
DEFINE_METHOD( IsFixedSong, IsFixedSong() );
DEFINE_METHOD( GetGainSeconds, fGainSeconds );
DEFINE_METHOD( GetGainLives, iGainLives );
DEFINE_METHOD( GetNormalModifiers, sModifiers );
// GetTimedModifiers - table
DEFINE_METHOD( GetNumModChanges, GetNumModChanges() );
DEFINE_METHOD( GetTextDescription, GetTextDescription() );
LunaCourseEntry()
{
ADD_METHOD( GetSong );
// sm-ssc additions:
ADD_METHOD( IsSecret );
ADD_METHOD( IsFixedSong );
ADD_METHOD( GetGainSeconds );
ADD_METHOD( GetGainLives );
ADD_METHOD( GetNormalModifiers );
//ADD_METHOD( GetTimedModifiers );
ADD_METHOD( GetNumModChanges );
ADD_METHOD( GetTextDescription );
}
};
LUA_REGISTER_CLASS( CourseEntry )
// lua end
Course::Course() Course::Course()
@@ -559,8 +519,8 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
if( e->iChooseIndex < int(vSongAndSteps.size()) ) if( e->iChooseIndex < int(vSongAndSteps.size()) )
{ {
resolved.pSong = vpSongs[e->iChooseIndex]; resolved.pSong = vpSongs[e->iChooseIndex];
const vector<Steps*> &vpSongs = mapSongToSteps[resolved.pSong]; const vector<Steps*> &mappedSongs = mapSongToSteps[resolved.pSong];
resolved.pSteps = vpSongs[ RandomInt(vpSongs.size()) ]; resolved.pSteps = mappedSongs[ RandomInt(mappedSongs.size()) ];
} }
else else
{ {
@@ -970,8 +930,8 @@ const CourseEntry *Course::FindFixedSong( const Song *pSong ) const
FOREACH_CONST( CourseEntry, m_vEntries, e ) FOREACH_CONST( CourseEntry, m_vEntries, e )
{ {
const CourseEntry &entry = *e; const CourseEntry &entry = *e;
Song *pSong = entry.songID.ToSong(); Song *lSong = entry.songID.ToSong();
if( pSong == pSong ) if( pSong == lSong )
return &entry; return &entry;
} }
@@ -1042,10 +1002,49 @@ bool Course::Matches( RString sGroup, RString sCourse ) const
return false; return false;
} }
// lua start // lua start
#include "LuaBinding.h" #include "LuaBinding.h"
/** @brief Allow Lua to have access to the CourseEntry. */
class LunaCourseEntry: public Luna<CourseEntry>
{
public:
static int GetSong( T* p, lua_State *L )
{
if( p->songID.ToSong() )
p->songID.ToSong()->PushSelf(L);
else
lua_pushnil(L);
return 1;
}
DEFINE_METHOD( IsSecret, bSecret );
DEFINE_METHOD( IsFixedSong, IsFixedSong() );
DEFINE_METHOD( GetGainSeconds, fGainSeconds );
DEFINE_METHOD( GetGainLives, iGainLives );
DEFINE_METHOD( GetNormalModifiers, sModifiers );
// GetTimedModifiers - table
DEFINE_METHOD( GetNumModChanges, GetNumModChanges() );
DEFINE_METHOD( GetTextDescription, GetTextDescription() );
LunaCourseEntry()
{
ADD_METHOD( GetSong );
// sm-ssc additions:
ADD_METHOD( IsSecret );
ADD_METHOD( IsFixedSong );
ADD_METHOD( GetGainSeconds );
ADD_METHOD( GetGainLives );
ADD_METHOD( GetNormalModifiers );
//ADD_METHOD( GetTimedModifiers );
ADD_METHOD( GetNumModChanges );
ADD_METHOD( GetTextDescription );
}
};
LUA_REGISTER_CLASS( CourseEntry )
// Not done with lua yet: still another class.
/** @brief Allow Lua to have access to the Course. */ /** @brief Allow Lua to have access to the Course. */
class LunaCourse: public Luna<Course> class LunaCourse: public Luna<Course>
{ {
+3 -12
View File
@@ -55,18 +55,9 @@ public:
float fGainSeconds; // time gained back at the beginning of the song. LifeMeterTime only. float fGainSeconds; // time gained back at the beginning of the song. LifeMeterTime only.
int iGainLives; // lives gained back at the beginning of the next song int iGainLives; // lives gained back at the beginning of the next song
CourseEntry() CourseEntry(): bSecret(false), bNoDifficult(false),
{ songSort(SongSort_Randomize), iChooseIndex(0),
bSecret = false; sModifiers(RString("")), fGainSeconds(0), iGainLives(-1) {}
bNoDifficult = false;
songSort = SongSort_Randomize;
iChooseIndex = 0;
sModifiers = "";
fGainSeconds = 0;
iGainLives = -1;
}
bool IsFixedSong() const { return songID.IsValid(); } bool IsFixedSong() const { return songID.IsValid(); }
+1 -1
View File
@@ -464,7 +464,7 @@ void EditCourseUtil::PrepareForPlay()
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_GoalType = GoalType_Time; PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_GoalType = GoalType_Time;
Course *pCourse = GAMESTATE->m_pCurCourse; Course *pCourse = GAMESTATE->m_pCurCourse;
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_iGoalSeconds = pCourse->m_fGoalSeconds; PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_iGoalSeconds = static_cast<int>(pCourse->m_fGoalSeconds);
} }
void EditCourseUtil::GetAllEditCourses( vector<Course*> &vpCoursesOut ) void EditCourseUtil::GetAllEditCourses( vector<Course*> &vpCoursesOut )
+9 -10
View File
@@ -11,10 +11,9 @@
#include "FontCharAliases.h" #include "FontCharAliases.h"
#include "arch/Dialog/Dialog.h" #include "arch/Dialog/Dialog.h"
FontPage::FontPage() FontPage::FontPage(): m_iHeight(0), m_iLineSpacing(0), m_fVshift(0),
{ m_iDrawExtraPixelsLeft(0), m_iDrawExtraPixelsRight(0),
m_iDrawExtraPixelsLeft = m_iDrawExtraPixelsRight = 0; m_sTexturePath("") {}
}
void FontPage::Load( const FontPageSettings &cfg ) void FontPage::Load( const FontPageSettings &cfg )
{ {
@@ -311,15 +310,15 @@ const glyph &Font::GetGlyph( wchar_t c ) const
bool Font::FontCompleteForString( const wstring &str ) const bool Font::FontCompleteForString( const wstring &str ) const
{ {
map<wchar_t,glyph*>::const_iterator m_pDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH ); map<wchar_t,glyph*>::const_iterator mapDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH );
if( m_pDefault == m_iCharToGlyph.end() ) if( mapDefault == m_iCharToGlyph.end() )
RageException::Throw( "The default glyph is missing from the font \"%s\".", path.c_str() ); RageException::Throw( "The default glyph is missing from the font \"%s\".", path.c_str() );
for( unsigned i = 0; i < str.size(); ++i ) for( unsigned i = 0; i < str.size(); ++i )
{ {
// If the glyph for this character is the default glyph, we're incomplete. // If the glyph for this character is the default glyph, we're incomplete.
const glyph &g = GetGlyph( str[i] ); const glyph &g = GetGlyph( str[i] );
if( &g == m_pDefault->second ) if( &g == mapDefault->second )
return false; return false;
} }
return true; return true;
@@ -718,8 +717,8 @@ void Font::Load( const RString &sIniPath, RString sChars )
for(unsigned i = 0; i < ImportList.size(); ++i) for(unsigned i = 0; i < ImportList.size(); ++i)
{ {
RString path = THEME->GetPathF( "", ImportList[i], true ); RString fPath = THEME->GetPathF( "", ImportList[i], true );
if( path == "" ) if( fPath == "" )
{ {
RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() ); RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() );
Dialog::OK( s ); Dialog::OK( s );
@@ -727,7 +726,7 @@ void Font::Load( const RString &sIniPath, RString sChars )
} }
Font subfont; Font subfont;
subfont.Load(path,""); subfont.Load(fPath,"");
MergeFont(subfont); MergeFont(subfont);
//FONT->UnloadFont(subfont); //FONT->UnloadFont(subfont);
} }
+3
View File
@@ -204,6 +204,9 @@ private:
void LoadFontPageSettings( FontPageSettings &cfg, IniFile &ini, const RString &sTexturePath, const RString &PageName, RString sChars ); void LoadFontPageSettings( FontPageSettings &cfg, IniFile &ini, const RString &sTexturePath, const RString &PageName, RString sChars );
static void GetFontPaths( const RString &sFontOrTextureFilePath, vector<RString> &sTexturePaths ); static void GetFontPaths( const RString &sFontOrTextureFilePath, vector<RString> &sTexturePaths );
RString GetPageNameFromFileName( const RString &sFilename ); RString GetPageNameFromFileName( const RString &sFilename );
Font(const Font& rhs);
Font& operator=(const Font& rhs);
}; };
/** /**
+5 -5
View File
@@ -76,23 +76,23 @@ void Foreground::Update( float fDeltaTime )
/* Update the actor even if we're about to hide it, so queued commands /* Update the actor even if we're about to hide it, so queued commands
* are always run. */ * are always run. */
float fDeltaTime; float lDeltaTime;
if( !bga.m_bga->GetVisible() ) if( !bga.m_bga->GetVisible() )
{ {
bga.m_bga->SetVisible( true ); bga.m_bga->SetVisible( true );
const float fStartSecond = m_pSong->m_Timing.GetElapsedTimeFromBeat( bga.m_fStartBeat ); const float fStartSecond = m_pSong->m_Timing.GetElapsedTimeFromBeat( bga.m_fStartBeat );
fDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond; lDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond;
} }
else else
{ {
fDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds; lDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
} }
// This shouldn't go down, but be safe: // This shouldn't go down, but be safe:
fDeltaTime = max( fDeltaTime, 0 ); lDeltaTime = max( lDeltaTime, 0 );
bga.m_bga->Update( fDeltaTime / fRate ); bga.m_bga->Update( lDeltaTime / fRate );
if( GAMESTATE->m_fSongBeat > bga.m_fStopBeat ) if( GAMESTATE->m_fSongBeat > bga.m_fStopBeat )
{ {
+2 -3
View File
@@ -93,8 +93,8 @@ bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
if( m_pSteps == NULL && m_dc != Difficulty_Invalid ) if( m_pSteps == NULL && m_dc != Difficulty_Invalid )
{ {
// Why is this checking for all players? // Why is this checking for all players?
FOREACH_HumanPlayer( pn ) FOREACH_HumanPlayer( human )
if( GAMESTATE->m_PreferredDifficulty[pn] != m_dc ) if( GAMESTATE->m_PreferredDifficulty[human] != m_dc )
return false; return false;
} }
@@ -412,7 +412,6 @@ void GameCommand::LoadOne( const Command& cmd )
else if( sName == "fademusic" ) else if( sName == "fademusic" )
{ {
// todo: parse things correctly. -aj
if( cmd.m_vsArgs.size() == 3 ) if( cmd.m_vsArgs.size() == 3 )
{ {
m_bFadeMusic = true; m_bFadeMusic = true;
+10 -23
View File
@@ -159,6 +159,8 @@ GameState::GameState() :
m_Environment = new LuaTable; m_Environment = new LuaTable;
m_bDopefish = false;
// Don't reset yet; let the first screen do it, so we can use PREFSMAN and THEME. // Don't reset yet; let the first screen do it, so we can use PREFSMAN and THEME.
//Reset(); //Reset();
@@ -1447,27 +1449,6 @@ bool GameState::CurrentOptionsDisqualifyPlayer( PlayerNumber pn )
return po.IsEasierForSongAndSteps( m_pCurSong, m_pCurSteps[pn], pn); return po.IsEasierForSongAndSteps( m_pCurSong, m_pCurSteps[pn], pn);
} }
/*
void GameState::LoadNoteSkinMetrics( PlayerNumber pn )
{
// Read metrics from current noteskin for setting row/col spacing and
// arrow size (originally from StepMania AMX)
if( !IsPlayerEnabled( pn ) )
return;
ASSERT( this->m_pCurSteps[pn] );
RString m_sNoteSkin = m_pPlayerState[pn]->m_PlayerOptions.GetStage().m_sNoteSkin;
RString sStepsType = StringConversion::ToString( this->m_pCurSteps[pn]->m_StepsType );
LOG->Trace("Loading Row/Col/Size values for Noteskin %s | StepsType: %s",m_sNoteSkin.c_str(),sStepsType.c_str());
//m_iNoteSkinRowSpacing[pn] = NOTESKIN->GetMetricI( m_sNoteSkin, sStepsType, "RowSpacing" );
// todo: allow per-column spacing values? -aj
m_iNoteSkinColSpacing[pn] = NOTESKIN->GetMetricI( m_sNoteSkin, sStepsType, "ColSpacing" );
m_iNoteSkinArrowSize[pn] = NOTESKIN->GetMetricI( m_sNoteSkin, sStepsType, "ArrowSize" );
}
*/
/* reset noteskins (?) /* reset noteskins (?)
* GameState::ResetNoteSkins() * GameState::ResetNoteSkins()
* GameState::ResetNoteSkinsForPlayer( PlayerNumber pn ) * GameState::ResetNoteSkinsForPlayer( PlayerNumber pn )
@@ -2380,9 +2361,9 @@ public:
return 1; return 1;
} }
static int GetCurrentStepsCredits( T* p, lua_State *L ) static int GetCurrentStepsCredits( T* t, lua_State *L )
{ {
const Song* pSong = p->m_pCurSong; const Song* pSong = t->m_pCurSong;
if( pSong == NULL ) if( pSong == NULL )
return 0; return 0;
@@ -2466,6 +2447,11 @@ public:
p->m_pCurCharacters[Enum::Check<PlayerNumber>(L, 1)] = c; p->m_pCurCharacters[Enum::Check<PlayerNumber>(L, 1)] = c;
return 0; return 0;
} }
static int Dopefish( T* p, lua_State *L )
{
lua_pushboolean(L, p->m_bDopefish);
return 1;
}
LunaGameState() LunaGameState()
{ {
@@ -2563,6 +2549,7 @@ public:
ADD_METHOD( GetCurMusicSeconds ); ADD_METHOD( GetCurMusicSeconds );
ADD_METHOD( GetCharacter ); ADD_METHOD( GetCharacter );
ADD_METHOD( SetCharacter ); ADD_METHOD( SetCharacter );
ADD_METHOD( Dopefish );
} }
}; };
+5 -10
View File
@@ -214,16 +214,6 @@ public:
RageTimer m_LastBeatUpdate; // time of last m_fSongBeat, etc. update RageTimer m_LastBeatUpdate; // time of last m_fSongBeat, etc. update
BroadcastOnChange<bool> m_bGameplayLeadIn; BroadcastOnChange<bool> m_bGameplayLeadIn;
// Metricable noteskin things
/*
void LoadNoteSkinMetrics( PlayerNumber pn );
int m_iNoteSkinColSpacing[NUM_PLAYERS];
int m_iNoteSkinArrowSize[NUM_PLAYERS];
*/
// not sure I want to let noteskins change row spacing, as that changes how
// the speed mods work... -aj
//int m_iNoteSkinRowSpacing[NUM_PLAYERS];
float m_fMusicSecondsVisible; float m_fMusicSecondsVisible;
float m_fSongBeatVisible; float m_fSongBeatVisible;
@@ -348,6 +338,8 @@ public:
float GetGoalPercentComplete( PlayerNumber pn ); float GetGoalPercentComplete( PlayerNumber pn );
bool IsGoalComplete( PlayerNumber pn ) { return GetGoalPercentComplete( pn ) >= 1; } bool IsGoalComplete( PlayerNumber pn ) { return GetGoalPercentComplete( pn ) >= 1; }
bool m_bDopefish;
// Lua // Lua
void PushSelf( lua_State *L ); void PushSelf( lua_State *L );
@@ -357,6 +349,9 @@ private:
int m_iAwardedExtraStages[NUM_PLAYERS]; int m_iAwardedExtraStages[NUM_PLAYERS];
bool m_bEarnedExtraStage; bool m_bEarnedExtraStage;
GameState(const GameState& rhs);
GameState& operator=(const GameState& rhs);
}; };
PlayerNumber GetNextHumanPlayer( PlayerNumber pn ); PlayerNumber GetNextHumanPlayer( PlayerNumber pn );
+4 -1
View File
@@ -24,7 +24,7 @@ enum InputEventType
struct InputEvent struct InputEvent
{ {
InputEvent() { type=IET_FIRST_PRESS; }; InputEvent(): type(IET_FIRST_PRESS) {}
DeviceInput di; DeviceInput di;
InputEventType type; InputEventType type;
@@ -84,6 +84,9 @@ private:
vector<InputEvent> queue; vector<InputEvent> queue;
RageMutex *queuemutex; RageMutex *queuemutex;
MouseCoordinates m_MouseCoords; MouseCoordinates m_MouseCoords;
InputFilter(const InputFilter& rhs);
InputFilter& operator=(const InputFilter& rhs);
}; };
extern InputFilter* INPUTFILTER; // global and accessable from anywhere in our program extern InputFilter* INPUTFILTER; // global and accessable from anywhere in our program
+3 -4
View File
@@ -266,7 +266,6 @@ static const AutoMappings g_AutoMappings[] =
AutoMappingEntry( 0, JOY_BUTTON_10, GAME_BUTTON_BACK, false ), AutoMappingEntry( 0, JOY_BUTTON_10, GAME_BUTTON_BACK, false ),
AutoMappingEntry( 0, JOY_BUTTON_9, GAME_BUTTON_START, false ) AutoMappingEntry( 0, JOY_BUTTON_9, GAME_BUTTON_START, false )
), ),
// TODO: add black and white buttons, as well as other missing inputs -aj
AutoMappings( AutoMappings(
"dance", "dance",
"XBOX Gamepad Plugin V0.01", "XBOX Gamepad Plugin V0.01",
@@ -1094,12 +1093,12 @@ void InputMappings::ReadMappings( const InputScheme *pInputScheme, RString sFile
vector<RString> sDeviceInputStrings; vector<RString> sDeviceInputStrings;
split( value, DEVICE_INPUT_SEPARATOR, sDeviceInputStrings, false ); split( value, DEVICE_INPUT_SEPARATOR, sDeviceInputStrings, false );
for( unsigned i=0; i<sDeviceInputStrings.size() && i<unsigned(NUM_GAME_TO_DEVICE_SLOTS); i++ ) for( unsigned j=0; j<sDeviceInputStrings.size() && j<unsigned(NUM_GAME_TO_DEVICE_SLOTS); j++ )
{ {
DeviceInput DeviceI; DeviceInput DeviceI;
DeviceI.FromString( sDeviceInputStrings[i] ); DeviceI.FromString( sDeviceInputStrings[j] );
if( DeviceI.IsValid() ) if( DeviceI.IsValid() )
SetInputMap( DeviceI, GameI, i ); SetInputMap( DeviceI, GameI, j );
} }
} }
} }
+11 -17
View File
@@ -12,20 +12,12 @@ const int NUM_USER_GAME_TO_DEVICE_SLOTS = 2;
struct AutoMappingEntry struct AutoMappingEntry
{ {
AutoMappingEntry( int i, DeviceButton db, GameButton gb, bool b ) AutoMappingEntry( int i, DeviceButton db, GameButton gb, bool b ):
{ m_iSlotIndex(i), m_deviceButton(db),
m_iSlotIndex = i; m_gb(gb), m_bSecondController(b) {}
m_deviceButton = db; AutoMappingEntry(): m_iSlotIndex(-1),
m_gb = gb; m_deviceButton(DeviceButton_Invalid), m_gb(GameButton_Invalid),
m_bSecondController = b; m_bSecondController(false) {}
}
AutoMappingEntry()
{
m_iSlotIndex = -1;
m_deviceButton = DeviceButton_Invalid;
m_gb = GameButton_Invalid;
m_bSecondController = false;
}
bool IsEmpty() const { return m_deviceButton == DeviceButton_Invalid && m_gb == GameButton_Invalid; } bool IsEmpty() const { return m_deviceButton == DeviceButton_Invalid && m_gb == GameButton_Invalid; }
int m_iSlotIndex; int m_iSlotIndex;
@@ -86,10 +78,8 @@ struct AutoMappings
AutoMappingEntry im37 = AutoMappingEntry(), AutoMappingEntry im37 = AutoMappingEntry(),
AutoMappingEntry im38 = AutoMappingEntry(), AutoMappingEntry im38 = AutoMappingEntry(),
AutoMappingEntry im39 = AutoMappingEntry() ) AutoMappingEntry im39 = AutoMappingEntry() )
: m_sGame(s1), m_sDriverRegex(s2), m_sControllerName(s3)
{ {
m_sGame = s1;
m_sDriverRegex = s2;
m_sControllerName = s3;
#define PUSH( im ) if(!im.IsEmpty()) m_vMaps.push_back(im); #define PUSH( im ) if(!im.IsEmpty()) m_vMaps.push_back(im);
PUSH(im0);PUSH(im1);PUSH(im2);PUSH(im3);PUSH(im4);PUSH(im5);PUSH(im6);PUSH(im7);PUSH(im8);PUSH(im9);PUSH(im10);PUSH(im11);PUSH(im12);PUSH(im13);PUSH(im14);PUSH(im15);PUSH(im16);PUSH(im17);PUSH(im18);PUSH(im19); PUSH(im0);PUSH(im1);PUSH(im2);PUSH(im3);PUSH(im4);PUSH(im5);PUSH(im6);PUSH(im7);PUSH(im8);PUSH(im9);PUSH(im10);PUSH(im11);PUSH(im12);PUSH(im13);PUSH(im14);PUSH(im15);PUSH(im16);PUSH(im17);PUSH(im18);PUSH(im19);
PUSH(im20);PUSH(im21);PUSH(im22);PUSH(im23);PUSH(im24);PUSH(im25);PUSH(im26);PUSH(im27);PUSH(im28);PUSH(im29);PUSH(im30);PUSH(im31);PUSH(im32);PUSH(im33);PUSH(im34);PUSH(im35);PUSH(im36);PUSH(im37);PUSH(im38);PUSH(im39); PUSH(im20);PUSH(im21);PUSH(im22);PUSH(im23);PUSH(im24);PUSH(im25);PUSH(im26);PUSH(im27);PUSH(im28);PUSH(im29);PUSH(im30);PUSH(im31);PUSH(im32);PUSH(im33);PUSH(im34);PUSH(im35);PUSH(im36);PUSH(im37);PUSH(im38);PUSH(im39);
@@ -206,6 +196,10 @@ protected:
void UpdateTempDItoGI(); void UpdateTempDItoGI();
const InputScheme *m_pInputScheme; const InputScheme *m_pInputScheme;
private:
InputMapper(const InputMapper& rhs);
InputMapper& operator=(const InputMapper& rhs);
}; };
extern InputMapper* INPUTMAPPER; // global and accessable from anywhere in our program extern InputMapper* INPUTMAPPER; // global and accessable from anywhere in our program
+2
View File
@@ -25,6 +25,8 @@ private:
void CreateImpl(); void CreateImpl();
RString m_sGroup, m_sName; RString m_sGroup, m_sName;
ILocalizedStringImpl *m_pImpl; ILocalizedStringImpl *m_pImpl;
// Swallow up warnings. If they must be used, define them.
LocalizedString& operator=(const LocalizedString& rhs);
}; };
#endif #endif
+6
View File
@@ -42,6 +42,9 @@ public:
private: private:
lua_State *m_pLuaMain; lua_State *m_pLuaMain;
// Swallow up warnings. If they must be used, define them.
LuaManager& operator=(const LuaManager& rhs);
LuaManager(const LuaManager& rhs);
}; };
extern LuaManager *LUA; extern LuaManager *LUA;
@@ -155,6 +158,9 @@ private:
LuaReference *m_Name; LuaReference *m_Name;
LuaReference *m_pOldValue; LuaReference *m_pOldValue;
// Swallow up warnings. If they must be used, define them.
LuaThreadVariable& operator=(const LuaThreadVariable& rhs);
}; };
/** /**
+28 -7
View File
@@ -17,15 +17,13 @@ MeterDisplay::MeterDisplay()
void MeterDisplay::Load( RString sStreamPath, float fStreamWidth, RString sTipPath ) void MeterDisplay::Load( RString sStreamPath, float fStreamWidth, RString sTipPath )
{ {
m_fStreamWidth = fStreamWidth;
m_sprStream.Load( sStreamPath ); m_sprStream.Load( sStreamPath );
m_sprStream->SetZoomX( fStreamWidth / m_sprStream->GetUnzoomedWidth() );
this->AddChild( m_sprStream ); this->AddChild( m_sprStream );
m_sprTip.Load( sTipPath ); m_sprTip.Load( sTipPath );
this->AddChild( m_sprTip ); this->AddChild( m_sprTip );
SetStreamWidth( fStreamWidth );
SetPercent( 0.5f ); SetPercent( 0.5f );
} }
@@ -33,14 +31,10 @@ void MeterDisplay::LoadFromNode( const XNode* pNode )
{ {
LOG->Trace( "MeterDisplay::LoadFromNode(%s)", ActorUtil::GetWhere(pNode).c_str() ); LOG->Trace( "MeterDisplay::LoadFromNode(%s)", ActorUtil::GetWhere(pNode).c_str() );
if( !pNode->GetAttrValue("StreamWidth", m_fStreamWidth) )
RageException::Throw( "%s: MeterDisplay: missing the \"StreamWidth\" attribute", ActorUtil::GetWhere(pNode).c_str() );
const XNode *pStream = pNode->GetChild( "Stream" ); const XNode *pStream = pNode->GetChild( "Stream" );
if( pStream == NULL ) if( pStream == NULL )
RageException::Throw( "%s: MeterDisplay: missing the \"Stream\" attribute", ActorUtil::GetWhere(pNode).c_str() ); RageException::Throw( "%s: MeterDisplay: missing the \"Stream\" attribute", ActorUtil::GetWhere(pNode).c_str() );
m_sprStream.LoadActorFromNode( pStream, this ); m_sprStream.LoadActorFromNode( pStream, this );
m_sprStream->SetZoomX( m_fStreamWidth / m_sprStream->GetUnzoomedWidth() );
this->AddChild( m_sprStream ); this->AddChild( m_sprStream );
const XNode* pChild = pNode->GetChild( "Tip" ); const XNode* pChild = pNode->GetChild( "Tip" );
@@ -50,6 +44,10 @@ void MeterDisplay::LoadFromNode( const XNode* pNode )
this->AddChild( m_sprTip ); this->AddChild( m_sprTip );
} }
float fStreamWidth = 0;
pNode->GetAttrValue( "StreamWidth", fStreamWidth );
SetStreamWidth( fStreamWidth );
SetPercent( 0.5f ); SetPercent( 0.5f );
ActorFrame::LoadFromNode( pNode ); ActorFrame::LoadFromNode( pNode );
@@ -65,6 +63,12 @@ void MeterDisplay::SetPercent( float fPercent )
m_sprTip->SetX( SCALE(fPercent, 0.f, 1.f, -m_fStreamWidth/2, m_fStreamWidth/2) ); m_sprTip->SetX( SCALE(fPercent, 0.f, 1.f, -m_fStreamWidth/2, m_fStreamWidth/2) );
} }
void MeterDisplay::SetStreamWidth( float fStreamWidth )
{
m_fStreamWidth = fStreamWidth;
m_sprStream->SetZoomX( m_fStreamWidth / m_sprStream->GetUnzoomedWidth() );
}
void SongMeterDisplay::Update( float fDeltaTime ) void SongMeterDisplay::Update( float fDeltaTime )
{ {
if( GAMESTATE->m_pCurSong ) if( GAMESTATE->m_pCurSong )
@@ -80,6 +84,23 @@ void SongMeterDisplay::Update( float fDeltaTime )
MeterDisplay::Update( fDeltaTime ); MeterDisplay::Update( fDeltaTime );
} }
// lua start
#include "LuaBinding.h"
class LunaMeterDisplay: public Luna<MeterDisplay>
{
public:
static int SetStreamWidth( T* p, lua_State *L ) { p->SetStreamWidth(FArg(1)); return 0; }
LunaMeterDisplay()
{
ADD_METHOD( SetStreamWidth );
}
};
LUA_REGISTER_DERIVED_CLASS( MeterDisplay, ActorFrame )
// lua end
/* /*
* (c) 2003-2004 Chris Danford * (c) 2003-2004 Chris Danford
* All rights reserved. * All rights reserved.
+1 -2
View File
@@ -19,8 +19,7 @@ public:
void SetStreamWidth( float fStreamWidth ); void SetStreamWidth( float fStreamWidth );
// Lua // Lua
// HACK: not linking right now. void PushSelf( lua_State *L );
// void PushSelf( lua_State *L );
private: private:
float m_fStreamWidth; float m_fStreamWidth;
+3 -3
View File
@@ -155,15 +155,15 @@ void ModIconRow::SetFromGameState()
continue; // skip continue; // skip
// search for a vacant spot // search for a vacant spot
for( int i=iPerferredCol; i<NUM_OPTION_ICONS; i++ ) for( int j=iPerferredCol; j<NUM_OPTION_ICONS; j++ )
{ {
if( vsText[i] != "" ) if( vsText[j] != "" )
{ {
continue; continue;
} }
else else
{ {
vsText[i] = sOption; vsText[j] = sOption;
break; break;
} }
} }
+13 -9
View File
@@ -29,6 +29,7 @@ Model::Model()
m_fDefaultAnimationRate = 1; m_fDefaultAnimationRate = 1;
m_fCurAnimationRate = 1; m_fCurAnimationRate = 1;
m_bLoop = true; m_bLoop = true;
m_bDrawCelShaded = false;
m_pTempGeometry = NULL; m_pTempGeometry = NULL;
} }
@@ -288,18 +289,19 @@ bool Model::EarlyAbortDraw() const
void Model::DrawCelShaded() void Model::DrawCelShaded()
{ {
// TODO: use shell shader for outline. // First pass: shell. We only want the backfaces for this.
this->SetZWrite( true ); DISPLAY->SetCelShaded(1);
DISPLAY->SetCullMode(CULL_FRONT);
// First pass: outline/shell this->SetZWrite(false); // XXX: Why on earth isn't the culling working? -Colby
// DISPLAY->SetCelShaded(1);
this->Draw(); this->Draw();
// Second pass: normal shading // Second pass: cel shading
// DISPLAY->SetCelShaded(2); DISPLAY->SetCelShaded(2);
// this->Draw(); DISPLAY->SetCullMode(CULL_BACK);
this->SetZWrite(true);
this->Draw();
// DISPLAY->SetCelShaded(0) DISPLAY->SetCelShaded(0);
} }
void Model::DrawPrimitives() void Model::DrawPrimitives()
@@ -779,6 +781,7 @@ public:
static int loop( T* p, lua_State *L ) { p->SetLoop(BArg(1)); return 0; } static int loop( T* p, lua_State *L ) { p->SetLoop(BArg(1)); return 0; }
static int rate( T* p, lua_State *L ) { p->SetRate(FArg(1)); return 0; } static int rate( T* p, lua_State *L ) { p->SetRate(FArg(1)); return 0; }
static int GetNumStates( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumStates() ); return 1; } static int GetNumStates( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumStates() ); return 1; }
//static int CelShading( T* p, lua_State *L ) { p->SetCelShading(BArg(1)); return 0; }
LunaModel() LunaModel()
{ {
@@ -789,6 +792,7 @@ public:
ADD_METHOD( rate ); ADD_METHOD( rate );
// sm-ssc adds: // sm-ssc adds:
ADD_METHOD( GetNumStates ); ADD_METHOD( GetNumStates );
//ADD_METHOD( CelShading );
} }
}; };
+2
View File
@@ -39,6 +39,7 @@ public:
virtual void DrawPrimitives(); virtual void DrawPrimitives();
void DrawCelShaded(); void DrawCelShaded();
void SetCelShading( bool bShading ) { m_bDrawCelShaded = bShading; }
virtual int GetNumStates() const; virtual int GetNumStates() const;
virtual void SetState( int iNewState ); virtual void SetState( int iNewState );
@@ -81,6 +82,7 @@ private:
float m_fDefaultAnimationRate; float m_fDefaultAnimationRate;
float m_fCurAnimationRate; float m_fCurAnimationRate;
bool m_bLoop; bool m_bLoop;
bool m_bDrawCelShaded; // for Lua models
}; };
#endif #endif
+3 -6
View File
@@ -66,12 +66,9 @@ private:
RageTexture* pTexture_, RageTexture* pTexture_,
float fDelaySecs_, float fDelaySecs_,
RageVector2 vTranslate_ RageVector2 vTranslate_
) ):
{ pTexture(pTexture_), fDelaySecs(fDelaySecs_),
pTexture = pTexture_; vTranslate(vTranslate_) {}
fDelaySecs = fDelaySecs_;
vTranslate = vTranslate_;
}
RageTexture* pTexture; RageTexture* pTexture;
float fDelaySecs; float fDelaySecs;
+44 -9
View File
@@ -26,9 +26,12 @@ static Preference<bool> g_bMoveRandomToEnd( "MoveRandomToEnd", false );
#define NUM_WHEEL_ITEMS ((int)ceil(NUM_WHEEL_ITEMS_TO_DRAW+2)) #define NUM_WHEEL_ITEMS ((int)ceil(NUM_WHEEL_ITEMS_TO_DRAW+2))
#define WHEEL_TEXT(s) THEME->GetString( "MusicWheel", ssprintf("%sText",s.c_str()) ); #define WHEEL_TEXT(s) THEME->GetString( "MusicWheel", ssprintf("%sText",s.c_str()) );
#define CUSTOM_ITEM_WHEEL_TEXT(s) THEME->GetString( "MusicWheel", ssprintf("CustomItem%sText",s.c_str()) );
static RString SECTION_COLORS_NAME( size_t i ) { return ssprintf("SectionColor%d",int(i+1)); } static RString SECTION_COLORS_NAME( size_t i ) { return ssprintf("SectionColor%d",int(i+1)); }
static RString CHOICE_NAME( RString s ) { return ssprintf("Choice%s",s.c_str()); } static RString CHOICE_NAME( RString s ) { return ssprintf("Choice%s",s.c_str()); }
static RString CUSTOM_WHEEL_ITEM_NAME( RString s ) { return ssprintf("CustomWheelItem%s",s.c_str()); }
static RString CUSTOM_WHEEL_ITEM_COLOR( RString s ) { return ssprintf("%sColor",s.c_str()); }
AutoScreenMessage( SM_SongChanged ); // TODO: Replace this with a Message and MESSAGEMAN AutoScreenMessage( SM_SongChanged ); // TODO: Replace this with a Message and MESSAGEMAN
AutoScreenMessage( SM_SortOrderChanging ); AutoScreenMessage( SM_SortOrderChanging );
@@ -86,6 +89,12 @@ void MusicWheel::Load( RString sType )
CHOICE .Load(sType,CHOICE_NAME,vsModeChoiceNames); CHOICE .Load(sType,CHOICE_NAME,vsModeChoiceNames);
SECTION_COLORS .Load(sType,SECTION_COLORS_NAME,NUM_SECTION_COLORS); SECTION_COLORS .Load(sType,SECTION_COLORS_NAME,NUM_SECTION_COLORS);
CUSTOM_WHEEL_ITEM_NAMES .Load(sType,"CustomWheelItemNames");
vector<RString> vsCustomItemNames;
split( CUSTOM_WHEEL_ITEM_NAMES, ",", vsCustomItemNames );
CUSTOM_CHOICES.Load(sType,CUSTOM_WHEEL_ITEM_NAME,vsCustomItemNames);
CUSTOM_CHOICE_COLORS.Load(sType,CUSTOM_WHEEL_ITEM_COLOR,vsCustomItemNames);
ROULETTE_COLOR .Load(sType,"RouletteColor"); ROULETTE_COLOR .Load(sType,"RouletteColor");
RANDOM_COLOR .Load(sType,"RandomColor"); RANDOM_COLOR .Load(sType,"RandomColor");
PORTAL_COLOR .Load(sType,"PortalColor"); PORTAL_COLOR .Load(sType,"PortalColor");
@@ -324,7 +333,7 @@ bool MusicWheel::SelectCourse( const Course *p )
bool MusicWheel::SelectModeMenuItem() bool MusicWheel::SelectModeMenuItem()
{ {
/* Select the last-chosen option. */ // Select the last-chosen option.
ASSERT( GAMESTATE->m_SortOrder == SORT_MODE_MENU ); ASSERT( GAMESTATE->m_SortOrder == SORT_MODE_MENU );
const vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder]; const vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
unsigned i; unsigned i;
@@ -360,7 +369,7 @@ void MusicWheel::GetSongList( vector<Song*> &arraySongs, SortOrder so )
SONGMAN->GetPreferredSortSongs( apAllSongs ); SONGMAN->GetPreferredSortSongs( apAllSongs );
break; break;
case SORT_POPULARITY: case SORT_POPULARITY:
SONGMAN->GetPopularSongs(); apAllSongs = SONGMAN->GetPopularSongs();
break; break;
case SORT_GROUP: case SORT_GROUP:
// if we're not using sections with a preferred song group, and there // if we're not using sections with a preferred song group, and there
@@ -501,7 +510,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
{ {
// Make an array of Song*, then sort them // Make an array of Song*, then sort them
vector<Song*> arraySongs; vector<Song*> arraySongs;
GetSongList( arraySongs, so ); GetSongList( arraySongs, so );
bool bUseSections = true; bool bUseSections = true;
@@ -513,11 +521,16 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
// obey order specified by the preferred sort list // obey order specified by the preferred sort list
break; break;
case SORT_ROULETTE: case SORT_ROULETTE:
SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, GAMESTATE->m_pCurStyle->m_StepsType, Difficulty_Easy ); {
StepsType st;
Difficulty dc;
SongUtil::GetStepsTypeAndDifficultyFromSortOrder( SORT_EASY_METER, st, dc );
SongUtil::SortSongPointerArrayByStepsTypeAndMeter( arraySongs, st, dc );
if( (bool)PREFSMAN->m_bPreferredSortUsesGroups ) if( (bool)PREFSMAN->m_bPreferredSortUsesGroups )
stable_sort( arraySongs.begin(), arraySongs.end(), SongUtil::CompareSongPointersByGroup ); stable_sort( arraySongs.begin(), arraySongs.end(), SongUtil::CompareSongPointersByGroup );
bUseSections = false; bUseSections = false;
break; break;
}
case SORT_GROUP: case SORT_GROUP:
SongUtil::SortSongPointerArrayByGroupAndTitle( arraySongs ); SongUtil::SortSongPointerArrayByGroupAndTitle( arraySongs );
if(USE_SECTIONS_WITH_PREFERRED_GROUP) if(USE_SECTIONS_WITH_PREFERRED_GROUP)
@@ -572,7 +585,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
ASSERT(0); // unhandled SortOrder ASSERT(0); // unhandled SortOrder
} }
// Build an array of WheelItemDatas from the sorted list of Song*'s // Build an array of WheelItemDatas from the sorted list of Song*'s
arrayWheelItemDatas.clear(); // clear out the previous wheel items arrayWheelItemDatas.clear(); // clear out the previous wheel items
arrayWheelItemDatas.reserve( arraySongs.size() ); arrayWheelItemDatas.reserve( arraySongs.size() );
@@ -622,7 +634,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( sThisSection != sLastSection ) if( sThisSection != sLastSection )
{ {
int iSectionCount = 0; int iSectionCount = 0;
// Count songs in this section // Count songs in this section
unsigned j; unsigned j;
for( j=i; j < arraySongs.size(); j++ ) for( j=i; j < arraySongs.size(); j++ )
@@ -651,7 +662,8 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( SHOW_ROULETTE ) if( SHOW_ROULETTE )
arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_ROULETTE, NULL, "", NULL, ROULETTE_COLOR, 0) ); arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_ROULETTE, NULL, "", NULL, ROULETTE_COLOR, 0) );
// Only add TYPE_PORTAL if there's at least one song on the list. // Only add TYPE_RANDOM and TYPE_PORTAL if there's at least
// one song on the list.
bool bFoundAnySong = false; bool bFoundAnySong = false;
for( unsigned i=0; !bFoundAnySong && i < arrayWheelItemDatas.size(); i++ ) for( unsigned i=0; !bFoundAnySong && i < arrayWheelItemDatas.size(); i++ )
if( arrayWheelItemDatas[i]->m_Type == TYPE_SONG ) if( arrayWheelItemDatas[i]->m_Type == TYPE_SONG )
@@ -662,6 +674,23 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( SHOW_PORTAL && bFoundAnySong ) if( SHOW_PORTAL && bFoundAnySong )
arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_PORTAL, NULL, "", NULL, PORTAL_COLOR, 0) ); arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_PORTAL, NULL, "", NULL, PORTAL_COLOR, 0) );
// add custom wheel items
vector<RString> vsNames;
split( CUSTOM_WHEEL_ITEM_NAMES, ",", vsNames );
for( unsigned i=0; i<vsNames.size(); ++i )
{
MusicWheelItemData wid( TYPE_CUSTOM, NULL, "", NULL, CUSTOM_CHOICE_COLORS.GetValue(vsNames[i]), 0 );
wid.m_pAction = HiddenPtr<GameCommand>( new GameCommand );
wid.m_pAction->m_sName = vsNames[i];
wid.m_pAction->Load( i, ParseCommands(CUSTOM_CHOICES.GetValue(vsNames[i])) );
wid.m_sLabel = CUSTOM_ITEM_WHEEL_TEXT( vsNames[i] );
if( !wid.m_pAction->IsPlayable() )
continue;
arrayWheelItemDatas.push_back( new MusicWheelItemData(wid) );
}
} }
if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) if( GAMESTATE->IsAnExtraStageAndSelectionLocked() )
@@ -808,10 +837,9 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
} }
} }
// init crowns // Update the popularity and init icons.
if( so == SORT_POPULARITY ) if( so == SORT_POPULARITY )
{ {
// init crown icons
for( unsigned i=0; i< min(3u,arrayWheelItemDatas.size()); i++ ) for( unsigned i=0; i< min(3u,arrayWheelItemDatas.size()); i++ )
{ {
MusicWheelItemData& WID = *arrayWheelItemDatas[i]; MusicWheelItemData& WID = *arrayWheelItemDatas[i];
@@ -819,6 +847,7 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
} }
} }
// If we've filtered all items, insert a dummy.
if( arrayWheelItemDatas.empty() ) if( arrayWheelItemDatas.empty() )
arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_SECTION, NULL, "- EMPTY -", NULL, RageColor(1,0,0,1), 0) ); arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_SECTION, NULL, "- EMPTY -", NULL, RageColor(1,0,0,1), 0) );
} }
@@ -1052,6 +1081,12 @@ bool MusicWheel::Select() // return true if this selection ends the screen
ChangeSort( GAMESTATE->m_PreferredSortOrder ); ChangeSort( GAMESTATE->m_PreferredSortOrder );
m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_pAction->m_sName; m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_pAction->m_sName;
return false; return false;
case TYPE_CUSTOM:
GetCurWheelItemData(m_iSelection)->m_pAction->ApplyToAllPlayers();
if( GetCurWheelItemData(m_iSelection)->m_pAction->m_sScreen != "" )
return true;
else
return false;
} }
return true; return true;
} }
+5 -2
View File
@@ -47,6 +47,7 @@ public:
// sm-ssc additions // sm-ssc additions
RString JumpToNextGroup(); RString JumpToNextGroup();
RString JumpToPrevGroup(); RString JumpToPrevGroup();
const MusicWheelItemData *GetCurWheelItemData( int i ) { return (const MusicWheelItemData *) m_CurWheelItemData[i]; }
protected: protected:
MusicWheelItem *MakeItem(); MusicWheelItem *MakeItem();
@@ -59,8 +60,7 @@ protected:
virtual void UpdateSwitch(); virtual void UpdateSwitch();
vector<MusicWheelItemData *> m_WheelItemDatas[NUM_SortOrder]; vector<MusicWheelItemData *> m_WheelItemDatas[NUM_SortOrder]; // aliases into m_UnfilteredWheelItemDatas
const MusicWheelItemData *GetCurWheelItemData( int i ) { return (const MusicWheelItemData *) m_CurWheelItemData[i]; }
RString m_sLastModeMenuItem; RString m_sLastModeMenuItem;
SortOrder m_SortOrder; SortOrder m_SortOrder;
@@ -92,6 +92,9 @@ protected:
ThemeMetric<RageColor> RANDOM_COLOR; ThemeMetric<RageColor> RANDOM_COLOR;
ThemeMetric<RageColor> PORTAL_COLOR; ThemeMetric<RageColor> PORTAL_COLOR;
vector <int> m_viWheelPositions; vector <int> m_viWheelPositions;
ThemeMetric<RString> CUSTOM_WHEEL_ITEM_NAMES;
ThemeMetricMap<RString> CUSTOM_CHOICES;
ThemeMetricMap<RageColor> CUSTOM_CHOICE_COLORS;
}; };
#endif #endif
+7 -1
View File
@@ -29,6 +29,7 @@ static const char *MusicWheelItemTypeNames[] = {
"Mode", "Mode",
"Random", "Random",
"Portal", "Portal",
"Custom",
}; };
XToString( MusicWheelItemType ); XToString( MusicWheelItemType );
@@ -256,6 +257,10 @@ void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pData, int
sDisplayName = THEME->GetString("MusicWheel","Portal"); sDisplayName = THEME->GetString("MusicWheel","Portal");
type = MusicWheelItemType_Portal; type = MusicWheelItemType_Portal;
break; break;
case TYPE_CUSTOM:
sDisplayName = pWID->m_sLabel;
type = MusicWheelItemType_Custom;
break;
} }
m_sprColorPart[type]->SetVisible( true ); m_sprColorPart[type]->SetVisible( true );
@@ -286,10 +291,11 @@ void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pData, int
msg.SetParam( "Course", pWID->m_pCourse ); msg.SetParam( "Course", pWID->m_pCourse );
msg.SetParam( "Index", iIndex ); msg.SetParam( "Index", iIndex );
msg.SetParam( "HasFocus", bHasFocus ); msg.SetParam( "HasFocus", bHasFocus );
msg.SetParam( "SongGroup", pWID->m_sText ); msg.SetParam( "Text", pWID->m_sText );
msg.SetParam( "DrawIndex", iDrawIndex ); msg.SetParam( "DrawIndex", iDrawIndex );
msg.SetParam( "Type", MusicWheelItemTypeToString(type) ); msg.SetParam( "Type", MusicWheelItemTypeToString(type) );
msg.SetParam( "Color", pWID->m_color ); msg.SetParam( "Color", pWID->m_color );
msg.SetParam( "Label", pWID->m_sLabel );
this->HandleMessage( msg ); this->HandleMessage( msg );
} }
+1
View File
@@ -27,6 +27,7 @@ enum MusicWheelItemType
MusicWheelItemType_Mode, MusicWheelItemType_Mode,
MusicWheelItemType_Random, MusicWheelItemType_Random,
MusicWheelItemType_Portal, MusicWheelItemType_Portal,
MusicWheelItemType_Custom,
NUM_MusicWheelItemType, NUM_MusicWheelItemType,
MusicWheelItemType_Invalid, MusicWheelItemType_Invalid,
}; };
+2 -2
View File
@@ -855,9 +855,9 @@ void NoteData::GetTapNoteRangeExclusive( int iTrack, int iStartRow, int iEndRow,
--prev; --prev;
if( prev->second.type == TapNote::hold_head ) if( prev->second.type == TapNote::hold_head )
{ {
int iStartRow = prev->first; int localStartRow = prev->first;
const TapNote &tn = prev->second; const TapNote &tn = prev->second;
if( iStartRow + tn.iDuration >= iEndRow ) if( localStartRow + tn.iDuration >= iEndRow )
end = prev; end = prev;
} }
} }
+5 -5
View File
@@ -250,8 +250,8 @@ static void LoadFromSMNoteDataStringWithPlayer( NoteData& out, const RString &sS
for( int t=0; t<out.GetNumTracks(); t++ ) for( int t=0; t<out.GetNumTracks(); t++ )
{ {
NoteData::iterator begin = out.begin( t ); NoteData::iterator begin = out.begin( t );
NoteData::iterator end = out.end( t ); NoteData::iterator lEnd = out.end( t );
while( begin != end ) while( begin != lEnd )
{ {
NoteData::iterator next = Increment( begin ); NoteData::iterator next = Increment( begin );
const TapNote &tn = begin->second; const TapNote &tn = begin->second;
@@ -677,15 +677,12 @@ void NoteDataUtil::LoadOverlapped( const NoteData &in, NoteData &out, int iNewNu
int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow ) int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow )
{ {
int iMaxTailRow = -1; int iMaxTailRow = -1;
for( int t=0; t<in.GetNumTracks(); t++ )
{
for( int t=0; t<in.GetNumTracks(); t++ ) for( int t=0; t<in.GetNumTracks(); t++ )
{ {
const TapNote &tn = in.GetTapNote( t, iRow ); const TapNote &tn = in.GetTapNote( t, iRow );
if( tn.type == TapNote::hold_head ) if( tn.type == TapNote::hold_head )
iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration ); iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration );
} }
}
return iMaxTailRow; return iMaxTailRow;
} }
@@ -2070,6 +2067,9 @@ const ValidRow g_ValidRows[] =
{ StepsType_dance_double, { f,T,T,T,T,f,f,f } }, { StepsType_dance_double, { f,T,T,T,T,f,f,f } },
{ StepsType_dance_double, { f,f,f,T,T,T,T,f } }, { StepsType_dance_double, { f,f,f,T,T,T,T,f } },
{ StepsType_dance_double, { f,f,f,f,T,T,T,T } }, { StepsType_dance_double, { f,f,f,f,T,T,T,T } },
{ StepsType_pump_double, { T,T,T,T,T,f,f,f,f,f } },
{ StepsType_pump_double, { f,f,T,T,T,T,T,T,f,f } },
{ StepsType_pump_double, { f,f,f,f,f,T,T,T,T,T } },
}; };
#undef T #undef T
#undef f #undef f
+14
View File
@@ -24,7 +24,21 @@ namespace NoteDataUtil
void GetSMNoteDataString( const NoteData &in, RString &notes_out ); void GetSMNoteDataString( const NoteData &in, RString &notes_out );
void SplitCompositeNoteData( const NoteData &in, vector<NoteData> &out ); void SplitCompositeNoteData( const NoteData &in, vector<NoteData> &out );
void CombineCompositeNoteData( NoteData &out, const vector<NoteData> &in ); void CombineCompositeNoteData( NoteData &out, const vector<NoteData> &in );
/**
* @brief Autogenerate notes from one type to another.
*
* TODO: Look into a more intelligent way of doing so.
* @param in The original NoteData.
* @param out the new NoteData.
* @param iNewNumTracks the number of tracks/columns of the new NoteData. */
void LoadTransformedSlidingWindow( const NoteData &in, NoteData &out, int iNewNumTracks ); void LoadTransformedSlidingWindow( const NoteData &in, NoteData &out, int iNewNumTracks );
/**
* @brief Autogenerate notes from one type to another.
*
* NOTE: This code assumes that there are more columns in the original type.
* @param in The original NoteData.
* @param out the new NoteData.
* @param iNewNumTracks the number of tracks/columns of the new NoteData. */
void LoadOverlapped( const NoteData &in, NoteData &out, int iNewNumTracks ); void LoadOverlapped( const NoteData &in, NoteData &out, int iNewNumTracks );
void LoadTransformedLights( const NoteData &in, NoteData &out, int iNewNumTracks ); void LoadTransformedLights( const NoteData &in, NoteData &out, int iNewNumTracks );
void LoadTransformedLightsFromTwo( const NoteData &marquee, const NoteData &bass, NoteData &out ); void LoadTransformedLightsFromTwo( const NoteData &marquee, const NoteData &bass, NoteData &out );
+1 -1
View File
@@ -123,7 +123,7 @@ struct NoteResource
delete m_pActor; delete m_pActor;
} }
const NoteSkinAndPath m_nsap; /* should be refcounted along with g_NoteResource[] */ const NoteSkinAndPath m_nsap; // should be refcounted along with g_NoteResource[]
int m_iRefCount; int m_iRefCount;
Actor *m_pActor; // todo: AutoActor me? -aj Actor *m_pActor; // todo: AutoActor me? -aj
}; };

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