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
PBProject/build
Xcode/build
Xcode/stepmania.xcodeproj/xcuserdata
Xcode/stepmania.xcodeproj/project.xcworkspace/xcuserdata
src/build-*
src/Release-*
src/libtomcrypt/build-*
@@ -35,6 +37,7 @@ src/libtomcrypt/Release-*
src/libtommath/build-*
src/libtommath/Release-*
src/*.old
src/.deps
ver.cpp
lib*_link.a
Data/UserPrefs
+29 -24
View File
@@ -1,24 +1,29 @@
varying vec2 texCoords;
varying vec3 normal, viewVector;
varying vec4 lightVector, lightColor;
uniform sampler2D Texture1;
void main(void)
{
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;
if( intensity > 0.35 )
shade = clamp(1.0 * intensity + 0.4, 0.0, 1.0);
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 tex = texture2D(Texture1, texCoords);
gl_FragColor = lightColor * vec4(tex.rgb * shade, 1.0);
}
uniform sampler2D Texture0;
varying vec2 vCoord;
varying vec3 vNor;
const vec4 shadowColor = vec4(0.6, 0.75, 0.9, 1.0);
void main() {
vec3 nor, light;
nor = normalize(vNor);
vec4 diffuse, specular, color, lightSource;
float ambient = length(gl_FrontMaterial.ambient.rgb);
lightSource = gl_LightSource[0].position;
light = normalize(gl_ModelViewMatrix * lightSource).xyz;
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;
}
+9 -16
View File
@@ -1,16 +1,9 @@
varying vec3 normal, viewVector;
varying vec4 lightVector, lightColor;
varying vec2 texCoords;
void main(void)
{
texCoords = gl_MultiTexCoord0.st;
vec4 objectPos = gl_ModelViewMatrix * 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();
}
varying vec2 vCoord;
varying vec3 vNor;
void main() {
vCoord = gl_MultiTexCoord0.st;
vNor = gl_Normal.xyz;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
+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.
________________________________________________________________________________
[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
* Added Fakes to the RadarCategories. Start parsing between versions.
* 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
--------
* 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] Add format string metrics for the right hand side of the editor.
[Wolfman2000]
* [ScreenGameplaySyncMachine] Allow themes to use either .ssc or .sm files. [AJ]
20110221
--------
+36 -7
View File
@@ -42,10 +42,10 @@
<Function name='GamePrefAutoSetStyle'/>
<Function name='GamePrefComboOnRolls'/>
<Function name='GamePrefComboUnderField'/>
<Function name='GamePrefDefaultFail'/>
<Function name='GamePrefNotePosition'/>
<Function name='GetCoursesToShowRanking'/>
<Function name='GetCustomDifficulty'/>
<Function name='GetDefaultArrowSpacing'/>
<Function name='GetDefaultOptionLines'/>
<Function name='GetDirectRadar'/>
<Function name='GetEditModeSubScreens'/>
@@ -177,11 +177,11 @@
<Function name='TrailToCustomDifficulty'/>
<Function name='URLEncode'/>
<Function name='UnlockRewardTypeToLocalizedString'/>
<Function name='UserPrefAdjustSpeed'/>
<Function name='UserPrefAutoSetStyle'/>
<Function name='UserPrefComboOnRolls'/>
<Function name='UserPrefComboUnderField'/>
<Function name='UserPrefFlashyCombo'/>
<Function name='UserPrefGameplayFooter'/>
<Function name='UserPrefGameplayShowScore'/>
<Function name='UserPrefGameplayShowStepsDisplay'/>
<Function name='UserPrefLongFail'/>
@@ -672,6 +672,7 @@
<Function name='AnyPlayerHasRankingFeats'/>
<Function name='ApplyGameCommand'/>
<Function name='ClearStageModifiersIllegalForCourse'/>
<Function name='Dopefish'/>
<Function name='EnoughCreditsToJoin'/>
<Function name='Env'/>
<Function name='GetCharacter'/>
@@ -801,6 +802,10 @@
<Class base='ActorFrame' name='HoldJudgment'>
<Function name='LoadFromMultiPlayer'/>
</Class>
<Class name='InputFilter'>
<Function name='GetMouseX'/>
<Function name='GetMouseY'/>
</Class>
<Class base='ActorFrame' name='LifeMeter'>
<Function name='GetLife'/>
<Function name='IsFailing'/>
@@ -826,6 +831,9 @@
<Class name='MessageManager'>
<Function name='Broadcast'/>
</Class>
<Class base='ActorFrame' name='MeterDisplay'>
<Function name='SetStreamWidth'/>
</Class>
<Class base='ActorFrame' name='ModIconRow'>
<Function name='Load'/>
</Class>
@@ -856,9 +864,11 @@
<Class base='ActorFrame' name='OptionRow'>
<Function name='FirstItemGoesDown'/>
<Function name='GetChoiceInRowWithFocus'/>
<Function name='GetLayoutType'/>
<Function name='GetName'/>
<Function name='GetNumChoices'/>
<Function name='GetRowTitle'/>
<Function name='GetSelectType'/>
<Function name='HasFocus'/>
<Function name='OneChoiceForAllPlayers'/>
</Class>
@@ -876,6 +886,9 @@
<Function name='GetLifeMeter'/>
<Function name='GetStepsQueueWrapped'/>
</Class>
<Class name='PlayerOptions'>
<Function name='GetNoteSkin'/>
</Class>
<Class name='PlayerStageStats'>
<Function name='FullCombo'/>
<Function name='FullComboOfScore'/>
@@ -917,6 +930,7 @@
<Function name='GetPlayerNumber'/>
<Function name='GetPlayerOptions'/>
<Function name='GetPlayerOptionsArray'/>
<Function name='GetPlayerOptionsString'/>
<Function name='SetPlayerOptions'/>
</Class>
<Class name='PrefsManager'>
@@ -1100,6 +1114,7 @@
</Class>
<Class base='ScreenWithMenuElements' name='ScreenSelectMusic'>
<Function name='GetGoToOptions'/>
<Function name='GetMusicWheel'/>
<Function name='setupcoursestagemods'/>
<Function name='setupmusicstagemods'/>
</Class>
@@ -1245,6 +1260,7 @@
</Class>
<Class name='Steps'>
<Function name='GetAuthorCredit'/>
<Function name='GetChartStyle'/>
<Function name='GetDescription'/>
<Function name='GetDifficulty'/>
<Function name='GetFilename'/>
@@ -1353,6 +1369,8 @@
<Function name='UnlockEntryIndex'/>
</Class>
<Class base='ActorFrame' name='WheelBase'>
<Function name='GetCurrentIndex'/>
<Function name='GetNumItems'/>
<Function name='GetWheelItem'/>
<Function name='IsLocked'/>
<Function name='IsSettled'/>
@@ -1583,6 +1601,10 @@
<EnumValue name='&apos;JudgmentLine_Held&apos;' value='6'/>
<EnumValue name='&apos;JudgmentLine_MaxCombo&apos;' value='7'/>
</Enum>
<Enum name='LayoutType'>
<EnumValue name='&apos;LayoutType_ShowAllInRow&apos;' value='0'/>
<EnumValue name='&apos;LayoutType_ShowOneInRow&apos;' value='1'/>
</Enum>
<Enum name='LightsMode'>
<EnumValue name='&apos;LightsMode_Attract&apos;' value='0'/>
<EnumValue name='&apos;LightsMode_Joining&apos;' value='1'/>
@@ -1696,9 +1718,10 @@
<EnumValue name='&apos;PaneCategory_Mines&apos;' value='4'/>
<EnumValue name='&apos;PaneCategory_Hands&apos;' value='5'/>
<EnumValue name='&apos;PaneCategory_Lifts&apos;' value='6'/>
<EnumValue name='&apos;PaneCategory_MachineHighScore&apos;' value='7'/>
<EnumValue name='&apos;PaneCategory_MachineHighName&apos;' value='8'/>
<EnumValue name='&apos;PaneCategory_ProfileHighScore&apos;' value='9'/>
<EnumValue name='&apos;PaneCategory_Fakes&apos;' value='7'/>
<EnumValue name='&apos;PaneCategory_MachineHighScore&apos;' value='8'/>
<EnumValue name='&apos;PaneCategory_MachineHighName&apos;' value='9'/>
<EnumValue name='&apos;PaneCategory_ProfileHighScore&apos;' value='10'/>
</Enum>
<Enum name='PeakComboAward'>
<EnumValue name='&apos;PeakComboAward_1000&apos;' value='0'/>
@@ -1752,6 +1775,7 @@
<EnumValue name='&apos;RadarCategory_Hands&apos;' value='9'/>
<EnumValue name='&apos;RadarCategory_Rolls&apos;' value='10'/>
<EnumValue name='&apos;RadarCategory_Lifts&apos;' value='11'/>
<EnumValue name='&apos;RadarCategory_Fakes&apos;' value='12'/>
</Enum>
<Enum name='RandomBackgroundMode'>
<EnumValue name='&apos;RandomBackgroundMode_Off&apos;' value='0'/>
@@ -1779,6 +1803,11 @@
<EnumValue name='&apos;ScreenType_Gameplay&apos;' value='2'/>
<EnumValue name='&apos;ScreenType_SystemMenu&apos;' value='3'/>
</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'>
<EnumValue name='&apos;ShowDancingCharacters_Off&apos;' value='0'/>
<EnumValue name='&apos;ShowDancingCharacters_Random&apos;' value='1'/>
@@ -1963,6 +1992,6 @@
<Constant name='sGame' value='&apos;dance&apos;'/>
<Constant name='top' value='&apos;VertAlign_Top&apos;'/>
</Constants>
<Version>sm-ssc v1.2.2</Version>
<Date>2011-02-21</Date>
<Version>sm-ssc v1.2.3</Version>
<Date>2011-03-15</Date>
</Lua>
+43 -6
View File
@@ -1526,6 +1526,9 @@
<Function name='EnoughCreditsToJoin' return='bool' arguments=''>
Returns <code>true</code> if enough credits have been inserted to join.
</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=''>
Returns the environment table. See <Link class='GameCommand' />.
</Function>
@@ -1898,6 +1901,14 @@
Loads the HoldJudgment for the specified MultiPlayer.
</Function>
</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'>
<Function name='GetLife' return='float' arguments=''>
Returns the amount of life left in the LifeMeter as a float in the range 0..1.
@@ -1964,7 +1975,7 @@
</Class>
<Class name='MeterDisplay'>
<Function name='SetStreamWidth' return='void' arguments='float fWidth'>
Sets the width of the MeterDisplay to <code>fWidth</code>.
</Function>
</Class>
<Class name='Model'>
@@ -2045,6 +2056,9 @@
<Function name='GetChoiceInRowWithFocus' sm-ssc='true' return='int' arguments='PlayerNumber pn'>
Returns an index of the choice in the row that player <code>pn</code> is on.
</Function>
<Function name='GetLayoutType' sm-ssc='true' return='LayoutType' arguments=''>
Returns the OptionRow's layout type.
</Function>
<Function name='GetName' sm-ssc='true' return='string' arguments=''>
Returns the name of the OptionRow.
</Function>
@@ -2054,6 +2068,9 @@
<Function name='GetRowTitle' sm-ssc='true' return='string' arguments=''>
Returns the row title string.
</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'>
Returns <code>true</code> if this row is focused by player <code>pn</code>.
</Function>
@@ -2080,6 +2097,11 @@
</Function>
</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'>
<Function name='FullCombo' return='bool' arguments=''>
Returns <code>true</code> if a full combo (TNS_W3 and up) was obtained.
@@ -2208,8 +2230,11 @@
<Function name='GetPlayerNumber' return='PlayerNumber' arguments=''>
Returns the player number for this PlayerState.
</Function>
<Function name='GetPlayerOptions' return='string' arguments='ModsLevel ml'>
Returns a string of player options for the specified ModsLevel.
<Function name='GetPlayerOptions' renamed='true' return='PlayerOptions' arguments='ModsLevel ml'>
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 name='GetPlayerOptionsArray' return='{string}' arguments='ModsLevel ml'>
Returns a table of strings, containing the player options for the specified ModsLevel.
@@ -2667,6 +2692,9 @@
<Function name='GetGoToOptions' return='bool' arguments=''>
Returns <code>true</code> if the player is going to the options screen.
</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=''>
[02 StageMods.lua] Sets up modifiers for course modes.
</Function>
@@ -3059,12 +3087,15 @@
</Function>
</Class>
<Class name='Steps'>
<Function name='GetDescription' return='string' arguments=''>
Returns the Steps description.
</Function>
<Function name='GetAuthorCredit' return='string' arguments=''>
Returns the author that made that particular Steps pattern.
</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=''>
Returns the Steps difficulty.
</Function>
@@ -3342,6 +3373,12 @@
</Function>
</Class>
<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'>
Returns the WheelItem at index <code>iIndex</code>.
</Function>
+4
View File
@@ -109,6 +109,10 @@ juanelote
NitroX72
* 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==
[SSC Beta Testing Team]
KeithD
+2 -2
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.
@@ -9,4 +9,4 @@ These are the 'official' version designations:
* "v0.0 alpha #": Alpha versions (bug squashing, polishing until we reach beta)
* "v0.0 beta #": Beta versions (bug squashing, _focus_ is on high priority bugs)
* "v0.0 rc#": Release Candidates (if there are no problems, move on to final)
* "v0.0": Final Releases
* "v0.0": Final Releases
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
DrawHoldHeadForTapsOnSameRow=0
TapNoteAnimationLength=2
TapAdditionAnimationLength=4
TapMineAnimationLength=1
TapLiftAnimationLength=4
HoldHeadAnimationLength=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.
HoldBodyAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldTailAnimationLength=1 // doesn't matter. Only 1 frame anyway.
HoldHeadAnimationIsNoteColor=0
HoldTopCapAnimationIsNoteColor=0
HoldBodyAnimationIsNoteColor=0
HoldBottomCapAnimationIsNoteColor=0
HoldTailAnimationIsNoteColor=0
HoldLetGoGrayPercent=0.25
HoldHeadIsAboveWavyParts=0
HoldTailIsAboveWavyParts=0
StartDrawingHoldBodyOffsetFromHead=0
StopDrawingHoldBodyOffsetFromTail=0 // top of tail
@@ -48,8 +40,6 @@ TapNoteNoteColorTextureCoordSpacingY=0
HoldHeadNoteColorTextureCoordSpacingX=0
HoldHeadNoteColorTextureCoordSpacingY=0
[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
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
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[ReceptorArrow]
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
HitMineCommand=
AvoidMineCommand=
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_INSTALL=Fatal error during install.
TEXT_IO_LAUNCH_THE_GAME=Launch StepMania
TEXT_IO_TEXTURE_FONT_GENERATOR=Texture Font Generator
[Installer Functions]
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 (bottom)=Edit time signature (single beat note value)
Edit tickcount=Edit tickcount
Edit combo=Edit combo
Editor options=Options
EditorShowBGChangesPlay=Show Backgrounds
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 denominator value.=Enter the note value that represents one beat.
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.=Enter a new artist.
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.
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
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
Save successful.=Save successful.
Saved as SM and DWI.=Saved as SM and DWI.
@@ -1242,6 +1244,7 @@ Description=Description
Chart Style=Chart Style
Main title=Main title
Subtitle=Subtitle
Tap Note=Tap Note
Tap Steps=Tap Steps
Jumps=Jumps
Hands=Hands
@@ -1910,7 +1913,6 @@ Play current beat to end=Play current beat to end
Play whole song=Play whole song
Record=Record
Set selection=Set selection
Drag area marker=Drag area marker
Toggle assist tick=Toggle assist tick
Next/prev steps of same StepsType=Next/prev steps of same StepsType
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
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
Cycle between tap notes=Cycle between tap notes
Lay mine=Lay mine
Lay lift=Lay lift
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()
if pm == "PlayMode_Battle" or pm == "PlayMode_Rave" then
local so = GAMESTATE:GetDefaultSongOptions() .. ",failoff"
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
-- FIX DAT BUG;
local sFail = "";
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
if GAMESTATE:GetPreferredSongGroup() == "---Group All---" then
local song = GAMESTATE:GetCurrentSong()
@@ -51,7 +59,7 @@ function ScreenSelectMusic:setupmusicstagemods()
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
end
-- if PREFSMAN:GetPreference("
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
+1 -1
View File
@@ -74,7 +74,7 @@ function ComboContinue()
sGame = GAMESTATE:GetCurrentGame():GetName()
local Continue = {
dance = GAMESTATE:GetPlayMode() == "PlayMode_Oni" and "TapNoteScore_W2" or "TapNoteScore_W3",
pump = "TapNoteScore_W4",
pump = "TapNoteScore_W3",
beat = "TapNoteScore_W3",
kb7 = "TapNoteScore_W3",
para = "TapNoteScore_W4"
@@ -46,6 +46,7 @@ function InitUserPrefs()
{ "UserPrefProtimingP1", false},
{ "UserPrefProtimingP2", false},
{ "FlashyCombos", false},
{ "GameplayFooter", false},
};
for idx,pref in ipairs(Prefs) do
@@ -323,6 +324,42 @@ function UserPrefFlashyCombo()
setmetatable( t, t );
return t;
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 ]]
--[[ game option rows ]]
@@ -479,7 +516,18 @@ function GamePrefDefaultFail()
LoadSelections = function(self, list, pn)
if ReadGamePrefFromFile("DefaultFail") ~= nil 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
list[1] = true;
end;
@@ -492,14 +540,18 @@ function GamePrefDefaultFail()
-- This is so stupid.
local tChoices = { "Immediate","ImmediateContinue", "AtEnd", "Off" };
local val;
for i=1,#list do
if list[i] then
val = i;
else
val = 1;
end
if list[1] then
val = tChoices[1];
elseif list[2] then
val = tChoices[2];
elseif list[3] then
val = tChoices[3];
elseif list[4] then
val = tChoices[4];
else
val = tChoices[1];
end
WriteGamePrefToFile("DefaultFail",tChoices[val]);
WriteGamePrefToFile("DefaultFail",val);
MESSAGEMAN:Broadcast("PreferenceSet", { Message == "Set Preference" } );
THEME:ReloadMetrics();
end;
+15 -1
View File
@@ -647,6 +647,9 @@ LyricBackChangedCommand=LyricCommand,"Back"
InLength=0
OutLength=0
[NotesWriterSM]
DescriptionUsesCreditField=false
[OptionRow]
ShowModIcons=false
ShowUnderlines=true
@@ -843,6 +846,8 @@ ShowPortal=false
MostPlayedSongsToShow=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,NormalMode,BattleMode"
ChoicePreferred="sort,Preferred"
@@ -865,8 +870,8 @@ ChoiceLength="sort,Length"
ChoiceRecent="sort,Recent"
ChoiceNormalMode="playmode,regular"
ChoiceBattleMode="playmode,battle"
UseEasyMarkerFlag=false
#
CustomWheelItemNames=""
[CourseWheel]
Fallback="MusicWheel"
@@ -930,6 +935,10 @@ ModeX=0
ModeY=0
ModeOnCommand=
#
CustomX=0
CustomY=0
CustomOnCommand=
#
GradeP1X=0
GradeP1Y=0
GradeP2X=0
@@ -956,18 +965,21 @@ StopColor=color("0.8,0.8,0,1")
DelayColor=color("0,0.8,0.8,1")
TimeSignatureColor=color("1,0.55,0,1")
TickcountColor=color("0,1,0,1")
ComboColor=color("0.55,1,0,1")
#
BPMIsLeftSide=true
StopIsLeftSide=true
DelayIsLeftSide=true
TimeSignatureIsLeftSide=true
TickcountIsLeftSide=false
ComboIsLeftSide=false
#
BPMOffsetX=60
StopOffsetX=10
DelayOffsetX=10
TimeSignatureOffsetX=30
TickcountOffsetX=10
ComboOffsetX=30
[PlayerStageStats]
# Original CVS Grading
@@ -3640,6 +3652,7 @@ DescriptionFormat="%s:\n %s\n"
ChartStyleFormat="%s:\n %s\n"
MainTitleFormat="%s:\n %s\n"
SubtitleFormat="%s:\n %s\n"
TapNoteTypeFormat="%s: %s\n"
NumStepsFormat="%s: %d\n"
NumJumpsFormat="%s: %d\n"
NumHoldsFormat="%s: %d\n"
@@ -3706,6 +3719,7 @@ Fallback="StepsDisplay"
# oh, right, minimenus.
[ScreenMiniMenuEditHelp]
Fallback="ScreenMiniMenu"
ShowFooter=false
ColorDisabled=color("1,1,1,1")
RowInitCommand=halign,0.5;valign,0.5;zoom,0.8;x,75;y,45;shadowlength,1
OptionRowNormalMetricsGroup="OptionRowMiniMenuEditHelp"
@@ -176,23 +176,23 @@ t[#t+1] = StandardDecorationFromFileOptional("SongInformation","SongInformation"
local SongOrCourse;
if GAMESTATE:GetCurrentSong() then
SongOrCourse = GAMESTATE:GetCurrentSong();
c.TextTitle:settext( SongOrCourse:GetDisplayMainTitle() or nil );
c.TextSubtitle:settext( SongOrCourse:GetDisplaySubTitle() or nil );
c.TextArtist:settext( SongOrCourse:GetDisplayArtist() or nil );
if SongOrCourse:GetDisplaySubTitle() == "" then
c.TextTitle:visible(true);
c.TextTitle:y(-16.5/2);
c.Subtitle:visible(false);
c.Subtitle:y(0);
c.TextSubtitle:visible(false);
c.TextSubtitle:y(0);
c.TextArtist:visible(true);
c.TextArtist:y(18/2);
else
c.TextTitle:visible(true);
c.TextTitle:y(-16.5);
c.Subtitle:visible(true);
c.Subtitle:y(0);
c.TextSubtitle:visible(true);
c.TextSubtitle:y(0);
c.TextArtist:visible(true);
c.TextArtist:y(18);
end
@@ -1,8 +1,9 @@
local vStats = STATSMAN:GetCurStageStats();
local function CreateStats( pnPlayer )
-- Actor Templates
local aLabel = LoadFont("Common Normal") .. { Text="..."; 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 aLabel = LoadFont("Common Normal") .. { 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!!
local pnStageStats = vStats:GetPlayerStageStats( pnPlayer );
-- 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 ),
-- (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 ),
};
--
local t = Def.ActorFrame {};
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(y,-32);
InitCommand=cmd(y,-34);
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
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); };
};
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(y,-16);
InitCommand=cmd(y,-6);
LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. {
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=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
end;
-- xxx: this only currently works for player 1. -aj
local t = 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 );
};
return t
@@ -130,9 +130,12 @@ for pn in ivalues(PlayerNumber) do
end;
};
end;
t[#t+1] = StandardDecorationFromFileOptional("ScoreFrame","ScoreFrame");
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle");
t[#t+1] = Def.ActorFrame {
InitCommand=function(self)
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);
};
Def.SongMeterDisplay {
StreamWidth=THEME:GetMetric( "SongMeterDisplay", 'StreamWidth' );
InitCommand=cmd(SetStreamWidth,THEME:GetMetric( "SongMeterDisplay", 'StreamWidth' ));
Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream ' .. PlayerNumberToString(PLAYER_1) ) )..{
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 = {
Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" );
};
local TextCmds = {
Pulse = THEME:GetMetric( "Protiming", "TextPulseCommand" );
};
local TNSFrames = {
TapNoteScore_W1 = 0;
@@ -64,6 +67,13 @@ t[#t+1] = Def.ActorFrame {
OnCommand=THEME:GetMetric("Protiming","AverageOnCommand");
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 {
Name="ProtimingGraphBG";
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));
AverageCmds['Pulse'](c.ProtimingAverage);
c.TextDisplay:visible( bShowProtiming );
TextCmds['Pulse'](c.TextDisplay);
c.ProtimingGraphBG:visible( bShowProtiming );
c.ProtimingGraphUnderlay: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
UserPrefLongFail=Fail Length
UserPrefFlashyCombo=Flashy Combo
UserPrefGameplayFooter=Gameplay Footer
[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! )
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.
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.
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.
Speed=Adjust the speed at which arrows travel toward the targets.
@@ -155,3 +158,6 @@ Explanation-Exit=Return to the title menu.
[OptionNames]
Custom=Special
[ScreenTestInput]
HelpText=Hold &BACK; or &START; to exit.
@@ -10,7 +10,7 @@
#BACKGROUND:;
#LYRICSPATH:;
#CDTITLE:;
#MUSIC:ScreenGameplaySyncMachine music.ogg;
#MUSIC:_gameplay sync music.ogg;
#OFFSET:-0.012;
#SAMPLESTART:0.000;
#SAMPLELENGTH:12.000;
+14 -2
View File
@@ -307,6 +307,7 @@ RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2)
[Protiming]
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";
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");
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");
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]
# ReceptorArrowsYStandard=GetTapPosition('Standard')
# ReceptorArrowsYReverse=GetTapPosition('Reverse')
@@ -647,6 +649,7 @@ MeterSetCommand=%function(self,param) \
end; \
if param.Meter then \
if param.Meter >= 10 then \
self:textglowmode('TextGlowMode_Inner'); \
self:glowshift(); \
else \
self:stopeffect(); \
@@ -824,7 +827,9 @@ ItemsLongRowSharedX=SCREEN_CENTER_X
[ScreenOptionsTheme]
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()"
LinegScore="lua,UserPrefGameplayShowScore()"
LinegSScore="lua,UserPrefSpecialScoringMode()"
@@ -834,6 +839,7 @@ LinegAuto="lua,GamePrefAutoSetStyle()"
LinegLongFail="lua,UserPrefLongFail()"
LinegComboUnderField="lua,GamePrefComboUnderField()"
LineFlashyCombo="lua,UserPrefFlashyCombo()"
LineGameplayFooter="lua,UserPrefGameplayFooter()"
[ScreenOptionsSystemDirection]
LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,15,16,LF,17,18,19,20,21,22"
LineLF="lua,UserPrefLongFail()"
@@ -1435,6 +1441,12 @@ StageDisplayY=SCREEN_TOP+24
StageDisplayOnCommand=zoom,0.5;
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=(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
@@ -1,8 +1,62 @@
return Def.ActorFrame {
local t = Def.ActorFrame {};
--
--[[ 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 --]]
--
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y);
Def.Quad {
InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT);
OnCommand=cmd(diffuse,color("0.25,0.15,0.25,1"));
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
-- these elements.
local t = Def.ActorFrame {};
t[#t+1] = StandardDecorationFromFileOptional("Header","Header");
t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer");
return t
@@ -4,10 +4,8 @@ local t = Def.ActorFrame {};
t[#t+1] = LoadFont("Common Normal") .. {
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;
@@ -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]
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]
WaitForChildrenBeforeTweeningOut=true
ShowHeader=true
HeaderX=SCREEN_CENTER_X
HeaderY=SCREEN_TOP
HeaderOnCommand=vertalign,top;diffuse,color("0.5,0.25,0.35,1");
HeaderOnCommand=
HeaderOffCommand=
#
ShowFooter=true
FooterX=SCREEN_CENTER_X
FooterY=SCREEN_BOTTOM
FooterOnCommand=vertalign,bottom;diffuse,color("0.5,0.25,0.35,1");
FooterOnCommand=
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]
ScrollerY=SCREEN_CENTER_Y*1.5
ScrollerOnCommand=
# 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
ShowHeader=true
ShowFooter=true
[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.
fi
if [ $notify -gt 0 ]; then
notify send "sm-ssc build script" "$msg...okay."
notify-send "sm-ssc build script" "$msg...okay."
fi
}
+57 -57
View File
@@ -1,57 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>smzip</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>smicon.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/zip</string>
</array>
<key>CFBundleTypeName</key>
<string>SMZip</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSTypeIsPackage</key>
<false/>
<key>NSPersistentStoreTypeKey</key>
<string>Binary</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>EXECUTABLE_NAME</string>
<key>CFBundleGetInfoString</key>
<string>PRODUCT_FAMILY_BARE PRODUCT_VER_BARE</string>
<key>CFBundleIconFile</key>
<string>smicon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.PRODUCT_ID_BARE</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>PRODUCT_FAMILY_BARE</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>PRODUCT_VER_BARE</string>
<key>CFBundleSignature</key>
<string>Step</string>
<key>CFBundleVersion</key>
<string>PRODUCT_VER_BARE</string>
<key>LSMinimumSystemVersion</key>
<string>10.4.10</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2010</string>
<key>NSPrincipalClass</key>
<string>SMApplication</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>smzip</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>smicon.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/zip</string>
</array>
<key>CFBundleTypeName</key>
<string>SMZip</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSTypeIsPackage</key>
<false/>
<key>NSPersistentStoreTypeKey</key>
<string>Binary</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>EXECUTABLE_NAME</string>
<key>CFBundleGetInfoString</key>
<string>PRODUCT_FAMILY_BARE PRODUCT_VER_BARE</string>
<key>CFBundleIconFile</key>
<string>smicon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.PRODUCT_ID_BARE</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>PRODUCT_FAMILY_BARE</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>PRODUCT_VER_BARE</string>
<key>CFBundleSignature</key>
<string>Step</string>
<key>CFBundleVersion</key>
<string>PRODUCT_VER_BARE</string>
<key>LSMinimumSystemVersion</key>
<string>10.4.10</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2011</string>
<key>NSPrincipalClass</key>
<string>SMApplication</string>
</dict>
</plist>
+24 -8
View File
@@ -7099,7 +7099,7 @@
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES;
GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7112,16 +7112,20 @@
GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0;
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_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = 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_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
@@ -7632,7 +7636,7 @@
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES;
GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7644,16 +7648,20 @@
GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0;
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_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = 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_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
@@ -7963,7 +7971,7 @@
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES;
GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -7975,16 +7983,20 @@
GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0;
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_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = 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_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
@@ -8088,7 +8100,7 @@
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_SYMBOL_SEPARATION = NO;
GCC_FAST_MATH = YES;
GCC_FAST_MATH = NO;
GCC_FAST_OBJC_DISPATCH = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
@@ -8100,16 +8112,20 @@
GCC_UNROLL_LOOPS = YES;
GCC_VERSION = 4.0;
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_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = 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_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNKNOWN_PRAGMAS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
+14 -2
View File
@@ -40,12 +40,23 @@
CRCCheck off
!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)
; 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)
; 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}"
InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" ""
; DirShow show ; (make this hide to not let the user change it)
DirText "${PRODUCT_DISPLAY}"
InstallColors /windows
@@ -464,7 +475,7 @@ Section "Main Section" SecMain
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_PROGRAM_FOLDER).lnk" "$WINDIR\explorer.exe" "$INSTDIR\"
!endif
!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
;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_UNINSTALL).lnk" "$INSTDIR\uninstall.exe"
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
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_CHECK_FOR_UPDATES).lnk" "${UPDATES_URL}"
!endif
+4 -1
View File
@@ -528,9 +528,10 @@ public:
}
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 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; }
static int SetLightDirection( T* p, lua_State *L )
{
luaL_checktype( L, 1, LUA_TTABLE );
@@ -546,6 +547,7 @@ public:
p->SetLightDirection( vTmp );
return 0;
}
// xxx: these might not be good ideas... -aj
/*
static int AddChild( T* p, lua_State *L )
@@ -585,6 +587,7 @@ public:
ADD_METHOD( GetDrawFunction );
ADD_METHOD( SetUpdateFunction );
ADD_METHOD( SortByDrawOrder );
//ADD_METHOD( CustomLighting );
ADD_METHOD( SetAmbientLightColor );
ADD_METHOD( SetDiffuseLightColor );
ADD_METHOD( SetSpecularLightColor );
+1
View File
@@ -81,6 +81,7 @@ public:
void SetFOV( float fFOV ) { m_fFOV = fFOV; }
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 SetDiffuseLightColor( RageColor c ) { m_diffuseColor = c; }
void SetSpecularLightColor( RageColor c ) { m_specularColor = c; }
+1
View File
@@ -33,6 +33,7 @@ public:
static void GetSyncChangeTextGlobal( 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 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
// 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 )
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_XMODE]*-(fYOffset);
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 = truncf(fStartBeat)+1;
const float fStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat );
const float fEndSecond = fStartSecond + fSecsRemaining;
const float lStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat );
const float fEndSecond = lStartSecond + fSecsRemaining;
fEndBeat = pSong->GetBeatFromElapsedTime( fEndSecond );
fEndBeat = truncf(fEndBeat)+1;
+9 -11
View File
@@ -32,7 +32,10 @@ struct Attack
bGlobal = false;
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(
AttackLevel level_,
float fStartSecond_,
@@ -40,16 +43,11 @@ struct Attack
RString sModifiers_,
bool bOn_,
bool bGlobal_,
bool bShowInAttackList_ = true )
{
level = level_;
fStartSecond = fStartSecond_;
fSecsRemaining = fSecsRemaining_;
sModifiers = sModifiers_;
bOn = bOn_;
bGlobal = bGlobal_;
bShowInAttackList = bShowInAttackList_;
}
bool bShowInAttackList_ = true ):
level(level_), fStartSecond(fStartSecond_),
fSecsRemaining(fSecsRemaining_), sModifiers(sModifiers_),
bOn(bOn_), bGlobal(bGlobal_),
bShowInAttackList(bShowInAttackList_) {}
void GetAttackBeats( const Song *pSong, 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;
{
PlayerNumber pn = GetNextEnabledPlayer((PlayerNumber)-1);
const TapNote &t = tn[pn];
const TapNote &tap = tn[pn];
pn = GetNextEnabledPlayer(pn);
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;
pn = GetNextEnabledPlayer(pn);
}
+3 -3
View File
@@ -77,9 +77,9 @@ void BGAnimation::AddLayersFromAniDir( const RString &_sAniDir, const XNode *pNo
else
{
// import as a single layer
BGAnimationLayer* pLayer = new BGAnimationLayer;
pLayer->LoadFromNode( pKey );
this->AddChild( pLayer );
BGAnimationLayer* bgLayer = new BGAnimationLayer;
bgLayer->LoadFromNode( pKey );
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() )
{
map<RString,BackgroundTransition>::const_iterator iter = mapNameToTransition.find( change.m_sTransition );
ASSERT( iter != mapNameToTransition.end() );
const BackgroundTransition &bt = iter->second;
map<RString,BackgroundTransition>::const_iterator lIter = mapNameToTransition.find( change.m_sTransition );
ASSERT( lIter != mapNameToTransition.end() );
const BackgroundTransition &bt = lIter->second;
m_pFadingBGA->RunCommandsOnLeaves( *bt.cmdLeaves );
m_pFadingBGA->RunCommands( *bt.cmdRoot );
}
+2
View File
@@ -250,9 +250,11 @@ void BeginnerHelper::DrawPrimitives()
m_sStepCircle[scd][scde].Draw();
if( DrawCelShaded )
{
FOREACH_PlayerNumber( pn ) // Draw each dancer
if( GAMESTATE->IsHumanPlayer(pn) )
m_pDancer[pn]->DrawCelShaded();
}
else
{
DISPLAY->SetLighting( true );
+6 -11
View File
@@ -328,9 +328,6 @@ void BitmapText::DrawChars( bool bUseStrokeTexture )
}
}
vector<RageSpriteVertex*> vertices;
int iNumVertsToDraw = 0;
for( int start = iStartGlyph; start < iEndGlyph; )
{
int end = start;
@@ -346,21 +343,19 @@ void BitmapText::DrawChars( bool bUseStrokeTexture )
else
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
* 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 */
Actor::SetTextureRenderStates();
RageSpriteVertex &start_vertex = m_aVertices[start*4];
vertices.push_back(&start_vertex);
iNumVertsToDraw += (end-start)*4;
// This is SLOW. We need to do something else about this. -Colby
//Actor::SetTextureRenderStates();
DISPLAY->DrawQuads( &m_aVertices[start*4], (end-start)*4);
}
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
+3 -4
View File
@@ -5,10 +5,9 @@
#include "RageTextureID.h"
#include "ActorUtil.h"
Character::Character()
{
m_iPreloadRefcount = 0;
}
Character::Character(): m_sCharDir(""), m_sCharacterID(""),
m_sDisplayName(""), m_sCardPath(""), m_sIconPath(""),
m_bUsableInRave(false), m_iPreloadRefcount(0) {}
bool Character::Load( RString sCharDir )
{
+44 -45
View File
@@ -85,47 +85,7 @@ int CourseEntry::GetNumModChanges() const
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()
@@ -559,8 +519,8 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
if( e->iChooseIndex < int(vSongAndSteps.size()) )
{
resolved.pSong = vpSongs[e->iChooseIndex];
const vector<Steps*> &vpSongs = mapSongToSteps[resolved.pSong];
resolved.pSteps = vpSongs[ RandomInt(vpSongs.size()) ];
const vector<Steps*> &mappedSongs = mapSongToSteps[resolved.pSong];
resolved.pSteps = mappedSongs[ RandomInt(mappedSongs.size()) ];
}
else
{
@@ -970,8 +930,8 @@ const CourseEntry *Course::FindFixedSong( const Song *pSong ) const
FOREACH_CONST( CourseEntry, m_vEntries, e )
{
const CourseEntry &entry = *e;
Song *pSong = entry.songID.ToSong();
if( pSong == pSong )
Song *lSong = entry.songID.ToSong();
if( pSong == lSong )
return &entry;
}
@@ -1042,10 +1002,49 @@ bool Course::Matches( RString sGroup, RString sCourse ) const
return false;
}
// 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 )
// Not done with lua yet: still another class.
/** @brief Allow Lua to have access to the 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.
int iGainLives; // lives gained back at the beginning of the next song
CourseEntry()
{
bSecret = false;
bNoDifficult = false;
songSort = SongSort_Randomize;
iChooseIndex = 0;
sModifiers = "";
fGainSeconds = 0;
iGainLives = -1;
}
CourseEntry(): bSecret(false), bNoDifficult(false),
songSort(SongSort_Randomize), iChooseIndex(0),
sModifiers(RString("")), fGainSeconds(0), iGainLives(-1) {}
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;
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 )
+9 -10
View File
@@ -11,10 +11,9 @@
#include "FontCharAliases.h"
#include "arch/Dialog/Dialog.h"
FontPage::FontPage()
{
m_iDrawExtraPixelsLeft = m_iDrawExtraPixelsRight = 0;
}
FontPage::FontPage(): m_iHeight(0), m_iLineSpacing(0), m_fVshift(0),
m_iDrawExtraPixelsLeft(0), m_iDrawExtraPixelsRight(0),
m_sTexturePath("") {}
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
{
map<wchar_t,glyph*>::const_iterator m_pDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH );
if( m_pDefault == m_iCharToGlyph.end() )
map<wchar_t,glyph*>::const_iterator mapDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH );
if( mapDefault == m_iCharToGlyph.end() )
RageException::Throw( "The default glyph is missing from the font \"%s\".", path.c_str() );
for( unsigned i = 0; i < str.size(); ++i )
{
// If the glyph for this character is the default glyph, we're incomplete.
const glyph &g = GetGlyph( str[i] );
if( &g == m_pDefault->second )
if( &g == mapDefault->second )
return false;
}
return true;
@@ -718,8 +717,8 @@ void Font::Load( const RString &sIniPath, RString sChars )
for(unsigned i = 0; i < ImportList.size(); ++i)
{
RString path = THEME->GetPathF( "", ImportList[i], true );
if( path == "" )
RString fPath = THEME->GetPathF( "", ImportList[i], true );
if( fPath == "" )
{
RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() );
Dialog::OK( s );
@@ -727,7 +726,7 @@ void Font::Load( const RString &sIniPath, RString sChars )
}
Font subfont;
subfont.Load(path,"");
subfont.Load(fPath,"");
MergeFont(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 );
static void GetFontPaths( const RString &sFontOrTextureFilePath, vector<RString> &sTexturePaths );
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
* are always run. */
float fDeltaTime;
float lDeltaTime;
if( !bga.m_bga->GetVisible() )
{
bga.m_bga->SetVisible( true );
const float fStartSecond = m_pSong->m_Timing.GetElapsedTimeFromBeat( bga.m_fStartBeat );
fDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond;
lDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond;
}
else
{
fDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
lDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
}
// 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 )
{
+2 -3
View File
@@ -93,8 +93,8 @@ bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
if( m_pSteps == NULL && m_dc != Difficulty_Invalid )
{
// Why is this checking for all players?
FOREACH_HumanPlayer( pn )
if( GAMESTATE->m_PreferredDifficulty[pn] != m_dc )
FOREACH_HumanPlayer( human )
if( GAMESTATE->m_PreferredDifficulty[human] != m_dc )
return false;
}
@@ -412,7 +412,6 @@ void GameCommand::LoadOne( const Command& cmd )
else if( sName == "fademusic" )
{
// todo: parse things correctly. -aj
if( cmd.m_vsArgs.size() == 3 )
{
m_bFadeMusic = true;
+1 -1
View File
@@ -3064,7 +3064,7 @@ StepsType GameManager::StringToStepsType( RString sStepsType )
for( int i=0; i<NUM_StepsType; i++ )
if( g_StepsTypeInfos[i].szName == sStepsType )
return StepsType(i);
return StepsType_Invalid;
}
+10 -23
View File
@@ -159,6 +159,8 @@ GameState::GameState() :
m_Environment = new LuaTable;
m_bDopefish = false;
// Don't reset yet; let the first screen do it, so we can use PREFSMAN and THEME.
//Reset();
@@ -1447,27 +1449,6 @@ bool GameState::CurrentOptionsDisqualifyPlayer( PlayerNumber 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 (?)
* GameState::ResetNoteSkins()
* GameState::ResetNoteSkinsForPlayer( PlayerNumber pn )
@@ -2380,9 +2361,9 @@ public:
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 )
return 0;
@@ -2466,6 +2447,11 @@ public:
p->m_pCurCharacters[Enum::Check<PlayerNumber>(L, 1)] = c;
return 0;
}
static int Dopefish( T* p, lua_State *L )
{
lua_pushboolean(L, p->m_bDopefish);
return 1;
}
LunaGameState()
{
@@ -2563,6 +2549,7 @@ public:
ADD_METHOD( GetCurMusicSeconds );
ADD_METHOD( GetCharacter );
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
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_fSongBeatVisible;
@@ -348,6 +338,8 @@ public:
float GetGoalPercentComplete( PlayerNumber pn );
bool IsGoalComplete( PlayerNumber pn ) { return GetGoalPercentComplete( pn ) >= 1; }
bool m_bDopefish;
// Lua
void PushSelf( lua_State *L );
@@ -356,6 +348,9 @@ private:
EarnedExtraStage CalculateEarnedExtraStage() const;
int m_iAwardedExtraStages[NUM_PLAYERS];
bool m_bEarnedExtraStage;
GameState(const GameState& rhs);
GameState& operator=(const GameState& rhs);
};
+1 -1
View File
@@ -9,7 +9,7 @@
*
* TODO: Look into a more flexible system without a fixed number of grades. -Wolfman2000
*/
enum Grade
enum Grade
{
Grade_Tier01, /**< Usually an AAAA */
Grade_Tier02, /**< Usually an AAA */
+4 -1
View File
@@ -24,7 +24,7 @@ enum InputEventType
struct InputEvent
{
InputEvent() { type=IET_FIRST_PRESS; };
InputEvent(): type(IET_FIRST_PRESS) {}
DeviceInput di;
InputEventType type;
@@ -84,6 +84,9 @@ private:
vector<InputEvent> queue;
RageMutex *queuemutex;
MouseCoordinates m_MouseCoords;
InputFilter(const InputFilter& rhs);
InputFilter& operator=(const InputFilter& rhs);
};
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_9, GAME_BUTTON_START, false )
),
// TODO: add black and white buttons, as well as other missing inputs -aj
AutoMappings(
"dance",
"XBOX Gamepad Plugin V0.01",
@@ -1094,12 +1093,12 @@ void InputMappings::ReadMappings( const InputScheme *pInputScheme, RString sFile
vector<RString> sDeviceInputStrings;
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;
DeviceI.FromString( sDeviceInputStrings[i] );
DeviceI.FromString( sDeviceInputStrings[j] );
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
{
AutoMappingEntry( int i, DeviceButton db, GameButton gb, bool b )
{
m_iSlotIndex = i;
m_deviceButton = db;
m_gb = gb;
m_bSecondController = b;
}
AutoMappingEntry()
{
m_iSlotIndex = -1;
m_deviceButton = DeviceButton_Invalid;
m_gb = GameButton_Invalid;
m_bSecondController = false;
}
AutoMappingEntry( int i, DeviceButton db, GameButton gb, bool b ):
m_iSlotIndex(i), m_deviceButton(db),
m_gb(gb), m_bSecondController(b) {}
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; }
int m_iSlotIndex;
@@ -86,10 +78,8 @@ struct AutoMappings
AutoMappingEntry im37 = AutoMappingEntry(),
AutoMappingEntry im38 = 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);
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);
@@ -206,6 +196,10 @@ protected:
void UpdateTempDItoGI();
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
+2
View File
@@ -25,6 +25,8 @@ private:
void CreateImpl();
RString m_sGroup, m_sName;
ILocalizedStringImpl *m_pImpl;
// Swallow up warnings. If they must be used, define them.
LocalizedString& operator=(const LocalizedString& rhs);
};
#endif
+6
View File
@@ -42,6 +42,9 @@ public:
private:
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;
@@ -155,6 +158,9 @@ private:
LuaReference *m_Name;
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 )
{
m_fStreamWidth = fStreamWidth;
m_sprStream.Load( sStreamPath );
m_sprStream->SetZoomX( fStreamWidth / m_sprStream->GetUnzoomedWidth() );
this->AddChild( m_sprStream );
m_sprTip.Load( sTipPath );
this->AddChild( m_sprTip );
SetStreamWidth( fStreamWidth );
SetPercent( 0.5f );
}
@@ -33,14 +31,10 @@ void MeterDisplay::LoadFromNode( const XNode* pNode )
{
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" );
if( pStream == NULL )
RageException::Throw( "%s: MeterDisplay: missing the \"Stream\" attribute", ActorUtil::GetWhere(pNode).c_str() );
m_sprStream.LoadActorFromNode( pStream, this );
m_sprStream->SetZoomX( m_fStreamWidth / m_sprStream->GetUnzoomedWidth() );
this->AddChild( m_sprStream );
const XNode* pChild = pNode->GetChild( "Tip" );
@@ -50,6 +44,10 @@ void MeterDisplay::LoadFromNode( const XNode* pNode )
this->AddChild( m_sprTip );
}
float fStreamWidth = 0;
pNode->GetAttrValue( "StreamWidth", fStreamWidth );
SetStreamWidth( fStreamWidth );
SetPercent( 0.5f );
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) );
}
void MeterDisplay::SetStreamWidth( float fStreamWidth )
{
m_fStreamWidth = fStreamWidth;
m_sprStream->SetZoomX( m_fStreamWidth / m_sprStream->GetUnzoomedWidth() );
}
void SongMeterDisplay::Update( float fDeltaTime )
{
if( GAMESTATE->m_pCurSong )
@@ -80,6 +84,23 @@ void SongMeterDisplay::Update( float 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
* All rights reserved.
+2 -3
View File
@@ -17,10 +17,9 @@ public:
void SetPercent( float fPercent );
void SetStreamWidth( float fStreamWidth );
// Lua
// HACK: not linking right now.
// void PushSelf( lua_State *L );
void PushSelf( lua_State *L );
private:
float m_fStreamWidth;
+3 -3
View File
@@ -155,15 +155,15 @@ void ModIconRow::SetFromGameState()
continue; // skip
// 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;
}
else
{
vsText[i] = sOption;
vsText[j] = sOption;
break;
}
}
+13 -9
View File
@@ -29,6 +29,7 @@ Model::Model()
m_fDefaultAnimationRate = 1;
m_fCurAnimationRate = 1;
m_bLoop = true;
m_bDrawCelShaded = false;
m_pTempGeometry = NULL;
}
@@ -288,18 +289,19 @@ bool Model::EarlyAbortDraw() const
void Model::DrawCelShaded()
{
// TODO: use shell shader for outline.
this->SetZWrite( true );
// First pass: outline/shell
// DISPLAY->SetCelShaded(1);
// First pass: shell. We only want the backfaces for this.
DISPLAY->SetCelShaded(1);
DISPLAY->SetCullMode(CULL_FRONT);
this->SetZWrite(false); // XXX: Why on earth isn't the culling working? -Colby
this->Draw();
// Second pass: normal shading
// DISPLAY->SetCelShaded(2);
// this->Draw();
// Second pass: cel shading
DISPLAY->SetCelShaded(2);
DISPLAY->SetCullMode(CULL_BACK);
this->SetZWrite(true);
this->Draw();
// DISPLAY->SetCelShaded(0)
DISPLAY->SetCelShaded(0);
}
void Model::DrawPrimitives()
@@ -779,6 +781,7 @@ public:
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 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()
{
@@ -789,6 +792,7 @@ public:
ADD_METHOD( rate );
// sm-ssc adds:
ADD_METHOD( GetNumStates );
//ADD_METHOD( CelShading );
}
};
+2
View File
@@ -39,6 +39,7 @@ public:
virtual void DrawPrimitives();
void DrawCelShaded();
void SetCelShading( bool bShading ) { m_bDrawCelShaded = bShading; }
virtual int GetNumStates() const;
virtual void SetState( int iNewState );
@@ -81,6 +82,7 @@ private:
float m_fDefaultAnimationRate;
float m_fCurAnimationRate;
bool m_bLoop;
bool m_bDrawCelShaded; // for Lua models
};
#endif
+3 -6
View File
@@ -66,12 +66,9 @@ private:
RageTexture* pTexture_,
float fDelaySecs_,
RageVector2 vTranslate_
)
{
pTexture = pTexture_;
fDelaySecs = fDelaySecs_;
vTranslate = vTranslate_;
}
):
pTexture(pTexture_), fDelaySecs(fDelaySecs_),
vTranslate(vTranslate_) {}
RageTexture* pTexture;
float fDelaySecs;
+47 -12
View File
@@ -25,10 +25,13 @@
static Preference<bool> g_bMoveRandomToEnd( "MoveRandomToEnd", false );
#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 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_SortOrderChanging );
@@ -86,6 +89,12 @@ void MusicWheel::Load( RString sType )
CHOICE .Load(sType,CHOICE_NAME,vsModeChoiceNames);
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");
RANDOM_COLOR .Load(sType,"RandomColor");
PORTAL_COLOR .Load(sType,"PortalColor");
@@ -316,7 +325,7 @@ bool MusicWheel::SelectCourse( const Course *p )
for( i=0; i<m_CurWheelItemData.size(); i++ )
{
if( GetCurWheelItemData(i)->m_pCourse == p )
m_iSelection = i; // select it
m_iSelection = i; // select it
}
return true;
@@ -324,7 +333,7 @@ bool MusicWheel::SelectCourse( const Course *p )
bool MusicWheel::SelectModeMenuItem()
{
/* Select the last-chosen option. */
// Select the last-chosen option.
ASSERT( GAMESTATE->m_SortOrder == SORT_MODE_MENU );
const vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
unsigned i;
@@ -360,7 +369,7 @@ void MusicWheel::GetSongList( vector<Song*> &arraySongs, SortOrder so )
SONGMAN->GetPreferredSortSongs( apAllSongs );
break;
case SORT_POPULARITY:
SONGMAN->GetPopularSongs();
apAllSongs = SONGMAN->GetPopularSongs();
break;
case SORT_GROUP:
// if we're not using sections with a preferred song group, and there
@@ -404,7 +413,7 @@ void MusicWheel::GetSongList( vector<Song*> &arraySongs, SortOrder so )
continue;
}
/* Hide locked songs. If RANDOM_PICKS_LOCKED_SONGS, hide in Roulette
/* Hide locked songs. If RANDOM_PICKS_LOCKED_SONGS, hide in Roulette
* and Random, too. */
if( (so!=SORT_ROULETTE || !RANDOM_PICKS_LOCKED_SONGS) && iLocked )
continue;
@@ -501,7 +510,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
{
// Make an array of Song*, then sort them
vector<Song*> arraySongs;
GetSongList( arraySongs, so );
bool bUseSections = true;
@@ -513,11 +521,16 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
// obey order specified by the preferred sort list
break;
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 )
stable_sort( arraySongs.begin(), arraySongs.end(), SongUtil::CompareSongPointersByGroup );
bUseSections = false;
break;
}
case SORT_GROUP:
SongUtil::SortSongPointerArrayByGroupAndTitle( arraySongs );
if(USE_SECTIONS_WITH_PREFERRED_GROUP)
@@ -572,7 +585,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
ASSERT(0); // unhandled SortOrder
}
// Build an array of WheelItemDatas from the sorted list of Song*'s
arrayWheelItemDatas.clear(); // clear out the previous wheel items
arrayWheelItemDatas.reserve( arraySongs.size() );
@@ -622,7 +634,6 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( sThisSection != sLastSection )
{
int iSectionCount = 0;
// Count songs in this section
unsigned j;
for( j=i; j < arraySongs.size(); j++ )
@@ -651,7 +662,8 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( SHOW_ROULETTE )
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;
for( unsigned i=0; !bFoundAnySong && i < arrayWheelItemDatas.size(); i++ )
if( arrayWheelItemDatas[i]->m_Type == TYPE_SONG )
@@ -662,6 +674,23 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
if( SHOW_PORTAL && bFoundAnySong )
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() )
@@ -808,10 +837,9 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
}
}
// init crowns
// Update the popularity and init icons.
if( so == SORT_POPULARITY )
{
// init crown icons
for( unsigned i=0; i< min(3u,arrayWheelItemDatas.size()); 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() )
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 );
m_sLastModeMenuItem = GetCurWheelItemData(m_iSelection)->m_pAction->m_sName;
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;
}
+5 -2
View File
@@ -47,6 +47,7 @@ public:
// sm-ssc additions
RString JumpToNextGroup();
RString JumpToPrevGroup();
const MusicWheelItemData *GetCurWheelItemData( int i ) { return (const MusicWheelItemData *) m_CurWheelItemData[i]; }
protected:
MusicWheelItem *MakeItem();
@@ -59,8 +60,7 @@ protected:
virtual void UpdateSwitch();
vector<MusicWheelItemData *> m_WheelItemDatas[NUM_SortOrder];
const MusicWheelItemData *GetCurWheelItemData( int i ) { return (const MusicWheelItemData *) m_CurWheelItemData[i]; }
vector<MusicWheelItemData *> m_WheelItemDatas[NUM_SortOrder]; // aliases into m_UnfilteredWheelItemDatas
RString m_sLastModeMenuItem;
SortOrder m_SortOrder;
@@ -92,6 +92,9 @@ protected:
ThemeMetric<RageColor> RANDOM_COLOR;
ThemeMetric<RageColor> PORTAL_COLOR;
vector <int> m_viWheelPositions;
ThemeMetric<RString> CUSTOM_WHEEL_ITEM_NAMES;
ThemeMetricMap<RString> CUSTOM_CHOICES;
ThemeMetricMap<RageColor> CUSTOM_CHOICE_COLORS;
};
#endif
+9 -3
View File
@@ -29,6 +29,7 @@ static const char *MusicWheelItemTypeNames[] = {
"Mode",
"Random",
"Portal",
"Custom",
};
XToString( MusicWheelItemType );
@@ -78,7 +79,7 @@ MusicWheelItem::MusicWheelItem( RString sType ):
{
m_pText[i] = NULL;
// Don't init text for Type_Song. It uses a TextBanner.
// Don't init text for Type_Song. It uses a TextBanner.
if( i == MusicWheelItemType_Song )
continue;
@@ -104,7 +105,7 @@ MusicWheelItem::MusicWheelItem( RString sType ):
ActorUtil::SetXY( m_WheelNotifyIcon, "MusicWheelItem" );
m_WheelNotifyIcon.PlayCommand( "On" );
this->AddChild( &m_WheelNotifyIcon );
FOREACH_PlayerNumber( p )
{
m_pGradeDisplay[p].Load( THEME->GetPathG(sType,"grades") );
@@ -256,6 +257,10 @@ void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pData, int
sDisplayName = THEME->GetString("MusicWheel","Portal");
type = MusicWheelItemType_Portal;
break;
case TYPE_CUSTOM:
sDisplayName = pWID->m_sLabel;
type = MusicWheelItemType_Custom;
break;
}
m_sprColorPart[type]->SetVisible( true );
@@ -286,10 +291,11 @@ void MusicWheelItem::LoadFromWheelItemData( const WheelItemBaseData *pData, int
msg.SetParam( "Course", pWID->m_pCourse );
msg.SetParam( "Index", iIndex );
msg.SetParam( "HasFocus", bHasFocus );
msg.SetParam( "SongGroup", pWID->m_sText );
msg.SetParam( "Text", pWID->m_sText );
msg.SetParam( "DrawIndex", iDrawIndex );
msg.SetParam( "Type", MusicWheelItemTypeToString(type) );
msg.SetParam( "Color", pWID->m_color );
msg.SetParam( "Label", pWID->m_sLabel );
this->HandleMessage( msg );
}
+1
View File
@@ -27,6 +27,7 @@ enum MusicWheelItemType
MusicWheelItemType_Mode,
MusicWheelItemType_Random,
MusicWheelItemType_Portal,
MusicWheelItemType_Custom,
NUM_MusicWheelItemType,
MusicWheelItemType_Invalid,
};
+2 -2
View File
@@ -855,9 +855,9 @@ void NoteData::GetTapNoteRangeExclusive( int iTrack, int iStartRow, int iEndRow,
--prev;
if( prev->second.type == TapNote::hold_head )
{
int iStartRow = prev->first;
int localStartRow = prev->first;
const TapNote &tn = prev->second;
if( iStartRow + tn.iDuration >= iEndRow )
if( localStartRow + tn.iDuration >= iEndRow )
end = prev;
}
}
+8 -8
View File
@@ -250,8 +250,8 @@ static void LoadFromSMNoteDataStringWithPlayer( NoteData& out, const RString &sS
for( int t=0; t<out.GetNumTracks(); t++ )
{
NoteData::iterator begin = out.begin( t );
NoteData::iterator end = out.end( t );
while( begin != end )
NoteData::iterator lEnd = out.end( t );
while( begin != lEnd )
{
NoteData::iterator next = Increment( begin );
const TapNote &tn = begin->second;
@@ -679,12 +679,9 @@ int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow )
int iMaxTailRow = -1;
for( int t=0; t<in.GetNumTracks(); t++ )
{
for( int t=0; t<in.GetNumTracks(); t++ )
{
const TapNote &tn = in.GetTapNote( t, iRow );
if( tn.type == TapNote::hold_head )
iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration );
}
const TapNote &tn = in.GetTapNote( t, iRow );
if( tn.type == TapNote::hold_head )
iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration );
}
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,f,f,T,T,T,T,f } },
{ 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 f

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