hg merge from 24a15ba

This commit is contained in:
Thai Pangsakulyanont
2011-02-14 21:42:27 +07:00
393 changed files with 8908 additions and 3517 deletions
+4
View File
@@ -32,9 +32,11 @@ src/libtomcrypt/build-*
src/libtomcrypt/Release-*
src/libtommath/build-*
src/libtommath/Release-*
src/*.old
ver.cpp
lib*_link.a
Data/UserPrefs
Data/GamePrefs/*.cfg
PBProject/Hardware.plist
Themes/pump
Themes/optical-release
@@ -42,6 +44,8 @@ src/version.bin
src/verstub.cpp
nsis_strings_temp.inc
Data/SpeedMods.txt
Program/StepMania*.lib
crashinfo.txt
syntax: regexp
.*\#.*\#$
+50 -1
View File
@@ -1 +1,50 @@
Place announcer folders in this directory.
Place announcer folders in this directory.
[Announcer format]
sm-ssc's announcers look for certain names. These can either be a single sound,
or a folder containing many sounds (of which one is picked at random).
[Announcer calls]
Grouped by Screen/Element that calls them, though only the sound/folder name for
each item is important.
ScreenWithMenuElements
* (ScreenName) intro
ScreenTitleMenu
* title menu game name
ScreenSelect
* (ScreenName) IdleComment
ScreenSelectMusic
* select music intro
* select music comment general
* select music comment hard
* select music comment new
* select music comment repeat
* select course comment general
ScreenGameplay
* gameplay intro
* gameplay ready
* gameplay here we go normal
* gameplay here we go final
* gameplay here we go extra
* gameplay comment hot
* gameplay comment danger
* gameplay comment good
* gameplay comment oni
* gameplay (100-1000) combo
* gameplay combo stopped
* gameplay combo overflow
* gameplay battle trick level(1-3)
* gameplay battle damage level(1-3)
* gameplay extra
* gameplay cleared
* gameplay failed
* gameplay oni failed
* gameplay oni failed halfway
MenuTimer
* hurry up
+17
View File
@@ -0,0 +1,17 @@
.ssc Format Changelog
________________________________________________________________________________
In case anyone else wishes to implement the .ssc format in their own simulator,
a changelog is provided here between each version.
Notice: .ssc is not a finalized format at the moment. There are plans for a
change to JSON, but it is unsure if this will be done.
Implement .ssc at your own risk.
________________________________________________________________________________
[v0.51] - AJ
* Move VERSION tag to the first line.
* Limit VERSION tag to two decimal places.
[v0.5] - Wolfman2000
* Initial MSD-based version.
+226 -3
View File
@@ -1,7 +1,7 @@
sm-ssc Changelog
________________________________________________________________________________
The sm-ssc changelog mostly deals with source code-related changes,
as theme changes happen at a rapid pace.
as theme changes happen at a faster pace.
Changes are grouped by date.
Not all changes are documented, for various reasons.
@@ -10,9 +10,232 @@ supported but exist anyways.)
_____________________________________________________________________________
================================================================================
sm-ssc v1.2 | 201012xx
sm-ssc v1.2.2 | 201102??
--------------------------------------------------------------------------------
20110213
--------
* Life Difficulty 4 is now as difficult as Life 6 was. [AJ]
Change name of the life difficulty options:
Old: 1, 2, 3, 4, 5, 6, 7
New: 1.2, 1.0, 0.8, 0.6, 0.4, 0.33, 0.25
20110212
--------
* [PlayerOptions] Added metrics to allow changing how often random modifiers
activate in the proper setting. At this time, the mods to be activated have
NOT been changed. [Wolfman2000]
* [ArrowEffects] Allow the Boomerang, Expand, Tipsy, Drunk, Tornado, Beat, and
Mini modifiers to be customized by metrics. As usual, change at your own
risk here. [Wolfman2000]
* Started the process of doxygen'ing the code. Goodness knows we need more
documentation on here. For the most part, don't expect comments on
particular files, though this may change. [Wolfman2000]
* [TimingData] Fix getting a Stop or Delay at a row if one of each occupies
the same row. This may need some extra testing. [Wolfman2000]
20110211
--------
* Introduced the .ssc file format for future features and expansion. All .sm
files will still work, and will still be generated when saved in the editor.
At this point, saving to the DWI format is being deprecated. [Wolfman2000]
================================================================================
sm-ssc v1.2.1 | 20110210
--------------------------------------------------------------------------------
20110210
--------
* Had to go back on the ScreenNetSelectMusic controls commit. My apologies. [AJ]
20110209
--------
* [ScreenOptionsMemoryCard] Added three strings: "(no label)", "size ???", and
"%dMB". [AJ]
* [ScreenSelectMusic] Added RouletteTimerSeconds metric. [AJ]
* [ArrowEffects] Added QuantizeArrowYPosition metric. [AJ]
20110208
--------
* [ScreenNetSelectMusic] Added MusicWheelType metric. [AJ]
20110201
--------
* [Song] Added IsDisplayBpmRandom Lua binding. [AJ]
20110130
--------
* [ScreenSelectMaster] Only run cursor commands on players if they exist. [AJ]
20110118
--------
* [ScreenEdit] Move editing Timing Data to their own mini menu. [Wolfman2000]
* Implement #TICKCOUNTS tag for better checkpoint behavior.
This officially deprecates the CheckpointsUseTimeSignatures metric for
the CheckpointsUseTickcounts metric. [Wolfman2000]
* [NoteField] Add metrics for more flexible TimingData labels. [Wolfman2000]
20110116
--------
* [ScreenEdit] Allow editing TimeSignatureSegments one fractional half at
a time. [Wolfman2000]
20110115
--------
* [ArrowEffects] Allow modifying modifier characteristics in the metrics.
At present, Blink, Boost, Brake, and Wave can have modifications.
[Wolfman2000]
* [Player] Allow Combo Stopped message to be flexible via metrics. The
default is 50, as it was before. [Wolfman2000]
* [Player] Allow the default attack times for both random and mine attacks
to be changed. [Wolfman2000]
* [NoteField] Allow for adjustable fade fail time (for AJ). [Wolfman2000]
* [MenuTimer] Allow the hurry up transition to be adjusted. [Wolfman2000]
* [MusicWheel] Added RouletteColor, RandomColor, and PortalColor metrics. [freem]
* Fix a bug with VisualDelaySeconds where choosing -1 would lead to it being +1. [freem]
20110112
--------
* [PlayerStageStats] Change score to an unsigned long from a signed int. [FSX]
* Noteskin changes. [Daisuke Master]
* [SpecialScoring] MIGS scoring, improved SN and SN2 scoring. [FSX]
* [RageFile] Added ReadBytes() Lua binding. [FSX]
* [NetworkSyncManager] Added CloseConnection() Lua binding. [freem]
* [ScreenTextEntry] Added Load(TextEntrySettings) Lua binding. [freem]
TextEntrySettings is implemented similar to the Attributes in BitmapText.
local teSettings = {
SendOnPop = "", -- ScreenMessage to send on pop (optional, "SM_None" if omitted)
Question = "", -- The question to display
InitialAnswer = "", -- Initial answer text
MaxInputLength = 0, -- Maximum amount of characters
Password = false, -- Mask character input (optional)
Validate = nil, -- Validation function; function(answer, errorOut), must return boolean, string.
OnOK = nil, -- On OK; function(answer)
OnCancel = nil, -- On Cancel; function()
ValidateAppend = nil, -- Validate appending a character; function(answer,append), must return boolean
FormatAnswerForDisplay = nil, -- Format answer for display; function(answer), must return string
};
20110111
--------
* [ScreenManager] Added ReloadOverlayScreens() Lua binding. [freem]
20110110
--------
* [Character] Added GetDisplayName Lua binding. [freem]
* Make sure that DELAYS come first if STOPS share the same beat. [Wolfman2000]
20110109
--------
* Add the semicolon and apostrophe keys as alternatives to the Page Up and Page
Down keys in the editor, mainly for laptop users. [Wolfman2000]
* Removed Song sample length limitations. [freem]
* Removed hard-coded values from the Step Editor. Now TimeSignatures are used
in place of these former constants. [Wolfman2000]
* [RoomWheel] Various metrics changes: [freem]
* Removed TextWidth/DescWidth metrics.
* "Desc" is now "Description". (DescX -> DescriptionX)
* Removed hardcoded commands (shadowlength,0;maxwidth,[max width metric];halign,0).
================================================================================
sm-ssc v1.2 | 20110107
--------------------------------------------------------------------------------
20110107
--------
* Fix PrefsManager init list not being in order [vyhd]
* Add hack to ThemeManager to make GetThemeName() work intuitively for Scripts dirs [vyhd]
* [SongManager] Check the root Songs/ folder for extra stage course files. [freem]
* Make routine mode use ScreenGameplayShared instead of ScreenGameplay. [freem]
* Make pump-routine spacing the same as pump-double spacing. [FSX]
20110106
--------
* [SpecialScoring] Fix some minor issues [FSX]
* New pump routine noteskins [cesarmades]
20110102
--------
* Fix routine mode saving in the editor. [Wolfman2000]
20110101
--------
* [Screen] Added HandleBackButton metric; useful for custom menus that need to
use the Back button for more user-friendly canceling. [freem]
20101230
--------
* [StepsDisplay] Make the StepsType react to SetMessage as well. [freem]
20101229
--------
* [ScreenHowToPlay] Replaced LOAD_ALL_COMMANDS_AND_SET_XY_AND_ON_COMMAND macro
calls with ActorUtil::LoadAllCommandsAndSetXY(). Fixes an odd bug I ran into
during the porting of DDR 5th Mix. [freem]
* [ScreenInstallOverlay] Added bare DownloadFinished message. [freem]
20101228
--------
* [ScreenHowToPlay] Have Character ignore the Miss steps instead of trying to
hit them. [freem]
20101227
--------
* [ScreenHowToPlay] Added CharacterName metric, which will force the Character
that shows up. [freem]
20101226
--------
* [ScreenEdit] Added GetEditState Lua binding. [freem]
* [ScreenNetSelectMusic] StepsDisplay changed to load from StepsDisplayNet. [freem]
* [RoomWheelItem] Added OverPart (just like in MusicWheelItem). [freem]
* [SongManager] Added GetSongRank(Song) Lua binding. [freem]
* Changed Steps picking logic in ScreenGameplaySyncMachine; now playable Steps
are chosen, instead of whatever NoteData happens to be first.
Also added pump-single data to ScreenGameplaySyncMachine music.sm. [freem]
* [Banner, FadingBanner] Various changes: [freem]
* Removed (now unused) All Music banner.
* Fixed swapped ScrollRandom and ScrollRoulette metrics.
* [Banner] Added GetScrolling(), GetPercentScrolling() and
SetScrolling(bool,float) Lua bindings.
* [FadingBanner] Added GetLatestIndex() Lua binding. [freem]
20101225
--------
* Fixed Life difficulty scale being 0. [Daisuke Master]
20101223
--------
* Added Banners for most SortOrders. (Group is excluded (song group banners
still work), as is Recent (which has no sections).) [freem]
20101222
--------
* Added Shift+Ctrl+F2 shortcut for reloading overlay screens (and metrics) [freem]
20101221
--------
* SM5SVN r28586: Only unload fonts if not used by the next screen. [shakesoda]
* [ScreenSelectMaster] Fix DoSwitchAnyways to actually work again.
* [ScreenInstallOverlay] Installs won't jump to SelMusic on Gameplay or System
Menus (e.g. Edit Mode) anymore on download completion. [freem]
20101220
--------
* [Actor] Add bezier. (_fallback/02 Actor.lua) [FSX]
* [MessageManager] Added MenuStartP1 and MenuStartP2 messages. [freem]
* [ScreenSelectMaster] Broadcast MenuStartP# messages; allow themers to handle
the MenuStartP# messageitems. [freem]
20101219
--------
* [WheelNotifyIcon] add BlinkPlayersBest metric. [freem]
* [GameCommand] Add GetScreen, GetSteps, GetCourse, GetTrail, and GetCharacter
Lua bindings. [freem]
* [StreamDisplay] Remove UseThreePartMethod.
* [Style] Add ColumnsPerPlayer and NeedsZoomOutWith2Players bindings. [freem]
* [Profile] Add GetLastUsedHighScoreName Lua binding. [freem]
20101218
--------
* [MusicWheelItem] Add OverPart. [freem]
@@ -1753,4 +1976,4 @@ ActorScroller changes:
--------
* Project begins.
* Remove ScreenEz2SelectPlayer, which only the Xbox project still referenced.
_____________________________________________________________________________
_____________________________________________________________________________
+2 -2
View File
@@ -118,7 +118,7 @@ ________________________________________________________________________________
0x05 (005) Game Status Update
The payload changes between protocols, and it will likely have to change again
to acconut for some more StepIDs.
to account for some more StepIDs.
Payload:
[Size] [Description]
@@ -155,7 +155,7 @@ Payload:
32767 would be DEAD on the note
If the user is hitting late, the # will be higher.
It if the user is exactly 0.25 seconds off, the number will be
different by 500. With this pattern 0.5 gives a difference of 1000.
different by 500. With this pattern 0.5 seconds gives a difference of 1000.
Expected response: None
________________________________________________________________________________
+79 -24
View File
@@ -10,6 +10,7 @@
<Function name='Brightness'/>
<Function name='Center1Player'/>
<Function name='CheckpointsTapsSeparateJudgment'/>
<Function name='CloseConnection'/>
<Function name='Color'/>
<Function name='ColorDarkTone'/>
<Function name='ColorLightTone'/>
@@ -38,11 +39,22 @@
<Function name='FormatNumberAndSuffix'/>
<Function name='FormatPercentScore'/>
<Function name='GameCompatibleModes'/>
<Function name='GamePrefAdjustSpeed'/>
<Function name='GamePrefAutoSetStyle'/>
<Function name='GamePrefComboOnRolls'/>
<Function name='GamePrefComboUnderField'/>
<Function name='GamePrefNotePosition'/>
<Function name='GetCoursesToShowRanking'/>
<Function name='GetCustomDifficulty'/>
<Function name='GetDefaultArrowSpacing'/>
<Function name='GetDefaultOptionLines'/>
<Function name='GetDirectRadar'/>
<Function name='GetEditModeSubScreens'/>
<Function name='GetExtraColorThreshold'/>
<Function name='GetGamePref'/>
<Function name='GetGamePrefB'/>
<Function name='GetGamePrefC'/>
<Function name='GetGamePrefN'/>
<Function name='GetGradeFromPercent'/>
<Function name='GetLifeDifficulty'/>
<Function name='GetOSName'/>
@@ -55,7 +67,9 @@
<Function name='GetSongBackground'/>
<Function name='GetTapPosition'/>
<Function name='GetThemeAspectRatio'/>
<Function name='GetThemePref'/>
<Function name='GetTimingDifficulty'/>
<Function name='GetTotalItems'/>
<Function name='GetUnlockEntryIndexToCelebrate'/>
<Function name='GetUserPref'/>
<Function name='GetUserPrefB'/>
@@ -72,6 +86,7 @@
<Function name='Hour'/>
<Function name='Hue'/>
<Function name='ImmediateHoldLetGo'/>
<Function name='InitGamePrefs'/>
<Function name='InitUserPrefs'/>
<Function name='InitialHoldLife'/>
<Function name='IsArcade'/>
@@ -79,8 +94,10 @@
<Function name='IsHome'/>
<Function name='IsNetConnected'/>
<Function name='IsNetSMOnline'/>
<Function name='IsRoutine'/>
<Function name='IsSMOnlineLoggedIn'/>
<Function name='IsUsingWideScreen'/>
<Function name='IsW1Allowed'/>
<Function name='JudgmentLineToColor'/>
<Function name='JudgmentLineToLocalizedString'/>
<Function name='JudgmentLineToStrokeColor'/>
@@ -110,13 +127,17 @@
<Function name='PlayerNumberToLocalizedString'/>
<Function name='PlayerNumberToString'/>
<Function name='PlayerScoreColor'/>
<Function name='PrintTable'/>
<Function name='ProductID'/>
<Function name='ProductVersion'/>
<Function name='RadarCategoryToLocalizedString'/>
<Function name='ReadGamePrefFromFile'/>
<Function name='ReadPrefFromFile'/>
<Function name='ReportStyle'/>
<Function name='ResolveRelativePath'/>
<Function name='RollBodyIncrementsCombo'/>
<Function name='RoutineSkinP1'/>
<Function name='RoutineSkinP2'/>
<Function name='SMOnlineScreen'/>
<Function name='Saturation'/>
<Function name='ScoreKeeperClass'/>
@@ -131,6 +152,8 @@
<Function name='SelectMusicOrCourse'/>
<Function name='SelectProfileKeys'/>
<Function name='Serialize'/>
<Function name='SetGamePref'/>
<Function name='SetThemePref'/>
<Function name='SetUserPref'/>
<Function name='ShowHoldJudgments'/>
<Function name='ShowStandardDecoration'/>
@@ -149,11 +172,13 @@
<Function name='TableStringLookup'/>
<Function name='TapNoteScoreToLocalizedString'/>
<Function name='TextBannerAfterSet'/>
<Function name='ThemePrefRow'/>
<Function name='ToEnumShortString'/>
<Function name='Trace'/>
<Function name='TrailToCustomDifficulty'/>
<Function name='URLEncode'/>
<Function name='UnlockRewardTypeToLocalizedString'/>
<Function name='UserPrefAdjustSpeed'/>
<Function name='UserPrefAutoSetStyle'/>
<Function name='UserPrefComboOnRolls'/>
<Function name='UserPrefComboUnderField'/>
@@ -163,6 +188,7 @@
<Function name='UserPrefLongFail'/>
<Function name='UserPrefNotePosition'/>
<Function name='UserPrefShowLotsaOptions'/>
<Function name='UserPrefSpecialScoringMode'/>
<Function name='Var'/>
<Function name='VersionDate'/>
<Function name='VersionTime'/>
@@ -170,6 +196,7 @@
<Function name='Weekday'/>
<Function name='WideScale'/>
<Function name='WrapInActorFrame'/>
<Function name='WriteGamePrefToFile'/>
<Function name='WritePrefToFile'/>
<Function name='Year'/>
<Function name='assert'/>
@@ -180,6 +207,7 @@
<Function name='dofile'/>
<Function name='error'/>
<Function name='fapproach'/>
<Function name='foreach_ordered'/>
<Function name='gcinfo'/>
<Function name='getenv'/>
<Function name='getfenv'/>
@@ -286,6 +314,7 @@
<Function name='basezoomx'/>
<Function name='basezoomy'/>
<Function name='basezoomz'/>
<Function name='bezier'/>
<Function name='blend'/>
<Function name='bob'/>
<Function name='bounce'/>
@@ -493,6 +522,8 @@
<Function name='SetFromGameState'/>
</Class>
<Class base='Sprite' name='Banner'>
<Function name='GetPercentScrolling'/>
<Function name='GetScrolling'/>
<Function name='LoadBackgroundFromUnlockEntry'/>
<Function name='LoadBannerFromUnlockEntry'/>
<Function name='LoadCardFromCharacter'/>
@@ -500,8 +531,10 @@
<Function name='LoadFromCourse'/>
<Function name='LoadFromSong'/>
<Function name='LoadFromSongGroup'/>
<Function name='LoadFromSortOrder'/>
<Function name='LoadIconFromCharacter'/>
<Function name='ScaleToClipped'/>
<Function name='SetScrolling'/>
<Function name='scaletoclipped'/>
</Class>
<Class base='Actor' name='BitmapText'>
@@ -529,6 +562,7 @@
<Function name='GetCharacterDir'/>
<Function name='GetCharacterID'/>
<Function name='GetDanceAnimationPath'/>
<Function name='GetDisplayName'/>
<Function name='GetIconPath'/>
<Function name='GetModelPath'/>
<Function name='GetRestAnimationPath'/>
@@ -600,6 +634,7 @@
<Function name='Unset'/>
</Class>
<Class base='ActorFrame' name='FadingBanner'>
<Function name='GetLatestIndex'/>
<Function name='LoadCardFromCharacter'/>
<Function name='LoadFromCourse'/>
<Function name='LoadFromSong'/>
@@ -608,18 +643,20 @@
<Function name='ScaleToClipped'/>
<Function name='scaletoclipped'/>
</Class>
<Class name='Game'>
<Function name='GetName'/>
</Class>
<Class name='GameCommand'>
<Function name='GetCharacter'/>
<Function name='GetCourse'/>
<Function name='GetIndex'/>
<Function name='GetMultiPlayer'/>
<Function name='GetName'/>
<Function name='GetProfileID'/>
<Function name='GetScreen'/>
<Function name='GetSong'/>
<Function name='GetSongGroup'/>
<Function name='GetSteps'/>
<Function name='GetStyle'/>
<Function name='GetText'/>
<Function name='GetTrail'/>
<Function name='GetUrl'/>
</Class>
<Class name='GameManager'>
@@ -638,6 +675,7 @@
<Function name='ClearStageModifiersIllegalForCourse'/>
<Function name='EnoughCreditsToJoin'/>
<Function name='Env'/>
<Function name='GetCharacter'/>
<Function name='GetCoinMode'/>
<Function name='GetCoins'/>
<Function name='GetCoinsNeededToJoin'/>
@@ -710,6 +748,7 @@
<Function name='PlayersCanJoin'/>
<Function name='Reset'/>
<Function name='SaveLocalData'/>
<Function name='SetCharacter'/>
<Function name='SetCurrentCourse'/>
<Function name='SetCurrentSong'/>
<Function name='SetCurrentSteps'/>
@@ -776,10 +815,8 @@
<Function name='GetTotalLives'/>
</Class>
<Class name='MemoryCardManager'>
<Function name='GetCardLocked'/>
<Function name='GetCardState'/>
<Function name='GetName'/>
<Function name='IsNameAvailable'/>
</Class>
<Class base='ActorFrame' name='MenuTimer'>
<Function name='GetSeconds'/>
@@ -792,9 +829,6 @@
<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>
@@ -869,6 +903,7 @@
<Function name='GetTapNoteScores'/>
<Function name='IsDisqualified'/>
<Function name='MaxCombo'/>
<Function name='SetScore'/>
</Class>
<Class name='PlayerState'>
<Function name='GetHealthState'/>
@@ -896,6 +931,7 @@
<Function name='GetGoalSeconds'/>
<Function name='GetGoalType'/>
<Function name='GetHighScoreList'/>
<Function name='GetLastUsedHighScoreName'/>
<Function name='GetMostPopularCourse'/>
<Function name='GetMostPopularSong'/>
<Function name='GetNumToasties'/>
@@ -923,6 +959,7 @@
<Function name='GetWeightPounds'/>
<Function name='HasPassedAnyStepsInSong'/>
<Function name='IsCodeUnlocked'/>
<Function name='SetCharacter'/>
<Function name='SetGoalCalories'/>
<Function name='SetGoalSeconds'/>
<Function name='SetGoalType'/>
@@ -939,8 +976,6 @@
<Function name='GetProfileDir'/>
<Function name='IsPersistentProfile'/>
<Function name='IsSongNew'/>
<Function name='LastLoadWasFromLastGood'/>
<Function name='LastLoadWasTamperedOrCorrupt'/>
<Function name='SaveMachineProfile'/>
</Class>
<Class name='RadarValues'>
@@ -959,6 +994,7 @@
<Function name='Open'/>
<Function name='PutLine'/>
<Function name='Read'/>
<Function name='ReadBytes'/>
<Function name='Seek'/>
<Function name='Tell'/>
<Function name='Write'/>
@@ -990,11 +1026,15 @@
<Function name='FinishRenderingTo'/>
</Class>
<Class base='BitmapText' name='RollingNumbers'>
<Function name='Load'/>
<Function name='targetnumber'/>
</Class>
<Class base='BitmapText' name='ScoreDisplayAliveTime'/>
<Class base='BitmapText' name='ScoreDisplayCalories'/>
<Class base='ScreenWithMenuElements' name='ScreenAttract'/>
<Class base='ScreenWithMenuElements' name='ScreenEdit'>
<Function name='GetEditState'/>
</Class>
<Class base='ScreenWithMenuElements' name='ScreenEvaluation'>
<Function name='GetStageStats'/>
</Class>
@@ -1013,6 +1053,7 @@
<Class name='ScreenManager'>
<Function name='AddNewScreenToTop'/>
<Function name='GetTopScreen'/>
<Function name='ReloadOverlayScreens'/>
<Function name='ScreenClassExists'/>
<Function name='ScreenIsPrepped'/>
<Function name='SetNewScreen'/>
@@ -1060,6 +1101,9 @@
<Function name='GetProfileIndex'/>
<Function name='SetProfileIndex'/>
</Class>
<Class base='ScreenWithMenuElements' name='ScreenTextEntry'>
<Function name='Load'/>
</Class>
<Class base='Screen' name='ScreenWithMenuElements'>
<Function name='Cancel'/>
</Class>
@@ -1102,6 +1146,7 @@
<Function name='HasStepsType'/>
<Function name='HasStepsTypeAndDifficulty'/>
<Function name='IsDisplayBpmConstant'/>
<Function name='IsDisplayBpmRandom'/>
<Function name='IsDisplayBpmSecret'/>
<Function name='IsEasy'/>
<Function name='IsEnabled'/>
@@ -1132,6 +1177,7 @@
<Function name='GetSongFromSteps'/>
<Function name='GetSongGroupColor'/>
<Function name='GetSongGroupNames'/>
<Function name='GetSongRank'/>
<Function name='GetSongsInGroup'/>
<Function name='SetPreferredCourses'/>
<Function name='SetPreferredSongs'/>
@@ -1150,6 +1196,7 @@
<Function name='LoadFromCurrentSongBackground'/>
<Function name='LoadFromSongBackground'/>
<Function name='LoadFromSongBanner'/>
<Function name='SetAllStateDelays'/>
<Function name='SetCustomImageRect'/>
<Function name='SetEffectMode'/>
<Function name='SetTexture'/>
@@ -1190,6 +1237,7 @@
</Class>
<Class name='Steps'>
<Function name='GetDescription'/>
<Function name='GetAuthorCredit'/>
<Function name='GetDifficulty'/>
<Function name='GetFilename'/>
<Function name='GetHash'/>
@@ -1210,9 +1258,11 @@
<Function name='setfromgamestate'/>
</Class>
<Class name='Style'>
<Function name='ColumnsPerPlayer'/>
<Function name='GetName'/>
<Function name='GetStepsType'/>
<Function name='GetStyleType'/>
<Function name='NeedsZoomOutWith2Players'/>
</Class>
<Class base='ActorFrame' name='TextBanner'>
<Function name='Load'/>
@@ -1251,14 +1301,12 @@
</Class>
<Class name='Trail'>
<Function name='GetArtists'/>
<Function name='GetDescription'/>
<Function name='GetDifficulty'/>
<Function name='GetEntries'/>
<Function name='GetMeter'/>
<Function name='GetRadarValues'/>
<Function name='GetStepsType'/>
<Function name='GetTrailEntries'/>
<Function name='GetTrailEntry'/>
<Function name='IsAPlayerEdit'/>
</Class>
<Class name='TrailEntry'>
<Function name='GetNormalModifiers'/>
@@ -1426,6 +1474,12 @@
<EnumValue name='&apos;EditMode_Home&apos;' value='2'/>
<EnumValue name='&apos;EditMode_Full&apos;' value='3'/>
</Enum>
<Enum name='EditState'>
<EnumValue name='&apos;EditState_Edit&apos;' value='0'/>
<EnumValue name='&apos;EditState_Record&apos;' value='1'/>
<EnumValue name='&apos;EditState_RecordPaused&apos;' value='2'/>
<EnumValue name='&apos;EditState_Playing&apos;' value='3'/>
</Enum>
<Enum name='EffectMode'>
<EnumValue name='&apos;EffectMode_Normal&apos;' value='0'/>
<EnumValue name='&apos;EffectMode_Unpremultiply&apos;' value='1'/>
@@ -1806,10 +1860,11 @@
<EnumValue name='&apos;StepsType_Techno_Single8&apos;' value='25'/>
<EnumValue name='&apos;StepsType_Techno_Double4&apos;' value='26'/>
<EnumValue name='&apos;StepsType_Techno_Double5&apos;' value='27'/>
<EnumValue name='&apos;StepsType_Pnm_Five&apos;' value='28'/>
<EnumValue name='&apos;StepsType_Pnm_Nine&apos;' value='29'/>
<EnumValue name='&apos;StepsType_Guitar_Five&apos;' value='30'/>
<EnumValue name='&apos;StepsType_Lights_Cabinet&apos;' value='31'/>
<EnumValue name='&apos;StepsType_Techno_Double8&apos;' value='28'/>
<EnumValue name='&apos;StepsType_Pnm_Five&apos;' value='29'/>
<EnumValue name='&apos;StepsType_Pnm_Nine&apos;' value='30'/>
<EnumValue name='&apos;StepsType_Guitar_Five&apos;' value='31'/>
<EnumValue name='&apos;StepsType_Lights_Cabinet&apos;' value='32'/>
</Enum>
<Enum name='StyleType'>
<EnumValue name='&apos;StyleType_OnePlayerOneSide&apos;' value='0'/>
@@ -1878,16 +1933,16 @@
</Enum>
</Enums>
<Constants>
<Constant name='ASPECT_SCALE_FACTOR' value='854'/>
<Constant name='ASPECT_SCALE_FACTOR' value='640'/>
<Constant name='NUM_PLAYERS' value='2'/>
<Constant name='SCREEN_BOTTOM' value='480'/>
<Constant name='SCREEN_CENTER_X' value='427'/>
<Constant name='SCREEN_CENTER_X' value='320'/>
<Constant name='SCREEN_CENTER_Y' value='240'/>
<Constant name='SCREEN_HEIGHT' value='480'/>
<Constant name='SCREEN_LEFT' value='0'/>
<Constant name='SCREEN_RIGHT' value='854'/>
<Constant name='SCREEN_RIGHT' value='640'/>
<Constant name='SCREEN_TOP' value='0'/>
<Constant name='SCREEN_WIDTH' value='854'/>
<Constant name='SCREEN_WIDTH' value='640'/>
<Constant name='PLAYER_1' value='&apos;PlayerNumber_P1&apos;'/>
<Constant name='PLAYER_2' value='&apos;PlayerNumber_P2&apos;'/>
<Constant name='_VERSION' value='&apos;Lua 5.1&apos;'/>
@@ -1896,9 +1951,9 @@
<Constant name='left' value='&apos;HorizAlign_Left&apos;'/>
<Constant name='middle' value='&apos;VertAlign_Middle&apos;'/>
<Constant name='right' value='&apos;HorizAlign_Right&apos;'/>
<Constant name='sGame' value='&apos;kb7&apos;'/>
<Constant name='sGame' value='&apos;dance&apos;'/>
<Constant name='top' value='&apos;VertAlign_Top&apos;'/>
</Constants>
<Version>sm-ssc v1.0</Version>
<Date>2010-09-10</Date>
<Version>sm-ssc v1.2.1</Version>
<Date>2011-02-10</Date>
</Lua>
+111 -6
View File
@@ -20,7 +20,6 @@
<Link class='ENUM' function='CoinMode' /> -> CoinMode
-->
<Documentation xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
<!-- Global functions -->
<GlobalFunctions>
@@ -48,6 +47,9 @@
<Function name='clamp' return='float' arguments='float fValue, float fLow, float fHigh'>
CLAMP is an all-female Japanese mangaka group that formed in the mid 1980s. Erm, I mean... Clamps <code>fValue</code> between <code>fLow</code> and <code>fHigh</code>.
</Function>
<Function name='CloseConnection' sm-ssc='true' return='void' arguments=''>
Closes any connection to an online server.
</Function>
<Function name='collectgarbage' return='void' arguments='string opt, float arg'>
A generic interface to Lua's garbage collector. Performs different functions based on the value of <code>opt</code>.
</Function>
@@ -510,12 +512,18 @@
<Function name='baserotationz' return='void' arguments='float rot'>
Sets the Actor's base Z rotation to <code>rot</code>.
</Function>
<Function name='basezoom' sm-ssc='true' return='void' arguments='float zoom'>
Sets the Actor's base zoom to <code>zoom</code>.
</Function>
<Function name='basezoomx' return='void' arguments='float zoom'>
Sets the Actor's base X zoom to <code>zoom</code>.
</Function>
<Function name='basezoomy' return='void' arguments='float zoom'>
Sets the Actor's base Y zoom to <code>zoom</code>.
</Function>
<Function name='basezoomz' sm-ssc='true' return='void' arguments='float zoom'>
Sets the Actor's base Z zoom to <code>zoom</code>.
</Function>
<Function name='blend' return='void' arguments='BlendMode mode'>
Sets the Actor to use the specified blend mode.
</Function>
@@ -657,7 +665,7 @@
<Function name='GetEffectDelta' return='float' arguments=''>
Returns the Actor's current effect delta.
</Function>
<Function name='geteffectfagnitude' return='float' arguments=''>
<Function name='geteffectmagnitude' return='float' arguments=''>
Returns the Actor's current effect magnitude as three floats (not one; I hate Lua.xsd).
</Function>
<Function name='GetGlow' sm-ssc='true' return='color' arguments=''>
@@ -711,6 +719,9 @@
<Function name='halign' return='void' arguments='float fAlign'>
Set the fractional horizontal alignment of the Actor according to <code>fAlign</code> which should be a float in the range 0..1. An alignment of 0 is left aligned while an alignment of 1 is right aligned. See <Link function='horizalign' /> for the common case.
</Function>
<Function name='hibernate' return='void' arguments='float fTime'>
Hides the Actor for the specified amount of time.
</Function>
<Function name='hidden' return='void' theme='_fallback' arguments='bool b'>
[Deprecated] Compatibility alias for the hidden command, which was removed in sm-ssc. Use <Link function='visible' /> instead.
</Function>
@@ -732,6 +743,12 @@
<Function name='name' return='void' arguments='string sName'>
Sets the Actor's name to <code>sName</code>.
</Function>
<Function name='pause' return='void' arguments=''>
Stops the Actor's movement. (Usually used for Sprites or Models.)
</Function>
<Function name='play' return='void' arguments=''>
Starts the Actor's movement. (Usually used for Sprites or Models.)
</Function>
<Function name='playcommand' return='void' arguments='string sCommandName'>
Plays a command named <code>sCommandName</code>.
</Function>
@@ -862,6 +879,9 @@
Zooms the Actor to <code>zoom</code> scale on the Z axis.
</Function>
<!-- addons from scripts that come with sm-ssc (non-compat) -->
<Function name='bezier' theme='_fallback' return='void' arguments=''>
[02 Actor.lua]
</Function>
<Function name='CenterX' theme='_fallback' return='void' arguments=''>
[03 ProductivityHelpers.lua] Centers an Actor on the X axis. (equivalent to <code>x,SCREEN_CENTER_X</code>)
</Function>
@@ -1101,6 +1121,12 @@
</Function>
</Class>
<Class name='Banner'>
<Function name='GetScrolling' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the Banner is currently scrolling.
</Function>
<Function name='GetPercentScrolling' sm-ssc='true' return='float' arguments=''>
<!-- todo -->
</Function>
<Function name='LoadBackgroundFromUnlockEntry' return='void' arguments='UnlockEntry pUE'>
Loads the background from an UnlockEntry.
</Function>
@@ -1122,6 +1148,9 @@
<Function name='LoadFromSongGroup' return='void' arguments='string s'>
Loads a Banner from a specified Song Group.
</Function>
<Function name='LoadFromSortOrder' return='void' arguments='SortOrder so'>
Loads a Banner from a specified SortOrder.
</Function>
<Function name='LoadIconFromCharacter' return='void' arguments='Character pCharacter'>
Loads an icon from the specified Character.
</Function>
@@ -1131,6 +1160,9 @@
<Function name='ScaleToClipped' return='void' arguments='float fWidth, float fHeight'>
See <Link class='Sprite' function='scaletoclipped' />.
</Function>
<Function name='SetScrolling' sm-ssc='true' return='void' arguments='bool bScroll'>
<!-- todo -->
</Function>
</Class>
<Class name='BitmapText'>
<Function name='AddAttribute' return='void' arguments='int iPos, Attribute attr'>
@@ -1223,6 +1255,9 @@
<Function name='GetDanceAnimationPath' sm-ssc='true' return='string' arguments=''>
Returns the path of the dancing animation of this character.
</Function>
<Function name='GetDisplayName' sm-ssc='true' return='string' arguments=''>
Returns the character's display name.
</Function>
<Function name='GetIconPath' return='string' arguments=''>
Returns the path to the character's icon.
</Function>
@@ -1413,6 +1448,12 @@
</Function>
</Class>
<Class name='GameCommand'>
<Function name='GetCharacter' sm-ssc='true' return='Character' arguments=''>
Returns any Character associated with this item (or <code>nil</code> if there isn't one).
</Function>
<Function name='GetCourse' sm-ssc='true' return='Course' arguments=''>
Returns any Course that may have been set.
</Function>
<Function name='GetIndex' return='int' arguments=''>
Returns the index of this item.
</Function>
@@ -1425,18 +1466,27 @@
<Function name='GetProfileID' return='string' arguments=''>
Returns any Profile ID that may have been set.
</Function>
<Function name='GetScreen' sm-ssc='true' return='string' arguments=''>
Returns any screen that may have been set as a string.
</Function>
<Function name='GetSong' return='Song' arguments=''>
Returns any Song that may have been set.
</Function>
<Function name='GetSongGroup' return='string' arguments=''>
Returns the name of any song group that may have been set.
</Function>
<Function name='GetSteps' sm-ssc='true' return='Steps' arguments=''>
Returns any Steps that may have been set.
</Function>
<Function name='GetStyle' return='Style' arguments=''>
Returns any Style that may have been set.
</Function>
<Function name='GetText' return='string' arguments=''>
Returns the display text.
</Function>
<Function name='GetTrail' sm-ssc='true' return='Trail' arguments=''>
Returns any Trail that may have been set.
</Function>
<Function name='GetUrl' sm-ssc='true' return='string' arguments=''>
Returns any Url that may have been set.
</Function>
@@ -1479,6 +1529,9 @@
<Function name='Env' return='table' arguments=''>
Returns the environment table. See <Link class='GameCommand' />.
</Function>
<Function name='GetCharacter' sm-ssc='true' return='Character' arguments='PlayerNumber pn'>
Returns the current <Link class='Character' /> for the specified <Link class='ENUM' function='PlayerNumber' />.
</Function>
<Function name='GetCoinMode' return='CoinMode'>
Returns the current <Link class='ENUM' function='CoinMode' />.
</Function>
@@ -1710,6 +1763,9 @@
<Function name='SaveLocalData' return='void' arguments=''>
Saves the bookkeeping and machine profile data.
</Function>
<Function name='SetCharacter' sm-ssc='true' return='void' arguments='PlayerNumber pn, string sCharID'>
Sets the current <Link class='Character' /> for the specified <Link class='ENUM' function='PlayerNumber' />.
</Function>
<Function name='SetCurrentCourse' return='void' arguments='Course course'>
Sets the current Course to <code>course</code>.
</Function>
@@ -1860,6 +1916,9 @@
<Function name='GetLivesLeft' sm-ssc='true' return='int' arguments=''>
Returns the number of lives remaining.
</Function>
<Function name='GetTotalLives' sm-ssc='true' return='int' arguments=''>
</Function>
</Class>
<Class name='MemoryCardManager'>
<Function name='GetCardLocked' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
@@ -2109,6 +2168,9 @@
<Function name='IsDisqualified' return='bool' arguments=''>
Returns <code>true</code> if the player was disqualified from ranking.
</Function>
<Function name='SetScore' sm-ssc='true' return='void' arguments='int iScore'>
Sets the Player's score to <code>iScore</code>.
</Function>
</Class>
<Class name='PlayerState'>
<Function name='GetHealthState' sm-ssc='true' return='HealthState' arguments=''>
@@ -2250,6 +2312,9 @@
<Function name='IsCodeUnlocked' return='bool' arguments='string sUnlockEntryID'>
Returns <code>true</code> if the specified code <code>sUnlockEntryID</code> is unlocked.
</Function>
<Function name='SetCharacter' sm-ssc='true' return='void' arguments='string sCharID'>
Sets the current <Link class='Character' /> for the Profile.
</Function>
<Function name='SetGoalCalories' return='void' arguments='int iCals'>
Sets the goal to <code>iCals</code> calories.
</Function>
@@ -2353,6 +2418,9 @@
<Function name='Read' return='string' arguments=''>
Returns a string containing the entire contents of the file.
</Function>
<Function name='ReadBytes' sm-ssc='true' return='string' arguments='int length'>
Returns <code>length</code> bytes from the RageFile's current position.
</Function>
<Function name='Seek' return='int' arguments=''>
Seeks to a position in the file and returns the new position.
</Function>
@@ -2414,6 +2482,9 @@
</Function>
</Class>
<Class name='RollingNumbers'>
<Function name='Load' sm-ssc='true' return='void' arguments='string sGroupName'>
Loads the metrics for this RollingNumbers from <code>sGroupName</code>.
</Function>
<Function name='targetnumber' return='void' arguments='float f'>
Sets the target number to <code>f</code>.
</Function>
@@ -2432,6 +2503,11 @@
Posts a message with the text <code>sScreenMsg</code> to the Screen.
</Function>
</Class>
<Class name='ScreenEdit'>
<Function name='GetEditState' sm-ssc='true' return='EditState' arguments=''>
Returns the current <Link class='ENUM' function='EditState' />.
</Function>
</Class>
<Class name='ScreenEvaluation'>
<Function name='GetStageStats' return='StageStats' arguments=''>
Returns the current StageStats.
@@ -2475,6 +2551,9 @@
<Function name='GetTopScreen' return='Screen' arguments=''>
Gets the screen at the top of the screen stack.
</Function>
<Function name='ReloadOverlayScreens' sm-ssc='true' return='void' arguments=''>
Reloads any loaded overlay screens.
</Function>
<Function name='ScreenClassExists' return='bool' arguments='string s'>
Returns <code>true</code> if screen class <code>s</code> exists.
</Function>
@@ -2581,6 +2660,14 @@
Sets the profile index of Player <code>pn</code> to <code>iProfileIndex</code>.
</Function>
</Class>
<Class name='ScreenTextEntry'>
<Description>
See the Changelog for details on TextEntrySetting's format.
</Description>
<Function name='Load' sm-ssc='true' return='void' arguments='TextEntrySettings args'>
Sets up a ScreenTextEntry's values.
</Function>
</Class>
<Class name='ScreenWithMenuElements'>
<Function name='Cancel' return='void' arguments=''>
Tells the screen to go to the previous screen.
@@ -2698,6 +2785,9 @@
<Function name='IsDisplayBpmConstant' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the song's DisplayBPM is constant.
</Function>
<Function name='IsDisplayBpmRandom' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the song's DisplayBPM is random.
</Function>
<Function name='IsDisplayBpmSecret' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the song's DisplayBPM is secret.
</Function>
@@ -2737,7 +2827,7 @@
Returns an array of all the installed songs.
</Function>
<Function name='GetCourseColor' return='color' arguments='Course c'>
Returns the course color of course <code>c</code>.
Returns the course color of Course <code>c</code>.
</Function>
<Function name='GetExtraStageInfo' return='various' arguments='bool bExtra2, Style s'>
Returns the extra stage info (Song, Steps) for the specified Style <code>s</code>. (If <code>bExtra2</code> is true, it will use the second Extra Stage data instead of the first. Again, Lua.xsd sucks)
@@ -2773,7 +2863,7 @@
Returns a random song.
</Function>
<Function name='GetSongColor' return='color' arguments='Song s'>
Returns the song color of song <code>s</code>.
Returns the song color of Song <code>s</code>.
</Function>
<Function name='GetSongFromSteps' return='Song' arguments='Steps st'>
Returns a Song given a set of Steps <code>st</code>.
@@ -2785,6 +2875,9 @@
<Function name='GetSongGroupNames' sm-ssc='true' return='{string}' arguments=''>
Returns a table containing all of the song group names.
</Function>
<Function name='GetSongRank' sm-ssc='true' return='int' arguments='Song s'>
Returns the rank (popularity) of Song <code>s</code>.
</Function>
<Function name='GetSongsInGroup' sm-ssc='true' return='{Song}' arguments='string sGroupName'>
Returns a table containing all of the songs in group <code>sGroupName</code>.
</Function>
@@ -2872,6 +2965,9 @@
<Function name='cropto' theme='_fallback' return='void' arguments='float fWidth, float fHeight'>
[01 alias.lua] Alias for CropTo.
</Function>
<Function name='SetAllStateDelays' sm-ssc='true' return='void' arguments='float fRate'>
Sets all the state delays to <code>fRate</code>. Useful for Sprites that need to change by BPM (e.g. Tran from DDR 5th Mix, the cube from DS EuroMix 2).
</Function>
</Class>
<Class name='StageStats'>
<Function name='AllFailed' return='bool' arguments=''>
@@ -2937,6 +3033,9 @@
<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='GetDifficulty' return='Difficulty' arguments=''>
Returns the Steps difficulty.
</Function>
@@ -2983,6 +3082,9 @@
</Function>
</Class>
<Class name='Style'>
<Function name='ColumnsPerPlayer' sm-ssc='true' return='int' arguments=''>
Returns the number of total tracks this Style contains (e.g. 4 for dance-versus, but 8 for dance-double).
</Function>
<Function name='GetName' return='string' arguments=''>
Returns the name of the Style.
</Function>
@@ -2992,6 +3094,9 @@
<Function name='GetStyleType' return='StyleType' arguments=''>
Returns the StyleType for this Style.
</Function>
<Function name='NeedsZoomOutWith2Players' sm-ssc='true' return='bool' arguments=''>
Returns <code>true</code> if the Style needs to be zoomed out with two players.
</Function>
</Class>
<Class name='TextBanner'>
<Function name='Load' return='void' arguments='string sMetricsGroup'>
@@ -3093,7 +3198,7 @@
<Function name='GetDifficulty' return='Difficulty' arguments=''>
Returns the Trail's difficulty.
</Function>
<Function name='GetEntries' sm-ssc='true' return='{TrailEntry}' arguments=''>
<Function name='GetTrailEntries' sm-ssc='true' return='{TrailEntry}' arguments=''>
Returns a table of TrailEntry items.
</Function>
<Function name='GetMeter' return='int' arguments=''>
@@ -3120,7 +3225,7 @@
Returns the Steps used in this TrailEntry.
</Function>
<Function name='IsSecret' sm-ssc='true' return='bool' arguments=''>
(why'd I think this was a good idea when we have CourseEntry:IsSecret?)
(why'd I think this was a good idea when we have <Link class='CourseEntry' function='IsSecret' />?)
</Function>
</Class>
<Class name='UnlockEntry'>
-455
View File
@@ -1,455 +0,0 @@
PRELIMINARY - - - - - - - - 05/03/2004
Protocol version 4
But 0x04 will be its version for inter-protocol purposes.
This protocol is only intended to replace current protocol. Because current protocol
not expanable
SMLAN PROTCOL TCP/8765
Protcol is entirelly packaged in EzSockets Data Packets (use send and receive packet)
This will prevent any out-of-sync errors with future or past versions.
The protocol is impervious to fragmented, or bonded TCP packets.
Basic Representation:
Octet 0123 4 5
+----+-+---//--+
|ssss|C|Payload|
+----+-+---//--+
ssss - size of packet, handled by ezsockets (if you're using C++)
C - Command.
Payload - variable size based on command
The payload may contain more data than expected, i.e. new protocol version.
In the following protocol, the term size means the size of the chunk of data.
If the "size" is "NT" then that means it's a null-terminating string.
"MSN" most significant 4 bits (byte/16)
"LSN" least significant 4 bits (byte%16)
Note: Primary player is 0x0, secondary player is 0x1
CLIENT to SERVER protocol:
000: No Operation
Desc: This command will cause server to respond with a no op response.
Payload: None
Response: Server 001
001: No Operation Response
Desc: This command is used to respond to a no operation.
Payload: None
Response: None
002: Hello
Desc: This is the first packet from a client to server, stating below
information (NOTE: Names are no longer sent in this packet)
Payload:
Size Description:
1 Client protocol version
NT Name of build of StepMania
Response: Server 002
003: Game Start Request
Desc: This command is called once after most loading is done, and
again immediately before the sound starts.
Payload:
Size Description
MSN Primary player difficulty (feet) (0 for no player)
LSN Secondary player difficulty (feet) (0 for no player)
MSN Primary player difficulty (0=Beginner, 1=easy, etc.)
LSN Second player difficulty (0=Beginner, 1=easy, etc.)
MSN Start Position (0 is pre-sync, 1 is for sync)
LSN Reserved
NT Song Title
NT Song Subtitle
NT Song Artist
NT Course Title (If none exists; make it just a null)
NT Song Options (in string-format)
NT Primary Player's options (Null if non-existant)
NT Secondary Player's Options (Null if non-existant)
Response: Server 003
004: Game Over Notice
Desc: This command is sent when end of game is encounterd
Payload: None.
Response: None.
005: Game Status update
Desc: Updates game info for each step
Payload:
Size Description
MSN Player #
Protocol <= 2
LSN StepID
1: Miss
2: W5
3: W4
4: W3
5: W2
6: W1
7: LetGo
8: Held
Protocol >= 3
LSN StepID
1: HitMine
2: AvoidMine
3: Miss
4: W5
5: W4
6: W3
7: W2
8: W1
9: LetGo
10: Held
MSN Projected Grade (StepMania enum int)
LSN Reserved
4 Net-order long containing score.
2 Net-order int containing combo.
2 Net-order int containing health.
2 Net-order # containing offset
32767 would be DEAD on the note
If the user is hitting late, the # will be higher
It if the user is exactly 0.25 seconds off, the
number will be different by 500, if 0.5, it will be
different by 1000.
Response: None.
006: Style Update (PLEASE NOTE THIS HAS NOTHING TO DO WITH SERVER COMMAND 6)
Desc: This is sent when a style is chosen.
Size:
1 # of enabled players (1 means 1, 2 means 2)
1 Player # (0 means 1st, 1 means 2nd)
NT Player Name for #
(Additional player's and #'s) (enabled players ONLY)
Response: None
007: Chat message
Desc: The user typed a message for general chat.
Size:
NT Message
008: Request Start Game and Tell server existance/non existance of song.
Desc: The user selected a song on a Net-enabled selection
Size:
1 Usage of message
0: (in response to server 8) User has specified song
1: (in response to server 8) User does NOT have specified song
2: User requested a start game on given song
NT Song Title (As gotten by GetTranslitMainTitle)
NT Song Artist (As Gotten by GetTranslitArtist)
NT Song Subtitle (As gotten by GetTranslitSubTitle)
009: //Reserved
010: User entered/exited Network Music Selection Screen
Size:
1
0: exited ScreenNetSelectMusic
1: entered ScreenNetSelectMusic
2: **Not Sent**
3: entered options screen
4: exited the evaluation screen
5: entered evaluation screen
6: exited ScreenNetRoom
7: entered ScreenNetRoom
011: User has changed player options
Size:
NT Player 0's options
NT Player 1's options
012: SMOnline Packet. //SPECIAL CASE!!!
NOTE: The smonline packet is not defined here.
The SMLan packet 12 is a wrapper for the SMOnline packet.
This is so that we can have "protection" of sorts when
it comes to the coding of SMOnline, so we don't have to
use the lower level commands when dealing with SMOnline.
Size:
1 SMOnline command //This used to say 2, but it looks like 1 in all cases
<VARIABLE> SMOnline data
013: Reserved
SERVER to CLIENT protocol: (begins at 128)
NOTE: Server responses always add 128, thus a server response for no operation
is 128, not 000
000(128):No Operation
Desc: This command will cause server to respond with a no op response.
Payload: None
Response: Server 001
001(129):No Operation Response
Desc: This command is used to respond to a no operation.
Payload: None
Response: None
002(130):Server Hello Response
Desc: This introduces the server.
Payload:
Size Description
1 Server protocol version //NOTE: if protocol version is 128+, then this
server is an SMOnline server
NT Server Name
4 Random key ( at the moment only used for an alternate login method )
003(131):Allow Start
Desc: This will cause the client to start the game.
Payload: None
Response: None
004(132):Game over stats
Desc: this packet is send in response to the game over packet
it contains information regarding how well each player did.
Payload:
1 # of players sent in this packet (active players)
The way this works is to send every player's info for a given
field. Like every player's score will be sent first, then every
player's grade.
1 First player's player ID
<Other player's IDs>
4 Score
<Other player's scores>
1 Grade
<Other player's Grades>
1 Difficulty (0=beginner, 1=light, etc.)
<Other player's difficulties>
#this next chunk of step types is actually reversed
2 miss
<Other player's misses>
2 boo
<Other player's boos>
2 good (All players)
2 great (All players)
2 perfect (All players)
2 marvelous (All players)
2 ok (All players)
2 max_combo (All players)
NT Player's options
<Other player's options>
005:(133)Scoreboard update
Desc: This will update the client's scoreboard.
Payload:
Size
1 Which section
0: Names
1: Combos
2: Projected Grades
1 # of players to display
If Names, then:
1 Player in first place's index
1 Player in second place's index
...
1 Last player's index
If Combos, then:
2 First player's combo
2 Second Player's combo
...
2 Last player's combo
If Project grades
1 Player 1's grade (in the same format used when reporting projected grades)
1 Player 2's grade
...
1 Last player's projected grade
006:(134)System Message (PLEASE NOTE THIS HAS NOTHING TO DO WITH CLIENT COMMAND 6)
Desc: Send system message to user
Payload:
Size Description
NT Message
007:(135)Chat Message
Desc: Add a chat message to the chat window on some StepMania screens.
Payload:
Size Description
NT Message
008:(136)Tell client to start song/ask if client has song
Desc: The user selected a song on a Net-enabled selection
Size:
1 Usage of message
0: See if client has song
1: See if client has song, if so, scroll to song
2: See if client has song, if so, scroll to song, and play that song
3: Blindly start song
NT Song Title (As gotten by GetTranslitMainTitle)
NT Song Artist (As Gotten by GetTranslitArtist)
NT Song Subtitle (As gotten by GetTranslitSubTitle)
009:(137)Update user list
Desc: This sends all the users currently connected
Size:
1 Max # of players
1 # of players in this packet
1 Player 0's status
NT Player 0's name (if there is no player here... make it a null (""))
1 Player 1's status
NT Player 1's name
...
1 Last player's status
NT Last player's name
Status:
0 Inative (no info on this user yet)
1 Active (you know who it is)
2 In Selection Screen
3 In Options
4 In Evaluation
010:(138)Force change to Networking select music screen.
Size:
NT Set Specified gametype
NT Set Specified style
011:(139)Reserved
012:(140)SMOnline Packet. //SPECIAL CASE!!!
NOTE: The smonline packet is not defined here.
The SMLan packet 12 is a wrapper for the SMOnline packet.
This is so that we can have "protection" of sorts when
it comes to the coding of SMOnline, so we don't have to
use the lower level commands when dealing with SMOnline.
Size:
1 SMOnline command
<VARIABLE> SMOnline data
013:(141)Formatted information packet
Desc: Send formatted information regarding the server back to the player.
NOTE: The purpose of this function is alternatively to be a broadcast
packet. (You can expect it via UDP broadcast)
Size:
NT Server Name
2 Port the server is listening on
2 Number of players connected
014:(142)Attack Client
Size:
1 Player Number
4 Time to Last (in MS)
NT Text describing modifiers.
----------------------------------------------------------------
Client SMOnline packets:
000: Send Login Information
Size:
1 Player Number
1 Encryption text
0: MD5 hash
1: MD5 ( MD5 hash + salt ) (salt is plain text, base 10 string )
NT Username
NT Password
Note: The client is not permitted to use method (1) for authentication
if the salt it received from the server is 0
001: User asks to enter room
Size:
1 Enter/Exit?
0: User wishes to exit room
1: User wishes to enter room
NT Room Name (Used when entering rooms)
NT Password (Empty if password not used)
002: Create a new Room
Size:
1 Room Type
0: Normal room (has sub rooms)
1: Game room (no sub rooms)
NT Room Title
NT Room Description
NT Room Password (blank if no password)
003: Requests Room Info
Size:
NT Room Name
Server SMOnline packets:
000: Login Response
1 Approval Status
0: Approved
1: Approval Failed
NT Login response (plain text)
001: Room Update (Changing rooms)
Size:
1 Type of update
0: Change Room Title
1: Update List of other rooms (or games)
If Room Title Update:
NT Room Title
NT Room Description
1 Type of room:
0: Chat room
1: Game room
1 Allows creation of sub room.
0: Does not allow creation of subrooms
1: Allows creation of subrooms
If Room List Update:
1 Number of rooms
NT Room1 Title
NT Room1 Description
NT Room2 Title
NT Room2 Description
...
NT RoomN Title
NT RoomN Description
Room Status appended for reverse compatibility
1 Room1 Status
0: Normal Room
1: Unused
2: Room in game
3: First stage of song selection has been done
4: Second stage of song selection has been done
1 Room2 Status
...
1 RoomN Status
Room Flags appended for reverse compatibility
1 Room1 Flags
bit 0: Passworded if true
1 Room2 Status
...
1 RoomN Status
002: Request general information from server.
1 Format for stats
0: Normal unformatted stats
003: Room Info
Size:
NT Last Song Title
NT Last Song Subtitle
NT Last Song Artist
1 Num Players
1 Max Players
NT Player1 Name
...
NT PlayerN Name
+47
View File
@@ -0,0 +1,47 @@
$INFORMATION:maintitle:subtitle:artist:genre:credit;
$TRANSLITS:main:sub:artist;
$GRAPHICS:banner:background:disc:cdtitle;
$MUSIC:music-file:base-track:intro-file:lyrics;
// should be used if a intro file is not defined
$SAMPLEPREVIEW:start:length;
$DISPLAYBPM:[from:to]|[one]|[show yes/no];
$BGCHANGES:
beat=file:p,r,o,p,s
;
$FGCHANGES:;
$KEYSOUNDS:;
// cache tags here
$CACHE:
firstbeat:
lastbeat:
songfilename:
hasmusic:
hasbanner
;
// note data
#NOTEDATA#
$META:
STEPSTYPE=stepstype:
DIFFICULTY=difficulty:
DESCRIPTION=description:
METER=meter:
RADARVALUES=r,a,d,a,r,v,a,l,u,e,s;
$TIMINGDATA:
BPM=bpms:
SPEED=speed:
STOPS=stops:
DELAYS=delays:
TIMESIGNATURES=timesigs;
$NOTES:
00000
00000
00000
00000
,
00000
00000
00000
00000
;
+59
View File
@@ -0,0 +1,59 @@
// sm-ssc step chart/msd5 hacky file format doc.
// based off of .sm, which was based off of DWI's modified MSD format.
#TITLE:;
#SUBTITLE:;
#ARTIST:;
#TITLETRANSLIT:;
#SUBTITLETRANSLIT:;
#ARTISTTRANSLIT:;
#GENRE:;
#CREDIT:;
#BANNER:;
#BACKGROUND:;
#LYRICSPATH:;
#CDTITLE:;
#MUSIC:;
#INSTRUMENTTRACK:;
#MUSICLENGTH:;
#OFFSET:;
#STOPS:;
#DELAYS:;
#BPMS:;
#TIMESIGNATURES:;
#LASTBEATHINT:;
#SAMPLESTART:;
#SAMPLELENGTH:;
#DISPLAYBPM:[xxx][xxx:xxx]|[*];
#SELECTABLE:;
#BGCHANGES:;
#FGCHANGES:;
#KEYSOUNDS:;
#ATTACKS:;
// stored in cache
#FIRSTBEAT:; // calculated
#LASTBEAT:; // calculated
#SONGFILENAME:;
#MUSICBYTES:; // ignored by loader
#HASMUSIC:;
#HASBANNER:;
// begin
#NOTEDATA# // marks a new note data section
// information from #NOTES moved here
#STEPSTYPE:;
#DESCRIPTION:;
#DIFFICULTY:;
#METER:;
#RADARVALUES:;
#CREDIT:;
// steps-based timingdata
#STOPS:;
#DELAYS:;
#BPMS:;
#TIMESIGNATURES:;
#LASTBEATHINT:;
// actual step data
#NOTES:;
-14
View File
@@ -1,14 +0,0 @@
Code that uses ScreenTextEntry::TextEntry()
-------------------------------------------
RoomWheel.cpp
ScreenEdit.cpp
ScreenEditMenu.cpp
ScreenNetRoom.cpp
ScreenNetworkOptions.cpp
ScreenOptionsCourseOverview.cpp
ScreenOptionsManageCourses.cpp
ScreenOptionsManageEditSteps.cpp
ScreenOptionsManageProfiles.cpp
ScreenOptionsReviewWorkout.cpp
ScreenPackages.cpp
ScreenTestFonts.cpp
@@ -1,4 +1,4 @@
Noteskin elements Reference:
[Noteskin Elements Reference]
{ Taps }
button Tap Note
button Tap Mine
@@ -35,6 +35,8 @@ button Roll Body Inactive
button Roll Bottomcap Inactive
button Roll Tail Inactive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ button }
--dance--
Left
@@ -51,6 +53,15 @@ Center
DownLeft
DownRight
--kb7--
Key1
Key2
Key3
Key4
Key5
Key6
Key7
--ez2--
FootUpLeft
FootUpRight
@@ -68,7 +79,14 @@ UpRight
Right
--ds3ddx--
HandLeft
FootDownLeft
FootUpLeft
HandUp
HandDown
FootUpRight
FootDownRight
HandRight
--beat--
Key1
@@ -82,11 +100,32 @@ Scratch up
Scratch down
--maniax--
HandUpLeft
HandUpRight
HandLrLeft
HandLrRight
--techno--
Left
Right
Up
Down
UpLeft
UpRight
Center
DownLeft
DownRight
--popn--
Left White
Left Yellow
Left Green
Left Blue
Red
Right Blue
Right Green
Right Yellow
Right White
--guitar-- (not enabled yet)
Fret1
@@ -95,4 +134,12 @@ Fret3
Fret4
Fret5
--lights-- (rofl)
--lights-- (rofl)
MarqueeUpLeft
MarqueeUpRight
MarqueeLrLeft
MarqueeLrRight
ButtonsLeft
ButtonsRight
BassLeft
BassRight
+17
View File
@@ -0,0 +1,17 @@
-- how to connect to a server with the new ScreenTextEntry Lua bindings
-- (this is the base code; I'll come up with a full tutorial later.)
SCREENMAN:AddNewScreenToTop("ScreenTextEntry");
local serverSettings = {
Question = "Connect to server:",
MaxInputLength = 255,
OnOK = function(answer)
if IsNetConnected() then
-- close connection before connecting to new server
CloseConnection()
end
-- connect to server
ConnectToServer(answer)
end,
};
SCREENMAN:GetTopScreen():Load(serverSettings);
+88
View File
@@ -0,0 +1,88 @@
ThemePrefs, v0.7
----------------
ThemePrefs is a system for handling theme-specific preferences in a standard,
efficient, and predictable way. All you do, basically, is declare a table of
preferences and options and use GetThemePref(name) to get your preference
values as needed. This system will handle all disk I/O as well.
Additionally, it can work in combination with ThemePrefsRows to generate
OptionsRows for all preferences, saving you (most of) the trouble with
integrating it into your theme. More on that later.
The prefs are written, using IniFile, into Save/ThemePrefs.ini, written under
the section corresponding to your theme name (if ThemeInfo exists, it will
use the Name field listed there; otherwise, it will use the folder name).
----------------------
Section 1: Declaration
----------------------
To declare preferences for your theme to use, make a table with named
tables in it; its name is used for the preference, and the tables hold
the options for that preference. All you need to know for now is that
Default is required; for more options, check ThemePrefsRows.
After the table is declared, pass it to the function ThemePrefs.InitAll().
(If you're planning not to use any OptionsRows at all, you can just use
ThemePrefs.Init() to save some processing time, but seriously give the
ThemePrefsRows system a look before you disregard it.)
[code]
local Prefs =
{
BoolPref = { Default = false },
IntPref = { Default = 3 },
}
ThemePrefs.InitAll( Prefs )
[/code]
If your theme is "default", this will generate a ThemePrefs.ini like so:
[default]
BoolPref=false
IntPref=3
----------------
Section 2: Usage
----------------
You can access the value with ThemePrefs.Get(name) or GetThemePref(name):
both calls work identically. The return type will be based on whatever you set
it to, but the subsystem will always try number, then bool, then string, in
that order. Use true and false for bools, not 1 and 0.
For example, if you wanted to branch something in the metrics based on
the value of BoolPref (which is a boolean), you could use the following:
NextScreen=GetThemePref('BoolPref') and "ScreenTrue" or "ScreenFalse"
If you want to set a preference value for some reason, you can use either
ThemePrefs.Set(name, value) or SetThemePref(name, value), but the point of
this API is to simplify and standardize prefs handling, so you really should
not need it. (Use ThemePrefsRows instead.)
-----------------------
Section 3: Localization
-----------------------
ThemePrefs has two strings that can be localized, to be placed under
[ThemePrefs] in the appropriate language INI.
IniFileMissing - displayed when IniFile.lua is not found, which means
ThemePrefs cannot be loaded from or written to disk
UnknownPreference - displayed when an attempt is made to read or write
a preference that does not exist in the system. Uses %s for the
name of the unknown preference.
---------------------
Section 4: Disclaimer
---------------------
Though this is working fine so far, it is still experimental! If you run
into problems, or have suggestions, comments, questions, etc., please talk
to "vyhd" in #sm-ssc on irc.badnik.net, as it's his code to maintain; he
hates subjecting other people to his code (and occasionally vice versa),
but will gladly address concerns that come up.
+145
View File
@@ -0,0 +1,145 @@
ThemePrefsRows, v0.5
--------------------
ThemePrefsRows is an optional system that works with ThemePrefs to generate
Lua-based OptionsRows for every preference used in the system. All you do is
declare a table of preferences and pass it to ThemePrefs.InitAll(), which will
also initialize ThemePrefs. Note that you do need to add an entry for each
preference in [OptionTitles] and [OptionExplanations] to give the row its name
and describe what it does; I hope to find a (clean) way to do it from Lua.
----------------------
Section 1: Declaration
----------------------
Declaring preferences is the same basic concept as ThemePrefs; see that doc
for the basics. So I'll go into the stuff that's important to this API.
As mentioned in ThemePrefs, the table contains options. The possible options
and their types are outlaid here. (The pref's type is defined by Default.)
Default: whatever the value is set to by default. For sanity's sake, you
should have this in your Choices table.
Choices (table): an indexed array containing all the possible OptionsRow
choices. If you're using a Values table, the array values should be
strings. If not, you can use any type that can cast to a string.
Values (table): indexed array of the pref's type containing the value used when
the Choices entry with the same index is chosen in the row. If that
confused you, don't worry: it'll make more sense in the example.
This is optional, if your pref type can cast to strings.
Params (table): optional modifications to the OptionsRow. I'll cover this in
more detail in a later section. You probably won't need it.
To make this clearer, have an example of a valid prefs table:
[code]
local prefs =
{
BoolPref =
{
Default = false,
Choices = { "On", "Off" },
Values = { true, false },
},
IntPref =
{
Default = 3,
Choices = { 1, 2, 3, 4, 5 },
Params = { SelectType = "ShowOneInRow" }
}
}
ThemePrefs.InitAll( prefs )
[/code]
So when "On" is selected, BoolPref will be set to true, and selecting "Off"
will set it false. Simple enough, yeah? This will scale to any type you like.
Enumerations, strings, whatever.
-----------------
Section 2: Params
-----------------
We did promise a more in-depth look at Params, so here it is.
The following arguments and values are currently accepted for Params:
LayoutType (string): "ShowAllInRow" (default), "ShowOneInRow".
ExportOnChange (bool): currently disabled in the source, but available to
set in case it's enabled later. If true, the Save function (which
handles actually setting the preference) is called whenever a value
is changed rather than when the screen changes.
EnabledForPlayers (function): has 'self' as an argument, returns a table of
PlayerNumbers who are allowed to select stuff. Not important yet.
ReloadRowMessages (table): contains an indexed array of strings. Whenever
any of the messages in this table are broadcast, the Load function
(which loads the list of possible options and sets the selected
value/s) is called again.
LoadSelections (function): takes self, list, pn, overrides the default
function. This is advanced usage, so you should probably know
what you're doing to use it. Probably unnecessary.
SaveSelections (function): takes self, list, pn, and overrides the default
function. This is advanced as well, for the same reasons. Fortunately,
you probably won't need it.
----------------
Section 3: Usage
----------------
To get the OptionsRow for the preference you want, use ThemePrefRow(name)
or ThemePrefsRows.GetRow(name); they're the same function. You'd use this
as, for example in the metrics:
Line1="lua,ThemePrefRow('BoolPref')"
Unfortunately, you do need to do some more work with the Language INIs too.
For each declared preference, you need an entry under [OptionTitles] for its
title and an entry under [OptionExplanations] for its description. The key for
both is the name of the preference. With the above example, that'd be e.g.
[OptionTitles]
(...)
BoolPref=BoolPref
IntPref=IntPref
[OptionExplanations]
(...)
BoolPref=Toggles a simple boolean preference between true and false.
IntPref=Sets an integer value between 1 and 5.
-----------------------
Section 4: Localization
-----------------------
ThemePrefsRows has three themable strings:
NoDefaultInValues - if the default value isn't actually in choices or values,
this is displayed. Takes %s for the affected preference's name.
TypeMismatch - if the default type and a value type mismatch, this is shown.
Takes %s, %d, and %s for the default's type, the index of the
mismatching value, and the value's type respectively.
ChoicesSizeMismatch - if the Choices and Values arrays have different
lengths, this is displayed. Takes %d and %d for the size of
Choices and Values, respectively.
---------------------
Section 5: Disclaimer
---------------------
This isn't as tested as I'd like. For this version, it remains experimental.
Quite experimental. If you run into problems, please let me know so I can
fix them.
Please direct all questions, comments, complaints, bug reports, etc. to "vyhd"
in #sm-ssc on irc.badnik.net or whatever other form of communication you like.
-1
View File
@@ -1 +0,0 @@
If you are using Windows Vista or Windows 7, please do not install StepMania SSC into the Program Files directory.
+17
View File
@@ -0,0 +1,17 @@
[IMPORTANT INSTALL NOTE]
If you are using Windows Vista or Windows 7, please do not install StepMania SSC into the Program Files directory.
[Using Google Chrome?]
If you are using Google Chrome as your primary web browser, you will have to perform some extra steps to get stepmania:// URI handling to work:
Find yout user data
Windows XP: C:\Documents and Settings\<USERNAME>\Local Settings\Application Data\Google\Chrome\User Data
Windows Vista/7: C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data
Add your protocol to the 'Local State' file under the 'protocol_handler' section, as such:
"protocol_handler": {
"excluded_schemes": {
...
"stepmania": false,
...
}
+4 -1
View File
@@ -59,7 +59,7 @@ Kaox
* Pump/default noteskin
cesarmades
* Pump/cmd noteskin
* Pump/cmd-* noteskins
David Santamaría Rogado (howl)
* Various patches (see Changelog_sm-ssc.txt for more details and links)
@@ -106,6 +106,9 @@ juanelote
* [SongManager] GetSongGroupByIndex function
* [MusicWheel] JumpToNextGroup/JumpToPrevGroup logic modifications
NitroX72
* Pump/frame noteskin
==the beta testers==
[SSC Beta Testing Team]
KeithD
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@@ -0,0 +1,11 @@
local Noteskin = ... or {}
Noteskin.PartsToRotate = {
--["elemenu"] = true|false;
["Roll Head Active"] = false;
["Roll Head Inactive"] = false;
--
["Tap Note"] = false;
}
return Noteskin
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@@ -0,0 +1,2 @@
[Global]
FallbackNoteSkin=cmd
@@ -0,0 +1 @@
_blank
@@ -4,5 +4,4 @@ return NOTESKIN:LoadActor("DownLeft", "Ready Receptor")..{
{ Frame = 1 };
{ Frame = 2 };
};
--InitCommand=cmd(rotationy,180);
};
@@ -1,3 +1 @@
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
--InitCommand=cmd(rotationy,180);
};
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{};
+24 -8
View File
@@ -36,13 +36,14 @@ Noteskin.ElementRedirs = {
["Roll Bottomcap Inactive"] = "Hold Bottomcap Active";
["Roll Tail Inactive"] = "Hold Tail Active";
}
Noteskin.ButtonRedirs = {
-- explicit, n/w
--[[Noteskin.ButtonRedirs = {
Center = "Center";
UpLeft = "UpLeft";
UpRight = "UpRight";
DownLeft = "DownLeft";
DownRight = "DownRight";
}
}]]
Noteskin.BaseRotX = {
Center = 0;
UpLeft = 0;
@@ -57,7 +58,23 @@ Noteskin.BaseRotY = {
DownLeft = 0;
DownRight = 180;
}
Noteskin.BaseRotZ = {
Center = 0;
UpLeft = 0;
UpRight = 0;
DownLeft = 0;
DownRight = 0;
}
--[[--------------------------------------------------------------------------
DONT EDIT THE FUNCTION, DON'T COPY AND PASTE THE WHOLE NOTESKIN.LUA
JUST MAKE A NEW ONE AND GRAB WHATEVER IS USEFUL FOR YOUR NOTESKIN.
phew~
See cmd-routine-p* noteskin.lua for a simple and clear example on
how to do this properly, notice how the rest of the noteskins just
have graphics and at least a metrics.ini with few things
--]]--------------------------------------------------------------------------
local function func()
local sButton = Var "Button"
local sElement = Var "Element"
@@ -76,7 +93,6 @@ local function func()
ElementToLoad = sElement
end
--update: ahora receptor también
if sElement == "Explosion"
or sElement == "Tap Lift"
or sElement == "Tap Mine"
@@ -84,11 +100,10 @@ local function func()
then
sButton = "UpLeft"
end
local path = NOTESKIN:GetPath(Noteskin.ButtonRedirs[sButton],ElementToLoad)
--Graficos separados para holds y rolls
--if string.find(sElement,"Hold") or string.find(sElement,"Roll") then
if ( string.find(sElement,"Hold") or string.find(sElement,"Roll") ) and not ( string.find(sElement,"Head") or string.find(sElement,"Tail") ) then
--if ( string.find(sElement,"Hold") or string.find(sElement,"Roll") ) and ( string.find(sElement,"Body") ) then
local path = NOTESKIN:GetPath(sButton,ElementToLoad)
if ( string.find(sElement,"Hold") or string.find(sElement,"Roll") )
and not ( string.find(sElement,"Head") or string.find(sElement,"Tail") )
then
path = NOTESKIN:GetPath(sButton,ElementToLoad)
end
@@ -100,6 +115,7 @@ local function func()
if bRotate then
t.BaseRotationX=Noteskin.BaseRotX[sButton]
t.BaseRotationY=Noteskin.BaseRotY[sButton]
t.BaseRotationZ=Noteskin.BaseRotZ[sButton]
end
return t
+1 -17
View File
@@ -38,23 +38,7 @@ return Def.ActorFrame {
};
--thing...
Def.Quad {
InitCommand=cmd(zoomto,60,4800;diffusealpha,0);
InitCommand=cmd(zoomto,50,5000;diffusealpha,0);
HitMineCommand=cmd(finishtweening;diffusealpha,1;linear,0.3;diffusealpha,0);
};
--[[Def.Quad {
InitCommand=function(self)
local style = GAMESTATE:GetCurrentStyle()GetStyleType()
local maxzoom = SCREEN_WIDTH
if style == 'StyleType_OnePlayerTwoSides' then
maxzoom = 320
end
self:diffuse(1,1,1,0);
self:zoomx(maxzoom);
self:zoomy(SCREEN_HEIGHT*5)
end;
--cmd(diffuse,1,1,1,0;zoomy,SCREEN_HEIGHT*100);
HitMineCommand=function(self) MESSAGEMAN:BroadCast("AMineWasHit"); end;
--cmd(finishtweening;diffusealpha,1;linear,0.3;diffusealpha,0);
};]]
}
+10 -4
View File
@@ -19,20 +19,26 @@ return Def.ActorFrame {
-- LAYERS --
NOTESKIN:LoadActor("Center", "Outline Receptor")..{
Name="Outline";
Condition=Var "Button" == "Center";
Name="Outline Full";
Condition=Var "Button" == "Center" and GAMESTATE:GetCurrentStyle():GetStepsType() ~= 'StepsType_Pump_Halfdouble';
--InitCommand=cmd(x,96);
};
NOTESKIN:LoadActor("DownLeft", "Outline Receptor")..{
Name="Outline Half";
Condition=Var "Button" == "DownLeft" and GAMESTATE:GetCurrentStyle():GetStepsType() == 'StepsType_Pump_Halfdouble';
--InitCommand=cmd(x,96);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Base";
Frames = { { Frame = 0 } };
--PressCommand=cmd(finishtweening;glow,1,1,1,1;linear,0.1;glow,1,1,1,0);
PressCommand=cmd(finishtweening;linear,0.05;zoom,0.9;linear,0.1;zoom,1);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Glow";
Frames = { { Frame = 1 } };
InitCommand=cmd(blend,'BlendMode_Add');
--PressCommand=cmd(finishtweening;linear,0.05;zoom,0.9;linear,0.1;zoom,1);
PressCommand=cmd(finishtweening;linear,0.05;zoom,0.9;linear,0.1;zoom,1);
};
--[[
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
@@ -4,5 +4,4 @@ return NOTESKIN:LoadActor("UpLeft", "Ready Receptor")..{
{ Frame = 1 };
{ Frame = 2 };
};
--InitCommand=cmd(rotationy,180);
};
+1 -4
View File
@@ -1,4 +1 @@
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{
--InitCommand=cmd(rotationy,180);
--BaseRotationY=180;
};
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{};
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -0,0 +1 @@
_blank
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

+10
View File
@@ -0,0 +1,10 @@
[NoteDisplay]
TapNoteAnimationLength=0.333
TapMineAnimationLength=0.333
TapLiftAnimationLength=0.333
TapFakeAnimationLength=0.333
HoldHeadAnimationLength=0.333
HoldTopCapAnimationLength=0.333
HoldBottomCapAnimationLength=0.333
HoldBodyAnimationLength=0.333
HoldTailAnimationLength=0.333
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

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