diff -Nru stepmania-5.0.12+dfsg/.appveyor.yml stepmania-5.1.0+dfsg/.appveyor.yml --- stepmania-5.0.12+dfsg/.appveyor.yml 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/.appveyor.yml 2018-01-25 05:01:07.000000000 +0000 @@ -22,7 +22,7 @@ set SM_COMMIT_SHORT=%APPVEYOR_REPO_COMMIT:~0,7% - set SM_SETUP_EXE_NAME=StepMania-5.0-git-%SM_COMMIT_SHORT%-win32.exe + set SM_SETUP_EXE_NAME=StepMania-5.1-git-%SM_COMMIT_SHORT%-win32.exe curl -u wolfman2000:%access_token% -H "User-Agent: Appveyor-wolfman2000-stepmania-app" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" -X POST -d %GITHUB_API_PENDING% %GITHUB_API_URL% diff -Nru stepmania-5.0.12+dfsg/autoconf/m4/x11.m4 stepmania-5.1.0+dfsg/autoconf/m4/x11.m4 --- stepmania-5.0.12+dfsg/autoconf/m4/x11.m4 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/autoconf/m4/x11.m4 2018-01-25 05:01:07.000000000 +0000 @@ -33,9 +33,7 @@ fi # Check for Xrandr - # Can someone fix this for me? This is producing bizarre warnings from - # configure... I have no clue what I'm doing -Ben - AC_CHECK_LIB(Xrandr, XRRSizes, + AC_CHECK_LIB(Xrandr, XRRQueryVersion, have_xrandr=yes, have_xrandr=no, [$XLIBS]) @@ -45,14 +43,36 @@ have_xrandr=no fi - if test "$have_xrandr" = "no"; then + # Check for Xxf86vm + AC_CHECK_LIB(Xxf86vm, XF86VidModeSwitchToMode, + have_xf86vm=yes, + have_xf86vm=no, + [$XLIBS]) + AC_CHECK_HEADER(X11/extensions/xf86vmode.h, have_xf86vm_header=yes, have_xf86vm_header=no, [#include ]) + + if test "$have_xf86vm_header" = "no"; then + have_xf86vm=no + fi + + no_modeset=yes + if test "$have_xrandr" = "yes"; then + XLIBS="$XLIBS -lXrandr" + AC_DEFINE(HAVE_XRANDR, 1, [Xrandr is available]) + no_modeset=no + fi + + if test "$have_xf86vm" = "yes"; then + XLIBS="$XLIBS -lXxf86vm" + AC_DEFINE(HAVE_XF86VIDMODE, 1, [XF86VidMode is available]) + no_modeset=no + fi + + if test "$no_modeset" = "yes"; then if test "$unix" = "yes"; then AC_MSG_ERROR("Couldn't find X11 libraries.") else no_x=yes fi - else - XLIBS="$XLIBS -lXrandr" fi AM_CONDITIONAL(HAVE_X11, test "$no_x" != "yes") diff -Nru stepmania-5.0.12+dfsg/Build/INSTALL.md stepmania-5.1.0+dfsg/Build/INSTALL.md --- stepmania-5.0.12+dfsg/Build/INSTALL.md 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Build/INSTALL.md 2018-01-25 05:01:07.000000000 +0000 @@ -37,5 +37,5 @@ Linux === After installing, run `sudo make install`. The files will be placed in the location specified: -by default, that is now `/usr/local/stepmania-5.0`. +by default, that is now `/usr/local/stepmania-5.1`. diff -Nru stepmania-5.0.12+dfsg/CMake/CMakeMacros.cmake stepmania-5.1.0+dfsg/CMake/CMakeMacros.cmake --- stepmania-5.0.12+dfsg/CMake/CMakeMacros.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/CMake/CMakeMacros.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -27,7 +27,13 @@ endfunction() function(sm_add_compile_flag target flag) - sm_append_simple_target_property(${target} COMPILE_FLAGS ${flag}) + get_target_property(current_property ${target} COMPILE_FLAGS) + if (current_property) + set(current_property "${current_property} ${flag}") + set_target_properties(${target} PROPERTIES COMPILE_FLAGS "${current_property}") + else() + set_target_properties(${target} PROPERTIES COMPILE_FLAGS ${flag}) + endif() endfunction() function(sm_add_link_flag target flag) diff -Nru stepmania-5.0.12+dfsg/CMake/DefineOptions.cmake stepmania-5.1.0+dfsg/CMake/DefineOptions.cmake --- stepmania-5.0.12+dfsg/CMake/DefineOptions.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/CMake/DefineOptions.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -68,4 +68,5 @@ option(WITH_GTK2 "Build with GTK2 Support." ON) option(WITH_PARALLEL_PORT "Build with Parallel Lights I/O Support." OFF) option(WITH_CRASH_HANDLER "Build with Crash Handler Support." ON) + option(WITH_XINERAMA "Build using libXinerama to query for monitor numbers (if available)." ON) endif() diff -Nru stepmania-5.0.12+dfsg/CMake/Modules/FindXinerama.cmake stepmania-5.1.0+dfsg/CMake/Modules/FindXinerama.cmake --- stepmania-5.0.12+dfsg/CMake/Modules/FindXinerama.cmake 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/CMake/Modules/FindXinerama.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,52 @@ +# This is borrowed from FreeRDP. +# - Find XINERAMA +# Find the XINERAMA libraries +# +# This module defines the following variables: +# XINERAMA_FOUND - true if XINERAMA_INCLUDE_DIR & XINERAMA_LIBRARY are found +# XINERAMA_LIBRARIES - Set when XINERAMA_LIBRARY is found +# XINERAMA_INCLUDE_DIRS - Set when XINERAMA_INCLUDE_DIR is found +# +# XINERAMA_INCLUDE_DIR - where to find Xinerama.h, etc. +# XINERAMA_LIBRARY - the XINERAMA library +# + +#============================================================================= +# Copyright 2011 O.S. Systems Software Ltda. +# Copyright 2011 Otavio Salvador +# Copyright 2011 Marc-Andre Moreau +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============================================================================= + +find_path(XINERAMA_INCLUDE_DIR NAMES X11/extensions/Xinerama.h + PATHS /opt/X11/include + PATH_SUFFIXES X11/extensions + DOC "The Xinerama include directory" +) + +find_library(XINERAMA_LIBRARY NAMES Xinerama + PATHS /opt/X11/lib + DOC "The Xinerama library" +) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Xinerama DEFAULT_MSG XINERAMA_LIBRARY XINERAMA_INCLUDE_DIR) + +if(XINERAMA_FOUND) + set( XINERAMA_LIBRARIES ${XINERAMA_LIBRARY} ) + set( XINERAMA_INCLUDE_DIRS ${XINERAMA_INCLUDE_DIR} ) +endif() + +mark_as_advanced(XINERAMA_INCLUDE_DIR XINERAMA_LIBRARY) + diff -Nru stepmania-5.0.12+dfsg/CMake/SMDefs.cmake stepmania-5.1.0+dfsg/CMake/SMDefs.cmake --- stepmania-5.0.12+dfsg/CMake/SMDefs.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/CMake/SMDefs.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,7 @@ # Set up version numbers according to the new scheme. set(SM_VERSION_MAJOR 5) -set(SM_VERSION_MINOR 0) -set(SM_VERSION_PATCH 12) +set(SM_VERSION_MINOR 1) +set(SM_VERSION_PATCH 0) set(SM_VERSION_TRADITIONAL "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}.${SM_VERSION_PATCH}") execute_process(COMMAND git rev-parse --short HEAD diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Data/Shaders/GLSL/Distance field.frag" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Data/Shaders/GLSL/Distance field.frag" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Data/Shaders/GLSL/Distance field.frag" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Data/Shaders/GLSL/Distance field.frag" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,27 @@ +uniform sampler2D Texture1; + +varying vec2 texCoords; +varying vec4 vertexColor; + +float aastep(float threshold, float dist) { + float afwidth = 0.75 * length(vec2(dFdx(dist), dFdy(dist))); + return smoothstep(threshold - afwidth, threshold + afwidth, dist); +} + +float median(float r, float g, float b) { + return max(min(r, g), min(max(r, g), b)); +} + +const float distanceThreshold = 0.5; + +float sample(vec2 tc) { + vec3 texel = texture2D(Texture1, tc).rgb; + float dist = median(texel.r, texel.g, texel.b); + return aastep(distanceThreshold, dist); +} + +void main(void) +{ + float dfValue = sample(texCoords); + gl_FragColor = vec4(vertexColor.rgb, vertexColor.a * dfValue); +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Data/Shaders/GLSL/Distance field.vert" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Data/Shaders/GLSL/Distance field.vert" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Data/Shaders/GLSL/Distance field.vert" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Data/Shaders/GLSL/Distance field.vert" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +//We need this shader to pass the vertex color to the frag shader + +varying vec4 vertexColor; +varying vec2 texCoords; + +void main(void) { + vertexColor = gl_Color; + texCoords = gl_MultiTexCoord0.st; + gl_Position = gl_Vertex * gl_ModelViewProjectionMatrix; +} diff -Nru stepmania-5.0.12+dfsg/debian/changelog stepmania-5.1.0+dfsg/debian/changelog --- stepmania-5.0.12+dfsg/debian/changelog 2016-08-14 16:03:43.000000000 +0000 +++ stepmania-5.1.0+dfsg/debian/changelog 2018-01-25 14:01:36.000000000 +0000 @@ -1,4 +1,4 @@ -stepmania (5.0.12+dfsg-0build1+ubuntu14.04) trusty; urgency=low +stepmania (5.1.0+dfsg-beta1+0ubuntu14.10) trusty; urgency=low * new upstream release diff -Nru stepmania-5.0.12+dfsg/Docs/Changelog_sm5.txt stepmania-5.1.0+dfsg/Docs/Changelog_sm5.txt --- stepmania-5.0.12+dfsg/Docs/Changelog_sm5.txt 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Changelog_sm5.txt 2018-01-25 05:01:07.000000000 +0000 @@ -1,9 +1,148 @@ +StepMania 5.1 Changelog +________________________________________________________________________________ +The StepMania 5.1 Changelog covers all post-5.0.12 changes. +________________________________________________________________________________ + +2017/10/20 +---------- +* [MusicWheelItem] Fix crash that only shows up on extra stage from MusicWheelItem handler [kyzentun] + +2017/10/02 +---------- +* [Actor] Support for distance field fonts [flameshadowxeroshin] +* [Actor] Distance field EffectMode [flameshadowxeroshin] + +2017/09/19 +---------- +* [ImageCache] Changing BannerCache into ImageCache to support more imagetypes [jousway] + +2017/08/30 +---------- +* [General] Implemented SetActualDancePoints & SetPossibleDancePoints [mrthatkid] + +2017/08/14 +---------- +* [RageDisplay] backport fullscreen fix for macOS [dguzek] + +2017/08/08 +---------- +* [General] Add new 720p default theme Lambda [listenerjubatus] + +2017/07/15 +---------- +* [Modifiers] Added nITG's Tangent Modifiers [mrthatkid] + +2017/07/08 +---------- +* [Noteskins] Allow spaces in noteskin names. [kyzentun] +* [Courses] Check entry id in GetCourseEntry. Add GetNumCourseEntries. [kyzentun] + +2017/06/18 +---------- +* [RageDisplay, LLW_X11] Backport fullscreen borderless window, per-monitor + fullscreen options to X11 backend + +2017/06/09 +---------- +* [Modifiers] Added nITG's various column specific & other misc modifiers [mrthatkid] + +2017/06/06 +---------- +* [General] Backport custom song support. [kyzentun] +* [ScreenDebugOverlay] Entry in the debug menu that reloads preferences. [kyzentun] +* [Modifiers] Added nITG's various column specific & other misc modifiers [mrthatkid] + +2017/05/27 +---------- +* [RageTypes] Backport FTOC optimization from 5.1 [shakesoda] + +2017/05/26 +---------- +* [MusicWheelItem] Add missing breaks to case statement, fix #1445 [drewbarbs] + +2017/05/25 +---------- +* [Win32] keep xp on life support a bit longer, check for vista+ stuff [chrispable] + +2017/05/24 +---------- +* [EzSockets] EzSockets: Don't leak WinAPI everywhere this gets included. Fixes #1455 [shakesoda] +* [RageDisplay] Removed explicitly giving up CPU time for other threads under Windows (STOP ARGUING ABOUT THIS) [shakesoda] +* [GraphicsWindow] Call DwmFlush on VSync (might help with stuttering). [shakesoda] + +2017/05/23 +---------- +* [InputHandler] XInput support for the DirectInput driver [cvpcs] + +2017/05/13 +---------- +* [Modifiers] Add nITG's various path shape & other modifiers - V2 [mrthatkid] +* [ScreenEdit] Fixed Player NoteField bug when SCREEN_HEIGHT != 480 [sillybear] + +2017/05/06 +---------- +* [MusicWheelItem] Call SetMessage during CurrentSteps / Difficulty Changed [sillybear] + +2017/04/04 +---------- +* [Sprite] Sprite:Load lua function can set additional texture hints [kyzentun] +* [Utilities] Also, rec_count_children slipped in Utilities somehow. [kyzentun] + +2017/03/14 +---------- +* [Modifiers] Added nITG's various sub-modifiers [mrthatkid] + +2017/02/25 +---------- +* [Modifiers] Add nITG's new Move modifiers [mrthatkid] + +2017/02/17 +---------- +* [Bookkeeper] Persistent Coins [concubidated] + +2017/02/10 +---------- +* [Online] Online protocol improvements [nickito12] +* [Online] NetRoom/SelectBase/Music lua objects [nickito12] +* [MessageManager] Instantiate MESSAGEMAN first. [mattmccutchen] + +2017/02/08 +---------- +* [Modifiers] Add nITG's new Confusion modifiers [mrthatkid] +* [Player] Fix oitg_zoom_mode [mrthatkid] + +2016/12/01 +---------- +* [CMake] Allow WITH_FFMPEG to work when disabled for Mac. [dguzek] + +2016/11/29 +---------- +* [Actor] Backport 'Don't use static temp state for actor effects' from master branch [mrthatkid] + +2016/11/24 +---------- +* [NoteSkinManager] Fixed NOTESKIN:GetMetric() [shakesoda] + StepMania 5 Changelog ________________________________________________________________________________ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt. ________________________________________________________________________________ +2016/09/16 +---------- +* [PlayerOptions] Added FromString function for applying a mod string the way + ApplyLameCommand does in oitg. [kyzentun] + +================================================================================ +StepMania 5.0.12 | 20160905 +-------------------------------------------------------------------------------- + +2016/08/28 +---------- +* [Gameplay] Added oitg_zoom_mode_actor() for compatibility with oitg's + SetZoom bug. [kyzentun] + 2016/06/28 ---------- * [Gameplay] Moved pause menu logic to a script in _fallback. Added diff -Nru stepmania-5.0.12+dfsg/Docs/Luadoc/LuaDocumentation.xml stepmania-5.1.0+dfsg/Docs/Luadoc/LuaDocumentation.xml --- stepmania-5.0.12+dfsg/Docs/Luadoc/LuaDocumentation.xml 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Luadoc/LuaDocumentation.xml 2018-01-25 05:01:07.000000000 +0000 @@ -21,7 +21,7 @@ save yourself some time, copy this for undocumented things: - + --> @@ -451,7 +451,7 @@ Returns a formatted percent with the specified numerator and denominator. - [00 init.lua] + [00 init.lua] [03 ThemePrefs.lua] Prints a table's contents to the log. @@ -568,7 +568,7 @@ [03 UserPreferences2.lua] Themer-facing function for setting a user preference. - [03 Gameplay.lua] + [03 Gameplay.lua] [02 ActorDef.lua] Returns true if a decoration should be shown on the current screen or not. @@ -586,13 +586,13 @@ [02 Colors.lua] - [02 ActorDef.lua] + [02 ActorDef.lua] - [02 ActorDef.lua] + [02 ActorDef.lua] - [02 ActorDef.lua] + [02 ActorDef.lua] [02 Utilities.lua] Returns a shuffled version of t. @@ -736,7 +736,7 @@ Returns the Z rotation of a note at beat fNoteBeat for the provided PlayerState.
- bIsHoldHead is an optional argument which defaults to false. If true, this function will return 0 if the [ArrowEffects] metric DizzyHoldHeads is false. + bIsHoldHead is an optional argument which defaults to false. If true, this function will return 0 if the [PlayerOptions] modifier DizzyHolds is off.
Returns the Z rotation of the receptors for the provided PlayerState. @@ -760,7 +760,7 @@ Returns the zoom of a note for the provided PlayerState. - + Returns the FrameWidthScale of a hold part with a Y offset of fYOffset for the provided PlayerState.
fOverlappedTime is optional and will default to 0.
@@ -776,7 +776,7 @@ of Enum. Instead of Enum.GetName( ) or - Enum.Reverse( + Enum.Reverse( ), one can use :GetName() or @@ -2353,6 +2353,61 @@ Blanks the DifficultyIcon.
+ + + Return the width of the display in this mode. + + + Return the height of the display in this mode. + + + Return the refresh rate of the display in this mode. + + + + + An object describing a display: its supported and current video modes. + + + Return the unique identifier of the display. + + + Return the "human-readable" display name. + + + Return the s supported by this device. + + + Return the currently active for this display, + or nil if there is no such mode. + + + Return true if this DisplaySpec is describing the + "logical display" like an X screen or the Win32 "Virtual screen", or + false otherwise (if this describes a physical display). + + + + + An array-like userdata object which describes the displays + configured on the user's machine. + + This object supports the __len operator (#t), and + integer indexing, but does not support + iteration via pairs or ipairs. + + Each element of the array is a . + + + + Return the number of instances in the array. + + + Return the instance at index i + + + + Returns the index of the last banner loaded. @@ -2518,7 +2573,7 @@ musicLength seconds one time. Both fadeIn and fadeOut can be customized as required. loop tells the sound manager to loop the music part. applyRate - tells the sound manager to apply the current music rate. If alignBeat + tells the sound manager to apply the current music rate. If alignBeat is true or nil, the length is automatically adjusted to cover an integer number of beats. @@ -2903,7 +2958,7 @@ Sets if the Jukebox should use modifiers. - + Sets the number of multiplayer notefields to iFields @@ -3183,7 +3238,7 @@ Selects a course. Returns false on failure. - + Returns a string from the specified element and value. @@ -3429,17 +3484,57 @@ + + + + + + + + + + + + + + + + + + + + - + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Use 1-16 in place of 'n' to apply Bumpy on a specific column. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + If the player has a CMod set, returns the value of that CMod and its associated approach speed. Returns nil otherwise.
@@ -3447,10 +3542,53 @@ If the optional second argument is passed, sets the speed at which the transition occurs.
+ + + Use 1-16 in place of 'n' to apply ConfusionOffset on a specific column. + + + + + Use 1-16 in place of 'n' to apply ConfusionXOffset on a specific column. + + + + + Use 1-16 in place of 'n' to apply ConfusionYOffset on a specific column. + + + + Use 1-16 in place of 'n' to apply Dark on a specific column. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + If the player is using Distant (zero skew and positive tilt), returns the value of tilt and its approach_speed.
Returns nil otherwise.
@@ -3458,9 +3596,39 @@ If the optional second argument is passed, sets the approach_speed for skew and tilt to it.
- + + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + - + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + Sets the for the player, if the optional argument is provided. Returns the that was previously set. @@ -3496,6 +3664,13 @@ + + Sets the effect clock of certain modifiers for the player, if the optional argument is provided. Returns the that was previously set.
+ Can also be set through strings in PlayerOptions::FromString().
+ String Examples: 'ModTimerSong', 'modtimerbeat', etc. +
+ + MaxScrollBPM is one of the variables for controlling the speed mod.
Use CMod, XMod, or MMod to set the speed mod unless you have a good reason not to.
@@ -3512,6 +3687,15 @@ If the optional second argument is passed, sets the speed at which the transition occurs.
MMods are not tweenable or settable on ScreenGameplay. Use XMods if you need such an effect.
+ + Use 1-16 in place of 'n' to move a specific column. + + + Use 1-16 in place of 'n' to move a specific column. + + + Use 1-16 in place of 'n' to move a specific column. + @@ -3534,16 +3718,30 @@ If the player is using Overhead (0 tilt, 0 skew), returns true.
If true is passed, sets the tilt and skew to 0.
+ + + + + + + + + Use 1-16 in place of 'n' to apply Reverse on a specific column. + + + + + ScrollBPM is one of the variables for controlling the speed mod.
Use CMod, XMod, or MMod to set the speed mod unless you have a good reason not to.
@@ -3554,6 +3752,8 @@ Use CMod, XMod, or MMod to set the speed mod unless you have a good reason not to.
It is the setting for the XMod.
+ + Skew is one of the mods for controlling the perspective. Use Overhead, Distant, Incoming, Space, Distant, or Hallway for controlling the perspective in the old way.
@@ -3570,7 +3770,18 @@ If the optional second argument is passed, sets the approach_speed for skew and tilt to it.
+ + + + + + + + Use 1-16 in place of 'n' to apply Stealth on a specific column. + + + @@ -3585,8 +3796,36 @@ Tilt tilts the note field forward and back.
- - + + Use 1-16 in place of 'n' to apply Tiny on a specific column. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + + + Has a tangent variant that can be accessed by prepending 'Tan' to the function name. + @@ -3594,6 +3833,7 @@ Returns true if the player is using reverse. (equivalent to GetReverse() == 1.0) + If the player has a XMod set, returns the value of that XMod and its associated approach speed. Returns nil otherwise.
@@ -3601,6 +3841,13 @@ If the optional second argument is passed, sets the speed at which the transition occurs.
+ + + + + + + @@ -3728,6 +3975,9 @@ Returns true if the player was disqualified from ranking. + + Sets the Dance Point limits of the stage. + @@ -4037,7 +4287,7 @@ Returns true if pn's Profile was loaded from a memory card. - + Returns true if the last load of player pn's profile was a LastGood copy of the profile. @@ -4104,6 +4354,18 @@ Return the cumulative FPS. + + Return an array-like userdata of type , + which describes the displays configured on the user's machine. + + + Return true if the current renderer supports render-to-texture, + false otherwise. + + + Return true if the current renderer/window implementation supports + a fullscreen borderless-window mode, false otherwise. + @@ -4979,6 +5241,10 @@ Load the song banner texture at sPath. + + Loads the image of type sType from the cache based on sPath. + Internal types: "Banner", "Background", "CDTitle", "Jacket", "CDImage" and "Disc". + [02 Sprite.lua] Loads the background from the current Song or the first Trail entry. @@ -5391,7 +5657,7 @@ Returns true if the theme has the specified metric. - Returns true if the theme has the specified string. + Returns true if the theme has the specified string. Returns true if the specified theme is selectable. @@ -5400,7 +5666,7 @@ Reloads the current theme's metrics. - + Changes the current theme.
diff -Nru stepmania-5.0.12+dfsg/Docs/Luadoc/Lua.xml stepmania-5.1.0+dfsg/Docs/Luadoc/Lua.xml --- stepmania-5.0.12+dfsg/Docs/Luadoc/Lua.xml 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Luadoc/Lua.xml 2018-01-25 05:01:07.000000000 +0000 @@ -744,6 +744,23 @@
+ + + + + + + + + + + + + + + + + @@ -1111,29 +1128,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1150,12 +1222,18 @@ + + + + + + @@ -1169,25 +1247,48 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -1195,16 +1296,32 @@ + + + + + + + + + + + + + + + + @@ -1249,6 +1366,7 @@ + @@ -1381,8 +1499,11 @@ + + + @@ -1704,6 +1825,7 @@ + @@ -2294,6 +2416,12 @@ + + + + + + @@ -2374,6 +2502,15 @@ + + + + + + + + + @@ -2461,6 +2598,11 @@ + + + + + @@ -2695,6 +2837,7 @@ + diff -Nru stepmania-5.0.12+dfsg/Docs/Themerdocs/Examples/OptionRowHandlerLua.lua stepmania-5.1.0+dfsg/Docs/Themerdocs/Examples/OptionRowHandlerLua.lua --- stepmania-5.0.12+dfsg/Docs/Themerdocs/Examples/OptionRowHandlerLua.lua 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Themerdocs/Examples/OptionRowHandlerLua.lua 2018-01-25 05:01:07.000000000 +0000 @@ -59,13 +59,23 @@ return {PLAYER_2} end, + -- Optional function. If non-nil, this function must return the string representation + -- of a member of the ReloadChanged enum. This function is called in response to a message + -- listed in the optional ReloadRowMessages table below. For example, + -- to completely change the Choices presented by this OptionRow, modify + -- self.Choices in the body of this function and return "ReloadChanged_All" + Reload= function(self) + Trace("FooMods:Reload() called.") + return "ReloadChanged_None" + end, + -- A table of strings that are the names of choices. Choice names are not -- localized. Choices= {"a", "b", "c", "d"}, -- Optional table. If non-nil, this table must contain a list of messages -- this row should listen for. If one of the messages is recieved, the - -- row is reloaded (and the EnabledForPlayers function is called if it is + -- row is reloaded (and each of the EnabledForPlayers/Reload functions is called if it is -- non-nil). ReloadRowMessages= {"ReloadFooMods"}, @@ -90,6 +100,12 @@ -- SaveSelections should examine the list of what the player has selected -- and apply the appropriate modifiers to the player. -- Same args as LoadSelections. + -- + -- May optionally return an "effects" bit mask (constructed by combination of + -- the bit masks from the OptEffect enum), which dictates actions the + -- game should take in response to the selected option. For example, + -- OPT_SAVE_PREFERENCES directs the game to save Preferences.ini, + -- OPT_APPLY_ASPECT_RATIO directs the game to recompute the projection matrix, etc. SaveSelections= function(self, list, pn) Trace("FooMods:SaveSelections(" .. pn .. ")") for i, choice in ipairs(self.Choices) do diff -Nru stepmania-5.0.12+dfsg/Docs/Userdocs/Keymaps_ini_format.md stepmania-5.1.0+dfsg/Docs/Userdocs/Keymaps_ini_format.md --- stepmania-5.0.12+dfsg/Docs/Userdocs/Keymaps_ini_format.md 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Userdocs/Keymaps_ini_format.md 2018-01-25 05:01:07.000000000 +0000 @@ -9,9 +9,9 @@ ## Location -Windows: %APPDATA%/StepMania 5.0/Save/Keymaps.ini -Linux: ~/.stepmania-5.0/Save/Keymaps.ini -OS X: ~/Library/Preferences/StepMania 5/Save/Keymaps.ini +Windows: %APPDATA%/StepMania 5.1/Save/Keymaps.ini +Linux: ~/.stepmania-5.1/Save/Keymaps.ini +OS X: ~/Library/Preferences/StepMania 5.1/Save/Keymaps.ini (OS X location may be incorrect, report it if you use OS X and that location is incorrect) diff -Nru stepmania-5.0.12+dfsg/Docs/Userdocs/sm5_beginner.txt stepmania-5.1.0+dfsg/Docs/Userdocs/sm5_beginner.txt --- stepmania-5.0.12+dfsg/Docs/Userdocs/sm5_beginner.txt 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Docs/Userdocs/sm5_beginner.txt 2018-01-25 05:01:07.000000000 +0000 @@ -52,7 +52,7 @@ you can and can not install. (Most songs are version-agnostic, though the background animations may not be. Themes, Noteskins, etc. are tied to specific versions.) -StepMania 5.0 is the only version actively supported by the StepMania developers. +StepMania 5 is the only version actively supported by the StepMania developers. All older versions have various problems and/or limitations that make them too burdensome to continue supporting. @@ -328,11 +328,11 @@ The correct place to install content on StepMania 5 is the User Data folder. The exact location is different for each platform. -Windows: %APPDATA%/StepMania 5.0/ -Linux: ~/.stepmania-5.0/ -OS X: ~/Library/Application Support/StepMania 5/ +Windows: %APPDATA%/StepMania 5.1/ +Linux: ~/.stepmania-5.1/ +OS X: ~/Library/Application Support/StepMania 5.1/ Wherever you see the name "User Data folder", this is the folder it refers to. -OS X additionally has ~/Library/Preferences/StepMania 5/ for storing preferences. +OS X additionally has ~/Library/Preferences/StepMania 5.1/ for storing preferences. Inside the User Data folder you can install content by placing it in the following folders: * Songs diff -Nru stepmania-5.0.12+dfsg/extern/CMakeProject-json.cmake stepmania-5.1.0+dfsg/extern/CMakeProject-json.cmake --- stepmania-5.0.12+dfsg/extern/CMakeProject-json.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/extern/CMakeProject-json.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -20,11 +20,21 @@ set_property(TARGET "jsoncpp" PROPERTY FOLDER "External Libraries") -if(MSVC) - sm_add_compile_definition("jsoncpp" _CRT_SECURE_NO_WARNINGS) -endif() - disable_project_warnings("jsoncpp") target_include_directories("jsoncpp" PUBLIC "jsoncpp/include") +if(MSVC) + sm_add_compile_definition("jsoncpp" _CRT_SECURE_NO_WARNINGS) +elseif(APPLE) + set_target_properties("jsoncpp" PROPERTIES + XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "gnu++14" + XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" + ) +else() # Unix/Linux + sm_add_compile_flag("jsoncpp" "-std=gnu++11") + if (CMAKE_CXX_COMPILER MATCHES "clang") + sm_add_compile_flag("jsoncpp" "-stdlib=libc++") + endif() +endif() + Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Installer/header-sm5.bmp and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Installer/header-sm5.bmp differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Installer/welcome-sm5.bmp and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Installer/welcome-sm5.bmp differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_arrow 1x8 (res 64x512).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_arrow 1x8 (res 64x512).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_circle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_circle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold Body Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold Body Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold Body Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold Body Inactive (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold BottomCap Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold BottomCap Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold BottomCap Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold BottomCap Inactive (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold Explosion 2x1 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold Explosion 2x1 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold TopCap Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold TopCap Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Hold TopCap Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Hold TopCap Inactive (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Receptor.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Receptor.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Receptor.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Receptor.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,19 @@ +local t = Def.ActorFrame { + Def.Sprite { + Texture="_receptor"; + Frame0000=0; + Delay0000=1; + InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand'); + NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand'); + }; + Def.Sprite { + Texture="_rflash"; + Frame0000=0; + Delay0000=1; + InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand'); + PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand'); + LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand'); + NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand'); + }; +}; +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll Body Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll Body Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll Body Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll Body Inactive (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll BottomCap Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll BottomCap Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll BottomCap Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll BottomCap Inactive (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll TopCap Active (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll TopCap Active (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Roll TopCap Inactive (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Roll TopCap Inactive (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Bright.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Bright.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Bright.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Bright.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_glow \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Dim.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Dim.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Dim.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Explosion Dim.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Down Tap Explosion Bright \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_Down Tap Lift (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_Down Tap Lift (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Lift.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Lift.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Lift.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Lift.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +local t = Def.ActorFrame { + Def.Sprite { + Texture=NOTESKIN:GetPath( '_down', 'tap lift' ); + InitCommand=cmd(animate,false;pulse;effectclock,"beat";effectmagnitude,0.9,1,1;effectcolor1,color("1,1,1,1");effectcolor2,color("1,1,1,0.8");); + }; +}; +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_Down Tap Mine (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_Down Tap Mine (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Mine.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Mine.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Mine.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Mine.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +local t = Def.ActorFrame { + Def.Sprite { + Texture=NOTESKIN:GetPath( '_down', 'tap mine' ); + Frame0000=0; + Delay0000=1; + InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-33); + }; +}; +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Note.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Note.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Down Tap Note.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Down Tap Note.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,32 @@ +local t = Def.ActorFrame { + Def.Sprite { + Texture="_arrow"; + Frame0000=0; + Delay0000=1; + }; + Def.Sprite { + Texture="_circle"; + Frame0000=0; + Delay0000=1; + InitCommand=cmd(y,15;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0.1");effectcolor2,color("1,1,1,0.45");effectoffset,0;zoom,0.5); + }; + Def.Sprite { + Texture="_circle"; + Frame0000=0; + Delay0000=1; + InitCommand=cmd(y,5;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0.1");effectcolor2,color("1,1,1,0.45");effectoffset,0.25;zoom,0.5); + }; + Def.Sprite { + Texture="_circle"; + Frame0000=0; + Delay0000=1; + InitCommand=cmd(y,-5;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0.1");effectcolor2,color("1,1,1,0.45");effectoffset,0.5;zoom,0.5); + }; + Def.Sprite { + Texture="_circle"; + Frame0000=0; + Delay0000=1; + InitCommand=cmd(y,-15;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0.1");effectcolor2,color("1,1,1,0.45");effectoffset,0.75;zoom,0.5); + }; +}; +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Fallback Explosion.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Fallback Explosion.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/Fallback Explosion.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/Fallback Explosion.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,62 @@ +--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command. +--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation. +--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini"); + +--The NOTESKIN:LoadActor() just tells us the name of the image the Actor redirects on. +--Oh and if you wonder about the "Button" in the "NOTESKIN:LoadActor( )" it means that it will check for that direction. +--So you dont have to do "Down" or "Up" or "Left" etc for every direction which will save space ;) +local t = Def.ActorFrame { + --Hold Explosion Commands + NOTESKIN:LoadActor( Var "Button", "Hold Explosion" ) .. { + HoldingOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOnCommand"); + HoldingOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOffCommand"); + InitCommand=cmd(playcommand,"HoldingOff";finishtweening); + }; + --Roll Explosion Commands + NOTESKIN:LoadActor( Var "Button", "Hold Explosion" ) .. { + RollOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOnCommand"); + RollOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOffCommand"); + InitCommand=cmd(playcommand,"RollOff";finishtweening); + }; + --Dim Explosion Commands + NOTESKIN:LoadActor( Var "Button", "Tap Explosion Dim" ) .. { + InitCommand=cmd(diffusealpha,0); + W5Command=NOTESKIN:GetMetricA("GhostArrowDim", "W5Command"); + W4Command=NOTESKIN:GetMetricA("GhostArrowDim", "W4Command"); + W3Command=NOTESKIN:GetMetricA("GhostArrowDim", "W3Command"); + W2Command=NOTESKIN:GetMetricA("GhostArrowDim", "W2Command"); + W1Command=NOTESKIN:GetMetricA("GhostArrowDim", "W1Command"); + JudgmentCommand=cmd(finishtweening); + BrightCommand=cmd(visible,false); + DimCommand=cmd(visible,true); + }; + --yes yes I know I could do it in another way but I'm lazy and it works doesnt it ;> + --This code give the Hold OK explosion Dim the same images as Bright + NOTESKIN:LoadActor( Var "Button", "Tap Explosion Bright" ) .. { + InitCommand=cmd(diffusealpha,0); + HeldCommand=NOTESKIN:GetMetricA("GhostArrowDim", "HeldCommand"); + JudgmentCommand=cmd(finishtweening); + BrightCommand=cmd(visible,false); + DimCommand=cmd(visible,true); + }; + --Bright Explosion Commands + NOTESKIN:LoadActor( Var "Button", "Tap Explosion Bright" ) .. { + InitCommand=cmd(diffusealpha,0); + W5Command=NOTESKIN:GetMetricA("GhostArrowBright", "W5Command"); + W4Command=NOTESKIN:GetMetricA("GhostArrowBright", "W4Command"); + W3Command=NOTESKIN:GetMetricA("GhostArrowBright", "W3Command"); + W2Command=NOTESKIN:GetMetricA("GhostArrowBright", "W2Command"); + W1Command=NOTESKIN:GetMetricA("GhostArrowBright", "W1Command"); + HeldCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HeldCommand"); + JudgmentCommand=cmd(finishtweening); + BrightCommand=cmd(visible,true); + DimCommand=cmd(visible,false); + + }; + --Mine Explosion Commands + NOTESKIN:LoadActor( Var "Button", "HitMine Explosion" ) .. { + InitCommand=cmd(blend,"BlendMode_Add";diffusealpha,0); + HitMineCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HitMineCommand"); + }; +} +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_glow (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_glow (doubleres).png differ diff -Nru stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/metrics.ini stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/metrics.ini --- stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/metrics.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,77 @@ +[Global] +FallbackNoteSkin=common + +[NoteDisplay] +TapNoteAnimationIsVivid=0 +DrawHoldHeadForTapsOnSameRow=1 +TapNoteAnimationLength=1 // none of these matter because Lua is handling the animation, not sprites. +TapAdditionAnimationLength=1 +TapMineAnimationLength=1 +TapLiftAnimationLength=1 +TapFakeAnimationLength=1 +HoldHeadAnimationLength=1 +HoldTopCapAnimationLength=1 +HoldBottomCapAnimationLength=1 +HoldBodyAnimationLength=1 +HoldTailAnimationLength=1 + +StartDrawingHoldBodyOffsetFromHead=0 +StopDrawingHoldBodyOffsetFromTail=0 + +HoldLetGoGrayPercent=.25 + +HoldHeadIsAboveWavyParts=1 +HoldTailIsAboveWavyParts=1 + +ReverseDrawOrder=1101 +FlipHeadAndTailWhenReverse=1 +FlipHoldBodyWhenReverse=1 + +TapNoteAdditionTextureCoordOffsetX=0 +TapNoteAdditionTextureCoordOffsetY=0 +TapNoteNoteColorTextureCoordSpacingX=0 +TapNoteNoteColorTextureCoordSpacingY=.125 +TapFakeNoteColorTextureCoordSpacingX=0 +TapFakeNoteColorTextureCoordSpacingY=.125 +HoldHeadNoteColorTextureCoordSpacingX=0 +HoldHeadNoteColorTextureCoordSpacingY=.125 + +[GhostArrowDim] +InitCommand= +NoneCommand= +HitMineCommand=finishtweening;blend,'BlendMode_Add';diffuse,color("1,1,1,1");zoom,1;rotationz,0;decelerate,.3;rotationz,90;linear,.3;rotationz,180;diffusealpha,0 +MissCommand= +W5Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W5");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W4Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W4");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W3Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W3");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W2Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W2");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W1Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W1");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +LetGoCommand=stoptweening;decelerate,.2;diffusealpha,0; +HeldCommand=finishtweening;diffuse,color("1,1,1,1");zoom,1;linear,.2;zoom,.9;linear,.1;diffusealpha,0 + +[GhostArrowBright] +InitCommand= +NoneCommand= +HitMineCommand=finishtweening;blend,'BlendMode_Add';diffuse,color("1,1,1,1");zoom,1;rotationz,0;decelerate,.3;rotationz,90;linear,.3;rotationz,180;diffusealpha,0 +MissCommand= +W5Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W5");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W4Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W4");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W3Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W3");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W2Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W2");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +W1Command=finishtweening;diffuse,JudgmentLineToColor("JudgmentLine_W1");diffusealpha,1;sleep,.1;decelerate,.2;diffusealpha,0;zoom,1.1; +LetGoCommand=stoptweening;decelerate,.2;diffusealpha,0; +HeldCommand=finishtweening;diffuse,color("1,1,1,1");zoom,1;linear,.2;zoom,.9;linear,.1;diffusealpha,0 + +[HoldGhostArrow] +HoldingOnCommand=diffusealpha,1;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,.7");effectperiod,.1 +HoldingOffCommand=diffusealpha,0 +InitCommand=finishtweening;playcommand,"HoldingOff" + +[ReceptorArrow] +InitCommand=effectclock,"beat";diffuseramp;effectcolor1,color(".8,.8,.8,1");effectcolor2,color("1,1,1,1");effecttiming,.2,0,.8,0;effectoffset,.05 +NoneCommand=finishtweening;zoom,.85;diffusealpha,.9;linear,.11;diffusealpha,1;zoom,1 + +[ReceptorOverlay] +InitCommand=diffusealpha,0 +PressCommand=finishtweening;zoom,1;blend,"BlendMode_Add";diffusealpha,.8;decelerate,0.2;diffusealpha,0.4 +LiftCommand=stoptweening;decelerate,.2;diffusealpha,0;zoom,1.2 diff -Nru stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/NoteSkin.lua stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/NoteSkin.lua --- stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/NoteSkin.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/NoteSkin.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,79 @@ +local ret = ... or {}; + +ret.RedirTable = +{ + Up = "Down", + Down = "Down", + Left = "Down", + Right = "Down", + UpLeft = "Down", + UpRight = "Down", +}; + +local OldRedir = ret.Redir; + +ret.Redir = function(sButton, sElement) + sButton, sElement = OldRedir(sButton, sElement); + + --Point the head files back to the tap note + if string.find(sElement, "Head") or sElement == "Tap Fake" then + sElement = "Tap Note"; + end + + sButton = ret.RedirTable[sButton]; + + return sButton, sElement; +end + +local OldFunc = ret.Load; +function ret.Load() + local t = OldFunc(); + + -- The main "Explosion" part just loads other actors; don't rotate + -- it. The "Hold Explosion" part should not be rotated. + if Var "Element" == "Explosion" or + Var "Element" == "Roll Explosion" then + t.BaseRotationZ = nil; + end + return t; +end + +ret.PartsToRotate = +{ + ["Receptor"] = true, + ["Tap Note"] = true, + ["Tap Lift"] = true, + ["Tap Fake"] = true, + ["Ready Receptor"] = true, + ["Tap Explosion Bright"] = true, + ["Tap Explosion Dim"] = true, + ["Hold Explosion"] = true, + ["Roll Explosion"] = true, + ["Hold Head Active"] = true, + ["Hold Head Inactive"] = true, + ["Roll Head Active"] = true, + ["Roll Head Inactive"] = true +}; +ret.Rotate = +{ + Up = 180, + Down = 0, + Left = 90, + Right = -90, + UpLeft = 135, + UpRight = 225, +}; + +ret.Blank = +{ + ["Hold Topcap Active"] = true, + ["Hold Topcap Inactive"] = true, + ["Roll Topcap Active"] = true, + ["Roll Topcap Inactive"] = true, + ["Hold Tail Active"] = true, + ["Hold Tail Inactive"] = true, + ["Roll Tail Active"] = true, + ["Roll Tail Inactive"] = true, +}; + +return ret; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_receptor (res 64x64).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_receptor (res 64x64).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/lambda/_rflash (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/lambda/_rflash (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/midi-rainbow/_Down Tap Note 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/midi-rainbow/_Down Tap Note 4x4.png differ diff -Nru stepmania-5.0.12+dfsg/NoteSkins/dance/midi-rainbow/metrics.ini stepmania-5.1.0+dfsg/NoteSkins/dance/midi-rainbow/metrics.ini --- stepmania-5.0.12+dfsg/NoteSkins/dance/midi-rainbow/metrics.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/NoteSkins/dance/midi-rainbow/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +[Global] +FallbackNoteSkin=midi-solo + +[NoteDisplay] +TapNoteNoteColorType=ProgressAlternate Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/_Down Tap Note 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/_Down Tap Note 4x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/_Down Tap Note 8x8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/_Down Tap Note 8x8.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/Down Tap Note.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/Down Tap Note.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/Down Tap Note.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/Down Tap Note.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,6 @@ return Def.Sprite { Texture=NOTESKIN:GetPath( '_down', 'tap note' ); - Frames = Sprite.LinearFrames( 8, 1 ); + Frames = Sprite.LinearFrames( 4, 1 ); InitCommand=cmd(setstate,2); DrawTapNoteMessageCommand=function(self,parent) parent:spin(); diff -Nru stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/metrics.ini stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/metrics.ini --- stepmania-5.0.12+dfsg/NoteSkins/dance/midi-solo/metrics.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/NoteSkins/dance/midi-solo/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -3,6 +3,7 @@ [NoteDisplay] TapNoteAnimationIsVivid=0 +TapNoteNoteColorCount=4 DrawHoldHeadForTapsOnSameRow=0 TapNoteAnimationLength=4 TapAdditionAnimationLength=4 @@ -29,10 +30,10 @@ TopHoldAnchorWhenReverse=1 TapNoteNoteColorTextureCoordSpacingX=0 -TapNoteNoteColorTextureCoordSpacingY=0.125 +TapNoteNoteColorTextureCoordSpacingY=0.25 TapFakeNoteColorTextureCoordSpacingX=0 -TapFakeNoteColorTextureCoordSpacingY=0.125 +TapFakeNoteColorTextureCoordSpacingY=0.25 HoldHeadNoteColorTextureCoordSpacingX=0 HoldHeadNoteColorTextureCoordSpacingY=0 @@ -78,4 +79,4 @@ [ReceptorOverlay] InitCommand=diffusealpha,0;blend,"BlendMode_Add" PressCommand=finishtweening;zoom,1.1;decelerate,0.12;zoom,1;diffusealpha,0.6; -LiftCommand=finishtweening;accelerate,0.12;diffusealpha,0;zoom,1.2 \ No newline at end of file +LiftCommand=finishtweening;accelerate,0.12;diffusealpha,0;zoom,1.2 diff -Nru stepmania-5.0.12+dfsg/src/Actor.cpp stepmania-5.1.0+dfsg/src/Actor.cpp --- stepmania-5.0.12+dfsg/src/Actor.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Actor.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -258,6 +258,79 @@ #undef CPY } +Actor &Actor::operator=(Actor other) +{ + /* Don't copy an Actor in the middle of rendering. */ + ASSERT( other.m_pTempState == nullptr ); + m_pTempState = nullptr; + + using std::swap; +#define SWAP(x) swap(x, other.x) + SWAP( m_sName ); + SWAP( m_pParent ); + SWAP( m_FakeParent ); + SWAP( m_pLuaInstance ); + + SWAP( m_WrapperStates ); + + SWAP( m_baseRotation ); + SWAP( m_baseScale ); + SWAP( m_fBaseAlpha ); + SWAP( m_internalDiffuse ); + SWAP( m_internalGlow ); + + + SWAP( m_size ); + SWAP( m_current ); + SWAP( m_start ); + SWAP( m_Tweens ); + + SWAP( m_bFirstUpdate ); + + SWAP( m_fHorizAlign ); + SWAP( m_fVertAlign ); +#if defined(SSC_FUTURES) + SWAP( M_Effects ); +#else + SWAP( m_Effect ); +#endif + SWAP( m_fSecsIntoEffect ); + SWAP( m_fEffectDelta ); + SWAP(m_effect_ramp_to_half); + SWAP(m_effect_hold_at_half); + SWAP(m_effect_ramp_to_full); + SWAP(m_effect_hold_at_full); + SWAP(m_effect_hold_at_zero); + SWAP(m_effect_period); + SWAP( m_fEffectOffset ); + SWAP( m_EffectClock ); + + SWAP( m_effectColor1 ); + SWAP( m_effectColor2 ); + SWAP( m_vEffectMagnitude ); + + SWAP( m_bVisible ); + SWAP( m_fHibernateSecondsLeft ); + SWAP( m_fShadowLengthX ); + SWAP( m_fShadowLengthY ); + SWAP( m_ShadowColor ); + SWAP( m_bIsAnimating ); + SWAP( m_iDrawOrder ); + + SWAP( m_bTextureWrapping ); + SWAP( m_bTextureFiltering ); + SWAP( m_BlendMode ); + SWAP( m_bClearZBuffer ); + SWAP( m_ZTestMode ); + SWAP( m_bZWrite ); + SWAP( m_fZBias ); + SWAP( m_CullMode ); + + SWAP( m_mapNameToCommands ); +#undef SWAP + return *this; +} + /* XXX: This calls InitCommand, which must happen after all other * initialization (eg. ActorFrame loading children). However, it * also loads input variables, which should happen first. The @@ -425,17 +498,14 @@ // Somthing below may set m_pTempState to tempState m_pTempState = &m_current; - // set temporary drawing properties based on Effects - static TweenState tempState; - // todo: account for SSC_FUTURES -aj if( m_Effect == no_effect ) { } else { - m_pTempState = &tempState; - tempState = m_current; + m_pTempState= & m_current_with_effects; + m_current_with_effects= m_current; const float fTotalPeriod = GetEffectPeriod(); ASSERT( fTotalPeriod > 0 ); @@ -474,77 +544,77 @@ float fPercentBetweenColors = RageFastSin( (fPercentThroughEffect + 0.25f) * 2 * PI ) / 2 + 0.5f; ASSERT_M( fPercentBetweenColors >= 0 && fPercentBetweenColors <= 1, ssprintf("PercentBetweenColors: %f, PercentThroughEffect: %f", fPercentBetweenColors, fPercentThroughEffect) ); - float fOriginalAlpha = tempState.diffuse[0].a; + float fOriginalAlpha = m_current_with_effects.diffuse[0].a; // todo: account for SSC_FUTURES -aj switch( m_Effect ) { case diffuse_blink: - /* XXX: Should diffuse_blink and diffuse_shift multiply the tempState color? + /* XXX: Should diffuse_blink and diffuse_shift multiply the m_current_with_effects color? * (That would have the same effect with 1,1,1,1, and allow tweening the diffuse * while blinking and shifting.) */ for(int i=0; i 0 ) { - if( m_pTempState != &tempState ) + if( m_pTempState != &m_current_with_effects ) { - m_pTempState = &tempState; - tempState = m_current; + m_pTempState = &m_current_with_effects; + m_current_with_effects = m_current; } // Blend using Screen mode - tempState.glow = tempState.glow + m_internalGlow - m_internalGlow * tempState.glow; + m_current_with_effects.glow = m_current_with_effects.glow + m_internalGlow - m_internalGlow * m_current_with_effects.glow; } } diff -Nru stepmania-5.0.12+dfsg/src/Actor.h stepmania-5.1.0+dfsg/src/Actor.h --- stepmania-5.0.12+dfsg/src/Actor.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Actor.h 2018-01-25 05:01:07.000000000 +0000 @@ -111,6 +111,7 @@ * @brief Copy a new Actor to the old one. * @param cpy the new Actor to use in place of this one. */ Actor( const Actor &cpy ); + Actor &operator=( Actor other ); virtual ~Actor(); virtual Actor *Copy() const; virtual void InitState(); @@ -660,6 +661,7 @@ RageVector2 m_size; TweenState m_current; TweenState m_start; + TweenState m_current_with_effects; struct TweenStateAndInfo { TweenState state; diff -Nru stepmania-5.0.12+dfsg/src/arch/ArchHooks/ArchHooks_Unix.cpp stepmania-5.1.0+dfsg/src/arch/ArchHooks/ArchHooks_Unix.cpp --- stepmania-5.0.12+dfsg/src/arch/ArchHooks/ArchHooks_Unix.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/ArchHooks/ArchHooks_Unix.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -400,7 +400,7 @@ * Lowercase the PRODUCT_ID; dotfiles and directories are almost always lowercase. */ const char *szHome = getenv( "HOME" ); - RString sUserDataPath = ssprintf( "%s/.%s", szHome? szHome:".", "stepmania-5.0" ); //call an ambulance! + RString sUserDataPath = ssprintf( "%s/.%s", szHome? szHome:".", "stepmania-5.1" ); //call an ambulance! FILEMAN->Mount( "dir", sUserDataPath + "/Announcers", "/Announcers" ); FILEMAN->Mount( "dir", sUserDataPath + "/BGAnimations", "/BGAnimations" ); FILEMAN->Mount( "dir", sUserDataPath + "/BackgroundEffects", "/BackgroundEffects" ); diff -Nru stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInput.cpp stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInput.cpp --- stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInput.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInput.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -15,13 +15,128 @@ #include "InputHandler_DirectInputHelper.h" +#pragma comment(lib, "xinput.lib") + +#include +#include +#include + REGISTER_INPUT_HANDLER_CLASS2( DirectInput, DInput ); static vector Devices; +static vector XDevices; // Number of joysticks found: static int g_iNumJoysticks; +#define SAFE_RELEASE(p) { if ( (p) ) { (p)->Release(); (p) = 0; } } +static BOOL IsXInputDevice(const GUID* pGuidProductFromDirectInput) +{ + IWbemLocator* pIWbemLocator = NULL; + IEnumWbemClassObject* pEnumDevices = NULL; + IWbemClassObject* pDevices[20] = { 0 }; + IWbemServices* pIWbemServices = NULL; + BSTR bstrNamespace = NULL; + BSTR bstrDeviceID = NULL; + BSTR bstrClassName = NULL; + DWORD uReturned = 0; + bool bIsXinputDevice = false; + UINT iDevice = 0; + VARIANT var; + HRESULT hr; + + // CoInit if needed + hr = CoInitialize(NULL); + bool bCleanupCOM = SUCCEEDED(hr); + + // Create WMI + hr = CoCreateInstance(__uuidof(WbemLocator), + NULL, + CLSCTX_INPROC_SERVER, + __uuidof(IWbemLocator), + (LPVOID*)&pIWbemLocator); + if (FAILED(hr) || pIWbemLocator == NULL) + goto LCleanup; + + bstrNamespace = SysAllocString(L"\\\\.\\root\\cimv2"); if (bstrNamespace == NULL) goto LCleanup; + bstrClassName = SysAllocString(L"Win32_PNPEntity"); if (bstrClassName == NULL) goto LCleanup; + bstrDeviceID = SysAllocString(L"DeviceID"); if (bstrDeviceID == NULL) goto LCleanup; + + // Connect to WMI + hr = pIWbemLocator->ConnectServer(bstrNamespace, NULL, NULL, 0L, + 0L, NULL, NULL, &pIWbemServices); + if (FAILED(hr) || pIWbemServices == NULL) + goto LCleanup; + + // Switch security level to IMPERSONATE. + CoSetProxyBlanket(pIWbemServices, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, + RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE); + + hr = pIWbemServices->CreateInstanceEnum(bstrClassName, 0, NULL, &pEnumDevices); + if (FAILED(hr) || pEnumDevices == NULL) + goto LCleanup; + + // Loop over all devices + for (;; ) + { + // Get 20 at a time + hr = pEnumDevices->Next(10000, 20, pDevices, &uReturned); + if (FAILED(hr)) + goto LCleanup; + if (uReturned == 0) + break; + + for (iDevice = 0; iDeviceGet(bstrDeviceID, 0L, &var, NULL, NULL); + if (SUCCEEDED(hr) && var.vt == VT_BSTR && var.bstrVal != NULL) + { + // Check if the device ID contains "IG_". If it does, then it's an XInput device + // This information can not be found from DirectInput + if (wcsstr(var.bstrVal, L"IG_")) + { + // If it does, then get the VID/PID from var.bstrVal + DWORD dwPid = 0, dwVid = 0; + WCHAR* strVid = wcsstr(var.bstrVal, L"VID_"); + if (strVid && swscanf(strVid, L"VID_%4X", &dwVid) != 1) + dwVid = 0; + WCHAR* strPid = wcsstr(var.bstrVal, L"PID_"); + if (strPid && swscanf(strPid, L"PID_%4X", &dwPid) != 1) + dwPid = 0; + + // Compare the VID/PID to the DInput device + DWORD dwVidPid = MAKELONG(dwVid, dwPid); + if (dwVidPid == pGuidProductFromDirectInput->Data1) + { + bIsXinputDevice = true; + goto LCleanup; + } + } + } + SAFE_RELEASE(pDevices[iDevice]); + } + } + +LCleanup: + if (bstrNamespace) + SysFreeString(bstrNamespace); + if (bstrDeviceID) + SysFreeString(bstrDeviceID); + if (bstrClassName) + SysFreeString(bstrClassName); + for (iDevice = 0; iDevice<20; iDevice++) + SAFE_RELEASE(pDevices[iDevice]); + SAFE_RELEASE(pEnumDevices); + SAFE_RELEASE(pIWbemLocator); + SAFE_RELEASE(pIWbemServices); + + if (bCleanupCOM) + CoUninitialize(); + + return bIsXinputDevice; +} + static BOOL CALLBACK EnumDevicesCallback( const DIDEVICEINSTANCE *pdidInstance, void *pContext ) { DIDevice device; @@ -57,6 +172,9 @@ if( g_iNumJoysticks == NUM_JOYSTICKS ) return DIENUM_CONTINUE; + if( IsXInputDevice( &pdidInstance->guidProduct ) ) + return DIENUM_CONTINUE; + device.dev = enum_add2( DEVICE_JOY1, g_iNumJoysticks ); g_iNumJoysticks++; break; @@ -119,6 +237,25 @@ m_bShutdown = false; g_iNumJoysticks = 0; + // find xinput joysticks first + for( DWORD i = 0; i < XUSER_MAX_COUNT; i++ ) + { + XINPUT_STATE state; + ZeroMemory( &state, sizeof(XINPUT_STATE) ); + + if (XInputGetState(i, &state) == ERROR_SUCCESS) + { + XIDevice xdevice; + xdevice.m_sName = ssprintf("XInput Device %u", i + 1); + xdevice.dev = enum_add2( InputDevice::DEVICE_JOY1, g_iNumJoysticks ); + xdevice.m_dwXInputSlot = i; + g_iNumJoysticks++; + + XDevices.push_back(xdevice); + } + } + LOG->Info( "Found %u XInput devices.", XDevices.size() ); + AppInstance inst; HRESULT hr = DirectInput8Create(inst.Get(), DIRECTINPUT_VERSION, IID_IDirectInput8, (LPVOID *) &g_dinput, NULL); if( hr != DI_OK ) @@ -193,6 +330,8 @@ InputHandler_DInput::~InputHandler_DInput() { + XDevices.clear(); + ShutdownThread(); for( unsigned i = 0; i < Devices.size(); ++i ) @@ -624,6 +763,71 @@ } } +const short XINPUT_GAMEPAD_THUMB_MIN = MINSHORT; +const short XINPUT_GAMEPAD_THUMB_MAX = MAXSHORT; + +void InputHandler_DInput::UpdateXInput( XIDevice &device, const RageTimer &tm ) +{ + using std::max; + + XINPUT_STATE state; + ZeroMemory(&state, sizeof(XINPUT_STATE)); + if (XInputGetState(device.m_dwXInputSlot, &state) == ERROR_SUCCESS) + { + // map joysticks + float lx = 0.f; + float ly = 0.f; + if (sqrt(pow(state.Gamepad.sThumbLX, 2) + pow(state.Gamepad.sThumbLY, 2)) > XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE) + { + lx = SCALE(state.Gamepad.sThumbLX + 0.f, XINPUT_GAMEPAD_THUMB_MIN + 0.f, XINPUT_GAMEPAD_THUMB_MAX + 0.f, -1.0f, 1.0f); + ly = SCALE(state.Gamepad.sThumbLY + 0.f, XINPUT_GAMEPAD_THUMB_MIN + 0.f, XINPUT_GAMEPAD_THUMB_MAX + 0.f, -1.0f, 1.0f); + } + ButtonPressed(DeviceInput(device.dev, JOY_LEFT, max(-lx, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_RIGHT, max(+lx, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_UP, max(+ly, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_DOWN, max(-ly, 0.f), tm)); + + float rx = 0.f; + float ry = 0.f; + if (sqrt(pow(state.Gamepad.sThumbRX, 2) + pow(state.Gamepad.sThumbRY, 2)) > XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE) + { + rx = SCALE(state.Gamepad.sThumbRX + 0.f, XINPUT_GAMEPAD_THUMB_MIN + 0.f, XINPUT_GAMEPAD_THUMB_MAX + 0.f, -1.0f, 1.0f); + ry = SCALE(state.Gamepad.sThumbRY + 0.f, XINPUT_GAMEPAD_THUMB_MIN + 0.f, XINPUT_GAMEPAD_THUMB_MAX + 0.f, -1.0f, 1.0f); + } + ButtonPressed(DeviceInput(device.dev, JOY_LEFT_2, max(-rx, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_RIGHT_2, max(+rx, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_UP_2, max(+ry, 0.f), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_DOWN_2, max(-ry, 0.f), tm)); + + // map buttons + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_1, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_A), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_2, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_B), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_3, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_X), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_4, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_Y), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_5, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_START), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_6, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_7, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_8, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_9, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_10, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER), tm)); + + // map triggers to buttons + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_11, !!(state.Gamepad.bLeftTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_BUTTON_12, !!(state.Gamepad.bRightTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD), tm)); + + // map hat buttons + ButtonPressed(DeviceInput(device.dev, JOY_HAT_UP, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_HAT_DOWN, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_HAT_LEFT, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT), tm)); + ButtonPressed(DeviceInput(device.dev, JOY_HAT_RIGHT, !!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT), tm)); + } + else + { + INPUTFILTER->ResetDevice(device.dev); + return; + } +} + void InputHandler_DInput::PollAndAcquireDevices( bool bBuffered ) { @@ -655,6 +859,9 @@ if( !m_InputThread.IsCreated() ) PollAndAcquireDevices( true ); + for( unsigned i = 0; i < XDevices.size(); ++i ) + UpdateXInput( XDevices[i], RageZeroTimer ); + for( unsigned i = 0; i < Devices.size(); ++i ) { if( !Devices[i].buffered ) @@ -788,6 +995,9 @@ void InputHandler_DInput::GetDevicesAndDescriptions( vector& vDevicesOut ) { + for( unsigned i=0; i < XDevices.size(); ++i ) + vDevicesOut.push_back( InputDeviceInfo(XDevices[i].dev, XDevices[i].m_sName ) ); + for( unsigned i=0; i < Devices.size(); ++i ) vDevicesOut.push_back( InputDeviceInfo(Devices[i].dev, Devices[i].m_sName) ); } diff -Nru stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInput.h stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInput.h --- stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInput.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInput.h 2018-01-25 05:01:07.000000000 +0000 @@ -5,6 +5,7 @@ #include "RageThreads.h" struct DIDevice; +struct XIDevice; class InputHandler_DInput: public InputHandler { public: @@ -26,6 +27,7 @@ void UpdatePolled( DIDevice &device, const RageTimer &tm ); void UpdateBuffered( DIDevice &device, const RageTimer &tm ); + void UpdateXInput( XIDevice &device, const RageTimer &tm ); void PollAndAcquireDevices( bool bBuffered ); static int InputThread_Start( void *p ) { ((InputHandler_DInput *) p)->InputThreadMain(); return 0; } diff -Nru stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.cpp stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.cpp --- stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -401,6 +401,11 @@ return DIENUM_CONTINUE; } +XIDevice::XIDevice() +{ + dev = InputDevice_Invalid; +} + /* * (c) 2003-2011 Glenn Maynard, AJ Kelly * All rights reserved. diff -Nru stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.h stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.h --- stepmania-5.0.12+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/InputHandler/InputHandler_DirectInputHelper.h 2018-01-25 05:01:07.000000000 +0000 @@ -53,6 +53,15 @@ void Close(); }; +struct XIDevice +{ + std::string m_sName; + DWORD m_dwXInputSlot; + InputDevice dev; + + XIDevice(); +}; + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/arch/Lights/LightsDriver_LinuxMinimaid.cpp stepmania-5.1.0+dfsg/src/arch/Lights/LightsDriver_LinuxMinimaid.cpp --- stepmania-5.0.12+dfsg/src/arch/Lights/LightsDriver_LinuxMinimaid.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/Lights/LightsDriver_LinuxMinimaid.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -21,6 +21,10 @@ LightsDriver_LinuxMinimaid::~LightsDriver_LinuxMinimaid() { + if(_mmmagic_loaded) + { + mm_setDDRAllOff(); + } // libmmmagic is actually statically linked in, so there's no wrapper // destruction to do. -Kyz } diff -Nru stepmania-5.0.12+dfsg/src/arch/Lights/LightsDriver_Win32Minimaid.cpp stepmania-5.1.0+dfsg/src/arch/Lights/LightsDriver_Win32Minimaid.cpp --- stepmania-5.0.12+dfsg/src/arch/Lights/LightsDriver_Win32Minimaid.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/Lights/LightsDriver_Win32Minimaid.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -63,6 +63,7 @@ { if (_mmmagic_loaded) { + mm_setDDRAllOff(); FreeLibrary(hMMMAGICDLL); } } diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow.h stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow.h --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow.h 2018-01-25 05:01:07.000000000 +0000 @@ -3,9 +3,10 @@ #include -class DisplayResolution; -typedef set DisplayResolutions; +class DisplaySpec; +typedef std::set DisplaySpecs; class VideoModeParams; +class ActualVideoModeParams; class RenderTarget; struct RenderTargetParam; /** @brief Handle low-level operations that OGL 1.x doesn't give us. */ @@ -22,7 +23,7 @@ // bNewDeviceOut is set true if a new device was created and textures // need to be reloaded. virtual RString TryVideoMode( const VideoModeParams &p, bool &bNewDeviceOut ) = 0; - virtual void GetDisplayResolutions( DisplayResolutions &out ) const = 0; + virtual void GetDisplaySpecs(DisplaySpecs &out) const = 0; virtual void LogDebugInformation() const { } virtual bool IsSoftwareRenderer( RString & /* sError */ ) { return false; } @@ -30,11 +31,13 @@ virtual void SwapBuffers() = 0; virtual void Update() { } - virtual const VideoModeParams &GetActualVideoModeParams() const = 0; + virtual const ActualVideoModeParams GetActualVideoModeParams() const = 0; virtual bool SupportsRenderToTexture() const { return false; } virtual RenderTarget *CreateRenderTarget() { return NULL; } + virtual bool SupportsFullscreenBorderlessWindow() const { return false; }; + virtual bool SupportsThreadedRendering() { return false; } virtual void BeginConcurrentRenderingMainThread() { } virtual void EndConcurrentRenderingMainThread() { } diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.h stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.h --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.h 2018-01-25 05:01:07.000000000 +0000 @@ -22,12 +22,12 @@ ~LowLevelWindow_MacOSX(); void *GetProcAddress( RString s ); RString TryVideoMode( const VideoModeParams& p, bool& newDeviceOut ); - void GetDisplayResolutions( DisplayResolutions &dr ) const; + void GetDisplaySpecs( DisplaySpecs &specs ) const; void SwapBuffers(); void Update(); - const VideoModeParams &GetActualVideoModeParams() const { return m_CurrentParams; } + const ActualVideoModeParams GetActualVideoModeParams() const { return m_CurrentParams; } bool SupportsRenderToTexture() const { return true; } RenderTarget *CreateRenderTarget(); diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.mm stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.mm --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.mm 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_MacOSX.mm 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,6 @@ #import "global.h" #import "LowLevelWindow_MacOSX.h" -#import "DisplayResolutions.h" +#import "DisplaySpec.h" #import "RageUtil.h" #import "RageThreads.h" #import "RageDisplay_OGL_Helpers.h" @@ -109,7 +109,7 @@ - (void) setParams:(NSValue *)params { const VideoModeParams &p = *(const VideoModeParams *)[params pointerValue]; - NSRect contentRect = { { 0, 0 }, { p.width, p.height } }; + NSRect contentRect = { { 0, 0 }, { static_cast(p.width), static_cast(p.height) } }; [m_Window setContentSize:contentRect.size]; [m_Window setTitle:[NSString stringWithUTF8String:p.sWindowTitle.c_str()]]; @@ -564,28 +564,50 @@ return r && CFGetTypeID( r ) == CFBooleanGetTypeID() && CFBooleanGetValue( CFBooleanRef(r) ); } -void LowLevelWindow_MacOSX::GetDisplayResolutions( DisplayResolutions &dr ) const +static double GetDoubleValue( CFTypeRef r ) +{ + double ret; + + if( !r || CFGetTypeID(r) != CFNumberGetTypeID() || !CFNumberGetValue(CFNumberRef(r), kCFNumberDoubleType, &ret) ) + return 0; + return ret; +} + +static DisplayMode ConvertDisplayMode( CFDictionaryRef dict ) +{ + int width = GetIntValue( CFDictionaryGetValue(dict, kCGDisplayWidth) ); + int height = GetIntValue( CFDictionaryGetValue(dict, kCGDisplayHeight) ); + double rate = GetDoubleValue( CFDictionaryGetValue(dict, kCGDisplayRefreshRate) ); + + return { static_cast (width), static_cast (height), rate}; +} + +void LowLevelWindow_MacOSX::GetDisplaySpecs( DisplaySpecs &specs ) const { CFArrayRef modes = CGDisplayAvailableModes( kCGDirectMainDisplay ); ASSERT( modes ); const CFIndex count = CFArrayGetCount( modes ); - + + std::set available; + CFDictionaryRef currentModeDict = CGDisplayCurrentMode( kCGDirectMainDisplay ); + DisplayMode current = ConvertDisplayMode( currentModeDict ); + for( CFIndex i = 0; i < count; ++i ) { CFDictionaryRef dict = (CFDictionaryRef)CFArrayGetValueAtIndex( modes, i ); - int width = GetIntValue( CFDictionaryGetValue(dict, kCGDisplayWidth) ); - int height = GetIntValue( CFDictionaryGetValue(dict, kCGDisplayHeight) ); CFTypeRef safe = CFDictionaryGetValue( dict, kCGDisplayModeIsSafeForHardware ); - bool stretched = GetBoolValue( CFDictionaryGetValue(dict, kCGDisplayModeIsStretched) ); - - if( !width || !height ) + DisplayMode mode = ConvertDisplayMode( dict ); + + if( !mode.width || !mode.height ) continue; if( safe && !GetBoolValue( safe ) ) continue; - DisplayResolution res = { width, height, stretched }; - dr.insert( res ); + available.insert( mode ); } // Do not release modes! We don't own them here. + RectI bounds( 0, 0, current.width, current.height ); + DisplaySpec s( "", "Fullscreen", available, current, bounds ); + specs.insert( s ); } void LowLevelWindow_MacOSX::SwapBuffers() diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.cpp stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.cpp --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -59,9 +59,9 @@ GraphicsWindow::Shutdown(); } -void LowLevelWindow_Win32::GetDisplayResolutions( DisplayResolutions &out ) const +void LowLevelWindow_Win32::GetDisplaySpecs( DisplaySpecs &out ) const { - GraphicsWindow::GetDisplayResolutions( out ); + GraphicsWindow::GetDisplaySpecs( out ); } int ChooseWindowPixelFormat( const VideoModeParams &p, PIXELFORMATDESCRIPTOR *pixfmt ) @@ -292,7 +292,7 @@ GraphicsWindow::Update(); } -const VideoModeParams &LowLevelWindow_Win32::GetActualVideoModeParams() const +const ActualVideoModeParams LowLevelWindow_Win32::GetActualVideoModeParams() const { return GraphicsWindow::GetParams(); } diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.h stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.h --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_Win32.h 2018-01-25 05:01:07.000000000 +0000 @@ -10,7 +10,7 @@ ~LowLevelWindow_Win32(); void *GetProcAddress( RString s ); RString TryVideoMode( const VideoModeParams &p, bool &bNewDeviceOut ); - void GetDisplayResolutions( DisplayResolutions &out ) const; + void GetDisplaySpecs( DisplaySpecs &out ) const; bool IsSoftwareRenderer( RString &sError ); void SwapBuffers(); void Update(); @@ -20,7 +20,7 @@ virtual bool SupportsRenderToTexture() const { return true; } virtual RenderTarget *CreateRenderTarget(); - const VideoModeParams &GetActualVideoModeParams() const; + const ActualVideoModeParams GetActualVideoModeParams() const; }; #ifdef ARCH_LOW_LEVEL_WINDOW diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -5,31 +5,54 @@ #include "archutils/Unix/X11Helper.h" #include "PrefsManager.h" // XXX #include "RageDisplay.h" // VideoModeParams -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "LocalizedString.h" #include "RageDisplay_OGL_Helpers.h" using namespace RageDisplay_Legacy_Helpers; using namespace X11Helper; -#include +#include #include // ceil() +#include #define GLX_GLXEXT_PROTOTYPES #include // All sorts of stuff... #include #include #include +#if defined(HAVE_XINERAMA) +#include +#endif #if defined(HAVE_LIBXTST) #include #endif +// Display ID for treating the entire X screen as the display +const std::string ID_XSCREEN = "XSCREEN_RANDR"; + static GLXContext g_pContext = NULL; static GLXContext g_pBackgroundContext = NULL; static Window g_AltWindow = None; -static Rotation g_OldRotation; -static int g_iOldSize; -XRRScreenConfiguration *g_pScreenConfig = NULL; +static bool g_bChangedScreenSize = false; +static SizeID g_iOldSize = None; +static Rotation g_OldRotation = RR_Rotate_0; +static XRRScreenConfiguration *g_pScreenConfig = nullptr; +static RRMode g_originalRandRMode = None; +static RROutput g_usedCrtc = None; +static int g_iRandRVerMinor = 0; +static int g_iRandRVerMajor = 0; +static bool g_bUseXRandR12 = false; +static bool g_bUseXinerama = false; + +inline float calcRandRRefresh( unsigned long iPixelClock, int iHTotal, int iVTotal ) +{ + // Pixel Clock divided by total pixels in mode, + // not just those onscreen! + return ( iPixelClock ) / ( iHTotal * iVTotal ); +} + +bool NetWMSupported(Display *Dpy, Atom feature); static LocalizedString FAILED_CONNECTION_XSERVER( "LowLevelWindow_X11", "Failed to establish a connection with the X server" ); LowLevelWindow_X11::LowLevelWindow_X11() @@ -37,6 +60,18 @@ if( !OpenXConnection() ) RageException::Throw( "%s", FAILED_CONNECTION_XSERVER.GetValue().c_str() ); + if( XRRQueryVersion( Dpy, &g_iRandRVerMajor, &g_iRandRVerMinor ) && g_iRandRVerMajor >= 1 && g_iRandRVerMinor >= 2) g_bUseXRandR12 = true; +#ifdef HAVE_XINERAMA + int xinerama_event_base = 0; + int xinerama_error_base = 0; + Atom fullscreen_monitors = XInternAtom( Dpy, "_NET_WM_FULLSCREEN_MONITORS", False ); + if (XineramaQueryExtension( Dpy, &xinerama_event_base, &xinerama_error_base ) && + NetWMSupported( Dpy, fullscreen_monitors )) + { + g_bUseXinerama = true; + } +#endif + const int iScreen = DefaultScreen( Dpy ); int iXServerVersion = XVendorRelease( Dpy ); /* eg. 40201001 */ int iMajor = iXServerVersion / 10000000; iXServerVersion %= 10000000; @@ -50,7 +85,6 @@ LOG->Info( "Client GLX vendor: %s [%s]", glXGetClientString( Dpy, GLX_VENDOR ), glXGetClientString( Dpy, GLX_VERSION ) ); m_bWasWindowed = true; g_pScreenConfig = XRRGetScreenInfo( Dpy, RootWindow(Dpy, DefaultScreen(Dpy)) ); - g_iOldSize = XRRConfigCurrentConfiguration( g_pScreenConfig, &g_OldRotation ); } LowLevelWindow_X11::~LowLevelWindow_X11() @@ -58,8 +92,7 @@ // Reset the display if( !m_bWasWindowed ) { - XRRSetScreenConfig( Dpy, g_pScreenConfig, RootWindow(Dpy, DefaultScreen(Dpy)), g_iOldSize, g_OldRotation, CurrentTime ); - + RestoreOutputConfig(); XUngrabKeyboard( Dpy, CurrentTime ); } if( g_pContext ) @@ -72,9 +105,6 @@ glXDestroyContext( Dpy, g_pBackgroundContext ); g_pBackgroundContext = NULL; } - XRRFreeScreenConfigInfo( g_pScreenConfig ); - g_pScreenConfig = NULL; - XDestroyWindow( Dpy, Win ); Win = None; XDestroyWindow( Dpy, g_AltWindow ); @@ -82,6 +112,29 @@ CloseXConnection(); } +/* + * Restore saved X screen/CRTC configuration + */ +void LowLevelWindow_X11::RestoreOutputConfig() { + if (g_bChangedScreenSize) { + XRRSetScreenConfig(Dpy, g_pScreenConfig, RootWindow(Dpy, DefaultScreen(Dpy)), g_iOldSize, g_OldRotation, + CurrentTime); + } + if (g_usedCrtc != None) { + ASSERT(g_bUseXRandR12); + XRRScreenResources *res = XRRGetScreenResources(Dpy, Win); + XRRCrtcInfo *conf = XRRGetCrtcInfo(Dpy, res, g_usedCrtc); + XRRSetCrtcConfig(Dpy, res, g_usedCrtc, conf->timestamp, conf->x, conf->y, g_originalRandRMode, conf->rotation, + conf->outputs, conf->noutput); + XRRFreeScreenResources(res); + XRRFreeCrtcInfo(conf); + } + g_iOldSize = None; + g_bChangedScreenSize = false; + g_usedCrtc = None; + g_OldRotation = RR_Rotate_0; +} + void *LowLevelWindow_X11::GetProcAddress( RString s ) { // XXX: We should check whether glXGetProcAddress or @@ -92,19 +145,20 @@ RString LowLevelWindow_X11::TryVideoMode( const VideoModeParams &p, bool &bNewDeviceOut ) { -#if defined(UNIX) - /* nVidia cards: - * This only works the first time we set up a window; after that, the - * drivers appear to cache the value, so you have to actually restart - * the program to change it again. */ - static char buf[128]; - strcpy( buf, "__GL_SYNC_TO_VBLANK=" ); - strcat( buf, p.vsync?"1":"0" ); - putenv( buf ); -#endif + // We're going to be interested in MapNotify/ConfigureNotify events in this routine, + // so ensure our event mask includes these, restore it on exit + XWindowAttributes winAttrib; + auto restore = [&](XWindowAttributes *attr) { XSelectInput( Dpy, Win, attr->your_event_mask );}; + auto restoreAttrib = std::unique_ptr(&winAttrib, restore); + + // These might change if we're rendering at different resolution than window + int windowWidth = p.width; + int windowHeight = p.height; + bool renderOffscreen = false; if( g_pContext == NULL || p.bpp != CurrentParams.bpp || m_bWasWindowed != p.windowed ) { + bool bFirstRun = g_pContext == NULL; // Different depth, or we didn't make a window before. New context. bNewDeviceOut = true; @@ -156,128 +210,377 @@ glXMakeCurrent( Dpy, Win, g_pContext ); - // Map the window, ensuring we get the MapNotify event - XWindowAttributes winAttrib; XGetWindowAttributes( Dpy, Win, &winAttrib ); - XSelectInput( Dpy, Win, winAttrib.your_event_mask | StructureNotifyMask ); + XSelectInput( Dpy, Win, winAttrib.your_event_mask | StructureNotifyMask | PropertyChangeMask ); + XMapWindow( Dpy, Win ); - // Wait until we actually have a mapped window before trying to - // use it! - XEvent event; - do + XEvent ev; + do {XWindowEvent( Dpy, Win, StructureNotifyMask, &ev );} + while ( ev.type != MapNotify); + + // I can't find official docs saying what happens if you re-init GLEW. + // I'll just assume the behavior is undefined. + if(bFirstRun) { - XNextEvent( Dpy, &event ); - } while (event.type != MapNotify); - - // Set the event mask back to what it was - XSelectInput( Dpy, Win, winAttrib.your_event_mask ); + GLenum err = glewInit(); + ASSERT( err == GLEW_OK ); + } } else { // We're remodeling the existing window, and not touching the context. bNewDeviceOut = false; + + XGetWindowAttributes( Dpy, Win, &winAttrib ); + XSelectInput( Dpy, Win, winAttrib.your_event_mask | StructureNotifyMask | PropertyChangeMask ); + + if( !p.windowed ) + { + // X11 is an asynchronous beast. If we're resizing an existing + // window directly (i.e. override-redirect as opposed to asking the + // WM to do it) and don't wait for the window to actually be + // resized, we'll get unexpected results from glViewport() etc. I + // don't know why, or why it *doesn't* break in the slower process + // of waiting for the WM to resize the window. + + // So, set the event mask so we're notified when the window is resized... + // Send the resize command... + XResizeWindow( Dpy, Win, static_cast (p.width), static_cast (p.height) ); + + // We'll wait for the notification once we've done everything else, + // to save time. + } } + float rate = 60; // Will be unchanged if windowed. Not sure I care. + if( !p.windowed ) { - if( m_bWasWindowed ) - { + RestoreOutputConfig(); + + if (p.sDisplayId == ID_XSCREEN || p.sDisplayId.empty()) { // If the user changed the resolution while StepMania was windowed we overwrite the resolution to restore with it at exit. g_iOldSize = XRRConfigCurrentConfiguration( g_pScreenConfig, &g_OldRotation ); m_bWasWindowed = false; - } - // Find a matching mode. - int iSizesXct; - XRRScreenSize *pSizesX = XRRSizes( Dpy, DefaultScreen(Dpy), &iSizesXct ); - ASSERT_M( iSizesXct != 0, "Couldn't get resolution list from X server" ); + // Find a matching mode. + int iSizesXct; + XRRScreenSize *pSizesX = XRRSizes( Dpy, DefaultScreen(Dpy), &iSizesXct ); + ASSERT_M( iSizesXct != 0, "Couldn't get resolution list from X server" ); + + int iSizeMatch = -1; + + for (int i = 0; i < iSizesXct; ++i) { + if (pSizesX[i].width == p.width && pSizesX[i].height == p.height) { + iSizeMatch = i; + break; + } + } + if (iSizeMatch != g_iOldSize) { + g_bChangedScreenSize = true; + } - int iSizeMatch = -1; + // Set this mode. + // XXX: This doesn't handle if the config has changed since we queried it (see man Xrandr) + Status s = XRRSetScreenConfig( Dpy, g_pScreenConfig, RootWindow(Dpy, DefaultScreen(Dpy)), iSizeMatch, 1, CurrentTime ); + if (s) + { + return "Failed to set screen config"; + } - for( int i = 0; i < iSizesXct; ++i ) - { - if( pSizesX[i].width == p.width && pSizesX[i].height == p.height ) + XMoveWindow( Dpy, Win, 0, 0 ); + + XRaiseWindow( Dpy, Win ); + + // We want to prevent the WM from catching anything that comes from the keyboard. + // We should do this every time on fullscreen and not only we entering from windowed mode because we could lose focus at resolution change and that will leave the user input locked. + while (XGrabKeyboard( Dpy, Win, True, GrabModeAsync, GrabModeAsync, CurrentTime )); + + } else { + ASSERT(g_bUseXRandR12); + /* === Configuring a specific CRTC === */ + // Arcane and undocumented but PROPER XRandR 1.2 method. + // What we do is directly reconfigure the CRTC of the primary display, + // Which prevents the (RandR) screen itself from resizing, and therefore + // leaving user's desktop unmolested. + LOG->Info("LowLevelWindow_X11: Using XRandR"); + + XRRScreenResources *scrRes = XRRGetScreenResources(Dpy, Win); + ASSERT(scrRes != NULL); + ASSERT(scrRes->ncrtc > 0); + ASSERT(scrRes->noutput > 0); + ASSERT(scrRes->nmode > 0); + + // If an output name has been specified, search for it + RROutput targetOut = None; + if (p.sDisplayId.length() > 0) { + for (unsigned int i = 0; i < scrRes->noutput && targetOut == None; ++i) { + XRROutputInfo *outInfo = XRRGetOutputInfo(Dpy, scrRes, scrRes->outputs[i]); + std::string outName = std::string(outInfo->name, static_cast (outInfo->nameLen)); + if (p.sDisplayId == outName) { + targetOut = scrRes->outputs[i]; + } + XRRFreeOutputInfo(outInfo); + } + } + if (targetOut == None) { + LOG->Info("Did not find display output %s, trying another", p.sDisplayId.c_str()); + // didn't find named output, pick primary/or at least one that works + if (g_iRandRVerMajor >= 1 && g_iRandRVerMinor >= 3) { + // RandR 1.3 can tell us what the primary display is. + targetOut = XRRGetOutputPrimary(Dpy, Win); + } else { + // Only RandR 1.2. We'll look for a "Connected" output, or if we can't find that, + // (it is possible the connection state could be unknown), we'll at least + // look for an output with a CRTC driving it + RROutput connected = None, hasCrtc = None; + for (unsigned int i = 0; i < scrRes->noutput; ++i) { + XRROutputInfo *outInfo = XRRGetOutputInfo(Dpy, scrRes, scrRes->outputs[i]); + if (outInfo->connection == RR_Connected) { // Check for CONNECTED state: Connected == 0 + connected = scrRes->outputs[i]; + } + if (outInfo->crtc != None) { + hasCrtc = outInfo->crtc; + } + XRRFreeOutputInfo(outInfo); + } + targetOut = connected != None ? connected : hasCrtc; + ASSERT(targetOut != None); + } + } + + // if the target output is not currently being driven by a crtc, + // find an unused crtc that can be connected to it + XRROutputInfo *tgtOutInfo = XRRGetOutputInfo( Dpy, scrRes, targetOut ); + if (tgtOutInfo == NULL) { - iSizeMatch = i; - break; + XRRFreeScreenResources(scrRes); + return "Failed to find XRROutput"; } - } - // Set this mode. - // XXX: This doesn't handle if the config has changed since we queried it (see man Xrandr) - XRRSetScreenConfig( Dpy, g_pScreenConfig, RootWindow(Dpy, DefaultScreen(Dpy)), iSizeMatch, 1, CurrentTime ); + RRCrtc tgtOutCrtc = tgtOutInfo->crtc; + if (tgtOutCrtc == None) + { + for (unsigned int i = 0; i < tgtOutInfo->ncrtc; ++i) + { + XRRCrtcInfo *crtcInfo = XRRGetCrtcInfo( Dpy, scrRes, tgtOutInfo->crtcs[i] ); + if (crtcInfo->mode == None) + { + tgtOutCrtc = tgtOutInfo->crtcs[i]; + } + XRRFreeCrtcInfo( crtcInfo ); + } + } + ASSERT(tgtOutCrtc != None); + + + XRRCrtcInfo *oldConf = XRRGetCrtcInfo( Dpy, scrRes, tgtOutCrtc ); + + float fRefreshDiff = 99999; + float fRefreshRate = 0; + RRMode mode = None; + // A quirk of XRandR is that the width and height are as the display + // controller ("CRTC") sees it, which means height and width are + // flipped if there's rotation going on. + const bool bPortrait = (oldConf->rotation & (RR_Rotate_90 | RR_Rotate_270)) != 0; + // Find a mode that matches our exact wanted resolution, + // with as close to our desired refresh rate as possible. + for (int i = 0; i < scrRes->nmode; i++) { + const XRRModeInfo &thisMI = scrRes->modes[i]; + const unsigned int modeWidth = bPortrait ? thisMI.height : thisMI.width; + const unsigned int modeHeight = bPortrait ? thisMI.width : thisMI.height; + if (modeWidth == p.width && modeHeight == p.height) { + float fTempRefresh = calcRandRRefresh(thisMI.dotClock, thisMI.hTotal, thisMI.vTotal); + float fTempDiff = std::abs(p.rate - fTempRefresh); + if ((p.rate != REFRESH_DEFAULT && fTempDiff < fRefreshDiff) || + (p.rate == REFRESH_DEFAULT && fTempRefresh > fRefreshRate)) { + int j; + // Ensure that the output supports the mode + for (j = 0; j < tgtOutInfo->nmode; j++) + if (tgtOutInfo->modes[j] == scrRes->modes[i].id) { + mode = tgtOutInfo->modes[j]; + break; + } + + if (j < tgtOutInfo->nmode) { + fRefreshRate = fTempRefresh; + fRefreshDiff = fTempDiff; + } + } + } + } + rate = roundf(fRefreshRate); + + g_usedCrtc = tgtOutCrtc; + g_originalRandRMode = oldConf->mode; + + const std::string tgtOutName = std::string(tgtOutInfo->name, static_cast (tgtOutInfo->nameLen)); + LOG->Info("XRandR output config using CRTC %lu in mode %lu, driving output %s", + g_usedCrtc, mode, tgtOutName.c_str()); + // and FIRE! + Status s = XRRSetCrtcConfig(Dpy, scrRes, g_usedCrtc, oldConf->timestamp, oldConf->x, oldConf->y, mode, + oldConf->rotation, oldConf->outputs, oldConf->noutput); + if (s) { + XRRFreeCrtcInfo(oldConf); + XRRFreeOutputInfo(tgtOutInfo); + XRRFreeScreenResources(scrRes); + return "Failed to set CRTC config"; + } + + // We don't move to absolute 0,0 because that may be in the area of a different output. + // Instead we preserved the corner of our CRTC; go to that. + XMoveWindow(Dpy, Win, oldConf->x, oldConf->y); + + // Final cleanup + XRRFreeCrtcInfo(oldConf); + XRRFreeOutputInfo(tgtOutInfo); + XRRFreeScreenResources(scrRes); + } + m_bWasWindowed = false; XRaiseWindow( Dpy, Win ); // We want to prevent the WM from catching anything that comes from the keyboard. // We should do this every time on fullscreen and not only we entering from windowed mode because we could lose focus at resolution change and that will leave the user input locked. - XGrabKeyboard( Dpy, Win, True, GrabModeAsync, GrabModeAsync, CurrentTime ); + while (XGrabKeyboard( Dpy, Win, True, GrabModeAsync, GrabModeAsync, CurrentTime )); } - else + else // if(p.windowed) { if( !m_bWasWindowed ) { - XRRSetScreenConfig( Dpy, g_pScreenConfig, RootWindow(Dpy, DefaultScreen(Dpy)), g_iOldSize, g_OldRotation, CurrentTime ); - // In windowed mode, we actually want the WM to function normally. - // Release any previous grab. + // Return the display to the mode it was in before we fullscreened. + RestoreOutputConfig(); XUngrabKeyboard( Dpy, CurrentTime ); m_bWasWindowed = true; } + + Atom net_wm_state = XInternAtom( Dpy, "_NET_WM_STATE", False ); + Atom fullscreen_state = XInternAtom( Dpy, "_NET_WM_STATE_FULLSCREEN", False ); + Atom maximized_vert = XInternAtom( Dpy, "_NET_WM_STATE_MAXIMIZED_VERT", False ); + Atom maximized_horz = XInternAtom( Dpy, "_NET_WM_STATE_MAXIMIZED_HORZ", False ); + // if FSBW, find matching monitor, move window to its origin, + // then set fullscreen hint, and set the CurrentParams.outWidth, CurrentParams.outHeight to the values of that display + // otherwise set the size hints and disable MAXIMIZED_* + if (p.bWindowIsFullscreenBorderless) + { + auto specs = DisplaySpecs{}; + GetDisplaySpecs( specs ); + auto target = std::find_if( specs.begin(), specs.end(), [&]( const DisplaySpec &spec ) { + return p.sDisplayId == spec.id() && spec.currentMode() != nullptr; + } ); + // If we didn't find a matching DisplaySpec for the requested ID, pick the first one with a current mode + if (target == specs.end()) + { + target = std::find_if( specs.begin(), specs.end(), [&]( const DisplaySpec &spec ) { + return spec.currentMode() != nullptr; + } ); + } + // If we _still_ haven't found anything (unlikely), then just give up + if (target == specs.end()) + { + return "Unable to find destination monitor for fullscreen borderless"; + } + + windowWidth = target->currentMode()->width; + windowHeight = target->currentMode()->height; + + if (windowWidth != p.width || windowHeight != p.height) + { + renderOffscreen = true; + } + + // Reset anything that might've been set previously: + // (1) Undo Min/Max size bounds + // (2) Remove FULLSCREEN/MAXIMIZED_{HORIZ,VERT} hints + // Without doing this, WM may not let us move/resize window to new display + // Give Window manager the chance to react to changes (otherwise, Mutter had problems + // properly reacting to moving a _NET_WM_STATE_FULLSCREEN window to a different output + // and fullscreen resetting FULLSCREEN hint. + XSizeHints hints; + hints.flags = 0; + XSetWMNormalHints( Dpy, Win, &hints ); +#if defined(HAVE_XINERAMA) + if (!g_bUseXinerama || !SetWMFullscreenMonitors( *target )) +#endif + { + SetWMState( winAttrib.root, Win, 0, maximized_horz ); + SetWMState( winAttrib.root, Win, 0, maximized_vert ); + SetWMState( winAttrib.root, Win, 0, fullscreen_state ); + + XFlush( Dpy ); + XResizeWindow( Dpy, Win, static_cast (windowWidth), static_cast (windowHeight) ); + XMoveWindow( Dpy, Win, target->currentBounds().left, target->currentBounds().top ); + XRaiseWindow( Dpy, Win ); + + SetWMState( winAttrib.root, Win, 1, fullscreen_state ); + SetWMState( winAttrib.root, Win, 1, maximized_horz ); + SetWMState( winAttrib.root, Win, 1, maximized_vert ); + } + } else + { + windowWidth = p.width; + windowHeight = p.height; + + SetWMState( winAttrib.root, Win, 0, fullscreen_state ); + // Make a window fixed size, don't let resize it or maximize it. + // Do this before resizing the window so that pane-style WMs (Ion, + // ratpoison) don't resize us back inappropriately. + { + XSizeHints hints; + + hints.flags = PMinSize|PMaxSize|PWinGravity; + hints.min_width = hints.max_width = windowWidth; + hints.min_height = hints.max_height = windowHeight; + hints.win_gravity = CenterGravity; + + XSetWMNormalHints( Dpy, Win, &hints ); + } + /* Workaround for metacity and compiz: if the window have the same + * resolution or higher than the screen, it gets automaximized even + * when the window is set to not let it happen. This happens when + * changing from fullscreen to window mode and our screen resolution + * is bigger. */ + { + SetWMState( winAttrib.root, Win, 1, maximized_vert ); + SetWMState( winAttrib.root, Win, 1, maximized_horz ); + + // This one is needed for compiz, if the window reaches out of bounds of the screen it becames destroyed, only the window, the program is left running. + // Commented out per the patch at http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=398 + //XMoveWindow( Dpy, Win, 0, 0 ); + } + } + + } - // NOTE: nVidia's implementation of this is broken by default. - // The only ways around this are mucking with xorg.conf or querying - // nvidia-settings with "$ nvidia-settings -t -q RefreshRate". - int rate = XRRConfigCurrentRate( g_pScreenConfig ); - - // Make a window fixed size, don't let resize it or maximize it. - // Do this before resizing the window so that pane-style WMs (Ion, - // ratpoison) don't resize us back inappropriately. - { - XSizeHints hints; - - hints.flags = PMinSize|PMaxSize|PWinGravity; - hints.min_width = hints.max_width = p.width; - hints.min_height = hints.max_height = p.height; - hints.win_gravity = CenterGravity; - - XSetWMNormalHints( Dpy, Win, &hints ); - } - - /* Workaround for metacity and compiz: if the window have the same - * resolution or higher than the screen, it gets automaximized even - * when the window is set to not let it happen. This happens when - * changing from fullscreen to window mode and our screen resolution - * is bigger. */ - { - XEvent xev; - Atom wm_state = XInternAtom(Dpy, "_NET_WM_STATE", False); - Atom maximized_vert = XInternAtom(Dpy, "_NET_WM_STATE_MAXIMIZED_VERT", False); - Atom maximized_horz = XInternAtom(Dpy, "_NET_WM_STATE_MAXIMIZED_HORZ", False); - - memset(&xev, 0, sizeof(xev)); - xev.type = ClientMessage; - xev.xclient.window = Win; - xev.xclient.message_type = wm_state; - xev.xclient.format = 32; - xev.xclient.data.l[0] = 1; - xev.xclient.data.l[1] = maximized_vert; - xev.xclient.data.l[2] = 0; - - XSendEvent(Dpy, DefaultRootWindow(Dpy), False, SubstructureNotifyMask, &xev); - xev.xclient.data.l[1] = maximized_horz; - XSendEvent(Dpy, DefaultRootWindow(Dpy), False, SubstructureNotifyMask, &xev); - - // This one is needed for compiz, if the window reaches out of bounds of the screen it becames destroyed, only the window, the program is left running. - // Commented out per the patch at http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=398 - //XMoveWindow( Dpy, Win, 0, 0 ); + + CurrentParams = p; + CurrentParams.windowWidth = windowWidth; + CurrentParams.windowHeight = windowHeight; + CurrentParams.renderOffscreen = renderOffscreen; + ASSERT( rate > 0 ); + CurrentParams.rate = static_cast (roundf(rate)); + + if (!p.windowed) + { + // Set our V-sync hint. + if (GLXEW_EXT_swap_control) // I haven't seen this actually implemented yet, but why not. + glXSwapIntervalEXT( Dpy, Win, CurrentParams.vsync ? 1 : 0 ); + // XXX: These two might be server-global. I should look into whether + // to try to preserve the original value on exit. +#ifdef GLXEW_MESA_swap_control // Added in 1.7. 1.6 is still common out there apparently. + else if(GLXEW_MESA_swap_control) // Haven't seen this NOT implemented yet + glXSwapIntervalMESA( CurrentParams.vsync ? 1 : 0 ); +#endif + else if (GLXEW_SGI_swap_control) // But old GLEW. + glXSwapIntervalSGI( CurrentParams.vsync ? 1 : 0 ); + else + CurrentParams.vsync = false; // Assuming it's not on } - // Resize the window. - XResizeWindow( Dpy, Win, p.width, p.height ); - CurrentParams = p; - CurrentParams.rate = rate; + + return ""; // Success } @@ -332,16 +635,114 @@ } } -void LowLevelWindow_X11::GetDisplayResolutions( DisplayResolutions &out ) const -{ - int iSizesXct; - XRRScreenSize *pSizesX = XRRSizes( Dpy, DefaultScreen( Dpy ), &iSizesXct ); - ASSERT_M( iSizesXct != 0, "Couldn't get resolution list from X server" ); +void LowLevelWindow_X11::GetDisplaySpecs(DisplaySpecs &out) const { + int screenNum = DefaultScreen(Dpy); + Screen *screen = ScreenOfDisplay(Dpy, screenNum); + + XWindowAttributes winAttr = XWindowAttributes(); + if (XGetWindowAttributes(Dpy, Win, &winAttr)) { + screen = winAttr.screen; + screenNum = XScreenNumberOfScreen(screen); + } + + // Create a display spec for the entire X screen itself + // First get current config + Rotation curRotation; + XRRScreenConfiguration *screenConf = XRRGetScreenInfo(Dpy, Win); + const short curRate = XRRConfigCurrentRate(screenConf); + SizeID curSizeId = XRRConfigCurrentConfiguration(screenConf, &curRotation); + // curRotation does not factor into how we report supported XScreen sizes: + // XRR reports the supported *screen* sizes with height/width swapped appropriately + // for currently configured rotation. Supported sizes for *output* modes (below) + // DO NOT account for screen rotation + + std::set screenModes; + int nsizes = 0; + XRRScreenSize *screenSizes = XRRSizes( Dpy, screenNum, &nsizes); + DisplayMode screenCurMode = {0}; + for (unsigned int szIdx = 0, mode_idx = 0; szIdx < nsizes; ++szIdx) { + XRRScreenSize &size = screenSizes[szIdx]; + int nrates = 0; + short *rates = XRRRates(Dpy, screenNum, szIdx, &nrates); + for (unsigned int rIdx = 0; rIdx < nrates; ++rIdx, ++mode_idx) { + DisplayMode m = {static_cast (size.width), static_cast (size.height), static_cast (rates[rIdx])}; + screenModes.insert(m); + if (rates[rIdx] == curRate && szIdx == curSizeId) { + screenCurMode = m; + } + } + } + const RectI screenBounds( 0, 0, screenSizes[curSizeId].width, screenSizes[curSizeId].height); + const DisplaySpec screenSpec( ID_XSCREEN, "X Screen", screenModes, screenCurMode, screenBounds, true); + out.insert(screenSpec); + // XRRScreenSize array from XRRSizes does *not* have to be returned (valgrind said XFree was an invalid + // free in a small test program, there is no XRRFreeScreenSize, etc) + XRRFreeScreenConfigInfo(screenConf); + + if (g_bUseXRandR12) { + // Build per-output DisplaySpecs + + // First, get the list of resolutions that'll be referenced (by RRMode) in each + // OutputInfo + XRRScreenResources *scrRes = XRRGetScreenResources(Dpy, Win); + std::map outputModes; + for (unsigned int i = 0; i < scrRes->nmode; ++i) { + const XRRModeInfo &mode = scrRes->modes[i]; + DisplayMode m = {mode.width, mode.height, + calcRandRRefresh(mode.dotClock, mode.hTotal, mode.vTotal)}; + outputModes[mode.id] = m; + } - for( int i = 0; i < iSizesXct; ++i ) - { - DisplayResolution res = { pSizesX[i].width, pSizesX[i].height, true }; - out.insert( res ); + // Now, for each output, build a corresponding DisplaySpec + for (unsigned int outIdx = 0; outIdx < scrRes->noutput; ++outIdx) + { + XRROutputInfo *outInfo = XRRGetOutputInfo( Dpy, scrRes, scrRes->outputs[outIdx] ); + if (outInfo->nmode > 0) + { + // Get the current configuration of the Output, if it's being driven by + // a crtc + RRMode curRRMode = None; + bool bPortrait = false; + int crtcX = 0, crtcY = 0; + if (outInfo->crtc != None) + { + XRRCrtcInfo *conf = XRRGetCrtcInfo( Dpy, scrRes, outInfo->crtc ); + curRRMode = conf->mode; + bPortrait = (conf->rotation & (RR_Rotate_90 | RR_Rotate_270)) != 0; + crtcX = conf->x; + crtcY = conf->y; + XRRFreeCrtcInfo( conf ); + } + // Get all supported modes, noting which one, if any, is currently active + std::set outputSupported; + DisplayMode outputCurMode = {0}; + RectI outBounds; + for (unsigned int modeIdx = 0; modeIdx < outInfo->nmode; ++modeIdx) + { + DisplayMode mode = outputModes[outInfo->modes[modeIdx]]; + unsigned int modeWidth = bPortrait ? mode.height : mode.width; + unsigned int modeHeight = bPortrait ? mode.width : mode.height; + DisplayMode m = {modeWidth, modeHeight, mode.refreshRate}; + outputSupported.insert( m ); + if (curRRMode != None && outInfo->modes[modeIdx] == curRRMode) + { + outputCurMode = m; + outBounds = RectI( crtcX, crtcY, crtcX + modeWidth, crtcY + modeHeight); + } + } + const std::string outId( outInfo->name, static_cast (outInfo->nameLen) ); + const std::string outName( outId ); + if (curRRMode != None) + { + out.insert( DisplaySpec( outId, outName, outputSupported, outputCurMode, outBounds )); + } else + { + out.insert( DisplaySpec( outId, outName, outputSupported )); + } + } + XRRFreeOutputInfo( outInfo ); + } + XRRFreeScreenResources( scrRes ); } } @@ -512,6 +913,34 @@ return true; } +bool NetWMSupported(Display *Dpy, Atom feature) +{ + Atom net_supported = XInternAtom( Dpy, "_NET_SUPPORTED", False ); + Atom actual_type_return = BadAtom; + int actual_format_return = 0; + unsigned long nitems_return = 0; + unsigned long bytes_after_return = 0; + Atom *prop_return; + Status status = XGetWindowProperty( Dpy, RootWindow( Dpy, DefaultScreen( Dpy )), net_supported, 0, 8192, False, + XA_ATOM, &actual_type_return, + &actual_format_return, &nitems_return, &bytes_after_return, + reinterpret_cast (&prop_return)); + if (status != Success) + { + return false; + } + + auto supported = std::find( prop_return, prop_return + nitems_return, feature ) != prop_return + nitems_return; + XFree( prop_return ); + return supported; +} + +bool LowLevelWindow_X11::SupportsFullscreenBorderlessWindow() const +{ + Atom fullscreen = XInternAtom( Dpy, "_NET_WM_STATE_FULLSCREEN", False ); + return NetWMSupported( Dpy, fullscreen ); +} + RenderTarget *LowLevelWindow_X11::CreateRenderTarget() { return new RenderTarget_X11( this ); diff -Nru stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.h stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.h --- stepmania-5.0.12+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/LowLevelWindow/LowLevelWindow_X11.h 2018-01-25 05:01:07.000000000 +0000 @@ -18,13 +18,15 @@ bool IsSoftwareRenderer( RString &sError ); void SwapBuffers(); - const VideoModeParams &GetActualVideoModeParams() const { return CurrentParams; } + const ActualVideoModeParams GetActualVideoModeParams() const { return CurrentParams; } - void GetDisplayResolutions( DisplayResolutions &out ) const; + void GetDisplaySpecs(DisplaySpecs &out) const; bool SupportsRenderToTexture() const; RenderTarget *CreateRenderTarget(); + bool SupportsFullscreenBorderlessWindow() const; + bool SupportsThreadedRendering(); void BeginConcurrentRenderingMainThread(); void EndConcurrentRenderingMainThread(); @@ -32,8 +34,10 @@ void EndConcurrentRendering(); private: + void RestoreOutputConfig(); + bool m_bWasWindowed; - VideoModeParams CurrentParams; + ActualVideoModeParams CurrentParams; }; #ifdef ARCH_LOW_LEVEL_WINDOW diff -Nru stepmania-5.0.12+dfsg/src/arch/Sound/DSoundHelpers.cpp stepmania-5.1.0+dfsg/src/arch/Sound/DSoundHelpers.cpp --- stepmania-5.0.12+dfsg/src/arch/Sound/DSoundHelpers.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/Sound/DSoundHelpers.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -210,7 +210,15 @@ DSBUFFERDESC format; memset( &format, 0, sizeof(format) ); format.dwSize = sizeof(format); - format.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLVOLUME; + + if (at_least_vista()) + { + format.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLVOLUME | DSBCAPS_TRUEPLAYPOSITION; + } + else + { + format.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLVOLUME; + } /* Don't use DSBCAPS_STATIC. It's meant for static buffers, and we * only use streaming buffers. */ diff -Nru stepmania-5.0.12+dfsg/src/arch/Threads/Threads_Pthreads.cpp stepmania-5.1.0+dfsg/src/arch/Threads/Threads_Pthreads.cpp --- stepmania-5.0.12+dfsg/src/arch/Threads/Threads_Pthreads.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/arch/Threads/Threads_Pthreads.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -208,10 +208,11 @@ #if defined(UNIX) #include #include "arch/ArchHooks/ArchHooks_Unix.h" -#elif defined(MACOSX) -typedef int clockid_t; -static const clockid_t CLOCK_REALTIME = 0; -static const clockid_t CLOCK_MONOTONIC = 1; +// commented out to allow comilation on macOS 10.12. -dguzek +//#elif defined(MACOSX) +//typedef int clockid_t; +//static const clockid_t CLOCK_REALTIME = 0; +//static const clockid_t CLOCK_MONOTONIC = 1; #endif // On MinGW clockid_t is defined in pthread.h namespace { diff -Nru stepmania-5.0.12+dfsg/src/archutils/Darwin/arch_setup.h stepmania-5.1.0+dfsg/src/archutils/Darwin/arch_setup.h --- stepmania-5.0.12+dfsg/src/archutils/Darwin/arch_setup.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Darwin/arch_setup.h 2018-01-25 05:01:07.000000000 +0000 @@ -5,7 +5,6 @@ extern "C" int sm_main( int argc, char *argv[] ); #define HAVE_CXA_DEMANGLE -#define HAVE_PTHREAD_COND_TIMEDWAIT /* This must be defined to 1 because autoconf's AC_CHECK_DECLS macro decides to define * this in all cases. If only they could be consistent... */ #define HAVE_DECL_SIGUSR1 1 diff -Nru stepmania-5.0.12+dfsg/src/archutils/Darwin/SMMain.mm stepmania-5.1.0+dfsg/src/archutils/Darwin/SMMain.mm --- stepmania-5.0.12+dfsg/src/archutils/Darwin/SMMain.mm 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Darwin/SMMain.mm 2018-01-25 05:01:07.000000000 +0000 @@ -23,7 +23,8 @@ @implementation SMApplication - (void)fullscreen:(id)sender { - ArchHooks::SetToggleWindowed(); + // don't use ArchHooks::SetToggleWindowed(), it makes the screen black + [[self mainWindow] toggleFullScreen:nil]; } - (void)sendEvent:(NSEvent *)event @@ -216,7 +217,7 @@ // Create SMMain and make it the app delegate. sm = [[SMMain alloc] initWithArgc:argc argv:argv]; - [NSApp setDelegate:sm]; + [NSApp setDelegate:static_cast>(sm)]; [pool release]; // Start the main event loop. diff -Nru stepmania-5.0.12+dfsg/src/archutils/Unix/X11Helper.cpp stepmania-5.1.0+dfsg/src/archutils/Unix/X11Helper.cpp --- stepmania-5.0.12+dfsg/src/archutils/Unix/X11Helper.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Unix/X11Helper.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -129,6 +129,23 @@ return true; } +void X11Helper::SetWMState( const Window &root, const Window &win, const long action, const Atom atom ) +{ + if ( !Dpy ) + return; + Atom wm_state = XInternAtom(Dpy, "_NET_WM_STATE", False); + XEvent xev; + memset( &xev, 0, sizeof( xev )); + xev.type = ClientMessage; + xev.xclient.window = Win; + xev.xclient.message_type = wm_state; + xev.xclient.format = 32; + xev.xclient.data.l[0] = action; // 0 = Remove, 1 = Add, 2 = Toggle + xev.xclient.data.l[1] = atom; + xev.xclient.data.l[2] = 0; // end list of Atoms + XSendEvent( Dpy, root, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev ); +} + int ErrorCallback( Display *d, XErrorEvent *err ) { char errText[512]; @@ -144,6 +161,85 @@ RageException::Throw( "Fatal I/O error communicating with X server." ); } +#ifdef HAVE_XINERAMA +#include + +bool X11Helper::SetWMFullscreenMonitors( const DisplaySpec &target ) +{ + int num_screens = 0; + XineramaScreenInfo *screens = XineramaQueryScreens( Dpy, &num_screens ); + if (screens == nullptr) + { + return false; + } + + XineramaScreenInfo *end = screens + num_screens; + RectI monitors{}; + bool found_bounds = false; + + if (target.isVirtual()) + { + auto topmost = std::min_element( screens, end, []( XineramaScreenInfo &a, XineramaScreenInfo &b ) { + return a.y_org < b.y_org; + } ); + monitors.top = topmost->screen_number; + + auto bottommost = std::max_element( screens, end, []( XineramaScreenInfo &a, XineramaScreenInfo &b ) { + return a.y_org < b.y_org; + } ); + monitors.bottom = bottommost->screen_number; + + auto leftmost = std::min_element( screens, end, []( XineramaScreenInfo &a, XineramaScreenInfo &b ) { + return a.x_org < b.x_org; + } ); + monitors.left = leftmost->screen_number; + + auto rightmost = std::max_element( screens, end, []( XineramaScreenInfo &a, XineramaScreenInfo &b ) { + return a.x_org < b.x_org; + } ); + monitors.right = rightmost->screen_number; + found_bounds = true; + } + else if (target.currentMode() != nullptr) + { + auto mon = std::find_if( screens, end, [&]( XineramaScreenInfo &screen ) { + return screen.x_org == target.currentBounds().left && screen.y_org == target.currentBounds().top + && screen.width == target.currentMode()->width && screen.height == target.currentMode()->height; + } ); + if (mon != end) + { + monitors.left = monitors.right = monitors.top = monitors.bottom = mon->screen_number; + found_bounds = true; + } + } + + XFree( screens ); + XWindowAttributes attr = {0}; + if (!found_bounds || !XGetWindowAttributes( Dpy, Win, &attr )) + { + return false; + } + + SetWMState( attr.root, Win, 1, XInternAtom( Dpy, "_NET_WM_STATE_FULLSCREEN", False )); + + XClientMessageEvent xclient = {0}; + xclient.type = ClientMessage; + xclient.window = Win; + xclient.message_type = XInternAtom( Dpy, "_NET_WM_FULLSCREEN_MONITORS", False ); + xclient.format = 32; + xclient.data.l[0] = monitors.top; + xclient.data.l[1] = monitors.bottom; + xclient.data.l[2] = monitors.left; + xclient.data.l[3] = monitors.right; + xclient.data.l[4] = 1; + XSendEvent( Dpy, attr.root, False, SubstructureRedirectMask | SubstructureNotifyMask, + reinterpret_cast (&xclient)); + XFlush( Dpy ); + + return true; +} +#endif + /* * (c) 2005, 2006 Ben Anderson, Steve Checkoway * All rights reserved. diff -Nru stepmania-5.0.12+dfsg/src/archutils/Unix/X11Helper.h stepmania-5.1.0+dfsg/src/archutils/Unix/X11Helper.h --- stepmania-5.0.12+dfsg/src/archutils/Unix/X11Helper.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Unix/X11Helper.h 2018-01-25 05:01:07.000000000 +0000 @@ -4,6 +4,8 @@ #include // Window #include +#include + namespace X11Helper { // All functions in here that return a bool return true on success, and @@ -25,6 +27,12 @@ // (Re)create the Window win. bool MakeWindow( Window &win, int screenNum, int depth, Visual *visual, int width, int height, bool overrideRedirect ); + + void SetWMState( const Window &root, const Window &win, const long action, const Atom atom ); + +#ifdef HAVE_XINERAMA + bool SetWMFullscreenMonitors( const DisplaySpec &target ); +#endif }; #endif diff -Nru stepmania-5.0.12+dfsg/src/archutils/Win32/DirectXHelpers.h stepmania-5.1.0+dfsg/src/archutils/Win32/DirectXHelpers.h --- stepmania-5.0.12+dfsg/src/archutils/Win32/DirectXHelpers.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Win32/DirectXHelpers.h 2018-01-25 05:01:07.000000000 +0000 @@ -1,8 +1,27 @@ #ifndef DIRECTX_HELPERS_H #define DIRECTX_HELPERS_H +#include "windows.h" RString hr_ssprintf( int hr, const char *fmt, ... ); +//Keep XP on life support +static bool at_least_vista() +{ +OSVERSIONINFOEXW osvi = { sizeof(osvi), 0, 0, 0, 0, { 0 }, 0, 0 }; +DWORDLONG const dwlConditionMask = VerSetConditionMask( + VerSetConditionMask( + VerSetConditionMask( + 0, VER_MAJORVERSION, VER_GREATER_EQUAL), + VER_MINORVERSION, VER_GREATER_EQUAL), + VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL); + +osvi.dwMajorVersion = 0x0600; +osvi.dwMinorVersion = 0x0; +osvi.wServicePackMajor = 0; + +return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != false; +} + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/archutils/Win32/GraphicsWindow.cpp stepmania-5.1.0+dfsg/src/archutils/Win32/GraphicsWindow.cpp --- stepmania-5.0.12+dfsg/src/archutils/Win32/GraphicsWindow.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Win32/GraphicsWindow.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -4,7 +4,7 @@ #include "RageLog.h" #include "RageUtil.h" #include "RageDisplay.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "arch/ArchHooks/ArchHooks.h" #include "archutils/Win32/AppInstance.h" #include "archutils/Win32/Crash.h" @@ -12,6 +12,7 @@ #include "archutils/Win32/WindowIcon.h" #include "archutils/Win32/GetFileInformation.h" #include "CommandLineActions.h" +#include "DirectXHelpers.h" #include @@ -415,6 +416,19 @@ // A few things need to be handled differently for D3D. g_bD3D = bD3D; + //keeping xp on life support -- check for vista+ for dwm + if (at_least_vista()) + { + hInstanceDwmapi = LoadLibraryA("dwmapi.dll"); + } + + //if we have dwm, get function pointers to the dll functions + if( hInstanceDwmapi != NULL ) + { + PFN_DwmFlush = (HRESULT (WINAPI *)(VOID))GetProcAddress( hInstanceDwmapi, "DwmFlush" ); + PFN_DwmIsCompositionEnabled = (HRESULT (WINAPI *)(BOOL*))GetProcAddress( hInstanceDwmapi, "DwmIsCompositionEnabled" ); + } + AppInstance inst; do { @@ -495,6 +509,20 @@ HOOKS->SetHasFocus( g_bHasFocus ); + if (g_CurrentParams.vsync) + { + //if we can use DWM + if( hInstanceDwmapi != NULL ) + { + BOOL compositeEnabled = true; + PFN_DwmIsCompositionEnabled(&compositeEnabled); + if (compositeEnabled) + { + PFN_DwmFlush(); + } + } + } + if( g_bResolutionChanged && DISPLAY != NULL ) { //LOG->Warn( "Changing resolution" ); @@ -511,29 +539,53 @@ return g_hWndMain; } -void GraphicsWindow::GetDisplayResolutions( DisplayResolutions &out ) +void GraphicsWindow::GetDisplaySpecs( DisplaySpecs &out ) { - DEVMODE dm; - ZERO( dm ); - dm.dmSize = sizeof(dm); - int i=0; - while(EnumDisplaySettings(NULL, i++, &dm)) - { + const size_t DM_DRIVER_EXTRA_BYTES = 4096; + const size_t DMSIZE = sizeof( DEVMODE ) + DM_DRIVER_EXTRA_BYTES; + auto reset = [=]( std::unique_ptr &p ) { + ::memset( p.get(), 0, DMSIZE ); + p->dmSize = sizeof( DEVMODE ); + p->dmDriverExtra = static_cast (DM_DRIVER_EXTRA_BYTES); + }; + auto isvalid = []( std::unique_ptr &dm ) { // Windows 8 and later don't support less than 32bpp, so don't even test - // for them. GetDisplayResolutions is only for resolutions anyway. -Kyz - if(dm.dmBitsPerPel < 32) + // for them. GetDisplaySpecs only tracks resolution/refresh rate anyway. -Kyz, drewbarbs + return (dm->dmFields & DM_PELSWIDTH) && (dm->dmFields & DM_PELSHEIGHT) && (dm->dmFields & DM_DISPLAYFREQUENCY) + && (dm->dmBitsPerPel >= 32 || !(dm->dmFields & DM_BITSPERPEL)); + }; + + std::unique_ptr dm( static_cast (operator new(DMSIZE)) ); + reset( dm ); + + int i = 0; + std::set modes; + while ( EnumDisplaySettingsEx( nullptr, i++, dm.get(), 0 ) ) + { + if ( isvalid( dm ) && ChangeDisplaySettingsEx( nullptr, dm.get(), nullptr, CDS_TEST, nullptr ) == DISP_CHANGE_SUCCESSFUL ) { - continue; - } - DisplayResolution res = { dm.dmPelsWidth, dm.dmPelsHeight }; - std::set::iterator entry= out.find(res); - if(entry == out.end()) - { - if(ChangeDisplaySettings(&dm, CDS_TEST)==DISP_CHANGE_SUCCESSFUL) - { - out.insert(res); - } + DisplayMode m = { dm->dmPelsWidth, dm->dmPelsHeight, static_cast (dm->dmDisplayFrequency) }; + modes.insert(m); } + reset( dm ); + } + + reset( dm ); + // Get the current display mode + if ( EnumDisplaySettingsEx( nullptr, ENUM_CURRENT_SETTINGS, dm.get(), 0 ) && isvalid( dm ) ) + { + DisplayMode m = { dm->dmPelsWidth, dm->dmPelsHeight, static_cast (dm->dmDisplayFrequency) }; + RectI bounds = { 0, 0, static_cast (m.width), static_cast (m.height) }; + out.insert( DisplaySpec( "", "Fullscreen", modes, m, bounds ) ); + } + else if ( !modes.empty() ) + { + LOG->Warn( "Could not retrieve valid current display mode" ); + out.insert( DisplaySpec( "", "Fullscreen", *modes.begin() ) ); + } + else + { + LOG->Warn( "Could not retrieve *any* DisplaySpec's!" ); } } diff -Nru stepmania-5.0.12+dfsg/src/archutils/Win32/GraphicsWindow.h stepmania-5.1.0+dfsg/src/archutils/Win32/GraphicsWindow.h --- stepmania-5.0.12+dfsg/src/archutils/Win32/GraphicsWindow.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/archutils/Win32/GraphicsWindow.h 2018-01-25 05:01:07.000000000 +0000 @@ -2,7 +2,7 @@ #define GRAPHICS_WINDOW_H #include -#include "DisplayResolutions.h" +#include "DisplaySpec.h" class VideoModeParams; class DisplayResolution; @@ -28,13 +28,18 @@ void CreateGraphicsWindow( const VideoModeParams &p, bool bForceRecreateWindow = false ); void DestroyGraphicsWindow(); - void GetDisplayResolutions( DisplayResolutions &out ); + void GetDisplaySpecs( DisplaySpecs &out ); const VideoModeParams &GetParams(); HDC GetHDC(); void Update(); HWND GetHwnd(); + + //dwm functions for vista+ + static HINSTANCE hInstanceDwmapi = NULL; + static HRESULT(WINAPI* PFN_DwmIsCompositionEnabled)(BOOL*); + static HRESULT (WINAPI* PFN_DwmFlush)(VOID); }; #endif diff -Nru stepmania-5.0.12+dfsg/src/ArrowEffects.cpp stepmania-5.1.0+dfsg/src/ArrowEffects.cpp --- stepmania-5.0.12+dfsg/src/ArrowEffects.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ArrowEffects.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -14,9 +14,10 @@ #include "ThemeMetric.h" #include +static char const dimension_names[4]= "XYZ"; + static ThemeMetric ARROW_SPACING( "ArrowEffects", "ArrowSpacing" ); static ThemeMetric QUANTIZE_ARROW_Y( "ArrowEffects", "QuantizeArrowYPosition"); -static ThemeMetric HIDDEN_SUDDEN_PAST_RECEPTOR( "ArrowEffects", "DrawHiddenNotesAfterReceptor"); /* For better or for worse, allow the themes to modify the various mod * effects for the different mods. In general, it is recommended to not @@ -46,44 +47,267 @@ static ThemeMetric TIPSY_OFFSET_TIMER_FREQUENCY( "ArrowEffects", "TipsyOffsetTimerFrequency" ); static ThemeMetric TIPSY_OFFSET_COLUMN_FREQUENCY( "ArrowEffects", "TipsyOffsetColumnFrequency" ); static ThemeMetric TIPSY_OFFSET_ARROW_MAGNITUDE( "ArrowEffects", "TipsyOffsetArrowMagnitude" ); -static ThemeMetric TORNADO_POSITION_SCALE_TO_LOW( "ArrowEffects", "TornadoPositionScaleToLow" ); -static ThemeMetric TORNADO_POSITION_SCALE_TO_HIGH( "ArrowEffects", "TornadoPositionScaleToHigh" ); -static ThemeMetric TORNADO_OFFSET_FREQUENCY( "ArrowEffects", "TornadoOffsetFrequency" ); -static ThemeMetric TORNADO_OFFSET_SCALE_FROM_LOW( "ArrowEffects", "TornadoOffsetScaleFromLow" ); -static ThemeMetric TORNADO_OFFSET_SCALE_FROM_HIGH( "ArrowEffects", "TornadoOffsetScaleFromHigh" ); + +static RString TPSTL_NAME(size_t i) { return ssprintf("Tornado%cPositionScaleToLow", dimension_names[i]); } +static ThemeMetric1D TORNADO_POSITION_SCALE_TO_LOW("ArrowEffects", TPSTL_NAME, 3); +static RString TPSTH_NAME(size_t i) { return ssprintf("Tornado%cPositionScaleToHigh", dimension_names[i]); } +static ThemeMetric1D TORNADO_POSITION_SCALE_TO_HIGH("ArrowEffects", TPSTH_NAME, 3); +static RString TOF_NAME(size_t i) { return ssprintf("Tornado%cOffsetFrequency", dimension_names[i]); } +static ThemeMetric1D TORNADO_OFFSET_FREQUENCY("ArrowEffects", TOF_NAME, 3); +static RString TOSFL_NAME(size_t i) { return ssprintf("Tornado%cOffsetScaleFromLow", dimension_names[i]); } +static ThemeMetric1D TORNADO_OFFSET_SCALE_FROM_LOW("ArrowEffects", TOSFL_NAME, 3); +static RString TOSFH_NAME(size_t i) { return ssprintf("Tornado%cOffsetScaleFromHigh", dimension_names[i]); } +static ThemeMetric1D TORNADO_OFFSET_SCALE_FROM_HIGH("ArrowEffects", TOSFH_NAME, 3); + static ThemeMetric DRUNK_COLUMN_FREQUENCY( "ArrowEffects", "DrunkColumnFrequency" ); static ThemeMetric DRUNK_OFFSET_FREQUENCY( "ArrowEffects", "DrunkOffsetFrequency" ); static ThemeMetric DRUNK_ARROW_MAGNITUDE( "ArrowEffects", "DrunkArrowMagnitude" ); + +static ThemeMetric DRUNK_Z_COLUMN_FREQUENCY( "ArrowEffects", "DrunkZColumnFrequency" ); +static ThemeMetric DRUNK_Z_OFFSET_FREQUENCY( "ArrowEffects", "DrunkZOffsetFrequency" ); +static ThemeMetric DRUNK_Z_ARROW_MAGNITUDE( "ArrowEffects", "DrunkZArrowMagnitude" ); + static ThemeMetric BEAT_OFFSET_HEIGHT( "ArrowEffects", "BeatOffsetHeight" ); static ThemeMetric BEAT_PI_HEIGHT( "ArrowEffects", "BeatPIHeight" ); + +static ThemeMetric BEAT_Y_OFFSET_HEIGHT( "ArrowEffects", "BeatYOffsetHeight" ); +static ThemeMetric BEAT_Y_PI_HEIGHT( "ArrowEffects", "BeatYPIHeight" ); +static ThemeMetric BEAT_Z_OFFSET_HEIGHT( "ArrowEffects", "BeatZOffsetHeight" ); +static ThemeMetric BEAT_Z_PI_HEIGHT( "ArrowEffects", "BeatZPIHeight" ); + static ThemeMetric TINY_PERCENT_BASE( "ArrowEffects", "TinyPercentBase" ); static ThemeMetric TINY_PERCENT_GATE( "ArrowEffects", "TinyPercentGate" ); -static ThemeMetric DIZZY_HOLD_HEADS( "ArrowEffects", "DizzyHoldHeads" ); static const PlayerOptions* curr_options= NULL; -float ArrowGetPercentVisible(float fYPosWithoutReverse); +float ArrowGetPercentVisible(float fYPosWithoutReverse, int iCol, float fYOffset); static float GetNoteFieldHeight() { return SCREEN_HEIGHT + fabsf(curr_options->m_fPerspectiveTilt)*200; } +float ArrowEffects::GetTime() +{ + float mult = 1.f + curr_options->m_fModTimerMult; + float offset = curr_options->m_fModTimerOffset; + ModTimerType modtimer = curr_options->m_ModTimerType; + switch(modtimer) + { + case ModTimerType_Default: + case ModTimerType_Game: + return (RageTimer::GetTimeSinceStartFast()+offset)*mult; + case ModTimerType_Beat: + return (GAMESTATE->m_Position.m_fSongBeatVisible+offset)*mult; + case ModTimerType_Song: + return (GAMESTATE->m_Position.m_fMusicSeconds+offset)*mult; + default: + return RageTimer::GetTimeSinceStartFast()+offset; + } +} + namespace { struct PerPlayerData { - float m_fMinTornadoX[MAX_COLS_PER_PLAYER]; - float m_fMaxTornadoX[MAX_COLS_PER_PLAYER]; + float m_MinTornado[3][MAX_COLS_PER_PLAYER]; + float m_MaxTornado[3][MAX_COLS_PER_PLAYER]; float m_fInvertDistance[MAX_COLS_PER_PLAYER]; float m_tipsy_result[MAX_COLS_PER_PLAYER]; float m_tipsy_offset_result[MAX_COLS_PER_PLAYER]; - float m_fBeatFactor; + float m_tan_tipsy_result[MAX_COLS_PER_PLAYER]; + float m_tan_tipsy_offset_result[MAX_COLS_PER_PLAYER]; + float m_fBeatFactor[3]; float m_fExpandSeconds; + float m_fTanExpandSeconds; + + // m_prev_style is for checking whether ArrowEffects::Init needs to be + // called. Finding all the placed ArrowEffects is used and making sure + // they all call Init after changing style is non-trivial and more likely + // to cause bugs. -Kyz + Style const* m_prev_style; }; PerPlayerData g_EffectData[NUM_PLAYERS]; + int const dim_x= 0; + int const dim_y= 1; + int const dim_z= 2; + + float tornado_position_scale_to_low[3]; + float tornado_position_scale_to_high[3]; + float tornado_offset_frequency[3]; + float tornado_offset_scale_from_low[3]; + float tornado_offset_scale_from_high[3]; }; +static float SelectTanType(float angle, bool is_cosec) +{ + if (is_cosec) + return RageFastCsc(angle); + else + return RageFastTan(angle); +} + +static float CalculateTornadoOffsetFromMagnitude(int dimension, int col_id, + float magnitude, float effect_offset, float period, + const Style::ColumnInfo* pCols, float field_zoom, + PerPlayerData& data, float y_offset, bool is_tan) +{ + float const real_pixel_offset= pCols[col_id].fXOffset * field_zoom; + float const position_between= SCALE(real_pixel_offset, + data.m_MinTornado[dimension][col_id] * field_zoom, + data.m_MaxTornado[dimension][col_id] * field_zoom, + tornado_position_scale_to_low[dimension], + tornado_position_scale_to_high[dimension]); + float rads= acosf(position_between); + float frequency= tornado_offset_frequency[dimension]; + rads+= (y_offset + effect_offset) * ((period * frequency) + frequency) / SCREEN_HEIGHT; + float processed_rads = is_tan ? SelectTanType(rads, curr_options->m_bCosecant) : RageFastCos(rads); + + float const adjusted_pixel_offset= SCALE(processed_rads, + tornado_offset_scale_from_low[dimension], + tornado_offset_scale_from_high[dimension], + data.m_MinTornado[dimension][col_id] * field_zoom, + data.m_MaxTornado[dimension][col_id] * field_zoom); + return (adjusted_pixel_offset - real_pixel_offset) * magnitude; +} + +static float CalculateDrunkAngle(float speed, int col, float offset, + float col_frequency, float y_offset, float period, float offset_frequency) +{ + float time = ArrowEffects::GetTime(); + return time * (1+speed) + col*( (offset*col_frequency) + col_frequency) + + y_offset * ( (period*offset_frequency) + offset_frequency) / SCREEN_HEIGHT; +} + +static float CalculateBumpyAngle(float y_offset, float offset, float period) +{ + return (y_offset+(100.0f*offset))/((period*16.0f)+16.0f); +} + +static float CalculateDigitalAngle(float y_offset, float offset, float period) +{ + return PI * (y_offset + (1.0f * offset ) ) / (ARROW_SIZE + (period * ARROW_SIZE) ); +} + +static void UpdateBeat(int dimension, PerPlayerData &data, const SongPosition &position, float beat_offset, float beat_mult) +{ + float fAccelTime = 0.2f, fTotalTime = 0.5f; + float fBeat = ((position.m_fSongBeatVisible + fAccelTime + beat_offset) * (beat_mult+1)); + + const bool bEvenBeat = ( int(fBeat) % 2 ) != 0; + + data.m_fBeatFactor[dimension] = 0; + if( fBeat < 0 ) + return; + + // -100.2 -> -0.2 -> 0.2 + fBeat -= truncf( fBeat ); + fBeat += 1; + fBeat -= truncf( fBeat ); + + if( fBeat >= fTotalTime ) + return; + + if( fBeat < fAccelTime ) + { + data.m_fBeatFactor[dimension] = SCALE( fBeat, 0.0f, fAccelTime, 0.0f, 1.0f); + data.m_fBeatFactor[dimension] *= data.m_fBeatFactor[dimension]; + } else /* fBeat < fTotalTime */ { + data.m_fBeatFactor[dimension] = SCALE( fBeat, fAccelTime, fTotalTime, 1.0f, 0.0f); + data.m_fBeatFactor[dimension] = 1 - (1-data.m_fBeatFactor[dimension]) * (1-data.m_fBeatFactor[dimension]); + } + + if( bEvenBeat ) + data.m_fBeatFactor[dimension] *= -1; + data.m_fBeatFactor[dimension] *= 20.0f; +} + +static void UpdateTipsy(float * tipsy_result, float * tipsy_offset_result, float offset, float speed, bool is_tan) +{ + const float time= ArrowEffects::GetTime(); + const float time_times_timer= time * ((speed * TIPSY_TIMER_FREQUENCY) + TIPSY_TIMER_FREQUENCY); + const float arrow_times_mag= ARROW_SIZE * TIPSY_ARROW_MAGNITUDE; + const float time_times_offset_timer= time * + TIPSY_OFFSET_TIMER_FREQUENCY; + const float arrow_times_offset_mag= ARROW_SIZE * + TIPSY_OFFSET_ARROW_MAGNITUDE; + for(int col= 0; col < MAX_COLS_PER_PLAYER; ++col) + { + if (is_tan) + { + tipsy_result[col]= SelectTanType(time_times_timer + (col * ((offset * + TIPSY_COLUMN_FREQUENCY) + TIPSY_COLUMN_FREQUENCY)), curr_options->m_bCosecant) + * arrow_times_mag; + tipsy_offset_result[col]= SelectTanType(time_times_offset_timer + (col * + TIPSY_OFFSET_COLUMN_FREQUENCY), curr_options->m_bCosecant) + * arrow_times_offset_mag; + } + else + { + tipsy_result[col]= RageFastCos(time_times_timer + (col * ((offset * + TIPSY_COLUMN_FREQUENCY) + TIPSY_COLUMN_FREQUENCY))) * arrow_times_mag; + tipsy_offset_result[col]= RageFastCos(time_times_offset_timer + (col * + TIPSY_OFFSET_COLUMN_FREQUENCY)) * arrow_times_offset_mag; + } + } +} + + +void ArrowEffects::Init(PlayerNumber pn) +{ + const Style* pStyle = GAMESTATE->GetCurrentStyle(pn); + const Style::ColumnInfo* pCols = pStyle->m_ColumnInfo[pn]; + PerPlayerData &data = g_EffectData[pn]; + // Init tornado limits. + // This used to run every frame, but it doesn't actually depend on anything + // that changes every frame. In openitg, it runs for every note. -Kyz + + // TRICKY: Tornado is very unplayable in doubles, so use a smaller + // tornado width if there are many columns + + /* the wide_field check makes an assumption for dance mode. + * perhaps check if we are actually playing on singles without, + * say more than 6 columns. That would exclude IIDX, pop'n, and + * techno-8, all of which would be very hectic. + * certain non-singles modes (like halfdoubles 6cols) + * could possibly have tornado enabled. + * let's also take default resolution (640x480) into mind. -aj */ + bool wide_field= pStyle->m_iColsPerPlayer > 4; + int max_player_col= pStyle->m_iColsPerPlayer-1; + for(int dimension= 0; dimension < 3; ++dimension) + { + int width= 3; + // wide_field only matters for x, which is dimension 0. -Kyz + if(dimension == 0 && wide_field) + { + width= 2; + } + for(int col_id= 0; col_id <= max_player_col; ++col_id) + { + int start_col= col_id - width; + int end_col= col_id + width; + CLAMP(start_col, 0, max_player_col); + CLAMP(end_col, 0, max_player_col); + data.m_MinTornado[dimension][col_id]= FLT_MAX; + data.m_MaxTornado[dimension][col_id]= FLT_MIN; + for(int i= start_col; i <= end_col; ++i) + { + // Using the x offset when the dimension might be y or z feels so + // wrong, but it provides min and max values when otherwise the + // limits would just be zero, which would make it do nothing. -Kyz + data.m_MinTornado[dimension][col_id] = min(pCols[i].fXOffset, data.m_MinTornado[dimension][col_id]); + data.m_MaxTornado[dimension][col_id] = max(pCols[i].fXOffset, data.m_MaxTornado[dimension][col_id]); + } + } + + tornado_position_scale_to_low[dimension]= TORNADO_POSITION_SCALE_TO_LOW.GetValue(dimension); + tornado_position_scale_to_high[dimension]= TORNADO_POSITION_SCALE_TO_HIGH.GetValue(dimension); + tornado_offset_frequency[dimension]= TORNADO_OFFSET_FREQUENCY.GetValue(dimension); + tornado_offset_scale_from_low[dimension]= TORNADO_OFFSET_SCALE_FROM_LOW.GetValue(dimension); + tornado_offset_scale_from_high[dimension]= TORNADO_OFFSET_SCALE_FROM_HIGH.GetValue(dimension); + } +} + void ArrowEffects::Update() { static float fLastTime = 0; @@ -97,44 +321,22 @@ ? GAMESTATE->m_pPlayerState[pn]->m_Position : GAMESTATE->m_Position; const float field_zoom= GAMESTATE->m_pPlayerState[pn]->m_NotefieldZoom; const float* effects= GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_fEffects; + const float* accels= GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_fAccels; PerPlayerData &data = g_EffectData[pn]; - if( !position.m_bFreeze || !position.m_bDelay ) + if(pStyle != data.m_prev_style) { - data.m_fExpandSeconds += fTime - fLastTime; - data.m_fExpandSeconds = fmodf( data.m_fExpandSeconds, PI*2 ); + Init(pn); + data.m_prev_style= pStyle; } - // Update Tornado - for( int iColNum = 0; iColNum < MAX_COLS_PER_PLAYER; ++iColNum ) + if( !position.m_bFreeze || !position.m_bDelay ) { - // TRICKY: Tornado is very unplayable in doubles, so use a smaller - // tornado width if there are many columns - - /* the below makes an assumption for dance mode. - * perhaps check if we are actually playing on singles without, - * say more than 6 columns. That would exclude IIDX, pop'n, and - * techno-8, all of which would be very hectic. - * certain non-singles modes (like halfdoubles 6cols) - * could possibly have tornado enabled. - * let's also take default resolution (640x480) into mind. -aj */ - bool bWideField = pStyle->m_iColsPerPlayer > 4; - int iTornadoWidth = bWideField ? 2 : 3; - - int iStartCol = iColNum - iTornadoWidth; - int iEndCol = iColNum + iTornadoWidth; - CLAMP( iStartCol, 0, pStyle->m_iColsPerPlayer-1 ); - CLAMP( iEndCol, 0, pStyle->m_iColsPerPlayer-1 ); - - data.m_fMinTornadoX[iColNum] = FLT_MAX; - data.m_fMaxTornadoX[iColNum] = FLT_MIN; - - for( int i=iStartCol; i<=iEndCol; i++ ) - { - data.m_fMinTornadoX[iColNum] = min( data.m_fMinTornadoX[iColNum], pCols[i].fXOffset * field_zoom ); - data.m_fMaxTornadoX[iColNum] = max( data.m_fMaxTornadoX[iColNum], pCols[i].fXOffset * field_zoom); - } + data.m_fExpandSeconds += fTime - fLastTime; + data.m_fExpandSeconds = fmodf( data.m_fExpandSeconds, (PI*2)/(accels[PlayerOptions::ACCEL_EXPAND_PERIOD]+1) ); + data.m_fTanExpandSeconds += fTime - fLastTime; + data.m_fTanExpandSeconds = fmodf( data.m_fTanExpandSeconds, (PI*2)/(accels[PlayerOptions::ACCEL_TAN_EXPAND_PERIOD]+1) ); } // Update Invert @@ -184,63 +386,41 @@ // Update Tipsy if(effects[PlayerOptions::EFFECT_TIPSY] != 0) { - const float time= RageTimer::GetTimeSinceStartFast(); - const float time_times_timer= time * TIPSY_TIMER_FREQUENCY; - const float arrow_times_mag= ARROW_SIZE * TIPSY_ARROW_MAGNITUDE; - const float time_times_offset_timer= time * - TIPSY_OFFSET_TIMER_FREQUENCY; - const float arrow_times_offset_mag= ARROW_SIZE * - TIPSY_OFFSET_ARROW_MAGNITUDE; + UpdateTipsy(data.m_tipsy_result, data.m_tipsy_offset_result, + effects[PlayerOptions::EFFECT_TIPSY_OFFSET], + effects[PlayerOptions::EFFECT_TIPSY_SPEED], false); + } + else + { for(int col= 0; col < MAX_COLS_PER_PLAYER; ++col) { - data.m_tipsy_result[col]= RageFastCos( - time_times_timer + (col * TIPSY_COLUMN_FREQUENCY)) * - arrow_times_mag; - data.m_tipsy_offset_result[col]= RageFastCos( - time_times_offset_timer + (col * TIPSY_OFFSET_COLUMN_FREQUENCY)) * - arrow_times_offset_mag; + data.m_tipsy_result[col]= 0; } } + + // Update TanTipsy + if(effects[PlayerOptions::EFFECT_TAN_TIPSY] != 0) + { + UpdateTipsy(data.m_tan_tipsy_result, data.m_tan_tipsy_offset_result, + effects[PlayerOptions::EFFECT_TAN_TIPSY_OFFSET], + effects[PlayerOptions::EFFECT_TAN_TIPSY_SPEED], true); + } else { for(int col= 0; col < MAX_COLS_PER_PLAYER; ++col) { - data.m_tipsy_result[col]= 0; + data.m_tan_tipsy_result[col]= 0; } } // Update Beat - do { - float fAccelTime = 0.2f, fTotalTime = 0.5f; - float fBeat = position.m_fSongBeatVisible + fAccelTime; + UpdateBeat(dim_x, data, position, effects[PlayerOptions::EFFECT_BEAT_OFFSET], effects[PlayerOptions::EFFECT_BEAT_MULT]); - const bool bEvenBeat = ( int(fBeat) % 2 ) != 0; - - data.m_fBeatFactor = 0; - if( fBeat < 0 ) - break; + // Update BeatY + UpdateBeat(dim_y, data, position, effects[PlayerOptions::EFFECT_BEAT_Y_OFFSET], effects[PlayerOptions::EFFECT_BEAT_Y_MULT]); - // -100.2 -> -0.2 -> 0.2 - fBeat -= truncf( fBeat ); - fBeat += 1; - fBeat -= truncf( fBeat ); - - if( fBeat >= fTotalTime ) - break; - - if( fBeat < fAccelTime ) - { - data.m_fBeatFactor = SCALE( fBeat, 0.0f, fAccelTime, 0.0f, 1.0f); - data.m_fBeatFactor *= data.m_fBeatFactor; - } else /* fBeat < fTotalTime */ { - data.m_fBeatFactor = SCALE( fBeat, fAccelTime, fTotalTime, 1.0f, 0.0f); - data.m_fBeatFactor = 1 - (1-data.m_fBeatFactor) * (1-data.m_fBeatFactor); - } - - if( bEvenBeat ) - data.m_fBeatFactor *= -1; - data.m_fBeatFactor *= 20.0f; - } while( false ); + // Update BeatZ + UpdateBeat(dim_z, data, position, effects[PlayerOptions::EFFECT_BEAT_Z_OFFSET], effects[PlayerOptions::EFFECT_BEAT_Z_MULT]); } fLastTime = fTime; } @@ -336,7 +516,10 @@ } const float* fAccels = curr_options->m_fAccels; - //const float* fEffects = curr_options->m_fEffects; + const float* fEffects = curr_options->m_fEffects; + + // TODO: Don't index by PlayerNumber. + PerPlayerData &data = g_EffectData[pPlayerState->m_PlayerNumber]; float fYAdjust = 0; // fill this in depending on PlayerOptions @@ -360,7 +543,10 @@ fYAdjust += fBrakeYAdjust; } if( fAccels[PlayerOptions::ACCEL_WAVE] != 0 ) - fYAdjust += fAccels[PlayerOptions::ACCEL_WAVE] * WAVE_MOD_MAGNITUDE *RageFastSin( fYOffset/WAVE_MOD_HEIGHT ); + fYAdjust += fAccels[PlayerOptions::ACCEL_WAVE] * WAVE_MOD_MAGNITUDE *RageFastSin( fYOffset/((fAccels[PlayerOptions::ACCEL_WAVE_PERIOD]*WAVE_MOD_HEIGHT)+WAVE_MOD_HEIGHT) ); + + if( fEffects[PlayerOptions::EFFECT_PARABOLA_Y] != 0 ) + fYAdjust += fEffects[PlayerOptions::EFFECT_PARABOLA_Y] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE); fYOffset += fYAdjust; @@ -393,10 +579,7 @@ if( fAccels[PlayerOptions::ACCEL_EXPAND] != 0 ) { - // TODO: Don't index by PlayerNumber. - PerPlayerData &data = g_EffectData[pPlayerState->m_PlayerNumber]; - - float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY), + float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY*(fAccels[PlayerOptions::ACCEL_EXPAND_PERIOD]+1)), EXPAND_MULTIPLIER_SCALE_FROM_LOW, EXPAND_MULTIPLIER_SCALE_FROM_HIGH, EXPAND_MULTIPLIER_SCALE_TO_LOW, EXPAND_MULTIPLIER_SCALE_TO_HIGH ); fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_EXPAND], @@ -404,6 +587,16 @@ EXPAND_SPEED_SCALE_TO_LOW, fExpandMultiplier ); } + if( fAccels[PlayerOptions::ACCEL_TAN_EXPAND] != 0 ) + { + float fTanExpandMultiplier = SCALE( SelectTanType(data.m_fTanExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY*(fAccels[PlayerOptions::ACCEL_TAN_EXPAND_PERIOD]+1), curr_options->m_bCosecant), + EXPAND_MULTIPLIER_SCALE_FROM_LOW, EXPAND_MULTIPLIER_SCALE_FROM_HIGH, + EXPAND_MULTIPLIER_SCALE_TO_LOW, EXPAND_MULTIPLIER_SCALE_TO_HIGH ); + fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_TAN_EXPAND], + EXPAND_SPEED_SCALE_FROM_LOW, EXPAND_SPEED_SCALE_FROM_HIGH, + EXPAND_SPEED_SCALE_TO_LOW, fTanExpandMultiplier ); + } + fYOffset *= fScrollSpeed; fPeakYOffsetOut *= fScrollSpeed; @@ -428,7 +621,7 @@ fScaleOut = SCALE( fPercentReverse, 0.f, 1.f, 1.f, -1.f ); } -float ArrowEffects::GetYPos(int iCol, float fYOffset, float fYReverseOffsetPixels, bool WithReverse) +float ArrowEffects::GetYPos( const PlayerState* pPlayerState, int iCol, float fYOffset, float fYReverseOffsetPixels, bool WithReverse) { float f = fYOffset; @@ -441,12 +634,30 @@ f += fShift; } + // TODO: Don't index by PlayerNumber. + const Style* pStyle = GAMESTATE->GetCurrentStyle(pPlayerState->m_PlayerNumber); + const Style::ColumnInfo* pCols = pStyle->m_ColumnInfo[pPlayerState->m_PlayerNumber]; const float* fEffects = curr_options->m_fEffects; + // Doing the math with a precalculated result of 0 should be faster than // checking whether tipsy is on. -Kyz // TODO: Don't index by PlayerNumber. PerPlayerData& data= g_EffectData[curr_options->m_pn]; f+= fEffects[PlayerOptions::EFFECT_TIPSY] * data.m_tipsy_result[iCol]; + f+= fEffects[PlayerOptions::EFFECT_TAN_TIPSY] * data.m_tan_tipsy_result[iCol]; + + if( fEffects[PlayerOptions::EFFECT_ATTENUATE_Y] != 0 ) + { + const float fXOffset = pCols[iCol].fXOffset; + f += fEffects[PlayerOptions::EFFECT_ATTENUATE_Y] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE) * (fXOffset/ARROW_SIZE); + } + + + if( fEffects[PlayerOptions::EFFECT_BEAT_Y] != 0 ) + { + const float fShift = data.m_fBeatFactor[dim_y]*RageFastSin( fYOffset / ((fEffects[PlayerOptions::EFFECT_BEAT_Y_PERIOD]*BEAT_Y_OFFSET_HEIGHT)+BEAT_Y_OFFSET_HEIGHT) + PI/BEAT_Y_PI_HEIGHT ); + f += fEffects[PlayerOptions::EFFECT_BEAT_Y] * fShift; + } // In beware's DDR Extreme-focused fork of StepMania 3.9, this value is // floored, making arrows show on integer Y coordinates. Supposedly it makes @@ -465,6 +676,9 @@ // TODO: Don't index by PlayerNumber. PerPlayerData& data= g_EffectData[curr_options->m_pn]; f+= fEffects[PlayerOptions::EFFECT_TIPSY] * data.m_tipsy_offset_result[iCol]; + f+= fEffects[PlayerOptions::EFFECT_TAN_TIPSY] * data.m_tan_tipsy_offset_result[iCol]; + + f+= fEffects[PlayerOptions::EFFECT_PARABOLA_Y] * (YPos/ARROW_SIZE) * (YPos/ARROW_SIZE); float fShift, fScale; ArrowGetReverseShiftAndScale(iCol, fYReverseOffsetPixels, fShift, fScale); @@ -489,22 +703,49 @@ if( fEffects[PlayerOptions::EFFECT_TORNADO] != 0 ) { - const float fRealPixelOffset = pCols[iColNum].fXOffset * pPlayerState->m_NotefieldZoom; - const float fPositionBetween = SCALE( fRealPixelOffset, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum], - TORNADO_POSITION_SCALE_TO_LOW, TORNADO_POSITION_SCALE_TO_HIGH ); - float fRads = acosf( fPositionBetween ); - fRads += fYOffset * TORNADO_OFFSET_FREQUENCY / SCREEN_HEIGHT; - - const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), TORNADO_OFFSET_SCALE_FROM_LOW, TORNADO_OFFSET_SCALE_FROM_HIGH, - data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum] ); + fPixelOffsetFromCenter += CalculateTornadoOffsetFromMagnitude(dim_x, + iColNum, fEffects[PlayerOptions::EFFECT_TORNADO], + fEffects[PlayerOptions::EFFECT_TORNADO_OFFSET], + fEffects[PlayerOptions::EFFECT_TORNADO_PERIOD], + pCols, pPlayerState->m_NotefieldZoom, data, fYOffset, false); + } - fPixelOffsetFromCenter += (fAdjustedPixelOffset - fRealPixelOffset) * fEffects[PlayerOptions::EFFECT_TORNADO]; + if( fEffects[PlayerOptions::EFFECT_TAN_TORNADO] != 0 ) + { + fPixelOffsetFromCenter += CalculateTornadoOffsetFromMagnitude(dim_x, + iColNum, fEffects[PlayerOptions::EFFECT_TAN_TORNADO], + fEffects[PlayerOptions::EFFECT_TAN_TORNADO_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_TORNADO_PERIOD], + pCols, pPlayerState->m_NotefieldZoom, data, fYOffset, true); } + + if( fEffects[PlayerOptions::EFFECT_BUMPY_X] != 0 ) + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_BUMPY_X] * + 40*RageFastSin( CalculateBumpyAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_BUMPY_X_OFFSET], + fEffects[PlayerOptions::EFFECT_BUMPY_X_PERIOD]) ); + + if( fEffects[PlayerOptions::EFFECT_TAN_BUMPY_X] != 0 ) + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_TAN_BUMPY_X] * + 40*SelectTanType( CalculateBumpyAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_BUMPY_X_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_BUMPY_X_PERIOD]), curr_options->m_bCosecant ); if( fEffects[PlayerOptions::EFFECT_DRUNK] != 0 ) fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_DRUNK] * - ( RageFastCos( RageTimer::GetTimeSinceStartFast() + iColNum*DRUNK_COLUMN_FREQUENCY - + fYOffset*DRUNK_OFFSET_FREQUENCY/SCREEN_HEIGHT) * ARROW_SIZE*DRUNK_ARROW_MAGNITUDE ); + ( RageFastCos( CalculateDrunkAngle(fEffects[PlayerOptions::EFFECT_DRUNK_SPEED], iColNum, + fEffects[PlayerOptions::EFFECT_DRUNK_OFFSET], DRUNK_COLUMN_FREQUENCY, + fYOffset, fEffects[PlayerOptions::EFFECT_DRUNK_PERIOD], + DRUNK_OFFSET_FREQUENCY) ) * ARROW_SIZE*DRUNK_ARROW_MAGNITUDE ); + + if( fEffects[PlayerOptions::EFFECT_TAN_DRUNK] != 0 ) + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_TAN_DRUNK] * + ( SelectTanType( CalculateDrunkAngle(fEffects[PlayerOptions::EFFECT_TAN_DRUNK_SPEED], + iColNum, fEffects[PlayerOptions::EFFECT_TAN_DRUNK_OFFSET], + DRUNK_COLUMN_FREQUENCY, fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_DRUNK_PERIOD], DRUNK_OFFSET_FREQUENCY) + , curr_options->m_bCosecant) * ARROW_SIZE*DRUNK_ARROW_MAGNITUDE ); + if( fEffects[PlayerOptions::EFFECT_FLIP] != 0 ) { const int iFirstCol = 0; @@ -520,9 +761,62 @@ if( fEffects[PlayerOptions::EFFECT_BEAT] != 0 ) { - const float fShift = data.m_fBeatFactor*RageFastSin( fYOffset / BEAT_OFFSET_HEIGHT + PI/BEAT_PI_HEIGHT ); + const float fShift = data.m_fBeatFactor[dim_x]*RageFastSin( fYOffset / ((fEffects[PlayerOptions::EFFECT_BEAT_PERIOD]*BEAT_OFFSET_HEIGHT)+BEAT_OFFSET_HEIGHT) + PI/BEAT_PI_HEIGHT ); fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_BEAT] * fShift; } + + if( fEffects[PlayerOptions::EFFECT_ZIGZAG] != 0 ) + { + float fResult = RageTriangle( (PI * (1/(fEffects[PlayerOptions::EFFECT_ZIGZAG_PERIOD]+1)) * + ((fYOffset+(100.0f*(fEffects[PlayerOptions::EFFECT_ZIGZAG_OFFSET])))/ARROW_SIZE) ) ); + + fPixelOffsetFromCenter += (fEffects[PlayerOptions::EFFECT_ZIGZAG]*ARROW_SIZE/2) * fResult; + } + + if( fEffects[PlayerOptions::EFFECT_SAWTOOTH] != 0 ) + fPixelOffsetFromCenter += (fEffects[PlayerOptions::EFFECT_SAWTOOTH]*ARROW_SIZE) * + ((0.5f / (fEffects[PlayerOptions::EFFECT_SAWTOOTH_PERIOD]+1) * fYOffset) / ARROW_SIZE - + floor((0.5f / (fEffects[PlayerOptions::EFFECT_SAWTOOTH_PERIOD]+1) * fYOffset) / ARROW_SIZE) ); + + if( fEffects[PlayerOptions::EFFECT_PARABOLA_X] != 0 ) + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_PARABOLA_X] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE); + + if( fEffects[PlayerOptions::EFFECT_ATTENUATE_X] != 0 ) + { + const float fXOffset = pCols[iColNum].fXOffset; + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_ATTENUATE_X] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE) * (fXOffset/ARROW_SIZE); + } + + if( fEffects[PlayerOptions::EFFECT_DIGITAL] != 0 ) + fPixelOffsetFromCenter += (fEffects[PlayerOptions::EFFECT_DIGITAL] * ARROW_SIZE * 0.5f) * + round((fEffects[PlayerOptions::EFFECT_DIGITAL_STEPS]+1) * RageFastSin( + CalculateDigitalAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_DIGITAL_OFFSET], + fEffects[PlayerOptions::EFFECT_DIGITAL_PERIOD]) ) )/(fEffects[PlayerOptions::EFFECT_DIGITAL_STEPS]+1); + + if( fEffects[PlayerOptions::EFFECT_TAN_DIGITAL] != 0 ) + fPixelOffsetFromCenter += (fEffects[PlayerOptions::EFFECT_TAN_DIGITAL] * ARROW_SIZE * 0.5f) * + round((fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_STEPS]+1) * SelectTanType( + CalculateDigitalAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_PERIOD]), curr_options->m_bCosecant ) )/(fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_STEPS]+1); + + + if( fEffects[PlayerOptions::EFFECT_SQUARE] != 0 ) + { + float fResult = RageSquare( (PI * (fYOffset+(1.0f*(fEffects[PlayerOptions::EFFECT_SQUARE_OFFSET]))) / + (ARROW_SIZE+(fEffects[PlayerOptions::EFFECT_SQUARE_PERIOD]*ARROW_SIZE))) ); + + fPixelOffsetFromCenter += (fEffects[PlayerOptions::EFFECT_SQUARE] * ARROW_SIZE * 0.5f) * fResult; + } + + if( fEffects[PlayerOptions::EFFECT_BOUNCE] != 0 ) + { + float fBounceAmt = fabsf( RageFastSin( ( (fYOffset + (1.0f * (fEffects[PlayerOptions::EFFECT_BOUNCE_OFFSET]) ) ) / + ( 60 + (fEffects[PlayerOptions::EFFECT_BOUNCE_PERIOD]*60) ) ) ) ); + + fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_BOUNCE] * ARROW_SIZE * 0.5f * fBounceAmt; + } if( fEffects[PlayerOptions::EFFECT_XMODE] != 0 ) { @@ -569,37 +863,47 @@ return fPixelOffsetFromCenter; } -float ArrowEffects::GetRotationX(float fYOffset) +float ArrowEffects::GetRotationX(const PlayerState* pPlayerState, float fYOffset, bool bIsHoldCap, int iCol) { const float* fEffects = curr_options->m_fEffects; float fRotation = 0; - if( fEffects[PlayerOptions::EFFECT_ROLL] != 0 ) + if( fEffects[PlayerOptions::EFFECT_CONFUSION_X] != 0 || fEffects[PlayerOptions::EFFECT_CONFUSION_X_OFFSET] != 0 || + curr_options->m_fConfusionX[iCol] != 0 + ) + fRotation += ReceptorGetRotationX( pPlayerState, iCol ); + if( fEffects[PlayerOptions::EFFECT_ROLL] != 0 && !bIsHoldCap ) { - fRotation = fEffects[PlayerOptions::EFFECT_ROLL] * fYOffset/2; + fRotation += fEffects[PlayerOptions::EFFECT_ROLL] * fYOffset/2; } return fRotation; } -float ArrowEffects::GetRotationY(float fYOffset) +float ArrowEffects::GetRotationY(const PlayerState* pPlayerState, float fYOffset, int iCol) { const float* fEffects = curr_options->m_fEffects; float fRotation = 0; + if( fEffects[PlayerOptions::EFFECT_CONFUSION_Y] != 0 || fEffects[PlayerOptions::EFFECT_CONFUSION_Y_OFFSET] != 0 || + curr_options->m_fConfusionY[iCol] != 0 + ) + fRotation += ReceptorGetRotationY( pPlayerState, iCol ); if( fEffects[PlayerOptions::EFFECT_TWIRL] != 0 ) { - fRotation = fEffects[PlayerOptions::EFFECT_TWIRL] * fYOffset/2; + fRotation += fEffects[PlayerOptions::EFFECT_TWIRL] * fYOffset/2; } return fRotation; } -float ArrowEffects::GetRotationZ( const PlayerState* pPlayerState, float fNoteBeat, bool bIsHoldHead ) +float ArrowEffects::GetRotationZ( const PlayerState* pPlayerState, float fNoteBeat, bool bIsHoldHead, int iCol ) { const float* fEffects = curr_options->m_fEffects; float fRotation = 0; - if( fEffects[PlayerOptions::EFFECT_CONFUSION] != 0 ) - fRotation += ReceptorGetRotationZ( pPlayerState ); + if( fEffects[PlayerOptions::EFFECT_CONFUSION] != 0 || fEffects[PlayerOptions::EFFECT_CONFUSION_OFFSET] != 0 || + curr_options->m_fConfusionZ[iCol] != 0 + ) + fRotation += ReceptorGetRotationZ( pPlayerState, iCol ); // As usual, enable dizzy hold heads at your own risk. -Wolfman2000 - if( fEffects[PlayerOptions::EFFECT_DIZZY] != 0 && ( DIZZY_HOLD_HEADS || !bIsHoldHead ) ) + if( fEffects[PlayerOptions::EFFECT_DIZZY] != 0 && ( curr_options->m_bDizzyHolds || !bIsHoldHead ) ) { const float fSongBeat = pPlayerState->m_Position.m_fSongBeatVisible; float fDizzyRotation = fNoteBeat - fSongBeat; @@ -611,11 +915,17 @@ return fRotation; } -float ArrowEffects::ReceptorGetRotationZ( const PlayerState* pPlayerState ) +float ArrowEffects::ReceptorGetRotationZ( const PlayerState* pPlayerState, int iCol ) { const float* fEffects = curr_options->m_fEffects; float fRotation = 0; + if( curr_options->m_fConfusionZ[iCol] != 0 ) + fRotation += curr_options->m_fConfusionZ[iCol] * 180.0f/PI; + + if( fEffects[PlayerOptions::EFFECT_CONFUSION_OFFSET] != 0 ) + fRotation += fEffects[PlayerOptions::EFFECT_CONFUSION_OFFSET] * 180.0f/PI; + if( fEffects[PlayerOptions::EFFECT_CONFUSION] != 0 ) { float fConfRotation = pPlayerState->m_Position.m_fSongBeatVisible; @@ -624,9 +934,83 @@ fConfRotation *= -180/PI; fRotation += fConfRotation; } + + return fRotation; +} + +float ArrowEffects::ReceptorGetRotationX( const PlayerState* pPlayerState, int iCol ) +{ + const float* fEffects = curr_options->m_fEffects; + float fRotation = 0; + + if( curr_options->m_fConfusionX[iCol] != 0 ) + fRotation += curr_options->m_fConfusionX[iCol] * 180.0f/PI; + + if( fEffects[PlayerOptions::EFFECT_CONFUSION_X_OFFSET] != 0 ) + fRotation += fEffects[PlayerOptions::EFFECT_CONFUSION_X_OFFSET] * 180.0f/PI; + + if( fEffects[PlayerOptions::EFFECT_CONFUSION_X] != 0 ) + { + float fConfRotation = pPlayerState->m_Position.m_fSongBeatVisible; + fConfRotation *= fEffects[PlayerOptions::EFFECT_CONFUSION_X]; + fConfRotation = fmodf( fConfRotation, 2*PI ); + fConfRotation *= -180/PI; + fRotation += fConfRotation; + } + + return fRotation; +} + +float ArrowEffects::ReceptorGetRotationY( const PlayerState* pPlayerState, int iCol ) +{ + const float* fEffects = curr_options->m_fEffects; + float fRotation = 0; + + if( curr_options->m_fConfusionY[iCol] != 0 ) + fRotation += curr_options->m_fConfusionY[iCol] * 180.0f/PI; + + if( fEffects[PlayerOptions::EFFECT_CONFUSION_Y_OFFSET] != 0 ) + fRotation += fEffects[PlayerOptions::EFFECT_CONFUSION_Y_OFFSET] * 180.0f/PI; + + if( fEffects[PlayerOptions::EFFECT_CONFUSION_Y] != 0 ) + { + float fConfRotation = pPlayerState->m_Position.m_fSongBeatVisible; + fConfRotation *= fEffects[PlayerOptions::EFFECT_CONFUSION_Y]; + fConfRotation = fmodf( fConfRotation, 2*PI ); + fConfRotation *= -180/PI; + fRotation += fConfRotation; + } + return fRotation; } +float ArrowEffects::GetMoveX(int iCol) +{ + const float* fMoves = curr_options->m_fMovesX; + float f = 0; + if( fMoves[iCol] != 0 ) + f += ARROW_SIZE * fMoves[iCol]; + return f; +} + +float ArrowEffects::GetMoveY(int iCol) +{ + const float* fMoves = curr_options->m_fMovesY; + float f = 0; + if( fMoves[iCol] != 0 ) + f += ARROW_SIZE * fMoves[iCol]; + return f; +} + +float ArrowEffects::GetMoveZ(int iCol) +{ + const float* fMoves = curr_options->m_fMovesZ; + float f = 0; + if( fMoves[iCol] != 0 ) + f += ARROW_SIZE * fMoves[iCol]; + return f; +} + #define CENTER_LINE_Y 160 // from fYOffset == 0 #define FADE_DIST_Y 40 @@ -687,11 +1071,18 @@ } // used by ArrowGetAlpha and ArrowGetGlow below -float ArrowGetPercentVisible(float fYPosWithoutReverse) +float ArrowGetPercentVisible(float fYPosWithoutReverse, int iCol, float fYOffset) { const float fDistFromCenterLine = fYPosWithoutReverse - GetCenterLine(); - if( fYPosWithoutReverse < 0 && HIDDEN_SUDDEN_PAST_RECEPTOR) // past Gray Arrows + float fYPos; + if( curr_options->m_bStealthType ) + fYPos = fYOffset; + else + fYPos = fYPosWithoutReverse; + + + if( fYPos < 0 && curr_options->m_bStealthPastReceptors == false) // past Gray Arrows return 1; // totally visible const float* fAppearances = curr_options->m_fAppearances; @@ -700,22 +1091,25 @@ if( fAppearances[PlayerOptions::APPEARANCE_HIDDEN] != 0 ) { - float fHiddenVisibleAdjust = SCALE( fYPosWithoutReverse, GetHiddenStartLine(), GetHiddenEndLine(), 0, -1 ); + float fHiddenVisibleAdjust = SCALE( fYPos, GetHiddenStartLine(), GetHiddenEndLine(), 0, -1 ); CLAMP( fHiddenVisibleAdjust, -1, 0 ); fVisibleAdjust += fAppearances[PlayerOptions::APPEARANCE_HIDDEN] * fHiddenVisibleAdjust; } if( fAppearances[PlayerOptions::APPEARANCE_SUDDEN] != 0 ) { - float fSuddenVisibleAdjust = SCALE( fYPosWithoutReverse, GetSuddenStartLine(), GetSuddenEndLine(), -1, 0 ); + float fSuddenVisibleAdjust = SCALE( fYPos, GetSuddenStartLine(), GetSuddenEndLine(), -1, 0 ); CLAMP( fSuddenVisibleAdjust, -1, 0 ); fVisibleAdjust += fAppearances[PlayerOptions::APPEARANCE_SUDDEN] * fSuddenVisibleAdjust; } if( fAppearances[PlayerOptions::APPEARANCE_STEALTH] != 0 ) fVisibleAdjust -= fAppearances[PlayerOptions::APPEARANCE_STEALTH]; + if( curr_options->m_fStealth[iCol] != 0 ){ + fVisibleAdjust -= curr_options->m_fStealth[iCol]; + } if( fAppearances[PlayerOptions::APPEARANCE_BLINK] != 0 ) { - float f = RageFastSin(RageTimer::GetTimeSinceStartFast()*10); + float f = RageFastSin(ArrowEffects::GetTime()*10); f = Quantize( f, BLINK_MOD_FREQUENCY ); fVisibleAdjust += SCALE( f, 0, 1, -1, 0 ); } @@ -729,12 +1123,12 @@ return clamp( 1+fVisibleAdjust, 0, 1 ); } -float ArrowEffects::GetAlpha(int iCol, float fYOffset, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar) +float ArrowEffects::GetAlpha( const PlayerState* pPlayerState, int iCol, float fYOffset, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar) { // Get the YPos without reverse (that is, factor in EFFECT_TIPSY). - float fYPosWithoutReverse = ArrowEffects::GetYPos(iCol, fYOffset, fYReverseOffsetPixels, false ); + float fYPosWithoutReverse = ArrowEffects::GetYPos(pPlayerState, iCol, fYOffset, fYReverseOffsetPixels, false ); - float fPercentVisible = ArrowGetPercentVisible(fYPosWithoutReverse); + float fPercentVisible = ArrowGetPercentVisible(fYPosWithoutReverse, iCol, fYOffset); if( fPercentFadeToFail != -1 ) fPercentVisible = 1 - fPercentFadeToFail; @@ -749,12 +1143,12 @@ return (fPercentVisible>0.5f) ? 1.0f : 0.0f; } -float ArrowEffects::GetGlow(int iCol, float fYOffset, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar) +float ArrowEffects::GetGlow( const PlayerState* pPlayerState, int iCol, float fYOffset, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar) { // Get the YPos without reverse (that is, factor in EFFECT_TIPSY). - float fYPosWithoutReverse = ArrowEffects::GetYPos(iCol, fYOffset, fYReverseOffsetPixels, false ); + float fYPosWithoutReverse = ArrowEffects::GetYPos(pPlayerState, iCol, fYOffset, fYReverseOffsetPixels, false ); - float fPercentVisible = ArrowGetPercentVisible(fYPosWithoutReverse ); + float fPercentVisible = ArrowGetPercentVisible(fYPosWithoutReverse, iCol, fYOffset); if( fPercentFadeToFail != -1 ) fPercentVisible = 1 - fPercentFadeToFail; @@ -777,13 +1171,125 @@ } -float ArrowEffects::GetZPos(int iCol, float fYOffset) +float ArrowEffects::GetZPos( const PlayerState* pPlayerState, int iCol, float fYOffset) { float fZPos=0; const float* fEffects = curr_options->m_fEffects; + const Style* pStyle = GAMESTATE->GetCurrentStyle(pPlayerState->m_PlayerNumber); + + // TODO: Don't index by PlayerNumber. + const Style::ColumnInfo* pCols = pStyle->m_ColumnInfo[pPlayerState->m_PlayerNumber]; + PerPlayerData &data = g_EffectData[pPlayerState->m_PlayerNumber]; + if( fEffects[PlayerOptions::EFFECT_TORNADO_Z] != 0 ) + { + fZPos += CalculateTornadoOffsetFromMagnitude(dim_z, iCol, + fEffects[PlayerOptions::EFFECT_TORNADO_Z], + fEffects[PlayerOptions::EFFECT_TORNADO_Z_OFFSET], + fEffects[PlayerOptions::EFFECT_TORNADO_Z_PERIOD], + pCols, pPlayerState->m_NotefieldZoom, data, fYOffset, false); + } + + if( fEffects[PlayerOptions::EFFECT_TAN_TORNADO_Z] != 0 ) + { + fZPos += CalculateTornadoOffsetFromMagnitude(dim_z, iCol, + fEffects[PlayerOptions::EFFECT_TAN_TORNADO_Z], + fEffects[PlayerOptions::EFFECT_TAN_TORNADO_Z_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_TORNADO_Z_PERIOD], + pCols, pPlayerState->m_NotefieldZoom, data, fYOffset, true); + } + if( fEffects[PlayerOptions::EFFECT_BUMPY] != 0 ) - fZPos += fEffects[PlayerOptions::EFFECT_BUMPY] * 40*RageFastSin( fYOffset/16.0f ); + fZPos += fEffects[PlayerOptions::EFFECT_BUMPY] * 40*RageFastSin( + CalculateBumpyAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_BUMPY_OFFSET], + fEffects[PlayerOptions::EFFECT_BUMPY_PERIOD]) ); + + if( curr_options->m_fBumpy[iCol] != 0 ) + fZPos += curr_options->m_fBumpy[iCol] * 40*RageFastSin( + CalculateBumpyAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_BUMPY_OFFSET], + fEffects[PlayerOptions::EFFECT_BUMPY_PERIOD]) ); + + if( fEffects[PlayerOptions::EFFECT_TAN_BUMPY] != 0 ) + fZPos += fEffects[PlayerOptions::EFFECT_TAN_BUMPY] * 40*SelectTanType( + CalculateBumpyAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_BUMPY_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_BUMPY_PERIOD]), curr_options->m_bCosecant ); + + if( fEffects[PlayerOptions::EFFECT_ZIGZAG_Z] != 0 ) + { + float fResult = RageTriangle( (PI * (1/(fEffects[PlayerOptions::EFFECT_ZIGZAG_Z_PERIOD]+1)) * + ((fYOffset+(100.0f*(fEffects[PlayerOptions::EFFECT_ZIGZAG_Z_OFFSET])))/ARROW_SIZE) ) ); + + fZPos += (fEffects[PlayerOptions::EFFECT_ZIGZAG_Z]*ARROW_SIZE/2) * fResult; + } + + if( fEffects[PlayerOptions::EFFECT_SAWTOOTH_Z] != 0 ) + fZPos += (fEffects[PlayerOptions::EFFECT_SAWTOOTH_Z]*ARROW_SIZE) * + ((0.5f/(fEffects[PlayerOptions::EFFECT_SAWTOOTH_Z_PERIOD]+1)*fYOffset)/ARROW_SIZE - + floor((0.5f/(fEffects[PlayerOptions::EFFECT_SAWTOOTH_Z_PERIOD]+1)*fYOffset)/ARROW_SIZE)); + + if( fEffects[PlayerOptions::EFFECT_PARABOLA_Z] != 0 ) + fZPos += fEffects[PlayerOptions::EFFECT_PARABOLA_Z] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE); + + if( fEffects[PlayerOptions::EFFECT_ATTENUATE_Z] != 0 ) + { + const float fXOffset = pCols[iCol].fXOffset; + fZPos += fEffects[PlayerOptions::EFFECT_ATTENUATE_Z] * (fYOffset/ARROW_SIZE) * (fYOffset/ARROW_SIZE) * (fXOffset/ARROW_SIZE); + } + + if( fEffects[PlayerOptions::EFFECT_DRUNK_Z] != 0 ) + fZPos += fEffects[PlayerOptions::EFFECT_DRUNK_Z] * + ( RageFastCos( CalculateDrunkAngle(fEffects[PlayerOptions::EFFECT_DRUNK_Z_SPEED], iCol, + fEffects[PlayerOptions::EFFECT_DRUNK_Z_OFFSET], DRUNK_Z_COLUMN_FREQUENCY, + fYOffset, fEffects[PlayerOptions::EFFECT_DRUNK_Z_PERIOD], + DRUNK_Z_OFFSET_FREQUENCY) ) * ARROW_SIZE*DRUNK_Z_ARROW_MAGNITUDE ); + + if( fEffects[PlayerOptions::EFFECT_TAN_DRUNK_Z] != 0 ) + fZPos += fEffects[PlayerOptions::EFFECT_TAN_DRUNK_Z] * + ( SelectTanType( CalculateDrunkAngle(fEffects[PlayerOptions::EFFECT_TAN_DRUNK_Z_SPEED], + iCol, fEffects[PlayerOptions::EFFECT_TAN_DRUNK_Z_OFFSET], + DRUNK_Z_COLUMN_FREQUENCY, fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_DRUNK_Z_PERIOD], + DRUNK_Z_OFFSET_FREQUENCY) + , curr_options->m_bCosecant) * ARROW_SIZE*DRUNK_Z_ARROW_MAGNITUDE ); + + if( fEffects[PlayerOptions::EFFECT_BEAT_Z] != 0 ) + { + const float fShift = data.m_fBeatFactor[dim_z]*RageFastSin( fYOffset / ((fEffects[PlayerOptions::EFFECT_BEAT_Z_PERIOD]*BEAT_Z_OFFSET_HEIGHT)+BEAT_Z_OFFSET_HEIGHT) + PI/BEAT_Z_PI_HEIGHT ); + fZPos += fEffects[PlayerOptions::EFFECT_BEAT_Z] * fShift; + } + + if( fEffects[PlayerOptions::EFFECT_DIGITAL_Z] != 0 ) + fZPos += (fEffects[PlayerOptions::EFFECT_DIGITAL_Z] * ARROW_SIZE * 0.5f) * + round((fEffects[PlayerOptions::EFFECT_DIGITAL_Z_STEPS]+1) * RageFastSin( + CalculateDigitalAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_DIGITAL_Z_OFFSET], + fEffects[PlayerOptions::EFFECT_DIGITAL_Z_PERIOD]) ) ) /(fEffects[PlayerOptions::EFFECT_DIGITAL_Z_STEPS]+1); + + if( fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z] != 0 ) + fZPos += (fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z] * ARROW_SIZE * 0.5f) * + round((fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_STEPS]+1) * SelectTanType( + CalculateDigitalAngle(fYOffset, + fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_OFFSET], + fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_PERIOD]), curr_options->m_bCosecant ) ) /(fEffects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_STEPS]+1); + + + if( fEffects[PlayerOptions::EFFECT_SQUARE_Z] != 0 ) + { + float fResult = RageSquare( (PI * (fYOffset+(1.0f*(fEffects[PlayerOptions::EFFECT_SQUARE_Z_OFFSET]))) / + (ARROW_SIZE+(fEffects[PlayerOptions::EFFECT_SQUARE_Z_PERIOD]*ARROW_SIZE))) ); + fZPos += (fEffects[PlayerOptions::EFFECT_SQUARE_Z] * ARROW_SIZE * 0.5f) * fResult; + } + + if( fEffects[PlayerOptions::EFFECT_BOUNCE_Z] != 0 ) + { + float fBounceAmt = fabsf( RageFastSin( ( (fYOffset + (1.0f * (fEffects[PlayerOptions::EFFECT_BOUNCE_Z_OFFSET]) ) ) / + ( 60 + (fEffects[PlayerOptions::EFFECT_BOUNCE_Z_PERIOD]*60) ) ) ) ); + + fZPos += fEffects[PlayerOptions::EFFECT_BOUNCE_Z] * ARROW_SIZE * 0.5f * fBounceAmt; + } return fZPos; } @@ -798,10 +1304,34 @@ { return true; } + if( fEffects[PlayerOptions::EFFECT_BEAT_Z] != 0 || + fEffects[PlayerOptions::EFFECT_DIGITAL_Z] != 0 ) + { + return true; + } + if( fEffects[PlayerOptions::EFFECT_ZIGZAG_Z] != 0 || + fEffects[PlayerOptions::EFFECT_SAWTOOTH_Z] != 0 ) + { + return true; + } + if( fEffects[PlayerOptions::EFFECT_PARABOLA_Z] != 0 || + fEffects[PlayerOptions::EFFECT_SQUARE_Z] != 0 ) + { + return true; + } + if( curr_options->m_bZBuffer || + fEffects[PlayerOptions::EFFECT_ATTENUATE_Z] != 0 ) + { + return true; + } + if( fEffects[PlayerOptions::EFFECT_BOUNCE_Z] != 0 ) + { + return true; + } return false; } -float ArrowEffects::GetZoom( const PlayerState* pPlayerState ) +float ArrowEffects::GetZoom( const PlayerState* pPlayerState, float fYOffset, int iCol ) { float fZoom = 1.0f; // Design change: Instead of having a flag in the style that toggles a @@ -809,6 +1339,8 @@ // calculates a zoom factor to apply to the notefield and puts it in the // PlayerState. -Kyz fZoom*= pPlayerState->m_NotefieldZoom; + + fZoom = GetZoomVariable( fYOffset, iCol, fZoom); float fTinyPercent = curr_options->m_fEffects[PlayerOptions::EFFECT_TINY]; if( fTinyPercent != 0 ) @@ -816,9 +1348,45 @@ fTinyPercent = powf( 0.5f, fTinyPercent ); fZoom *= fTinyPercent; } + if( curr_options->m_fTiny[iCol] != 0 ) + { + fTinyPercent = powf( 0.5f, curr_options->m_fTiny[iCol] ); + fZoom *= fTinyPercent; + } + return fZoom; +} + +float ArrowEffects::GetZoomVariable( float fYOffset, int iCol, float fCurZoom ) +{ + float fZoom = fCurZoom; + if( curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_INNER] != 0 || curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_OUTER] != 0 ) + { + float sine = RageFastSin(((fYOffset+(100.0f*(curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_OFFSET])))/(0.4f*(ARROW_SIZE+(curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_PERIOD]*ARROW_SIZE))))); + + fZoom *= (sine*(curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_OUTER]*0.5f))+GetPulseInner(); + } + if( curr_options->m_fEffects[PlayerOptions::EFFECT_SHRINK_TO_MULT] !=0 && fYOffset >= 0 ) + fZoom *= 1/(1+(fYOffset*(curr_options->m_fEffects[PlayerOptions::EFFECT_SHRINK_TO_MULT]/100.0f))); + + if( curr_options->m_fEffects[PlayerOptions::EFFECT_SHRINK_TO_LINEAR] !=0 && fYOffset >= 0 ) + fZoom += fYOffset*(0.5f*curr_options->m_fEffects[PlayerOptions::EFFECT_SHRINK_TO_LINEAR]/ARROW_SIZE); return fZoom; } +float ArrowEffects::GetPulseInner() +{ + float fPulseInner = 1.0f; + if( curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_INNER] != 0 || curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_OUTER] != 0 ) + { + fPulseInner = ((curr_options->m_fEffects[PlayerOptions::EFFECT_PULSE_INNER]*0.5f)+1); + if (fPulseInner == 0) + { + fPulseInner = 0.01f; + } + } + return fPulseInner; +} + static ThemeMetric FRAME_WIDTH_EFFECTS_PIXELS_PER_SECOND( "ArrowEffects", "FrameWidthEffectsPixelsPerSecond" ); static ThemeMetric FRAME_WIDTH_EFFECTS_MIN_MULTIPLIER( "ArrowEffects", "FrameWidthEffectsMinMultiplier" ); static ThemeMetric FRAME_WIDTH_EFFECTS_MAX_MULTIPLIER( "ArrowEffects", "FrameWidthEffectsMaxMultiplier" ); @@ -896,7 +1464,7 @@ PlayerState *ps = Luna::check( L, 1 ); float fYReverseOffsetPixels = YReverseOffset( L, 4 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber(L, ArrowEffects::GetYPos(IArg(2)-1, FArg(3), fYReverseOffsetPixels)); + lua_pushnumber(L, ArrowEffects::GetYPos(ps, IArg(2)-1, FArg(3), fYReverseOffsetPixels)); return 1; } @@ -924,29 +1492,30 @@ { PlayerState *ps = Luna::check( L, 1 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber(L, ArrowEffects::GetZPos(IArg(2)-1, FArg(3))); + lua_pushnumber(L, ArrowEffects::GetZPos( ps, IArg(2)-1, FArg(3))); return 1; } - // ( PlayerState ps, float fYOffset ) + // ( PlayerState ps, float fYOffset, int iCol ) int GetRotationX( lua_State *L ) { PlayerState *ps = Luna::check( L, 1 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber(L, ArrowEffects::GetRotationX(FArg(2))); + bool bIsHoldCap = false; + lua_pushnumber(L, ArrowEffects::GetRotationX(ps,FArg(2), bIsHoldCap, IArg(3)-1)); return 1; } - // ( PlayerState ps, float fYOffset ) + // ( PlayerState ps, float fYOffset, int iCol ) int GetRotationY( lua_State *L ) { PlayerState *ps = Luna::check( L, 1 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber(L, ArrowEffects::GetRotationY(FArg(2))); + lua_pushnumber(L, ArrowEffects::GetRotationY(ps, FArg(2), IArg(3)-1)); return 1; } - // ( PlayerState ps, float fNoteBeat, bool bIsHoldHead ) + // ( PlayerState ps, float fNoteBeat, bool bIsHoldHead, int iCol ) int GetRotationZ( lua_State *L ) { PlayerState *ps = Luna::check( L, 1 ); @@ -957,16 +1526,16 @@ { bIsHoldHead = BArg(3); } - lua_pushnumber( L, ArrowEffects::GetRotationZ( ps, FArg(2), bIsHoldHead ) ); + lua_pushnumber( L, ArrowEffects::GetRotationZ( ps, FArg(2), bIsHoldHead, IArg(4)-1 ) ); return 1; } - // ( PlayerState ps ) + // ( PlayerState ps, int iCol ) int ReceptorGetRotationZ( lua_State *L ) { PlayerState *ps = Luna::check( L, 1 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber( L, ArrowEffects::ReceptorGetRotationZ( ps ) ); + lua_pushnumber( L, ArrowEffects::ReceptorGetRotationZ( ps, IArg(2)-1 ) ); return 1; } @@ -992,7 +1561,7 @@ { fFadeInPercentOfDrawFar = FArg(7); } - lua_pushnumber(L, ArrowEffects::GetAlpha(IArg(2)-1, FArg(3), fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar)); + lua_pushnumber(L, ArrowEffects::GetAlpha(ps, IArg(2)-1, FArg(3), fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar)); return 1; } @@ -1019,7 +1588,7 @@ { fFadeInPercentOfDrawFar = FArg(7); } - lua_pushnumber( L, ArrowEffects::GetGlow(IArg(2)-1, FArg(3), fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar ) ); + lua_pushnumber( L, ArrowEffects::GetGlow(ps, IArg(2)-1, FArg(3), fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar ) ); return 1; } @@ -1041,12 +1610,12 @@ return 1; } - // ( PlayerState ps ) + // ( PlayerState ps, float fYOffset, int iCol ) int GetZoom( lua_State *L ) { PlayerState *ps = Luna::check( L, 1 ); ArrowEffects::SetCurrentOptions(&ps->m_PlayerOptions.GetCurrent()); - lua_pushnumber( L, ArrowEffects::GetZoom( ps ) ); + lua_pushnumber( L, ArrowEffects::GetZoom( ps, FArg(2), IArg(3)-1 ) ); return 1; } diff -Nru stepmania-5.0.12+dfsg/src/ArrowEffects.h stepmania-5.1.0+dfsg/src/ArrowEffects.h --- stepmania-5.0.12+dfsg/src/ArrowEffects.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ArrowEffects.h 2018-01-25 05:01:07.000000000 +0000 @@ -2,6 +2,7 @@ #define ARROWEFFECTS_H #include "RageTypes.h" +#include "PlayerNumber.h" class PlayerState; class PlayerOptions; @@ -9,6 +10,8 @@ class ArrowEffects { public: + static void Init(PlayerNumber pn); + static float GetTime(); static void Update(); // SetCurrentOptions and the hidden static variable it set exists so that // ArrowEffects doesn't have to reach through the PlayerState to check @@ -29,9 +32,9 @@ static void GetXYZPos(const PlayerState* player_state, int col, float y_offset, float y_reverse_offset, RageVector3& ret, bool with_reverse= true) { - ret.x= GetXPos(player_state, col, y_offset); - ret.y= GetYPos(col, y_offset, y_reverse_offset, with_reverse); - ret.z= GetZPos(col, y_offset); + ret.x= GetMoveX(col) + GetXPos(player_state, col, y_offset); + ret.y= GetMoveY(col) + GetYPos(player_state, col, y_offset, y_reverse_offset, with_reverse); + ret.z= GetMoveZ(col) + GetZPos(player_state, col, y_offset); } /** @@ -44,7 +47,7 @@ * @param fYReverseOffsetPixels the amount offset due to reverse. * @param WithReverse a flag to see if the Reverse mod is on. * @return the actual display position. */ - static float GetYPos(int iCol, float fYOffset, float fYReverseOffsetPixels, bool WithReverse = true ); + static float GetYPos(const PlayerState* pPlayerState, int iCol, float fYOffset, float fYReverseOffsetPixels, bool WithReverse = true ); // Inverse of ArrowGetYPos (YPos -> fYOffset). static float GetYOffsetFromYPos(int iCol, float YPos, float fYReverseOffsetPixels); @@ -52,13 +55,20 @@ // fRotation is Z rotation of an arrow. This will depend on the column of // the arrow and possibly the Arrow effect and the fYOffset (in the case of // EFFECT_DIZZY). - static float GetRotationZ( const PlayerState* pPlayerState, float fNoteBeat, bool bIsHoldHead ); - static float ReceptorGetRotationZ( const PlayerState* pPlayerState ); + static float GetRotationZ( const PlayerState* pPlayerState, float fNoteBeat, bool bIsHoldHead, int iCol ); + static float ReceptorGetRotationZ( const PlayerState* pPlayerState, int iCol ); // Due to the handling logic for holds on Twirl, we need to use an offset instead. // It's more intuitive for Roll to be based off offset, so use an offset there too. - static float GetRotationX(float fYOffset); - static float GetRotationY(float fYOffset); + static float GetRotationX(const PlayerState* pPlayerState, float fYOffset, bool bIsHoldCap, int iCol); + static float GetRotationY(const PlayerState* pPlayerState, float fYOffset, int iCol); + + static float ReceptorGetRotationX( const PlayerState* pPlayerState, int iCol); + static float ReceptorGetRotationY( const PlayerState* pPlayerState, int iCol); + + static float GetMoveX(int iCol); + static float GetMoveY(int iCol); + static float GetMoveZ(int iCol); // fXPos is a horizontal position in pixels relative to the center of the field. // This depends on the column of the arrow and possibly the Arrow effect and @@ -73,18 +83,18 @@ * @param iCol the specific arrow column. * @param fYPos the Y position of the arrow. * @return the Z position. */ - static float GetZPos(int iCol, float fYPos); + static float GetZPos( const PlayerState* pPlayerState, int iCol, float fYPos); // Enable this if any ZPos effects are enabled. static bool NeedZBuffer(); // fAlpha is the transparency of the arrow. It depends on fYPos and the // AppearanceType. - static float GetAlpha(int iCol, float fYPos, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar); + static float GetAlpha(const PlayerState* pPlayerState, int iCol, float fYPos, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar); // fAlpha is the transparency of the arrow. It depends on fYPos and the // AppearanceType. - static float GetGlow(int iCol, float fYPos, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar ); + static float GetGlow(const PlayerState* pPlayerState, int iCol, float fYPos, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar ); /** * @brief Retrieve the current brightness. @@ -96,7 +106,9 @@ static float GetBrightness( const PlayerState* pPlayerState, float fNoteBeat ); // This is the zoom of the individual tracks, not of the whole Player. - static float GetZoom( const PlayerState* pPlayerState ); + static float GetZoom( const PlayerState* pPlayerState, float fYOffset, int iCol ); + static float GetZoomVariable( float fYOffset, int iCol, float fCurZoom ); + static float GetPulseInner(); static float GetFrameWidthScale( const PlayerState* pPlayerState, float fYOffset, float fOverlappedTime ); }; diff -Nru stepmania-5.0.12+dfsg/src/BannerCache.cpp stepmania-5.1.0+dfsg/src/BannerCache.cpp --- stepmania-5.0.12+dfsg/src/BannerCache.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/BannerCache.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,483 +0,0 @@ -#include "global.h" - -#include "BannerCache.h" -#include "Foreach.h" -#include "RageDisplay.h" -#include "RageUtil.h" -#include "RageLog.h" -#include "RageSurface_Load.h" -#include "SongCacheIndex.h" -#include "Sprite.h" -#include "PrefsManager.h" -#include "RageDisplay.h" -#include "RageTexture.h" -#include "RageTextureManager.h" -#include "RageSurface.h" -#include "RageSurfaceUtils.h" -#include "RageSurfaceUtils_Palettize.h" -#include "RageSurfaceUtils_Dither.h" -#include "RageSurfaceUtils_Zoom.h" -#include "SpecialFiles.h" - -#include "Banner.h" - -static Preference g_bPalettedBannerCache( "PalettedBannerCache", false ); - -/* Neither a global or a file scope static can be used for this because - * the order of initialization of nonlocal objects is unspecified. */ -//const RString BANNER_CACHE_INDEX = SpecialFiles::CACHE_DIR + "banners.cache"; -#define BANNER_CACHE_INDEX (SpecialFiles::CACHE_DIR + "banners.cache") - -/* Call CacheBanner to cache a banner by path. If the banner is already - * cached, it'll be recreated. This is efficient if the banner hasn't changed, - * but we still only do this in TidyUpData for songs. - * - * Call LoadBanner to load a cached banner into main memory. This will call - * CacheBanner only if needed. This will not do a date/size check; call CacheBanner - * directly if you need that. - * - * Call LoadCachedBanner to load a banner into a texture and retrieve an ID - * for it. You can check if the banner was actually preloaded by calling - * TEXTUREMAN->IsTextureRegistered() on the ID; it might not be if the banner cache - * is missing or disabled. - * - * Note that each cache entries has two hashes. The cache path is based soley - * on the pathname; this way, loading the cache doesn't have to do a stat on every - * banner. The full hash includes the file size and date, and is used only by - * CacheBanner to avoid doing extra work. - */ - -BannerCache *BANNERCACHE; // global and accessible from anywhere in our program - - -static map g_BannerPathToImage; -static int g_iDemandRefcount = 0; - -RString BannerCache::GetBannerCachePath( RString sBannerPath ) -{ - return SongCacheIndex::GetCacheFilePath( "Banners", sBannerPath ); -} - -/* If in on-demand mode, load all cached banners. This must be fast, so - * cache files will not be created if they don't exist; that should be done - * by CacheBanner or LoadBanner on startup. */ -void BannerCache::Demand() -{ - ++g_iDemandRefcount; - if( g_iDemandRefcount > 1 ) - return; - - if( PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_LOAD_ON_DEMAND ) - return; - - FOREACH_CONST_Child( &BannerData, p ) - { - RString sBannerPath = p->GetName(); - - if( g_BannerPathToImage.find(sBannerPath) != g_BannerPathToImage.end() ) - continue; /* already loaded */ - - const RString sCachePath = GetBannerCachePath(sBannerPath); - RageSurface *pImage = RageSurfaceUtils::LoadSurface( sCachePath ); - if( pImage == NULL ) - { - continue; /* doesn't exist */ - } - - g_BannerPathToImage[sBannerPath] = pImage; - } -} - -/* Release banners loaded on demand. */ -void BannerCache::Undemand() -{ - --g_iDemandRefcount; - if( g_iDemandRefcount != 0 ) - return; - - if( PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_LOAD_ON_DEMAND ) - return; - - UnloadAllBanners(); -} - -/* If in a low-res banner mode, load a low-res banner into memory, creating - * the cache file if necessary. Unlike CacheBanner(), the original file will - * not be examined unless the cached banner doesn't exist, so the banner will - * not be updated if the original file changes, for efficiency. */ -void BannerCache::LoadBanner( RString sBannerPath ) -{ - if( sBannerPath == "" ) - return; // nothing to do - if( PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_PRELOAD && - PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_LOAD_ON_DEMAND ) - return; - - /* Load it. */ - const RString sCachePath = GetBannerCachePath(sBannerPath); - - for( int tries = 0; tries < 2; ++tries ) - { - if( g_BannerPathToImage.find(sBannerPath) != g_BannerPathToImage.end() ) - return; /* already loaded */ - - CHECKPOINT_M( ssprintf( "BannerCache::LoadBanner: %s", sCachePath.c_str() ) ); - RageSurface *pImage = RageSurfaceUtils::LoadSurface( sCachePath ); - if( pImage == NULL ) - { - if( tries == 0 ) - { - /* The file doesn't exist. It's possible that the banner cache file is - * missing, so try to create it. Don't do this first, for efficiency. */ - //LOG->Trace( "Cached banner load of '%s' ('%s') failed, trying to cache ...", sBannerPath.c_str(), sCachePath.c_str() ); - - /* Skip the up-to-date check; it failed to load, so it can't be up - * to date. */ - CacheBannerInternal( sBannerPath ); - continue; - } - else - { - //LOG->Trace( "Cached banner load of '%s' ('%s') failed", sBannerPath.c_str(), sCachePath.c_str() ); - return; - } - } - - g_BannerPathToImage[sBannerPath] = pImage; - } -} - -void BannerCache::OutputStats() const -{ - int iTotalSize = 0; - FOREACHM_CONST( RString, RageSurface *, g_BannerPathToImage, it ) - { - const RageSurface *pImage = it->second; - const int iSize = pImage->pitch * pImage->h; - iTotalSize += iSize; - } - LOG->Info( "%i bytes of banners loaded", iTotalSize ); -} - -void BannerCache::UnloadAllBanners() -{ - FOREACHM( RString, RageSurface *, g_BannerPathToImage, it ) - delete it->second; - - g_BannerPathToImage.clear(); -} - -BannerCache::BannerCache() -{ - ReadFromDisk(); -} - -BannerCache::~BannerCache() -{ - UnloadAllBanners(); -} - -void BannerCache::ReadFromDisk() -{ - BannerData.ReadFile( BANNER_CACHE_INDEX ); // don't care if this fails -} - -struct BannerTexture: public RageTexture -{ - unsigned m_uTexHandle; - unsigned GetTexHandle() const { return m_uTexHandle; }; // accessed by RageDisplay - /* This is a reference to a pointer in g_BannerPathToImage. */ - RageSurface *&m_pImage; - int m_iWidth, m_iHeight; - - BannerTexture( RageTextureID id, RageSurface *&pImage, int iWidth, int iHeight ): - RageTexture(id), m_pImage(pImage), m_iWidth(iWidth), m_iHeight(iHeight) - { - Create(); - } - - ~BannerTexture() - { - Destroy(); - } - - void Create() - { - ASSERT( m_pImage != NULL ); - - /* The image is preprocessed; do as little work as possible. */ - - /* The source width is the width of the original file. */ - m_iSourceWidth = m_iWidth; - m_iSourceHeight = m_iHeight; - - /* The image width (within the texture) is always the entire texture. - * Only resize if the max texture size requires it; since these images - * are already scaled down, this shouldn't happen often. */ - if( m_pImage->w > DISPLAY->GetMaxTextureSize() || - m_pImage->h > DISPLAY->GetMaxTextureSize() ) - { - LOG->Warn( "Converted %s at runtime", GetID().filename.c_str() ); - int iWidth = min( m_pImage->w, DISPLAY->GetMaxTextureSize() ); - int iHeight = min( m_pImage->h, DISPLAY->GetMaxTextureSize() ); - RageSurfaceUtils::Zoom( m_pImage, iWidth, iHeight ); - } - - /* We did this when we cached it. */ - ASSERT( m_pImage->w == power_of_two(m_pImage->w) ); - ASSERT( m_pImage->h == power_of_two(m_pImage->h) ); - - m_iTextureWidth = m_iImageWidth = m_pImage->w; - m_iTextureHeight = m_iImageHeight = m_pImage->h; - - /* Find a supported texture format. If it happens to match the stored - * file, we won't have to do any conversion here, and that'll happen - * often with paletted images. */ - RagePixelFormat pf = m_pImage->format->BitsPerPixel == 8? RagePixelFormat_PAL: RagePixelFormat_RGB5A1; - if( !DISPLAY->SupportsTextureFormat(pf) ) - pf = RagePixelFormat_RGBA4; - - ASSERT( DISPLAY->SupportsTextureFormat(pf) ); - - ASSERT(m_pImage != NULL); - m_uTexHandle = DISPLAY->CreateTexture( pf, m_pImage, false ); - - CreateFrameRects(); - } - - void Destroy() - { - if( m_uTexHandle ) - DISPLAY->DeleteTexture( m_uTexHandle ); - m_uTexHandle = 0; - } - - void Reload() - { - Destroy(); - Create(); - } - - void Invalidate() - { - m_uTexHandle = 0; /* don't Destroy() */ - } -}; - -/* If a banner is cached, get its ID for use. */ -RageTextureID BannerCache::LoadCachedBanner( RString sBannerPath ) -{ - RageTextureID ID( GetBannerCachePath(sBannerPath) ); - - if( sBannerPath == "" ) - return ID; - - //LOG->Trace( "BannerCache::LoadCachedBanner(%s): %s", sBannerPath.c_str(), ID.filename.c_str() ); - - /* Hack: make sure Banner::Load doesn't change our return value and end up - * reloading. */ - ID = Sprite::SongBannerTexture(ID); - - /* It's not in a texture. Do we have it loaded? */ - if( g_BannerPathToImage.find(sBannerPath) == g_BannerPathToImage.end() ) - { - /* Oops, the image is missing. Warn and continue. */ - if(PREFSMAN->m_BannerCache != BNCACHE_OFF) - { - LOG->Warn( "Banner cache for '%s' wasn't loaded", sBannerPath.c_str() ); - } - return ID; - } - - /* This is a reference to a pointer. BannerTexture's ctor may change it - * when converting; this way, the conversion will end up in the map so we - * only have to convert once. */ - RageSurface *&pImage = g_BannerPathToImage[sBannerPath]; - ASSERT( pImage != NULL ); - - int iSourceWidth = 0, iSourceHeight = 0; - BannerData.GetValue( sBannerPath, "Width", iSourceWidth ); - BannerData.GetValue( sBannerPath, "Height", iSourceHeight ); - if( iSourceWidth == 0 || iSourceHeight == 0 ) - { - LOG->UserLog( "Cache file", sBannerPath, "couldn't be loaded." ); - return ID; - } - - /* Is the banner already in a texture? */ - if( TEXTUREMAN->IsTextureRegistered(ID) ) - return ID; /* It's all set. */ - - //LOG->Trace( "Loading banner texture %s; src %ix%i; image %ix%i", - // ID.filename.c_str(), iSourceWidth, iSourceHeight, pImage->w, pImage->h ); - RageTexture *pTexture = new BannerTexture( ID, pImage, iSourceWidth, iSourceHeight ); - - ID.Policy = RageTextureID::TEX_VOLATILE; - TEXTUREMAN->RegisterTexture( ID, pTexture ); - TEXTUREMAN->UnloadTexture( pTexture ); - - return ID; -} - -static inline int closest( int num, int n1, int n2 ) -{ - if( abs(num - n1) > abs(num - n2) ) - return n2; - return n1; -} - -/* Create or update the banner cache file as necessary. If in preload mode, - * load the cache file, too. (This is done at startup.) */ -void BannerCache::CacheBanner( RString sBannerPath ) -{ - if( PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_PRELOAD && - PREFSMAN->m_BannerCache != BNCACHE_LOW_RES_LOAD_ON_DEMAND ) - return; - - CHECKPOINT_M( sBannerPath ); - if( !DoesFileExist(sBannerPath) ) - return; - - const RString sCachePath = GetBannerCachePath(sBannerPath); - - /* Check the full file hash. If it's the loaded and identical, don't recache. */ - if( DoesFileExist(sCachePath) ) - { - bool bCacheUpToDate = PREFSMAN->m_bFastLoad; - if( !bCacheUpToDate ) - { - unsigned CurFullHash; - const unsigned FullHash = GetHashForFile( sBannerPath ); - if( BannerData.GetValue( sBannerPath, "FullHash", CurFullHash ) && CurFullHash == FullHash ) - bCacheUpToDate = true; - } - - if( bCacheUpToDate ) - { - /* It's identical. Just load it, if in preload. */ - if( PREFSMAN->m_BannerCache == BNCACHE_LOW_RES_PRELOAD ) - LoadBanner( sBannerPath ); - - return; - } - } - - /* The cache file doesn't exist, or is out of date. Cache it. This - * will also load the cache into memory if in PRELOAD. */ - CacheBannerInternal( sBannerPath ); -} - -void BannerCache::CacheBannerInternal( RString sBannerPath ) -{ - RString sError; - RageSurface *pImage = RageSurfaceUtils::LoadFile( sBannerPath, sError ); - if( pImage == NULL ) - { - LOG->UserLog( "Cache file", sBannerPath, "couldn't be loaded: %s", sError.c_str() ); - return; - } - - const int iSourceWidth = pImage->w, iSourceHeight = pImage->h; - - int iWidth = pImage->w / 2, iHeight = pImage->h / 2; -// int iWidth = pImage->w, iHeight = pImage->h; - - /* Round to the nearest power of two. This simplifies the actual texture load. */ - iWidth = closest( iWidth, power_of_two(iWidth), power_of_two(iWidth) / 2 ); - iHeight = closest( iHeight, power_of_two(iHeight), power_of_two(iHeight) / 2 ); - - /* Don't resize the image to less than 32 pixels in either dimension or the next - * power of two of the source (whichever is smaller); it's already very low res. */ - iWidth = max( iWidth, min(32, power_of_two(iSourceWidth)) ); - iHeight = max( iHeight, min(32, power_of_two(iSourceHeight)) ); - - //RageSurfaceUtils::ApplyHotPinkColorKey( pImage ); - - RageSurfaceUtils::Zoom( pImage, iWidth, iHeight ); - - /* - * When paletted banner cache is enabled, cached banners are paletted. Cached - * 32-bit banners take 1/16 as much memory, 16-bit banners take 1/8, and paletted - * banners take 1/4. - * - * When paletted banner cache is disabled, cached banners are stored in 16-bit - * RGBA. Cached 32-bit banners take 1/8 as much memory, cached 16-bit banners - * take 1/4, and cached paletted banners take 1/2. - * - * Paletted cache is disabled by default because palettization takes time, causing - * the initial cache run to take longer. Also, newer ATI hardware doesn't supported - * paletted textures, which would slow down runtime, because we have to depalettize - * on use. They'd still have the same memory benefits, though, since we only load - * one cached banner into a texture at once, and the speed hit may not matter on - * newer ATI cards. RGBA is safer, though. - */ - if( g_bPalettedBannerCache ) - { - if( pImage->fmt.BytesPerPixel != 1 ) - RageSurfaceUtils::Palettize( pImage ); - } - else - { - /* Dither to the final format. We use A1RGB5, since that's usually supported - * natively by both OpenGL and D3D. */ - RageSurface *dst = CreateSurface( pImage->w, pImage->h, 16, - 0x7C00, 0x03E0, 0x001F, 0x8000 ); - - /* OrderedDither is still faster than ErrorDiffusionDither, and - * these images are very small and only displayed briefly. */ - RageSurfaceUtils::OrderedDither( pImage, dst ); - delete pImage; - pImage = dst; - } - - const RString sCachePath = GetBannerCachePath(sBannerPath); - RageSurfaceUtils::SaveSurface( pImage, sCachePath ); - - /* If an old image is loaded, free it. */ - if( g_BannerPathToImage.find(sBannerPath) != g_BannerPathToImage.end() ) - { - RageSurface *oldimg = g_BannerPathToImage[sBannerPath]; - delete oldimg; - g_BannerPathToImage.erase(sBannerPath); - } - - if( PREFSMAN->m_BannerCache == BNCACHE_LOW_RES_PRELOAD ) - { - /* Keep it; we're just going to load it anyway. */ - g_BannerPathToImage[sBannerPath] = pImage; - } - else - delete pImage; - - /* Remember the original size. */ - BannerData.SetValue( sBannerPath, "Path", sCachePath ); - BannerData.SetValue( sBannerPath, "Width", iSourceWidth ); - BannerData.SetValue( sBannerPath, "Height", iSourceHeight ); - BannerData.SetValue( sBannerPath, "FullHash", GetHashForFile( sBannerPath ) ); - BannerData.WriteFile( BANNER_CACHE_INDEX ); -} - -/* - * (c) 2003 Glenn Maynard - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, and/or sell copies of the Software, and to permit persons to - * whom the Software is furnished to do so, provided that the above - * copyright notice(s) and this permission notice appear in all copies of - * the Software and that both the above copyright notice(s) and this - * permission notice appear in supporting documentation. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF - * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS - * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT - * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS - * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ diff -Nru stepmania-5.0.12+dfsg/src/BannerCache.h stepmania-5.1.0+dfsg/src/BannerCache.h --- stepmania-5.0.12+dfsg/src/BannerCache.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/BannerCache.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -#ifndef BANNER_CACHE_H -#define BANNER_CACHE_H - -#include "IniFile.h" - -#include "RageTexture.h" - -class LoadingWindow; -/** @brief Maintains a cache of reduced-quality banners. */ -class BannerCache -{ -public: - BannerCache(); - ~BannerCache(); - void ReadFromDisk(); - - RageTextureID LoadCachedBanner( RString sBannerPath ); - void CacheBanner( RString sBannerPath ); - void LoadBanner( RString sBannerPath ); - - void Demand(); - void Undemand(); - - void OutputStats() const; - -private: - static RString GetBannerCachePath( RString sBannerPath ); - void UnloadAllBanners(); - void CacheBannerInternal( RString sBannerPath ); - - IniFile BannerData; -}; - -extern BannerCache *BANNERCACHE; // global and accessible from anywhere in our program - -#endif - -/** - * @file - * @author Glenn Maynard (c) 2003 - * @section LICENSE - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, and/or sell copies of the Software, and to permit persons to - * whom the Software is furnished to do so, provided that the above - * copyright notice(s) and this permission notice appear in all copies of - * the Software and that both the above copyright notice(s) and this - * permission notice appear in supporting documentation. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF - * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS - * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT - * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS - * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ diff -Nru stepmania-5.0.12+dfsg/src/Banner.cpp stepmania-5.1.0+dfsg/src/Banner.cpp --- stepmania-5.0.12+dfsg/src/Banner.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Banner.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,6 @@ #include "global.h" #include "Banner.h" -#include "BannerCache.h" +#include "ImageCache.h" #include "SongManager.h" #include "RageUtil.h" #include "Song.h" @@ -57,7 +57,7 @@ } RageTextureID ID; - bool bLowRes = (PREFSMAN->m_BannerCache != BNCACHE_FULL); + bool bLowRes = (PREFSMAN->m_ImageCache != IMGCACHE_FULL); if( !bLowRes ) { ID = Sprite::SongBannerTexture( sPath ); @@ -65,7 +65,7 @@ else { // Try to load the low quality version. - ID = BANNERCACHE->LoadCachedBanner( sPath ); + ID = IMAGECACHE->LoadCachedImage( "Banner", sPath ); } if( TEXTUREMAN->IsTextureRegistered(ID) ) diff -Nru stepmania-5.0.12+dfsg/src/BitmapText.cpp stepmania-5.1.0+dfsg/src/BitmapText.cpp --- stepmania-5.0.12+dfsg/src/BitmapText.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/BitmapText.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -414,6 +414,10 @@ m_aVertices[i+j].c.a = (unsigned char)( m_aVertices[i+j].c.a * fAlpha ); } } + + bool bDistanceField = m_pFont->IsDistanceField(); + if( bDistanceField ) + DISPLAY->SetEffectMode( EffectMode_DistanceField ); for( int start = iStartGlyph; start < iEndGlyph; ) { @@ -443,6 +447,8 @@ start = end; } + if( bDistanceField ) + DISPLAY->SetEffectMode( EffectMode_Normal ); } /* sText is UTF-8. If not all of the characters in sText are available in the diff -Nru stepmania-5.0.12+dfsg/src/Bookkeeper.cpp stepmania-5.1.0+dfsg/src/Bookkeeper.cpp --- stepmania-5.0.12+dfsg/src/Bookkeeper.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Bookkeeper.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -4,10 +4,12 @@ #include "RageLog.h" #include "IniFile.h" #include "GameConstantsAndTypes.h" +#include "GameState.h" #include "SongManager.h" #include "RageFile.h" #include "XmlFile.h" #include "XmlFileUtil.h" +#include "SpecialFiles.h" #include Bookkeeper* BOOKKEEPER = NULL; // global and accessible from anywhere in our program @@ -120,6 +122,17 @@ if( !XmlFileUtil::LoadFromFileShowErrors(xml, COINS_DAT) ) return; + int numCoins = 0; + ReadCoinsFile(numCoins); + + if ( numCoins < 0 ) + numCoins = 0; + else if ( numCoins / PREFSMAN->m_iCoinsPerCredit > MAX_NUM_CREDITS ) + numCoins = 0; + + LOG->Trace("Number of Coins to Load on boot: %i", numCoins); + GAMESTATE->m_iCoins.Set(numCoins); + LoadFromNode( &xml ); } @@ -145,6 +158,20 @@ ++m_mapCoinsForHour[d]; } +void Bookkeeper::WriteCoinsFile( int coins ) +{ + IniFile ini; + ini.SetValue( "Bookkeeping", "Coins", coins); + ini.WriteFile( SpecialFiles::COINS_INI ); +} + +void Bookkeeper::ReadCoinsFile( int &coins ) +{ + IniFile ini; + ini.ReadFile( SpecialFiles::COINS_INI ); + ini.GetValue( "Bookkeeping", "Coins", coins); +} + // Return the number of coins between [beginning,ending). int Bookkeeper::GetNumCoinsInRange( map::const_iterator begin, map::const_iterator end ) const { diff -Nru stepmania-5.0.12+dfsg/src/Bookkeeper.h stepmania-5.1.0+dfsg/src/Bookkeeper.h --- stepmania-5.0.12+dfsg/src/Bookkeeper.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Bookkeeper.h 2018-01-25 05:01:07.000000000 +0000 @@ -21,6 +21,9 @@ void GetCoinsLastWeeks( int coins[NUM_LAST_WEEKS] ) const; void GetCoinsByDayOfWeek( int coins[DAYS_IN_WEEK] ) const; void GetCoinsByHour( int coins[HOURS_IN_DAY] ) const; + void WriteCoinsFile( int coins ) ; + void ReadCoinsFile( int &coins ) ; + void LoadFromNode( const XNode *pNode ); XNode* CreateNode() const; diff -Nru stepmania-5.0.12+dfsg/src/CMakeData-arch.cmake stepmania-5.1.0+dfsg/src/CMakeData-arch.cmake --- stepmania-5.0.12+dfsg/src/CMakeData-arch.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CMakeData-arch.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -125,12 +125,14 @@ ) if(APPLE) - list(APPEND SMDATA_ARCH_MOVIE_TEXTURE_SRC - "arch/MovieTexture/MovieTexture_FFMpeg.cpp" - ) - list(APPEND SMDATA_ARCH_MOVIE_TEXTURE_HPP - "arch/MovieTexture/MovieTexture_FFMpeg.h" - ) + if (${HAS_FFMPEG}) + list(APPEND SMDATA_ARCH_MOVIE_TEXTURE_SRC + "arch/MovieTexture/MovieTexture_FFMpeg.cpp" + ) + list(APPEND SMDATA_ARCH_MOVIE_TEXTURE_HPP + "arch/MovieTexture/MovieTexture_FFMpeg.h" + ) + endif() elseif(MSVC) list(APPEND SMDATA_ARCH_MOVIE_TEXTURE_SRC "arch/MovieTexture/MovieTexture_FFMpeg.cpp" @@ -281,7 +283,7 @@ list(APPEND SMDATA_ARCH_LIGHTS_HPP "arch/Lights/LightsDriver_Export.h" ) - + if(WIN32) list(APPEND SMDATA_ARCH_LIGHTS_SRC "arch/Lights/LightsDriver_Win32Parallel.cpp" @@ -501,4 +503,3 @@ ${SMDATA_ARCH_SOUND_HPP} ${SMDATA_ARCH_THREADS_HPP} ) - diff -Nru stepmania-5.0.12+dfsg/src/CMakeData-data.cmake stepmania-5.1.0+dfsg/src/CMakeData-data.cmake --- stepmania-5.0.12+dfsg/src/CMakeData-data.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CMakeData-data.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -155,7 +155,7 @@ "Attack.cpp" "AutoKeysounds.cpp" "BackgroundUtil.cpp" - "BannerCache.cpp" + "ImageCache.cpp" "Character.cpp" "CodeDetector.cpp" "CodeSet.cpp" @@ -167,6 +167,7 @@ "CryptHelpers.cpp" "DateTime.cpp" "Difficulty.cpp" + "DisplaySpec.cpp" "EnumHelper.cpp" "FileDownload.cpp" "Game.cpp" @@ -207,7 +208,7 @@ "Attack.h" "AutoKeysounds.h" "BackgroundUtil.h" - "BannerCache.h" + "ImageCache.h" "Character.h" "CodeDetector.h" "CodeSet.h" @@ -218,7 +219,7 @@ "CryptHelpers.h" "CubicSpline.h" "DateTime.h" - "DisplayResolutions.h" + "DisplaySpec.h" "Difficulty.h" "EnumHelper.h" "FileDownload.h" diff -Nru stepmania-5.0.12+dfsg/src/CMakeData-gtk.cmake stepmania-5.1.0+dfsg/src/CMakeData-gtk.cmake --- stepmania-5.0.12+dfsg/src/CMakeData-gtk.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CMakeData-gtk.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -8,6 +8,12 @@ "arch/LoadingWindow/LoadingWindow_GtkModule.h" ) +sm_add_compile_flag("GtkModule" "-std=${SM_CPP_STANDARD}") +if (CMAKE_CXX_COMPILER MATCHES "clang") + sm_add_compile_flag("GtkModule" "-stdlib=libc++") + set_target_properties("GtkModule" PROPERTIES LINK_FLAGS "-stdlib=libc++") +endif() + # It is normally not appropriate to set the prefix to the empty string. # This is to maintain compatibility with the current source. # At some point, it may be worth being more flexible. diff -Nru stepmania-5.0.12+dfsg/src/CMakeLists.txt stepmania-5.1.0+dfsg/src/CMakeLists.txt --- stepmania-5.0.12+dfsg/src/CMakeLists.txt 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CMakeLists.txt 2018-01-25 05:01:07.000000000 +0000 @@ -165,7 +165,7 @@ sm_add_compile_definition("${SM_EXE_NAME}" _CRT_SECURE_NO_WARNINGS) sm_add_compile_definition("${SM_EXE_NAME}" _WINSOCK_DEPRECATED_NO_WARNINGS) sm_add_compile_definition("${SM_EXE_NAME}" GLEW_STATIC) - + set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${SM_PROGRAM_DIR}" @@ -173,7 +173,7 @@ RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_PROGRAM_DIR}" ) - + if(MSVC) # Allow for getting a virtualdub stack trace. add_custom_command(TARGET "${SM_EXE_NAME}" @@ -190,6 +190,8 @@ RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_ROOT_DIR}" MACOSX_BUNDLE_INFO_PLIST "${SM_XCODE_DIR}/Info.StepMania.plist" + XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "${SM_CPP_STANDARD}" + XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" XCODE_ATTRIBUTE_INFOPLIST_FILE "${SM_XCODE_DIR}/Info.StepMania.plist" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS "YES" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=Release] "RELEASE" @@ -198,6 +200,7 @@ XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=RelWithDebInfo] "RELWITHDEBINFO" XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER "${SM_XCODE_DIR}/plistHelper.hpp" XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/archutils/Darwin/StepMania.pch" + XCODE_ATTRIBUTE_GCC_ENABLE_CPP_EXCEPTIONS "NO" XCODE_ATTRIBUTE_LIBRARY_SEARCH_PATHS "${SM_XCODE_DIR}/Libraries" ) @@ -304,6 +307,13 @@ if (${HAS_FFMPEG}) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_FFMPEG) endif() + if (${HAS_XRANDR}) + sm_add_compile_definition("${SM_EXE_NAME}" HAVE_XRANDR) + endif() + if (${HAS_XINERAMA} AND WITH_XINERAMA) + sm_add_compile_definition("${SM_EXE_NAME}" HAVE_XINERAMA) + endif() + if (BSD) sm_add_compile_definition("${SM_EXE_NAME}" BSD) endif() @@ -316,6 +326,12 @@ if("${CMAKE_SYSTEM}" MATCHES "Linux") sm_add_compile_definition("${SM_EXE_NAME}" LINUX) endif() + + sm_add_compile_flag("${SM_EXE_NAME}" "-std=${SM_CPP_STANDARD}") + if (CMAKE_CXX_COMPILER MATCHES "clang") + sm_add_compile_flag("${SM_EXE_NAME}" "-stdlib=libc++") + set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS "-stdlib=libc++") + endif() endif() set_property(TARGET "${SM_EXE_NAME}" PROPERTY FOLDER "Internal Libraries") @@ -346,7 +362,7 @@ endif() if (WIN32) - + list(APPEND SMDATA_LINK_LIB # The misc libraries are here. "${LIB_SWSCALE}" @@ -354,7 +370,7 @@ "${LIB_AVFORMAT}" "${LIB_AVUTIL}" ) - + if (WITH_OGG) list(APPEND SMDATA_LINK_LIB "ogg" @@ -362,15 +378,15 @@ "vorbisfile" ) endif() - + list(APPEND SMDATA_LINK_LIB "dbghelp.lib" "setupapi.lib" "hid.lib" ) - + get_filename_component(DIRECTX_LIBRARY_DIR "${DIRECTX_LIBRARIES}" DIRECTORY) - + sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${DIRECTX_LIBRARY_DIR}\"") sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${SM_EXTERN_DIR}/ffmpeg/lib\"") sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${SM_SRC_DIR}/archutils/Win32/ddk\"") @@ -385,7 +401,7 @@ set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB:msvcrt.lib") set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS") set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS") - + elseif(APPLE) # The following were removed from SMDATA_LINK_LIB to "match" StepMania's pbxproj. # ${MAC_FRAME_APPKIT} @@ -508,6 +524,7 @@ list(APPEND SMDATA_LINK_LIB ${XRANDR_LIBRARIES} + ${XINERAMA_LIBRARIES} ) list(REMOVE_ITEM SMDATA_LINK_LIB "zlib") @@ -603,7 +620,7 @@ if(WIN32) set(SM_INSTALL_DESTINATION ".") else() - set(SM_INSTALL_DESTINATION "stepmania-5.0") + set(SM_INSTALL_DESTINATION "stepmania-5.1") endif() if(NOT APPLE) diff -Nru stepmania-5.0.12+dfsg/src/CommonMetrics.cpp stepmania-5.1.0+dfsg/src/CommonMetrics.cpp --- stepmania-5.0.12+dfsg/src/CommonMetrics.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CommonMetrics.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -20,6 +20,7 @@ ThemeMetricStepsTypesToShow CommonMetrics::STEPS_TYPES_TO_SHOW ("Common","StepsTypesToHide"); ThemeMetric CommonMetrics::AUTO_SET_STYLE ("Common","AutoSetStyle"); ThemeMetric CommonMetrics::PERCENT_SCORE_DECIMAL_PLACES ("Common","PercentScoreDecimalPlaces"); +ThemeMetric CommonMetrics::IMAGES_TO_CACHE ("Common","ImageCache"); ThemeMetricDifficultiesToShow::ThemeMetricDifficultiesToShow( const RString& sGroup, const RString& sName ) : ThemeMetric(sGroup,sName) diff -Nru stepmania-5.0.12+dfsg/src/CommonMetrics.h stepmania-5.1.0+dfsg/src/CommonMetrics.h --- stepmania-5.0.12+dfsg/src/CommonMetrics.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CommonMetrics.h 2018-01-25 05:01:07.000000000 +0000 @@ -74,6 +74,8 @@ extern ThemeMetric AUTO_SET_STYLE; /** @brief How many decimal places are used? */ extern ThemeMetric PERCENT_SCORE_DECIMAL_PLACES; + + extern ThemeMetric IMAGES_TO_CACHE; RString LocalizeOptionItem( const RString &s, bool bOptional ); }; diff -Nru stepmania-5.0.12+dfsg/src/Course.cpp stepmania-5.1.0+dfsg/src/Course.cpp --- stepmania-5.0.12+dfsg/src/Course.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Course.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -1256,7 +1256,19 @@ static int HasMods( T* p, lua_State *L ) { lua_pushboolean(L, p->HasMods() ); return 1; } static int HasTimedMods( T* p, lua_State *L ) { lua_pushboolean( L, p->HasTimedMods() ); return 1; } DEFINE_METHOD( GetCourseType, GetCourseType() ) - static int GetCourseEntry( T* p, lua_State *L ) { CourseEntry &ce = p->m_vEntries[IArg(1)]; ce.PushSelf(L); return 1; } + static int GetCourseEntry(T* p, lua_State* L) + { + size_t id= static_cast(IArg(1)); + if(id >= p->m_vEntries.size()) + { + lua_pushnil(L); + } + else + { + p->m_vEntries[id].PushSelf(L); + } + return 1; + } static int GetCourseEntries( T* p, lua_State *L ) { vector v; @@ -1267,6 +1279,11 @@ LuaHelpers::CreateTableFromArray( v, L ); return 1; } + static int GetNumCourseEntries(T* p, lua_State* L) + { + lua_pushnumber(L, p->m_vEntries.size()); + return 1; + } static int GetAllTrails( T* p, lua_State *L ) { vector v; @@ -1318,6 +1335,7 @@ ADD_METHOD( GetCourseType ); ADD_METHOD( GetCourseEntry ); ADD_METHOD( GetCourseEntries ); + ADD_METHOD(GetNumCourseEntries); ADD_METHOD( GetAllTrails ); ADD_METHOD( GetBannerPath ); ADD_METHOD( GetBackgroundPath ); diff -Nru stepmania-5.0.12+dfsg/src/CourseLoaderCRS.cpp stepmania-5.1.0+dfsg/src/CourseLoaderCRS.cpp --- stepmania-5.0.12+dfsg/src/CourseLoaderCRS.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/CourseLoaderCRS.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -9,7 +9,7 @@ #include "PlayerOptions.h" #include "SongManager.h" #include "TitleSubstitution.h" -#include "BannerCache.h" +#include "ImageCache.h" #include "RageFileManager.h" #include "CourseWriterCRS.h" #include "RageUtil.h" @@ -380,7 +380,7 @@ if( out.m_vEntries.empty() ) return true; if( out.m_sBannerPath != "" ) - BANNERCACHE->CacheBanner( out.GetBannerPath() ); + IMAGECACHE->CacheImage( "Banner", out.GetBannerPath() ); /* Cache each trail RadarValues that's slow to load, so we * don't have to do it at runtime. */ diff -Nru stepmania-5.0.12+dfsg/src/DisplaySpec.cpp stepmania-5.1.0+dfsg/src/DisplaySpec.cpp --- stepmania-5.0.12+dfsg/src/DisplaySpec.cpp 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/DisplaySpec.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,149 @@ +#include "global.h" +#include "DisplaySpec.h" +#include "LuaBinding.h" +#include "RageLog.h" + +class LunaDisplayMode: public Luna +{ +public: + DEFINE_METHOD( GetWidth, width ); + DEFINE_METHOD( GetHeight, height ); + DEFINE_METHOD( GetRefreshRate, refreshRate ); + LunaDisplayMode() + { + ADD_METHOD( GetWidth ); + ADD_METHOD( GetHeight ); + ADD_METHOD( GetRefreshRate ); + } +}; + +LUA_REGISTER_CLASS( DisplayMode ) + +class LunaDisplaySpec: public Luna +{ +public: + DEFINE_METHOD( GetId, id() ); + DEFINE_METHOD( GetName, name() ); + DEFINE_METHOD( IsVirtual, isVirtual() ); + static int GetSupportedModes( T* p, lua_State *L) + { + std::vector v; + for (auto const &m: p->supportedModes()) + { + v.push_back( const_cast(&m)); + } + LuaHelpers::CreateTableFromArray( v, L ); + return 1; + } + static int GetCurrentMode( T *p, lua_State *L ) + { + if (p->currentMode() != NULL) { + DisplayMode *m = const_cast( p->currentMode() ); + m->PushSelf( L ); + } else { + lua_pushnil( L ); + } + return 1; + } + + LunaDisplaySpec() + { + ADD_METHOD( GetId ); + ADD_METHOD( GetName ); + ADD_METHOD( GetSupportedModes ); + ADD_METHOD( IsVirtual ); + ADD_METHOD( GetCurrentMode ); + } +}; + +LUA_REGISTER_CLASS( DisplaySpec ) + +namespace +{ + const char *DISPLAYSPECS = "DisplaySpecs"; + + DisplaySpecs *check_DisplaySpecs(lua_State *L) + { + void *ud = luaL_checkudata( L, 1, DISPLAYSPECS ); + luaL_argcheck( L, ud != NULL, 1, "`DisplaySpecs` expected" ); + return static_cast(ud); + } + + int DisplaySpecs_gc(lua_State *L) + { + DisplaySpecs *specs = static_cast (lua_touserdata( L, 1 )); + if (specs) + { + specs->~DisplaySpecs(); + } + + return 0; + } + + int DisplaySpecs_len(lua_State *L) + { + DisplaySpecs *specs = check_DisplaySpecs( L ); + if (specs) + { + lua_pushinteger( L, specs->size() ); + } else + { + lua_pushinteger( L, 0 ); + } + return 1; + } + + int DisplaySpecs_tostring(lua_State *L) + { + DisplaySpecs *specs = check_DisplaySpecs( L ); + lua_pushfstring( L, "DisplaySpecs: %p", specs ); + return 1; + } + + int DisplaySpecs_get(lua_State *L) + { + DisplaySpecs *specs = check_DisplaySpecs( L ); + if (specs) + { + int index = luaL_checkint( L, 2 ); + luaL_argcheck( L, 1 <= index && static_cast (index) <= specs->size(), 2, + "index out of range" ); + DisplaySpecs::iterator it = specs->begin(); + std::advance( it, index - 1 ); + DisplaySpec *s = const_cast(&(*it)); + s->PushSelf( L ); + } + else + { + lua_pushnil( L ); + } + return 1; + } + + const luaL_Reg DisplaySpecs_meta[] = + { + {"__gc", DisplaySpecs_gc}, + {"__index", DisplaySpecs_get}, + {"__len", DisplaySpecs_len}, + {"__tostring", DisplaySpecs_tostring}, + {NULL, NULL} + }; + + + void register_DisplaySpecs(lua_State *L) + { + luaL_newmetatable( L, DISPLAYSPECS ); + luaL_openlib( L, 0, DisplaySpecs_meta, 0 ); + lua_pop( L, 1 ); + } +} +REGISTER_WITH_LUA_FUNCTION(register_DisplaySpecs); + +DisplaySpecs *pushDisplaySpecs(lua_State *L, const DisplaySpecs &specs) +{ + void *vpSpecs = lua_newuserdata( L, sizeof( DisplaySpecs )); + DisplaySpecs *pspecs = new( vpSpecs ) DisplaySpecs( specs ); + luaL_getmetatable( L, DISPLAYSPECS ); + lua_setmetatable( L, -2 ); + return pspecs; +} diff -Nru stepmania-5.0.12+dfsg/src/DisplaySpec.h stepmania-5.1.0+dfsg/src/DisplaySpec.h --- stepmania-5.0.12+dfsg/src/DisplaySpec.h 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/DisplaySpec.h 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,203 @@ +#ifndef DisplaySpec_H +#define DisplaySpec_H + +#include + +#include "RageTypes.h" + +struct DisplayMode { + // Width (in pixels) of the display in this mode + unsigned int width; + // Height (in pixels) of the display in this mode + unsigned int height; + /** Refresh rate, in hz, of the display for the given mode + * MacOS Quartz Display Services provides rate as double, + * winapi DEVMODE uses 32bit unsigned int (still gives rate as hz), + * RandR gives 32 bit pixel clock, which is then divided by width*height. + */ + double refreshRate; + /* + * Bits-per-pixel is *not* a property of the DisplayMode for our purposes: + * bit-depth is going to be a property of the OpenGL/D3D context, not a display + * configuration + */ + + bool operator<( const DisplayMode &other ) const + { +/** @brief A quick way to compare the two DisplayResolutions. */ +#define COMPARE(x) if( x != other.x ) return x < other.x; + COMPARE( width ); + COMPARE( height ); + COMPARE( refreshRate ); +#undef COMPARE + return false; + } + + // Lua + void PushSelf( lua_State *L ); +}; + +/** @brief The dimensions of the program. */ +class DisplaySpec +{ +public: + /* + * Construct a specification for the display with the given ID, which supports the given modes, + * and is currently using the specified mode with the specified logical screen bounds + */ + DisplaySpec(const std::string &id, + const std::string &name, + const std::set &modes, + const DisplayMode &curMode, + const RectI &curBounds, + const bool isVirtual=false): + m_sId( id ), m_sName( name ), + m_sModes( modes ), m_bCurModeActive( true ), m_CurMode( curMode ), + m_rectBounds( curBounds ), m_bIsVirtual( isVirtual ) + { + if ( m_sModes.find( curMode ) == m_sModes.end() ) + { + // This is an error, make a failing assertion with a descriptive error message + std::stringstream msgStream; + msgStream << "DisplaySpec current mode (" << curMode.width << "x" << + curMode.height << "@" << curMode.refreshRate << ") not in given list of supported modes: "; + for ( auto &m : modes ) + { + msgStream << m.width << "x" << m.height << "@" << m.refreshRate << ", "; + } + auto msg = msgStream.str(); + // Drop the trailing ", " + msg.resize( msg.size() - 2 ); + + ASSERT_M( false, msg.c_str() ); + } + } + + /* + * Construct a specification for the display with the given ID, which supports the given modes, + * and is currently disabled (has no active mode) + */ + DisplaySpec(const std::string id, + const std::string name, + const std::set modes, + const bool isVirtual=false): + m_sId( id ), m_sName( name ), + m_sModes( modes ), m_bCurModeActive( false ), m_CurMode( { } ), + m_bIsVirtual( isVirtual ) + { + + } + + // Create a specification for a display supporting a single (and currently active) mode + DisplaySpec(std::string id, std::string name, DisplayMode mode) : m_sId( id ), m_sName( name ), m_bIsVirtual( false ), + m_bCurModeActive( true ), m_CurMode( mode ) + { + m_sModes.insert( mode ); + m_rectBounds = RectI( 0, 0, mode.width, mode.height ); + } + + DisplaySpec( const DisplaySpec &other ) = default; + + std::string name() const + { + return m_sName; + } + + std::string id() const + { + return m_sId; + } + + const std::set &supportedModes() const + { + return m_sModes; + } + + /* + * Return a pointer to the currently active display mode, or NULL if + * display is inactive + * + * Note that inactive *does not* necessarily mean unusable. E.g., in X11, + * an output can be enabled/disabled by an application by connecting/disconnecting + * a crtc + */ + const DisplayMode *currentMode() const + { + return m_bCurModeActive ? &m_CurMode : nullptr; + } + + const RectI ¤tBounds() const + { + return m_rectBounds; + } + + bool isVirtual() const + { + return m_bIsVirtual; + } + + /** + * @brief Determine if one DisplaySpec compares less than the other. + * + * Used to enforce a consistent ordering of displays, e.g. for consistent option + * presentation. Also allows DisplaySpec to be placed in a std::set + * + * @param other the other DisplaySpec to check. + * @return true if this DisplaySpec is less than the other, or false otherwise. */ + bool operator<( const DisplaySpec &other ) const + { + return m_sId < other.id(); + } + + // Lua + void PushSelf( lua_State *L ); +private: + // Unique identifier of the display + std::string m_sId; + // "Human-readable" display name + std::string m_sName; + // Modes supported by this display + std::set m_sModes; + // currently configured mode, if available + bool m_bCurModeActive; + DisplayMode m_CurMode; + // The current bounds of this display in global display coordinate space + RectI m_rectBounds; + // Flag is "true" when display represents a logical display like an X screen + // or the Win32 "Virtual screen" + bool m_bIsVirtual; +}; +/** @brief The collection of DisplaySpec available within the program. */ +typedef std::set DisplaySpecs; +//Lua +DisplaySpecs *pushDisplaySpecs(lua_State *L, const DisplaySpecs &specs); + + +#endif + +/** + * @file + * @author Chris Danford (c) 2001-2005 + * @section LICENSE + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons to + * whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ diff -Nru stepmania-5.0.12+dfsg/src/EditMenu.cpp stepmania-5.1.0+dfsg/src/EditMenu.cpp --- stepmania-5.0.12+dfsg/src/EditMenu.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/EditMenu.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -10,7 +10,7 @@ #include "StepsUtil.h" #include "Foreach.h" #include "CommonMetrics.h" -#include "BannerCache.h" +#include "ImageCache.h" #include "UnlockManager.h" #include "SongUtil.h" @@ -103,7 +103,7 @@ EditMenu::~EditMenu() { - BANNERCACHE->Undemand(); + IMAGECACHE->Undemand("Banner"); } void EditMenu::Load( const RString &sType ) @@ -149,7 +149,7 @@ m_textValue[ROW_GROUP].SetVisible( SHOW_GROUPS.GetValue() ); // Load low-res banners, if needed. - BANNERCACHE->Demand(); + IMAGECACHE->Demand("Banner"); if( SHOW_GROUPS.GetValue() ) { diff -Nru stepmania-5.0.12+dfsg/src/ezsockets.cpp stepmania-5.1.0+dfsg/src/ezsockets.cpp --- stepmania-5.0.12+dfsg/src/ezsockets.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ezsockets.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -22,6 +22,12 @@ #include #endif +#if defined(_WINDOWS) +#include +#else +#include +#endif + #if !defined(SOCKET_ERROR) #define SOCKET_ERROR -1 #endif @@ -44,62 +50,131 @@ return tv; } - -EzSockets::EzSockets() +namespace { - MAXCON = 5; - memset (&addr,0,sizeof(addr)); //Clear the sockaddr_in structure + struct ezs_internal + { + // Only necessary for Windows +#if defined(_WINDOWS) + WSADATA wsda; +#endif + + int MAXCON; + int sock; + struct sockaddr_in addr; + + struct sockaddr_in fromAddr; + unsigned long fromAddr_len; + + // Used for Select() command + fd_set *scks; + timeval *times; + + ezs_internal() + { + MAXCON = 5; + memset (&addr,0,sizeof(addr)); //Clear the sockaddr_in structure #if defined(_WINDOWS) // Windows REQUIRES WinSock Startup - WSAStartup( MAKEWORD(1,1), &wsda ); + WSAStartup( MAKEWORD(1,1), &wsda ); #endif - sock = INVALID_SOCKET; + scks = new fd_set; + times = new timeval; + } + ~ezs_internal() + { + delete scks; + delete times; + } + }; +} + +uint32_t EzSockets::sm_ntohl(uint32_t in) +{ + return ntohl(in); +} + +uint16_t EzSockets::sm_ntohs(uint16_t in) +{ + return ntohs(in); +} + +uint32_t EzSockets::sm_htonl(uint32_t in) +{ + return htonl(in); +} + +uint16_t EzSockets::sm_htons(uint16_t in) { + return htons(in); +} + +EzSockets::EzSockets() +{ + ezs_internal *data = new ezs_internal(); + this->opaque = (void*)data; + blocking = true; - scks = new fd_set; - times = new timeval; - times->tv_sec = 0; - times->tv_usec = 0; + data->sock = INVALID_SOCKET; + data->times->tv_sec = 0; + data->times->tv_usec = 0; state = skDISCONNECTED; } EzSockets::~EzSockets() { close(); - delete scks; - delete times; + + ezs_internal *data = (ezs_internal*)(this->opaque); + delete data; } //Check to see if the socket has been created bool EzSockets::check() { - return sock > SOCKET_NONE; + ezs_internal *data = (ezs_internal*)(this->opaque); + return data->sock > SOCKET_NONE; } bool EzSockets::create() { - return create(IPPROTO_TCP, SOCK_STREAM); + return create(EZS_TCP, SOCK_STREAM); } -bool EzSockets::create(int Protocol) +bool EzSockets::create(EzSockets_Proto Protocol) { switch(Protocol) { - case IPPROTO_TCP: - return create(IPPROTO_TCP, SOCK_STREAM); - case IPPROTO_UDP: - return create(IPPROTO_UDP, SOCK_DGRAM); + case EZS_TCP: + return create(EZS_TCP, SOCK_STREAM); + case EZS_UDP: + return create(EZS_UDP, SOCK_DGRAM); default: return create(Protocol, SOCK_RAW); } } -bool EzSockets::create(int Protocol, int Type) +bool EzSockets::create(EzSockets_Proto Protocol, int Type) { + ezs_internal *data = (ezs_internal*)(this->opaque); state = skDISCONNECTED; - sock = socket(AF_INET, Type, Protocol); - lastCode = sock; - return sock > SOCKET_NONE; // Socket must be Greater than 0 + + int realproto = 0; + switch (Protocol) { + case EZS_TCP: + realproto = IPPROTO_TCP; + break; + case EZS_UDP: + realproto = IPPROTO_UDP; + break; + case EZS_NONE: + realproto = IPPROTO_IP; + break; + } + + data->sock = socket(AF_INET, Type, realproto); + lastCode = data->sock; + return data->sock > SOCKET_NONE; // Socket must be Greater than 0 } bool EzSockets::bind(unsigned short port) @@ -107,16 +182,18 @@ if(!check()) return false; - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = htonl(INADDR_ANY); - addr.sin_port = htons(port); - lastCode = ::bind(sock,(struct sockaddr*)&addr, sizeof(addr)); + ezs_internal *data = (ezs_internal*)(this->opaque); + data->addr.sin_family = AF_INET; + data->addr.sin_addr.s_addr = htonl(INADDR_ANY); + data->addr.sin_port = htons(port); + lastCode = ::bind(data->sock,(struct sockaddr*)&data->addr, sizeof(data->addr)); return !lastCode; } bool EzSockets::listen() { - lastCode = ::listen(sock, MAXCON); + ezs_internal *data = (ezs_internal*)(this->opaque); + lastCode = ::listen(data->sock, data->MAXCON); if (lastCode == SOCKET_ERROR) return false; @@ -145,12 +222,14 @@ int length = sizeof(socket); - socket.sock = ::accept(sock,(struct sockaddr*) &socket.addr, + ezs_internal *data = (ezs_internal*)(this->opaque); + ezs_internal *sdata = (ezs_internal*)(socket.opaque); + sdata->sock = ::accept(data->sock,(struct sockaddr*) &sdata->addr, (socklen_t*) &length); - lastCode = socket.sock; + lastCode = sdata->sock; - if ( socket.sock == SOCKET_ERROR ) + if ( sdata->sock == SOCKET_ERROR ) return false; socket.state = skCONNECTED; @@ -163,35 +242,44 @@ inBuffer = ""; outBuffer = ""; + ezs_internal *data = (ezs_internal*)(this->opaque); #if defined(WIN32) // The close socket command is different in Windows - ::closesocket(sock); + ::closesocket(data->sock); #else - ::close(sock); + ::close(data->sock); #endif } long EzSockets::uAddr() { - return addr.sin_addr.s_addr; + ezs_internal *data = (ezs_internal*)(this->opaque); + return data->addr.sin_addr.s_addr; } - bool EzSockets::connect(const std::string& host, unsigned short port) { - if(!check()) + if (!check()) + { return false; + } struct hostent* phe; phe = gethostbyname(host.c_str()); if (phe == NULL) + { return false; - memcpy(&addr.sin_addr, phe->h_addr, sizeof(struct in_addr)); + } + + ezs_internal *data = (ezs_internal*)(this->opaque); + memcpy(&data->addr.sin_addr, phe->h_addr, sizeof(struct in_addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); + data->addr.sin_family = AF_INET; + data->addr.sin_port = htons(port); - if(::connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR) + if(::connect(data->sock, (struct sockaddr*)&data->addr, sizeof(data->addr)) == SOCKET_ERROR) + { return false; + } state = skCONNECTED; return true; @@ -208,13 +296,15 @@ bool EzSockets::CanRead() { - return checkCanRead(sock, *times); + ezs_internal *data = (ezs_internal*)(this->opaque); + return checkCanRead(data->sock, *data->times); } bool EzSockets::CanRead(unsigned int msTimeout) { + ezs_internal *data = (ezs_internal*)(this->opaque); timeval tv = timevalFromMs(msTimeout); - return checkCanRead(sock, tv); + return checkCanRead(data->sock, tv); } bool EzSockets::IsError() @@ -222,10 +312,11 @@ if (state == skERROR) return true; - FD_ZERO(scks); - FD_SET((unsigned)sock, scks); + ezs_internal *data = (ezs_internal*)(this->opaque); + FD_ZERO(data->scks); + FD_SET((unsigned)data->sock, data->scks); - if (select(sock+1, NULL, NULL, scks, times) >=0 ) + if (select(data->sock+1, NULL, NULL, data->scks, data->times) >=0 ) return false; state = skERROR; @@ -243,13 +334,15 @@ bool EzSockets::CanWrite() { - return checkCanWrite(sock, *times); + ezs_internal *data = (ezs_internal*)(this->opaque); + return checkCanWrite(data->sock, *data->times); } bool EzSockets::CanWrite(unsigned int msTimeout) { + ezs_internal *data = (ezs_internal*)(this->opaque); timeval tv = timevalFromMs(msTimeout); - return checkCanWrite(sock, tv); + return checkCanWrite(data->sock, tv); } void EzSockets::update() @@ -265,8 +358,11 @@ pUpdateWrite(); } -unsigned long EzSockets::LongFromAddrIn( const sockaddr_in & s ) +uint32_t EzSockets::getAddress() { + ezs_internal *data = (ezs_internal*)(this->opaque); + sockaddr_in &s = data->fromAddr; + #if defined(_WINDOWS) return ntohl(s.sin_addr.S_un.S_addr); #else @@ -475,17 +571,19 @@ int EzSockets::pReadData(char* data) { - if(state == skCONNECTED || state == skLISTENING) - return recv(sock, data, 1024, 0); - - fromAddr_len = sizeof(sockaddr_in); - return recvfrom(sock, data, 1024, 0, (sockaddr*)&fromAddr, - (socklen_t*)&fromAddr_len); + ezs_internal *sdata = (ezs_internal*)(this->opaque); + if (state == skCONNECTED || state == skLISTENING) + return recv(sdata->sock, data, 1024, 0); + + sdata->fromAddr_len = sizeof(sockaddr_in); + return recvfrom(sdata->sock, data, 1024, 0, (sockaddr*)&sdata->fromAddr, + (socklen_t*)&sdata->fromAddr_len); } int EzSockets::pWriteData(const char* data, int dataSize) { - return send(sock, data, dataSize, 0); + ezs_internal *sdata = (ezs_internal*)(this->opaque); + return send(sdata->sock, data, dataSize, 0); } /* diff -Nru stepmania-5.0.12+dfsg/src/ezsockets.h stepmania-5.1.0+dfsg/src/ezsockets.h --- stepmania-5.0.12+dfsg/src/ezsockets.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ezsockets.h 2018-01-25 05:01:07.000000000 +0000 @@ -21,14 +21,15 @@ #endif #include -#if defined(_WINDOWS) -#include -#else -#include -#endif - using namespace std; +enum EzSockets_Proto +{ + EZS_NONE, + EZS_TCP, + EZS_UDP +}; + class EzSockets { public: @@ -38,8 +39,8 @@ //Crate the socket bool create(); - bool create(int Protocol); - bool create(int Protocol, int Type); + bool create(EzSockets_Proto Protocol); + bool create(EzSockets_Proto Protocol, int Type); //Bind Socket to local port bool bind(unsigned short port); @@ -107,9 +108,7 @@ skERROR }; - struct sockaddr_in fromAddr; - unsigned long fromAddr_len; - static unsigned long LongFromAddrIn( const sockaddr_in & s ); + uint32_t getAddress(); // The following possibly should be private. string inBuffer; @@ -127,23 +126,15 @@ RString address; -private: + // Wrapped here so we don't have to leak winapi everywhere... + static uint32_t sm_ntohl(uint32_t); + static uint16_t sm_ntohs(uint16_t); + static uint32_t sm_htonl(uint32_t); + static uint16_t sm_htons(uint16_t); - // Only necessary for Windows -#if defined(_WINDOWS) - WSADATA wsda; -#endif - - int MAXCON; - int sock; - struct sockaddr_in addr; - - - // Used for Select() command - fd_set *scks; - timeval *times; +private: - // Buffers + void *opaque; }; istream& operator>>(istream& is, EzSockets& obj); diff -Nru stepmania-5.0.12+dfsg/src/FadingBanner.cpp stepmania-5.1.0+dfsg/src/FadingBanner.cpp --- stepmania-5.0.12+dfsg/src/FadingBanner.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/FadingBanner.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,7 @@ #include "global.h" #include "FadingBanner.h" #include "RageTextureManager.h" -#include "BannerCache.h" +#include "ImageCache.h" #include "Song.h" #include "RageLog.h" #include "Course.h" @@ -129,7 +129,7 @@ * which will cause the fade-in to be further delayed. */ RageTextureID ID; - bool bLowRes = (PREFSMAN->m_BannerCache != BNCACHE_FULL); + bool bLowRes = (PREFSMAN->m_ImageCache != IMGCACHE_FULL); if( !bLowRes ) { ID = Sprite::SongBannerTexture( path ); @@ -137,7 +137,7 @@ else { // Try to load the low quality version. - ID = BANNERCACHE->LoadCachedBanner( path ); + ID = IMAGECACHE->LoadCachedImage( "Banner", path ); } if( !TEXTUREMAN->IsTextureRegistered(ID) ) diff -Nru stepmania-5.0.12+dfsg/src/FadingBanner.h stepmania-5.1.0+dfsg/src/FadingBanner.h --- stepmania-5.0.12+dfsg/src/FadingBanner.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/FadingBanner.h 2018-01-25 05:01:07.000000000 +0000 @@ -32,7 +32,6 @@ void LoadCustom( RString sBanner ); bool LoadFromCachedBanner( const RString &path ); - bool LoadFromCachedBackground( const RString &path ); void SetMovingFast( bool fast ) { m_bMovingFast=fast; } virtual void UpdateInternal( float fDeltaTime ); diff -Nru stepmania-5.0.12+dfsg/src/Font.cpp stepmania-5.1.0+dfsg/src/Font.cpp --- stepmania-5.0.12+dfsg/src/Font.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Font.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -272,7 +272,7 @@ } Font::Font(): m_iRefCount(1), path(""), m_apPages(), m_pDefault(NULL), - m_iCharToGlyph(), m_bRightToLeft(false), + m_iCharToGlyph(), m_bRightToLeft(false), m_bDistanceField(false), // strokes aren't shown by default, hence the Color. m_DefaultStrokeColor(RageColor(0,0,0,0)), m_sChars("") {} Font::~Font() @@ -785,6 +785,7 @@ ini.RenameKey("Char Widths", "main"); // backward compat ini.GetValue( "common", "CapitalsOnly", bCapitalsOnly ); ini.GetValue( "common", "RightToLeft", m_bRightToLeft ); + ini.GetValue( "common", "DistanceField", m_bDistanceField ); RString s; if( ini.GetValue( "common", "DefaultStrokeColor", s ) ) m_DefaultStrokeColor.FromString( s ); diff -Nru stepmania-5.0.12+dfsg/src/Font.h stepmania-5.1.0+dfsg/src/Font.h --- stepmania-5.0.12+dfsg/src/Font.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Font.h 2018-01-25 05:01:07.000000000 +0000 @@ -174,6 +174,7 @@ void SetDefaultGlyph( FontPage *pPage ); bool IsRightToLeft() const { return m_bRightToLeft; }; + bool IsDistanceField() const { return m_bDistanceField; }; const RageColor &GetDefaultStrokeColor() const { return m_DefaultStrokeColor; }; private: @@ -198,6 +199,8 @@ * This will also change the way glyphs from the default FontPage are rendered. * There may be a better way to handle this. */ bool m_bRightToLeft; + + bool m_bDistanceField; RageColor m_DefaultStrokeColor; diff -Nru stepmania-5.0.12+dfsg/src/GameCommand.cpp stepmania-5.1.0+dfsg/src/GameCommand.cpp --- stepmania-5.0.12+dfsg/src/GameCommand.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/GameCommand.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -5,6 +5,7 @@ #include "GameManager.h" #include "GameState.h" #include "AnnouncerManager.h" +#include "Bookkeeper.h" #include "PlayerOptions.h" #include "ProfileManager.h" #include "Profile.h" @@ -718,6 +719,9 @@ GAMESTATE->m_iCoins.Set( GAMESTATE->m_iCoins - iNumCreditsOwed * PREFSMAN->m_iCoinsPerCredit ); LOG->Trace( "Deducted %i coins, %i remaining", iNumCreditsOwed * PREFSMAN->m_iCoinsPerCredit, GAMESTATE->m_iCoins.Get() ); + + //Credit Used, make sure to update CoinsFile + BOOKKEEPER->WriteCoinsFile(GAMESTATE->m_iCoins.Get()); } // If only one side is joined and we picked a style that requires both diff -Nru stepmania-5.0.12+dfsg/src/GameState.cpp stepmania-5.1.0+dfsg/src/GameState.cpp --- stepmania-5.0.12+dfsg/src/GameState.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/GameState.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,7 @@ #include "global.h" #include "GameState.h" #include "Actor.h" +#include "ActorUtil.h" #include "AdjustSync.h" #include "AnnouncerManager.h" #include "Bookkeeper.h" @@ -27,6 +28,7 @@ #include "Profile.h" #include "ProfileManager.h" #include "RageFile.h" +#include "RageFileManager.h" #include "RageLog.h" #include "RageUtil.h" #include "Song.h" @@ -514,6 +516,9 @@ GAMESTATE->JoinPlayer( pn ); + // On Join, make sure to update Coins File + BOOKKEEPER->WriteCoinsFile(GAMESTATE->m_iCoins.Get()); + return true; } }; @@ -1419,6 +1424,60 @@ return iIndex; } +static char const* prepare_song_failures[]= { + "success", + "no_current_song", + "card_mount_failed", + "load_interrupted", +}; + +int GameState::prepare_song_for_gameplay() +{ + Song* curr= m_pCurSong; + if(curr == NULL) + { + return 1; + } + if(curr->m_LoadedFromProfile == ProfileSlot_Invalid) + { + return 0; + } + ProfileSlot prof_slot= curr->m_LoadedFromProfile; + PlayerNumber slot_as_pn= PlayerNumber(prof_slot); + if(!PROFILEMAN->ProfileWasLoadedFromMemoryCard(slot_as_pn)) + { + return 0; + } + if(!MEMCARDMAN->MountCard(slot_as_pn)) + { + return 2; + } + RString prof_dir= PROFILEMAN->GetProfileDir(prof_slot); + // Song loading changes its paths to point to the cache area. -Kyz + RString to_dir= curr->GetSongDir(); + RString from_dir= curr->GetPreCustomifyDir(); + // The problem of what files to copy is complicated by steps being able to + // specify their own music file, and the variety of step file formats. + // Complex logic to figure out what files the song actually uses would be + // bug prone. Just copy all audio files and step files. -Kyz + vector copy_exts= ActorUtil::GetTypeExtensionList(FT_Sound); + copy_exts.push_back("sm"); + copy_exts.push_back("ssc"); + copy_exts.push_back("lrc"); + vector files_in_dir; + FILEMAN->GetDirListingWithMultipleExtensions(from_dir, copy_exts, files_in_dir); + for(size_t i= 0; i < files_in_dir.size(); ++i) + { + RString& fname= files_in_dir[i]; + if(!FileCopy(from_dir + fname, to_dir + fname)) + { + return 3; + } + } + MEMCARDMAN->UnmountCard(slot_as_pn); + return 0; +} + static LocalizedString PLAYER1 ("GameState","Player 1"); static LocalizedString PLAYER2 ("GameState","Player 2"); static LocalizedString CPU ("GameState","CPU"); @@ -3226,6 +3285,12 @@ p->m_autogen_fargs[si]= v; COMMON_RETURN_SELF; } + static int prepare_song_for_gameplay(T* p, lua_State* L) + { + int result= p->prepare_song_for_gameplay(); + lua_pushstring(L, prepare_song_failures[result]); + return 1; + } LunaGameState() { @@ -3353,6 +3418,7 @@ ADD_METHOD( SetStepsForEditMode ); ADD_METHOD( GetAutoGenFarg ); ADD_METHOD( SetAutoGenFarg ); + ADD_METHOD(prepare_song_for_gameplay); } }; diff -Nru stepmania-5.0.12+dfsg/src/GameState.h stepmania-5.1.0+dfsg/src/GameState.h --- stepmania-5.0.12+dfsg/src/GameState.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/GameState.h 2018-01-25 05:01:07.000000000 +0000 @@ -242,6 +242,8 @@ bool m_bLoadingNextSong; int GetLoadingCourseSongIndex() const; + int prepare_song_for_gameplay(); + // State Info used during gameplay // NULL on ScreenSelectMusic if the currently selected wheel item isn't a Song. diff -Nru stepmania-5.0.12+dfsg/src/ImageCache.cpp stepmania-5.1.0+dfsg/src/ImageCache.cpp --- stepmania-5.0.12+dfsg/src/ImageCache.cpp 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ImageCache.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,485 @@ +#include "global.h" + +#include "ImageCache.h" +#include "Foreach.h" +#include "RageDisplay.h" +#include "RageUtil.h" +#include "RageLog.h" +#include "RageSurface_Load.h" +#include "SongCacheIndex.h" +#include "Sprite.h" +#include "PrefsManager.h" +#include "RageDisplay.h" +#include "RageTexture.h" +#include "RageTextureManager.h" +#include "RageSurface.h" +#include "RageSurfaceUtils.h" +#include "RageSurfaceUtils_Palettize.h" +#include "RageSurfaceUtils_Dither.h" +#include "RageSurfaceUtils_Zoom.h" +#include "SpecialFiles.h" + +#include "Banner.h" + +static Preference g_bPalettedImageCache( "PalettedImageCache", false ); + +/* Neither a global or a file scope static can be used for this because + * the order of initialization of nonlocal objects is unspecified. */ +//const RString IMAGE_CACHE_INDEX = SpecialFiles::CACHE_DIR + "images.cache"; +#define IMAGE_CACHE_INDEX (SpecialFiles::CACHE_DIR + "images.cache") + +/* Call CacheImage to cache a image by path. If the image is already + * cached, it'll be recreated. This is efficient if the image hasn't changed, + * but we still only do this in TidyUpData for songs. + * + * Call LoadImage to load a cached image into main memory. This will call + * CacheImage only if needed. This will not do a date/size check; call CacheImage + * directly if you need that. + * + * Call LoadCachedImage to load a image into a texture and retrieve an ID + * for it. You can check if the image was actually preloaded by calling + * TEXTUREMAN->IsTextureRegistered() on the ID; it might not be if the image cache + * is missing or disabled. + * + * Note that each cache entries has two hashes. The cache path is based soley + * on the pathname; this way, loading the cache doesn't have to do a stat on every + * image. The full hash includes the file size and date, and is used only by + * CacheImage to avoid doing extra work. + */ + +ImageCache *IMAGECACHE; // global and accessible from anywhere in our program + + +static map g_ImagePathToImage; +static int g_iDemandRefcount = 0; + +RString ImageCache::GetImageCachePath( RString sImageDir ,RString sImagePath ) +{ + return SongCacheIndex::GetCacheFilePath( sImageDir, sImagePath ); +} + +/* If in on-demand mode, load all cached images. This must be fast, so + * cache files will not be created if they don't exist; that should be done + * by CacheImage or LoadImage on startup. */ +void ImageCache::Demand( RString sImageDir ) +{ + ++g_iDemandRefcount; + if( g_iDemandRefcount > 1 ) + return; + + if( PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_LOAD_ON_DEMAND ) + return; + + FOREACH_CONST_Child( &ImageData, p ) + { + RString sImagePath = p->GetName(); + + if( g_ImagePathToImage.find(sImagePath) != g_ImagePathToImage.end() ) + continue; /* already loaded */ + + const RString sCachePath = GetImageCachePath(sImageDir,sImagePath); + RageSurface *pImage = RageSurfaceUtils::LoadSurface( sCachePath ); + if( pImage == NULL ) + { + continue; /* doesn't exist */ + } + + g_ImagePathToImage[sImagePath] = pImage; + } +} + +/* Release images loaded on demand. */ +void ImageCache::Undemand( RString sImageDir ) +{ + --g_iDemandRefcount; + if( g_iDemandRefcount != 0 ) + return; + + if( PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_LOAD_ON_DEMAND ) + return; + + UnloadAllImages(); +} + +/* If in a low-res image mode, load a low-res image into memory, creating + * the cache file if necessary. Unlike CacheImage(), the original file will + * not be examined unless the cached image doesn't exist, so the image will + * not be updated if the original file changes, for efficiency. */ +void ImageCache::LoadImage( RString sImageDir, RString sImagePath ) +{ + if( sImagePath == "" ) + return; // nothing to do + if( PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_PRELOAD && + PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_LOAD_ON_DEMAND ) + return; + + /* Load it. */ + const RString sCachePath = GetImageCachePath(sImageDir,sImagePath); + + for( int tries = 0; tries < 2; ++tries ) + { + if( g_ImagePathToImage.find(sImagePath) != g_ImagePathToImage.end() ) + return; /* already loaded */ + + CHECKPOINT_M( ssprintf( "ImageCache::LoadImage: %s", sCachePath.c_str() ) ); + RageSurface *pImage = RageSurfaceUtils::LoadSurface( sCachePath ); + if( pImage == NULL ) + { + if( tries == 0 ) + { + /* The file doesn't exist. It's possible that the image cache file is + * missing, so try to create it. Don't do this first, for efficiency. */ + //LOG->Trace( "Cached image load of '%s' ('%s') failed, trying to cache ...", sImagePath.c_str(), sCachePath.c_str() ); + + /* Skip the up-to-date check; it failed to load, so it can't be up + * to date. */ + CacheImageInternal( sImageDir, sImagePath ); + continue; + } + else + { + //LOG->Trace( "Cached image load of '%s' ('%s') failed", sImagePath.c_str(), sCachePath.c_str() ); + return; + } + } + + g_ImagePathToImage[sImagePath] = pImage; + } +} + +void ImageCache::OutputStats() const +{ + int iTotalSize = 0; + FOREACHM_CONST( RString, RageSurface *, g_ImagePathToImage, it ) + { + const RageSurface *pImage = it->second; + const int iSize = pImage->pitch * pImage->h; + iTotalSize += iSize; + } + LOG->Info( "%i bytes of images loaded", iTotalSize ); +} + +void ImageCache::UnloadAllImages() +{ + FOREACHM( RString, RageSurface *, g_ImagePathToImage, it ) + delete it->second; + + g_ImagePathToImage.clear(); +} + +ImageCache::ImageCache() +{ + ReadFromDisk(); +} + +ImageCache::~ImageCache() +{ + UnloadAllImages(); +} + +void ImageCache::ReadFromDisk() +{ + ImageData.ReadFile( IMAGE_CACHE_INDEX ); // don't care if this fails +} + +struct ImageTexture: public RageTexture +{ + unsigned m_uTexHandle; + unsigned GetTexHandle() const { return m_uTexHandle; }; // accessed by RageDisplay + /* This is a reference to a pointer in g_ImagePathToImage. */ + RageSurface *&m_pImage; + int m_iWidth, m_iHeight; + + ImageTexture( RageTextureID id, RageSurface *&pImage, int iWidth, int iHeight ): + RageTexture(id), m_pImage(pImage), m_iWidth(iWidth), m_iHeight(iHeight) + { + Create(); + } + + ~ImageTexture() + { + Destroy(); + } + + void Create() + { + ASSERT( m_pImage != NULL ); + + /* The image is preprocessed; do as little work as possible. */ + + /* The source width is the width of the original file. */ + m_iSourceWidth = m_iWidth; + m_iSourceHeight = m_iHeight; + + /* The image width (within the texture) is always the entire texture. + * Only resize if the max texture size requires it; since these images + * are already scaled down, this shouldn't happen often. */ + if( m_pImage->w > DISPLAY->GetMaxTextureSize() || + m_pImage->h > DISPLAY->GetMaxTextureSize() ) + { + LOG->Warn( "Converted %s at runtime", GetID().filename.c_str() ); + int iWidth = min( m_pImage->w, DISPLAY->GetMaxTextureSize() ); + int iHeight = min( m_pImage->h, DISPLAY->GetMaxTextureSize() ); + RageSurfaceUtils::Zoom( m_pImage, iWidth, iHeight ); + } + + /* We did this when we cached it. */ + ASSERT( m_pImage->w == power_of_two(m_pImage->w) ); + ASSERT( m_pImage->h == power_of_two(m_pImage->h) ); + + m_iTextureWidth = m_iImageWidth = m_pImage->w; + m_iTextureHeight = m_iImageHeight = m_pImage->h; + + /* Find a supported texture format. If it happens to match the stored + * file, we won't have to do any conversion here, and that'll happen + * often with paletted images. */ + RagePixelFormat pf = m_pImage->format->BitsPerPixel == 8? RagePixelFormat_PAL: RagePixelFormat_RGB5A1; + if( !DISPLAY->SupportsTextureFormat(pf) ) + pf = RagePixelFormat_RGBA4; + + ASSERT( DISPLAY->SupportsTextureFormat(pf) ); + + ASSERT(m_pImage != NULL); + m_uTexHandle = DISPLAY->CreateTexture( pf, m_pImage, false ); + + CreateFrameRects(); + } + + void Destroy() + { + if( m_uTexHandle ) + DISPLAY->DeleteTexture( m_uTexHandle ); + m_uTexHandle = 0; + } + + void Reload() + { + Destroy(); + Create(); + } + + void Invalidate() + { + m_uTexHandle = 0; /* don't Destroy() */ + } +}; + +/* If a image is cached, get its ID for use. */ +RageTextureID ImageCache::LoadCachedImage( RString sImageDir, RString sImagePath ) +{ + RageTextureID ID( GetImageCachePath(sImageDir,sImagePath) ); + + size_t Found = sImagePath.find("_blank"); + if( sImagePath == "" || Found!=RString::npos ) + return ID; + + //LOG->Trace( "ImageCache::LoadCachedImage(%s): %s", sImagePath.c_str(), ID.filename.c_str() ); + + /* Hack: make sure Image::Load doesn't change our return value and end up + * reloading. */ + if(sImageDir == "Banner") + ID = Sprite::SongBannerTexture(ID); + + /* It's not in a texture. Do we have it loaded? */ + if( g_ImagePathToImage.find(sImagePath) == g_ImagePathToImage.end() ) + { + /* Oops, the image is missing. Warn and continue. */ + if(PREFSMAN->m_ImageCache != IMGCACHE_OFF) + { + LOG->Warn( "Image cache for '%s' wasn't loaded", sImagePath.c_str() ); + } + return ID; + } + + /* This is a reference to a pointer. ImageTexture's ctor may change it + * when converting; this way, the conversion will end up in the map so we + * only have to convert once. */ + RageSurface *&pImage = g_ImagePathToImage[sImagePath]; + ASSERT( pImage != NULL ); + + int iSourceWidth = 0, iSourceHeight = 0; + ImageData.GetValue( sImagePath, "Width", iSourceWidth ); + ImageData.GetValue( sImagePath, "Height", iSourceHeight ); + if( iSourceWidth == 0 || iSourceHeight == 0 ) + { + LOG->UserLog( "Cache file", sImagePath, "couldn't be loaded." ); + return ID; + } + + /* Is the image already in a texture? */ + if( TEXTUREMAN->IsTextureRegistered(ID) ) + return ID; /* It's all set. */ + + //LOG->Trace( "Loading image texture %s; src %ix%i; image %ix%i", + // ID.filename.c_str(), iSourceWidth, iSourceHeight, pImage->w, pImage->h ); + RageTexture *pTexture = new ImageTexture( ID, pImage, iSourceWidth, iSourceHeight ); + + ID.Policy = RageTextureID::TEX_VOLATILE; + TEXTUREMAN->RegisterTexture( ID, pTexture ); + TEXTUREMAN->UnloadTexture( pTexture ); + + return ID; +} + +static inline int closest( int num, int n1, int n2 ) +{ + if( abs(num - n1) > abs(num - n2) ) + return n2; + return n1; +} + +/* Create or update the image cache file as necessary. If in preload mode, + * load the cache file, too. (This is done at startup.) */ +void ImageCache::CacheImage( RString sImageDir, RString sImagePath ) +{ + if( PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_PRELOAD && + PREFSMAN->m_ImageCache != IMGCACHE_LOW_RES_LOAD_ON_DEMAND ) + return; + + CHECKPOINT_M( sImagePath ); + if( !DoesFileExist(sImagePath) ) + return; + + const RString sCachePath = GetImageCachePath(sImageDir, sImagePath); + + /* Check the full file hash. If it's the loaded and identical, don't recache. */ + if( DoesFileExist(sCachePath) ) + { + bool bCacheUpToDate = PREFSMAN->m_bFastLoad; + if( !bCacheUpToDate ) + { + unsigned CurFullHash; + const unsigned FullHash = GetHashForFile( sImagePath ); + if( ImageData.GetValue( sImagePath, "FullHash", CurFullHash ) && CurFullHash == FullHash ) + bCacheUpToDate = true; + } + + if( bCacheUpToDate ) + { + /* It's identical. Just load it, if in preload. */ + if( PREFSMAN->m_ImageCache == IMGCACHE_LOW_RES_PRELOAD ) + LoadImage( sImageDir, sImagePath ); + + return; + } + } + + /* The cache file doesn't exist, or is out of date. Cache it. This + * will also load the cache into memory if in PRELOAD. */ + CacheImageInternal( sImageDir, sImagePath ); +} + +void ImageCache::CacheImageInternal( RString sImageDir, RString sImagePath ) +{ + RString sError; + RageSurface *pImage = RageSurfaceUtils::LoadFile( sImagePath, sError ); + if( pImage == NULL ) + { + LOG->UserLog( "Cache file", sImagePath, "couldn't be loaded: %s", sError.c_str() ); + return; + } + + const int iSourceWidth = pImage->w, iSourceHeight = pImage->h; + + int iWidth = pImage->w / 2, iHeight = pImage->h / 2; +// int iWidth = pImage->w, iHeight = pImage->h; + + /* Round to the nearest power of two. This simplifies the actual texture load. */ + iWidth = closest( iWidth, power_of_two(iWidth), power_of_two(iWidth) / 2 ); + iHeight = closest( iHeight, power_of_two(iHeight), power_of_two(iHeight) / 2 ); + + /* Don't resize the image to less than 32 pixels in either dimension or the next + * power of two of the source (whichever is smaller); it's already very low res. */ + iWidth = max( iWidth, min(32, power_of_two(iSourceWidth)) ); + iHeight = max( iHeight, min(32, power_of_two(iSourceHeight)) ); + + //RageSurfaceUtils::ApplyHotPinkColorKey( pImage ); + + RageSurfaceUtils::Zoom( pImage, iWidth, iHeight ); + + /* + * When paletted image cache is enabled, cached images are paletted. Cached + * 32-bit images take 1/16 as much memory, 16-bit images take 1/8, and paletted + * images take 1/4. + * + * When paletted image cache is disabled, cached images are stored in 16-bit + * RGBA. Cached 32-bit images take 1/8 as much memory, cached 16-bit images + * take 1/4, and cached paletted images take 1/2. + * + * Paletted cache is disabled by default because palettization takes time, causing + * the initial cache run to take longer. Also, newer ATI hardware doesn't supported + * paletted textures, which would slow down runtime, because we have to depalettize + * on use. They'd still have the same memory benefits, though, since we only load + * one cached image into a texture at once, and the speed hit may not matter on + * newer ATI cards. RGBA is safer, though. + */ + if( g_bPalettedImageCache ) + { + if( pImage->fmt.BytesPerPixel != 1 ) + RageSurfaceUtils::Palettize( pImage ); + } + else + { + /* Dither to the final format. We use A1RGB5, since that's usually supported + * natively by both OpenGL and D3D. */ + RageSurface *dst = CreateSurface( pImage->w, pImage->h, 16, + 0x7C00, 0x03E0, 0x001F, 0x8000 ); + + /* OrderedDither is still faster than ErrorDiffusionDither, and + * these images are very small and only displayed briefly. */ + RageSurfaceUtils::OrderedDither( pImage, dst ); + delete pImage; + pImage = dst; + } + + const RString sCachePath = GetImageCachePath(sImageDir,sImagePath); + RageSurfaceUtils::SaveSurface( pImage, sCachePath ); + + /* If an old image is loaded, free it. */ + if( g_ImagePathToImage.find(sImagePath) != g_ImagePathToImage.end() ) + { + RageSurface *oldimg = g_ImagePathToImage[sImagePath]; + delete oldimg; + g_ImagePathToImage.erase(sImagePath); + } + + if( PREFSMAN->m_ImageCache == IMGCACHE_LOW_RES_PRELOAD ) + { + /* Keep it; we're just going to load it anyway. */ + g_ImagePathToImage[sImagePath] = pImage; + } + else + delete pImage; + + /* Remember the original size. */ + ImageData.SetValue( sImagePath, "Path", sCachePath ); + ImageData.SetValue( sImagePath, "Width", iSourceWidth ); + ImageData.SetValue( sImagePath, "Height", iSourceHeight ); + ImageData.SetValue( sImagePath, "FullHash", GetHashForFile( sImagePath ) ); + ImageData.WriteFile( IMAGE_CACHE_INDEX ); +} + +/* + * (c) 2003 Glenn Maynard + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons to + * whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ diff -Nru stepmania-5.0.12+dfsg/src/ImageCache.h stepmania-5.1.0+dfsg/src/ImageCache.h --- stepmania-5.0.12+dfsg/src/ImageCache.h 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ImageCache.h 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,63 @@ +#ifndef IMAGE_CACHE_H +#define IMAGE_CACHE_H + +#include "IniFile.h" + +#include "RageTexture.h" + +class LoadingWindow; +/** @brief Maintains a cache of reduced-quality images. */ +class ImageCache +{ +public: + ImageCache(); + ~ImageCache(); + void ReadFromDisk(); + + RageTextureID LoadCachedImage( RString sImageDir, RString sImagePath ); + void CacheImage( RString sImageDir, RString sImagePath ); + void LoadImage( RString sImageDir, RString sImagePath ); + + void Demand( RString sImageDir ); + void Undemand( RString sImageDir ); + + void OutputStats() const; + +private: + static RString GetImageCachePath( RString sImageDir, RString sImagePath ); + void UnloadAllImages(); + void CacheImageInternal( RString sImageDir, RString sImagePath ); + + IniFile ImageData; +}; + +extern ImageCache *IMAGECACHE; // global and accessible from anywhere in our program + +#endif + +/** + * @file + * @author Glenn Maynard (c) 2003 + * @section LICENSE + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons to + * whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/src/LuaManager.cpp stepmania-5.1.0+dfsg/src/LuaManager.cpp --- stepmania-5.0.12+dfsg/src/LuaManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/LuaManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -47,6 +47,7 @@ template<> bool FromStack( Lua *L, bool &Object, int iOffset ); template<> bool FromStack( Lua *L, float &Object, int iOffset ); template<> bool FromStack( Lua *L, int &Object, int iOffset ); + template<> bool FromStack( Lua *L, unsigned int &Object, int iOffset ); template<> bool FromStack( Lua *L, RString &Object, int iOffset ); bool InReportScriptError= false; @@ -81,13 +82,16 @@ { template<> void Push( lua_State *L, const bool &Object ) { lua_pushboolean( L, Object ); } template<> void Push( lua_State *L, const float &Object ) { lua_pushnumber( L, Object ); } + template<> void Push( lua_State *L, const double &Object ) { lua_pushnumber( L, Object ); } template<> void Push( lua_State *L, const int &Object ) { lua_pushinteger( L, Object ); } template<> void Push( lua_State *L, const unsigned int &Object ) { lua_pushnumber( L, double(Object) ); } template<> void Push( lua_State *L, const RString &Object ) { lua_pushlstring( L, Object.data(), Object.size() ); } + template<> void Push( lua_State *L, std::string const& object ) { lua_pushlstring( L, object.data(), object.size() ); } template<> bool FromStack( Lua *L, bool &Object, int iOffset ) { Object = !!lua_toboolean( L, iOffset ); return true; } template<> bool FromStack( Lua *L, float &Object, int iOffset ) { Object = (float)lua_tonumber( L, iOffset ); return true; } template<> bool FromStack( Lua *L, int &Object, int iOffset ) { Object = lua_tointeger( L, iOffset ); return true; } + template<> bool FromStack( Lua *L, unsigned int &Object, int iOffset ) { Object = lua_tointeger( L, iOffset ); return true; } template<> bool FromStack( Lua *L, RString &Object, int iOffset ) { size_t iLen; diff -Nru stepmania-5.0.12+dfsg/src/Makefile.am stepmania-5.1.0+dfsg/src/Makefile.am --- stepmania-5.0.12+dfsg/src/Makefile.am 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Makefile.am 2018-01-25 05:01:07.000000000 +0000 @@ -131,7 +131,7 @@ Attack.cpp Attack.h AutoKeysounds.cpp AutoKeysounds.h \ AdjustSync.cpp AdjustSync.h \ BackgroundUtil.cpp BackgroundUtil.h \ -BannerCache.cpp BannerCache.h \ +ImageCache.cpp ImageCache.h \ Character.cpp Character.h \ CodeDetector.cpp CodeDetector.h \ CodeSet.cpp CodeSet.h \ @@ -145,7 +145,7 @@ CryptHelpers.cpp CryptHelpers.h \ DateTime.cpp DateTime.h \ Difficulty.cpp Difficulty.h \ -DisplayResolutions.h \ +DisplaySpec.h \ EnumHelper.cpp EnumHelper.h \ FileDownload.cpp FileDownload.h \ Font.cpp Font.h \ diff -Nru stepmania-5.0.12+dfsg/src/MessageManager.cpp stepmania-5.1.0+dfsg/src/MessageManager.cpp --- stepmania-5.0.12+dfsg/src/MessageManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/MessageManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -207,8 +207,7 @@ void MessageManager::Broadcast( Message &msg ) const { - // GAMESTATE is created before MESSAGEMAN, and has several BroadcastOnChangePtr members, so they all broadcast when they're initialized. - if(this != NULL && m_Logging) + if(m_Logging) { LOG->Trace("MESSAGEMAN:Broadcast: %s", msg.GetName().c_str()); } diff -Nru stepmania-5.0.12+dfsg/src/MusicWheel.cpp stepmania-5.1.0+dfsg/src/MusicWheel.cpp --- stepmania-5.0.12+dfsg/src/MusicWheel.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/MusicWheel.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -9,6 +9,7 @@ #include "GameState.h" #include "ThemeManager.h" #include "NetworkSyncManager.h" +#include "ProfileManager.h" #include "Song.h" #include "Course.h" #include "Steps.h" @@ -434,6 +435,18 @@ break; } + FOREACH_PlayerNumber(pn) + { + if(GAMESTATE->IsPlayerEnabled(pn)) + { + Profile* prof= PROFILEMAN->GetProfile(pn); + for(size_t i= 0; i < prof->m_songs.size(); ++i) + { + apAllSongs.push_back(prof->m_songs[i]); + } + } + } + // filter songs that we don't have enough stages to play { vector vTempSongs; @@ -1709,6 +1722,15 @@ return 1; } + static int Move(T* p, lua_State *L) + { + if (lua_isnil(L, 1)) { p->Move(0); } + else + { + p->Move(IArg(1)); + } + return 1; + } LunaMusicWheel() { @@ -1717,6 +1739,7 @@ ADD_METHOD( IsRouletting ); ADD_METHOD( SelectSong ); ADD_METHOD( SelectCourse ); + ADD_METHOD( Move ); } }; diff -Nru stepmania-5.0.12+dfsg/src/MusicWheelItem.cpp stepmania-5.1.0+dfsg/src/MusicWheelItem.cpp --- stepmania-5.0.12+dfsg/src/MusicWheelItem.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/MusicWheelItem.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -305,6 +305,7 @@ void MusicWheelItem::RefreshGrades() { + if(!IsLoaded()) { return; } const MusicWheelItemData *pWID = dynamic_cast( m_pData ); if( pWID == NULL ) @@ -375,6 +376,7 @@ void MusicWheelItem::HandleMessage( const Message &msg ) { + if(!IsLoaded()) { return; } if( msg == Message_CurrentStepsP1Changed || msg == Message_CurrentStepsP2Changed || msg == Message_CurrentTrailP1Changed || @@ -382,6 +384,53 @@ msg == Message_PreferredDifficultyP1Changed || msg == Message_PreferredDifficultyP2Changed ) { + const MusicWheelItemData *pWID = dynamic_cast( m_pData ); + MusicWheelItemType type = MusicWheelItemType_Invalid; + + switch( pWID->m_Type ) + { + DEFAULT_FAIL( pWID->m_Type ); + case WheelItemDataType_Song: + type = MusicWheelItemType_Song; + break; + case WheelItemDataType_Section: + if( GAMESTATE->sExpandedSectionName == pWID->m_sText ) + type = MusicWheelItemType_SectionExpanded; + else + type = MusicWheelItemType_SectionCollapsed; + break; + case WheelItemDataType_Course: + type = MusicWheelItemType_Course; + break; + case WheelItemDataType_Sort: + if( pWID->m_pAction->m_pm != PlayMode_Invalid ) + type = MusicWheelItemType_Mode; + else + type = MusicWheelItemType_Sort; + break; + case WheelItemDataType_Roulette: + type = MusicWheelItemType_Roulette; + break; + case WheelItemDataType_Random: + type = MusicWheelItemType_Random; + break; + case WheelItemDataType_Portal: + type = MusicWheelItemType_Portal; + break; + case WheelItemDataType_Custom: + type = MusicWheelItemType_Custom; + break; + } + + Message msg( "Set" ); + msg.SetParam( "Song", pWID->m_pSong ); + msg.SetParam( "Course", pWID->m_pCourse ); + msg.SetParam( "Text", pWID->m_sText ); + msg.SetParam( "Type", MusicWheelItemTypeToString(type) ); + msg.SetParam( "Color", pWID->m_color ); + msg.SetParam( "Label", pWID->m_sLabel ); + this->HandleMessage( msg ); + RefreshGrades(); } diff -Nru stepmania-5.0.12+dfsg/src/NetworkSyncManager.cpp stepmania-5.1.0+dfsg/src/NetworkSyncManager.cpp --- stepmania-5.0.12+dfsg/src/NetworkSyncManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NetworkSyncManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -21,6 +21,7 @@ RString NetworkSyncManager::GetServerName() { return RString(); } void NetworkSyncManager::ReportNSSOnOff( int i ) { } void NetworkSyncManager::ReportScore( int playerID, int step, int score, int combo, float offset ) { } +void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset, int numNotes) { } void NetworkSyncManager::ReportSongOver() { } void NetworkSyncManager::ReportStyle() {} void NetworkSyncManager::StartRequest( short position ) { } @@ -55,6 +56,7 @@ AutoScreenMessage( SM_ChangeSong ); AutoScreenMessage( SM_GotEval ); AutoScreenMessage( SM_UsersUpdate ); +AutoScreenMessage( SM_FriendsUpdate ); AutoScreenMessage( SM_SMOnlinePack ); int NetworkSyncManager::GetSMOnlineSalt() @@ -210,7 +212,7 @@ PostStartUp( ServerIP ); BroadcastReception = new EzSockets; - BroadcastReception->create( IPPROTO_UDP ); + BroadcastReception->create( EZS_UDP ); BroadcastReception->bind( 8765 ); BroadcastReception->blocking = false; } @@ -240,6 +242,53 @@ return m_ServerName; } +//Same as the one below except for ctr = uint8_t(STATSMAN->m_CurStageStats.m_player[playerID].GetGrade() * 16 + numNotes); +//Im keeping the old one because it's used for single tap notes +void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset, int numNotes) +{ + if (!useSMserver) //Make sure that we are using the network + return; + + LOG->Trace("Player ID %i combo = %i", playerID, combo); + m_packet.ClearPacket(); + + m_packet.Write1(NSCGSU); + step = TranslateStepType(step); + uint8_t ctr = (uint8_t)(playerID * 16 + step - (SMOST_HITMINE - 1)); + m_packet.Write1(ctr); + + ctr = uint8_t(STATSMAN->m_CurStageStats.m_player[playerID].GetGrade() * 16 + numNotes); + + if (STATSMAN->m_CurStageStats.m_player[playerID].m_bFailed) + ctr = uint8_t(112); //Code for failed (failed constant seems not to work) + + m_packet.Write1(ctr); + m_packet.Write4(score); + m_packet.Write2((uint16_t)combo); + m_packet.Write2((uint16_t)m_playerLife[playerID]); + + // Offset Info + // Note: if a 0 is sent, then disregard data. + + // ASSUMED: No step will be more than 16 seconds off center. + // If this assumption is false, read 16 seconds in either direction. + int iOffset = int((offset + 16.384)*2000.0f); + + if (iOffset>65535) + iOffset = 65535; + if (iOffset<1) + iOffset = 1; + + // Report 0 if hold, or miss (don't forget mines should report) + if (step == SMOST_HITMINE || step > SMOST_W1) + iOffset = 0; + + m_packet.Write2((uint16_t)iOffset); + + NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position); + +} + void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo, float offset) { if( !useSMserver ) //Make sure that we are using the network @@ -390,6 +439,31 @@ for (int i=0; i<2-players; ++i) m_packet.WriteNT(""); //Write a NULL if no player + //Send song hash/chartkey + if (m_ServerVersion >= 129) { + tSteps = GAMESTATE->m_pCurSteps[PLAYER_1]; + if (tSteps != NULL && GAMESTATE->IsPlayerEnabled(PLAYER_1)) { + m_packet.WriteNT(tSteps->GetChartKey()); + } + else + { + m_packet.WriteNT(""); + } + + tSteps = GAMESTATE->m_pCurSteps[PLAYER_2]; + if (tSteps != NULL && GAMESTATE->IsPlayerEnabled(PLAYER_2)) { + m_packet.WriteNT(tSteps->GetChartKey()); + } + else + { + m_packet.WriteNT(""); + } + + int rate = (int)(GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate * 100); + m_packet.Write1(rate); + m_packet.WriteNT(GAMESTATE->m_pCurSong->GetFileHash()); + } + //This needs to be reset before ScreenEvaluation could possibly be called m_EvalPlayerData.clear(); @@ -463,7 +537,7 @@ ThisServer.Name = BroadIn.ReadNT(); int port = BroadIn.Read2(); BroadIn.Read2(); //Num players connected. - uint32_t addy = EzSockets::LongFromAddrIn(BroadcastReception->fromAddr); + uint32_t addy = BroadcastReception->getAddress(); ThisServer.Address = ssprintf( "%u.%u.%u.%u:%d", (addy<<0)>>24, (addy<<8)>>24, (addy<<16)>>24, (addy<<24)>>24, port ); @@ -607,6 +681,12 @@ m_sMainTitle = m_packet.ReadNT(); m_sArtist = m_packet.ReadNT(); m_sSubTitle = m_packet.ReadNT(); + //Read songhash + if (m_ServerVersion >= 129) { + m_sFileHash = m_packet.ReadNT(); + } else { + m_sFileHash = "" ; + } SCREENMAN->SendMessageToTopScreen( SM_ChangeSong ); } break; @@ -668,6 +748,20 @@ m_packet.ClearPacket(); } break; + case FLU: + { + int PlayersInThisPacket = m_packet.Read1(); + fl_PlayerNames.clear(); + fl_PlayerStates.clear(); + for (int i = 0; iSendMessageToTopScreen(SM_FriendsUpdate); + } + break; } m_packet.ClearPacket(); } @@ -698,6 +792,10 @@ NetPlayerClient->SendPack((char*)&m_packet.Data, m_packet.Position); } +int NetworkSyncManager::GetServerVersion() +{ + return m_ServerVersion; +} void NetworkSyncManager::SelectUserSong() { m_packet.ClearPacket(); @@ -706,6 +804,10 @@ m_packet.WriteNT( m_sMainTitle ); m_packet.WriteNT( m_sArtist ); m_packet.WriteNT( m_sSubTitle ); + //Send songhash + if (m_ServerVersion >= 129) { + m_packet.WriteNT(GAMESTATE->m_pCurSong->GetFileHash()); + } NetPlayerClient->SendPack( (char*)&m_packet.Data, m_packet.Position ); } @@ -765,7 +867,7 @@ uint16_t Temp; memcpy( &Temp, Data + Position,2 ); Position+=2; - return ntohs(Temp); + return EzSockets::sm_ntohs(Temp); } uint32_t PacketFunctions::Read4() @@ -776,7 +878,7 @@ uint32_t Temp; memcpy( &Temp, Data + Position,4 ); Position+=4; - return ntohl(Temp); + return EzSockets::sm_ntohl(Temp); } RString PacketFunctions::ReadNT() @@ -803,7 +905,7 @@ { if (Position>=NETMAXBUFFERSIZE-1) return; - data = htons(data); + data = EzSockets::sm_htons(data); memcpy( &Data[Position], &data, 2 ); Position+=2; } @@ -813,7 +915,7 @@ if (Position>=NETMAXBUFFERSIZE-3) return ; - data = htonl(data); + data = EzSockets::sm_htonl(data); memcpy( &Data[Position], &data, 4 ); Position+=4; } diff -Nru stepmania-5.0.12+dfsg/src/NetworkSyncManager.h stepmania-5.1.0+dfsg/src/NetworkSyncManager.h --- stepmania-5.0.12+dfsg/src/NetworkSyncManager.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NetworkSyncManager.h 2018-01-25 05:01:07.000000000 +0000 @@ -7,7 +7,7 @@ class LoadingWindow; -const int NETPROTOCOLVERSION=3; +const int NETPROTOCOLVERSION=4; const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets const int NETNUMTAPSCORES=8; @@ -29,6 +29,8 @@ NSCSMOnline, // 12 [SMLC_SMO] NSCFormatted, // 13 [SMLC_RESERVED1] NSCAttack, // 14 [SMLC_RESERVED2] + XML, // 15 [SMLC_RESERVED3] + FLU, // 15 [SMLC_FriendListUpdate] NUM_NS_COMMANDS }; @@ -114,6 +116,7 @@ // If "useSMserver" then send score to server void ReportScore( int playerID, int step, int score, int combo, float offset ); + void ReportScore(int playerID, int step, int score, int combo, float offset, int numNotes); void ReportSongOver(); void ReportStyle(); // Report style, players, and names void ReportNSSOnOff( int i ); // Report song selection screen on/off @@ -145,6 +148,10 @@ vector m_ActivePlayer; vector m_PlayerNames; + //friendlist + std::vector fl_PlayerNames; + std::vector fl_PlayerStates; + // Used for ScreenNetEvaluation vector m_EvalPlayerData; @@ -163,9 +170,12 @@ RString m_sMainTitle; RString m_sArtist; RString m_sSubTitle; + RString m_sFileHash; int m_iSelectMode; void SelectUserSong(); + int GetServerVersion(); + RString m_sChatText; // FIXME: This should NOT be public. PERIOD. It probably shouldn't be a member at all. diff -Nru stepmania-5.0.12+dfsg/src/NoteData.cpp stepmania-5.1.0+dfsg/src/NoteData.cpp --- stepmania-5.0.12+dfsg/src/NoteData.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NoteData.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -269,6 +269,12 @@ return iNum; } +void NoteData::LogNonEmptyRows() { + NonEmptyRowVector.clear(); + FOREACH_NONEMPTY_ROW_ALL_TRACKS(*this, row) + NonEmptyRowVector.push_back(row); +} + int NoteData::GetFirstTrackWithTap( int row ) const { for( int t=0; t NonEmptyRowVector; + public: void Init(); + // Mina stuf (Used for chartkey hashing) + void LogNonEmptyRows(); + std::vector& GetNonEmptyRowVector() { return NonEmptyRowVector; }; + int GetNumTracks() const { return m_TapNotes.size(); } void SetNumTracks( int iNewNumTracks ); bool IsComposite() const; diff -Nru stepmania-5.0.12+dfsg/src/NoteDisplay.cpp stepmania-5.1.0+dfsg/src/NoteDisplay.cpp --- stepmania-5.0.12+dfsg/src/NoteDisplay.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NoteDisplay.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -41,6 +41,7 @@ static const char *NoteColorTypeNames[] = { "Denominator", "Progress", + "ProgressAlternate" }; XToString( NoteColorType ); StringToX( NoteColorType ); @@ -365,15 +366,15 @@ } } void NoteColumnRenderArgs::spae_zoom_for_beat(const PlayerState* state, float beat, - RageVector3& sp_zoom, RageVector3& ae_zoom) const + RageVector3& sp_zoom, RageVector3& ae_zoom, int col_num, float y_offset) const { switch(zoom_handler->m_spline_mode) { case NCSM_Disabled: - ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(state); + ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(state, y_offset, col_num); break; case NCSM_Offset: - ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(state); + ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(state, y_offset, col_num); zoom_handler->EvalForBeat(song_beat, beat, sp_zoom); break; case NCSM_Position: @@ -697,9 +698,9 @@ static float ArrowGetAlphaOrGlow( bool bGlow, const PlayerState* pPlayerState, int iCol, float fYOffset, float fPercentFadeToFail, float fYReverseOffsetPixels, float fDrawDistanceBeforeTargetsPixels, float fFadeInPercentOfDrawFar ) { if( bGlow ) - return ArrowEffects::GetGlow(iCol, fYOffset, fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar); + return ArrowEffects::GetGlow(pPlayerState, iCol, fYOffset, fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar); else - return ArrowEffects::GetAlpha(iCol, fYOffset, fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar); + return ArrowEffects::GetAlpha(pPlayerState, iCol, fYOffset, fPercentFadeToFail, fYReverseOffsetPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar); } struct StripBuffer @@ -743,7 +744,7 @@ { ASSERT(!vpSpr.empty()); - float ae_zoom= ArrowEffects::GetZoom(m_pPlayerState); + float ae_zoom= ArrowEffects::GetZoom(m_pPlayerState, 0, column_args.column); Sprite *pSprite = vpSpr.front(); // draw manually in small segments @@ -838,6 +839,8 @@ const float fYOffset= ArrowEffects::GetYOffsetFromYPos(column_args.column, fY, m_fYReverseOffsetPixels); + ae_zoom = ArrowEffects::GetZoom(m_pPlayerState, fYOffset, column_args.column); + float cur_beat= part_args.top_beat; if(part_args.top_beat != part_args.bottom_beat) { @@ -884,10 +887,10 @@ switch(column_args.pos_handler->m_spline_mode) { case NCSM_Disabled: - ae_pos.y= fY; + ae_pos.y= fY + ArrowEffects::GetMoveY(column_args.column); break; case NCSM_Offset: - ae_pos.y= fY; + ae_pos.y= fY + ArrowEffects::GetMoveY(column_args.column); column_args.pos_handler->EvalDerivForBeat(column_args.song_beat, cur_beat, sp_pos_forward); RageVec3Normalize(&sp_pos_forward, &sp_pos_forward); break; @@ -937,10 +940,10 @@ { case NCSM_Disabled: // XXX: Actor rotations use degrees, Math uses radians. Convert here. - ae_rot.y= ArrowEffects::GetRotationY(fYOffset) * PI_180; + ae_rot.y= ArrowEffects::GetRotationY(m_pPlayerState, fYOffset, column_args.column) * -PI_180; break; case NCSM_Offset: - ae_rot.y= ArrowEffects::GetRotationY(fYOffset) * PI_180; + ae_rot.y= ArrowEffects::GetRotationY(m_pPlayerState, fYOffset, column_args.column) * -PI_180; column_args.rot_handler->EvalForBeat(column_args.song_beat, cur_beat, sp_rot); break; case NCSM_Position: @@ -984,8 +987,13 @@ const RageVector3 right_vert(center_vert.x - render_left.x, center_vert.y - render_left.y, center_vert.z - render_left.z); + // Hack: because some mods mess with the zoom, we need to compensate accordingly, + // or else hold ends don't look right. + const float fPulseInnerAdj = ArrowEffects::GetPulseInner(); + const float fVariableZoom = ArrowEffects::GetZoomVariable(fYOffset, column_args.column, 1) / fPulseInnerAdj; + const float fDistFromTop = (fY - y_start_pos) / ae_zoom; - float fTexCoordTop = SCALE(fDistFromTop, 0, unzoomed_frame_height, rect.top, rect.bottom); + float fTexCoordTop = SCALE(fDistFromTop, 0, unzoomed_frame_height, rect.top, rect.bottom * fVariableZoom); fTexCoordTop += add_to_tex_coord; const float fAlpha = ArrowGetAlphaOrGlow(glow, m_pPlayerState, column_args.column, fYOffset, part_args.percent_fade_to_fail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets); @@ -1116,13 +1124,13 @@ y_tail += cache->m_iStopDrawingHoldBodyOffsetFromTail; } - float ae_zoom= ArrowEffects::GetZoom(m_pPlayerState); + float ae_zoom= ArrowEffects::GetZoom(m_pPlayerState, 0, column_args.column); const float frame_height_top= pSpriteTop->GetUnzoomedHeight() * ae_zoom; const float frame_height_bottom= pSpriteBottom->GetUnzoomedHeight() * ae_zoom; - part_args.y_start_pos= ArrowEffects::GetYPos(column_args.column, + part_args.y_start_pos= ArrowEffects::GetYPos(m_pPlayerState, column_args.column, field_args.draw_pixels_after_targets, m_fYReverseOffsetPixels); - part_args.y_end_pos= ArrowEffects::GetYPos(column_args.column, + part_args.y_end_pos= ArrowEffects::GetYPos(m_pPlayerState, column_args.column, field_args.draw_pixels_before_targets, m_fYReverseOffsetPixels); if(reverse) { @@ -1190,8 +1198,8 @@ if( bReverse ) swap( fStartYOffset, fEndYOffset ); - const float fYHead= ArrowEffects::GetYPos(column_args.column, fStartYOffset, m_fYReverseOffsetPixels); - const float fYTail= ArrowEffects::GetYPos(column_args.column, fEndYOffset, m_fYReverseOffsetPixels); + const float fYHead= ArrowEffects::GetYPos(m_pPlayerState, column_args.column, fStartYOffset, m_fYReverseOffsetPixels); + const float fYTail= ArrowEffects::GetYPos(m_pPlayerState, column_args.column, fEndYOffset, m_fYReverseOffsetPixels); const float fColorScale = SCALE( tn.HoldResult.fLife, 0.0f, 1.0f, cache->m_fHoldLetGoGrayPercent, 1.0f ); @@ -1247,8 +1255,8 @@ float spline_beat= fBeat; if(is_being_held) { spline_beat= column_args.song_beat; } - const float fAlpha= ArrowEffects::GetAlpha(column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets); - const float fGlow= ArrowEffects::GetGlow(column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets); + const float fAlpha= ArrowEffects::GetAlpha(m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets); + const float fGlow= ArrowEffects::GetGlow(m_pPlayerState, column_args.column, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels, field_args.draw_pixels_before_targets, field_args.fade_before_targets); const RageColor diffuse = RageColor( column_args.diffuse.r * fColorScale, column_args.diffuse.g * fColorScale, @@ -1291,20 +1299,14 @@ switch(column_args.rot_handler->m_spline_mode) { case NCSM_Disabled: - if(!bIsHoldCap) - { - ae_rot.x= ArrowEffects::GetRotationX(fYOffset); - } - ae_rot.y= ArrowEffects::GetRotationY(fYOffset); - ae_rot.z= ArrowEffects::GetRotationZ(m_pPlayerState, fBeat, bIsHoldHead); + ae_rot.x= ArrowEffects::GetRotationX(m_pPlayerState, fYOffset, bIsHoldCap, column_args.column); + ae_rot.y= ArrowEffects::GetRotationY(m_pPlayerState, fYOffset, column_args.column); + ae_rot.z= ArrowEffects::GetRotationZ(m_pPlayerState, fBeat, bIsHoldHead, column_args.column); break; case NCSM_Offset: - if(!bIsHoldCap) - { - ae_rot.x= ArrowEffects::GetRotationX(fYOffset); - } - ae_rot.y= ArrowEffects::GetRotationY(fYOffset); - ae_rot.z= ArrowEffects::GetRotationZ(m_pPlayerState, fBeat, bIsHoldHead); + ae_rot.x= ArrowEffects::GetRotationX(m_pPlayerState, fYOffset, bIsHoldCap, column_args.column); + ae_rot.y= ArrowEffects::GetRotationY(m_pPlayerState, fYOffset, column_args.column); + ae_rot.z= ArrowEffects::GetRotationZ(m_pPlayerState, fBeat, bIsHoldHead, column_args.column); column_args.rot_handler->EvalForBeat(column_args.song_beat, spline_beat, sp_rot); break; case NCSM_Position: @@ -1313,7 +1315,7 @@ default: break; } - column_args.spae_zoom_for_beat(m_pPlayerState, spline_beat, sp_zoom, ae_zoom); + column_args.spae_zoom_for_beat(m_pPlayerState, spline_beat, sp_zoom, ae_zoom, column_args.column, fYOffset); column_args.SetPRZForActor(pActor, sp_pos, ae_pos, sp_rot, ae_rot, sp_zoom, ae_zoom); // [AJ] this two lines (and how they're handled) piss off many people: pActor->SetDiffuse( diffuse ); @@ -1324,6 +1326,8 @@ { DISPLAY->TexturePushMatrix(); float color = 0.0f; + //this is only used for ProgressAlternate but must be declared here + float fScaledBeat = 0.0f; switch( cache->m_NoteColorType[part] ) { case NoteColorType_Denominator: @@ -1333,6 +1337,14 @@ case NoteColorType_Progress: color = fmodf( ceilf( fBeat * cache->m_iNoteColorCount[part] ), (float)cache->m_iNoteColorCount[part] ); break; + case NoteColorType_ProgressAlternate: + fScaledBeat = fBeat * cache->m_iNoteColorCount[part]; + if( fScaledBeat - int64_t(fScaledBeat) == 0.0f ) + //we're on a boundary, so move to the previous frame. + //doing it this way ensures that fScaledBeat is never negative so fmodf works. + fScaledBeat += cache->m_iNoteColorCount[part] - 1; + color = fmodf( ceilf( fScaledBeat ), (float)cache->m_iNoteColorCount[part] ); + break; default: FAIL_M(ssprintf("Invalid NoteColorType: %i", cache->m_NoteColorType[part])); } @@ -1465,10 +1477,14 @@ switch(NCR_current.m_rot_handler.m_spline_mode) { case NCSM_Disabled: - ae_rot.z= ArrowEffects::ReceptorGetRotationZ(player_state); + ae_rot.z= ArrowEffects::ReceptorGetRotationZ(player_state, m_column); + ae_rot.x= ArrowEffects::ReceptorGetRotationX(player_state, m_column); + ae_rot.y= ArrowEffects::ReceptorGetRotationY(player_state, m_column); break; case NCSM_Offset: - ae_rot.z= ArrowEffects::ReceptorGetRotationZ(player_state); + ae_rot.z= ArrowEffects::ReceptorGetRotationZ(player_state, m_column); + ae_rot.x= ArrowEffects::ReceptorGetRotationX(player_state, m_column); + ae_rot.y= ArrowEffects::ReceptorGetRotationY(player_state, m_column); NCR_current.m_rot_handler.EvalForReceptor(song_beat, sp_rot); break; case NCSM_Position: @@ -1480,10 +1496,10 @@ switch(NCR_current.m_zoom_handler.m_spline_mode) { case NCSM_Disabled: - ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(player_state); + ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(player_state, 0, m_column); break; case NCSM_Offset: - ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(player_state); + ae_zoom.x= ae_zoom.y= ae_zoom.z= ArrowEffects::GetZoom(player_state, 0, m_column); NCR_current.m_zoom_handler.EvalForReceptor(song_beat, sp_zoom); break; case NCSM_Position: diff -Nru stepmania-5.0.12+dfsg/src/NoteDisplay.h stepmania-5.1.0+dfsg/src/NoteDisplay.h --- stepmania-5.0.12+dfsg/src/NoteDisplay.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NoteDisplay.h 2018-01-25 05:01:07.000000000 +0000 @@ -36,6 +36,7 @@ { NoteColorType_Denominator, /**< Color by note type. */ NoteColorType_Progress, /**< Color by progress. */ + NoteColorType_ProgressAlternate, /**< Color by progress, except the frame boundaries are slightly later. */ NUM_NoteColorType, NoteColorType_Invalid }; @@ -157,7 +158,7 @@ float beat, float y_offset, float y_reverse_offset, RageVector3& sp_pos, RageVector3& ae_pos) const; void spae_zoom_for_beat(const PlayerState* state, float beat, - RageVector3& sp_zoom, RageVector3& ae_zoom) const; + RageVector3& sp_zoom, RageVector3& ae_zoom, int col_num, float y_offset) const; void SetPRZForActor(Actor* actor, const RageVector3& sp_pos, const RageVector3& ae_pos, const RageVector3& sp_rot, const RageVector3& ae_rot, diff -Nru stepmania-5.0.12+dfsg/src/NoteField.cpp stepmania-5.1.0+dfsg/src/NoteField.cpp --- stepmania-5.0.12+dfsg/src/NoteField.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NoteField.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -323,7 +323,7 @@ if( !bTweeningOn && m_fCurrentBeatLastUpdate != -1 ) { const float fYOffsetLast = ArrowEffects::GetYOffset(m_pPlayerState, 0, m_fCurrentBeatLastUpdate); - const float fYPosLast= ArrowEffects::GetYPos(0, fYOffsetLast, m_fYReverseOffsetPixels); + const float fYPosLast= ArrowEffects::GetYPos(m_pPlayerState, 0, fYOffsetLast, m_fYReverseOffsetPixels); const float fPixelDifference = fYPosLast - m_fYPosCurrentBeatLastUpdate; //LOG->Trace( "speed = %f, %f, %f, %f, %f, %f", fSpeed, fYOffsetAtCurrent, fYOffsetAtNext, fSecondsAtCurrent, fSecondsAtNext, fPixelDifference, fSecondsDifference ); @@ -333,7 +333,7 @@ } m_fCurrentBeatLastUpdate = fCurrentBeat; const float fYOffsetCurrent = ArrowEffects::GetYOffset( m_pPlayerState, 0, m_fCurrentBeatLastUpdate ); - m_fYPosCurrentBeatLastUpdate= ArrowEffects::GetYPos(0, fYOffsetCurrent, m_fYReverseOffsetPixels); + m_fYPosCurrentBeatLastUpdate= ArrowEffects::GetYPos(m_pPlayerState, 0, fYOffsetCurrent, m_fYReverseOffsetPixels); m_rectMarkerBar.Update( fDeltaTime ); @@ -365,7 +365,7 @@ // TODO: Remove use of PlayerNumber. pStyle->GetMinAndMaxColX( m_pPlayerState->m_PlayerNumber, fMinX, fMaxX ); - const float fYZoom = ArrowEffects::GetZoom( m_pPlayerState ); + const float fYZoom = ArrowEffects::GetZoom( m_pPlayerState, 0, 0 ); return (fMaxX - fMinX + ARROW_SIZE) * fYZoom; } @@ -374,7 +374,7 @@ bool bIsMeasure = type == measure; const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); - const float fYPos= ArrowEffects::GetYPos(0, fYOffset, m_fYReverseOffsetPixels); + const float fYPos= ArrowEffects::GetYPos(m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels); float fAlpha; int iState; @@ -453,7 +453,7 @@ { // Draw the board centered on fYPosAt0 so that the board doesn't slide as // the draw distance changes with modifiers. - const float fYPosAt0= ArrowEffects::GetYPos(0, 0, m_fYReverseOffsetPixels); + const float fYPosAt0= ArrowEffects::GetYPos(m_pPlayerState, 0, 0, m_fYReverseOffsetPixels); RectF rect = *pSprite->GetCurrentTextureCoordRect(); const float fBoardGraphicHeightPixels = pSprite->GetUnzoomedHeight(); @@ -480,7 +480,7 @@ { float fBeat = NoteRowToBeat( iBeat ); const float fYOffset = ArrowEffects::GetYOffset( m_pPlayerState, 0, fBeat ); - const float fYPos = ArrowEffects::GetYPos(0, fYOffset, m_fYReverseOffsetPixels); + const float fYPos = ArrowEffects::GetYPos(m_pPlayerState, 0, fYOffset, m_fYReverseOffsetPixels); m_rectMarkerBar.StretchTo( RectF(-GetWidth()/2, fYPos-ARROW_SIZE/2, GetWidth()/2, fYPos+ARROW_SIZE/2) ); m_rectMarkerBar.Draw(); @@ -492,9 +492,9 @@ float fStartBeat = NoteRowToBeat( iStartBeat ); float fEndBeat = NoteRowToBeat( iEndBeat ); float fDrawDistanceAfterTargetsPixels = ArrowEffects::GetYOffset( m_pPlayerState, 0, fStartBeat ); - float fYStartPos = ArrowEffects::GetYPos(0, fDrawDistanceAfterTargetsPixels, m_fYReverseOffsetPixels); + float fYStartPos = ArrowEffects::GetYPos(m_pPlayerState, 0, fDrawDistanceAfterTargetsPixels, m_fYReverseOffsetPixels); float fDrawDistanceBeforeTargetsPixels = ArrowEffects::GetYOffset( m_pPlayerState, 0, fEndBeat ); - float fYEndPos= ArrowEffects::GetYPos(0, fDrawDistanceBeforeTargetsPixels, m_fYReverseOffsetPixels); + float fYEndPos= ArrowEffects::GetYPos(m_pPlayerState, 0, fDrawDistanceBeforeTargetsPixels, m_fYReverseOffsetPixels); // The caller should have clamped these to reasonable values ASSERT( fYStartPos > -1000 ); @@ -546,8 +546,8 @@ const float horiz_align, const RageColor& color, const RageColor& glow) { const float y_offset= ArrowEffects::GetYOffset(m_pPlayerState, 0, beat); - const float y_pos= ArrowEffects::GetYPos(0, y_offset, m_fYReverseOffsetPixels); - const float zoom= ArrowEffects::GetZoom(m_pPlayerState); + const float y_pos= ArrowEffects::GetYPos(m_pPlayerState, 0, y_offset, m_fYReverseOffsetPixels); + const float zoom= ArrowEffects::GetZoom(m_pPlayerState, y_offset, 0); const float x_base= GetWidth() * .5f; x_offset*= zoom; @@ -723,7 +723,7 @@ { const PlayerOptions& curr_options= m_pPlayerState->m_PlayerOptions.GetCurrent(); // Adjust draw range depending on some effects - m_FieldRenderArgs.draw_pixels_after_targets= m_iDrawDistanceAfterTargetsPixels; + m_FieldRenderArgs.draw_pixels_after_targets= m_iDrawDistanceAfterTargetsPixels * (1.f + curr_options.m_fDrawSizeBack); // HACK: If boomerang and centered are on, then we want to draw much // earlier so that the notes don't pop on screen. float centered_times_boomerang= @@ -732,7 +732,7 @@ m_FieldRenderArgs.draw_pixels_after_targets += int(SCALE(centered_times_boomerang, 0.f, 1.f, 0.f, -SCREEN_HEIGHT/2)); m_FieldRenderArgs.draw_pixels_before_targets = - m_iDrawDistanceBeforeTargetsPixels; + m_iDrawDistanceBeforeTargetsPixels * (1.f + curr_options.m_fDrawSize); float draw_scale= 1; draw_scale*= 1 + 0.5f * fabsf(curr_options.m_fPerspectiveTilt); diff -Nru stepmania-5.0.12+dfsg/src/NoteSkinManager.cpp stepmania-5.1.0+dfsg/src/NoteSkinManager.cpp --- stepmania-5.0.12+dfsg/src/NoteSkinManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/NoteSkinManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -546,7 +546,7 @@ { public: DEFINE_METHOD( GetPath, GetPath(SArg(1), SArg(2)) ); - DEFINE_METHOD( GetMetric, GetMetricI(SArg(1), SArg(2)) ); + DEFINE_METHOD( GetMetric, GetMetric(SArg(1), SArg(2)) ); DEFINE_METHOD( GetMetricI, GetMetricI(SArg(1), SArg(2)) ); DEFINE_METHOD( GetMetricF, GetMetricF(SArg(1), SArg(2)) ); DEFINE_METHOD( GetMetricB, GetMetricB(SArg(1), SArg(2)) ); diff -Nru stepmania-5.0.12+dfsg/src/OptionRow.cpp stepmania-5.1.0+dfsg/src/OptionRow.cpp --- stepmania-5.0.12+dfsg/src/OptionRow.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/OptionRow.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -845,10 +845,10 @@ switch( m_pHand->Reload() ) { - case OptionRowHandler::RELOAD_CHANGED_NONE: + case RELOAD_CHANGED_NONE: break; - case OptionRowHandler::RELOAD_CHANGED_ALL: + case RELOAD_CHANGED_ALL: { ChoicesChanged( m_RowType ); @@ -861,7 +861,7 @@ // fall through } - case OptionRowHandler::RELOAD_CHANGED_ENABLED: + case RELOAD_CHANGED_ENABLED: UpdateEnabledDisabled(); FOREACH_HumanPlayer( pn ) PositionUnderlines( pn ); diff -Nru stepmania-5.0.12+dfsg/src/OptionRowHandler.cpp stepmania-5.1.0+dfsg/src/OptionRowHandler.cpp --- stepmania-5.0.12+dfsg/src/OptionRowHandler.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/OptionRowHandler.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -834,6 +834,7 @@ public: LuaReference *m_pLuaTable; LuaReference m_EnabledForPlayersFunc; + LuaReference m_ReloadFunc; bool m_TableIsSane; bool m_GoToFirstOnStart; @@ -941,6 +942,17 @@ } lua_pop(L, 1); + lua_getfield(L, -1, "Reload"); + if(!lua_isnil(L, -1)) + { + if(!lua_isfunction(L, -1)) + { + LuaHelpers::ReportScriptErrorFmt("LUA_ERROR: \"%s\" \"Reload\" entry is not a function.", RowName.c_str()); + return false; + } + } + lua_pop(L, 1); + lua_getfield(L, -1, "LoadSelections"); if(!lua_isfunction(L, -1)) { @@ -1007,6 +1019,22 @@ LUA->Release(L); } + void LoadChoices( Lua *L ) + { + // Iterate over the "Choices" table. + lua_getfield(L, -1, "Choices"); + lua_pushnil( L ); + while( lua_next(L, -2) != 0 ) + { + // `key' is at index -2 and `value' at index -1 + const char *pValue = lua_tostring( L, -1 ); + //LOG->Trace( "choice: '%s'", pValue); + m_Def.m_vsChoices.push_back( pValue ); + lua_pop( L, 1 ); // removes `value'; keeps `key' for next iteration + } + lua_pop( L, 1 ); // pop choices table + } + virtual bool LoadInternal( const Commands &cmds ) { const Command &command = cmds.v[0]; @@ -1059,18 +1087,7 @@ m_Def.m_selectType = StringToSelectType( pStr ); lua_pop( L, 1 ); - // Iterate over the "Choices" table. - lua_getfield(L, -1, "Choices"); - lua_pushnil( L ); - while( lua_next(L, -2) != 0 ) - { - // `key' is at index -2 and `value' at index -1 - const char *pValue = lua_tostring( L, -1 ); - //LOG->Trace( "choice: '%s'", pValue); - m_Def.m_vsChoices.push_back( pValue ); - lua_pop( L, 1 ); // removes `value'; keeps `key' for next iteration - } - lua_pop( L, 1 ); // pop choices table + LoadChoices( L ); // Set the EnabledForPlayers function. lua_getfield(L, -1, "EnabledForPlayers"); @@ -1093,6 +1110,10 @@ } lua_pop( L, 1 ); // pop ReloadRowMessages table + // Set the Reload function + lua_getfield(L, -1, "Reload"); + m_ReloadFunc.SetFromStack( L ); + lua_pop( L, 1 ); // pop main table ASSERT( lua_gettop(L) == 0 ); @@ -1102,8 +1123,47 @@ virtual ReloadChanged Reload() { + if (!m_TableIsSane) + { + return RELOAD_CHANGED_NONE; + } + + /* We'll always call SetEnabledForPlayers, and + * return at least RELOAD_CHANGED_ENABLED, + * to preserve original OptionRowHandlerLua behavior. + * + * Will also call the standard OptionRowHandler::Reload + * function to determine whether we should declare a full + * RELOAD_CHANGED_ALL + */ + ReloadChanged effect = RELOAD_CHANGED_ENABLED; + + if (!m_ReloadFunc.IsNil()) + { + Lua *L = LUA->Get(); + m_ReloadFunc.PushSelf( L ); + + // Argument 1: (self) + m_pLuaTable->PushSelf( L ); + RString error = "Reload: "; + + LuaHelpers::RunScriptOnStack( L, error, 1, 1, true ); + effect = std::max( effect, Enum::Check( L, -1 )); + lua_pop( L, 1 ); + + if (effect == RELOAD_CHANGED_ALL) + { + m_Def.m_vsChoices.clear(); + m_pLuaTable->PushSelf( L ); + LoadChoices( L ); + lua_pop( L, 1 ); + ASSERT( lua_gettop(L) == 0 ); + } + LUA->Release( L ); + } + SetEnabledForPlayers(); - return RELOAD_CHANGED_ENABLED; + return effect; } virtual void ImportOption( OptionRow *pRow, const vector &vpns, vector vbSelectedOut[NUM_PLAYERS] ) const @@ -1174,6 +1234,7 @@ ASSERT( lua_gettop(L) == 0 ); + int effects = 0; FOREACH_CONST( PlayerNumber, vpns, pn ) { PlayerNumber p = *pn; @@ -1206,9 +1267,14 @@ ASSERT( lua_gettop(L) == 6 ); // vbSelectedOut, m_iLuaTable, function, self, arg, arg RString error= "SaveSelections: "; - LuaHelpers::RunScriptOnStack( L, error, 3, 0, true ); - ASSERT( lua_gettop(L) == 2 ); + LuaHelpers::RunScriptOnStack( L, error, 3, 1, true ); + ASSERT( lua_gettop(L) == 3 ); // SaveSelections *may* return effects flags, otherwise nil + double ret = lua_tonumber( L, -1 ); + ASSERT_M( (lua_isnumber( L, -1 ) && std::floor( ret ) == ret) || lua_isnil( L, -1 ), + "SaveSelections must return integer flags, or nill" ); + effects |= static_cast( ret ); + lua_pop( L, 1 ); // pop effects lua_pop( L, 1 ); // pop option table lua_pop( L, 1 ); // pop vbSelected table @@ -1217,8 +1283,7 @@ LUA->Release(L); - // XXX: allow specifying the mask - return 0; + return effects; } virtual bool NotifyOfSelection(PlayerNumber pn, int choice) { @@ -1593,6 +1658,17 @@ return pHand; } +// Expose ReloadChanged to Lua +static const char *ReloadChangedNames[] = + { + "None", + "Enabled", + "All" + }; +XToString( ReloadChanged ); +StringToX( ReloadChanged ); +LuaXType( ReloadChanged ); + /* * (c) 2002-2004 Chris Danford * All rights reserved. diff -Nru stepmania-5.0.12+dfsg/src/OptionRowHandler.h stepmania-5.1.0+dfsg/src/OptionRowHandler.h --- stepmania-5.0.12+dfsg/src/OptionRowHandler.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/OptionRowHandler.h 2018-01-25 05:01:07.000000000 +0000 @@ -31,6 +31,13 @@ const RString& LayoutTypeToString( LayoutType pm ); LayoutType StringToLayoutType( const RString& s ); LuaDeclareType( LayoutType ); +enum ReloadChanged +{ + RELOAD_CHANGED_NONE, RELOAD_CHANGED_ENABLED, RELOAD_CHANGED_ALL, NUM_ReloadChanged, ReloadChanged_Invalid +}; +const RString& ReloadChangedToString( ReloadChanged rc ); +ReloadChanged StringToReloadChanged( const std::string& rc ); +LuaDeclareType( ReloadChanged ); /** @brief Define the purpose of the OptionRow. */ struct OptionRowDefinition @@ -169,7 +176,6 @@ * graphic elements will also be reinitialized. If only m_vEnabledForPlayers * has been changed, return RELOAD_CHANGED_ENABLED. If the row is static, and * nothing has changed, return RELOAD_CHANGED_NONE. */ - enum ReloadChanged { RELOAD_CHANGED_NONE, RELOAD_CHANGED_ENABLED, RELOAD_CHANGED_ALL }; virtual ReloadChanged Reload() { return RELOAD_CHANGED_NONE; } virtual int GetDefaultOption() const { return -1; } diff -Nru stepmania-5.0.12+dfsg/src/PercentageDisplay.cpp stepmania-5.1.0+dfsg/src/PercentageDisplay.cpp --- stepmania-5.0.12+dfsg/src/PercentageDisplay.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PercentageDisplay.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -201,9 +201,6 @@ return true; } - if( PREFSMAN->m_bDancePointsForOni ) - return true; - return false; } diff -Nru stepmania-5.0.12+dfsg/src/Player.cpp stepmania-5.1.0+dfsg/src/Player.cpp --- stepmania-5.0.12+dfsg/src/Player.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Player.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -236,6 +236,7 @@ m_drawing_notefield_board= false; m_bLoaded = false; m_inside_lua_set_life= false; + m_oitg_zoom_mode= false; m_pPlayerState = NULL; m_pPlayerStageStats = NULL; @@ -891,7 +892,7 @@ //float fGrayYPos = SCALE( fPercentReverse, 0.f, 1.f, GRAY_ARROWS_Y_STANDARD, GRAY_ARROWS_Y_REVERSE ); float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 ); - const float fZ = ArrowEffects::GetZPos(c, 0); + const float fZ = ArrowEffects::GetZPos( m_pPlayerState, c, 0); fX *= ( 1 - fMiniPercent * 0.5f ); m_vpHoldJudgment[c]->SetX( fX ); @@ -922,9 +923,19 @@ Actor::TweenState::MakeWeightedAverage( m_pActorWithComboPosition->DestTweenState(), ts1, ts2, fPercentCentered ); } - float fNoteFieldZoom = 1 - fMiniPercent*0.5f; - if( m_pNoteField ) - m_pNoteField->SetZoom( fNoteFieldZoom ); + float field_zoom = 1 - fMiniPercent*0.5f; + if(m_pNoteField) + { + if(m_oitg_zoom_mode) + { + m_pNoteField->SetZoomX(field_zoom); + m_pNoteField->SetZoomY(field_zoom); + } + else + { + m_pNoteField->SetZoom(field_zoom); + } + } if( m_pActorWithJudgmentPosition != NULL ) m_pActorWithJudgmentPosition->SetZoom( m_pActorWithJudgmentPosition->GetZoom() * fJudgmentZoom ); if( m_pActorWithComboPosition != NULL ) @@ -1620,7 +1631,15 @@ y_offset= SCALE(tilt, 0.f, -1.f, 0.f, -20.f) * reverse_mult; } player->m_pNoteField->SetY(original_y + y_offset); - player->m_pNoteField->SetZoom(zoom); + if(player->m_oitg_zoom_mode) + { + player->m_pNoteField->SetZoomX(zoom); + player->m_pNoteField->SetZoomY(zoom); + } + else + { + player->m_pNoteField->SetZoom(zoom); + } player->m_pNoteField->SetRotationX(tilt_degrees); } @@ -3324,6 +3343,7 @@ p->GetPlayerTimingData().PushSelf(L); return 1; } + GET_SET_BOOL_METHOD(oitg_zoom_mode, m_oitg_zoom_mode); LunaPlayer() { @@ -3332,6 +3352,7 @@ ADD_METHOD( SetActorWithJudgmentPosition ); ADD_METHOD( SetActorWithComboPosition ); ADD_METHOD( GetPlayerTimingData ); + ADD_GET_SET_METHODS(oitg_zoom_mode); } }; diff -Nru stepmania-5.0.12+dfsg/src/Player.h stepmania-5.1.0+dfsg/src/Player.h --- stepmania-5.0.12+dfsg/src/Player.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Player.h 2018-01-25 05:01:07.000000000 +0000 @@ -124,6 +124,12 @@ void SetSendJudgmentAndComboMessages( bool b ) { m_bSendJudgmentAndComboMessages = b; } + // OITG bug: Actor::SetZoom only sets X and Y. When mini is applied to + // the notefield with SetZoom, it does not affect the range of bumpy. + // m_oitg_zoom_mode provides compatibility with that bug. Only used in + // defective mode. -Kyz + bool m_oitg_zoom_mode; + // Lua virtual void PushSelf( lua_State *L ); diff -Nru stepmania-5.0.12+dfsg/src/PlayerOptions.cpp stepmania-5.1.0+dfsg/src/PlayerOptions.cpp --- stepmania-5.0.12+dfsg/src/PlayerOptions.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PlayerOptions.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -30,6 +30,16 @@ XToLocalizedString( DrainType ); LuaXType( DrainType ); +static const char *ModTimerTypeNames[] = { + "Game", + "Beat", + "Song", + "Default", +}; +XToString( ModTimerType ); +XToLocalizedString( ModTimerType ); +LuaXType( ModTimerType ); + void NextFloat( float fValues[], int size ); void NextBool( bool bValues[], int size ); @@ -51,6 +61,7 @@ { m_LifeType = LifeType_Bar; m_DrainType = DrainType_Normal; + m_ModTimerType = ModTimerType_Default; m_BatteryLives = 4; m_MinTNSToHideNotes= PREFSMAN->m_MinTNSToHideNotes; m_bSetScrollSpeed = false; @@ -72,10 +83,31 @@ m_fSkew = 0; m_SpeedfSkew = 1.0f; m_fPassmark = 0; m_SpeedfPassmark = 1.0f; m_fRandomSpeed = 0; m_SpeedfRandomSpeed = 1.0f; + m_fModTimerMult = 0; m_SpeedfModTimerMult = 1.0f; + m_fModTimerOffset = 0; m_SpeedfModTimerOffset = 1.0f; + m_fDrawSize = 0; m_SpeedfDrawSize = 1.0f; + m_fDrawSizeBack = 0; m_SpeedfDrawSizeBack = 1.0f; ZERO( m_bTurns ); ZERO( m_bTransforms ); m_bMuteOnError = false; + m_bStealthType = false; + m_bStealthPastReceptors = false; + m_bDizzyHolds = false; + m_bZBuffer = false; + m_bCosecant = false; m_sNoteSkin = ""; + ZERO( m_fMovesX ); ONE( m_SpeedfMovesX ); + ZERO( m_fMovesY ); ONE( m_SpeedfMovesY ); + ZERO( m_fMovesZ ); ONE( m_SpeedfMovesZ ); + ZERO( m_fConfusionX ); ONE( m_SpeedfConfusionX ); + ZERO( m_fConfusionY ); ONE( m_SpeedfConfusionY ); + ZERO( m_fConfusionZ ); ONE( m_SpeedfConfusionZ ); + ZERO( m_fDarks ); ONE( m_SpeedfDarks ); + ZERO( m_fStealth ); ONE( m_SpeedfStealth ); + ZERO( m_fTiny ); ONE( m_SpeedfTiny ); + ZERO( m_fBumpy ); ONE( m_SpeedfBumpy ); + ZERO( m_fReverse ); ONE( m_SpeedfReverse ); + } void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds ) @@ -87,7 +119,12 @@ DO_COPY( m_LifeType ); DO_COPY( m_DrainType ); + DO_COPY( m_ModTimerType ); DO_COPY( m_BatteryLives ); + APPROACH( fModTimerMult ); + APPROACH( fModTimerOffset ); + APPROACH( fDrawSize ); + APPROACH( fDrawSizeBack ); APPROACH( fTimeSpacing ); APPROACH( fScrollSpeed ); APPROACH( fMaxScrollBPM ); @@ -110,6 +147,28 @@ APPROACH( fSkew ); APPROACH( fPassmark ); APPROACH( fRandomSpeed ); + for( int i=0; i<16; i++) + APPROACH( fMovesX[i] ); + for( int i=0; i<16; i++) + APPROACH( fMovesY[i] ); + for( int i=0; i<16; i++) + APPROACH( fMovesZ[i] ); + for( int i=0; i<16; i++) + APPROACH( fConfusionX[i] ); + for( int i=0; i<16; i++) + APPROACH( fConfusionY[i] ); + for( int i=0; i<16; i++) + APPROACH( fConfusionZ[i] ); + for( int i=0; i<16; i++) + APPROACH( fDarks[i] ); + for( int i=0; i<16; i++) + APPROACH( fStealth[i] ); + for( int i=0; i<16; i++) + APPROACH( fTiny[i] ); + for( int i=0; i<16; i++) + APPROACH( fBumpy[i] ); + for( int i=0; i<16; i++) + APPROACH( fReverse[i] ); DO_COPY( m_bSetScrollSpeed ); for( int i=0; iDoesNoteSkinExist(name)) + { + m_sNoteSkin = name; + } return false; } @@ -740,6 +1317,7 @@ int iNumCols = GAMESTATE->GetCurrentStyle(m_pn)->m_iColsPerPlayer; f += m_fScrolls[SCROLL_REVERSE]; + f += m_fReverse[iCol]; if( iCol >= iNumCols/2 ) f += m_fScrolls[SCROLL_SPLIT]; @@ -764,6 +1342,11 @@ #define COMPARE(x) { if( x != other.x ) return false; } COMPARE(m_LifeType); COMPARE(m_DrainType); + COMPARE(m_ModTimerType); + COMPARE(m_fModTimerMult); + COMPARE(m_fModTimerOffset); + COMPARE(m_fDrawSize); + COMPARE(m_fDrawSizeBack); COMPARE(m_BatteryLives); COMPARE(m_fTimeSpacing); COMPARE(m_fScrollSpeed); @@ -773,6 +1356,11 @@ COMPARE(m_FailType); COMPARE(m_MinTNSToHideNotes); COMPARE(m_bMuteOnError); + COMPARE(m_bStealthType); + COMPARE(m_bStealthPastReceptors); + COMPARE(m_bDizzyHolds); + COMPARE(m_bZBuffer); + COMPARE(m_bCosecant); COMPARE(m_fDark); COMPARE(m_fBlind); COMPARE(m_fCover); @@ -801,6 +1389,28 @@ COMPARE(m_bTurns[i]); for( int i = 0; i < PlayerOptions::NUM_TRANSFORMS; ++i ) COMPARE(m_bTransforms[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fMovesX[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fMovesY[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fMovesZ[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fConfusionX[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fConfusionY[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fConfusionZ[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fDarks[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fStealth[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fTiny[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fBumpy[i]); + for( int i = 0; i < 16; ++i ) + COMPARE(m_fReverse[i]); #undef COMPARE return true; } @@ -813,6 +1423,11 @@ #define CPY_SPEED(x) m_ ## x = other.m_ ## x; m_Speed ## x = other.m_Speed ## x; CPY(m_LifeType); CPY(m_DrainType); + CPY(m_ModTimerType); + CPY_SPEED(fModTimerMult); + CPY_SPEED(fModTimerOffset); + CPY_SPEED(fDrawSize); + CPY_SPEED(fDrawSizeBack); CPY(m_BatteryLives); CPY_SPEED(fTimeSpacing); CPY_SPEED(fScrollSpeed); @@ -822,6 +1437,11 @@ CPY(m_FailType); CPY(m_MinTNSToHideNotes); CPY(m_bMuteOnError); + CPY(m_bStealthType); + CPY(m_bStealthPastReceptors); + CPY(m_bDizzyHolds); + CPY(m_bZBuffer); + CPY(m_bCosecant); CPY_SPEED(fDark); CPY_SPEED(fBlind); CPY_SPEED(fCover); @@ -859,6 +1479,50 @@ { CPY(m_bTransforms[i]); } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fMovesX[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fMovesY[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fMovesZ[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fConfusionX[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fConfusionY[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fConfusionZ[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fDarks[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fStealth[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fTiny[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fBumpy[i]); + } + for( int i = 0; i < 16; ++i ) + { + CPY_SPEED(fReverse[i]); + } #undef CPY #undef CPY_SPEED return *this; @@ -1037,6 +1701,16 @@ CPY(m_LifeType); CPY(m_DrainType); CPY(m_BatteryLives); + CPY(m_ModTimerType); + CPY(m_fModTimerMult); + CPY(m_fModTimerOffset); + CPY(m_fDrawSize); + CPY(m_fDrawSizeBack); + CPY(m_bStealthType); + CPY(m_bStealthPastReceptors); + CPY(m_bDizzyHolds); + CPY(m_bZBuffer); + CPY(m_bCosecant); CPY(m_MinTNSToHideNotes); CPY( m_fPerspectiveTilt ); @@ -1083,7 +1757,12 @@ ENUM_INTERFACE(LifeSetting, LifeType, LifeType); ENUM_INTERFACE(DrainSetting, DrainType, DrainType); + ENUM_INTERFACE(ModTimerSetting, ModTimerType, ModTimerType) INT_INTERFACE(BatteryLives, BatteryLives); + FLOAT_INTERFACE(ModTimerMult, ModTimerMult, true); + FLOAT_INTERFACE(ModTimerOffset, ModTimerOffset, true); + FLOAT_INTERFACE(DrawSize, DrawSize, true); + FLOAT_INTERFACE(DrawSizeBack, DrawSizeBack, true); FLOAT_INTERFACE(TimeSpacing, TimeSpacing, true); FLOAT_INTERFACE(MaxScrollBPM, MaxScrollBPM, true); FLOAT_INTERFACE(ScrollSpeed, ScrollSpeed, true); @@ -1091,19 +1770,131 @@ FLOAT_INTERFACE(Boost, Accels[PlayerOptions::ACCEL_BOOST], true); FLOAT_INTERFACE(Brake, Accels[PlayerOptions::ACCEL_BRAKE], true); FLOAT_INTERFACE(Wave, Accels[PlayerOptions::ACCEL_WAVE], true); + FLOAT_INTERFACE(WavePeriod, Accels[PlayerOptions::ACCEL_WAVE_PERIOD], true); FLOAT_INTERFACE(Expand, Accels[PlayerOptions::ACCEL_EXPAND], true); + FLOAT_INTERFACE(ExpandPeriod, Accels[PlayerOptions::ACCEL_EXPAND_PERIOD], true); + FLOAT_INTERFACE(TanExpand, Accels[PlayerOptions::ACCEL_TAN_EXPAND], true); + FLOAT_INTERFACE(TanExpandPeriod, Accels[PlayerOptions::ACCEL_TAN_EXPAND_PERIOD], true); FLOAT_INTERFACE(Boomerang, Accels[PlayerOptions::ACCEL_BOOMERANG], true); FLOAT_INTERFACE(Drunk, Effects[PlayerOptions::EFFECT_DRUNK], true); + FLOAT_INTERFACE(DrunkSpeed, Effects[PlayerOptions::EFFECT_DRUNK_SPEED], true); + FLOAT_INTERFACE(DrunkOffset, Effects[PlayerOptions::EFFECT_DRUNK_OFFSET], true); + FLOAT_INTERFACE(DrunkPeriod, Effects[PlayerOptions::EFFECT_DRUNK_PERIOD], true); + FLOAT_INTERFACE(TanDrunk, Effects[PlayerOptions::EFFECT_TAN_DRUNK], true); + FLOAT_INTERFACE(TanDrunkSpeed, Effects[PlayerOptions::EFFECT_TAN_DRUNK_SPEED], true); + FLOAT_INTERFACE(TanDrunkOffset, Effects[PlayerOptions::EFFECT_TAN_DRUNK_OFFSET], true); + FLOAT_INTERFACE(TanDrunkPeriod, Effects[PlayerOptions::EFFECT_TAN_DRUNK_PERIOD], true); + FLOAT_INTERFACE(DrunkZ, Effects[PlayerOptions::EFFECT_DRUNK_Z], true); + FLOAT_INTERFACE(DrunkZSpeed, Effects[PlayerOptions::EFFECT_DRUNK_Z_SPEED], true); + FLOAT_INTERFACE(DrunkZOffset, Effects[PlayerOptions::EFFECT_DRUNK_Z_OFFSET], true); + FLOAT_INTERFACE(DrunkZPeriod, Effects[PlayerOptions::EFFECT_DRUNK_Z_PERIOD], true); + FLOAT_INTERFACE(TanDrunkZ, Effects[PlayerOptions::EFFECT_TAN_DRUNK_Z], true); + FLOAT_INTERFACE(TanDrunkZSpeed, Effects[PlayerOptions::EFFECT_TAN_DRUNK_Z_SPEED], true); + FLOAT_INTERFACE(TanDrunkZOffset, Effects[PlayerOptions::EFFECT_TAN_DRUNK_Z_OFFSET], true); + FLOAT_INTERFACE(TanDrunkZPeriod, Effects[PlayerOptions::EFFECT_TAN_DRUNK_Z_PERIOD], true); FLOAT_INTERFACE(Dizzy, Effects[PlayerOptions::EFFECT_DIZZY], true); + FLOAT_INTERFACE(AttenuateX, Effects[PlayerOptions::EFFECT_ATTENUATE_X], true); + FLOAT_INTERFACE(AttenuateY, Effects[PlayerOptions::EFFECT_ATTENUATE_Y], true); + FLOAT_INTERFACE(AttenuateZ, Effects[PlayerOptions::EFFECT_ATTENUATE_Z], true); + FLOAT_INTERFACE(ShrinkLinear, Effects[PlayerOptions::EFFECT_SHRINK_TO_LINEAR], true); + FLOAT_INTERFACE(ShrinkMult, Effects[PlayerOptions::EFFECT_SHRINK_TO_MULT], true); + FLOAT_INTERFACE(PulseInner, Effects[PlayerOptions::EFFECT_PULSE_INNER], true); + FLOAT_INTERFACE(PulseOuter, Effects[PlayerOptions::EFFECT_PULSE_OUTER], true); + FLOAT_INTERFACE(PulsePeriod, Effects[PlayerOptions::EFFECT_PULSE_PERIOD], true); + FLOAT_INTERFACE(PulseOffset, Effects[PlayerOptions::EFFECT_PULSE_OFFSET], true); FLOAT_INTERFACE(Confusion, Effects[PlayerOptions::EFFECT_CONFUSION], true); + FLOAT_INTERFACE(ConfusionOffset, Effects[PlayerOptions::EFFECT_CONFUSION_OFFSET], true); + FLOAT_INTERFACE(ConfusionX, Effects[PlayerOptions::EFFECT_CONFUSION_X], true); + FLOAT_INTERFACE(ConfusionXOffset, Effects[PlayerOptions::EFFECT_CONFUSION_X_OFFSET], true); + FLOAT_INTERFACE(ConfusionY, Effects[PlayerOptions::EFFECT_CONFUSION_Y], true); + FLOAT_INTERFACE(ConfusionYOffset, Effects[PlayerOptions::EFFECT_CONFUSION_Y_OFFSET], true); + FLOAT_INTERFACE(Bounce, Effects[PlayerOptions::EFFECT_BOUNCE], true); + FLOAT_INTERFACE(BouncePeriod, Effects[PlayerOptions::EFFECT_BOUNCE_PERIOD], true); + FLOAT_INTERFACE(BounceOffset, Effects[PlayerOptions::EFFECT_BOUNCE_OFFSET], true); + FLOAT_INTERFACE(BounceZ, Effects[PlayerOptions::EFFECT_BOUNCE_Z], true); + FLOAT_INTERFACE(BounceZPeriod, Effects[PlayerOptions::EFFECT_BOUNCE_Z_PERIOD], true); + FLOAT_INTERFACE(BounceZOffset, Effects[PlayerOptions::EFFECT_BOUNCE_Z_OFFSET], true); FLOAT_INTERFACE(Mini, Effects[PlayerOptions::EFFECT_MINI], true); FLOAT_INTERFACE(Tiny, Effects[PlayerOptions::EFFECT_TINY], true); FLOAT_INTERFACE(Flip, Effects[PlayerOptions::EFFECT_FLIP], true); FLOAT_INTERFACE(Invert, Effects[PlayerOptions::EFFECT_INVERT], true); FLOAT_INTERFACE(Tornado, Effects[PlayerOptions::EFFECT_TORNADO], true); + FLOAT_INTERFACE(TornadoPeriod, Effects[PlayerOptions::EFFECT_TORNADO_PERIOD], true); + FLOAT_INTERFACE(TornadoOffset, Effects[PlayerOptions::EFFECT_TORNADO_OFFSET], true); + FLOAT_INTERFACE(TanTornado, Effects[PlayerOptions::EFFECT_TAN_TORNADO], true); + FLOAT_INTERFACE(TanTornadoPeriod, Effects[PlayerOptions::EFFECT_TAN_TORNADO_PERIOD], true); + FLOAT_INTERFACE(TanTornadoOffset, Effects[PlayerOptions::EFFECT_TAN_TORNADO_OFFSET], true); + FLOAT_INTERFACE(TornadoZ, Effects[PlayerOptions::EFFECT_TORNADO_Z], true); + FLOAT_INTERFACE(TornadoZPeriod, Effects[PlayerOptions::EFFECT_TORNADO_Z_PERIOD], true); + FLOAT_INTERFACE(TornadoZOffset, Effects[PlayerOptions::EFFECT_TORNADO_Z_OFFSET], true); + FLOAT_INTERFACE(TanTornadoZ, Effects[PlayerOptions::EFFECT_TAN_TORNADO_Z], true); + FLOAT_INTERFACE(TanTornadoZPeriod, Effects[PlayerOptions::EFFECT_TAN_TORNADO_Z_PERIOD], true); + FLOAT_INTERFACE(TanTornadoZOffset, Effects[PlayerOptions::EFFECT_TAN_TORNADO_Z_OFFSET], true); FLOAT_INTERFACE(Tipsy, Effects[PlayerOptions::EFFECT_TIPSY], true); + FLOAT_INTERFACE(TipsySpeed, Effects[PlayerOptions::EFFECT_TIPSY_SPEED], true); + FLOAT_INTERFACE(TipsyOffset, Effects[PlayerOptions::EFFECT_TIPSY_OFFSET], true); + FLOAT_INTERFACE(TanTipsy, Effects[PlayerOptions::EFFECT_TAN_TIPSY], true); + FLOAT_INTERFACE(TanTipsySpeed, Effects[PlayerOptions::EFFECT_TAN_TIPSY_SPEED], true); + FLOAT_INTERFACE(TanTipsyOffset, Effects[PlayerOptions::EFFECT_TAN_TIPSY_OFFSET], true); FLOAT_INTERFACE(Bumpy, Effects[PlayerOptions::EFFECT_BUMPY], true); + FLOAT_INTERFACE(BumpyOffset, Effects[PlayerOptions::EFFECT_BUMPY_OFFSET], true); + FLOAT_INTERFACE(BumpyPeriod, Effects[PlayerOptions::EFFECT_BUMPY_PERIOD], true); + FLOAT_INTERFACE(TanBumpy, Effects[PlayerOptions::EFFECT_TAN_BUMPY], true); + FLOAT_INTERFACE(TanBumpyOffset, Effects[PlayerOptions::EFFECT_TAN_BUMPY_OFFSET], true); + FLOAT_INTERFACE(TanBumpyPeriod, Effects[PlayerOptions::EFFECT_TAN_BUMPY_PERIOD], true); + FLOAT_INTERFACE(BumpyX, Effects[PlayerOptions::EFFECT_BUMPY_X], true); + FLOAT_INTERFACE(BumpyXOffset, Effects[PlayerOptions::EFFECT_BUMPY_X_OFFSET], true); + FLOAT_INTERFACE(BumpyXPeriod, Effects[PlayerOptions::EFFECT_BUMPY_X_PERIOD], true); + FLOAT_INTERFACE(TanBumpyX, Effects[PlayerOptions::EFFECT_TAN_BUMPY_X], true); + FLOAT_INTERFACE(TanBumpyXOffset, Effects[PlayerOptions::EFFECT_TAN_BUMPY_X_OFFSET], true); + FLOAT_INTERFACE(TanBumpyXPeriod, Effects[PlayerOptions::EFFECT_TAN_BUMPY_X_PERIOD], true); FLOAT_INTERFACE(Beat, Effects[PlayerOptions::EFFECT_BEAT], true); + FLOAT_INTERFACE(BeatOffset, Effects[PlayerOptions::EFFECT_BEAT_OFFSET], true); + FLOAT_INTERFACE(BeatPeriod, Effects[PlayerOptions::EFFECT_BEAT_PERIOD], true); + FLOAT_INTERFACE(BeatMult, Effects[PlayerOptions::EFFECT_BEAT_MULT], true); + FLOAT_INTERFACE(BeatY, Effects[PlayerOptions::EFFECT_BEAT_Y], true); + FLOAT_INTERFACE(BeatYOffset, Effects[PlayerOptions::EFFECT_BEAT_Y_OFFSET], true); + FLOAT_INTERFACE(BeatYPeriod, Effects[PlayerOptions::EFFECT_BEAT_Y_PERIOD], true); + FLOAT_INTERFACE(BeatYMult, Effects[PlayerOptions::EFFECT_BEAT_Y_MULT], true); + FLOAT_INTERFACE(BeatZ, Effects[PlayerOptions::EFFECT_BEAT_Z], true); + FLOAT_INTERFACE(BeatZOffset, Effects[PlayerOptions::EFFECT_BEAT_Z_OFFSET], true); + FLOAT_INTERFACE(BeatZPeriod, Effects[PlayerOptions::EFFECT_BEAT_Z_PERIOD], true); + FLOAT_INTERFACE(BeatZMult, Effects[PlayerOptions::EFFECT_BEAT_Z_MULT], true); + FLOAT_INTERFACE(Zigzag, Effects[PlayerOptions::EFFECT_ZIGZAG], true); + FLOAT_INTERFACE(ZigzagPeriod, Effects[PlayerOptions::EFFECT_ZIGZAG_PERIOD], true); + FLOAT_INTERFACE(ZigzagOffset, Effects[PlayerOptions::EFFECT_ZIGZAG_OFFSET], true); + FLOAT_INTERFACE(ZigzagZ, Effects[PlayerOptions::EFFECT_ZIGZAG_Z], true); + FLOAT_INTERFACE(ZigzagZPeriod, Effects[PlayerOptions::EFFECT_ZIGZAG_Z_PERIOD], true); + FLOAT_INTERFACE(ZigzagZOffset, Effects[PlayerOptions::EFFECT_ZIGZAG_Z_OFFSET], true); + FLOAT_INTERFACE(Sawtooth, Effects[PlayerOptions::EFFECT_SAWTOOTH], true); + FLOAT_INTERFACE(SawtoothPeriod, Effects[PlayerOptions::EFFECT_SAWTOOTH_PERIOD], true); + FLOAT_INTERFACE(SawtoothZ, Effects[PlayerOptions::EFFECT_SAWTOOTH_Z], true); + FLOAT_INTERFACE(SawtoothZPeriod, Effects[PlayerOptions::EFFECT_SAWTOOTH_Z_PERIOD], true); + FLOAT_INTERFACE(Square, Effects[PlayerOptions::EFFECT_SQUARE], true); + FLOAT_INTERFACE(SquareOffset, Effects[PlayerOptions::EFFECT_SQUARE_OFFSET], true); + FLOAT_INTERFACE(SquarePeriod, Effects[PlayerOptions::EFFECT_SQUARE_PERIOD], true); + FLOAT_INTERFACE(SquareZ, Effects[PlayerOptions::EFFECT_SQUARE_Z], true); + FLOAT_INTERFACE(SquareZOffset, Effects[PlayerOptions::EFFECT_SQUARE_Z_OFFSET], true); + FLOAT_INTERFACE(SquareZPeriod, Effects[PlayerOptions::EFFECT_SQUARE_Z_PERIOD], true); + FLOAT_INTERFACE(Digital, Effects[PlayerOptions::EFFECT_DIGITAL], true); + FLOAT_INTERFACE(DigitalSteps, Effects[PlayerOptions::EFFECT_DIGITAL_STEPS], true); + FLOAT_INTERFACE(DigitalPeriod, Effects[PlayerOptions::EFFECT_DIGITAL_PERIOD], true); + FLOAT_INTERFACE(DigitalOffset, Effects[PlayerOptions::EFFECT_DIGITAL_OFFSET], true); + FLOAT_INTERFACE(TanDigital, Effects[PlayerOptions::EFFECT_TAN_DIGITAL], true); + FLOAT_INTERFACE(TanDigitalSteps, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_STEPS], true); + FLOAT_INTERFACE(TanDigitalPeriod, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_PERIOD], true); + FLOAT_INTERFACE(TanDigitalOffset, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_OFFSET], true); + FLOAT_INTERFACE(DigitalZ, Effects[PlayerOptions::EFFECT_DIGITAL_Z], true); + FLOAT_INTERFACE(DigitalZSteps, Effects[PlayerOptions::EFFECT_DIGITAL_Z_STEPS], true); + FLOAT_INTERFACE(DigitalZPeriod, Effects[PlayerOptions::EFFECT_DIGITAL_Z_PERIOD], true); + FLOAT_INTERFACE(DigitalZOffset, Effects[PlayerOptions::EFFECT_DIGITAL_Z_OFFSET], true); + FLOAT_INTERFACE(TanDigitalZ, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_Z], true); + FLOAT_INTERFACE(TanDigitalZSteps, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_STEPS], true); + FLOAT_INTERFACE(TanDigitalZPeriod, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_PERIOD], true); + FLOAT_INTERFACE(TanDigitalZOffset, Effects[PlayerOptions::EFFECT_TAN_DIGITAL_Z_OFFSET], true); + FLOAT_INTERFACE(ParabolaX, Effects[PlayerOptions::EFFECT_PARABOLA_X], true); + FLOAT_INTERFACE(ParabolaY, Effects[PlayerOptions::EFFECT_PARABOLA_Y], true); + FLOAT_INTERFACE(ParabolaZ, Effects[PlayerOptions::EFFECT_PARABOLA_Z], true); FLOAT_INTERFACE(Xmode, Effects[PlayerOptions::EFFECT_XMODE], true); FLOAT_INTERFACE(Twirl, Effects[PlayerOptions::EFFECT_TWIRL], true); FLOAT_INTERFACE(Roll, Effects[PlayerOptions::EFFECT_ROLL], true); @@ -1129,6 +1920,24 @@ FLOAT_INTERFACE(Tilt, PerspectiveTilt, true); FLOAT_INTERFACE(Passmark, Passmark, true); // Passmark is not sanity checked to the [0, 1] range because LifeMeterBar::IsFailing is the only thing that uses it, and it's used in a <= test. Any theme passing a value outside the [0, 1] range probably expects the result they get. -Kyz FLOAT_INTERFACE(RandomSpeed, RandomSpeed, true); + + MULTICOL_FLOAT_INTERFACE(MoveX, MovesX, true); + MULTICOL_FLOAT_INTERFACE(MoveY, MovesY, true); + MULTICOL_FLOAT_INTERFACE(MoveZ, MovesZ, true); + MULTICOL_FLOAT_INTERFACE(ConfusionXOffset, ConfusionX, true); + MULTICOL_FLOAT_INTERFACE(ConfusionYOffset, ConfusionY, true); + MULTICOL_FLOAT_INTERFACE(ConfusionOffset, ConfusionZ, true); + MULTICOL_FLOAT_INTERFACE(Dark, Darks, true); + MULTICOL_FLOAT_INTERFACE(Stealth, Stealth, true); + MULTICOL_FLOAT_INTERFACE(Tiny, Tiny, true); + MULTICOL_FLOAT_INTERFACE(Bumpy, Bumpy, true); + MULTICOL_FLOAT_INTERFACE(Reverse, Reverse, true); + + BOOL_INTERFACE(StealthType, StealthType); + BOOL_INTERFACE(StealthPastReceptors, StealthPastReceptors); + BOOL_INTERFACE(DizzyHolds, DizzyHolds); + BOOL_INTERFACE(ZBuffer, ZBuffer); + BOOL_INTERFACE(Cosecant, Cosecant); BOOL_INTERFACE(TurnNone, Turns[PlayerOptions::TURN_NONE]); BOOL_INTERFACE(Mirror, Turns[PlayerOptions::TURN_MIRROR]); BOOL_INTERFACE(Backwards, Turns[PlayerOptions::TURN_BACKWARDS]); @@ -1456,6 +2265,12 @@ return 1; } + static int FromString(T* p, lua_State* L) + { + p->FromString(SArg(1)); + COMMON_RETURN_SELF; + } + LunaPlayerOptions() { ADD_METHOD( IsEasierForSongAndSteps ); @@ -1463,6 +2278,11 @@ ADD_METHOD(LifeSetting); ADD_METHOD(DrainSetting); + ADD_METHOD(ModTimerSetting); + ADD_METHOD(ModTimerMult); + ADD_METHOD(ModTimerOffset); + ADD_METHOD(DrawSize); + ADD_METHOD(DrawSizeBack); ADD_METHOD(BatteryLives); ADD_METHOD(TimeSpacing); ADD_METHOD(MaxScrollBPM); @@ -1471,19 +2291,131 @@ ADD_METHOD(Boost); ADD_METHOD(Brake); ADD_METHOD(Wave); + ADD_METHOD(WavePeriod); ADD_METHOD(Expand); + ADD_METHOD(ExpandPeriod); + ADD_METHOD(TanExpand); + ADD_METHOD(TanExpandPeriod); ADD_METHOD(Boomerang); ADD_METHOD(Drunk); + ADD_METHOD(DrunkSpeed); + ADD_METHOD(DrunkOffset); + ADD_METHOD(DrunkPeriod); + ADD_METHOD(TanDrunk); + ADD_METHOD(TanDrunkSpeed); + ADD_METHOD(TanDrunkOffset); + ADD_METHOD(TanDrunkPeriod); + ADD_METHOD(DrunkZ); + ADD_METHOD(DrunkZSpeed); + ADD_METHOD(DrunkZOffset); + ADD_METHOD(DrunkZPeriod); + ADD_METHOD(TanDrunkZ); + ADD_METHOD(TanDrunkZSpeed); + ADD_METHOD(TanDrunkZOffset); + ADD_METHOD(TanDrunkZPeriod); ADD_METHOD(Dizzy); + ADD_METHOD(ShrinkLinear); + ADD_METHOD(ShrinkMult); + ADD_METHOD(PulseInner); + ADD_METHOD(PulseOuter); + ADD_METHOD(PulseOffset); + ADD_METHOD(PulsePeriod); + ADD_METHOD(AttenuateX); + ADD_METHOD(AttenuateY); + ADD_METHOD(AttenuateZ); ADD_METHOD(Confusion); + ADD_METHOD(ConfusionOffset); + ADD_METHOD(ConfusionX); + ADD_METHOD(ConfusionXOffset); + ADD_METHOD(ConfusionY); + ADD_METHOD(ConfusionYOffset); + ADD_METHOD(Bounce); + ADD_METHOD(BouncePeriod); + ADD_METHOD(BounceOffset); + ADD_METHOD(BounceZ); + ADD_METHOD(BounceZPeriod); + ADD_METHOD(BounceZOffset); ADD_METHOD(Mini); ADD_METHOD(Tiny); ADD_METHOD(Flip); ADD_METHOD(Invert); ADD_METHOD(Tornado); + ADD_METHOD(TornadoPeriod); + ADD_METHOD(TornadoOffset); + ADD_METHOD(TanTornado); + ADD_METHOD(TanTornadoPeriod); + ADD_METHOD(TanTornadoOffset); + ADD_METHOD(TornadoZ); + ADD_METHOD(TornadoZPeriod); + ADD_METHOD(TornadoZOffset); + ADD_METHOD(TanTornadoZ); + ADD_METHOD(TanTornadoZPeriod); + ADD_METHOD(TanTornadoZOffset); ADD_METHOD(Tipsy); + ADD_METHOD(TipsySpeed); + ADD_METHOD(TipsyOffset); + ADD_METHOD(TanTipsy); + ADD_METHOD(TanTipsySpeed); + ADD_METHOD(TanTipsyOffset); ADD_METHOD(Bumpy); + ADD_METHOD(BumpyOffset); + ADD_METHOD(BumpyPeriod); + ADD_METHOD(TanBumpy); + ADD_METHOD(TanBumpyOffset); + ADD_METHOD(TanBumpyPeriod); + ADD_METHOD(BumpyX); + ADD_METHOD(BumpyXOffset); + ADD_METHOD(BumpyXPeriod); + ADD_METHOD(TanBumpyX); + ADD_METHOD(TanBumpyXOffset); + ADD_METHOD(TanBumpyXPeriod); ADD_METHOD(Beat); + ADD_METHOD(BeatOffset); + ADD_METHOD(BeatPeriod); + ADD_METHOD(BeatMult); + ADD_METHOD(BeatY); + ADD_METHOD(BeatYOffset); + ADD_METHOD(BeatYPeriod); + ADD_METHOD(BeatYMult); + ADD_METHOD(BeatZ); + ADD_METHOD(BeatZOffset); + ADD_METHOD(BeatZPeriod); + ADD_METHOD(BeatZMult); + ADD_METHOD(Zigzag); + ADD_METHOD(ZigzagPeriod); + ADD_METHOD(ZigzagOffset); + ADD_METHOD(ZigzagZ); + ADD_METHOD(ZigzagZPeriod); + ADD_METHOD(ZigzagZOffset); + ADD_METHOD(Sawtooth); + ADD_METHOD(SawtoothPeriod); + ADD_METHOD(SawtoothZ); + ADD_METHOD(SawtoothZPeriod); + ADD_METHOD(Square); + ADD_METHOD(SquareOffset); + ADD_METHOD(SquarePeriod); + ADD_METHOD(SquareZ); + ADD_METHOD(SquareZOffset); + ADD_METHOD(SquareZPeriod); + ADD_METHOD(Digital); + ADD_METHOD(DigitalSteps); + ADD_METHOD(DigitalPeriod); + ADD_METHOD(DigitalOffset); + ADD_METHOD(TanDigital); + ADD_METHOD(TanDigitalSteps); + ADD_METHOD(TanDigitalPeriod); + ADD_METHOD(TanDigitalOffset); + ADD_METHOD(DigitalZ); + ADD_METHOD(DigitalZSteps); + ADD_METHOD(DigitalZPeriod); + ADD_METHOD(DigitalZOffset); + ADD_METHOD(TanDigitalZ); + ADD_METHOD(TanDigitalZSteps); + ADD_METHOD(TanDigitalZPeriod); + ADD_METHOD(TanDigitalZOffset); + ADD_METHOD(ParabolaX); + ADD_METHOD(ParabolaY); + ADD_METHOD(ParabolaZ); ADD_METHOD(Xmode); ADD_METHOD(Twirl); ADD_METHOD(Roll); @@ -1502,6 +2434,11 @@ ADD_METHOD(Dark); ADD_METHOD(Blind); ADD_METHOD(Cover); + ADD_METHOD(StealthType); + ADD_METHOD(StealthPastReceptors); + ADD_METHOD(DizzyHolds); + ADD_METHOD(ZBuffer); + ADD_METHOD(Cosecant); ADD_METHOD(RandAttack); ADD_METHOD(NoAttack); ADD_METHOD(PlayerAutoPlay); @@ -1541,6 +2478,19 @@ ADD_METHOD(NoQuads); ADD_METHOD(NoStretch); ADD_METHOD(MuteOnError); + + ADD_MULTICOL_METHOD(MoveX); + ADD_MULTICOL_METHOD(MoveY); + ADD_MULTICOL_METHOD(MoveZ); + ADD_MULTICOL_METHOD(ConfusionOffset); + ADD_MULTICOL_METHOD(ConfusionXOffset); + ADD_MULTICOL_METHOD(ConfusionYOffset); + ADD_MULTICOL_METHOD(Dark); + ADD_MULTICOL_METHOD(Stealth); + ADD_MULTICOL_METHOD(Tiny); + ADD_MULTICOL_METHOD(Bumpy); + ADD_MULTICOL_METHOD(Reverse); + ADD_METHOD(NoteSkin); ADD_METHOD(FailSetting); @@ -1560,6 +2510,8 @@ ADD_METHOD( UsingReverse ); ADD_METHOD( GetReversePercentForColumn ); ADD_METHOD( GetStepAttacks ); + + ADD_METHOD(FromString); } }; diff -Nru stepmania-5.0.12+dfsg/src/PlayerOptions.h stepmania-5.1.0+dfsg/src/PlayerOptions.h --- stepmania-5.0.12+dfsg/src/PlayerOptions.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PlayerOptions.h 2018-01-25 05:01:07.000000000 +0000 @@ -37,6 +37,19 @@ const RString& DrainTypeToLocalizedString( DrainType cat ); LuaDeclareType( DrainType ); +enum ModTimerType +{ + ModTimerType_Game, + ModTimerType_Beat, + ModTimerType_Song, + ModTimerType_Default, + NUM_ModTimerType, + ModTimerType_Invalid +}; +const RString& ModTimerTypeToString( ModTimerType cat ); +const RString& ModTimerTypeToLocalizedString( ModTimerType cat ); +LuaDeclareType( ModTimerType ); + /** @brief Per-player options that are not saved between sessions. */ class PlayerOptions { @@ -46,6 +59,7 @@ * * This code was taken from Init() to use proper initialization. */ PlayerOptions(): m_LifeType(LifeType_Bar), m_DrainType(DrainType_Normal), + m_ModTimerType(ModTimerType_Default), m_BatteryLives(4), m_bSetScrollSpeed(false), m_fTimeSpacing(0), m_SpeedfTimeSpacing(1.0f), @@ -62,7 +76,14 @@ m_fSkew(0), m_SpeedfSkew(1.0f), m_fPassmark(0), m_SpeedfPassmark(1.0f), m_fRandomSpeed(0), m_SpeedfRandomSpeed(1.0f), + m_fModTimerMult(0), m_SpeedfModTimerMult(1.0f), + m_fModTimerOffset(0), m_SpeedfModTimerOffset(1.0f), + m_fDrawSize(0), m_SpeedfDrawSize(1.0f), + m_fDrawSizeBack(0), m_SpeedfDrawSizeBack(1.0f), m_bMuteOnError(false), m_FailType(FailType_Immediate), + m_bStealthType(false), m_bStealthPastReceptors(false), + m_bDizzyHolds(false), m_bZBuffer(false), + m_bCosecant(false), m_MinTNSToHideNotes(PREFSMAN->m_MinTNSToHideNotes) { m_sNoteSkin = ""; @@ -71,6 +92,17 @@ ZERO( m_fAppearances ); ONE( m_SpeedfAppearances ); ZERO( m_fScrolls ); ONE( m_SpeedfScrolls ); ZERO( m_bTurns ); ZERO( m_bTransforms ); + ZERO( m_fMovesX ); ONE( m_SpeedfMovesX ); + ZERO( m_fMovesY ); ONE( m_SpeedfMovesY ); + ZERO( m_fMovesZ ); ONE( m_SpeedfMovesZ ); + ZERO( m_fConfusionX ); ONE( m_SpeedfConfusionX ); + ZERO( m_fConfusionY ); ONE( m_SpeedfConfusionY ); + ZERO( m_fConfusionZ ); ONE( m_SpeedfConfusionZ ); + ZERO( m_fDarks ); ONE( m_SpeedfDarks ); + ZERO( m_fStealth ); ONE( m_SpeedfStealth ); + ZERO( m_fTiny ); ONE( m_SpeedfTiny ); + ZERO( m_fBumpy ); ONE( m_SpeedfBumpy ); + ZERO( m_fReverse ); ONE( m_SpeedfReverse ); }; void Init(); void Approach( const PlayerOptions& other, float fDeltaSeconds ); @@ -103,22 +135,134 @@ ACCEL_BOOST, /**< The arrows start slow, then zoom towards the targets. */ ACCEL_BRAKE, /**< The arrows start fast, then slow down as they approach the targets. */ ACCEL_WAVE, + ACCEL_WAVE_PERIOD, ACCEL_EXPAND, + ACCEL_EXPAND_PERIOD, + ACCEL_TAN_EXPAND, + ACCEL_TAN_EXPAND_PERIOD, ACCEL_BOOMERANG, /**< The arrows start from above the targets, go down, then come back up. */ NUM_ACCELS }; enum Effect { EFFECT_DRUNK, + EFFECT_DRUNK_SPEED, + EFFECT_DRUNK_OFFSET, + EFFECT_DRUNK_PERIOD, + EFFECT_TAN_DRUNK, + EFFECT_TAN_DRUNK_SPEED, + EFFECT_TAN_DRUNK_OFFSET, + EFFECT_TAN_DRUNK_PERIOD, + EFFECT_DRUNK_Z, + EFFECT_DRUNK_Z_SPEED, + EFFECT_DRUNK_Z_OFFSET, + EFFECT_DRUNK_Z_PERIOD, + EFFECT_TAN_DRUNK_Z, + EFFECT_TAN_DRUNK_Z_SPEED, + EFFECT_TAN_DRUNK_Z_OFFSET, + EFFECT_TAN_DRUNK_Z_PERIOD, EFFECT_DIZZY, + EFFECT_ATTENUATE_X, + EFFECT_ATTENUATE_Y, + EFFECT_ATTENUATE_Z, + EFFECT_SHRINK_TO_MULT, + EFFECT_SHRINK_TO_LINEAR, + EFFECT_PULSE_INNER, + EFFECT_PULSE_OUTER, + EFFECT_PULSE_OFFSET, + EFFECT_PULSE_PERIOD, EFFECT_CONFUSION, + EFFECT_CONFUSION_OFFSET, + EFFECT_CONFUSION_X, + EFFECT_CONFUSION_X_OFFSET, + EFFECT_CONFUSION_Y, + EFFECT_CONFUSION_Y_OFFSET, + EFFECT_BOUNCE, + EFFECT_BOUNCE_PERIOD, + EFFECT_BOUNCE_OFFSET, + EFFECT_BOUNCE_Z, + EFFECT_BOUNCE_Z_PERIOD, + EFFECT_BOUNCE_Z_OFFSET, EFFECT_MINI, EFFECT_TINY, EFFECT_FLIP, EFFECT_INVERT, EFFECT_TORNADO, + EFFECT_TORNADO_PERIOD, + EFFECT_TORNADO_OFFSET, + EFFECT_TAN_TORNADO, + EFFECT_TAN_TORNADO_PERIOD, + EFFECT_TAN_TORNADO_OFFSET, + EFFECT_TORNADO_Z, + EFFECT_TORNADO_Z_PERIOD, + EFFECT_TORNADO_Z_OFFSET, + EFFECT_TAN_TORNADO_Z, + EFFECT_TAN_TORNADO_Z_PERIOD, + EFFECT_TAN_TORNADO_Z_OFFSET, EFFECT_TIPSY, + EFFECT_TIPSY_SPEED, + EFFECT_TIPSY_OFFSET, + EFFECT_TAN_TIPSY, + EFFECT_TAN_TIPSY_SPEED, + EFFECT_TAN_TIPSY_OFFSET, EFFECT_BUMPY, + EFFECT_BUMPY_OFFSET, + EFFECT_BUMPY_PERIOD, + EFFECT_TAN_BUMPY, + EFFECT_TAN_BUMPY_OFFSET, + EFFECT_TAN_BUMPY_PERIOD, + EFFECT_BUMPY_X, + EFFECT_BUMPY_X_OFFSET, + EFFECT_BUMPY_X_PERIOD, + EFFECT_TAN_BUMPY_X, + EFFECT_TAN_BUMPY_X_OFFSET, + EFFECT_TAN_BUMPY_X_PERIOD, EFFECT_BEAT, + EFFECT_BEAT_OFFSET, + EFFECT_BEAT_PERIOD, + EFFECT_BEAT_MULT, + EFFECT_BEAT_Y, + EFFECT_BEAT_Y_OFFSET, + EFFECT_BEAT_Y_PERIOD, + EFFECT_BEAT_Y_MULT, + EFFECT_BEAT_Z, + EFFECT_BEAT_Z_OFFSET, + EFFECT_BEAT_Z_PERIOD, + EFFECT_BEAT_Z_MULT, + EFFECT_DIGITAL, + EFFECT_DIGITAL_STEPS, + EFFECT_DIGITAL_PERIOD, + EFFECT_DIGITAL_OFFSET, + EFFECT_TAN_DIGITAL, + EFFECT_TAN_DIGITAL_STEPS, + EFFECT_TAN_DIGITAL_PERIOD, + EFFECT_TAN_DIGITAL_OFFSET, + EFFECT_DIGITAL_Z, + EFFECT_DIGITAL_Z_STEPS, + EFFECT_DIGITAL_Z_PERIOD, + EFFECT_DIGITAL_Z_OFFSET, + EFFECT_TAN_DIGITAL_Z, + EFFECT_TAN_DIGITAL_Z_STEPS, + EFFECT_TAN_DIGITAL_Z_PERIOD, + EFFECT_TAN_DIGITAL_Z_OFFSET, + EFFECT_ZIGZAG, + EFFECT_ZIGZAG_PERIOD, + EFFECT_ZIGZAG_OFFSET, + EFFECT_ZIGZAG_Z, + EFFECT_ZIGZAG_Z_PERIOD, + EFFECT_ZIGZAG_Z_OFFSET, + EFFECT_SAWTOOTH, + EFFECT_SAWTOOTH_PERIOD, + EFFECT_SAWTOOTH_Z, + EFFECT_SAWTOOTH_Z_PERIOD, + EFFECT_SQUARE, + EFFECT_SQUARE_PERIOD, + EFFECT_SQUARE_OFFSET, + EFFECT_SQUARE_Z, + EFFECT_SQUARE_Z_PERIOD, + EFFECT_SQUARE_Z_OFFSET, + EFFECT_PARABOLA_X, + EFFECT_PARABOLA_Y, + EFFECT_PARABOLA_Z, EFFECT_XMODE, EFFECT_TWIRL, EFFECT_ROLL, @@ -188,6 +332,7 @@ LifeType m_LifeType; DrainType m_DrainType; // only used with LifeBar + ModTimerType m_ModTimerType; int m_BatteryLives; /* All floats have a corresponding speed setting, which determines how fast * PlayerOptions::Approach approaches. */ @@ -214,10 +359,31 @@ float m_fPassmark, m_SpeedfPassmark; float m_fRandomSpeed, m_SpeedfRandomSpeed; + float m_fModTimerMult, m_SpeedfModTimerMult; + float m_fModTimerOffset, m_SpeedfModTimerOffset; + float m_fDrawSize, m_SpeedfDrawSize; + float m_fDrawSizeBack, m_SpeedfDrawSizeBack; + /* The maximum column number is 16.*/ + float m_fMovesX[16], m_SpeedfMovesX[16]; + float m_fMovesY[16], m_SpeedfMovesY[16]; + float m_fMovesZ[16], m_SpeedfMovesZ[16]; + float m_fConfusionX[16], m_SpeedfConfusionX[16]; + float m_fConfusionY[16], m_SpeedfConfusionY[16]; + float m_fConfusionZ[16], m_SpeedfConfusionZ[16]; + float m_fDarks[16], m_SpeedfDarks[16]; + float m_fStealth[16], m_SpeedfStealth[16]; + float m_fTiny[16], m_SpeedfTiny[16]; + float m_fBumpy[16], m_SpeedfBumpy[16]; + float m_fReverse[16], m_SpeedfReverse[16]; bool m_bTurns[NUM_TURNS]; bool m_bTransforms[NUM_TRANSFORMS]; bool m_bMuteOnError; + bool m_bStealthType; + bool m_bStealthPastReceptors; + bool m_bDizzyHolds; + bool m_bZBuffer; + bool m_bCosecant; /** @brief The method for which a player can fail a song. */ FailType m_FailType; TapNoteScore m_MinTNSToHideNotes; @@ -252,6 +418,41 @@ bool IsEasierForCourseAndTrail( Course* pCourse, Trail* pTrail ) const; }; +#define ADD_MULTICOL_METHOD( method_name) \ + ADD_METHOD( method_name##1 ); \ + ADD_METHOD( method_name##2 ); \ + ADD_METHOD( method_name##3 ); \ + ADD_METHOD( method_name##4 ); \ + ADD_METHOD( method_name##5 ); \ + ADD_METHOD( method_name##6 ); \ + ADD_METHOD( method_name##7 ); \ + ADD_METHOD( method_name##8 ); \ + ADD_METHOD( method_name##9 ); \ + ADD_METHOD( method_name##10 ); \ + ADD_METHOD( method_name##11 ); \ + ADD_METHOD( method_name##12 ); \ + ADD_METHOD( method_name##13 ); \ + ADD_METHOD( method_name##14 ); \ + ADD_METHOD( method_name##15 ); \ + ADD_METHOD( method_name##16 ); +#define MULTICOL_FLOAT_INTERFACE(func_name, member, valid) \ + FLOAT_INTERFACE(func_name##1, member[0], valid); \ + FLOAT_INTERFACE(func_name##2, member[1], valid); \ + FLOAT_INTERFACE(func_name##3, member[2], valid); \ + FLOAT_INTERFACE(func_name##4, member[3], valid); \ + FLOAT_INTERFACE(func_name##5, member[4], valid); \ + FLOAT_INTERFACE(func_name##6, member[5], valid); \ + FLOAT_INTERFACE(func_name##7, member[6], valid); \ + FLOAT_INTERFACE(func_name##8, member[7], valid); \ + FLOAT_INTERFACE(func_name##9, member[8], valid); \ + FLOAT_INTERFACE(func_name##10, member[9], valid); \ + FLOAT_INTERFACE(func_name##11, member[10], valid); \ + FLOAT_INTERFACE(func_name##12, member[11], valid); \ + FLOAT_INTERFACE(func_name##13, member[12], valid); \ + FLOAT_INTERFACE(func_name##14, member[13], valid); \ + FLOAT_INTERFACE(func_name##15, member[14], valid); \ + FLOAT_INTERFACE(func_name##16, member[15], valid); + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/PlayerStageStats.cpp stepmania-5.1.0+dfsg/src/PlayerStageStats.cpp --- stepmania-5.0.12+dfsg/src/PlayerStageStats.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PlayerStageStats.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -865,6 +865,25 @@ } COMMON_RETURN_SELF; } + static int SetDancePointLimits( T* p, lua_State *L ) + { + int actual = IArg(1); + int possible = IArg(2); + if( actual >= 0 && possible > 0 ) + { + p->m_iPossibleDancePoints = possible; + if( actual <= possible ) + { + p->m_iActualDancePoints = actual; + } + else + { + p->m_iActualDancePoints = possible; + } + return 1; + } + COMMON_RETURN_SELF; + } static int FailPlayer( T* p, lua_State *L ) { @@ -915,6 +934,7 @@ ADD_METHOD( SetScore ); ADD_METHOD( GetCurMaxScore ); ADD_METHOD( SetCurMaxScore ); + ADD_METHOD( SetDancePointLimits ); ADD_METHOD( FailPlayer ); ADD_METHOD( GetSongsPassed ); ADD_METHOD( GetSongsPlayed ); diff -Nru stepmania-5.0.12+dfsg/src/PrefsManager.cpp stepmania-5.1.0+dfsg/src/PrefsManager.cpp --- stepmania-5.0.12+dfsg/src/PrefsManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PrefsManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -77,26 +77,16 @@ StringToX( ShowDancingCharacters ); LuaXType( ShowDancingCharacters ); -static const char *BannerCacheModeNames[] = { +static const char *ImageCacheModeNames[] = { "Off", "LowResPreload", "LowResLoadOnDemand", "Full" }; -XToString( BannerCacheMode ); -StringToX( BannerCacheMode ); -LuaXType( BannerCacheMode ); -/* -static const char *BackgroundCacheModeNames[] = { - "Off", - "LowResPreload", - "LowResLoadOnDemand", - "Full" -}; -XToString( BackgroundCacheMode ); -StringToX( BackgroundCacheMode ); -LuaXType( BackgroundCacheMode ); -*/ +XToString( ImageCacheMode ); +StringToX( ImageCacheMode ); +LuaXType( ImageCacheMode ); + static const char *HighResolutionTexturesNames[] = { "Auto", "ForceOff", @@ -166,6 +156,7 @@ m_sDefaultModifiers ( "DefaultModifiers", "" ), m_bWindowed ( "Windowed", true ), + m_sDisplayId ( "DisplayId", "" ), m_iDisplayWidth ( "DisplayWidth", 854 ), m_iDisplayHeight ( "DisplayHeight", 480 ), m_fDisplayAspectRatio ( "DisplayAspectRatio", 16/9.f, ValidateDisplayAspectRatio ), @@ -178,6 +169,7 @@ m_iMaxTextureResolution ( "MaxTextureResolution", 2048 ), m_iRefreshRate ( "RefreshRate", REFRESH_DEFAULT ), m_bAllowMultitexture ( "AllowMultitexture", true ), + m_bFullscreenIsBorderlessWindow( "FullscreenIsBorderlessWindow", false ), m_bShowStats ( "ShowStats", TRUE_IF_DEBUG), m_bShowBanners ( "ShowBanners", true ), m_bShowMouseCursor ( "ShowMouseCursor", true ), @@ -189,8 +181,7 @@ m_bPAL ( "PAL", false ), m_bDelayedTextureDelete ( "DelayedTextureDelete", false ), m_bDelayedModelDelete ( "DelayedModelDelete", false ), - m_BannerCache ( "BannerCache", BNCACHE_LOW_RES_PRELOAD ), - //m_BackgroundCache ( "BackgroundCache", BGCACHE_LOW_RES_PRELOAD ), + m_ImageCache ( "ImageCache", IMGCACHE_LOW_RES_PRELOAD ), m_bFastLoad ( "FastLoad", true ), m_bFastLoadAdditionalSongs ( "FastLoadAdditionalSongs", true ), m_NeverCacheList ( "NeverCacheList", ""), @@ -228,7 +219,6 @@ m_AllowMultipleToasties ("AllowMultipleToasties", true ), m_MinTNSToHideNotes ("MinTNSToHideNotes", TNS_W3 ), m_ShowSongOptions ( "ShowSongOptions", Maybe_NO ), - m_bDancePointsForOni ( "DancePointsForOni", true ), m_bPercentageScoring ( "PercentageScoring", false ), // Wow, these preference names are *seriously* long -Colby m_fMinPercentageForMachineSongHighScore ( "MinPercentageForMachineSongHighScore", 0.0001f ), // This is for home, who cares how bad you do? @@ -299,6 +289,12 @@ m_bQuirksMode ( "QuirksMode", false ), + m_custom_songs_enable("CustomSongsEnable", false), + m_custom_songs_max_count("CustomSongsMaxCount", 1000), // No limit. -- 2 Unlimited + m_custom_songs_load_timeout("CustomSongsLoadTimeout", 5.f), + m_custom_songs_max_seconds("CustomSongsMaxSeconds", 120.f), + m_custom_songs_max_megabytes("CustomSongsMaxMegabytes", 5.f), + /* Debug: */ m_bLogToDisk ( "LogToDisk", true ), #if defined(DEBUG) @@ -374,7 +370,7 @@ ASSERT( !m_sCurrentGame.Get().empty() ); // save off old values - GamePrefs &gp = m_mapGameNameToGamePrefs[m_sCurrentGame]; + GamePrefs &gp = m_mapGameNameToGamePrefs[m_sCurrentGame.Get()]; gp.m_sAnnouncer = m_sAnnouncer; gp.m_sTheme = m_sTheme; gp.m_sDefaultModifiers = m_sDefaultModifiers; diff -Nru stepmania-5.0.12+dfsg/src/PrefsManager.h stepmania-5.1.0+dfsg/src/PrefsManager.h --- stepmania-5.0.12+dfsg/src/PrefsManager.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/PrefsManager.h 2018-01-25 05:01:07.000000000 +0000 @@ -63,26 +63,15 @@ NUM_ShowDancingCharacters, ShowDancingCharacters_Invalid }; -enum BannerCacheMode +enum ImageCacheMode { - BNCACHE_OFF, - BNCACHE_LOW_RES_PRELOAD, // preload low-res on start - BNCACHE_LOW_RES_LOAD_ON_DEMAND, // preload low-res on screen load - BNCACHE_FULL, - NUM_BannerCacheMode, - BannerCacheMode_Invalid -}; -/* -enum BackgroundCacheMode -{ - BGCACHE_OFF, - BGCACHE_LOW_RES_PRELOAD, // preload low-res on start - BGCACHE_LOW_RES_LOAD_ON_DEMAND, // preload low-res on screen load - BGCACHE_FULL, - NUM_BackgroundCacheMode, - BackgroundCacheMode_Invalid + IMGCACHE_OFF, + IMGCACHE_LOW_RES_PRELOAD, // preload low-res on start + IMGCACHE_LOW_RES_LOAD_ON_DEMAND, // preload low-res on screen load + IMGCACHE_FULL, + NUM_ImageCacheMode, + ImageCacheMode_Invalid }; -*/ enum HighResolutionTextures { HighResolutionTextures_Auto, @@ -158,6 +147,7 @@ public: Preference m_bWindowed; + Preference m_sDisplayId; Preference m_iDisplayWidth; Preference m_iDisplayHeight; Preference m_fDisplayAspectRatio; @@ -170,6 +160,7 @@ Preference m_iMaxTextureResolution; Preference m_iRefreshRate; Preference m_bAllowMultitexture; + Preference m_bFullscreenIsBorderlessWindow; Preference m_bShowStats; Preference m_bShowBanners; Preference m_bShowMouseCursor; @@ -181,8 +172,7 @@ Preference m_bPAL; Preference m_bDelayedTextureDelete; Preference m_bDelayedModelDelete; - Preference m_BannerCache; - //Preference m_BackgroundCache; + Preference m_ImageCache; Preference m_bFastLoad; Preference m_bFastLoadAdditionalSongs; Preference m_NeverCacheList; @@ -220,7 +210,6 @@ Preference m_AllowMultipleToasties; Preference m_MinTNSToHideNotes; Preference m_ShowSongOptions; - Preference m_bDancePointsForOni; Preference m_bPercentageScoring; Preference m_fMinPercentageForMachineSongHighScore; Preference m_fMinPercentageForMachineCourseHighScore; @@ -309,6 +298,12 @@ /** @brief Enable some quirky behavior used by some older versions of StepMania. */ Preference m_bQuirksMode; + Preference m_custom_songs_enable; + Preference m_custom_songs_max_count; + Preference m_custom_songs_load_timeout; + Preference m_custom_songs_max_seconds; + Preference m_custom_songs_max_megabytes; + // Debug: Preference m_bLogToDisk; Preference m_bForceLogFlush; diff -Nru stepmania-5.0.12+dfsg/src/ProductInfo.h stepmania-5.1.0+dfsg/src/ProductInfo.h --- stepmania-5.0.12+dfsg/src/ProductInfo.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ProductInfo.h 2018-01-25 05:01:07.000000000 +0000 @@ -16,7 +16,7 @@ * As an example, use "StepMania4" here, not "StepMania". * It would cause a conflict with older versions such as StepMania 3.X. */ -#define PRODUCT_ID_BARE StepMania 5 +#define PRODUCT_ID_BARE StepMania 5.1 // These cannot be #undef'd so make them unlikely to conflict with anything #define PRODUCT_STRINGIFY(x) #x @@ -28,7 +28,7 @@ #define VIDEO_TROUBLESHOOTING_URL "http://old.stepmania.com/stepmaniawiki.php?title=Video_Driver_Troubleshooting" /** @brief The URL to report bugs on the program. */ #define REPORT_BUG_URL "https://github.com/stepmania/stepmania/issues" -#define SM_DOWNLOAD_URL "http://www.stepmania.com/download/" +#define SM_DOWNLOAD_URL "https://www.stepmania.com/download/" #define CAN_INSTALL_PACKAGES true diff -Nru stepmania-5.0.12+dfsg/src/ProductInfo.inc stepmania-5.1.0+dfsg/src/ProductInfo.inc --- stepmania-5.0.12+dfsg/src/ProductInfo.inc 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ProductInfo.inc 2018-01-25 05:01:07.000000000 +0000 @@ -6,14 +6,14 @@ ; PRODUCT_ID must NOT be "StepMania" unless you want people to uninstall 3.9 ; when they install StepMania 5. (not recommended) -!define PRODUCT_ID "StepMania 5.0" +!define PRODUCT_ID "StepMania 5.1" ; TODO: This needs to be updated with the git rev hash -!define PRODUCT_VER "5.0-UNKNOWN" +!define PRODUCT_VER "5.1-UNKNOWN" !define PRODUCT_DISPLAY "${PRODUCT_FAMILY} ${PRODUCT_VER}" !define PRODUCT_BITMAP "sm5" -!define PRODUCT_URL "http://www.stepmania.com/" -!define UPDATES_URL "http://www.stepmania.com/download/" +!define PRODUCT_URL "https://www.stepmania.com/" +!define UPDATES_URL "https://www.stepmania.com/download/" ;!define INSTALL_EXTERNAL_PCKS ;!define INSTALL_INTERNAL_PCKS diff -Nru stepmania-5.0.12+dfsg/src/Profile.cpp stepmania-5.1.0+dfsg/src/Profile.cpp --- stepmania-5.0.12+dfsg/src/Profile.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Profile.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -5,6 +5,7 @@ #include "XmlFile.h" #include "IniFile.h" #include "GameManager.h" +#include "GameState.h" #include "RageLog.h" #include "Song.h" #include "SongManager.h" @@ -72,6 +73,31 @@ LuaXType(ProfileType); + +Profile::~Profile() +{ + ClearSongs(); +} + +void Profile::ClearSongs() +{ + if(m_songs.empty()) + { + return; + } + Song* gamestate_curr_song= GAMESTATE->m_pCurSong; + for(size_t i= 0; i < m_songs.size(); ++i) + { + Song* curr_song= m_songs[i]; + if(curr_song == gamestate_curr_song) + { + GAMESTATE->m_pCurSong.Set(NULL); + } + delete curr_song; + } + m_songs.clear(); +} + int Profile::HighScoresForASong::GetNumTimesPlayed() const { int iCount = 0; @@ -1044,7 +1070,7 @@ if( X==NULL ) LOG->Warn("Failed to read section " #X); \ else Load##X##FromNode(X); } -void Profile::LoadCustomFunction( RString sDir ) +void Profile::LoadCustomFunction(RString sDir, PlayerNumber pn) { /* Get the theme's custom load function: * [Profile] @@ -1058,10 +1084,18 @@ // Pass profile and profile directory as arguments this->PushSelf(L); LuaHelpers::Push(L, sDir); + if(pn == PlayerNumber_Invalid) + { + lua_pushnil(L); + } + else + { + Enum::Push(L, pn); + } // Run it RString Error= "Error running CustomLoadFunction: "; - LuaHelpers::RunScriptOnStack(L, Error, 2, 0, true); + LuaHelpers::RunScriptOnStack(L, Error, 3, 0, true); LUA->Release(L); } @@ -1148,11 +1182,65 @@ if (ret != ProfileLoadResult_Success) return ret; - LoadCustomFunction( sDir ); + LoadCustomFunction(sDir, PlayerNumber_Invalid); return ProfileLoadResult_Success; } + +// Custom songs are not stored with all the normal songs because walking the +// entire song list to remove custom songs when unloading the profile is +// wasteful. -Kyz + +void Profile::LoadSongsFromDir(RString const& dir, ProfileSlot prof_slot) +{ + if(!PREFSMAN->m_custom_songs_enable) + { + return; + } + RString songs_folder= dir + "Songs"; + if(FILEMAN->DoesFileExist(songs_folder)) + { + LOG->Trace("Found songs folder in profile."); + vector song_folders; + RageTimer song_load_start_time; + song_load_start_time.Touch(); + FILEMAN->GetDirListing(songs_folder + "/*", song_folders, true, true); + StripCvsAndSvn(song_folders); + StripMacResourceForks(song_folders); + LOG->Trace("Found %i songs in profile.", int(song_folders.size())); + // Only songs that are successfully loaded count towards the limit. -Kyz + for(size_t song_index= 0; song_index < song_folders.size() + && m_songs.size() < PREFSMAN->m_custom_songs_max_count; + ++song_index) + { + RString& song_dir_name= song_folders[song_index]; + Song* new_song= new Song; + if(!new_song->LoadFromSongDir(song_dir_name, false, prof_slot)) + { + // The song failed to load. + LOG->Trace("Song %s failed to load.", song_dir_name.c_str()); + delete new_song; + } + else + { + new_song->SetEnabled(true); + m_songs.push_back(new_song); + } + if(song_load_start_time.Ago() > PREFSMAN->m_custom_songs_load_timeout) + { + break; + } + } + float load_time= song_load_start_time.Ago(); + LOG->Trace("Successfully loaded %zu songs in %.6f from profile.", m_songs.size(), load_time); + } + else + { + LOG->Trace("No songs folder in profile."); + } +} + ProfileLoadResult Profile::LoadStatsFromDir(RString dir, bool require_signature) { dir= dir + PROFILEMAN->GetStatsPrefix(); @@ -2699,7 +2787,17 @@ return 1; } DEFINE_METHOD( GetGUID, m_sGuid ); - + static int get_songs(T* p, lua_State* L) + { + lua_createtable(L, p->m_songs.size(), 0); + int song_tab= lua_gettop(L); + for(size_t i= 0; i < p->m_songs.size(); ++i) + { + p->m_songs[i]->PushSelf(L); + lua_rawseti(L, song_tab, i+1); + } + return 1; + } LunaProfile() { ADD_METHOD( AddScreenshot ); @@ -2769,6 +2867,7 @@ ADD_METHOD( GetLastPlayedSong ); ADD_METHOD( GetLastPlayedCourse ); ADD_METHOD( GetGUID ); + ADD_METHOD(get_songs); } }; diff -Nru stepmania-5.0.12+dfsg/src/Profile.h stepmania-5.1.0+dfsg/src/Profile.h --- stepmania-5.0.12+dfsg/src/Profile.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Profile.h 2018-01-25 05:01:07.000000000 +0000 @@ -14,6 +14,7 @@ #include "TrailUtil.h" // for TrailID #include "StyleUtil.h" // for StyleID #include "LuaReference.h" +#include "PlayerNumber.h" class XNode; struct lua_State; @@ -134,6 +135,10 @@ m_CategoryHighScores[st][rc].Init(); } + + ~Profile(); + void ClearSongs(); + // smart accessors RString GetDisplayNameOrHighScoreName() const; Character *GetCharacter() const; @@ -196,6 +201,7 @@ RString m_sGuid; map m_sDefaultModifiers; SortOrder m_SortOrder; + std::vector m_songs; Difficulty m_LastDifficulty; CourseDifficulty m_LastCourseDifficulty; StepsType m_LastStepsType; @@ -376,7 +382,8 @@ InitCourseScores(); InitCategoryScores(); InitScreenshotData(); - InitCalorieData(); + InitCalorieData(); + ClearSongs(); } void InitEditableData(); void InitGeneralData(); @@ -393,8 +400,9 @@ void HandleStatsPrefixChange(RString dir, bool require_signature); ProfileLoadResult LoadAllFromDir( RString sDir, bool bRequireSignature ); ProfileLoadResult LoadStatsFromDir(RString dir, bool require_signature); + void LoadSongsFromDir(RString const& dir, ProfileSlot prof_slot); void LoadTypeFromDir(RString dir); - void LoadCustomFunction( RString sDir ); + void LoadCustomFunction(RString sDir, PlayerNumber pn); bool SaveAllToDir( RString sDir, bool bSignData ) const; ProfileLoadResult LoadEditableDataFromDir( RString sDir ); diff -Nru stepmania-5.0.12+dfsg/src/ProfileManager.cpp stepmania-5.1.0+dfsg/src/ProfileManager.cpp --- stepmania-5.0.12+dfsg/src/ProfileManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ProfileManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -187,6 +187,17 @@ } } + if(lr == ProfileLoadResult_Success) + { + Profile* prof= GetProfile(pn); + if(prof->m_sDisplayName.empty()) + { + prof->m_sDisplayName= PlayerNumberToLocalizedString(pn); + } + prof->LoadCustomFunction(sProfileDir, pn); + prof->LoadSongsFromDir(sProfileDir, ProfileSlot(pn)); + } + LOG->Trace( "Done loading profile - result %d", lr ); return lr; @@ -211,7 +222,7 @@ return false; } - GetProfile(pn)->LoadCustomFunction( m_sProfileDir[pn] ); + GetProfile(pn)->LoadCustomFunction(m_sProfileDir[pn], pn); return true; } @@ -219,7 +230,7 @@ void ProfileManager::GetMemoryCardProfileDirectoriesToTry( vector &asDirsToTry ) { /* Try to load the preferred profile. */ - asDirsToTry.push_back( PREFSMAN->m_sMemoryCardProfileSubdir ); + asDirsToTry.push_back( PREFSMAN->m_sMemoryCardProfileSubdir.Get() ); /* If that failed, try loading from all fallback directories. */ split( g_sMemoryCardProfileImportSubdirs, ";", asDirsToTry, true ); diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay.cpp stepmania-5.1.0+dfsg/src/RageDisplay.cpp --- stepmania-5.0.12+dfsg/src/RageDisplay.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -12,7 +12,7 @@ #include "RageSurface.h" #include "Preference.h" #include "LocalizedString.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "arch/ArchHooks/ArchHooks.h" // Statistics stuff @@ -90,17 +90,33 @@ vs.push_back( err ); // Fall back on a known resolution good rather than 640 x 480. - DisplayResolutions dr; - this->GetDisplayResolutions( dr ); + DisplaySpecs dr; + this->GetDisplaySpecs(dr); if( dr.empty() ) { vs.push_back( "No display resolutions" ); return SETVIDEOMODE_FAILED.GetValue() + " " + join(";",vs); } - const DisplayResolution &d = *dr.begin(); - p.width = d.iWidth; - p.height = d.iHeight; + DisplaySpec d = *dr.begin(); + // Try to find DisplaySpec corresponding to requested display + for (const auto &candidate: dr) + { + if (candidate.currentMode() != nullptr) + { + d = candidate; + if (candidate.id() == p.sDisplayId) + { + break; + } + } + } + + p.sDisplayId = d.id(); + const DisplayMode supported = d.currentMode() != nullptr ? *d.currentMode() : *d.supportedModes().begin(); + p.width = supported.width; + p.height = supported.height; + p.rate = static_cast (round(supported.refreshRate)); if( (err = this->TryVideoMode(p,bNeedReloadTextures)) == "" ) return RString(); vs.push_back( err ); @@ -714,8 +730,8 @@ RageMatrix RageDisplay::GetCenteringMatrix( float fTranslateX, float fTranslateY, float fAddWidth, float fAddHeight ) const { // in screen space, left edge = -1, right edge = 1, bottom edge = -1. top edge = 1 - float fWidth = (float) GetActualVideoModeParams().width; - float fHeight = (float) GetActualVideoModeParams().height; + float fWidth = (float) GetActualVideoModeParams().windowWidth; + float fHeight = (float) GetActualVideoModeParams().windowHeight; float fPercentShiftX = SCALE( fTranslateX, 0, fWidth, 0, +2.0f ); float fPercentShiftY = SCALE( fTranslateY, 0, fHeight, 0, -2.0f ); float fPercentScaleX = SCALE( fAddWidth, 0, fWidth, 1.0f, 2.0f ); @@ -927,11 +943,6 @@ if( !HOOKS->AppHasFocus() ) iDelayMicroseconds = max( iDelayMicroseconds, 10000 ); // give some time to other processes and threads -#if defined(_WINDOWS) - /* In Windows, always explicitly give up a minimum amount of CPU for other threads. */ - iDelayMicroseconds = max( iDelayMicroseconds, 1000 ); -#endif - if( iDelayMicroseconds > 0 ) usleep( iDelayMicroseconds ); } @@ -995,6 +1006,16 @@ // lua start #include "LuaBinding.h" +// Register with Lua. +static void register_REFRESH_DEFAULT(lua_State *L) +{ + lua_pushstring( L, "REFRESH_DEFAULT" ); + lua_pushinteger( L, REFRESH_DEFAULT ); + lua_settable( L, LUA_GLOBALSINDEX); +} +REGISTER_WITH_LUA_FUNCTION( register_REFRESH_DEFAULT ); + + /** @brief Allow Lua to have access to the RageDisplay. */ class LunaRageDisplay: public Luna { @@ -1031,6 +1052,26 @@ return 1; } + static int GetDisplaySpecs( T* p, lua_State *L ) + { + DisplaySpecs s; + p->GetDisplaySpecs(s); + pushDisplaySpecs(L, s); + return 1; + } + + static int SupportsRenderToTexture( T* p, lua_State *L ) + { + lua_pushboolean(L, p->SupportsRenderToTexture()); + return 1; + } + + static int SupportsFullscreenBorderlessWindow( T* p, lua_State *L ) + { + lua_pushboolean(L, p->SupportsFullscreenBorderlessWindow()); + return 1; + } + LunaRageDisplay() { ADD_METHOD( GetDisplayWidth ); @@ -1038,6 +1079,9 @@ ADD_METHOD( GetFPS ); ADD_METHOD( GetVPF ); ADD_METHOD( GetCumFPS ); + ADD_METHOD( GetDisplaySpecs ); + ADD_METHOD( SupportsRenderToTexture ); + ADD_METHOD( SupportsFullscreenBorderlessWindow); } }; diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_D3D.cpp stepmania-5.1.0+dfsg/src/RageDisplay_D3D.cpp --- stepmania-5.0.12+dfsg/src/RageDisplay_D3D.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_D3D.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -10,7 +10,7 @@ #include "RageSurface.h" #include "RageSurfaceUtils.h" #include "EnumHelper.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "LocalizedString.h" #include @@ -271,19 +271,39 @@ } } -void RageDisplay_D3D::GetDisplayResolutions( DisplayResolutions &out ) const +void RageDisplay_D3D::GetDisplaySpecs( DisplaySpecs &out ) const { out.clear(); int iCnt = g_pd3d->GetAdapterModeCount( D3DADAPTER_DEFAULT, g_DefaultAdapterFormat ); - for( int i = 0; i < iCnt; ++i ) + std::set modes; + D3DDISPLAYMODE mode; + for ( int i = 0; i < iCnt; ++i ) { - D3DDISPLAYMODE mode; g_pd3d->EnumAdapterModes( D3DADAPTER_DEFAULT, g_DefaultAdapterFormat, i, &mode ); + modes.insert( { mode.Width, mode.Height, static_cast (mode.RefreshRate) } ); + } - DisplayResolution res = { mode.Width, mode.Height }; - out.insert( res ); + // Get the current display mode + if ( g_pd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &mode ) == D3D_OK ) + { + D3DADAPTER_IDENTIFIER9 ID; + g_pd3d->GetAdapterIdentifier( D3DADAPTER_DEFAULT, 0, &ID ); + DisplayMode active = { mode.Width, mode.Height, static_cast (mode.RefreshRate) }; + RectI bounds( 0, 0, active.width, active.height ); + out.insert( DisplaySpec( "", "Fullscreen", modes, active, bounds ) ); } + else + { + LOG->Warn( "Could not find active mode for default D3D adapter" ); + if ( !modes.empty() ) + { + const DisplayMode &m = *modes.begin(); + RectI bounds( 0, 0, m.width, m.height ); + out.insert( DisplaySpec( "", "Fullscreen", modes, m, bounds ) ); + } + } + } D3DFORMAT FindBackBufferType(bool bWindowed, int iBPP) @@ -677,10 +697,9 @@ return result; } -VideoModeParams RageDisplay_D3D::GetActualVideoModeParams() const +ActualVideoModeParams RageDisplay_D3D::GetActualVideoModeParams() const { - VideoModeParams p = GraphicsWindow::GetParams(); - return p; + return GraphicsWindow::GetParams(); } void RageDisplay_D3D::SendCurrentMatrices() diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_D3D.h stepmania-5.1.0+dfsg/src/RageDisplay_D3D.h --- stepmania-5.0.12+dfsg/src/RageDisplay_D3D.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_D3D.h 2018-01-25 05:01:07.000000000 +0000 @@ -11,13 +11,13 @@ virtual RString Init( const VideoModeParams &p, bool bAllowUnacceleratedRenderer ); virtual RString GetApiDescription() const { return "D3D"; } - virtual void GetDisplayResolutions( DisplayResolutions &out ) const; + virtual void GetDisplaySpecs( DisplaySpecs &out ) const; void ResolutionChanged(); const RagePixelFormatDesc *GetPixelFormatDesc(RagePixelFormat pf) const; bool BeginFrame(); void EndFrame(); - VideoModeParams GetActualVideoModeParams() const; + ActualVideoModeParams GetActualVideoModeParams() const; void SetBlendMode( BlendMode mode ); bool SupportsTextureFormat( RagePixelFormat pixfmt, bool realtime=false ); bool SupportsThreadedRendering(); diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_GLES2.cpp stepmania-5.1.0+dfsg/src/RageDisplay_GLES2.cpp --- stepmania-5.0.12+dfsg/src/RageDisplay_GLES2.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_GLES2.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -11,7 +11,7 @@ #include "RageSurface.h" #include "RageTextureManager.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "arch/LowLevelWindow/LowLevelWindow.h" @@ -444,10 +444,10 @@ } void -RageDisplay_GLES2::GetDisplayResolutions( DisplayResolutions &out ) const +RageDisplay_GLES2::GetDisplaySpecs(DisplaySpecs &out) const { out.clear(); - g_pWind->GetDisplayResolutions( out ); + g_pWind->GetDisplaySpecs(out); } RageSurface* @@ -517,7 +517,7 @@ return "OpenGL ES 2.0"; } -VideoModeParams +ActualVideoModeParams RageDisplay_GLES2::GetActualVideoModeParams() const { return g_pWind->GetActualVideoModeParams(); diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_GLES2.h stepmania-5.1.0+dfsg/src/RageDisplay_GLES2.h --- stepmania-5.0.12+dfsg/src/RageDisplay_GLES2.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_GLES2.h 2018-01-25 05:01:07.000000000 +0000 @@ -9,21 +9,21 @@ virtual RString Init( const VideoModeParams &p, bool bAllowUnacceleratedRenderer ); virtual RString GetApiDescription() const; - virtual void GetDisplayResolutions( DisplayResolutions &out ) const; + virtual void GetDisplaySpecs(DisplaySpecs &out) const; const RagePixelFormatDesc *GetPixelFormatDesc(RagePixelFormat pf) const; bool BeginFrame(); void EndFrame(); - VideoModeParams GetActualVideoModeParams() const; + ActualVideoModeParams GetActualVideoModeParams() const; void SetBlendMode( BlendMode mode ); bool SupportsTextureFormat( RagePixelFormat pixfmt, bool realtime=false ); bool SupportsPerVertexMatrixScale(); - unsigned CreateTexture( - RagePixelFormat pixfmt, + unsigned CreateTexture( + RagePixelFormat pixfmt, RageSurface* img, bool bGenerateMipMaps ); - void UpdateTexture( - unsigned iTexHandle, + void UpdateTexture( + unsigned iTexHandle, RageSurface* img, int xoffset, int yoffset, int width, int height ); void DeleteTexture( unsigned iTexHandle ); @@ -42,7 +42,7 @@ void ClearZBuffer(); void SetCullMode( CullMode mode ); void SetAlphaTest( bool b ); - void SetMaterial( + void SetMaterial( const RageColor &emissive, const RageColor &ambient, const RageColor &diffuse, diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay.h stepmania-5.1.0+dfsg/src/RageDisplay.h --- stepmania-5.0.12+dfsg/src/RageDisplay.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay.h 2018-01-25 05:01:07.000000000 +0000 @@ -7,8 +7,8 @@ #include "ModelTypes.h" #include -class DisplayResolution; -typedef set DisplayResolutions; +class DisplaySpec; +typedef std::set DisplaySpecs; const int REFRESH_DEFAULT = 0; struct RageSurface; @@ -79,6 +79,7 @@ // are filled (in case new params are added). VideoModeParams( bool windowed_, + RString sDisplayId_, int width_, int height_, int bpp_, @@ -88,12 +89,14 @@ bool bSmoothLines_, bool bTrilinearFiltering_, bool bAnisotropicFiltering_, + bool bWindowIsFullscreenBorderless_, RString sWindowTitle_, RString sIconFile_, bool PAL_, float fDisplayAspectRatio_ ): windowed(windowed_), + sDisplayId(sDisplayId_), width(width_), height(height_), bpp(bpp_), @@ -103,18 +106,36 @@ bSmoothLines(bSmoothLines_), bTrilinearFiltering(bTrilinearFiltering_), bAnisotropicFiltering(bAnisotropicFiltering_), + bWindowIsFullscreenBorderless(bWindowIsFullscreenBorderless_), sWindowTitle(sWindowTitle_), sIconFile(sIconFile_), PAL(PAL_), fDisplayAspectRatio(fDisplayAspectRatio_) {} + VideoModeParams(const VideoModeParams &other): + windowed(other.windowed), sDisplayId(other.sDisplayId), + width(other.width), height(other.height), + bpp(other.bpp), rate(other.rate), + vsync(other.vsync), interlaced(other.interlaced), + bSmoothLines(other.bSmoothLines), bTrilinearFiltering(other.bTrilinearFiltering), + bAnisotropicFiltering(other.bAnisotropicFiltering), bWindowIsFullscreenBorderless(other.bWindowIsFullscreenBorderless), + sWindowTitle(other.sWindowTitle), sIconFile(other.sIconFile), + PAL(other.PAL), fDisplayAspectRatio(other.fDisplayAspectRatio) + {} + VideoModeParams(): windowed(false), width(0), height(0), - bpp(0), rate(0), vsync(false), interlaced(false), - bSmoothLines(false), bTrilinearFiltering(false), - bAnisotropicFiltering(false), sWindowTitle(RString()), - sIconFile(RString()), PAL(false), fDisplayAspectRatio(0.0f) {} + bpp(0), rate(0), vsync(false), interlaced(false), + bSmoothLines(false), bTrilinearFiltering(false), + bAnisotropicFiltering(false), bWindowIsFullscreenBorderless(false), + sWindowTitle(RString()), sIconFile(RString()), + PAL(false), fDisplayAspectRatio(0.0f) {} + + // Subclassing VideoModeParams in ActualVideoModeParams. Make destructor virtual just in case + // someone tries to delete one of those through a pointer to base... + virtual ~VideoModeParams() {} bool windowed; + RString sDisplayId; int width; int height; int bpp; @@ -124,12 +145,41 @@ bool bSmoothLines; bool bTrilinearFiltering; bool bAnisotropicFiltering; + bool bWindowIsFullscreenBorderless; RString sWindowTitle; RString sIconFile; bool PAL; float fDisplayAspectRatio; }; +/** + * @brief The _actual_ VideoModeParams determined by the LowLevelWindow implementation. + * Contains all the attributes of VideoModeParams, plus the actual window width/height determined by + * LLW + */ +class ActualVideoModeParams: public VideoModeParams +{ +public: + ActualVideoModeParams(): VideoModeParams(), windowWidth(0), windowHeight(0), renderOffscreen(false) {} + ActualVideoModeParams( const VideoModeParams ¶ms ) : VideoModeParams( params ), + windowWidth( params.width ), + windowHeight( params.height ), + renderOffscreen( false ) + { } + ActualVideoModeParams( const VideoModeParams ¶ms, int windowWidth, int windowHeight, bool renderOffscreen ) : + VideoModeParams( params ), windowWidth( windowWidth ), windowHeight( windowHeight ), + renderOffscreen( renderOffscreen ) + { } + ActualVideoModeParams (const ActualVideoModeParams &other) = default; + + // If bWindowIsFullscreenBorderless is true, + // then these properties will differ from width/height (which describe the + // render size) + int windowWidth; + int windowHeight; + bool renderOffscreen; +}; + struct RenderTargetParam { RenderTargetParam(): @@ -181,7 +231,7 @@ virtual RString Init( const VideoModeParams &p, bool bAllowUnacceleratedRenderer ) = 0; virtual RString GetApiDescription() const = 0; - virtual void GetDisplayResolutions( DisplayResolutions &out ) const = 0; + virtual void GetDisplaySpecs(DisplaySpecs &out) const = 0; // Don't override this. Override TryVideoMode() instead. // This will set the video mode to be as close as possible to params. @@ -193,7 +243,7 @@ virtual bool BeginFrame(); virtual void EndFrame(); - virtual VideoModeParams GetActualVideoModeParams() const = 0; + virtual ActualVideoModeParams GetActualVideoModeParams() const = 0; bool IsWindowed() const { return this->GetActualVideoModeParams().windowed; } virtual void SetBlendMode( BlendMode mode ) = 0; @@ -235,7 +285,8 @@ virtual void SetEffectMode( EffectMode ) { } virtual bool IsEffectModeSupported( EffectMode effect ) { return effect == EffectMode_Normal; } - bool SupportsRenderToTexture() const { return false; } + virtual bool SupportsRenderToTexture() const { return false; } + virtual bool SupportsFullscreenBorderlessWindow() const { return false; } /* Create a render target, returning a texture handle. In addition to normal * texture functions, this can be passed to SetRenderTarget. Delete with diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_Null.cpp stepmania-5.1.0+dfsg/src/RageDisplay_Null.cpp --- stepmania-5.0.12+dfsg/src/RageDisplay_Null.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_Null.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -9,7 +9,7 @@ #include "RageTypes.h" #include "RageUtil.h" #include "RageSurface.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" static RageDisplay::RagePixelFormatDesc PIXEL_FORMAT_DESC[NUM_RagePixelFormat] = { { @@ -81,11 +81,12 @@ return RString(); } -void RageDisplay_Null::GetDisplayResolutions( DisplayResolutions &out ) const +void RageDisplay_Null::GetDisplaySpecs(DisplaySpecs &out) const { out.clear(); - DisplayResolution res = { 640, 480, true }; - out.insert( res ); + DisplayMode nullMode = {640U, 480U, 30.0}; + DisplaySpec nullSpec("NullDisplay", "NullDisplay", nullMode); + out.insert( nullSpec ); } RageSurface* RageDisplay_Null::CreateScreenshot() diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_Null.h stepmania-5.1.0+dfsg/src/RageDisplay_Null.h --- stepmania-5.0.12+dfsg/src/RageDisplay_Null.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_Null.h 2018-01-25 05:01:07.000000000 +0000 @@ -10,23 +10,23 @@ virtual RString Init( const VideoModeParams &p, bool bAllowUnacceleratedRenderer ); virtual RString GetApiDescription() const { return "Null"; } - virtual void GetDisplayResolutions( DisplayResolutions &out ) const; + virtual void GetDisplaySpecs(DisplaySpecs &out) const; const RagePixelFormatDesc *GetPixelFormatDesc(RagePixelFormat pf) const; bool BeginFrame() { return true; } void EndFrame(); - VideoModeParams GetActualVideoModeParams() const { return m_Params; } + ActualVideoModeParams GetActualVideoModeParams() const { return m_Params; } void SetBlendMode( BlendMode ) { } bool SupportsTextureFormat( RagePixelFormat, bool /* realtime */ =false ) { return true; } bool SupportsPerVertexMatrixScale() { return false; } - unsigned CreateTexture( - RagePixelFormat, + unsigned CreateTexture( + RagePixelFormat, RageSurface* /* img */, bool /* bGenerateMipMaps */ ) { return 1; } - void UpdateTexture( - unsigned /* iTexHandle */, + void UpdateTexture( + unsigned /* iTexHandle */, RageSurface* /* img */, - int /* xoffset */, int /* yoffset */, int /* width */, int /* height */ + int /* xoffset */, int /* yoffset */, int /* width */, int /* height */ ) { } void DeleteTexture( unsigned /* iTexHandle */ ) { } void ClearAllTextures() { } @@ -44,7 +44,7 @@ void ClearZBuffer() { } void SetCullMode( CullMode ) { } void SetAlphaTest( bool ) { } - void SetMaterial( + void SetMaterial( const RageColor & /* unreferenced: emissive */, const RageColor & /* unreferenced: ambient */, const RageColor & /* unreferenced: diffuse */, diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_OGL.cpp stepmania-5.1.0+dfsg/src/RageDisplay_OGL.cpp --- stepmania-5.0.12+dfsg/src/RageDisplay_OGL.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_OGL.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -15,7 +15,7 @@ #include "RageUtil.h" #include "EnumHelper.h" #include "Foreach.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "LocalizedString.h" #include "arch/LowLevelWindow/LowLevelWindow.h" @@ -63,7 +63,7 @@ /* If we support texture matrix scaling, a handle to the vertex program: */ static GLhandleARB g_bTextureMatrixShader = 0; -static map g_mapRenderTargets; +static std::map g_mapRenderTargets; static RenderTarget *g_pCurrentRenderTarget = NULL; static LowLevelWindow *g_pWind; @@ -264,6 +264,7 @@ g_pWind = NULL; g_bTextureMatrixShader = 0; + offscreenRenderTarget = nullptr; } RString GetInfoLog( GLhandleARB h ) @@ -363,6 +364,8 @@ secondaryShader = CompileShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Cel.frag", asDefines); else if (sFile == "Data/Shaders/GLSL/Shell.vert") secondaryShader = CompileShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Shell.frag", asDefines); + else if (sFile == "Data/Shaders/GLSL/Distance field.vert") + secondaryShader = CompileShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Distance field.frag", asDefines); GLhandleARB hShader = CompileShader( ShaderType, sFile, asDefines ); if (hShader == 0) @@ -404,6 +407,7 @@ static GLhandleARB g_hYUYV422Shader = 0; static GLhandleARB g_gShellShader = 0; static GLhandleARB g_gCelShader = 0; +static GLhandleARB g_gDistanceFieldShader = 0; void InitShaders() { @@ -418,6 +422,7 @@ // these two are for dancing characters and are both actually shader pairs g_gShellShader = LoadShader( GL_VERTEX_SHADER_ARB, "Data/Shaders/GLSL/Shell.vert", asDefines ); g_gCelShader = LoadShader( GL_VERTEX_SHADER_ARB, "Data/Shaders/GLSL/Cel.vert", asDefines ); + g_gDistanceFieldShader = LoadShader( GL_VERTEX_SHADER_ARB, "Data/Shaders/GLSL/Distance field.vert", asDefines ); // effects g_bUnpremultiplyShader = LoadShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Unpremultiply.frag", asDefines ); @@ -561,10 +566,10 @@ delete g_pWind; } -void RageDisplay_Legacy::GetDisplayResolutions( DisplayResolutions &out ) const +void RageDisplay_Legacy::GetDisplaySpecs(DisplaySpecs &out) const { out.clear(); - g_pWind->GetDisplayResolutions( out ); + g_pWind->GetDisplaySpecs(out); } static void CheckPalettedTextures() @@ -685,7 +690,9 @@ const float fGLUVersion = StringToFloat( (const char *) gluGetString(GLU_VERSION) ); g_gluVersion = lrintf( fGLUVersion * 10 ); +#ifndef HAVE_X11 // LLW_X11 needs to init GLEW early for GLX exts glewInit(); +#endif g_iMaxTextureUnits = 1; if (GLEW_ARB_multitexture) @@ -712,6 +719,39 @@ } } +bool RageDisplay_Legacy::UseOffscreenRenderTarget() +{ + if ( !GetActualVideoModeParams().renderOffscreen || !TEXTUREMAN ) + { + return false; + } + + if ( !offscreenRenderTarget ) + { + RenderTargetParam param; + param.bWithDepthBuffer = true; + param.bWithAlpha = true; + param.bFloat = false; + param.iWidth = GetActualVideoModeParams().width; + param.iHeight = GetActualVideoModeParams().height; + RageTextureID id( ssprintf( "FullscreenTexture%dx%d", param.iWidth, + param.iHeight ) ); + // See if we have this texture loaded already + // (not GC'd yet). If it exists and we try to recreate + // it, we'll get an error + if ( TEXTUREMAN->IsTextureRegistered( id ) ) + { + offscreenRenderTarget = static_cast( TEXTUREMAN->LoadTexture( id ) ); + } + else + { + offscreenRenderTarget = new RageTextureRenderTarget( id, param ); + TEXTUREMAN->RegisterTexture( id, offscreenRenderTarget ); + } + } + return true; +} + void RageDisplay_Legacy::ResolutionChanged() { //LOG->Warn( "RageDisplay_Legacy::ResolutionChanged" ); @@ -721,6 +761,13 @@ EndFrame(); RageDisplay::ResolutionChanged(); + + if (offscreenRenderTarget && TEXTUREMAN) + { + TEXTUREMAN->UnloadTexture( offscreenRenderTarget ); + offscreenRenderTarget = NULL; + } + } // Return true if mode change was successful. @@ -746,6 +793,7 @@ if (TEXTUREMAN) TEXTUREMAN->InvalidateTextures(); + /* Delete all render targets. They may have associated resources other than * the texture itself. */ FOREACHM( unsigned, RenderTarget *, g_mapRenderTargets, rt ) @@ -784,8 +832,8 @@ { /* We do this in here, rather than ResolutionChanged, or we won't update the * viewport for the concurrent rendering context. */ - int fWidth = g_pWind->GetActualVideoModeParams().width; - int fHeight = g_pWind->GetActualVideoModeParams().height; + int fWidth = g_pWind->GetActualVideoModeParams().windowWidth; + int fHeight = g_pWind->GetActualVideoModeParams().windowHeight; glViewport( 0, 0, fWidth, fHeight ); @@ -793,11 +841,34 @@ SetZWrite( true ); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - return RageDisplay::BeginFrame(); + bool beginFrame = RageDisplay::BeginFrame(); + if (beginFrame && UseOffscreenRenderTarget()) { + offscreenRenderTarget->BeginRenderingTo( false ); + } + + return beginFrame; } void RageDisplay_Legacy::EndFrame() { + if (UseOffscreenRenderTarget()) + { + offscreenRenderTarget->FinishRenderingTo(); + Sprite fullscreenSprite; + // We've got a hold of this, don't want sprite deleting it when + // it's deleted + offscreenRenderTarget->m_iRefCount++; + fullscreenSprite.SetTexture(offscreenRenderTarget); + fullscreenSprite.SetHorizAlign(align_left); + fullscreenSprite.SetVertAlign(align_top); + CameraPushMatrix(); + LoadMenuPerspective( 0, GetActualVideoModeParams().width, GetActualVideoModeParams().height, + static_cast (GetActualVideoModeParams().width) / 2.f, + static_cast (GetActualVideoModeParams().height) / 2.f ); + fullscreenSprite.Draw(); + CameraPopMatrix(); + } + FrameLimitBeforeVsync( g_pWind->GetActualVideoModeParams().rate ); g_pWind->SwapBuffers(); FrameLimitAfterVsync(); @@ -823,20 +894,31 @@ int width = g_pWind->GetActualVideoModeParams().width; int height = g_pWind->GetActualVideoModeParams().height; - const RagePixelFormatDesc &desc = PIXEL_FORMAT_DESC[RagePixelFormat_RGBA8]; - RageSurface *image = CreateSurface( width, height, desc.bpp, - desc.masks[0], desc.masks[1], desc.masks[2], 0 ); + RageSurface *image = NULL; + if (offscreenRenderTarget) { + RageSurface *raw = GetTexture(offscreenRenderTarget->GetTexHandle()); + image = CreateSurface( offscreenRenderTarget->GetImageWidth(), offscreenRenderTarget->GetImageHeight(), + raw->fmt.BitsPerPixel, raw->fmt.Rmask, raw->fmt.Gmask, raw->fmt.Bmask, + raw->fmt.Amask ); + RageSurfaceUtils::Blit(raw, image); + delete raw; + } else { + const RagePixelFormatDesc &desc = PIXEL_FORMAT_DESC[RagePixelFormat_RGBA8]; + image = CreateSurface( width, height, desc.bpp, + desc.masks[0], desc.masks[1], desc.masks[2], 0 ); - DebugFlushGLErrors(); + DebugFlushGLErrors(); - glReadBuffer( GL_FRONT ); - DebugAssertNoGLError(); + //TODO: revisit for MacOS, where backbuffer size can be less than window size + glReadBuffer( GL_FRONT ); + DebugAssertNoGLError(); - glReadPixels( 0, 0, g_pWind->GetActualVideoModeParams().width, g_pWind->GetActualVideoModeParams().height, GL_RGBA, - GL_UNSIGNED_BYTE, image->pixels ); - DebugAssertNoGLError(); + glReadPixels( 0, 0, g_pWind->GetActualVideoModeParams().width, g_pWind->GetActualVideoModeParams().height, GL_RGBA, + GL_UNSIGNED_BYTE, image->pixels ); + DebugAssertNoGLError(); - RageSurfaceUtils::FlipVertically( image ); + RageSurfaceUtils::FlipVertically( image ); + } return image; } @@ -865,7 +947,7 @@ return pImage; } -VideoModeParams RageDisplay_Legacy::GetActualVideoModeParams() const +ActualVideoModeParams RageDisplay_Legacy::GetActualVideoModeParams() const { return g_pWind->GetActualVideoModeParams(); } @@ -1720,6 +1802,8 @@ case EffectMode_YUYV422: hShader = g_hYUYV422Shader; break; + case EffectMode_DistanceField: + hShader = g_gDistanceFieldShader; default: break; } @@ -1766,6 +1850,8 @@ return g_hScreenShader != 0; case EffectMode_YUYV422: return g_hYUYV422Shader != 0; + case EffectMode_DistanceField: + return g_gDistanceFieldShader != 0; default: return false; } @@ -2483,6 +2569,14 @@ return GLEW_EXT_framebuffer_object || g_pWind->SupportsRenderToTexture(); } +bool RageDisplay_Legacy::SupportsFullscreenBorderlessWindow() const +{ + // In order to support FSBW, we're going to need the LowLevelWindow implementation + // to support creating a fullscreen borderless window, and we're going to need + // RenderToTexture support in order to render in alternative resolutions + return g_pWind->SupportsFullscreenBorderlessWindow() && SupportsRenderToTexture(); +} + /* * Render-to-texture can be implemented in several ways: the generic GL_ARB_pixel_buffer_object, * or platform-specifically. PBO is not available on all hardware that supports RTT, @@ -2525,8 +2619,8 @@ DISPLAY->CameraPopMatrix(); /* Reset the viewport. */ - int fWidth = g_pWind->GetActualVideoModeParams().width; - int fHeight = g_pWind->GetActualVideoModeParams().height; + int fWidth = g_pWind->GetActualVideoModeParams().windowWidth; + int fHeight = g_pWind->GetActualVideoModeParams().windowHeight; glViewport( 0, 0, fWidth, fHeight ); if (g_pCurrentRenderTarget) diff -Nru stepmania-5.0.12+dfsg/src/RageDisplay_OGL.h stepmania-5.1.0+dfsg/src/RageDisplay_OGL.h --- stepmania-5.0.12+dfsg/src/RageDisplay_OGL.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageDisplay_OGL.h 2018-01-25 05:01:07.000000000 +0000 @@ -4,9 +4,11 @@ #define RAGE_DISPLAY_OGL_H #include "RageDisplay.h" +#include "RageTextureRenderTarget.h" +#include "Sprite.h" /* Making an OpenGL call doesn't also flush the error state; if we happen - * to have an error from a previous call, then the assert below will fail. + * to have an error from a previous call, then the assert below will fail. * Flush it. */ #define FlushGLErrors() do { } while( glGetError() != GL_NO_ERROR ) #define AssertNoGLError() \ @@ -31,7 +33,7 @@ virtual RString Init( const VideoModeParams &p, bool bAllowUnacceleratedRenderer ); virtual RString GetApiDescription() const { return "OpenGL"; } - virtual void GetDisplayResolutions( DisplayResolutions &out ) const; + virtual void GetDisplaySpecs(DisplaySpecs &out) const; void ResolutionChanged(); const RagePixelFormatDesc *GetPixelFormatDesc(RagePixelFormat pf) const; @@ -41,22 +43,23 @@ void BeginConcurrentRendering(); void EndConcurrentRendering(); - bool BeginFrame(); + bool BeginFrame(); void EndFrame(); - VideoModeParams GetActualVideoModeParams() const; + ActualVideoModeParams GetActualVideoModeParams() const; void SetBlendMode( BlendMode mode ); bool SupportsTextureFormat( RagePixelFormat pixfmt, bool realtime=false ); bool SupportsPerVertexMatrixScale(); - unsigned CreateTexture( - RagePixelFormat pixfmt, + unsigned CreateTexture( + RagePixelFormat pixfmt, RageSurface* img, bool bGenerateMipMaps ); - void UpdateTexture( - unsigned iTexHandle, + void UpdateTexture( + unsigned iTexHandle, RageSurface* img, - int xoffset, int yoffset, int width, int height + int xoffset, int yoffset, int width, int height ); void DeleteTexture( unsigned iTexHandle ); + bool UseOffscreenRenderTarget(); RageSurface *GetTexture( unsigned iTexture ); RageTextureLock *CreateTextureLock(); @@ -70,6 +73,7 @@ void SetEffectMode( EffectMode effect ); bool IsEffectModeSupported( EffectMode effect ); bool SupportsRenderToTexture() const; + bool SupportsFullscreenBorderlessWindow() const; unsigned CreateRenderTarget( const RenderTargetParam ¶m, int &iTextureWidthOut, int &iTextureHeightOut ); unsigned GetRenderTarget(); void SetRenderTarget( unsigned iHandle, bool bPreserveTexture ); @@ -81,7 +85,7 @@ void ClearZBuffer(); void SetCullMode( CullMode mode ); void SetAlphaTest( bool b ); - void SetMaterial( + void SetMaterial( const RageColor &emissive, const RageColor &ambient, const RageColor &diffuse, @@ -125,6 +129,9 @@ bool SupportsSurfaceFormat( RagePixelFormat pixfmt ); void SendCurrentMatrices(); + +private: + RageTextureRenderTarget *offscreenRenderTarget; }; #endif diff -Nru stepmania-5.0.12+dfsg/src/RageMath.cpp stepmania-5.1.0+dfsg/src/RageMath.cpp --- stepmania-5.0.12+dfsg/src/RageMath.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageMath.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -643,6 +643,50 @@ return RageFastSin( x + 0.5f*PI ); } +float RageFastTan( float x ) +{ + return RageFastSin( x ) / RageFastCos( x ); +} + +float RageFastCsc( float x ) +{ + return 1 / RageFastSin( x ); +} + +float RageSquare( float angle ) +{ + float fAngle = fmod( angle , (PI * 2) ); + //Hack: This ensures the hold notes don't flicker right before they're hit. + if(fAngle < 0.01f) + { + fAngle+= PI * 2; + } + return fAngle >= PI ? -1.0 : 1.0; +} + +float RageTriangle( float angle ) +{ + float fAngle= fmod(angle, PI * 2.0f); + if(fAngle < 0.0) + { + fAngle+= PI * 2.0; + } + double result= fAngle * (1 / PI); + if(result < .5) + { + return result * 2.0; + } + else if(result < 1.5) + { + return 1.0 - ((result - .5) * 2.0); + } + else + { + return -4.0 + (result * 2.0); + } + +} + float RageQuadratic::Evaluate( float fT ) const { // optimized (m_fA * fT*fT*fT) + (m_fB * fT*fT) + (m_fC * fT) + m_fD; diff -Nru stepmania-5.0.12+dfsg/src/RageMath.h stepmania-5.1.0+dfsg/src/RageMath.h --- stepmania-5.0.12+dfsg/src/RageMath.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageMath.h 2018-01-25 05:01:07.000000000 +0000 @@ -55,6 +55,11 @@ float RageFastSin( float x ) CONST_FUNCTION; float RageFastCos( float x ) CONST_FUNCTION; +float RageFastTan( float x ) CONST_FUNCTION; +float RageFastCsc( float x ) CONST_FUNCTION; + +float RageSquare( float x) CONST_FUNCTION; +float RageTriangle( float x) CONST_FUNCTION; class RageQuadratic { diff -Nru stepmania-5.0.12+dfsg/src/RageTypes.cpp stepmania-5.1.0+dfsg/src/RageTypes.cpp --- stepmania-5.0.12+dfsg/src/RageTypes.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageTypes.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -183,7 +183,9 @@ "Overlay", "Screen", - "YUYV422" + "YUYV422", + /* Draws a graphic from a signed distance field. */ + "DistanceField" }; XToString( EffectMode ); LuaXType( EffectMode ); diff -Nru stepmania-5.0.12+dfsg/src/RageTypes.h stepmania-5.1.0+dfsg/src/RageTypes.h --- stepmania-5.0.12+dfsg/src/RageTypes.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageTypes.h 2018-01-25 05:01:07.000000000 +0000 @@ -51,6 +51,7 @@ EffectMode_Overlay, EffectMode_Screen, EffectMode_YUYV422, + EffectMode_DistanceField, NUM_EffectMode, EffectMode_Invalid }; @@ -265,18 +266,31 @@ * incorrect, the first and/or last values may be biased. */ inline unsigned char FTOC(float a) { - /* lfintf is much faster than C casts. We don't care which way negative values - * are rounded, since we'll clamp them to zero below. Be sure to truncate (not - * round) positive values. The highest value that should be converted to 1 is - * roughly (1/256 - 0.00001); if we don't truncate, values up to (1/256 + 0.5) - * will be converted to 1, which is wrong. */ - int ret = lrintf(a*256.f - 0.5f); - - /* Benchmarking shows that clamping here, as integers, is much faster than clamping - * before the conversion, as floats. */ - if( ret<0 ) return 0; - else if( ret>255 ) return 255; - else return (unsigned char) ret; + //This value is 2^52 * 1.5. + const double INT_MANTISSA = 6755399441055744.0; + + /* Be sure to truncate (not round) positive values. The highest value that + * should be converted to 1 is roughly(1 / 256 - 0.00001); if we don't + * truncate, values up to (1/256 + 0.5) will be converted to 1, which is + * wrong. */ + double base = double(a * 256.f - 0.5f); + + /* INT_MANTISSA is chosen such that, when added to a sufficiently small + * double, the mantissa bits of that double can be reinterpreted as that + * number rounded to an integer. This is done to improve performance. */ + base += INT_MANTISSA; + int ret = reinterpret_cast(base); + + /* Benchmarking shows that clamping here, as integers, is much faster than clamping + * before the conversion, as floats. */ + if (ret < 0) { + return 0; + } + if (ret > 255) { + return 255; + } + + return static_cast(ret); } /* Color type used only in vertex lists. OpenGL expects colors in diff -Nru stepmania-5.0.12+dfsg/src/RageUtil.cpp stepmania-5.1.0+dfsg/src/RageUtil.cpp --- stepmania-5.0.12+dfsg/src/RageUtil.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageUtil.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -18,6 +18,8 @@ #include #include +const RString CUSTOM_SONG_PATH= "/@mem/"; + bool HexToBinary(const RString&, RString&); void utf8_sanitize(RString &); void UnicodeUpperLower(wchar_t *, size_t, const unsigned char *); @@ -979,6 +981,17 @@ } } +RString custom_songify_path(RString const& path) +{ + vector parts; + split(path, "/", parts, false); + if(parts.size() < 2) + { + return CUSTOM_SONG_PATH + path; + } + return CUSTOM_SONG_PATH + parts[parts.size()-2] + "/" + parts[parts.size()-1]; +} + /* "foo.bar", "baz" -> "foo.baz" * "foo", "baz" -> "foo.baz" * "foo.bar", "" -> "foo" */ diff -Nru stepmania-5.0.12+dfsg/src/RageUtil.h stepmania-5.1.0+dfsg/src/RageUtil.h --- stepmania-5.0.12+dfsg/src/RageUtil.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RageUtil.h 2018-01-25 05:01:07.000000000 +0000 @@ -20,6 +20,8 @@ /** @brief Get the length of the array. */ #define ARRAYLEN(a) (sizeof(a) / sizeof((a)[0])) +extern const RString CUSTOM_SONG_PATH; + /* Common harmless mismatches. All min(T,T) and max(T,T) cases are handled * by the generic template we get from . */ inline float min( float a, int b ) { return a < b? a:b; } @@ -377,6 +379,7 @@ * element will end up in Dir, not FName: "c:\games\stepmania\". * */ void splitpath( const RString &Path, RString &Dir, RString &Filename, RString &Ext ); +RString custom_songify_path(RString const& path); RString SetExtension( const RString &path, const RString &ext ); RString GetExtension( const RString &sPath ); diff -Nru stepmania-5.0.12+dfsg/src/ReceptorArrowRow.cpp stepmania-5.1.0+dfsg/src/ReceptorArrowRow.cpp --- stepmania-5.0.12+dfsg/src/ReceptorArrowRow.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ReceptorArrowRow.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -62,7 +62,9 @@ for( unsigned c=0; cm_PlayerOptions.GetCurrent().m_fDark); + float fBaseAlpha = (1 - m_pPlayerState->m_PlayerOptions.GetCurrent().m_fDark + - m_pPlayerState->m_PlayerOptions.GetCurrent().m_fDarks[c] + ); if( m_fFadeToFailPercent != -1 ) { fBaseAlpha *= (1 - m_fFadeToFailPercent); diff -Nru stepmania-5.0.12+dfsg/src/RoomWheel.cpp stepmania-5.1.0+dfsg/src/RoomWheel.cpp --- stepmania-5.0.12+dfsg/src/RoomWheel.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RoomWheel.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -194,6 +194,32 @@ return m_CurWheelItemData.size() - m_offset; } +// lua start +#include "LuaBinding.h" + +class LunaRoomWheel : public Luna +{ +public: + static int Move(T* p, lua_State *L) + { + if (lua_isnil(L, 1)) { p->Move(0); } + else + { + p->Move(IArg(1)); + } + return 1; + } + + LunaRoomWheel() + { + ADD_METHOD(Move); + } +}; + +LUA_REGISTER_DERIVED_CLASS(RoomWheel, WheelBase) +// lua end + + /* * (c) 2004 Josh Allen * All rights reserved. diff -Nru stepmania-5.0.12+dfsg/src/RoomWheel.h stepmania-5.1.0+dfsg/src/RoomWheel.h --- stepmania-5.0.12+dfsg/src/RoomWheel.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/RoomWheel.h 2018-01-25 05:01:07.000000000 +0000 @@ -62,6 +62,9 @@ void AddItem( WheelItemBaseData *itemdata ); void RemoveItem( int index ); + // Lua + void PushSelf(lua_State *L); + private: virtual WheelItemBase *MakeItem(); int m_offset; diff -Nru stepmania-5.0.12+dfsg/src/ScoreKeeperNormal.cpp stepmania-5.1.0+dfsg/src/ScoreKeeperNormal.cpp --- stepmania-5.0.12+dfsg/src/ScoreKeeperNormal.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScoreKeeperNormal.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -605,7 +605,7 @@ float offset = NoteDataWithScoring::LastTapNoteWithResult( nd, iRow ).result.fTapNoteOffset; NSMAN->ReportScore( pn, scoreOfLastTap, m_pPlayerStageStats->m_iScore, - m_pPlayerStageStats->m_iCurCombo, offset ); + m_pPlayerStageStats->m_iCurCombo, offset, m_iNumNotesHitThisRow); Message msg( "ScoreChanged" ); msg.SetParam( "PlayerNumber", m_pPlayerState->m_PlayerNumber ); msg.SetParam( "MultiPlayer", m_pPlayerState->m_mp ); diff -Nru stepmania-5.0.12+dfsg/src/ScreenDebugOverlay.cpp stepmania-5.1.0+dfsg/src/ScreenDebugOverlay.cpp --- stepmania-5.0.12+dfsg/src/ScreenDebugOverlay.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenDebugOverlay.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -567,6 +567,7 @@ static LocalizedString SHOW_RECENT_ERRORS("ScreenDebugOverlay", "Show Recent Errors"); static LocalizedString CLEAR_ERRORS( "ScreenDebugOverlay", "Clear Errors" ); static LocalizedString CONVERT_XML( "ScreenDebugOverlay", "Convert XML" ); +static LocalizedString RELOAD_PREFS( "ScreenDebugOverlay", "Reload Prefs" ); static LocalizedString RELOAD_THEME_AND_TEXTURES( "ScreenDebugOverlay", "Reload Theme and Textures" ); static LocalizedString WRITE_PROFILES ( "ScreenDebugOverlay", "Write Profiles" ); static LocalizedString WRITE_PREFERENCES ( "ScreenDebugOverlay", "Write Preferences" ); @@ -1182,6 +1183,19 @@ } }; +class DebugLineReloadPreferences : public IDebugLine +{ + virtual RString GetDisplayTitle() { return RELOAD_PREFS.GetValue(); } + virtual RString GetDisplayValue() { return RString(); } + virtual bool IsEnabled() { return true; } + virtual RString GetPageName() const { return "Profiles"; } + virtual void DoAndLog( RString &sMessageOut ) + { + PREFSMAN->ReadPrefsFromDisk(); + IDebugLine::DoAndLog(sMessageOut); + } +}; + class DebugLineMenuTimer : public IDebugLine { virtual RString GetDisplayTitle() { return MENU_TIMER.GetValue(); } @@ -1337,6 +1351,7 @@ DECLARE_ONE( DebugLineConvertXML ); DECLARE_ONE( DebugLineWriteProfiles ); DECLARE_ONE( DebugLineWritePreferences ); +DECLARE_ONE(DebugLineReloadPreferences); DECLARE_ONE( DebugLineMenuTimer ); DECLARE_ONE( DebugLineFlushLog ); DECLARE_ONE( DebugLinePullBackCamera ); diff -Nru stepmania-5.0.12+dfsg/src/ScreenEdit.cpp stepmania-5.1.0+dfsg/src/ScreenEdit.cpp --- stepmania-5.0.12+dfsg/src/ScreenEdit.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenEdit.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -52,7 +52,7 @@ #define PLAYER_X (SCREEN_CENTER_X) #define PLAYER_Y (SCREEN_CENTER_Y) #define PLAYER_HEIGHT (360) -#define PLAYER_Y_STANDARD (PLAYER_Y-PLAYER_HEIGHT/2) +#define PLAYER_Y_STANDARD (PLAYER_Y-((SCREEN_HEIGHT/480)*(PLAYER_HEIGHT/2))) #define EDIT_X (SCREEN_CENTER_X) #define EDIT_Y (PLAYER_Y) @@ -1456,7 +1456,7 @@ m_SnapDisplay.SetXY( EDIT_X, PLAYER_Y_STANDARD ); m_SnapDisplay.Load(); // xxx: hardcoded command -aj - m_SnapDisplay.SetZoom( 0.5f ); + m_SnapDisplay.SetZoom( SCREEN_HEIGHT/480*0.5 ); this->AddChild( &m_SnapDisplay ); // We keep track of this bit of state so that when the user is in Edit/Sync Songs and makes a change to the NoteSkins, @@ -1494,7 +1494,7 @@ m_pSteps->GetNoteData( m_NoteDataEdit ); m_NoteFieldEdit.SetXY( EDIT_X, EDIT_Y ); - m_NoteFieldEdit.SetZoom( 0.5f ); + m_NoteFieldEdit.SetZoom( SCREEN_HEIGHT/480*0.5 ); m_NoteFieldEdit.Init( &m_PlayerStateEdit, PLAYER_HEIGHT*2, false ); m_NoteFieldEdit.Load( &m_NoteDataEdit, -240, 850 ); this->AddChild( &m_NoteFieldEdit ); @@ -1528,6 +1528,7 @@ m_Player->CacheAllUsedNoteSkins(); GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerController = PC_HUMAN; m_Player->SetXY( PLAYER_X, PLAYER_Y ); + m_Player->SetZoom( SCREEN_HEIGHT/480 ); this->AddChild( m_Player ); this->AddChild( &m_Foreground ); diff -Nru stepmania-5.0.12+dfsg/src/ScreenManager.cpp stepmania-5.1.0+dfsg/src/ScreenManager.cpp --- stepmania-5.0.12+dfsg/src/ScreenManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -247,6 +247,7 @@ m_bZeroNextUpdate = false; m_PopTopScreen = SM_Invalid; m_OnDonePreparingScreen = SM_Invalid; + } diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetRoom.cpp stepmania-5.1.0+dfsg/src/ScreenNetRoom.cpp --- stepmania-5.0.12+dfsg/src/ScreenNetRoom.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetRoom.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -189,28 +189,40 @@ NSMAN->ReportNSSOnOff( 6 ); } -bool ScreenNetRoom::MenuStart( const InputEventPlus &input ) +bool ScreenNetRoom::MenuStart(const InputEventPlus &input) { + SelectCurrent(); + ScreenNetSelectBase::MenuStart(input); + return true; +} + +RoomWheel* ScreenNetRoom::GetRoomWheel() +{ + return &m_RoomWheel; +} + +void ScreenNetRoom::SelectCurrent() +{ + m_RoomWheel.Select(); - RoomWheelItemData* rwd = dynamic_cast( m_RoomWheel.LastSelected() ); - if( rwd ) + RoomWheelItemData* rwd = dynamic_cast(m_RoomWheel.LastSelected()); + if (rwd) { - if ( rwd->m_iFlags % 2 ) + if (rwd->m_iFlags % 2) { m_sLastPickedRoom = rwd->m_sText; - ScreenTextEntry::TextEntry( SM_BackFromReqPass, ENTER_ROOM_REQPASSWORD, "", 255 ); - } + ScreenTextEntry::TextEntry(SM_BackFromReqPass, ENTER_ROOM_REQPASSWORD, "", 255); + } else { NSMAN->m_SMOnlinePacket.ClearPacket(); - NSMAN->m_SMOnlinePacket.Write1( 1 ); - NSMAN->m_SMOnlinePacket.Write1( 1 ); //Type (enter a room) - NSMAN->m_SMOnlinePacket.WriteNT( rwd->m_sText ); - NSMAN->SendSMOnline( ); + NSMAN->m_SMOnlinePacket.Write1(1); + NSMAN->m_SMOnlinePacket.Write1(1); //Type (enter a room) + NSMAN->m_SMOnlinePacket.WriteNT(rwd->m_sText); + NSMAN->SendSMOnline(); } } - ScreenNetSelectBase::MenuStart( input ); - return true; + return; } bool ScreenNetRoom::MenuBack( const InputEventPlus &input ) @@ -312,6 +324,31 @@ NSMAN->SendSMOnline( ); } +// lua start +#include "LuaBinding.h" + +/** @brief Allow Lua to have access to the PlayerState. */ +class LunaScreenNetRoom : public Luna +{ +public: + static int GetMusicWheel(T* p, lua_State *L) { + p->GetRoomWheel()->PushSelf(L); + return 1; + } + static int SelectCurrent(T* p, lua_State *L) { + p->SelectCurrent(); + return 1; + } + LunaScreenNetRoom() + { + ADD_METHOD(GetMusicWheel); + ADD_METHOD(SelectCurrent); + } +}; + +LUA_REGISTER_DERIVED_CLASS(ScreenNetRoom, ScreenNetSelectBase) +// lua end + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetRoom.h stepmania-5.1.0+dfsg/src/ScreenNetRoom.h --- stepmania-5.0.12+dfsg/src/ScreenNetRoom.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetRoom.h 2018-01-25 05:01:07.000000000 +0000 @@ -33,6 +33,12 @@ virtual bool Input( const InputEventPlus &input ); virtual void HandleScreenMessage( const ScreenMessage SM ); + RoomWheel* GetRoomWheel(); + void SelectCurrent(); + + // Lua + void PushSelf(lua_State *L); + protected: virtual bool MenuStart( const InputEventPlus &input ); virtual bool MenuBack( const InputEventPlus &input ); diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetSelectBase.cpp stepmania-5.1.0+dfsg/src/ScreenNetSelectBase.cpp --- stepmania-5.0.12+dfsg/src/ScreenNetSelectBase.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetSelectBase.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -28,6 +28,7 @@ AutoScreenMessage( SM_AddToChat ); AutoScreenMessage( SM_UsersUpdate ); +AutoScreenMessage( SM_FriendsUpdate ); AutoScreenMessage( SM_SMOnlinePack ); REGISTER_SCREEN_CLASS( ScreenNetSelectBase ); @@ -62,6 +63,8 @@ m_textChatOutput.SetText( NSMAN->m_sChatText ); m_textChatOutput.SetMaxLines( SHOW_CHAT_LINES, 1 ); + scroll = 0; + //Display users list UpdateUsers(); @@ -83,13 +86,38 @@ switch( input.DeviceI.button ) { + case KEY_PGUP: + if (!bHoldingCtrl) { + ShowPreviousMsg(); + break; + } + else { + Scroll(1); + Scroll(1); + break; + } + case KEY_PGDN: + if (!bHoldingCtrl) { + ShowNextMsg(); + break; + } + else { + Scroll(-1); + Scroll(-1); + break; + } case KEY_ENTER: case KEY_KP_ENTER: if (!bHoldingCtrl) { - if ( m_sTextInput != "" ) - NSMAN->SendChat( m_sTextInput ); - m_sTextInput=""; + if (m_sTextInput != "") { + NSMAN->SendChat(m_sTextInput); + m_sTextLastestInputs.push_back(m_sTextInput); + m_sTextLastestInputsIndex = 0; + if (m_sTextLastestInputs.size() > 10) + m_sTextLastestInputs.erase(m_sTextLastestInputs.begin()); + } + m_sTextInput = ""; UpdateTextInput(); return true; } @@ -105,7 +133,9 @@ if( (c >= L' ') && (!bHoldingCtrl) ) { - m_sTextInput += WStringToRString(wstring()+c); + if (!enableChatboxInput) + return true; + m_sTextInput += WStringToRString(wstring() + c); UpdateTextInput(); } @@ -135,6 +165,10 @@ { UpdateUsers(); } + else if (SM == SM_FriendsUpdate) + { + MESSAGEMAN->Broadcast("FriendsUpdate"); + } ScreenWithMenuElements::HandleScreenMessage( SM ); } @@ -192,6 +226,53 @@ this->AddChild( &m_textUsers[i] ); } + if (!usersVisible) + for (unsigned i = 0; i < NSMAN->m_ActivePlayer.size(); i++) + m_textUsers[i].SetVisible(false); + MESSAGEMAN->Broadcast("UsersUpdate"); +} + +void ScreenNetSelectBase::Scroll(int movescroll) +{ + if (scroll + movescroll >= 0 && scroll + movescroll <= m_textChatOutput.lines - SHOW_CHAT_LINES) + scroll += movescroll; + m_textChatOutput.ResetText(); + m_textChatOutput.SetMaxLines(SHOW_CHAT_LINES, 1, scroll); + return; +} + +RString ScreenNetSelectBase::GetPreviousMsg() +{ + m_sTextLastestInputsIndex += 1; + if (m_sTextLastestInputsIndex <= m_sTextLastestInputs.size() && m_sTextLastestInputsIndex > 0) + return m_sTextLastestInputs[m_sTextLastestInputs.size() - m_sTextLastestInputsIndex]; + m_sTextLastestInputsIndex = m_sTextLastestInputs.size(); + return m_sTextLastestInputsIndex == 0 ? "" : m_sTextLastestInputs[m_sTextLastestInputs.size() - m_sTextLastestInputsIndex]; +} + +RString ScreenNetSelectBase::GetNextMsg() +{ + m_sTextLastestInputsIndex -= 1; + if (m_sTextLastestInputsIndex <= m_sTextLastestInputs.size() && m_sTextLastestInputsIndex > 0) + return m_sTextLastestInputs[m_sTextLastestInputs.size() - m_sTextLastestInputsIndex]; + m_sTextLastestInputsIndex = 0; + return ""; +} +void ScreenNetSelectBase::ShowPreviousMsg() +{ + SetInputText(GetPreviousMsg()); + return; +} +void ScreenNetSelectBase::ShowNextMsg() +{ + SetInputText(GetNextMsg()); + return; +} +void ScreenNetSelectBase::SetInputText(RString text) +{ + m_sTextInput = text; + UpdateTextInput(); + return; } /** ColorBitmapText ***********************************************************/ @@ -319,10 +400,192 @@ if( iLineWidth > 0 ) SimpleAddLine( sCurrentLine, iLineWidth ); + lines = m_wTextLines.size(); + + BuildChars(); + UpdateBaseZoom(); +} + +void ColorBitmapText::ResetText() +{ + ASSERT(m_pFont != NULL); + + int iWrapWidthPixels = m_iWrapWidthPixels; + + // Set up the first color. + m_vColors.clear(); + ColorChange change; + change.c = RageColor(1, 1, 1, 1); + change.l = 0; + m_vColors.push_back(change); + + m_wTextLines.clear(); + + RString sCurrentLine = ""; + int iLineWidth = 0; + + RString sCurrentWord = ""; + int iWordWidth = 0; + int iGlyphsSoFar = 0; + + for (unsigned i = 0; i < m_sText.length(); i++) + { + int iCharsLeft = m_sText.length() - i - 1; + + // First: Check for the special (color) case. + + if (m_sText.length() > 8 && i < m_sText.length() - 9) + { + RString FirstThree = m_sText.substr(i, 3); + if (FirstThree.CompareNoCase("|c0") == 0 && iCharsLeft > 8) + { + ColorChange cChange; + unsigned int r, g, b; + sscanf(m_sText.substr(i, 9).c_str(), "|%*c0%2x%2x%2x", &r, &g, &b); + cChange.c = RageColor(r / 255.f, g / 255.f, b / 255.f, 1.f); + cChange.l = iGlyphsSoFar; + if (iGlyphsSoFar == 0) + m_vColors[0] = cChange; + else + m_vColors.push_back(cChange); + i += 8; + continue; + } + } + + int iCharLength = min(utf8_get_char_len(m_sText[i]), iCharsLeft + 1); + RString curCharStr = m_sText.substr(i, iCharLength); + wchar_t curChar = utf8_get_char(curCharStr); + i += iCharLength - 1; + int iCharWidth = m_pFont->GetLineWidthInSourcePixels(wstring() + curChar); + + switch (curChar) + { + case L' ': + if ( /* iLineWidth == 0 &&*/ iWordWidth == 0) + break; + sCurrentLine += sCurrentWord + " "; + iLineWidth += iWordWidth + iCharWidth; + sCurrentWord = ""; + iWordWidth = 0; + iGlyphsSoFar++; + break; + case L'\n': + if (iLineWidth + iWordWidth > iWrapWidthPixels) + { + SimpleAddLine(sCurrentLine, iLineWidth); + if (iWordWidth > 0) + iLineWidth = iWordWidth + //Add the width of a space + m_pFont->GetLineWidthInSourcePixels(L" "); + sCurrentLine = sCurrentWord + " "; + iWordWidth = 0; + sCurrentWord = ""; + iGlyphsSoFar++; + } + else + { + SimpleAddLine(sCurrentLine + sCurrentWord, iLineWidth + iWordWidth); + sCurrentLine = ""; iLineWidth = 0; + sCurrentWord = ""; iWordWidth = 0; + } + break; + default: + if (iWordWidth + iCharWidth > iWrapWidthPixels && iLineWidth == 0) + { + SimpleAddLine(sCurrentWord, iWordWidth); + sCurrentWord = curCharStr; iWordWidth = iCharWidth; + } + else if (iWordWidth + iLineWidth + iCharWidth > iWrapWidthPixels) + { + SimpleAddLine(sCurrentLine, iLineWidth); + sCurrentLine = ""; + iLineWidth = 0; + sCurrentWord += curCharStr; + iWordWidth += iCharWidth; + } + else + { + sCurrentWord += curCharStr; + iWordWidth += iCharWidth; + } + iGlyphsSoFar++; + break; + } + } + + if (iWordWidth > 0) + { + sCurrentLine += sCurrentWord; + iLineWidth += iWordWidth; + } + + if (iLineWidth > 0) + SimpleAddLine(sCurrentLine, iLineWidth); + lines = m_wTextLines.size(); BuildChars(); UpdateBaseZoom(); } +void ColorBitmapText::SetMaxLines(int iNumLines, int iDirection, unsigned int &scroll) +{ + iNumLines = max(0, iNumLines); + iNumLines = min((int)m_wTextLines.size(), iNumLines); + if (iDirection == 0) + { + // Crop all bottom lines + m_wTextLines.resize(iNumLines); + m_iLineWidths.resize(iNumLines); + } + else + { + // Because colors are relative to the beginning, we have to crop them back + unsigned shift = 0; + if (scroll > m_iLineWidths.size() - iNumLines) + scroll = m_iLineWidths.size() - iNumLines; + + for (unsigned i = 0; i < m_wTextLines.size() - iNumLines - scroll; i++) + shift += m_wTextLines[i].length(); + + // When we're cutting out text, we need to maintain the last + // color, so our text at the top doesn't become colorless. + RageColor LastColor; + + for (unsigned i = 0; i < m_vColors.size(); i++) + { + m_vColors[i].l -= shift; + if (m_vColors[i].l < 0) + { + LastColor = m_vColors[i].c; + m_vColors.erase(m_vColors.begin() + i); + i--; + } + } + + // If we already have a color set for the first char + // do not override it. + if (m_vColors.size() > 0 && m_vColors[0].l > 0) + { + ColorChange tmp; + tmp.c = LastColor; + tmp.l = 0; + m_vColors.insert(m_vColors.begin(), tmp); + } + + if (scroll == 0 || m_iLineWidths.size() <= iNumLines || scroll > m_iLineWidths.size() - iNumLines) { + m_wTextLines.erase(m_wTextLines.begin(), m_wTextLines.end() - iNumLines); + m_iLineWidths.erase(m_iLineWidths.begin(), m_iLineWidths.end() - iNumLines); + } + else { + m_wTextLines.erase(m_wTextLines.begin(), m_wTextLines.end() - iNumLines - scroll); + m_iLineWidths.erase(m_iLineWidths.begin(), m_iLineWidths.end() - iNumLines - scroll); + + m_wTextLines.erase(m_wTextLines.end() - scroll, m_wTextLines.end()); + m_iLineWidths.erase(m_iLineWidths.begin(), m_iLineWidths.end()); + } + } + BuildChars(); +} + void ColorBitmapText::SimpleAddLine( const RString &sAddition, const int iWidthPixels) { m_wTextLines.push_back( RStringToWstring( sAddition ) ); @@ -434,6 +697,149 @@ } +void ScreenNetSelectBase::SetChatboxVisible(bool visibility) +{ + m_textChatInput.SetVisible(visibility); + m_textChatOutput.SetVisible(visibility); + return; +} +void ScreenNetSelectBase::SetUsersVisible(bool visibility) +{ + usersVisible = visibility; + for (unsigned int i = 0; i < m_textUsers.size(); i++) + m_textUsers[i].SetVisible(visibility); + return; +} + +vector* ScreenNetSelectBase::ToUsers() +{ + return &m_textUsers; +} + +// lua start +#include "LuaBinding.h" + +/** @brief Allow Lua to have access to the PlayerState. */ +class LunaScreenNetSelectBase : public Luna +{ + static int ChatboxInput(T* p, lua_State *L) + { + if (!lua_isnil(L, 1)) + p->enableChatboxInput = BArg(1); + return 1; + } + static int UsersVisible(T* p, lua_State *L) + { + if (!lua_isnil(L, 1)) + p->SetUsersVisible(BArg(1)); + return 1; + } + static int ChatboxVisible(T* p, lua_State *L) + { + if (!lua_isnil(L, 1)) + p->SetChatboxVisible(BArg(1)); + return 1; + } + static int GetUserQty(T* p, lua_State *L) + { + lua_pushnumber(L, p->ToUsers()->size()); + return 1; + } + static int GetUser(T* p, lua_State *L) + { + if (IArg(1) <= p->ToUsers()->size() && IArg(1) >= 1) + lua_pushstring(L, (*(p->ToUsers()))[IArg(1) - 1].GetText()); + else + lua_pushstring(L, ""); + return 1; + } + static int GetUserState(T* p, lua_State *L) + { + if (IArg(1) <= p->ToUsers()->size() && IArg(1) >= 1) + lua_pushnumber(L, NSMAN->m_PlayerStatus[NSMAN->m_ActivePlayer[IArg(1) - 1]]); + else + lua_pushnumber(L, 0); + return 1; + } + /* + static int GetFriendQty(T* p, lua_State *L) + { + lua_pushnumber(L, NSMAN->fl_PlayerNames.size()); + return 1; + } + static int GetFriendName(T* p, lua_State *L) + { + if (IArg(1) <= NSMAN->fl_PlayerNames.size() && IArg(1) >= 1) + lua_pushstring(L, (NSMAN->fl_PlayerNames[IArg(1) - 1]).c_str()); + else + lua_pushstring(L, ""); + return 1; + } + static int GetFriendState(T* p, lua_State *L) + { + if (IArg(1) <= NSMAN->fl_PlayerStates.size() && IArg(1) >= 1) + lua_pushnumber(L, NSMAN->fl_PlayerStates[IArg(1) - 1]); + else + lua_pushnumber(L, 0); + return 1; + } + */ + static int ScrollChatUp(T* p, lua_State *L) + { + p->Scroll(1); + return 1; + } + static int ScrollChatDown(T* p, lua_State *L) + { + p->Scroll(-1); + return 1; + } + static int ShowNextMsg(T* p, lua_State *L) + { + p->ShowNextMsg(); + return 1; + } + static int ShowPreviousMsg(T* p, lua_State *L) + { + p->ShowPreviousMsg(); + return 1; + } + static int GetChatScroll(T* p, lua_State *L) + { + lua_pushnumber(L, p->GetScroll()); + return 1; + } + static int GetChatLines(T* p, lua_State *L) + { + lua_pushnumber(L, p->GetLines()); + return 1; + } +public: + LunaScreenNetSelectBase() + { + ADD_METHOD(GetUser); + ADD_METHOD(UsersVisible); + ADD_METHOD(ChatboxInput); + ADD_METHOD(ChatboxVisible); + ADD_METHOD(GetUserQty); + ADD_METHOD(GetUserState); + /* + ADD_METHOD(GetFriendQty); + ADD_METHOD(GetFriendState); + ADD_METHOD(GetFriendName); + */ + ADD_METHOD(ScrollChatUp); + ADD_METHOD(ScrollChatDown); + ADD_METHOD(ShowNextMsg); + ADD_METHOD(ShowPreviousMsg); + ADD_METHOD(GetChatScroll); + ADD_METHOD(GetChatLines); + } +}; + +LUA_REGISTER_DERIVED_CLASS(ScreenNetSelectBase, ScreenWithMenuElements) +// lua end + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetSelectBase.h stepmania-5.1.0+dfsg/src/ScreenNetSelectBase.h --- stepmania-5.0.12+dfsg/src/ScreenNetSelectBase.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetSelectBase.h 2018-01-25 05:01:07.000000000 +0000 @@ -15,6 +15,9 @@ public: void SetText( const RString &sText, const RString &sAlternateText = "", int iWrapWidthPixels = -1 ); void DrawPrimitives(); + int lines = 0; + void ResetText(); + void SetMaxLines(int iNumLines, int iDirection, unsigned int &scroll); void SetMaxLines( int iLines, bool bCutBottom = true ); //if bCutBottom = false then, it will crop the top void SimpleAddLine( const RString &sAddition, int iWidthPixels ); void SetMaxLines( int iNumLines, int iDirection ); @@ -39,6 +42,24 @@ void UpdateUsers(); void UpdateTextInput(); + + + bool usersVisible = true; + bool enableChatboxInput = true; + void SetChatboxVisible(bool visibility); + void SetUsersVisible(bool visibility); + vector* ToUsers(); + void Scroll(int movescroll); + RString GetPreviousMsg(); + RString GetNextMsg(); + void SetInputText(RString text); + void ShowPreviousMsg(); + void ShowNextMsg(); + unsigned int GetScroll() { return scroll; } + unsigned int GetLines() { return m_textChatOutput.lines; } + // Lua + virtual void PushSelf(lua_State *L); + private: //Chatting ColorBitmapText m_textChatInput; @@ -46,6 +67,9 @@ AutoActor m_sprChatInputBox; AutoActor m_sprChatOutputBox; RString m_sTextInput; + unsigned int m_sTextLastestInputsIndex; + vector m_sTextLastestInputs; + unsigned int scroll; RString m_actualText; vector m_textUsers; diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetSelectMusic.cpp stepmania-5.1.0+dfsg/src/ScreenNetSelectMusic.cpp --- stepmania-5.0.12+dfsg/src/ScreenNetSelectMusic.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetSelectMusic.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -181,14 +181,37 @@ vector AllSongs = SONGMAN->GetAllSongs(); unsigned i; - for( i=0; i < AllSongs.size(); i++ ) + bool found = false; + if (NSMAN->GetServerVersion() >= 129) { - m_cSong = AllSongs[i]; - if( ( !m_cSong->GetTranslitArtist().CompareNoCase( NSMAN->m_sArtist ) ) && - ( !m_cSong->GetTranslitMainTitle().CompareNoCase( NSMAN->m_sMainTitle ) ) && - ( !m_cSong->GetTranslitSubTitle().CompareNoCase( NSMAN->m_sSubTitle ) ) ) - break; + //Dont earch by filehash if none was sent + if(!NSMAN->m_sFileHash.empty()) + for (i = 0; i < AllSongs.size(); i++) + { + m_cSong = AllSongs[i]; + if (NSMAN->m_sArtist == m_cSong->GetTranslitArtist() && + NSMAN->m_sMainTitle == m_cSong->GetTranslitMainTitle() && + NSMAN->m_sSubTitle == m_cSong->GetTranslitSubTitle() && + NSMAN->m_sFileHash == m_cSong->GetFileHash()) + { + found = true; + break; + } + } + } + //If we couldnt find it using file hash search for it without using it, if using SMSERVER < 129 it will go here + if(!found) + for (i = 0; i < AllSongs.size(); i++) + { + m_cSong = AllSongs[i]; + if (NSMAN->m_sArtist == m_cSong->GetTranslitArtist() && + NSMAN->m_sMainTitle == m_cSong->GetTranslitMainTitle() && + NSMAN->m_sSubTitle == m_cSong->GetTranslitSubTitle()) + { + break; + } + } bool haveSong = i != AllSongs.size(); @@ -401,36 +424,40 @@ return true; } -bool ScreenNetSelectMusic::MenuStart( const InputEventPlus &input ) +bool ScreenNetSelectMusic::MenuStart(const InputEventPlus &input) { + return SelectCurrent(); +} +bool ScreenNetSelectMusic::SelectCurrent() +{ + bool bResult = m_MusicWheel.Select(); - if( !bResult ) + if (!bResult) return true; - if( m_MusicWheel.GetSelectedType() != WheelItemDataType_Song ) + if (m_MusicWheel.GetSelectedType() != WheelItemDataType_Song) return true; Song * pSong = m_MusicWheel.GetSelectedSong(); - if( pSong == NULL ) + if (pSong == NULL) return false; - GAMESTATE->m_pCurSong.Set( pSong ); + GAMESTATE->m_pCurSong.Set(pSong); - if( NSMAN->useSMserver ) + if (NSMAN->useSMserver) { NSMAN->m_sArtist = pSong->GetTranslitArtist(); NSMAN->m_sMainTitle = pSong->GetTranslitMainTitle(); NSMAN->m_sSubTitle = pSong->GetTranslitSubTitle(); NSMAN->m_iSelectMode = 2; // Command for user selecting song - NSMAN->SelectUserSong (); + NSMAN->SelectUserSong(); } else StartSelectedSong(); return true; } - bool ScreenNetSelectMusic::MenuBack( const InputEventPlus &input ) { SOUND->StopMusic(); @@ -580,6 +607,37 @@ ScreenNetSelectBase::Update( fDeltaTime ); } +MusicWheel* ScreenNetSelectMusic::GetMusicWheel() +{ + return &m_MusicWheel; +} + + +// lua start +#include "LuaBinding.h" + +/** @brief Allow Lua to have access to the PlayerState. */ +class LunaScreenNetSelectMusic : public Luna +{ +public: + static int GetMusicWheel(T* p, lua_State *L) { + p->GetMusicWheel()->PushSelf(L); + return 1; + } + static int SelectCurrent(T* p, lua_State *L) { + p->SelectCurrent(); + return 1; + } + LunaScreenNetSelectMusic() + { + ADD_METHOD(GetMusicWheel); + ADD_METHOD(SelectCurrent); + } +}; + +LUA_REGISTER_DERIVED_CLASS(ScreenNetSelectMusic, ScreenNetSelectBase) +// lua end + #endif /* diff -Nru stepmania-5.0.12+dfsg/src/ScreenNetSelectMusic.h stepmania-5.1.0+dfsg/src/ScreenNetSelectMusic.h --- stepmania-5.0.12+dfsg/src/ScreenNetSelectMusic.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenNetSelectMusic.h 2018-01-25 05:01:07.000000000 +0000 @@ -22,6 +22,11 @@ virtual void HandleScreenMessage( const ScreenMessage SM ); void StartSelectedSong(); + bool SelectCurrent(); + + MusicWheel* GetMusicWheel(); + // Lua + virtual void PushSelf(lua_State *L); protected: virtual bool MenuStart( const InputEventPlus &input ); diff -Nru stepmania-5.0.12+dfsg/src/ScreenOptionsMasterPrefs.cpp stepmania-5.1.0+dfsg/src/ScreenOptionsMasterPrefs.cpp --- stepmania-5.0.12+dfsg/src/ScreenOptionsMasterPrefs.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenOptionsMasterPrefs.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -14,7 +14,7 @@ #include "Game.h" #include "Foreach.h" #include "GameConstantsAndTypes.h" -#include "DisplayResolutions.h" +#include "DisplaySpec.h" #include "LocalizedString.h" #include "SpecialFiles.h" #include "RageLog.h" @@ -248,22 +248,25 @@ *s = THEME->GetThemeDisplayName( *s ); } -static DisplayResolutions display_resolution_list; -static void cache_display_resolution_list() +static DisplaySpecs display_specs; +static void cache_display_specs() { - if(display_resolution_list.empty()) + if(display_specs.empty()) { - DISPLAY->GetDisplayResolutions(display_resolution_list); + DISPLAY->GetDisplaySpecs(display_specs); } } static void DisplayResolutionChoices( vector &out ) { - cache_display_resolution_list(); - FOREACHS_CONST( DisplayResolution, display_resolution_list, iter ) + cache_display_specs(); + FOREACHS_CONST( DisplaySpec, display_specs, iter ) { - RString s = ssprintf("%dx%d", iter->iWidth, iter->iHeight); - out.push_back( s ); + if (iter->currentMode() != NULL) + { + RString s = ssprintf("%dx%d", iter->currentMode()->width, iter->currentMode()->height); + out.push_back(s); + } } } @@ -516,6 +519,8 @@ #include "LuaManager.h" +#include "LuaBinding.h" + static int GetTimingDifficulty() { int iTimingDifficulty = 0; @@ -583,12 +588,14 @@ { static vector res_choices; - if(res_choices.empty()) + if( res_choices.empty() ) { - cache_display_resolution_list(); - FOREACHS_CONST(DisplayResolution, display_resolution_list, iter) + FOREACHS_CONST( DisplaySpec, display_specs, iter ) { - res_choices.push_back(res_t(iter->iWidth, iter->iHeight)); + if ( iter->currentMode() != NULL ) + { + res_choices.push_back( res_t( iter->currentMode()->width, iter->currentMode()->height ) ); + } } } @@ -704,16 +711,39 @@ MoveMap(sel, conf_option, to_sel, mapping, ARRAYLEN(mapping)); } +static void CustomSongsCount(int& sel, bool to_sel, const ConfOption* conf_option) +{ + int mapping[]= {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000}; + MoveMap(sel, conf_option, to_sel, mapping, ARRAYLEN(mapping)); +} + +static void CustomSongsLoadTimeout(int& sel, bool to_sel, const ConfOption* conf_option) +{ + int mapping[]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 1000}; + MoveMap(sel, conf_option, to_sel, mapping, ARRAYLEN(mapping)); +} + +static void CustomSongsMaxSeconds(int& sel, bool to_sel, const ConfOption* conf_option) +{ + int mapping[]= {60, 90, 120, 150, 180, 210, 240, 10000}; + MoveMap(sel, conf_option, to_sel, mapping, ARRAYLEN(mapping)); +} + +static void CustomSongsMaxMegabytes(int& sel, bool to_sel, const ConfOption* conf_option) +{ + int mapping[]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 1000}; + MoveMap(sel, conf_option, to_sel, mapping, ARRAYLEN(mapping)); +} static vector g_ConfOptions; static void InitializeConfOptions() { if( !g_ConfOptions.empty() ) return; - // Clear the display_resolution_list so that we don't get problems from + // Clear the display_specs so that we don't get problems from // caching it. If the DisplayResolution option row is on the screen, it'll // recache the list. -Kyz - display_resolution_list.clear(); + display_specs.clear(); // There are a couple ways of getting the current preference column or turning // a new choice in the interface into a new preference. The easiest is when @@ -738,7 +768,6 @@ ADD( ConfOption( "DefaultNoteSkin", DefaultNoteSkin, DefaultNoteSkinChoices ) ); ADD( ConfOption( "ShowInstructions", MovePref, "Skip","Show") ); ADD( ConfOption( "ShowCaution", MovePref, "Skip","Show") ); - ADD( ConfOption( "DancePointsForOni", MovePref, "Percent","Dance Points") ); ADD( ConfOption( "MusicWheelUsesSections", MovePref, "Never","Always","Title Only") ); ADD( ConfOption( "CourseSortOrder", MovePref, "Num Songs","Average Feet","Total Feet","Ranking") ); ADD( ConfOption( "MoveRandomToEnd", MovePref, "No","Yes") ); @@ -808,6 +837,11 @@ ADD( ConfOption( "PickExtraStage", MovePref, "Off","On" ) ); ADD( ConfOption( "UseUnlockSystem", MovePref, "Off","On" ) ); ADD( ConfOption( "AllowSongDeletion", MovePref, "Off","On" ) ); + ADD(ConfOption("CustomSongsEnable", MovePref, "Off", "On")); + ADD(ConfOption("CustomSongsMaxCount", CustomSongsCount, "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "1000")); + ADD(ConfOption("CustomSongsLoadTimeout", CustomSongsLoadTimeout, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "20", "30", "1000")); + ADD(ConfOption("CustomSongsMaxSeconds", CustomSongsMaxSeconds, "60", "90", "120", "150", "180", "210", "240", "10000")); + ADD(ConfOption("CustomSongsMaxMegabytes", CustomSongsLoadTimeout, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "20", "30", "1000")); // Machine options ADD( ConfOption( "MenuTimer", MovePref, "Off","On" ) ); @@ -931,6 +965,19 @@ out = names; } +static const char *OptEffectNames[] = { + "SavePreferences", + "ApplyGraphics", + "ApplyTheme", + "ChangeGame", + "ApplySound", + "ApplySong", + "ApplyAspectRatio" +}; +XToString( OptEffect ); +StringToX( OptEffect ); +LuaXType( OptEffect ); + /** * @file * @author Glenn Maynard (c) 2003-2004 diff -Nru stepmania-5.0.12+dfsg/src/ScreenOptionsMasterPrefs.h stepmania-5.1.0+dfsg/src/ScreenOptionsMasterPrefs.h --- stepmania-5.0.12+dfsg/src/ScreenOptionsMasterPrefs.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenOptionsMasterPrefs.h 2018-01-25 05:01:07.000000000 +0000 @@ -1,14 +1,24 @@ #ifndef SCREEN_OPTIONS_MASTER_PREFS_H #define SCREEN_OPTIONS_MASTER_PREFS_H +#include "EnumHelper.h" + static const int MAX_OPTIONS=16; -#define OPT_SAVE_PREFERENCES (1<<0) -#define OPT_APPLY_GRAPHICS (1<<1) -#define OPT_APPLY_THEME (1<<2) -#define OPT_CHANGE_GAME (1<<3) -#define OPT_APPLY_SOUND (1<<4) -#define OPT_APPLY_SONG (1<<5) -#define OPT_APPLY_ASPECT_RATIO (1<<6) +enum OptEffect +{ + OPT_SAVE_PREFERENCES = (1<<0), + OPT_APPLY_GRAPHICS = (1<<1), + OPT_APPLY_THEME = (1<<2), + OPT_CHANGE_GAME = (1<<3), + OPT_APPLY_SOUND = (1<<4), + OPT_APPLY_SONG = (1<<5), + OPT_APPLY_ASPECT_RATIO = (1<<6), + NUM_OptEffect = 7, + OptEffect_Invalid = MAX_OPTIONS+1 +}; +const RString& OptEffectToString( OptEffect e ); +OptEffect StringToOptEffect( const std::string &e ); +LuaDeclareType( OptEffect ); struct ConfOption { diff -Nru stepmania-5.0.12+dfsg/src/ScreenSelectMaster.cpp stepmania-5.1.0+dfsg/src/ScreenSelectMaster.cpp --- stepmania-5.0.12+dfsg/src/ScreenSelectMaster.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenSelectMaster.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -684,7 +684,7 @@ FOREACH( PlayerNumber, vpns, p ) { - if( GAMESTATE->IsHumanPlayer(*p) ) + if( GAMESTATE->IsHumanPlayer(*p) || SHARED_SELECTION ) { if( SHOW_CURSOR ) { @@ -787,8 +787,11 @@ { if( GAMESTATE->IsHumanPlayer(*p) ) { - m_sprCursor[*p]->PlayCommand( "Change" ); - m_sprCursor[*p]->SetXY( GetCursorX(*p), GetCursorY(*p) ); + PlayerNumber ep = *p; + if( SHARED_SELECTION ) + ep = PLAYER_1; + m_sprCursor[ep]->PlayCommand( "Change" ); + m_sprCursor[ep]->SetXY( GetCursorX(*p), GetCursorY(*p) ); } } @@ -1039,7 +1042,7 @@ { FOREACH( PlayerNumber, vpns, p ) { - if( GAMESTATE->IsHumanPlayer(*p) ) + if( GAMESTATE->IsHumanPlayer(*p) || SHARED_SELECTION ) m_sprCursor[*p]->SetXY( GetCursorX(*p), GetCursorY(*p) ); } } diff -Nru stepmania-5.0.12+dfsg/src/ScreenSelectMusic.cpp stepmania-5.1.0+dfsg/src/ScreenSelectMusic.cpp --- stepmania-5.0.12+dfsg/src/ScreenSelectMusic.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ScreenSelectMusic.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -25,8 +25,7 @@ #include "Style.h" #include "PlayerState.h" #include "CommonMetrics.h" -#include "BannerCache.h" -//#include "BackgroundCache.h" +#include "ImageCache.h" #include "ScreenPrompt.h" #include "Song.h" #include "InputEventPlus.h" @@ -147,7 +146,7 @@ m_TexturePreload.Load( m_sFallbackCDTitlePath ); // load banners - if( PREFSMAN->m_BannerCache != BNCACHE_OFF ) + if (PREFSMAN->m_ImageCache != IMGCACHE_OFF) { m_TexturePreload.Load( Banner::SongBannerTexture(THEME->GetPathG("Banner","all music")) ); m_TexturePreload.Load( Banner::SongBannerTexture(THEME->GetPathG("Common","fallback banner")) ); @@ -155,23 +154,9 @@ m_TexturePreload.Load( Banner::SongBannerTexture(THEME->GetPathG("Banner","random")) ); m_TexturePreload.Load( Banner::SongBannerTexture(THEME->GetPathG("Banner","mode")) ); } - // load backgrounds - /* - if( PREFSMAN->m_BackgroundCache != BGCACHE_OFF ) - { - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","AllMusic")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("Common","fallback banner")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","roulette")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","random")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","Mode")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","group fallback")) ); - m_TexturePreload.Load( Sprite::SongBGTexture(THEME->GetPathG("SongBackgroundItem","course fallback")) ); - } - */ // Load low-res banners and backgrounds if needed. - BANNERCACHE->Demand(); - //BACKGROUNDCACHE->Demand(); + IMAGECACHE->Demand("Banner"); m_MusicWheel.SetName( "MusicWheel" ); m_MusicWheel.Load( MUSIC_WHEEL_TYPE ); @@ -299,8 +284,7 @@ ScreenSelectMusic::~ScreenSelectMusic() { LOG->Trace( "ScreenSelectMusic::~ScreenSelectMusic()" ); - BANNERCACHE->Undemand(); - //BACKGROUNDCACHE->Undemand(); + IMAGECACHE->Undemand("Banner"); } // If bForce is true, the next request will be started even if it might cause a skip. @@ -1498,6 +1482,7 @@ // Now that Steps have been chosen, set a Style that can play them. GAMESTATE->SetCompatibleStylesForPlayers(); GAMESTATE->ForceSharedSidesMatch(); + GAMESTATE->prepare_song_for_gameplay(); /* If we're currently waiting on song assets, abort all except the music * and start the music, so if we make a choice quickly before background @@ -1900,6 +1885,21 @@ if(pStyle == NULL) { lCourse->GetAllTrails(m_vpTrails); + vector::iterator tra= m_vpTrails.begin(); + Game const* cur_game= GAMESTATE->GetCurrentGame(); + int num_players= GAMESTATE->GetNumPlayersEnabled(); + while(tra != m_vpTrails.end()) + { + if(GAMEMAN->GetFirstCompatibleStyle(cur_game, num_players, + (*tra)->m_StepsType) == NULL) + { + tra= m_vpTrails.erase(tra); + } + else + { + ++tra; + } + } } else { diff -Nru stepmania-5.0.12+dfsg/src/SongCacheIndex.cpp stepmania-5.1.0+dfsg/src/SongCacheIndex.cpp --- stepmania-5.0.12+dfsg/src/SongCacheIndex.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/SongCacheIndex.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -6,6 +6,7 @@ #include "RageFileManager.h" #include "Song.h" #include "SpecialFiles.h" +#include "CommonMetrics.h" /* * A quick explanation of song cache hashes: Each song has two hashes; a hash of the @@ -92,10 +93,13 @@ LOG->Trace( "Cache format is out of date. Deleting all cache files." ); EmptyDir( SpecialFiles::CACHE_DIR ); - EmptyDir( SpecialFiles::CACHE_DIR+"Banners/" ); - //EmptyDir( SpecialFiles::CACHE_DIR+"Backgrounds/" ); EmptyDir( SpecialFiles::CACHE_DIR+"Songs/" ); EmptyDir( SpecialFiles::CACHE_DIR+"Courses/" ); + + vector ImageDir; + split( CommonMetrics::IMAGES_TO_CACHE, ",", ImageDir ); + for( unsigned c=0; c #include #include +//-Nick12 Used for song file hashing +#include /** * @brief The internal version of the cache for StepMania. @@ -86,6 +90,7 @@ m_bHasBanner = false; m_bHasBackground = false; m_loaded_from_autosave= false; + split( CommonMetrics::IMAGES_TO_CACHE, ",", ImageDir ); } Song::~Song() @@ -269,7 +274,7 @@ * HasMusic(), HasBanner() or GetHashForDirectory(). * If true, check the directory hash and reload the song from scratch if it's changed. */ -bool Song::LoadFromSongDir( RString sDir, bool load_autosave ) +bool Song::LoadFromSongDir(RString sDir, bool load_autosave, ProfileSlot from_profile) { // LOG->Trace( "Song::LoadFromSongDir(%s)", sDir.c_str() ); ASSERT_M( sDir != "", "Songs can't be loaded from an empty directory!" ); @@ -281,26 +286,40 @@ // save song dir m_sSongDir = sDir; + bool use_cache = true; + // save group name - vector sDirectoryParts; - split( m_sSongDir, "/", sDirectoryParts, false ); - ASSERT( sDirectoryParts.size() >= 4 ); /* e.g. "/Songs/Slow/Taps/" */ - m_sGroupName = sDirectoryParts[sDirectoryParts.size()-3]; // second from last item - ASSERT( m_sGroupName != "" ); - - // First, look in the cache for this song (without loading NoteData) - unsigned uCacheHash = SONGINDEX->GetCacheHash(m_sSongDir); - bool bUseCache = true; - RString sCacheFilePath = GetCacheFilePath(); - - if( !DoesFileExist(sCacheFilePath) ) - { bUseCache = false; } - else if(!PREFSMAN->m_bFastLoad && GetHashForDirectory(m_sSongDir) != uCacheHash) - { bUseCache = false; } // this cache is out of date - else if(load_autosave) - { bUseCache= false; } + if(from_profile == ProfileSlot_Invalid) + { + vector sDirectoryParts; + split( m_sSongDir, "/", sDirectoryParts, false ); + ASSERT( sDirectoryParts.size() >= 4 ); /* e.g. "/Songs/Slow/Taps/" */ + m_sGroupName = sDirectoryParts[sDirectoryParts.size()-3]; // second from last item + ASSERT( m_sGroupName != "" ); + } + else + { + m_LoadedFromProfile= from_profile; + m_sGroupName= PROFILEMAN->GetProfile(from_profile)->m_sDisplayName; + use_cache= false; + } + + RString cache_file_path; + if(m_LoadedFromProfile == ProfileSlot_Invalid) + { + // First, look in the cache for this song (without loading NoteData) + unsigned uCacheHash = SONGINDEX->GetCacheHash(m_sSongDir); + cache_file_path = GetCacheFilePath(); - if( bUseCache ) + if( !DoesFileExist(cache_file_path) ) + { use_cache = false; } + else if(!PREFSMAN->m_bFastLoad && GetHashForDirectory(m_sSongDir) != uCacheHash) + { use_cache = false; } // this cache is out of date + else if(load_autosave) + { use_cache= false; } + } + + if(use_cache) { /* LOG->Trace("Loading '%s' from cache file '%s'.", @@ -308,12 +327,12 @@ GetCacheFilePath().c_str()); */ SSCLoader loaderSSC; - bool bLoadedFromSSC = loaderSSC.LoadFromSimfile( sCacheFilePath, *this, true ); + bool bLoadedFromSSC = loaderSSC.LoadFromSimfile( cache_file_path, *this, true ); if( !bLoadedFromSSC ) { // load from .sm SMLoader loaderSM; - loaderSM.LoadFromSimfile( sCacheFilePath, *this, true ); + loaderSM.LoadFromSimfile( cache_file_path, *this, true ); loaderSM.TidyUpData( *this, true ); } if(m_sMainTitle == "" || (m_sMusicFile == "" && m_vsKeysoundFile.empty())) @@ -333,13 +352,12 @@ { LOG->UserLog( "Song", sDir, "has no SSC, SM, SMA, DWI, BMS, or KSF files." ); - vector vs; - GetDirListing( sDir + "*.mp3", vs, false, false ); - GetDirListing( sDir + "*.oga", vs, false, false ); - GetDirListing( sDir + "*.ogg", vs, false, false ); - bool bHasMusic = !vs.empty(); + vector audios; + FILEMAN->GetDirListingWithMultipleExtensions(sDir, + ActorUtil::GetTypeExtensionList(FT_Sound), audios); + bool has_music = !audios.empty(); - if( !bHasMusic ) + if(!has_music) { LOG->UserLog( "Song", sDir, "has no music file either. Ignoring this song directory." ); return false; @@ -359,29 +377,65 @@ // Don't save a cache file if the autosave is being loaded, because the // cache file would contain the autosave filename. -Kyz - if(!load_autosave) + // Songs loaded from removable profile are never cached, on the + // assumption that they'll change frequently and have invalid cache + // entries. -Kyz + if(!load_autosave && m_LoadedFromProfile == ProfileSlot_Invalid) { // save a cache file so we don't have to parse it all over again next time if(!SaveToCacheFile()) - { sCacheFilePath = RString(); } + { cache_file_path = RString(); } + } + } + + if(m_LoadedFromProfile != ProfileSlot_Invalid) + { + if(m_fMusicLengthSeconds > PREFSMAN->m_custom_songs_max_seconds) + { + LOG->Trace("Custom song %s is too long.", m_sSongDir.c_str()); + return false; } + RageFile music; + if(!music.Open(GetMusicPath(), RageFile::READ)) + { + LOG->Trace("Custom song %s could not open music.", m_sSongDir.c_str()); + return false; + } + if(music.GetFileSize() > PREFSMAN->m_custom_songs_max_megabytes * 1000000) + { + LOG->Trace("Custom song %s music file is too big.", m_sSongDir.c_str()); + return false; + } + m_pre_customify_song_dir= m_sSongDir; + m_sSongDir= custom_songify_path(m_sSongDir); + m_sBannerFile.clear(); + m_sJacketFile.clear(); + m_sCDFile.clear(); + m_sDiscFile.clear(); + m_sLyricsFile.clear(); + m_sBackgroundFile.clear(); + m_sCDTitleFile.clear(); } FOREACH( Steps*, m_vpSteps, s ) { + if(m_LoadedFromProfile != ProfileSlot_Invalid) + { + (*s)->ChangeFilenamesForCustomSong(); + } /* Compress all Steps. During initial caching, this will remove cached * NoteData; during cached loads, this will just remove cached SMData. */ (*s)->Compress(); } - // Load the cached banners, if it's not loaded already. - if( PREFSMAN->m_BannerCache == BNCACHE_LOW_RES_PRELOAD && m_bHasBanner ) - BANNERCACHE->LoadBanner( GetBannerPath() ); - // Load the cached background, if it's not loaded already. - /* - if( PREFSMAN->m_BackgroundCache == BGCACHE_LOW_RES_PRELOAD && m_bHasBackground ) - BACKGROUNDCACHE->LoadBackground( GetBackgroundPath() ); - */ + // Load the cached Images, if it's not loaded already. + if( PREFSMAN->m_ImageCache == IMGCACHE_LOW_RES_PRELOAD ) + { + for( RString Image : ImageDir ) + { + IMAGECACHE->LoadImage( Image, GetCacheFile( Image ) ); + } + } // Add AutoGen pointers. (These aren't cached.) AddAutoGenNotes(); @@ -625,12 +679,10 @@ m_bHasBanner = HasBanner(); m_bHasBackground = HasBackground(); - if(m_bHasBanner) - { BANNERCACHE->CacheBanner(GetBannerPath()); } - /* - if(m_bHasBackground) - { BANNERCACHE->CacheBackground(GetBackgroundPath()); } - */ + for( RString Image : ImageDir ) + { + IMAGECACHE->LoadImage( Image, GetCacheFile( Image ) ); + } // There are several things that need to find a file from the dir with a // particular extension or type of extension. So fetch a list of all @@ -651,10 +703,15 @@ fill_exts.reserve(4); lists_to_fill.push_back(&music_list); fill_exts.push_back(&ActorUtil::GetTypeExtensionList(FT_Sound)); - lists_to_fill.push_back(&image_list); - fill_exts.push_back(&ActorUtil::GetTypeExtensionList(FT_Bitmap)); - lists_to_fill.push_back(&movie_list); - fill_exts.push_back(&ActorUtil::GetTypeExtensionList(FT_Movie)); + // Disable bg and banner images and movies for custom songs. Loading + // them takes too long. -Kyz + if(m_LoadedFromProfile == ProfileSlot_Invalid) + { + lists_to_fill.push_back(&image_list); + fill_exts.push_back(&ActorUtil::GetTypeExtensionList(FT_Bitmap)); + lists_to_fill.push_back(&movie_list); + fill_exts.push_back(&ActorUtil::GetTypeExtensionList(FT_Movie)); + } lists_to_fill.push_back(&lyric_list); fill_exts.push_back(&lyric_extensions); for(vector::iterator filename= song_dir_listing.begin(); @@ -799,243 +856,247 @@ } - // Here's the problem: We have a directory full of images. We want to - // determine which image is the banner, which is the background, and - // which is the CDTitle. + if(!HasLyrics()) + { + // Check if there is a lyric file in here + if(!lyric_list.empty()) + { + m_sLyricsFile= lyric_list[0]; + } + } - // For blank args to FindFirstFilenameContaining. -Kyz - vector empty_list; + // Since banner, bg, and cdtitle are disabled for custom songs, don't try + // to find them. -Kyz + if(m_LoadedFromProfile == ProfileSlot_Invalid) + { + // Here's the problem: We have a directory full of images. We want to + // determine which image is the banner, which is the background, and + // which is the CDTitle. - bool has_jacket= HasJacket(); - bool has_cdimage= HasCDImage(); - bool has_disc= HasDisc(); - bool has_cdtitle= HasCDTitle(); + // For blank args to FindFirstFilenameContaining. -Kyz + vector empty_list; - // First, check the file name for hints. - if(!m_bHasBanner) - { - /* If a nonexistant banner file is specified, and we can't find a - * replacement, don't wipe out the old value. */ - //m_sBannerFile = ""; + bool has_jacket= HasJacket(); + bool has_cdimage= HasCDImage(); + bool has_disc= HasDisc(); + bool has_cdtitle= HasCDTitle(); - // find an image with "banner" in the file name - vector contains(1, "banner"); - /* Some people do things differently for the sake of being different. - * Don't match eg. abnormal, numbness. */ - vector ends_with(1, " bn"); - m_bHasBanner= FindFirstFilenameContaining(image_list, - m_sBannerFile, empty_list, contains, ends_with); - } + // First, check the file name for hints. + if(!m_bHasBanner) + { + /* If a nonexistant banner file is specified, and we can't find a + * replacement, don't wipe out the old value. */ + //m_sBannerFile = ""; - if(!m_bHasBackground) - { - //m_sBackgroundFile = ""; + // find an image with "banner" in the file name + vector contains(1, "banner"); + /* Some people do things differently for the sake of being different. + * Don't match eg. abnormal, numbness. */ + vector ends_with(1, " bn"); + m_bHasBanner= FindFirstFilenameContaining(image_list, + m_sBannerFile, empty_list, contains, ends_with); + } - // find an image with "bg" or "background" in the file name - vector contains(1, "background"); - vector ends_with(1, "bg"); - m_bHasBackground= FindFirstFilenameContaining(image_list, - m_sBackgroundFile, empty_list, contains, ends_with); - } + if(!m_bHasBackground) + { + //m_sBackgroundFile = ""; - if(!has_jacket) - { - // find an image with "jacket" or "albumart" in the filename. - vector starts_with(1, "jk_"); - vector contains; - contains.reserve(2); - contains.push_back("jacket"); - contains.push_back("albumart"); - has_jacket= FindFirstFilenameContaining(image_list, - m_sJacketFile, starts_with, contains, empty_list); - } + // find an image with "bg" or "background" in the file name + vector contains(1, "background"); + vector ends_with(1, "bg"); + m_bHasBackground= FindFirstFilenameContaining(image_list, + m_sBackgroundFile, empty_list, contains, ends_with); + } - if(!has_cdimage) - { - // CD image, a la ddr 1st-3rd (not to be confused with CDTitles) - // find an image with "-cd" at the end of the filename. - vector ends_with(1, "-cd"); - has_cdimage= FindFirstFilenameContaining(image_list, - m_sCDFile, empty_list, empty_list, ends_with); - } + if(!has_jacket) + { + // find an image with "jacket" or "albumart" in the filename. + vector starts_with(1, "jk_"); + vector contains; + contains.reserve(2); + contains.push_back("jacket"); + contains.push_back("albumart"); + has_jacket= FindFirstFilenameContaining(image_list, + m_sJacketFile, starts_with, contains, empty_list); + } - if(!has_disc) - { - // a rectangular graphic, not to be confused with CDImage above. - vector ends_with; - ends_with.reserve(2); - ends_with.push_back(" disc"); - ends_with.push_back(" title"); - has_disc= FindFirstFilenameContaining(image_list, - m_sDiscFile, empty_list, empty_list, ends_with); - } + if(!has_cdimage) + { + // CD image, a la ddr 1st-3rd (not to be confused with CDTitles) + // find an image with "-cd" at the end of the filename. + vector ends_with(1, "-cd"); + has_cdimage= FindFirstFilenameContaining(image_list, + m_sCDFile, empty_list, empty_list, ends_with); + } - if(!has_cdtitle) - { - // find an image with "cdtitle" in the file name - vector contains(1, "cdtitle"); - has_cdtitle= FindFirstFilenameContaining(image_list, - m_sCDTitleFile, empty_list, contains, empty_list); - } + if(!has_disc) + { + // a rectangular graphic, not to be confused with CDImage above. + vector ends_with; + ends_with.reserve(2); + ends_with.push_back(" disc"); + ends_with.push_back(" title"); + has_disc= FindFirstFilenameContaining(image_list, + m_sDiscFile, empty_list, empty_list, ends_with); + } - if(!HasLyrics()) - { - // Check if there is a lyric file in here - if(!lyric_list.empty()) + if(!has_cdtitle) { - m_sLyricsFile= lyric_list[0]; + // find an image with "cdtitle" in the file name + vector contains(1, "cdtitle"); + has_cdtitle= FindFirstFilenameContaining(image_list, + m_sCDTitleFile, empty_list, contains, empty_list); } - } - /* Now, For the images we still haven't found, - * look at the image dimensions of the remaining unclassified images. */ - for(unsigned int i= 0; i < image_list.size(); ++i) // foreach image - { - if(m_bHasBanner && m_bHasBackground && has_cdtitle) + /* Now, For the images we still haven't found, + * look at the image dimensions of the remaining unclassified images. */ + for(unsigned int i= 0; i < image_list.size(); ++i) // foreach image + { + if(m_bHasBanner && m_bHasBackground && has_cdtitle) break; // done - // ignore DWI "-char" graphics - RString lower = image_list[i]; - lower.MakeLower(); - if(BlacklistedImages.find(lower) != BlacklistedImages.end()) + // ignore DWI "-char" graphics + RString lower = image_list[i]; + lower.MakeLower(); + if(BlacklistedImages.find(lower) != BlacklistedImages.end()) continue; // skip - // Skip any image that we've already classified + // Skip any image that we've already classified - if(m_bHasBanner && m_sBannerFile.EqualsNoCase(image_list[i])) + if(m_bHasBanner && m_sBannerFile.EqualsNoCase(image_list[i])) continue; // skip - if(m_bHasBackground && m_sBackgroundFile.EqualsNoCase(image_list[i])) + if(m_bHasBackground && m_sBackgroundFile.EqualsNoCase(image_list[i])) continue; // skip - if(has_cdtitle && m_sCDTitleFile.EqualsNoCase(image_list[i])) + if(has_cdtitle && m_sCDTitleFile.EqualsNoCase(image_list[i])) continue; // skip - if(has_jacket && m_sJacketFile.EqualsNoCase(image_list[i])) + if(has_jacket && m_sJacketFile.EqualsNoCase(image_list[i])) continue; // skip - if(has_disc && m_sDiscFile.EqualsNoCase(image_list[i])) + if(has_disc && m_sDiscFile.EqualsNoCase(image_list[i])) continue; // skip - if(has_cdimage && m_sCDFile.EqualsNoCase(image_list[i])) + if(has_cdimage && m_sCDFile.EqualsNoCase(image_list[i])) continue; // skip - RString sPath = m_sSongDir + image_list[i]; + RString sPath = m_sSongDir + image_list[i]; - // We only care about the dimensions. - RString error; - RageSurface *img = RageSurfaceUtils::LoadFile(sPath, error, true); - if(!img) - { - LOG->UserLog("Graphic file", sPath, "couldn't be loaded: %s", error.c_str()); - continue; - } + // We only care about the dimensions. + RString error; + RageSurface *img = RageSurfaceUtils::LoadFile(sPath, error, true); + if(!img) + { + LOG->UserLog("Graphic file", sPath, "couldn't be loaded: %s", error.c_str()); + continue; + } - const int width = img->w; - const int height = img->h; - delete img; + const int width = img->w; + const int height = img->h; + delete img; - if(!m_bHasBackground && width >= 320 && height >= 240) - { - m_sBackgroundFile = image_list[i]; - m_bHasBackground= true; - continue; - } + if(!m_bHasBackground && width >= 320 && height >= 240) + { + m_sBackgroundFile = image_list[i]; + m_bHasBackground= true; + continue; + } - if(!m_bHasBanner && 100 <= width && width <= 320 && - 50 <= height && height <= 240) - { - m_sBannerFile = image_list[i]; - m_bHasBanner= true; - continue; - } + if(!m_bHasBanner && 100 <= width && width <= 320 && + 50 <= height && height <= 240) + { + m_sBannerFile = image_list[i]; + m_bHasBanner= true; + continue; + } - /* Some songs have overlarge banners. Check if the ratio is reasonable - * (over 2:1; usually over 3:1), and large (not a cdtitle). */ - if(!m_bHasBanner && width > 200 && float(width) / height > 2.0f) - { - m_sBannerFile = image_list[i]; - m_bHasBanner= true; - continue; - } + /* Some songs have overlarge banners. Check if the ratio is reasonable + * (over 2:1; usually over 3:1), and large (not a cdtitle). */ + if(!m_bHasBanner && width > 200 && float(width) / height > 2.0f) + { + m_sBannerFile = image_list[i]; + m_bHasBanner= true; + continue; + } - /* Agh. DWI's inline title images are triggering this, resulting in - * kanji, etc., being used as a CDTitle for songs with none. Some - * sample data from random incarnations: - * 42x50 35x50 50x50 144x49 - * It looks like ~50 height is what people use to align to DWI's font. - * - * My tallest CDTitle is 44. Let's cut off in the middle and hope for - * the best. -(who? -aj) */ - /* The proper size of a CDTitle is 64x48 or sometihng. Simfile artists - * typically don't give a shit about this (see Cetaka's fucking banner - * -sized CDTitle). This is also subverted in certain designs (beta - * Mungyodance 3 simfiles, for instance, used the CDTitle to hold - * various information about the song in question). As it stands, - * I'm keeping this code until I figure out wtf to do -aj - */ - if(!has_cdtitle && width <= 100 && height <= 48) - { - m_sCDTitleFile = image_list[i]; - has_cdtitle= true; - continue; - } + /* Agh. DWI's inline title images are triggering this, resulting in + * kanji, etc., being used as a CDTitle for songs with none. Some + * sample data from random incarnations: + * 42x50 35x50 50x50 144x49 + * It looks like ~50 height is what people use to align to DWI's font. + * + * My tallest CDTitle is 44. Let's cut off in the middle and hope for + * the best. -(who? -aj) */ + /* The proper size of a CDTitle is 64x48 or sometihng. Simfile artists + * typically don't give a shit about this (see Cetaka's fucking banner + * -sized CDTitle). This is also subverted in certain designs (beta + * Mungyodance 3 simfiles, for instance, used the CDTitle to hold + * various information about the song in question). As it stands, + * I'm keeping this code until I figure out wtf to do -aj + */ + if(!has_cdtitle && width <= 100 && height <= 48) + { + m_sCDTitleFile = image_list[i]; + has_cdtitle= true; + continue; + } - // Jacket files typically have the same width and height. - if(!has_jacket && width == height) - { - m_sJacketFile = image_list[i]; - has_jacket= true; - continue; - } + // Jacket files typically have the same width and height. + if(!has_jacket && width == height) + { + m_sJacketFile = image_list[i]; + has_jacket= true; + continue; + } - // Disc images are typically rectangular; make sure we have a banner already. - if(!has_disc && (width > height) && m_bHasBanner) - { - if(image_list[i] != m_sBannerFile) + // Disc images are typically rectangular; make sure we have a banner already. + if(!has_disc && (width > height) && m_bHasBanner) { - m_sDiscFile = image_list[i]; - has_disc= true; + if(image_list[i] != m_sBannerFile) + { + m_sDiscFile = image_list[i]; + has_disc= true; + } + continue; } - continue; - } - // CD images are the same as Jackets, typically the same width and height - if(!has_cdimage && width == height) - { - m_sCDFile = image_list[i]; - has_cdimage= true; - continue; + // CD images are the same as Jackets, typically the same width and height + if(!has_cdimage && width == height) + { + m_sCDFile = image_list[i]; + has_cdimage= true; + continue; + } } - } - // If no BGChanges are specified and there are movies in the song - // directory, then assume they are DWI style where the movie begins at - // beat 0. - if(!HasBGChanges()) - { - /* Use this->GetBeatFromElapsedTime(0) instead of 0 to start when the - * music starts. */ - if(movie_list.size() == 1) - { - this->AddBackgroundChange(BACKGROUND_LAYER_1, - BackgroundChange(0, movie_list[0], "", 1.f, - SBE_StretchNoLoop)); + // If no BGChanges are specified and there are movies in the song + // directory, then assume they are DWI style where the movie begins at + // beat 0. + if(!HasBGChanges()) + { + /* Use this->GetBeatFromElapsedTime(0) instead of 0 to start when the + * music starts. */ + if(movie_list.size() == 1) + { + this->AddBackgroundChange(BACKGROUND_LAYER_1, + BackgroundChange(0, movie_list[0], "", 1.f, + SBE_StretchNoLoop)); + } } + // Clear fields for files that turned out to not exist. +#define CLEAR_NOT_HAS(has_name, field_name) if(!has_name) { field_name= ""; } + CLEAR_NOT_HAS(m_bHasBanner, m_sBannerFile); + CLEAR_NOT_HAS(m_bHasBackground, m_sBackgroundFile); + CLEAR_NOT_HAS(has_jacket, m_sJacketFile); + CLEAR_NOT_HAS(has_cdimage, m_sCDFile); + CLEAR_NOT_HAS(has_disc, m_sDiscFile); + CLEAR_NOT_HAS(has_cdtitle, m_sCDTitleFile); +#undef CLEAR_NOT_HAS } // Don't allow multiple Steps of the same StepsType and Difficulty // (except for edits). We should be able to use difficulty names as // unique identifiers for steps. */ SongUtil::AdjustDuplicateSteps(this); - - // Clear fields for files that turned out to not exist. -#define CLEAR_NOT_HAS(has_name, field_name) if(!has_name) { field_name= ""; } - CLEAR_NOT_HAS(m_bHasBanner, m_sBannerFile); - CLEAR_NOT_HAS(m_bHasBackground, m_sBackgroundFile); - CLEAR_NOT_HAS(has_jacket, m_sJacketFile); - CLEAR_NOT_HAS(has_cdimage, m_sCDFile); - CLEAR_NOT_HAS(has_disc, m_sDiscFile); - CLEAR_NOT_HAS(has_cdtitle, m_sCDTitleFile); -#undef CLEAR_NOT_HAS } /* Generate these before we autogen notes, so the new notes can inherit @@ -1592,6 +1653,99 @@ return this->GetChangesToVectorString(this->GetForegroundChanges()); } +// We want to return a filename, We use this function for that. +RString Song::GetCacheFile(RString sType) +{ + // We put the Predefined images into a map. + map< RString, RString > PreDefs; + PreDefs["Banner"] = GetBannerPath(); + PreDefs["Background"] = GetBackgroundPath(); + PreDefs["CDTitle"] = GetCDTitlePath(); + PreDefs["Jacket"] = GetJacketPath(); + PreDefs["CDImage"] = GetCDImagePath(); + PreDefs["Disc"] = GetDiscPath(); + + // Check if Predefined images exist, And return function if they do. + if(PreDefs[sType.c_str()]) + return PreDefs[sType.c_str()]; + + // Get all image files and put them into a vector. + vector song_dir_listing; + FILEMAN->GetDirListing(m_sSongDir + "*", song_dir_listing, false, false); + vector image_list; + vector fill_exts = ActorUtil::GetTypeExtensionList(FT_Bitmap); + for( RString Image : song_dir_listing ) + { + RString FileExt = GetExtension(Image); + transform(FileExt.begin(), FileExt.end(), FileExt.begin(),::tolower); + for ( RString FindExt : fill_exts ) + { + if(FileExt == FindExt) + image_list.push_back(Image); + } + } + + // Create a map that contains all the filenames to search for. + map > PreSets; + PreSets["Banner"][1] = "bn"; + PreSets["Banner"][2] = "banner"; + PreSets["Background"][1] = "bg"; + PreSets["Background"][2] = "background"; + PreSets["CDTitle"][1] = "cdtitle"; + PreSets["Jacket"][1] = "jk_"; + PreSets["Jacket"][2] = "jacket"; + PreSets["Jacket"][3] = "albumart"; + PreSets["CDImage"][1] = "-cd"; + PreSets["Disc"][1] = " disc"; + PreSets["Disc"][2] = " title"; + + for( RString Image : image_list) + { + // We want to make it lower case. + transform(Image.begin(), Image.end(), Image.begin(),::tolower); + for( pair< const int, RString> PreSet : PreSets[sType.c_str()] ) + { + // Search for image using PreSets. + size_t Found = Image.find(PreSet.second.c_str()); + if(Found!=RString::npos) + return GetSongAssetPath( Image, m_sSongDir ); + } + // Search for the image directly if it doesnt exist in PreSets, + // Or incase we define our own stuff. + size_t Found = Image.find(sType.c_str()); + if(Found!=RString::npos) + return GetSongAssetPath( Image, m_sSongDir ); + } + // Return empty if nothing found. + return ""; +} + +RString Song::GetFileHash() +{ + if (m_sFileHash.empty()) { + RString sPath = SetExtension(GetSongFilePath(), "sm"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "dwi"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "sma"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "bms"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "ksf"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "json"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "jso"); + if (!IsAFile(sPath)) + sPath = SetExtension(GetSongFilePath(), "ssc"); + if (IsAFile(sPath)) + m_sFileHash = BinaryToHex(CRYPTMAN->GetSHA1ForFile(sPath)); + else + m_sFileHash = ""; + } + return m_sFileHash; +} + vector Song::GetInstrumentTracksToVectorString() const { vector ret; @@ -2112,6 +2266,11 @@ lua_pushboolean(L, p->GetEnabled()); return 1; } + static int IsCustomSong(T* p, lua_State* L) + { + lua_pushboolean(L, p->m_LoadedFromProfile != ProfileSlot_Invalid); + return 1; + } static int GetGroupName( T* p, lua_State *L ) { lua_pushstring(L, p->m_sGroupName); @@ -2334,6 +2493,7 @@ ADD_METHOD( GetSongFilePath ); ADD_METHOD( IsTutorial ); ADD_METHOD( IsEnabled ); + ADD_METHOD(IsCustomSong); ADD_METHOD( GetGroupName ); ADD_METHOD( MusicLengthSeconds ); ADD_METHOD( GetSampleStart ); diff -Nru stepmania-5.0.12+dfsg/src/Song.h stepmania-5.1.0+dfsg/src/Song.h --- stepmania-5.0.12+dfsg/src/Song.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Song.h 2018-01-25 05:01:07.000000000 +0000 @@ -66,9 +66,11 @@ class Song { RString m_sSongDir; + RString m_pre_customify_song_dir; public: void SetSongDir( const RString sDir ) { m_sSongDir = sDir; } RString GetSongDir() { return m_sSongDir; } + RString GetPreCustomifyDir() { return m_pre_customify_song_dir; } /** @brief When should this song be displayed in the music wheel? */ enum SelectionDisplay @@ -87,7 +89,8 @@ * * This assumes that there is no song present right now. * @param sDir the song directory from which to load. */ - bool LoadFromSongDir( RString sDir, bool load_autosave= false ); + bool LoadFromSongDir(RString sDir, bool load_autosave= false, + ProfileSlot from_profile= ProfileSlot_Invalid); // This one takes the effort to reuse Steps pointers as best as it can bool ReloadFromSongDir( RString sDir ); bool ReloadFromSongDir() { return ReloadFromSongDir(GetSongDir()); } @@ -188,6 +191,9 @@ /** @brief The transliterated artist of the Song, if it exists. */ RString m_sArtistTranslit; + RString m_sFileHash; + RString GetFileHash(); + /* If PREFSMAN->m_bShowNative is off, these are the same as GetTranslit* * below. Otherwise, they return the main titles. */ RString GetDisplayMainTitle() const; @@ -254,6 +260,7 @@ RString m_sBackgroundFile; RString m_sCDTitleFile; RString m_sPreviewVidFile; + vector ImageDir; AttackArray m_Attacks; vector m_sAttackString; @@ -271,6 +278,8 @@ RString GetPreviewVidPath() const; RString GetPreviewMusicPath() const; float GetPreviewStartSeconds() const; + + RString GetCacheFile( RString sPath ); // For loading only: bool m_bHasMusic, m_bHasBanner, m_bHasBackground; diff -Nru stepmania-5.0.12+dfsg/src/SongManager.cpp stepmania-5.1.0+dfsg/src/SongManager.cpp --- stepmania-5.0.12+dfsg/src/SongManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/SongManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -4,7 +4,7 @@ #include "ActorUtil.h" #include "AnnouncerManager.h" #include "BackgroundUtil.h" -#include "BannerCache.h" +#include "ImageCache.h" #include "CommonMetrics.h" #include "Course.h" #include "CourseLoaderCRS.h" @@ -60,6 +60,7 @@ RString SONG_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "SongGroupColor%i", (int) i+1 ); } RString COURSE_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "CourseGroupColor%i", (int) i+1 ); } +RString profile_song_group_color_name(size_t i) { return ssprintf("ProfileSongGroupColor%i", (int)i+1); } static const float next_loading_window_update= 0.02f; @@ -78,6 +79,8 @@ SONG_GROUP_COLOR .Load( "SongManager", SONG_GROUP_COLOR_NAME, NUM_SONG_GROUP_COLORS ); NUM_COURSE_GROUP_COLORS .Load( "SongManager", "NumCourseGroupColors" ); COURSE_GROUP_COLOR .Load( "SongManager", COURSE_GROUP_COLOR_NAME, NUM_COURSE_GROUP_COLORS ); + num_profile_song_group_colors.Load("SongManager", "NumProfileSongGroupColors"); + profile_song_group_colors.Load("SongManager", profile_song_group_color_name, num_profile_song_group_colors); } SongManager::~SongManager() @@ -377,7 +380,7 @@ AddGroup(sDir, sGroupDirName); // Cache and load the group banner. (and background if it has one -aj) - BANNERCACHE->CacheBanner( GetSongGroupBannerPath(sGroupDirName) ); + IMAGECACHE->CacheImage( "Banner", GetSongGroupBannerPath(sGroupDirName) ); // Load the group sym links (if any) LoadGroupSymLinks(sDir, sGroupDirName); @@ -426,7 +429,7 @@ void SongManager::PreloadSongImages() { - if( PREFSMAN->m_BannerCache != BNCACHE_FULL ) + if( PREFSMAN->m_ImageCache != IMGCACHE_FULL ) return; /* Load textures before unloading old ones, so we don't reload textures @@ -545,8 +548,19 @@ return SONG_GROUP_COLOR.GetValue( i%NUM_SONG_GROUP_COLORS ); } } + FOREACH_EnabledPlayer(pn) + { + Profile* prof= PROFILEMAN->GetProfile(pn); + if(prof != NULL) + { + if(prof->GetDisplayNameOrHighScoreName() == sSongGroup) + { + return profile_song_group_colors.GetValue(pn % num_profile_song_group_colors); + } + } + } - ASSERT_M( 0, ssprintf("requested color for song group '%s' that doesn't exist",sSongGroup.c_str()) ); + LuaHelpers::ReportScriptErrorFmt("requested color for song group '%s' that doesn't exist",sSongGroup.c_str()); return RageColor(1,1,1,1); } @@ -711,6 +725,17 @@ map::const_iterator iter = m_mapSongGroupIndex.find( sGroupName ); if ( iter != m_mapSongGroupIndex.end() ) return iter->second; + FOREACH_EnabledPlayer(pn) + { + Profile* prof= PROFILEMAN->GetProfile(pn); + if(prof != NULL) + { + if(prof->GetDisplayNameOrHighScoreName() == sGroupName) + { + return prof->m_songs; + } + } + } return vEmpty; } diff -Nru stepmania-5.0.12+dfsg/src/SongManager.h stepmania-5.1.0+dfsg/src/SongManager.h --- stepmania-5.0.12+dfsg/src/SongManager.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/SongManager.h 2018-01-25 05:01:07.000000000 +0000 @@ -223,6 +223,8 @@ ThemeMetric1D SONG_GROUP_COLOR; ThemeMetric NUM_COURSE_GROUP_COLORS; ThemeMetric1D COURSE_GROUP_COLOR; + ThemeMetric num_profile_song_group_colors; + ThemeMetric1D profile_song_group_colors; }; extern SongManager* SONGMAN; // global and accessible from anywhere in our program diff -Nru stepmania-5.0.12+dfsg/src/SpecialFiles.cpp stepmania-5.1.0+dfsg/src/SpecialFiles.cpp --- stepmania-5.0.12+dfsg/src/SpecialFiles.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/SpecialFiles.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -19,6 +19,8 @@ const RString SpecialFiles::SONGS_DIR = "Songs/"; const RString SpecialFiles::COURSES_DIR = "Courses/"; const RString SpecialFiles::NOTESKINS_DIR = "NoteSkins/"; +const RString SpecialFiles::COINS_INI = "Save/Coin.ini"; + /* diff -Nru stepmania-5.0.12+dfsg/src/SpecialFiles.h stepmania-5.1.0+dfsg/src/SpecialFiles.h --- stepmania-5.0.12+dfsg/src/SpecialFiles.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/SpecialFiles.h 2018-01-25 05:01:07.000000000 +0000 @@ -39,6 +39,9 @@ extern const RString COURSES_DIR; /** @brief The default noteskins directory. */ extern const RString NOTESKINS_DIR; + + extern const RString COINS_INI; + } #endif diff -Nru stepmania-5.0.12+dfsg/src/Sprite.cpp stepmania-5.1.0+dfsg/src/Sprite.cpp --- stepmania-5.0.12+dfsg/src/Sprite.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Sprite.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -14,6 +14,8 @@ #include "Foreach.h" #include "LuaBinding.h" #include "LuaManager.h" +#include "ImageCache.h" +#include "ThemeMetric.h" REGISTER_ACTOR_CLASS( Sprite ); @@ -84,6 +86,31 @@ m_pTexture = NULL; } +Sprite &Sprite::operator=( Sprite other ) +{ + using std::swap; +#define SWAP(a) swap(a, other.a) + SWAP( m_States ); + SWAP(m_animation_length_seconds); + SWAP( m_iCurState ); + SWAP( m_fSecsIntoState ); + SWAP( m_bUsingCustomTexCoords ); + SWAP( m_bUsingCustomPosCoords ); + SWAP( m_bSkipNextUpdate ); + SWAP( m_DecodeMovie ); + SWAP( m_EffectMode ); + memcpy( m_CustomTexCoords, other.m_CustomTexCoords, sizeof(m_CustomTexCoords) ); + memcpy( m_CustomPosCoords, other.m_CustomPosCoords, sizeof(m_CustomPosCoords) ); + SWAP( m_fRememberedClipWidth ); + SWAP( m_fRememberedClipHeight ); + SWAP( m_fTexCoordVelocityX ); + SWAP( m_fTexCoordVelocityY ); + SWAP(m_use_effect_clock_for_texcoords); + SWAP(m_pTexture); +#undef SWAP + return *this; +} + void Sprite::InitState() { Actor::InitState(); @@ -337,6 +364,27 @@ SetTexture( pTexture ); } +void Sprite::LoadFromCached( const RString &sDir, const RString &sPath ) +{ + if( sPath.empty() ) + { + Load( THEME->GetPathG("Common","fallback %s", sDir) ); + return; + } + + RageTextureID ID; + + // Try to load the low quality version. + ID = IMAGECACHE->LoadCachedImage( sDir, sPath ); + + if( TEXTUREMAN->IsTextureRegistered(ID) ) + Load( ID ); + else if( IsAFile(sPath) ) + Load( sPath ); + else + Load( THEME->GetPathG("Common","fallback %s", sDir) ); +} + void Sprite::LoadStatesFromTexture() { // Assume the frames of this animation play in sequential order with 0.1 second delay. @@ -934,7 +982,7 @@ Sprite::ScaleToCover( RectF(0, 0, fWidth, fHeight) ); // find which dimension is larger bool bXDimNeedsToBeCropped = GetZoomedWidth() > fWidth+0.01; - + if( bXDimNeedsToBeCropped ) // crop X { float fPercentageToCutOff = (this->GetZoomedWidth() - fWidth) / this->GetZoomedWidth(); @@ -943,9 +991,9 @@ // generate a rectangle with new texture coordinates RectF fCustomImageRect( - fPercentageToCutOffEachSide, - 0, - 1 - fPercentageToCutOffEachSide, + fPercentageToCutOffEachSide, + 0, + 1 - fPercentageToCutOffEachSide, 1 ); SetCustomImageRect( fCustomImageRect ); } @@ -957,9 +1005,9 @@ // generate a rectangle with new texture coordinates RectF fCustomImageRect( - 0, + 0, fPercentageToCutOffEachSide, - 1, + 1, 1 - fPercentageToCutOffEachSide ); SetCustomImageRect( fCustomImageRect ); } @@ -995,7 +1043,7 @@ Sprite::ScaleToCover( RectF(0, 0, fWidth, fHeight) ); // find which dimension is larger bool bXDimNeedsToBeCropped = GetZoomedWidth() > fWidth+0.01; - + if( bXDimNeedsToBeCropped ) // crop X { float fPercentageToCutOff = (this->GetZoomedWidth() - fWidth) / this->GetZoomedWidth(); @@ -1003,9 +1051,9 @@ // generate a rectangle with new texture coordinates RectF fCustomImageRect( - fPercentageToCutOffEachSide, - 0, - 1 - fPercentageToCutOffEachSide, + fPercentageToCutOffEachSide, + 0, + 1 - fPercentageToCutOffEachSide, 1 ); SetCustomImageRect( fCustomImageRect ); } @@ -1016,9 +1064,9 @@ // generate a rectangle with new texture coordinates RectF fCustomImageRect( - 0, + 0, fPercentageToCutOffEachSide, - 1, + 1, 1 - fPercentageToCutOffEachSide ); SetCustomImageRect( fCustomImageRect ); } @@ -1076,6 +1124,11 @@ else { RageTextureID ID( SArg(1) ); + if(lua_isstring(L, 2)) + { + RString additional_hints= SArg(2); + ID.AdditionalTextureHints= additional_hints; + } p->Load( ID ); } COMMON_RETURN_SELF; @@ -1246,12 +1299,18 @@ p->m_DecodeMovie= BArg(1); COMMON_RETURN_SELF; } + static int LoadFromCached( T* p, lua_State *L ) + { + p->LoadFromCached( SArg(1), SArg(2) ); + COMMON_RETURN_SELF; + } LunaSprite() { ADD_METHOD( Load ); ADD_METHOD( LoadBanner ); ADD_METHOD( LoadBackground ); + ADD_METHOD( LoadFromCached ); ADD_METHOD( customtexturerect ); ADD_METHOD( SetCustomImageRect ); ADD_METHOD( SetCustomPosCoords ); diff -Nru stepmania-5.0.12+dfsg/src/Sprite.h stepmania-5.1.0+dfsg/src/Sprite.h --- stepmania-5.0.12+dfsg/src/Sprite.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Sprite.h 2018-01-25 05:01:07.000000000 +0000 @@ -21,6 +21,7 @@ Sprite(); Sprite( const Sprite &cpy ); + Sprite &operator=( Sprite other ); virtual ~Sprite(); // See explanation in source. @@ -77,6 +78,8 @@ void AddImageCoords( float fX, float fY ); // in image pixel space void SetEffectMode( EffectMode em ) { m_EffectMode = em; } + void LoadFromCached( const RString &sDir, const RString &sPath ); + void SetTexCoordVelocity(float fVelX, float fVelY); /** * @brief Scale the Sprite while maintaining the aspect ratio. diff -Nru stepmania-5.0.12+dfsg/src/StepMania.cpp stepmania-5.1.0+dfsg/src/StepMania.cpp --- stepmania-5.0.12+dfsg/src/StepMania.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/StepMania.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -54,8 +54,7 @@ #include "InputMapper.h" #include "InputQueue.h" #include "SongCacheIndex.h" -#include "BannerCache.h" -//#include "BackgroundCache.h" +#include "ImageCache.h" #include "UnlockManager.h" #include "RageFileManager.h" #include "Bookkeeper.h" @@ -96,7 +95,8 @@ } paramsOut = VideoModeParams( - PREFSMAN->m_bWindowed, + PREFSMAN->m_bWindowed || PREFSMAN->m_bFullscreenIsBorderlessWindow, + PREFSMAN->m_sDisplayId, iWidth, PREFSMAN->m_iDisplayHeight, PREFSMAN->m_iDisplayColorDepth, @@ -106,6 +106,7 @@ PREFSMAN->m_bSmoothLines, PREFSMAN->m_bTrilinearFiltering, PREFSMAN->m_bAnisotropicFiltering, + !PREFSMAN->m_bWindowed && PREFSMAN->m_bFullscreenIsBorderlessWindow, CommonMetrics::WINDOW_TITLE, THEME->GetPathG("Common","window icon"), PREFSMAN->m_bPAL, @@ -146,7 +147,13 @@ * we don't go through the process of auto-detecting a usable video mode * every time. */ const VideoModeParams ¶ms = DISPLAY->GetActualVideoModeParams(); - PREFSMAN->m_bWindowed.Set( params.windowed ); + PREFSMAN->m_bWindowed.Set( params.windowed && !params.bWindowIsFullscreenBorderless ); + if (!params.windowed && !params.bWindowIsFullscreenBorderless) { + // In all other cases, want to preserve the value of this preference, + // but if DISPLAY decides to go fullscreen exclusive, we'll persist that decision + PREFSMAN->m_bFullscreenIsBorderlessWindow.Set( false ); + } + /* If we're windowed, we may have tweaked the width based on the aspect ratio. * Don't save this new value over the preferred value. */ @@ -296,8 +303,7 @@ SAFE_DELETE( CRYPTMAN ); SAFE_DELETE( MEMCARDMAN ); SAFE_DELETE( SONGMAN ); - SAFE_DELETE( BANNERCACHE ); - //SAFE_DELETE( BACKGROUNDCACHE ); + SAFE_DELETE( IMAGECACHE ); SAFE_DELETE( SONGINDEX ); SAFE_DELETE( SOUND ); // uses GAMESTATE, PREFSMAN SAFE_DELETE( PREFSMAN ); @@ -406,9 +412,7 @@ /* Preloaded banners takes about 9k per song. Although it's smaller than the * actual song data, it still adds up with a lot of songs. * Disable it for 64-meg systems. */ - PREFSMAN->m_BannerCache.Set( LowMemory ? BNCACHE_OFF:BNCACHE_LOW_RES_PRELOAD ); - // might wanna do this for backgrounds, too... -aj - //PREFSMAN->m_BackgroundCache.Set( LowMemory ? BGCACHE_OFF:BGCACHE_LOW_RES_PRELOAD ); + PREFSMAN->m_ImageCache.Set( LowMemory ? IMGCACHE_OFF:IMGCACHE_LOW_RES_PRELOAD ); PREFSMAN->SavePrefsToDisk(); #endif @@ -1041,8 +1045,10 @@ // This needs PREFSMAN. Dialog::Init(); - // Create game objects + // Set up the messaging system early to have well defined code. + MESSAGEMAN = new MessageManager; + // Create game objects GAMESTATE = new GameState; // This requires PREFSMAN, for PREFSMAN->m_bShowLoadingWindow. @@ -1145,8 +1151,7 @@ INPUTQUEUE = new InputQueue; SONGINDEX = new SongCacheIndex; - BANNERCACHE = new BannerCache; - //BACKGROUNDCACHE = new BackgroundCache; + IMAGECACHE = new ImageCache; // depends on SONGINDEX: SONGMAN = new SongManager; @@ -1162,7 +1167,6 @@ SONGMAN->UpdatePopular(); SONGMAN->UpdatePreferredSort(); NSMAN = new NetworkSyncManager( pLoadingWindow ); - MESSAGEMAN = new MessageManager; STATSMAN = new StatsManager; // Initialize which courses are ranking courses here. @@ -1280,9 +1284,12 @@ { GAMESTATE->m_iCoins.Set( MAX_NUM_CREDITS * PREFSMAN->m_iCoinsPerCredit ); } - + LOG->Trace("%i coins inserted, %i needed to play", GAMESTATE->m_iCoins.Get(), PREFSMAN->m_iCoinsPerCredit.Get() ); + // On InsertCoin, make sure to update Coins file + BOOKKEEPER->WriteCoinsFile(GAMESTATE->m_iCoins.Get()); + // If inserting coins, play an appropriate sound; if deducting coins, don't play anything. if (iNum > 0) { @@ -1322,6 +1329,9 @@ GAMESTATE->m_iCoins.Set( 0 ); SCREENMAN->PlayInvalidSound(); + // Update Coins file to make sure credits are cleared. + BOOKKEEPER->WriteCoinsFile(GAMESTATE->m_iCoins.Get()); + // TODO: remove this redundant message and things that depend on it Message msg( "CoinInserted" ); // below params are unused diff -Nru stepmania-5.0.12+dfsg/src/Steps.cpp stepmania-5.1.0+dfsg/src/Steps.cpp --- stepmania-5.0.12+dfsg/src/Steps.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Steps.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -33,6 +33,9 @@ /* register DisplayBPM with StringConversion */ #include "EnumHelper.h" +// For hashing hart keys - Mina +#include "CryptManager.h" + static const char *DisplayBPMNames[] = { "Actual", @@ -348,6 +351,15 @@ GAMESTATE->SetProcessedTimingData(NULL); } +void Steps::ChangeFilenamesForCustomSong() +{ + m_sFilename= custom_songify_path(m_sFilename); + if(!m_MusicFile.empty()) + { + m_MusicFile= custom_songify_path(m_MusicFile); + } +} + void Steps::Decompress() const { const_cast(this)->Decompress(); @@ -614,6 +626,77 @@ m_bAreCachedRadarValuesJustLoaded = true; } +RString Steps::GenerateChartKey() +{ + ChartKey = this->GenerateChartKey(*m_pNoteData, this->GetTimingData()); + return ChartKey; +} +RString Steps::GetChartKey() +{ + if (ChartKey.empty()) { + this->Decompress(); + ChartKey = this->GenerateChartKey(*m_pNoteData, this->GetTimingData()); + this->Compress(); + } + return ChartKey; +} +RString Steps::GenerateChartKey(NoteData &nd, TimingData *td) +{ + RString k = ""; + RString o = ""; + float bpm; + nd.LogNonEmptyRows(); + std::vector& nerv = nd.GetNonEmptyRowVector(); + + + RString firstHalf = ""; + RString secondHalf = ""; + +#pragma omp parallel sections + { +#pragma omp section + { + for (size_t r = 0; r < nerv.size() / 2; r++) { + int row = nerv[r]; + for (int t = 0; t < nd.GetNumTracks(); ++t) { + const TapNote &tn = nd.GetTapNote(t, row); + std::ostringstream os; + os << tn.type; + firstHalf.append(os.str()); + } + bpm = td->GetBPMAtRow(row); + std::ostringstream os; + os << static_cast(bpm + 0.374643f); + firstHalf.append(os.str()); + } + } + +#pragma omp section + { + for (size_t r = nerv.size() / 2; r < nerv.size(); r++) { + int row = nerv[r]; + for (int t = 0; t < nd.GetNumTracks(); ++t) { + const TapNote &tn = nd.GetTapNote(t, row); + std::ostringstream os; + os << tn.type; + secondHalf.append(os.str()); + } + bpm = td->GetBPMAtRow(row); + std::ostringstream os; + os << static_cast(bpm + 0.374643f); + firstHalf.append(os.str()); + } + } + } + k = firstHalf + secondHalf; + + //ChartKeyRecord = k; + o.append("X"); // I was thinking of using "C" to indicate chart.. however.. X is cooler... - Mina + o.append(BinaryToHex(CryptManager::GetSHA1ForString(k))); + return o; +} + + // lua start #include "LuaBinding.h" /** @brief Allow Lua to have access to the Steps. */ diff -Nru stepmania-5.0.12+dfsg/src/Steps.h stepmania-5.1.0+dfsg/src/Steps.h --- stepmania-5.0.12+dfsg/src/Steps.h 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/Steps.h 2018-01-25 05:01:07.000000000 +0000 @@ -124,6 +124,16 @@ void SetChartStyle( RString sChartStyle ); static bool MakeValidEditDescription( RString &sPreferredDescription ); // return true if was modified + /* This is a reimplementation of the lua version of the script to generate chart keys, except this time + using the notedata stored in game memory immediately after reading it than parsing it using lua. - Mina */ + RString GenerateChartKey(NoteData &nd, TimingData *td); + RString GenerateChartKey(); + RString ChartKey; + RString GetChartKey(); + void SetChartKey(const RString &k) { ChartKey = k; } + + void ChangeFilenamesForCustomSong(); + void SetLoadedFromProfile( ProfileSlot slot ) { m_LoadedFromProfile = slot; } void SetMeter( int meter ); void SetCachedRadarValues( const RadarValues v[NUM_PLAYERS] ); diff -Nru stepmania-5.0.12+dfsg/src/ThemeManager.cpp stepmania-5.1.0+dfsg/src/ThemeManager.cpp --- stepmania-5.0.12+dfsg/src/ThemeManager.cpp 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/src/ThemeManager.cpp 2018-01-25 05:01:07.000000000 +0000 @@ -459,7 +459,7 @@ if( PROFILEMAN != NULL ) { Profile* pProfile = PROFILEMAN->GetMachineProfile(); - pProfile->LoadCustomFunction( "/Save/MachineProfile/" ); + pProfile->LoadCustomFunction("/Save/MachineProfile/", PlayerNumber_Invalid); } } diff -Nru stepmania-5.0.12+dfsg/StepmaniaCore.cmake stepmania-5.1.0+dfsg/StepmaniaCore.cmake --- stepmania-5.0.12+dfsg/StepmaniaCore.cmake 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/StepmaniaCore.cmake 2018-01-25 05:01:07.000000000 +0000 @@ -19,18 +19,21 @@ # Some OS specific helpers. if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(LINUX TRUE) + set(SM_CPP_STANDARD "gnu++11") else() set(LINUX FALSE) endif() if (CMAKE_SYSTEM_NAME MATCHES "Darwin") set(MACOSX TRUE) + set(SM_CPP_STANDARD "gnu++14") else() set(MACOSX FALSE) endif() if (CMAKE_SYSTEM_NAME MATCHES "BSD") set(BSD TRUE) + set(SM_CPP_STANDARD "gnu++11") else() set(BSD FALSE) endif() @@ -279,8 +282,8 @@ # Apple Archs needs to be 32-bit for now. # When SDL2 is introduced, this may change. set(CMAKE_OSX_ARCHITECTURES "i386") - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.6") - set(CMAKE_OSX_DEPLOYMENT_TARGET_FULL "10.6.8") + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7") + set(CMAKE_OSX_DEPLOYMENT_TARGET_FULL "10.7.1") find_library(MAC_FRAME_ACCELERATE Accelerate ${CMAKE_SYSTEM_FRAMEWORK_PATH}) find_library(MAC_FRAME_APPKIT AppKit ${CMAKE_SYSTEM_FRAMEWORK_PATH}) @@ -346,11 +349,18 @@ find_package(Dl) - find_package(Xrandr) + find_package(Xrandr REQUIRED) if (${XRANDR_FOUND}) set(HAS_XRANDR TRUE) else() - set(HAX_XRANDR FALSE) + set(HAS_XRANDR FALSE) + endif() + + find_package(Xinerama) + if (${XINERAMA_FOUND}) + set(HAS_XINERAMA TRUE) + else() + set(HAS_XINERAMA FALSE) endif() find_package(PulseAudio) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_Arcade decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_Arcade decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_Arcade decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_Arcade decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -8,11 +8,11 @@ InitCommand=function(self) ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen") end; - LoadActor(THEME:GetPathG("OptionRowExit","Frame")) .. { - InitCommand=cmd(diffuse,Color("Orange");diffusealpha,0.35); + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 250-32) .. { + OnCommand=cmd(diffuse,color("#8C1940");diffusealpha,1); }; - LoadFont("Common Normal") .. { - InitCommand=cmd(zoom,0.75;shadowlength,1;glowshift;strokecolor,Color("Outline");diffuse,Color("Orange");diffusetopedge,Color("Yellow");textglowmode,'TextGlowMode_Inner'); + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(zoom,1;shadowlength,1;strokecolor,Color("Outline");diffuse,color("#FAB56B");diffusetopedge,color("#F2D5A2");uppercase,true); Text="..."; OnCommand=cmd(playcommand,"Refresh"); CoinInsertedMessageCommand=cmd(playcommand,"Refresh"); diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Fade in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Fade in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Fade in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Fade in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenOutDelay"); +return Def.ActorFrame { + StartTransitioningCommand=cmd(sleep,0.15+fSleepTime); + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;draworder,10000); + StartTransitioningCommand=cmd(diffuse,color("0,0,0,0");diffusealpha,1;sleep,fSleepTime;linear,0.3;diffusealpha,0); + }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Fade out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Fade out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Fade out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Fade out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +return Def.ActorFrame { + StartTransitioningCommand=cmd(sleep,0.15); + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;draworder,10000); + StartTransitioningCommand=cmd(diffusealpha,0;diffuse,color("0,0,0,0");linear,0.3;diffusealpha,1); + }; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_frame cursors/rounded gloss.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_frame cursors/rounded gloss.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded fill 3x1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded fill 3x1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded gloss 3x1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded gloss 3x1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded light 3x1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_frame files 3x1/rounded light 3x1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/old ScreenWithMenuElements background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/old ScreenWithMenuElements background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/old ScreenWithMenuElements background/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/old ScreenWithMenuElements background/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -local t = Def.ActorFrame {}; - -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center); - Def.Quad { - InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("#00bfe8");diffusetopedge,color("#009ad5")); - }; -}; - -return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Online background/_barcode (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Online background/_barcode (stretch).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Online background/_base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Online background/_base.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Online background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Online background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Online background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Online background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,26 @@ +-- You know what, I guess the "fancy UI background" theme option can be put to use. +if ThemePrefs.Get("FancyUIBG") then + return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,color("#093A3E");diffusetopedge,color("#000000");); + }; + + LoadActor("_base") .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;blend,'BlendMode_Add';); + }, + + LoadActor("_barcode") .. { + InitCommand=cmd(zoomto,36,1024;diffuse,color("#65F0FD");x,SCREEN_LEFT+15;y,SCREEN_CENTER_Y;diffusealpha,0.1); + OnCommand=cmd(customtexturerect,0,0,1,1;texcoordvelocity,0,-0.1); + }; + + LoadActor("_barcode") .. { + InitCommand=cmd(zoomto,36,1024;diffuse,color("#65F0FD");x,SCREEN_RIGHT-15;y,SCREEN_CENTER_Y;diffusealpha,0.1); + OnCommand=cmd(customtexturerect,0,0,1,1;texcoordvelocity,0,0.1); + }; + }; +else + return Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,color("#222222");diffusetopedge,color("#000000");); + }; +end \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen cancel/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen cancel/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen cancel/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen cancel/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,7 @@ return Def.ActorFrame { Def.Quad { InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,0.5");sleep,5/60;diffusealpha,1;sleep,5/60); + StartTransitioningCommand=cmd(diffuse,color("0,0,0,0.5");sleep,5/60;diffusealpha,1;sleep,5/60); }; LoadActor(THEME:GetPathS("_Screen","cancel")) .. { IsAction= true, diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Fade in \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,45 +1,37 @@ local t = Def.ActorFrame {}; +t[#t+1] = LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + }; + -- Fade t[#t+1] = Def.ActorFrame { InitCommand=cmd(Center); Def.Quad { InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.75); - OffCommand=cmd(linear,0.25;diffusealpha,0); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.8); }; }; -- Emblem t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center); + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); OnCommand=cmd(diffusealpha,0.5); LoadActor("_warning bg") .. { - OnCommand=cmd(diffuse,Color.Yellow); - }; - Def.ActorFrame { - LoadActor("_exclamation") .. { - OnCommand=cmd(diffuse,Color.Yellow); - }; }; }; -- Text t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center;y,SCREEN_CENTER_Y); - OnCommand=cmd(addy,-96); - -- Underline - Def.Quad { - InitCommand=cmd(y,24;zoomto,256,2); - OnCommand=cmd(diffuse,color("#ffd400");shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,256;fadeleft,0.25;faderight,0.25); - }; - LoadFont("Common Large") .. { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-120); + OnCommand=cmd(diffusealpha,0;linear,0.2;diffusealpha,1); + LoadFont("_roboto condensed Bold 48px") .. { Text=Screen.String("Caution"); - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");strokecolor,ColorDarkTone(color("#ffd400"))); + OnCommand=cmd(skewx,-0.1;diffuse,color("#E6BF7C");diffusebottomedge,color("#FFB682");strokecolor,color("#594420");); }; - LoadFont("Common Normal") .. { + LoadFont("Common Fallback Font") .. { Text=Screen.String("CautionText"); InitCommand=cmd(y,128); - OnCommand=cmd(strokecolor,color("0,0,0,0.5");shadowlength,1;wrapwidthpixels,SCREEN_WIDTH-80); + OnCommand=cmd(strokecolor,color("0,0,0,0.5");shadowlength,1;wrapwidthpixels,SCREEN_WIDTH/0.5); }; }; -- Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/_exclamation.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/_exclamation.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/_warning bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCaution overlay/_warning bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenContinue underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenContinue underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenContinue underlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenContinue underlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -local timer_seconds = THEME:GetMetric(Var "LoadingScreen","TimerSeconds"); -local t = Def.ActorFrame {}; - --- Fade -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center); - Def.Quad { - InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.25; - sleep,timer_seconds/2; - linear,timer_seconds/2-0.5;diffusealpha,1); - }; - -- Warning Fade - Def.Quad { - InitCommand=cmd(y,16;scaletoclipped,SCREEN_WIDTH,148); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5; - linear,timer_seconds;zoomtoheight,148*0.75); - } -}; --- -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center;y,SCREEN_CENTER_Y-24); - -- Underline - Def.Quad { - InitCommand=cmd(y,16;zoomto,256,1); - OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,256;fadeleft,0.25;faderight,0.25); - }; - LoadFont("Common Bold") .. { - Text="Continue?"; - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)); - }; -}; --- -return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -local scrolltime = 95; - -local t = Def.ActorFrame { - InitCommand=cmd(Center); - LoadActor("_space")..{ - InitCommand=cmd(y,-SCREEN_HEIGHT*1.5;fadebottom,0.125;fadetop,0.25); - OnCommand=cmd(linear,scrolltime;addy,SCREEN_HEIGHT*1.5825); - }; - Def.Quad { - InitCommand=cmd(scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffusecolor,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); - }; - LoadActor("_grid")..{ - InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true); - OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset'; - effectcolor2,Color("Black");effectcolor1,Color.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345); - }; -}; - -return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background/_grid.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background/_grid.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background/_space.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background/_space.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenLogo background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenCredits overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenCredits overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ --- To add a section to the credits, use the following: --- local theme_credits= { --- name= "Theme Credits", -- the name of your section --- "Me", -- The people you want to list in your section. --- "Myself", --- "My other self", --- {logo= "pro_dude", name= "Pro self"}, -- Someone who has a logo image. --- -- This logo image would be "Graphics/CreditsLogo pro_dude.png". --- } --- StepManiaCredits.AddSection(theme_credits) --- --- If you want to add your section after an existing section, use the following: --- StepManiaCredits.AddSection(theme_credits, 7) --- --- Or position can be the name of a section to insert after: --- StepManiaCredits.AddSection(theme_credits, "Special Thanks") --- --- Or if you want to add your section before a section: --- StepManiaCredits.AddSection(theme_credits, "Special Thanks", true) - --- StepManiaCredits is defined in _fallback/Scripts/04 CreditsHelpers.lua. - -local line_on = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,1) -local section_on = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,1) -local subsection_on = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,1) -local item_padding_start = 4; -local line_height= 30 --- Tell the credits table the line height so it can use it for logo sizing. -StepManiaCredits.SetLineHeight(line_height) - -local creditScroller = Def.ActorScroller { - SecondsPerItem = 0.5; - NumItemsToDraw = 40; - TransformFunction = function( self, offset, itemIndex, numItems) - self:y(line_height*offset) - end; - OnCommand = cmd(scrollwithpadding,item_padding_start,15); -} - --- Add sections with padding. -for section in ivalues(StepManiaCredits.Get()) do - StepManiaCredits.AddLineToScroller(creditScroller, section.name, section_on) - for name in ivalues(section) do - if name.type == "subsection" then - StepManiaCredits.AddLineToScroller(creditScroller, name, subsection_on) - else - StepManiaCredits.AddLineToScroller(creditScroller, name, line_on) - end - end - StepManiaCredits.AddLineToScroller(creditScroller) - StepManiaCredits.AddLineToScroller(creditScroller) -end - -creditScroller.BeginCommand=function(self) - SCREENMAN:GetTopScreen():PostScreenMessage( 'SM_MenuTimer', (creditScroller.SecondsPerItem * (#creditScroller + item_padding_start) + 10) ); -end; - -return Def.ActorFrame{ - creditScroller..{ - InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64), - }, - LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top"))..{ - InitCommand=cmd(Center), - }, -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration decorations.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration decorations.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -local t = LoadFallbackB(); -t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration out.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration out.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame{ - Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1");cropbottom,1;fadebottom,1); - OnCommand=cmd(decelerate,0.5;cropbottom,0;fadebottom,0); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -local t = Def.ActorFrame{ - Def.Quad{ - Name="TopFrame"; - InitCommand=cmd(CenterX;y,SCREEN_TOP;valign,0;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0,0,0,1");fadebottom,0.5); - }; - - Def.Quad{ - Name="BotFrame"; - InitCommand=cmd(CenterX;y,SCREEN_BOTTOM;valign,1;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0,0,0,1");fadetop,0.5); - }; - - Def.ActorFrame{ - Name="MiddleSection"; - InitCommand=cmd(CenterX;y,SCREEN_CENTER_Y*1.35); - Def.Quad{ - Name="Frame"; - InitCommand=cmd(zoomto,SCREEN_WIDTH,0;diffuse,color("0.1,0.1,0.1,0.75");fadebottom,0.25;fadetop,0.25;); - OnCommand=cmd(smooth,0.75;zoomtoheight,64;); - }; - LoadFont("Common normal")..{ - Text=Screen.String("Demonstration"); - InitCommand=cmd(diffusealpha,0;strokecolor,color("0,0,0,0.5")); - OnCommand=cmd(smooth,0.75;diffusealpha,1;diffuseshift;effectcolor1,HSV(38,0.45,0.95)); - }; - }; - - LoadFont("Common normal")..{ - Name="SongTitle"; - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_TOP+16;zoom,0.5;shadowlength,1;valign,0); - BeginCommand=function(self) - local song = GAMESTATE:GetCurrentSong(); - local text = ""; - if song then - local artist = song:GetDisplayArtist() - local title = song:GetDisplayFullTitle() - local group = song:GetGroupName() - text = string.format(Screen.String("%s - %s [from %s]"),artist,title,group) - end; - self:settext(text); - end; --- OnCommand=cmd(queuecommand,"Scroll"); --- ScrollCommand=cmd(linear,10;x,-SCREEN_WIDTH*2;sleep,1;x,SCREEN_WIDTH*2;queuecommand,"Scroll"); - }; -}; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenDemonstration overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,76 @@ +return Def.ActorFrame{ + -- "header" + Def.Quad { + InitCommand=cmd(vertalign,top;x,_screen.cx;zoomto,_screen.w,80), + OnCommand=function(self) + self:diffuse(ScreenColor("Default")):diffusetopedge(ColorDarkTone(ScreenColor("Default"))):diffusealpha(0.8) + end + }, + -- The "header's" "shadow" + Def.Quad { + InitCommand=cmd(vertalign,top;x,_screen.cx;zoomto,SCREEN_WIDTH,8;y,80), + OnCommand=cmd(diffuse,Color("Black");fadebottom,1;diffusealpha,0.6) + }, + -- "footer" + Def.Quad { + InitCommand=cmd(vertalign,bottom;x,_screen.cx;y,_screen.h;zoomto,_screen.w,96), + OnCommand=function(self) + self:diffuse(ScreenColor("Default")):diffusebottomedge(ColorDarkTone(ScreenColor("Default"))):diffusealpha(0.8) + end + }, + -- The "footer's" "shadow" + Def.Quad { + InitCommand=cmd(vertalign,bottom;x,_screen.cx;y,_screen.h-96;zoomto,_screen.w,8), + OnCommand=cmd(diffuse,Color("Black");fadetop,1;diffusealpha,0.6) + }, + + -- A temporary frame for the jacket. + Def.Quad { + InitCommand=cmd(horizalign,right;vertalign,bottom;x,_screen.w-39;y,_screen.h-14;zoomto,192,192; + diffuse,ColorDarkTone(ScreenColor("Default"));diffusealpha,0.9) + }, + -- Jacket (real or not) of the currently playing song. + -- todo: make getting the jacket a bit more of a... global function? + Def.Sprite { + InitCommand=cmd(horizalign,right;vertalign,bottom;x,_screen.w-49;y,_screen.h-24), + OnCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + if song and song:HasJacket() then + -- ...The jacket on ScreenEditMenu overlay uses LoadBanner instead of just Load. + -- Will it make any difference? ... I mean, probably not, but we'll see. + self:LoadBanner(song:GetJacketPath()) + elseif song and song:HasBackground() then + self:LoadBanner(song:GetBackgroundPath()) + else + self:LoadBanner(THEME:GetPathG("Common","fallback background")) + end + self:scaletoclipped(172,172) + end + }, + -- Song title. + Def.BitmapText { + Font = "Common Fallback Font", + InitCommand=cmd(horizalign,right;x,_screen.w-250;y,_screen.h-64;strokecolor,color("#42292E")), + OnCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + if song then + self:settext(song:GetDisplayFullTitle()) + else + self:settext("") + end + end + }, + -- Song artist. + Def.BitmapText { + Font = "Common Fallback Font", + InitCommand=cmd(horizalign,right;x,_screen.w-250;y,_screen.h-40;zoom,0.7;strokecolor,color("#42292E")), + OnCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + if song then + self:settext(song:GetDisplayArtist()) + else + self:settext("") + end + end + }, +} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEdit background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEdit background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEdit background.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEdit background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,26 +1,15 @@ -local t = Def.ActorFrame { - InitCommand=cmd(fov,90); -}; +local t = Def.ActorFrame {}; + t[#t+1] = Def.ActorFrame { + FOV=90; InitCommand=cmd(Center); - LoadActor( THEME:GetPathB("ScreenWithMenuElements","background/_bg top") ) .. { + Def.Quad { InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,ColorMidTone(color("#451A20"));diffusebottomedge,ColorMidTone(color("#5E2A30"));diffusealpha,0.9); }; - Def.Quad{ - InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,color("0.2,0.2,0.2,0")); - OnCommand=function(self) - local topScreen = SCREENMAN:GetTopScreen() - if topScreen then - local screenName = topScreen:GetName() - if screenName == "ScreenEdit" or screenName == "ScreenPractice" then - self:diffusealpha(0.95) - else - self:diffusealpha(0.65) - end; - end; - end; - EditorShowMessageCommand=cmd(stoptweening;linear,0.5;diffusealpha,0.95); - EditorHideMessageCommand=cmd(stoptweening;linear,0.5;diffusealpha,0.65); + LoadActor (GetSongBackground()) .. { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffusealpha,0.1;); }; }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEditMenu background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEditMenu background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEditMenu background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEditMenu background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,18 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("#947B7E");diffusebottomedge,color("#D698A0")); + }; +}; + +t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+20;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.70;); + OnCommand=cmd(diffuse,color("#61414B");diffusealpha,0.4); + }; +}; + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEditMenu in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEditMenu in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEditMenu in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEditMenu in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +local transition_params = { + color = color("#914D56"), + transition_type = "in" +} + +return LoadActor(THEME:GetPathB("", "_transition"), transition_params) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation background/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation background/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -local t = Def.ActorFrame {}; - -t[#t+1] = Def.ActorFrame { - Def.Sprite { - OnCommand=function(self) - if GAMESTATE:GetCurrentSong() then - local song = GAMESTATE:GetCurrentSong(); - if song:HasBackground() then - self:LoadBackground(song:GetBackgroundPath()); - end; - self:scale_or_crop_background() - self:fadebottom(0.25) - self:fadetop(0.25) - self:croptop(1/10) - self:cropbottom(1/10) - else - self:visible(false); - end - end; - }; - Def.Quad { - InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); - }; -}; - -return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,259 +0,0 @@ -local function GraphDisplay( pn ) - local t = Def.ActorFrame { - LoadActor( THEME:GetPathG("_GraphDisplay","overlay")) .. { - InitCommand=cmd(y,6); - }; - Def.GraphDisplay { - InitCommand=cmd(Load,"GraphDisplay";); - BeginCommand=function(self) - local ss = SCREENMAN:GetTopScreen():GetStageStats(); - self:Set( ss, ss:GetPlayerStageStats(pn) ); - self:player( pn ); - end - }; - }; - return t; -end - -local function ComboGraph( pn ) - local t = Def.ActorFrame { - Def.ComboGraph { - InitCommand=cmd(Load,"ComboGraph";); - BeginCommand=function(self) - local ss = SCREENMAN:GetTopScreen():GetStageStats(); - self:Set( ss, ss:GetPlayerStageStats(pn) ); - self:player( pn ); - end - }; - }; - return t; -end - -local function PercentScore( pn ) - local t = LoadFont("Common normal")..{ - InitCommand=cmd(zoom,0.625;shadowlength,1;player,pn); - BeginCommand=cmd(playcommand,"Set"); - SetCommand=function(self) - -- todo: color by difficulty - local SongOrCourse, StepsOrTrail; - if GAMESTATE:IsCourseMode() then - SongOrCourse = GAMESTATE:GetCurrentCourse() - StepsOrTrail = GAMESTATE:GetCurrentTrail(pn) - else - SongOrCourse = GAMESTATE:GetCurrentSong() - StepsOrTrail = GAMESTATE:GetCurrentSteps(pn) - end; - if SongOrCourse and StepsOrTrail then - local st = StepsOrTrail:GetStepsType(); - local diff = StepsOrTrail:GetDifficulty(); - local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; - local cd = GetCustomDifficulty(st, diff, courseType); - self:diffuse(CustomDifficultyToColor(cd)); - self:shadowcolor(CustomDifficultyToDarkColor(cd)); - end - - local pss = STATSMAN:GetPlayedStageStats(1):GetPlayerStageStats(pn); - if pss then - local pct = pss:GetPercentDancePoints(); - if pct == 1 then - self:settext("100%"); - else - self:settext(FormatPercentScore(pct)); - end; - end; - end; - }; - return t; -end - -local t = LoadFallbackB(); - -t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); - -if ShowStandardDecoration("GraphDisplay") and GAMESTATE:GetPlayMode() ~= "PlayMode_Rave" then - for pn in ivalues(GAMESTATE:GetHumanPlayers()) do - t[#t+1] = StandardDecorationFromTable( "GraphDisplay" .. ToEnumShortString(pn), GraphDisplay(pn) ); - end -end - -if ShowStandardDecoration("ComboGraph") and GAMESTATE:GetPlayMode() ~= "PlayMode_Rave" then - for pn in ivalues(GAMESTATE:GetHumanPlayers()) do - t[#t+1] = StandardDecorationFromTable( "ComboGraph" .. ToEnumShortString(pn), ComboGraph(pn) ); - end -end - -if ShowStandardDecoration("StepsDisplay") then - for pn in ivalues(PlayerNumber) do - local t2 = Def.StepsDisplay { - InitCommand=cmd(Load,"StepsDisplayEvaluation",pn;SetFromGameState,pn;); - UpdateNetEvalStatsMessageCommand=function(self,param) - if GAMESTATE:IsPlayerEnabled(pn) then - self:SetFromSteps(param.Steps) - end; - end; - }; - t[#t+1] = StandardDecorationFromTable( "StepsDisplay" .. ToEnumShortString(pn), t2 ); - t[#t+1] = StandardDecorationFromTable( "PercentScore" .. ToEnumShortString(pn), PercentScore(pn) ); - end -end - -for pn in ivalues(PlayerNumber) do - local MetricsName = "MachineRecord" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "MachineRecord"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - }; -end - -for pn in ivalues(PlayerNumber) do - local MetricsName = "PersonalRecord" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PersonalRecord"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - }; -end - -for pn in ivalues(PlayerNumber) do - local MetricsName = "StageAward" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "StageAward"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - BeginCommand=cmd(playcommand,"Set"); - SetCommand=function(self) - local tStats = THEME:GetMetric(Var "LoadingScreen", "Summary") and STATSMAN:GetAccumPlayedStageStats() or STATSMAN:GetCurStageStats(); - tStats = tStats:GetPlayerStageStats(pn); - if tStats:GetStageAward() and not tStats:GetFailed() then - self:settext( THEME:GetString( "StageAward", ToEnumShortString( tStats:GetStageAward() ) ) ); - else - self:settext( "" ); - end - end; - }; -end - -for pn in ivalues(PlayerNumber) do - local MetricsName = "PeakComboAward" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PeakComboAward"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - BeginCommand=cmd(playcommand,"Set"); - SetCommand=function(self) - local tStats = THEME:GetMetric(Var "LoadingScreen", "Summary") and STATSMAN:GetAccumPlayedStageStats() or STATSMAN:GetCurStageStats(); - tStats = tStats:GetPlayerStageStats(pn); - if tStats:GetPeakComboAward() then - self:settext( THEME:GetString( "PeakComboAward", ToEnumShortString( tStats:GetPeakComboAward() ) ) ); - else - self:settext( "" ); - end - end; - }; -end - -t[#t+1] = StandardDecorationFromFileOptional("SongInformation","SongInformation") .. { - BeginCommand=function(self) - local SongOrCourse; - if GAMESTATE:GetCurrentSong() then - SongOrCourse = GAMESTATE:GetCurrentSong(); - elseif GAMESTATE:GetCurrentCourse() then - SongOrCourse = GAMESTATE:GetCurrentCourse(); - else - return - end - - if SongOrCourse:HasBanner() then - self:visible(false); - else - self:visible(true); - end - end; - SetCommand=function(self) - local c = self:GetChildren(); - 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.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.TextSubtitle:visible(true); - c.TextSubtitle:y(0); - c.TextArtist:visible(true); - c.TextArtist:y(18); - end --- self:playcommand("Tick"); - elseif GAMESTATE:GetCurrentCourse() then - SongOrCourse = GAMESTATE:GetCurrentCourse(); - - c.TextTitle:settext( SongOrCourse:GetDisplayMainTitle() or nil ); - c.TextSubtitle:settext( SongOrCourse:GetDisplaySubTitle() or nil ); - c.TextArtist:settext( SongOrCourse:GetDisplayArtist() or nil ); - --- self:playcommand("Tick"); - else - SongOrCourse = nil; - - c.TextTitle:settext(""); - c.TextSubtitle:settext(""); - c.TextArtist:settext(""); - - self:playcommand("Hide") - end - end; --- OnCommand=cmd(playcommand,"Set"); - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); - DisplayLanguageChangedMessageCommand=cmd(playcommand,"Set"); -}; -t[#t+1] = StandardDecorationFromFileOptional("LifeDifficulty","LifeDifficulty"); -t[#t+1] = StandardDecorationFromFileOptional("TimingDifficulty","TimingDifficulty"); -t[#t+1] = StandardDecorationFromFileOptional("GameType","GameType"); -t[#t+1] = Def.ActorFrame { - Condition=GAMESTATE:HasEarnedExtraStage() and GAMESTATE:IsExtraStage() and not GAMESTATE:IsExtraStage2(); - InitCommand=cmd(draworder,105); - LoadActor( THEME:GetPathS("ScreenEvaluation","try Extra1" ) ) .. { - Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; - OnCommand=cmd(play); - }; - LoadActor( THEME:GetPathG("ScreenStageInformation","Stage extra1" ) ) .. { - Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; - InitCommand=cmd(Center); - OnCommand=cmd(diffusealpha,0;zoom,0.85;bounceend,1;zoom,1;diffusealpha,1;sleep,0;glow,Color("White");decelerate,1;glow,Color("Invisible");smooth,0.35;zoom,0.25;y,SCREEN_BOTTOM-72); - }; -}; -t[#t+1] = Def.ActorFrame { - Condition=GAMESTATE:HasEarnedExtraStage() and not GAMESTATE:IsExtraStage() and GAMESTATE:IsExtraStage2(); - InitCommand=cmd(draworder,105); - LoadActor( THEME:GetPathS("ScreenEvaluation","try Extra2" ) ) .. { - Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; - OnCommand=cmd(play); - }; - LoadActor( THEME:GetPathG("ScreenStageInformation","Stage extra2" ) ) .. { - Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; - InitCommand=cmd(Center); - OnCommand=cmd(diffusealpha,0;zoom,0.85;bounceend,1;zoom,1;diffusealpha,1;sleep,0;glow,Color("White");decelerate,1;glow,Color("Invisible");smooth,0.35;zoom,0.25;y,SCREEN_BOTTOM-72); - }; -}; -return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -local vStats = STATSMAN:GetCurStageStats(); - -local function CreateStats( pnPlayer ) - -- Actor Templates - 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. - local tStats = { - W1 = pnStageStats:GetTapNoteScores('TapNoteScore_W1'); - W2 = pnStageStats:GetTapNoteScores('TapNoteScore_W2'); - W3 = pnStageStats:GetTapNoteScores('TapNoteScore_W3'); - W4 = pnStageStats:GetTapNoteScores('TapNoteScore_W4'); - W5 = pnStageStats:GetTapNoteScores('TapNoteScore_W5'); - Miss = pnStageStats:GetTapNoteScores('TapNoteScore_Miss'); - HitMine = pnStageStats:GetTapNoteScores('TapNoteScore_HitMine'); - AvoidMine = pnStageStats:GetTapNoteScores('TapNoteScore_AvoidMine'); - Held = pnStageStats:GetHoldNoteScores('HoldNoteScore_Held'); - LetGo = pnStageStats:GetHoldNoteScores('HoldNoteScore_LetGo'); - }; - -- Organized Equation Values - local tValues = { - -- marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7 - ITG = ( tStats["W1"]*7 + tStats["W2"]*6 + tStats["W3"]*5 + tStats["W4"]*4 + tStats["W5"]*2 + tStats["Held"]*7 ), - -- (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7 - ITG_MAX = ( tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"] + tStats["Held"] + tStats["LetGo"] )*7, - -- marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6 - MIGS = ( tStats["W1"]*3 + tStats["W2"]*2 + tStats["W3"] - tStats["W5"]*4 - tStats["Miss"]*8 + tStats["Held"]*6 ), - -- (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6 - 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,-34); - LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { - InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); - }; - aLabel .. { Text=THEME:GetString("ScreenEvaluation","ITG DP:"); InitCommand=cmd(x,-64) }; - aText .. { Text=string.format("%04i",tValues["ITG"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; - aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); }; - aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; - }; - t[#t+1] = Def.ActorFrame { - InitCommand=cmd(y,-6); - LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { - InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); - }; - aLabel .. { Text=THEME:GetString("ScreenEvaluation","MIGS DP:"); InitCommand=cmd(x,-64) }; - aText .. { Text=string.format("%04i",tValues["MIGS"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; - 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); }; - }; - return t -end; - -local t = Def.ActorFrame {}; -GAMESTATE:IsPlayerEnabled(PLAYER_1) -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-20); - CreateStats( PLAYER_1 ); -}; -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-20); - CreateStats( PLAYER_2 ); -}; - -if gameplay_pause_count > 0 then - t[#t+1]= Def.BitmapText{ - Font= "Common Normal", - Text= THEME:GetString("PauseMenu", "pause_count") .. ": " .. gameplay_pause_count, - InitCommand= function(self) - self:xy(_screen.cx, 375):diffuse(Color.White):zoom(.75) - end - } -end - -return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/kyuze.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/kyuze.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/kyuze.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/kyuze.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -local vStats = STATSMAN:GetCurStageStats(); - -local function CreateStats( pnPlayer ) - -- Actor Templates - 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. - local tStats = { - W1 = pnStageStats:GetTapNoteScores('TapNoteScore_W1'); - W2 = pnStageStats:GetTapNoteScores('TapNoteScore_W2'); - W3 = pnStageStats:GetTapNoteScores('TapNoteScore_W3'); - W4 = pnStageStats:GetTapNoteScores('TapNoteScore_W4'); - W5 = pnStageStats:GetTapNoteScores('TapNoteScore_W5'); - Miss = pnStageStats:GetTapNoteScores('TapNoteScore_Miss'); - HitMine = pnStageStats:GetTapNoteScores('TapNoteScore_HitMine'); - AvoidMine = pnStageStats:GetTapNoteScores('TapNoteScore_AvoidMine'); - Held = pnStageStats:GetHoldNoteScores('HoldNoteScore_Held'); - LetGo = pnStageStats:GetHoldNoteScores('HoldNoteScore_LetGo'); - }; - local itg_values= {W1= 5, - W2= 4, - W3= 2, - W4= 0, - W5= -6, - Miss= -12, - HitMine= 0, -- Kyz hates mines. Should be -6 - AvoidMine= 0, - Held= 5, - LetGo= 0} - local migs_values= {W1= 3, - W2= 2, - W3= 1, - W4= 0, - W5= -4, - Miss= -8, - HitMine= 0, - AvoidMine= 0, - Held= 6, - LetGo= 0} - local itg_keys_for_max= {W1= 5, W2= 5, W3= 5, W4= 5, W5= 5, Miss= 5, Held= 5, LetGo= 5} - local migs_keys_for_max= {W1= 3, W2= 3, W3= 3, W4= 3, W3= 3, Miss= 3, Held= 6, LetGo= 6} - - local tValues= { ITG= 0, ITG_MAX= 0, MIGS= 0, MIGS_MAX= 0} - for k, v in pairs(itg_keys_for_max) do - if tStats[k] then - tValues.ITG_MAX= tValues.ITG_MAX + (tStats[k] * v) - end - end - for k, v in pairs(migs_keys_for_max) do - if tStats[k] then - tValues.MIGS_MAX= tValues.MIGS_MAX + (tStats[k] * v) - end - end - - for k, v in pairs(tStats) do - if itg_values[k] then - tValues.ITG= tValues.ITG + (v * itg_values[k]) - end - if migs_values[k] then - tValues.MIGS= tValues.MIGS + (v * migs_values[k]) - end - end - - local t = Def.ActorFrame {}; - t[#t+1] = Def.ActorFrame { - InitCommand=cmd(y,-34); - LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { - InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); - }; - aLabel .. { Text=THEME:GetString("ScreenEvaluation","ITG DP:"); InitCommand=cmd(x,-64) }; - aText .. { Text=string.format("%04i",tValues["ITG"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; - aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); }; - aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; - }; - t[#t+1] = Def.ActorFrame { - InitCommand=cmd(y,-6); - LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { - InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); - }; - aLabel .. { Text=THEME:GetString("ScreenEvaluation","MIGS DP:"); InitCommand=cmd(x,-64) }; - aText .. { Text=string.format("%04i",tValues["MIGS"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; - 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); }; - }; - return t -end; - -local t = Def.ActorFrame {}; -GAMESTATE:IsPlayerEnabled(PLAYER_1) -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-34); - CreateStats( PLAYER_1 ); -}; -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-34); - CreateStats( PLAYER_2 ); -}; -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/original.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/original.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/original.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay/original.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -local ss = STATSMAN:GetCurStageStats(); -local pss = ss:GetPlayerStageStats('PlayerNumber_P1'); -local misscount = pss:GetTapNoteScores('TapNoteScore_Miss'); -local boocount = pss:GetTapNoteScores('TapNoteScore_W5'); -local goodcount = pss:GetTapNoteScores('TapNoteScore_W4'); -local greatcount = pss:GetTapNoteScores('TapNoteScore_W3'); -local perfcount = pss:GetTapNoteScores('TapNoteScore_W2'); -local marvcount = pss:GetTapNoteScores('TapNoteScore_W1'); -local minehitcount = pss:GetTapNoteScores('TapNoteScore_HitMine'); -local minemisscount = pss:GetTapNoteScores('TapNoteScore_AvoidMine'); -local okcount = pss:GetHoldNoteScores('HoldNoteScore_Held'); -local ngcount = pss:GetHoldNoteScores('HoldNoteScore_LetGo'); -local ITGdp = marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7 -local ITGdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7 -local MIGSdp = marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6 -local MIGSdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6 -local histogram = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -local total = 0 -local maxValue = 0; -print("John11length: "..#histogram); - -for i=1,#tTotalJudgmentsSigned do - print("John11Timings: "..i.." - "..tTotalJudgmentsSigned[i]) - local index = math.floor((0.18-tTotalJudgmentsSigned[i])*(#histogram/.36)); - print("John11Index: "..i.." - "..index) - if index >= 0 and index <= #histogram - 1 then - histogram[index] = histogram[index] + 1 - total = total + 1 - if histogram[index] > maxValue then - maxValue = histogram[index] - end - end -end - -for i=1,#histogram do - print("John11Judgments: "..i.." - "..histogram[i]) -end - -local t = Def.ActorFrame {} -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X/3;y,SCREEN_CENTER_Y); - LoadFont("Common Normal") .. { - Text="MIGS DP: "..tostring(MIGSdp).."/"..tostring(MIGSdpmax).."\nITG DP: "..tostring(ITGdp).."/"..tostring(ITGdpmax).."\nOffset Avg: "..RoundTo(tTimingDifferenceAverage,5).."\nAbs Offset Avg: "..RoundTo(tTimingDifferenceAbsAverage,5).."\nEarly Taps: "..tEarlyHits.."\nLate Taps: "..tLateHits; - InitCommand=cmd(y,-4;shadowlength,1;diffuse,Color("Red");zoom,0.5) - }; -} - -for i=1,#histogram do - local offset = -1 - if i > #histogram/2 then - offset = 1 - end - t[#t+1] = Def.Quad { - InitCommand=cmd(diffuse,Color("Red");zoomtowidth,300/#histogram-1;zoomtoheight,histogram[#histogram-i]/maxValue*150;x,SCREEN_CENTER_X+100+300/#histogram*i+offset;y,SCREEN_CENTER_Y-histogram[#histogram-i]/maxValue*150/2); - } -end - -t[#t+1] = Def.Quad { - InitCommand=cmd(x,SCREEN_CENTER_X+250;y,SCREEN_CENTER_Y+3;zoomtowidth,300;zoomtoheight,5;diffuse,color("#FFFFFF")); -} - -t[#t+1] = Def.Quad { - InitCommand=cmd(x,SCREEN_CENTER_X+252;y,SCREEN_CENTER_Y-75;zoomtowidth,1;zoomtoheight,150;diffuse,color("#000000")); -} - - -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X+125;y,SCREEN_CENTER_Y+15); - LoadFont("Common Normal") .. { - Text="Early"; - InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5) - }; -} - -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X+375;y,SCREEN_CENTER_Y+15); - LoadFont("Common Normal") .. { - Text="Late"; - InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5) - }; -} - -print("John11Total: "..total) -print("John11MaxValue: "..maxValue) - -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,38 @@ +if not GAMESTATE:IsCourseMode() then + return Def.ActorFrame { + LoadActor(THEME:GetPathG("ScreenEvaluation", "StageDisplay")) .. { + InitCommand=cmd(x,SCREEN_RIGHT-290;y,SCREEN_TOP+49;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + } + } +else + return Def.ActorFrame { + InitCommand=cmd(x,SCREEN_RIGHT-290;y,SCREEN_TOP+49;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + LoadActor(THEME:GetPathG("", "_sortFrame")) .. { + InitCommand=cmd(diffusealpha,0.9;zoom,1.5); + BeginCommand=function(self) + self:playcommand("Set") + end; + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + self:diffuse(StageToColor(curStage)); + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(y,-1;zoom,1;shadowlength,1;uppercase,true;); + BeginCommand=function(self) + self:playcommand("Set") + end; + CurrentSongChangedMessageCommand= cmd(playcommand,"Set"), + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + local course = GAMESTATE:GetCurrentCourse() + self:settext(string.upper(ToEnumShortString( course:GetCourseType() ))) + -- StepMania is being stupid so we have to do this here; + self:diffuse(StageToColor(curStage)):diffusetopedge(ColorLightTone(StageToColor(curStage))); + self:diffusealpha(0):smooth(0.3):diffusealpha(1); + end; + }; + } +end; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary background.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary background.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -local t = LoadActor(THEME:GetPathB("ScreenWithMenuElements","background")); - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -local t = LoadFallbackB(); - -t[#t+1] = StandardDecorationFromFileOptional("BannerList","BannerList"); - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluationSummary underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,162 @@ +local t = Def.ActorFrame {}; + +-- A very useful table... +local eval_lines = { + "W1", + "W2", + "W3", + "W4", + "W5", + "Miss", + "Held", + "MaxCombo" +} + +local grade_area_offset = 16 + +-- And a function to make even better use out of the table. +local function GetJLineValue(line, pl) + if line == "Held" then + return STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(pl):GetHoldNoteScores("HoldNoteScore_Held") + elseif line == "MaxCombo" then + return STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(pl):MaxCombo() + else + return STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(pl):GetTapNoteScores("TapNoteScore_" .. line) + end + return "???" +end + +-- You know what, we'll deal with getting the overall scores with a function too. +local function GetPlScore(pl, scoretype) + local primary_score = STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(pl):GetScore() + local secondary_score = FormatPercentScore(STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(pl):GetPercentDancePoints()) + + if PREFSMAN:GetPreference("PercentageScoring") then + primary_score, secondary_score = secondary_score, primary_score + end + + if scoretype == "primary" then + return primary_score + else + return secondary_score + end +end + + +-- Each line's text, and associated decorations. +for i, v in ipairs(eval_lines) do + local spacing = 38*i + local cur_line = "JudgmentLine_" .. v + + t[#t+1] = Def.ActorFrame{ + InitCommand=cmd(x,_screen.cx;y,(_screen.cy/1.6)+(spacing)), + OffCommand=function(self) + self:sleep(0.13 * i):decelerate(0.6):diffusealpha(0) + end; + Def.Quad { + InitCommand=cmd(zoomto,400,36;diffuse,JudgmentLineToColor(cur_line);fadeleft,0.5;faderight,0.5;); + OnCommand=function(self) + self:diffusealpha(0):sleep(0.1 * i):decelerate(0.9):diffusealpha(1) + end; + }; + + Def.BitmapText { + Font = "_roboto condensed Bold 48px", + InitCommand=cmd(zoom,0.6;diffuse,color("#000000");settext,string.upper(JudgmentLineToLocalizedString(cur_line))); + OnCommand=function(self) + self:diffusealpha(0):sleep(0.13 * i):decelerate(0.6):diffusealpha(0.6) + end; + } + } +end + +-- ################################################# +-- Time to deal with all of the player stats. ALL OF THEM. + +local eval_parts = Def.ActorFrame {} + +for ip, p in ipairs(GAMESTATE:GetHumanPlayers()) do + -- Some things to help positioning + local step_count_offs = string.find(p, "P1") and -140 or 140 + local grade_parts_offs = string.find(p, "P1") and -320 or 320 + local p_grade = STATSMAN:GetAccumPlayedStageStats():GetPlayerStageStats(p):GetGrade() + + -- Step counts. + for i, v in ipairs(eval_lines) do + local spacing = 38*i + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(x,_screen.cx + step_count_offs;y,(_screen.cy/1.6)+(spacing);diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;diffusealpha,1.0;shadowlength,1), + OnCommand=function(self) + self:settext(GetJLineValue(v, p)) + if string.find(p, "P1") then + self:horizalign(right) + else + self:horizalign(left) + end + self:diffusealpha(0):sleep(0.1 * i):decelerate(0.9):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.1 * i):decelerate(0.3):diffusealpha(0) + end; + } + end + + -- Letter grade and associated parts. + eval_parts[#eval_parts+1] = Def.ActorFrame{ + InitCommand=cmd(x,_screen.cx + grade_parts_offs;y,_screen.cy/1.91), + + --Containers. + Def.Quad { + InitCommand=cmd(zoomto,190,115;diffuse,ColorLightTone(PlayerColor(p));diffusebottomedge,color("#FEEFCA");), + OnCommand=function(self) + self:diffusealpha(0):decelerate(0.4):diffusealpha(0.5) + end, + OffCommand=cmd(decelerate,0.3;diffusealpha,0) + }, + + Def.Quad { + InitCommand=cmd(vertalign,top;y,60+grade_area_offset;zoomto,190,136;diffuse,color("#fce1a1");), + OnCommand=function(self) + self:diffusealpha(0):decelerate(0.4):diffusealpha(0.4) + end, + OffCommand=cmd(decelerate,0.3;diffusealpha,0) + }, + + LoadActor(THEME:GetPathG("GradeDisplay", "Grade " .. p_grade)) .. { + InitCommand=cmd(zoom,0.75;); + OnCommand=function(self) + self:diffusealpha(0):zoom(1):sleep(0.63):decelerate(0.4):zoom(0.75):diffusealpha(1) + end; + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + }, + } + + -- Primary score. + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(horizalign,center;x,_screen.cx + (grade_parts_offs);y,(_screen.cy-65)+grade_area_offset;diffuse,ColorMidTone(PlayerColor(p));zoom,1;shadowlength,1;maxwidth,180), + OnCommand=function(self) + self:settext(GetPlScore(p, "primary")):diffusealpha(0):sleep(0.5):decelerate(0.3):diffusealpha(1) + end; + OffCommand=function(self) + self:decelerate(0.3):diffusealpha(0) + end; + } + -- Secondary score. + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(horizalign,center;x,_screen.cx + (grade_parts_offs);y,(_screen.cy-65)+30+grade_area_offset;diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;shadowlength,1), + OnCommand=function(self) + self:settext(GetPlScore(p, "secondary")):diffusealpha(0):sleep(0.6):decelerate(0.3):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.1):decelerate(0.3):diffusealpha(0) + end; + } +end + +t[#t+1] = eval_parts + +return t; + Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/_bannerframe.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/_bannerframe.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,431 @@ +local t = Def.ActorFrame {}; + +-- A very useful table... +local eval_lines = { + "W1", + "W2", + "W3", + "W4", + "W5", + "Miss", + "MaxCombo" +} + +local eval_radar = { + Types = { 'Holds', 'Rolls', 'Hands', 'Mines', 'Lifts' }, +} + +local grade_area_offset = 16 + +-- And a function to make even better use out of the table. +local function GetJLineValue(line, pl) + if line == "Held" then + return STATSMAN:GetCurStageStats():GetPlayerStageStats(pl):GetHoldNoteScores("HoldNoteScore_Held") + elseif line == "MaxCombo" then + return STATSMAN:GetCurStageStats():GetPlayerStageStats(pl):MaxCombo() + else + return STATSMAN:GetCurStageStats():GetPlayerStageStats(pl):GetTapNoteScores("TapNoteScore_" .. line) + end + return "???" +end + +-- You know what, we'll deal with getting the overall scores with a function too. +local function GetPlScore(pl, scoretype) + local primary_score = STATSMAN:GetCurStageStats():GetPlayerStageStats(pl):GetScore() + local secondary_score = FormatPercentScore(STATSMAN:GetCurStageStats():GetPlayerStageStats(pl):GetPercentDancePoints()) + + if PREFSMAN:GetPreference("PercentageScoring") then + primary_score, secondary_score = secondary_score, primary_score + end + + if scoretype == "primary" then + return primary_score + else + return secondary_score + end +end + +-- ################################################# +-- That's enough functions; let's get this done. + +-- Shared portion. +local mid_pane = Def.ActorFrame { + OnCommand=cmd(diffusealpha,0;sleep,0.3;decelerate,0.4;diffusealpha,1); + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + -- Song/course banner. + Def.Sprite { + InitCommand=function(self) + local target = GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentCourse() or GAMESTATE:GetCurrentSong() + if target and target:HasBanner() then + self:Load(target:GetBannerPath()) + else + self:Load(THEME:GetPathG("Common fallback", "banner")) + end + self:scaletoclipped(468,146):x(_screen.cx):y(_screen.cy-173):zoom(0.8) + end + }, + -- Banner frame. + LoadActor("_bannerframe") .. { + InitCommand=cmd(x,_screen.cx;y,_screen.cy-172;zoom,0.8) + } +} + +-- Song or Course Title +if not GAMESTATE:IsCourseMode() then + mid_pane[#mid_pane+1] = Def.BitmapText { + Font="Common Fallback", + InitCommand=function(self) + self:x(_screen.cx):y(_screen.cy+188):diffuse(color("#512232")):shadowlength(1):zoom(0.75):maxwidth(500) + end; + OnCommand=function(self) + local song = GAMESTATE:GetCurrentSong(); + if song then + self:settext(song:GetDisplayMainTitle()); + else + self:settext(""); + end; + self:diffusealpha(0):sleep(1.3):decelerate(0.4):diffusealpha(1) + end, + OffCommand=cmd(decelerate,0.4;diffusealpha,0) + } + mid_pane[#mid_pane+1] = Def.BitmapText { + Font="Common Fallback", + InitCommand=function(self) + self:x(_screen.cx):y(_screen.cy+188+22):diffuse(color("#512232")):shadowlength(1):zoom(0.6):maxwidth(500) + end; + OnCommand=function(self) + local song = GAMESTATE:GetCurrentSong(); + if song then + self:settext(song:GetDisplaySubTitle()); + else + self:settext(""); + end; + self:diffusealpha(0):sleep(1.3):decelerate(0.4):diffusealpha(1) + end, + OffCommand=cmd(decelerate,0.4;diffusealpha,0) + } +else + mid_pane[#mid_pane+1] = Def.BitmapText { + Font="Common Fallback", + InitCommand=function(self) + self:x(_screen.cx):y(_screen.cy+188):diffuse(color("#512232")):shadowlength(1):zoom(0.75):maxwidth(500) + end; + OnCommand=function(self) + local course = GAMESTATE:GetCurrentCourse() + self:settext(course:GetDisplayFullTitle()) + self:diffusealpha(0):sleep(1.3):decelerate(0.4):diffusealpha(1) + end, + OffCommand=cmd(decelerate,0.4;diffusealpha,0) + } +end + +-- Each line's text, and associated decorations. +for i, v in ipairs(eval_lines) do + local spacing = 38*i + local cur_line = "JudgmentLine_" .. v + + mid_pane[#mid_pane+1] = Def.ActorFrame{ + InitCommand=cmd(x,_screen.cx;y,(_screen.cy/1.48)+(spacing)), + OffCommand=function(self) + self:sleep(0.13 * i):decelerate(0.6):diffusealpha(0) + end; + Def.Quad { + InitCommand=cmd(zoomto,400,36;diffuse,JudgmentLineToColor(cur_line);fadeleft,0.5;faderight,0.5;); + OnCommand=function(self) + self:diffusealpha(0):sleep(0.1 * i):decelerate(0.9):diffusealpha(1) + end; + }; + + Def.BitmapText { + Font = "_roboto condensed Bold 48px", + InitCommand=cmd(zoom,0.6;diffuse,color("#000000");settext,string.upper(JudgmentLineToLocalizedString(cur_line))); + OnCommand=function(self) + self:diffusealpha(0):sleep(0.13 * i):decelerate(0.6):diffusealpha(0.6) + end; + } + } +end + +t[#t+1] = mid_pane + +-- ################################################# +-- Time to deal with all of the player stats. ALL OF THEM. + +local eval_parts = Def.ActorFrame {} + +for ip, p in ipairs(GAMESTATE:GetHumanPlayers()) do + -- Some things to help positioning + local step_count_offs = string.find(p, "P1") and -140 or 140 + local grade_parts_offs = string.find(p, "P1") and -320 or 320 + local p_grade = STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetGrade() + + -- Step counts. + for i, v in ipairs(eval_lines) do + local spacing = 38*i + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(x,_screen.cx + step_count_offs;y,(_screen.cy/1.48)+(spacing);diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;diffusealpha,1.0;shadowlength,1;maxwidth,120;), + OnCommand=function(self) + self:settext(GetJLineValue(v, p)) + if string.find(p, "P1") then + self:horizalign(right) + else + self:horizalign(left) + end + self:diffusealpha(0):sleep(0.1 * i):decelerate(0.6):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.07 * i):decelerate(0.3):diffusealpha(0) + end; + } + end + + -- Letter grade and associated parts. + eval_parts[#eval_parts+1] = Def.ActorFrame{ + InitCommand=cmd(x,_screen.cx + grade_parts_offs;y,_screen.cy/1.91), + + --Containers + Def.Quad { + InitCommand=cmd(zoomto,190,115;diffuse,ColorLightTone(PlayerColor(p));diffusebottomedge,color("#FEEFCA");), + OnCommand=function(self) + self:diffusealpha(0):decelerate(0.4):diffusealpha(0.5) + end, + OffCommand=cmd(decelerate,0.3;diffusealpha,0) + }, + + Def.Quad { + InitCommand=cmd(vertalign,top;y,60+grade_area_offset;zoomto,190,136;diffuse,color("#fce1a1");), + OnCommand=function(self) + self:diffusealpha(0):decelerate(0.4):diffusealpha(0.4) + end, + OffCommand=cmd(decelerate,0.3;diffusealpha,0) + }, + + LoadActor(THEME:GetPathG("GradeDisplay", "Grade " .. p_grade)) .. { + InitCommand=cmd(zoom,0.75;); + OnCommand=function(self) + self:diffusealpha(0):zoom(1):sleep(0.63):decelerate(0.4):zoom(0.75):diffusealpha(1) + if STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetStageAward() then + self:sleep(0.1):decelerate(0.4):addy(-12); + else + self:addy(0); + end; + end; + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + }, + + Def.BitmapText { + Font = "_roboto condensed 24px", + InitCommand=cmd(diffuse,Color.White;zoom,1;addy,38;maxwidth,160;uppercase,true;diffuse,ColorDarkTone(PlayerDarkColor(p));diffusetopedge,ColorMidTone(PlayerColor(p));shadowlength,1;), + OnCommand=function(self) + if STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetStageAward() then + self:settext(THEME:GetString( "StageAward", ToEnumShortString(STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetStageAward()) )) + self:diffusealpha(0):zoomx(0.5):sleep(1):decelerate(0.4):zoomx(1):diffusealpha(1) + end + end; + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + } + } + + + -- Primary score. + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(horizalign,center;x,_screen.cx + (grade_parts_offs);y,(_screen.cy-59)+grade_area_offset;diffuse,ColorMidTone(PlayerColor(p));zoom,1;shadowlength,1;maxwidth,180), + OnCommand=function(self) + self:settext(GetPlScore(p, "primary")):diffusealpha(0):sleep(0.5):decelerate(0.3):diffusealpha(1) + end; + OffCommand=function(self) + self:decelerate(0.3):diffusealpha(0) + end; + } + -- Secondary score. + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(horizalign,center;x,_screen.cx + (grade_parts_offs);y,(_screen.cy-59)+35+grade_area_offset;diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;shadowlength,1), + OnCommand=function(self) + self:settext(GetPlScore(p, "secondary")):diffusealpha(0):sleep(0.6):decelerate(0.3):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.1):decelerate(0.3):diffusealpha(0) + end; + } + + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "Common Condensed", + InitCommand=cmd(horizalign,center;x,_screen.cx + (grade_parts_offs);y,(_screen.cy-50)+56+grade_area_offset;diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;shadowlength,1;maxwidth,180), + OnCommand=function(self) + local record = STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetPersonalHighScoreIndex() + local hasPersonalRecord = record ~= -1 + self:visible(hasPersonalRecord); + local text = string.format(THEME:GetString("ScreenEvaluation", "PersonalRecord"), record+1) + self:settext(text) + self:diffusealpha(0):sleep(0.6):decelerate(0.3):diffusealpha(0.9) + end; + OffCommand=function(self) + self:sleep(0.1):decelerate(0.3):diffusealpha(0) + end; + } + + -- Other stats (holds, mines, etc.) + for i, rc_type in ipairs(eval_radar.Types) do + local performance = STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetRadarActual():GetValue( "RadarCategory_"..rc_type ) + local possible = STATSMAN:GetCurStageStats():GetPlayerStageStats(p):GetRadarPossible():GetValue( "RadarCategory_"..rc_type ) + local label = THEME:GetString("RadarCategory", rc_type) + + eval_parts[#eval_parts+1] = Def.ActorFrame { + InitCommand=function(self) + self:x(_screen.cx + (grade_parts_offs)) + self:y((_screen.cy + 104 - 32) + (i-1)*32) + end; + OnCommand=function(self) + self:diffusealpha(0):sleep(0.1 * i):decelerate(0.5):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.13 * i):decelerate(0.6):diffusealpha(0) + end; + Def.Quad { + InitCommand=cmd(zoomto,190,28;diffuse,color("#fce1a1");diffusealpha,0.4;); + }; + Def.BitmapText { + Font = "Common Condensed", + InitCommand=cmd(zoom,0.8;x,-80;horizalign,left;diffuse,color("0,0,0,0.75");shadowlength,1;), + BeginCommand=function(self) + self:settext(label .. ":") + end + }; + Def.BitmapText { + Font = "_overpass 36px", + InitCommand=cmd(zoom,0.5;x,83;horizalign,right;maxwidth,200;diffuse,ColorDarkTone(PlayerColor(p));shadowlength,1;), + BeginCommand=function(self) + self:settext(performance .. "/" .. possible) + end + }; + }; + end; + + -- Options + eval_parts[#eval_parts+1] = Def.BitmapText { + Font = "Common Condensed", + InitCommand=cmd(horizalign,center;vertalign,top;x,_screen.cx + (grade_parts_offs);y,(_screen.cy+196+43);wrapwidthpixels,240;diffuse,ColorDarkTone(PlayerColor(p));zoom,0.75;shadowlength,1), + OnCommand=function(self) + self:settext(GAMESTATE:GetPlayerState(p):GetPlayerOptionsString(0)) + self:diffusealpha(0):sleep(0.8):decelerate(0.6):diffusealpha(1) + end; + OffCommand=function(self) + self:sleep(0.1):decelerate(0.3):diffusealpha(0) + end; + }; +end + +t[#t+1] = eval_parts + + +-- todo: replace. +if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then + if GAMESTATE:IsCourseMode() == false then + -- Difficulty banner + local grade_parts_offs = -320 + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(horizalign,center;x,_screen.cx + grade_parts_offs;y,_screen.cy-96+grade_area_offset;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(zoomx,0.3;diffusealpha,0;sleep,0.5;decelerate,0.4;zoomx,1;diffusealpha,1;); + OffCommand=cmd(decelerate,0.4;diffusealpha,0;); + LoadFont("Common Fallback") .. { + InitCommand=cmd(zoom,1;horizalign,center;shadowlength,1); + OnCommand=cmd(playcommand,"Set";); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set";); + ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set";); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cdp1 = GetCustomDifficulty(st, diff, courseType); + self:settext(string.upper(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))) .. " " .. stepsP1:GetMeter()); + self:diffuse(ColorDarkTone(CustomDifficultyToColor(cdp1))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + end; + +end; + + +if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then + + if GAMESTATE:IsCourseMode() == false then + local grade_parts_offs = 320 + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(horizalign,center;x,_screen.cx + grade_parts_offs;y,_screen.cy-96+grade_area_offset;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(zoomx,0.3;diffusealpha,0;sleep,0.5;decelerate,0.4;zoomx,1;diffusealpha,1;); + OffCommand=cmd(decelerate,0.4;diffusealpha,0;); + LoadFont("Common Fallback") .. { + InitCommand=cmd(zoom,1;horizalign,center;shadowlength,1); + OnCommand=cmd(playcommand,"Set";); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set";); + ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set";); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cdp2 = GetCustomDifficulty(st, diff, courseType); + self:settext(string.upper(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))) .. " " .. stepsP2:GetMeter()); + self:diffuse(ColorDarkTone(CustomDifficultyToColor(cdp2))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + + end; + +end; + +t[#t+1] = Def.BitmapText { + Font = "Common Italic Condensed", + Condition=GAMESTATE:HasEarnedExtraStage(); + InitCommand=cmd(horizalign,center;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-244;zoom,1;diffuse,color("#EC3F99");diffusebottomedge,color("#AB3468");), + OnCommand=function(self) + local text = string.upper(THEME:GetString("ScreenEvaluation", "ExtraUnlocked")) + self:settext(text) + self:diffusealpha(0):zoomx(0.7):sleep(1.3):decelerate(0.3):diffusealpha(1):zoomx(1) + end; + OffCommand=function(self) + self:sleep(0.1):decelerate(0.3):diffusealpha(0) + end; + } + +t[#t+1] = StandardDecorationFromFileOptional("LifeDifficulty","LifeDifficulty"); +t[#t+1] = StandardDecorationFromFileOptional("TimingDifficulty","TimingDifficulty"); + +if gameplay_pause_count > 0 then + t[#t+1]= Def.BitmapText{ + Font= "Common Italic Condensed", + Text= THEME:GetString("PauseMenu", "pause_count") .. ": " .. gameplay_pause_count, + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-130;shadowlength,1;maxwidth,140;); + OnCommand=function(self) + self:diffuse(color("#FF0000")):diffusebottomedge(color("#512232")):zoom(0.8); + self:diffusealpha(0):sleep(1.5):smooth(0.3):diffusealpha(1); + end; + OffCommand=cmd(sleep,0.2;decelerate,0.3;diffusealpha,0;); + } +end + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/_underbanner.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenEvaluation underlay/_underbanner.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameInformation underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameInformation underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameInformation underlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameInformation underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -local t = Def.ActorFrame {}; ---[[ t[#t+1] = Def.Actor { - OnCommand=function(self) - local sTarget = PROFILEMAN:GetProfileDir('ProfileSlot_Machine'); - -- - WriteFile(sTarget .. "Jason.txt","Charlie is a magical unicorn!"); - end; -}; --]] - -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay background.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay background.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -return Def.ActorFrame { Name="YOU_WISH_YOU_WERE_PLAYING_BEATMANIA_RIGHT_NOW" }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger all/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger all/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger all/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger all/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame { - Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); - OnCommand=cmd(smooth,1;diffuse,color("0.75,0,0,0.75");decelerate,2;diffuse,color("0,0,0,1")); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,231 +1,3 @@ -local maxSegments = 150 +local t = Def.ActorFrame {}; -local function CreateSegments(Player) - local t = Def.ActorFrame { }; - local bars = Def.ActorFrame{ Name="CoverBars" }; - local bpmFrame = Def.ActorFrame{ Name="BPMFrame"; }; - local stopFrame = Def.ActorFrame{ Name="StopFrame"; }; - local delayFrame = Def.ActorFrame{ Name="DelayFrame"; }; - local warpFrame = Def.ActorFrame{ Name="WarpFrame"; }; - local fakeFrame = Def.ActorFrame{ Name="FakeFrame"; }; - local scrollFrame = Def.ActorFrame{ Name="ScrollFrame"; }; - local speedFrame = Def.ActorFrame{ Name="SpeedFrame"; }; - - local fFrameWidth = 380; - local fFrameHeight = 8; - -- XXX: doesn't work in course mode -aj - if not GAMESTATE:IsSideJoined( Player ) then - return t - elseif not GAMESTATE:IsCourseMode() then - -- Straight rip off NCRX - local song = GAMESTATE:GetCurrentSong(); - local steps = GAMESTATE:GetCurrentSteps( Player ); - if steps then - local timingData = steps:GetTimingData(); - -- use the StepsSeconds, which will almost always be more proper - -- than a file with ITG2r21 compatibility. - if song then - local songLen = song:MusicLengthSeconds(); - - local firstBeatSecs = song:GetFirstSecond(); - local lastBeatSecs = song:GetLastSecond(); - - local bpms = timingData:GetBPMsAndTimes(true); - local stops = timingData:GetStops(true); - local delays = timingData:GetDelays(true); - local warps = timingData:GetWarps(true); - local fakes = timingData:GetFakes(true); - local scrolls = timingData:GetScrolls(true); - local speeds = timingData:GetSpeeds(true); - - -- we don't want too many segments to be shown. - local sumSegments = #bpms + #stops + #delays + #warps + #fakes + #scrolls + #speeds - if sumSegments > maxSegments then - return Def.ActorFrame{} - end - - local function CreateLine(beat, secs, firstShadow, firstDiffuse, secondShadow, firstEffect, secondEffect) - local beatTime = timingData:GetElapsedTimeFromBeat(beat); - if beatTime < 0 then beatTime = 0; end; - return Def.ActorFrame { - Def.Quad { - InitCommand=function(self) - self:shadowlength(0); - self:shadowcolor(color(firstShadow)); - -- set width - self:zoomto(math.max((secs/songLen)*fFrameWidth, 1), fFrameHeight); - -- find location - self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); - end; - OnCommand=function(self) - self:diffuse(color(firstDiffuse)); - end; - }; - --[[ there's a cool effect that can't happen because we don't fade out like we did before - Def.Quad { - InitCommand=function(self) - --self:diffuse(HSVA(192,1,0.8,0.8)); - self:shadowlength(0); - self:shadowcolor(color(secondShadow)); - -- set width - self:zoomto(math.max((secs/songLen)*fFrameWidth, 1),fFrameHeight); - -- find location - self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); - end; - OnCommand=function(self) - self:diffusealpha(1); - self:diffuseshift(); - self:effectcolor1(color(firstEffect)); - self:effectcolor2(color(secondEffect)); - self:effectclock('beat'); - self:effectperiod(1/8); - -- - self:diffusealpha(0); - self:sleep(beatTime+1); - self:diffusealpha(1); - self:linear(4); - self:diffusealpha(0); - end; - };]] - }; - end; - - for i=2,#bpms do - bpmFrame[#bpmFrame+1] = CreateLine(bpms[i][1], 0, - "#00808077", "#00808077", "#00808077", "#FF634777", "#FF000077"); - end; - - for i=1,#delays do - delayFrame[#delayFrame+1] = CreateLine(delays[i][1], delays[i][2], - "#FFFF0077", "#FFFF0077", "#FFFF0077", "#00FF0077", "#FF000077"); - end; - - for i=1,#stops do - stopFrame[#stopFrame+1] = CreateLine(stops[i][1], stops[i][2], - "#FFFFFF77", "#FFFFFF77", "#FFFFFF77", "#FFA50077", "#FF000077"); - end; - - for i=1,#scrolls do - scrollFrame[#scrollFrame+1] = CreateLine(scrolls[i][1], 0, - "#4169E177", "#4169E177", "#4169E177", "#0000FF77", "#FF000077"); - end; - - for i=1,#speeds do - -- TODO: Turn beats into seconds for this calculation? - speedFrame[#speedFrame+1] = CreateLine(speeds[i][1], 0, - "#ADFF2F77", "#ADFF2F77", "#ADFF2F77", "#7CFC0077", "#FF000077"); - end; - - for i=1,#warps do - warpFrame[#warpFrame+1] = CreateLine(warps[i][1], 0, - "#CC00CC77", "#CC00CC77", "#CC00CC77", "#FF33CC77", "#FF000077"); - end; - - for i=1,#fakes do - fakeFrame[#fakeFrame+1] = CreateLine(fakes[i][1], 0, - "#BC8F8F77", "#BC8F8F77", "#BC8F8F77", "#F4A46077", "#FF000077"); - end; - end; - bars[#bars+1] = bpmFrame; - bars[#bars+1] = scrollFrame; - bars[#bars+1] = speedFrame; - bars[#bars+1] = stopFrame; - bars[#bars+1] = delayFrame; - bars[#bars+1] = warpFrame; - bars[#bars+1] = fakeFrame; - t[#t+1] = bars; - --addition here: increase performance a ton by only rendering once - t[#t+1] = Def.ActorFrameTexture{Name="Target"} - t[#t+1] = Def.Sprite{Name="Actual"} - local FirstPass=true; - local function Draw(self) - kids=self:GetChildren(); - if FirstPass then - kids.Target:setsize(fFrameWidth,fFrameHeight); - kids.Target:EnableAlphaBuffer(true); - kids.Target:Create(); - - kids.Target:GetTexture():BeginRenderingTo(); - for k,v in pairs(kids) do - if k~="Target" and k~="Actual" then - v:Draw(); - end - end - kids.Target:GetTexture():FinishRenderingTo(); - - kids.Actual:SetTexture(kids.Target:GetTexture()); - FirstPass=false; - end - kids.Actual:Draw(); - end - t.InitCommand=function(self) self:SetDrawFunction(Draw); end - end - end - return t -end -local t = LoadFallbackB() -t[#t+1] = StandardDecorationFromFileOptional("ScoreFrame","ScoreFrame"); - -local function songMeterScale(val) return scale(val,0,1,-380/2,380/2) end - -for pn in ivalues(PlayerNumber) do - local MetricsName = "SongMeterDisplay" .. PlayerNumberToString(pn); - local songMeterDisplay = Def.ActorFrame{ - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - Def.Quad { - InitCommand=cmd(zoomto,420,20); - OnCommand=cmd(fadeleft,0.35;faderight,0.35;diffuse,Color.Black;diffusealpha,0.5); - }; - LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'frame ' .. PlayerNumberToString(pn) ) ) .. { - InitCommand=function(self) - self:name('Frame'); - ActorUtil.LoadAllCommandsAndSetXY(self,MetricsName); - end; - }; - Def.Quad { - InitCommand=cmd(zoomto,2,8); - OnCommand=cmd(x,songMeterScale(0.25);diffuse,PlayerColor(pn);diffusealpha,0.5); - }; - Def.Quad { - InitCommand=cmd(zoomto,2,8); - OnCommand=cmd(x,songMeterScale(0.5);diffuse,PlayerColor(pn);diffusealpha,0.5); - }; - Def.Quad { - InitCommand=cmd(zoomto,2,8); - OnCommand=cmd(x,songMeterScale(0.75);diffuse,PlayerColor(pn);diffusealpha,0.5); - }; - Def.SongMeterDisplay { - StreamWidth=THEME:GetMetric( MetricsName, 'StreamWidth' ); - Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream ' .. PlayerNumberToString(pn) ) )..{ - InitCommand=cmd(diffuse,PlayerColor(pn);diffusealpha,0.5;blend,Blend.Add;); - }; - Tip=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'tip ' .. PlayerNumberToString(pn) ) ) .. { InitCommand=cmd(visible,false); }; - }; - }; - if ThemePrefs.Get("TimingDisplay") == true then - songMeterDisplay[#songMeterDisplay+1] = CreateSegments(pn); - end - t[#t+1] = songMeterDisplay -end; - -for pn in ivalues(PlayerNumber) do - local MetricsName = "ToastyDisplay" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG("Player", 'toasty'), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - }; -end; - - -t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); -t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); -t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle"); - -return t +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay failed/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay failed/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay failed/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay failed/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,20 +1,4 @@ -local longFail = ThemePrefs.Get("LongFail"); - local t = Def.ActorFrame{}; - -if longFail then - t[#t+1] = Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); - OnCommand=cmd(decelerate,1.25;diffuse,color("0.75,0,0,0.75");linear,7;diffuse,color("0,0,0,1");sleep,1.25;linear,1;diffuse,color("1,0,0,1");decelerate,2;diffuse,color("0,0,0,1")); - }; - t[#t+1] = Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("1,1,1,1");diffusealpha,0); - OnCommand=cmd(finishtweening;diffusealpha,1;decelerate,1.25;diffuse,color("1,0,0,0")); - }; - t[#t+1] = LoadActor(THEME:GetPathS( "ScreenGameplayAlternate", "failed" ) ) .. { - StartTransitioningCommand=cmd(play); - }; -else t[#t+1] = Def.Quad{ InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); OnCommand=cmd(smooth,1;diffuse,color("0.75,0,0,0.75");decelerate,2;diffuse,color("0,0,0,1")); @@ -26,6 +10,5 @@ t[#t+1] = LoadActor(THEME:GetPathS( Var "LoadingScreen", "failed" ) ) .. { StartTransitioningCommand=cmd(play); }; -end; -return t; \ No newline at end of file +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay go/go.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay go/go.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay in/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay in/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -2,7 +2,7 @@ t[#t+1] = Def.Sprite { InitCommand=cmd(Center;diffusealpha,1); BeginCommand=cmd(LoadFromCurrentSongBackground); - OnCommand=function(self) + StartTransitioningCommand=function(self) if PREFSMAN:GetPreference("StretchBackgrounds") then self:SetSize(SCREEN_WIDTH,SCREEN_HEIGHT) else @@ -12,4 +12,8 @@ self:diffusealpha(0) end; }; + +-- Pause menu + t[#t+1]= LoadActor(THEME:GetPathG("", "pause_menu")) + return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay next course song/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay next course song/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay next course song/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay next course song/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -10,30 +10,4 @@ FinishCommand=cmd(linear,0.1;glow,Color.Alpha(Color("White"),0.5);decelerate,0.4;glow,Color("Invisible");diffusealpha,0); }; -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(Center); - OnCommand=cmd(stoptweening;addx,30;linear,3;addx,-30); - LoadFont("Common Normal") .. { - InitCommand=cmd(strokecolor,Color("Outline");y,-10); - BeforeLoadingNextCourseSongMessageCommand=function(self) - local NextSong = SCREENMAN:GetTopScreen():GetNextCourseSong(); - self:settext( NextSong:GetDisplayFullTitle() ); - end; - StartCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); - }; ---[[ LoadFont("Common Normal") .. { - Text=GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentCourse():GetCourseType() or GAMESTATE:GetCurrentSong():GetDisplayArtist(); - InitCommand=cmd(strokecolor,Color("Outline");zoom,0.75); - OnCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); - }; --]] - LoadFont("Common Normal") .. { - InitCommand=cmd(strokecolor,Color("Outline");diffuse,Color("Orange");diffusebottomedge,Color("Yellow");zoom,0.75;y,10); - BeforeLoadingNextCourseSongMessageCommand=function(self) - local NextSong = SCREENMAN:GetTopScreen():GetNextCourseSong(); - self:settext( SecondsToMSSMsMs( NextSong:MusicLengthSeconds() ) ); - end; - StartCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); - }; -}; - return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay out.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -3,7 +3,7 @@ local bg = Def.ActorFrame{ Def.Quad{ InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0")); - OnCommand=cmd(linear,5;diffusealpha,1); + StartTransitioningCommand=cmd(linear,5;diffusealpha,1); }; Def.ActorFrame{ @@ -32,17 +32,17 @@ LoadActor(THEME:GetPathG("_rave result","P1"))..{ Name="P1Win"; InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); - OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + StartTransitioningCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); }; LoadActor(THEME:GetPathG("_rave result","P2"))..{ Name="P2Win"; InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); - OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + StartTransitioningCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); }; LoadActor(THEME:GetPathG("_rave result","draw"))..{ Name="Draw"; InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); - OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + StartTransitioningCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); }; }; }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,230 @@ +local t = Def.ActorFrame {}; +local function UpdateTime(self) + local c = self:GetChildren(); + for pn in ivalues(PlayerNumber) do + local vStats = STATSMAN:GetCurStageStats():GetPlayerStageStats( pn ); + local vTime; + local obj = self:GetChild( string.format("RemainingTime" .. PlayerNumberToString(pn) ) ); + if vStats and obj then + vTime = vStats:GetLifeRemainingSeconds() + obj:settext( SecondsToMMSSMsMs( vTime ) ); + end; + end; +end +local function songMeterScale(val) return scale(val,0,1,-380/2,380/2) end + +if GAMESTATE:GetCurrentCourse() then + if GAMESTATE:GetCurrentCourse():GetCourseType() == "CourseType_Survival" then + -- RemainingTime + for pn in ivalues(PlayerNumber) do + local MetricsName = "RemainingTime" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "RemainingTime"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; + end + for pn in ivalues(PlayerNumber) do + local MetricsName = "DeltaSeconds" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "DeltaSeconds"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; + end + end; +end; +t.InitCommand=cmd(SetUpdateFunction,UpdateTime); + + if GAMESTATE:GetPlayMode() ~= 'PlayMode_Rave' then + for ip, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do + if ShowStandardDecoration("LifeMeterBar" .. ToEnumShortString(pn)) then + local life_type = GAMESTATE:GetPlayerState(pn):GetPlayerOptions("ModsLevel_Song"):LifeSetting() + t[#t+1] = LoadActor(THEME:GetPathG(Var "LoadingScreen", "lifebar_" .. ToEnumShortString(life_type)), pn) .. { + InitCommand=function(self) + self:name("LifeMeterBar" .. ToEnumShortString(pn)) + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen") + end + } + end + end; + + for ip, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do + local life_x_position = string.find(pn, "P1") and SCREEN_LEFT+40 or SCREEN_RIGHT-40 + local life_tween = string.find(pn, "P1") and -1 or 1 + local second_tween = string.find(pn, "P1") and 1 or -1 + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,life_x_position;y,SCREEN_CENTER_Y;rotationz,-90;); + OnCommand=cmd(addx,100*life_tween;sleep,1;decelerate,0.9;addx,100*second_tween); + OffCommand=cmd(sleep,1;decelerate,0.9;addx,100*life_tween;); + LoadActor(THEME:GetPathG("LifeMeter", "bar frame")) .. { + }; + Def.ActorFrame { + InitCommand=cmd(x,-207;y,0;); + LoadActor("_diffdia") .. { + OnCommand=cmd(playcommand,"Set";); + ["CurrentSteps"..ToEnumShortString(pn).."ChangedMessageCommand"]=cmd(playcommand,"Set";); + SetCommand=function(self) + steps_data = GAMESTATE:GetCurrentSteps(pn) + local song = GAMESTATE:GetCurrentSong(); + if song then + if steps_data ~= nil then + local st = steps_data:GetStepsType(); + local diff = steps_data:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:diffuse(CustomDifficultyToColor(cd)); + end + end + end; + }; + LoadFont("StepsDisplay description") .. { + InitCommand=cmd(zoom,0.75;horizalign,center;rotationz,90); + OnCommand=cmd(playcommand,"Set";); + ["CurrentSteps"..ToEnumShortString(pn).."ChangedMessageCommand"]=cmd(playcommand,"Set";); + ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + steps_data = GAMESTATE:GetCurrentSteps(pn) + local song = GAMESTATE:GetCurrentSong(); + if song then + if steps_data ~= nil then + local st = steps_data:GetStepsType(); + local diff = steps_data:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:settext(steps_data:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + }; + end; + end; + + -- Move diamonds on battle + if GAMESTATE:GetPlayMode() == 'PlayMode_Rave' then + -- P1 + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-110;y,SCREEN_BOTTOM-55;); + LoadActor("_diffdia") .. { + OnCommand=cmd(playcommand,"Set";); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set";); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:diffuse(CustomDifficultyToColor(cd)); + end + end + end; + }; + LoadFont("StepsDisplay description") .. { + InitCommand=cmd(zoom,0.75;horizalign,center;); + OnCommand=cmd(playcommand,"Set";); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set";); + ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:settext(stepsP1:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + -- P2 + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+110;y,SCREEN_BOTTOM-55;); + LoadActor("_diffdia") .. { + OnCommand=cmd(playcommand,"Set";); + CurrentstepsP2ChangedMessageCommand=cmd(playcommand,"Set";); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:diffuse(CustomDifficultyToColor(cd)); + end + end + end; + }; + LoadFont("StepsDisplay description") .. { + InitCommand=cmd(zoom,0.75;horizalign,center); + OnCommand=cmd(playcommand,"Set";); + CurrentstepsP2ChangedMessageCommand=cmd(playcommand,"Set";); + ChangedLanguageDisplayMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local cd = GetCustomDifficulty(st, diff); + self:settext(stepsP2:GetMeter()):diffuse(color("#000000")):diffusealpha(0.8); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + end; + + t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+103;y,SCREEN_BOTTOM-25;); + OnCommand=cmd(draworder,DrawOrder.Screen;addy,100;sleep,0.5;decelerate,0.7;addy,-100;); + OffCommand=cmd(sleep,1;decelerate,0.9;addy,100;); + Def.Quad { + InitCommand=cmd(zoomto,264,12); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.3;fadeleft,0.05;faderight,0.05); + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.25);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.5);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.75);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.SongMeterDisplay { + StreamWidth=260; + Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream') )..{ + InitCommand=cmd(diffuse,Color.White;diffusealpha,0.4;blend,Blend.Add;); + }; + Tip=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'tip')) .. { + InitCommand=cmd(visible,false); + }; + }; + }; +return t Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/_diffdia.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay/_diffdia.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -local t = Def.ActorFrame {}; -local function UpdateTime(self) - local c = self:GetChildren(); - for pn in ivalues(PlayerNumber) do - local vStats = STATSMAN:GetCurStageStats():GetPlayerStageStats( pn ); - local vTime; - local obj = self:GetChild( string.format("RemainingTime" .. PlayerNumberToString(pn) ) ); - if vStats and obj then - vTime = vStats:GetLifeRemainingSeconds() - obj:settext( SecondsToMMSSMsMs( vTime ) ); - end; - end; -end -if GAMESTATE:GetCurrentCourse() then - if GAMESTATE:GetCurrentCourse():GetCourseType() == "CourseType_Survival" then - -- RemainingTime - for pn in ivalues(PlayerNumber) do - local MetricsName = "RemainingTime" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "RemainingTime"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - }; - end - for pn in ivalues(PlayerNumber) do - local MetricsName = "DeltaSeconds" .. PlayerNumberToString(pn); - t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "DeltaSeconds"), pn ) .. { - InitCommand=function(self) - self:player(pn); - self:name(MetricsName); - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; - }; - end - end; -end; -t.InitCommand=cmd(SetUpdateFunction,UpdateTime); -t[#t+1]= LoadActor(THEME:GetPathG("", "pause_menu")) -return t Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay ready/ready.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay ready/ready.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay toasty/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay toasty/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay toasty/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay toasty/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame { --- InitCommand=cmd(x,SCREEN_RIGHT;y,SCREEN_BOTTOM;draworder,101); - StartTransitioningCommand=function(self) - MESSAGEMAN:Broadcast("Toasty",{ Time = math.random(1,3) }); - end -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = Def.ActorFrame {}; + t[#t+1] = LoadActor("ScreenFilter"); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/ScreenFilter.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/ScreenFilter.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/ScreenFilter.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenGameplay underlay/ScreenFilter.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,68 @@ +--[[ Screen Filter ]] +local numPlayers = GAMESTATE:GetNumPlayersEnabled() +local center1P = PREFSMAN:GetPreference("Center1Player") + +local padding = 8 -- 4px on each side +local arrowWidth = 96 -- until noteskin metrics are implemented... + +local filterColor = color("#000000") +local filterAlphas = { + PlayerNumber_P1 = 1, + PlayerNumber_P2 = 1, + Default = 0, +} + +local t = Def.ActorFrame{}; + +local style = GAMESTATE:GetCurrentStyle() +local cols = style:ColumnsPerPlayer() +local styleType = ToEnumShortString(style:GetStyleType()) +local filterWidth = (arrowWidth * cols) + padding +local stepsType = style:GetStepsType() + +if numPlayers == 1 then + local player = GAMESTATE:GetMasterPlayerNumber() + local pNum = (player == PLAYER_1) and 1 or 2 + filterAlphas[player] = tonumber(getenv("ScreenFilterP"..pNum)); + + local pos; + -- [ScreenGameplay] PlayerP#Player*Side(s)X + if center1P then + pos = SCREEN_CENTER_X + elseif stepsType == "StepsType_Dance_Solo" then + pos = SCREEN_CENTER_X + else + local metricName = string.format("PlayerP%i%sX",pNum,styleType) + pos = THEME:GetMetric("ScreenGameplay",metricName) + end + t[#t+1] = Def.Quad{ + Name="SinglePlayerFilter"; + InitCommand=cmd(x,pos;CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]); + }; +else + -- two players... a bit more complex. + if styleType == "TwoPlayersSharedSides" then + -- routine, just use one in the center. + local player = GAMESTATE:GetMasterPlayerNumber() + local pNum = player == PLAYER_1 and 1 or 2 + local metricName = "PlayerP".. pNum .."TwoPlayersSharedSidesX" + t[#t+1] = Def.Quad{ + Name="RoutineFilter"; + InitCommand=cmd(x,THEME:GetMetric("ScreenGameplay",metricName);CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]); + }; + else + -- otherwise we need two separate ones. to the pairsmobile! + for i, player in ipairs(PlayerNumber) do + local pNum = (player == PLAYER_1) and 1 or 2 + filterAlphas[player] = tonumber(getenv("ScreenFilterP"..pNum)); + local metricName = string.format("PlayerP%i%sX",pNum,styleType) + local pos = THEME:GetMetric("ScreenGameplay",metricName) + t[#t+1] = Def.Quad{ + Name="Player"..pNum.."Filter"; + InitCommand=cmd(x,pos;CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]); + }; + end + end +end + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHeartEntry overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHeartEntry overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHeartEntry overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHeartEntry overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ -local cursor_width_padding = 16 -local cursor_spacing_value = 30 - -local heart_xs= { - [PLAYER_1]= SCREEN_CENTER_X * 0.625, - [PLAYER_2]= SCREEN_CENTER_X * 1.375, -} - -local heart_entries= {} -for i, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do - local profile= PROFILEMAN:GetProfile(pn) - if profile and profile:GetIgnoreStepCountCalories() then - heart_entries[pn]= new_numpad_entry{ - Name= pn .. "_heart_entry", - InitCommand= cmd(xy, heart_xs[pn], SCREEN_CENTER_Y+48), - value = LoadFont("Common Large") .. { - InitCommand=cmd(xy,0,-62), - OnCommand=cmd(zoom,0.75;diffuse,PlayerColor(pn);strokecolor,ColorDarkTone(PlayerColor(pn))); - SetCommand=function(self, param) - self:settext(param[1]) - end, - }, - button = LoadFont("Common Normal") ..{ - InitCommand=cmd(shadowlength,1), - SetCommand=function(self, param) - self:settext(param[1]) - end, - OnCommand=cmd(diffuse,color("0.8,0.8,0.8,1");zoom,0.875), - GainFocusCommand=cmd(finishtweening;decelerate,0.125;zoom,1;diffuse,Color.White), - LoseFocusCommand=cmd(finishtweening;smooth,0.1;zoom,0.875;diffuse,color("0.8,0.8,0.8,1")) - }, - button_positions = {{-cursor_spacing_value, -cursor_spacing_value}, {0, -cursor_spacing_value}, {cursor_spacing_value, -cursor_spacing_value}, - {-cursor_spacing_value, 0}, {0, 0}, {cursor_spacing_value, 0}, - {-cursor_spacing_value, cursor_spacing_value}, {0, cursor_spacing_value}, {cursor_spacing_value, cursor_spacing_value}, - {-cursor_spacing_value, cursor_spacing_value*2}, {0, cursor_spacing_value*2}, {cursor_spacing_value, cursor_spacing_value*2}}, - cursor = Def.ActorFrame { - -- Move whole container - MoveCommand=function(self, param) - self:stoptweening() - self:decelerate(0.15) - self:xy(param[1], param[2]) - if param[3] then - self:z(param[3]) - end - end, - -- - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) - ) .. { - OnCommand=cmd(diffuse,PlayerDarkColor(pn)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) - end, - }, - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) - ) .. { - OnCommand=cmd(diffuse,PlayerColor(pn)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) - end, - } - }, - cursor_draw= "first", - prompt = LoadFont("Common Bold") .. { - Name="prompt", - Text=THEME:GetString("ScreenHeartEntry", "Heart Rate"), - InitCommand=cmd(xy,0,-96); - OnCommand=cmd(shadowlength,1;skewx,-0.125;diffusebottomedge,color("#DDDDDD");strokecolor,Color.Outline); - }, - max_value= 300, - auto_done_value= 100, - } - end -end - -local function input(event) - local pn= event.PlayerNumber - if not pn then return end - if event.type == "InputEventType_Release" then return end - if not heart_entries[pn] then return end - local done= heart_entries[pn]:handle_input(event.GameButton) - if done then - SOUND:PlayOnce(THEME:GetPathS("Common", "Start"), true) - local all_done= true - for pn, entry in pairs(heart_entries) do - if not entry.done then all_done= false break end - end - if all_done then - for pn, entry in pairs(heart_entries) do - local profile= PROFILEMAN:GetProfile(pn) - if profile and profile:GetIgnoreStepCountCalories() then - local calories= profile:CalculateCaloriesFromHeartRate( - entry.value, GAMESTATE:GetLastGameplayDuration()) - profile:AddCaloriesToDailyTotal(calories) - end - end - SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToNextScreen") - end - end -end - -local timer_text -local function timer_update(self) - local time= math.floor((self:GetSecsIntoEffect() % 60) * 10) / 10 - if time < 10 then - timer_text:settext(("0%.1f"):format(time)) - else - timer_text:settext(("%.1f"):format(time)) - end -end - -local args= { - -- - Def.ActorFrame{ - Name= "timer", - InitCommand= function(self) - self:effectperiod(2^16) - timer_text= self:GetChild("timer_text") - self:SetUpdateFunction(timer_update) - end, - OnCommand= function(self) - SCREENMAN:GetTopScreen():AddInputCallback(input) - end, - Def.BitmapText{ - Name= "timer_text", Font= "Common Normal", Text= "00.0", - InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-80; diffuse, Color.White), - OnCommand= cmd(strokecolor,Color.Outline), - } - }, - Def.Quad { - InitCommand=cmd(xy, SCREEN_CENTER_X+1, SCREEN_CENTER_Y-100+1;zoomto,2,2); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;linear,0.25;zoomtowidth,420;fadeleft,0.25;faderight,0.25); - }; - Def.Quad { - InitCommand=cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-100;zoomto,2,2); - OnCommand=cmd(diffuse,color("#ffd400");shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,420;fadeleft,0.25;faderight,0.25); - }; - Def.BitmapText { - Name= "explanation", Font= "Common Large", - Text= string.upper(THEME:GetString("ScreenHeartEntry", "Enter Heart Rate")), - InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-128; diffuse, Color.White), - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");strokecolor,ColorDarkTone(color("#ffd400")))} - , - - Def.BitmapText{ - Name= "song_len_label", Font= "Common Normal", - Text= THEME:GetString("ScreenHeartEntry", "Song Length"), - InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y+192-32; diffuse, Color.White), - OnCommand= cmd(shadowlength,1)}, - Def.BitmapText{ - Name= "song_len", Font= "Common Normal", - Text= SecondsToMMSS(GAMESTATE:GetLastGameplayDuration()), - InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y+192-8; diffuse, Color.White), - OnCommand= cmd(shadowlength,1;zoom,0.75), - } - -} - -for pn in ivalues(GAMESTATE:GetEnabledPlayers()) do - args[#args+1] = LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black", 128, 192) .. { - InitCommand=cmd(x,heart_xs[pn];y,SCREEN_CENTER_Y+28), - } -end - -for pn, entry in pairs(heart_entries) do - args[#args+1]= entry:create_actors() -end - -return Def.ActorFrame(args) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHighScores background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHighScores background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHighScores background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHighScores background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + }; +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -6,14 +6,12 @@ local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns"); t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-160); - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH, 32); - OnCommand=cmd(y,-16;diffuse,Color.Black;fadebottom,0.8); - }; + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-220); Def.Quad { InitCommand=cmd(zoomto,SCREEN_WIDTH, 56); - OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.75;fadebottom,0.35); + OnCommand=function(self) + self:diffuse(ScreenColor(SCREENMAN:GetTopScreen():GetName())):diffusebottomedge(ColorDarkTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))):diffusealpha(0.9) + end }; }; @@ -23,23 +21,20 @@ local s = GetCustomDifficulty( st, dc ); t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X-60 + 80 * (i-1);y,SCREEN_CENTER_Y-168); - LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 18) .. { - OnCommand=cmd(diffuse,CustomDifficultyToDarkColor(s);diffusealpha,0.5); - }; - LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 18) .. { - OnCommand=cmd(diffuse,CustomDifficultyToColor(s);diffusealpha,0.125); + InitCommand=cmd(x,SCREEN_CENTER_X+32 + 84 * (i-1);y,SCREEN_CENTER_Y-220); + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded light", 18) .. { + OnCommand=cmd(diffuse,CustomDifficultyToLightColor(s);diffusealpha,0.9); }; - LoadFont("Common Normal") .. { + LoadFont("StepsDisplayListRow description") .. { InitCommand=cmd(uppercase,true;settext,CustomDifficultyToLocalizedString(s)); - OnCommand=cmd(zoom,0.675;maxwidth,80/0.675;diffuse,CustomDifficultyToColor(s);shadowlength,1); + OnCommand=cmd(zoom,0.675;maxwidth,80/0.675;diffuse,CustomDifficultyToDarkColor(s);); }; }; end -t[#t+1] = LoadFont("Common Bold") .. { - InitCommand=cmd(settext,stString;x,SCREEN_CENTER_X-220;y,SCREEN_CENTER_Y-168); - OnCommand=cmd(skewx,-0.125;diffusebottomedge,color("0.75,0.75,0.75");shadowlength,2); +t[#t+1] = LoadFont("Common Normal") .. { + InitCommand=cmd(settext,stString;x,SCREEN_CENTER_X-220;y,SCREEN_CENTER_Y-220;); + OnCommand=cmd(diffusebottomedge,color("0.75,0.75,0.75");shadowlength,2); }; t.OnCommand=cmd(draworder,105); Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/_difficulty frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHighScores decorations/_difficulty frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs background.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs background.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenWithMenuElements background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToInstallSongs overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ --- how does installed song??? let's find out - -local t = Def.ActorFrame{ - LoadFont("Common Normal")..{ - Name="Header"; - InitCommand=cmd(x,SCREEN_LEFT+24;y,SCREEN_TOP+24;halign,0;diffuse,color("#CCCCCC");settext,Screen.String("BodyHeader");shadowlength,1;shadowcolor,HSV(40,0,0.6);diffusetopedge,color("#FFFFFF")); - OnCommand=cmd(queuecommand,"Anim"); - AnimCommand=cmd(cropright,1;faderight,1;addx,96;decelerate,1;addx,-96;skewx,-0.1;cropright,0;faderight,0;); - }; - -- todo: add explantion paragraph here (above the scroller) -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay background/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -return LoadActor("bg.png") ..{ - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomtowidth,SCREEN_WIDTH;zoomtoheight,SCREEN_HEIGHT); - OnCommand=cmd(texcoordvelocity,0,-1;customtexturerect,0,0,SCREEN_WIDTH/self:GetWidth(),SCREEN_HEIGHT/self:GetHeight();diffuse,color("0.9,0.9,0.9,1")); -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay decorations.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay decorations.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -local t = LoadFallbackB(); -t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -return Def.ActorFrame { - Def.ActorFrame { - OnCommand=cmd(x,SCREEN_CENTER_X-20); - - -- Initial glow around receptors - LoadActor("tapglow") .. { - OnCommand=cmd(x,85;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - LoadActor("tapglow") .. { - OnCommand=cmd(x,275;y,95;zoom,0.7;rotationz,270;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - LoadActor("tapglow") .. { - OnCommand=cmd(x,212;y,95;zoom,0.7;rotationz,180;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - LoadActor("tapglow") .. { - OnCommand=cmd(x,148;y,95;zoom,0.7;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - - LoadActor("tapglow") .. { - OnCommand=cmd(x,148;y,95;zoom,0.7;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,9.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - - -- 2nd step UP - LoadActor("tapglow") .. { - OnCommand=cmd(x,212;y,95;zoom,0.7;rotationz,180;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,12.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - - -- 3rd step UP - LoadActor("tapglow") .. { - OnCommand=cmd(x,84;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,15.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - - -- 4th step jump - LoadActor("tapglow") .. { - OnCommand=cmd(x,85;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,18.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - LoadActor("tapglow") .. { - OnCommand=cmd(x,275;y,95;zoom,0.7;rotationz,270;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,18.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - - -- miss step - LoadActor("healthhilight") .. { - OnCommand=cmd(x,180;y,40;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,22.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); - }; - }; - - -- messages - LoadFont("Common Bold") .. { - Text=ScreenString("How To Play StepMania"), - InitCommand=cmd(zbuffer,1;z,20;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;shadowlength,1;strokecolor,Color("Outline")); - BeginCommand=function(self) - self:AddAttribute(12, {Length=9, Diffuse=Color.White}); - end; - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25);diffusealpha,0;zoom,4;sleep,0.0;linear,0.3;diffusealpha,1;zoom,1;sleep,1.8;linear,0.3;zoom,0.75;x,170;y,60); - }; - LoadActor("_howtoplay feet") .. { - InitCommand=cmd(shadowlength,1;strokecolor,Color.Outline); - OnCommand=cmd(z,20;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;addx,-SCREEN_WIDTH;sleep,2.4;decelerate,0.3;addx,SCREEN_WIDTH;sleep,2;linear,0.3;zoomy,0); - }; - Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X+120;y,SCREEN_CENTER_Y+40); - - LoadActor("_howtoplay tap")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,6;queuecommand,"Show"); - }; - LoadActor("_howtoplay tap")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,9.7;queuecommand,"Show"); - }; - LoadActor("_howtoplay tap")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,12.7;queuecommand,"Show"); - }; - LoadActor("_howtoplay tap")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,15.7;queuecommand,"Show"); - }; - LoadActor("_howtoplay jump")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,18.7;queuecommand,"Show"); - }; - LoadActor("_howtoplay miss")..{ - InitCommand=cmd(diffusealpha,0); - ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); - OnCommand=cmd(sleep,22.7;queuecommand,"Show"); - }; - }; -}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/feet.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/feet.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/healthhilight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/healthhilight.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return LoadFont("Common Normal") .. { - Text=ScreenString("Feet"); - BeginCommand=function(self) - self:AddAttribute(5, {Length= 4, Diffuse=Color.Red}) - end; -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -return Def.ActorFrame { - LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); - Def.Quad { - Name="Underline"; - InitCommand=cmd(y,-12); - OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); - }; - LoadFont("Common Bold") .. { - Text=ScreenString("Information"); - InitCommand=cmd(y,-26); - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) - }; - LoadFont("Common Normal") .. { - Text=ScreenString("Jump"); - InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); - OnCommand=cmd(zoom,0.875); - }; -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -return Def.ActorFrame { - LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); - Def.Quad { - Name="Underline"; - InitCommand=cmd(y,-12); - OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); - }; - LoadFont("Common Bold") .. { - Text=ScreenString("Information"); - InitCommand=cmd(y,-26); - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) - }; - LoadFont("Common Normal") .. { - Text=ScreenString("Miss"); - InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); - OnCommand=cmd(zoom,0.75); - }; -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -return Def.ActorFrame { - LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); - Def.Quad { - Name="Underline"; - InitCommand=cmd(y,-12); - OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); - }; - LoadFont("Common Bold") .. { - Text=ScreenString("Information"); - InitCommand=cmd(y,-26); - OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) - }; - LoadFont("Common Normal") .. { - Text=ScreenString("Tap"); - InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); - OnCommand=cmd(zoom,0.875); - }; -}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/jumpmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/jumpmessage.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/missmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/missmessage.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/tapglow.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/tapglow.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/tapmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenHowToPlay overlay/tapmessage.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen in/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen in/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenInDelay"); - -return Def.ActorFrame { - Def.Quad { - InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,1");sleep,fSleepTime;linear,0.01;diffusealpha,0); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenInit in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenInit in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenInit in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenInit in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Fade in \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox in.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox in.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame{ - Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1")); - OnCommand=cmd(decelerate,0.5;diffusealpha,0); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenWithMenuElements in \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox out.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox out.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame{ - Def.Quad{ - InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0")); - OnCommand=cmd(accelerate,0.5;diffusealpha,1); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenWithMenuElements out \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox overlay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox overlay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenJukebox overlay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenJukebox overlay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenDemonstration overlay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenLogo background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenLogo background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenLogo background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenLogo background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenTitleMenu background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenMapControllers background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenMapControllers background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenMapControllers background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenMapControllers background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,16 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + }; + +-- Overlay +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.8); + }; +}; +-- +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenMiniMenu underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenMiniMenu underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenMiniMenu underlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenMiniMenu underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,4 +1,6 @@ return Def.ActorFrame { + OnCommand= function(self) self:queuecommand("Recenter") end, + RecenterCommand= function(self) SCREENMAN:GetTopScreen():xy(0, 0) end, Def.Quad{ InitCommand=cmd(scaletocover,-SCREEN_WIDTH*2,SCREEN_TOP,SCREEN_WIDTH*2,SCREEN_BOTTOM;diffuse,color("0,0,0,0.5")); }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenWithMenuElements in \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenWithMenuElements out \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNestyPlayerOptions overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,284 @@ +local menu_height= 400 +local menu_width= 250 +local menu_x= { + [PLAYER_1]= _screen.w * .25, + [PLAYER_2]= _screen.w * .75, +} +local menus= {} +for i, pn in ipairs(GAMESTATE:GetHumanPlayers()) do + menus[pn]= setmetatable({}, nesty_menu_stack_mt) +end +local explanations= {} +local ready_indicators= {} + +local turn_chart_mods= { + nesty_options.bool_player_mod_val("Mirror"), + nesty_options.bool_player_mod_val("Backwards"), + nesty_options.bool_player_mod_val("Left"), + nesty_options.bool_player_mod_val("Right"), + nesty_options.bool_player_mod_val("Shuffle"), + nesty_options.bool_player_mod_val("SoftShuffle"), + nesty_options.bool_player_mod_val("SuperShuffle"), +} + +local removal_chart_mods= { + nesty_options.bool_player_mod_val("NoHolds"), + nesty_options.bool_player_mod_val("NoRolls"), + nesty_options.bool_player_mod_val("NoMines"), + nesty_options.bool_player_mod_val("HoldRolls"), + nesty_options.bool_player_mod_val("NoJumps"), + nesty_options.bool_player_mod_val("NoHands"), + nesty_options.bool_player_mod_val("NoLifts"), + nesty_options.bool_player_mod_val("NoFakes"), + nesty_options.bool_player_mod_val("NoQuads"), + nesty_options.bool_player_mod_val("NoStretch"), +} + +local insertion_chart_mods= { + nesty_options.bool_player_mod_val("Little"), + nesty_options.bool_player_mod_val("Wide"), + nesty_options.bool_player_mod_val("Big"), + nesty_options.bool_player_mod_val("Quick"), + nesty_options.bool_player_mod_val("BMRize"), + nesty_options.bool_player_mod_val("Skippy"), + nesty_options.bool_player_mod_val("Mines"), + nesty_options.bool_player_mod_val("Echo"), + nesty_options.bool_player_mod_val("Stomp"), + nesty_options.bool_player_mod_val("Planted"), + nesty_options.bool_player_mod_val("Floored"), + nesty_options.bool_player_mod_val("Twister"), +} + +local chart_mods= { + nesty_options.submenu("turn_chart_mods", turn_chart_mods), + nesty_options.submenu("removal_chart_mods", removal_chart_mods), + nesty_options.submenu("insertion_chart_mods", insertion_chart_mods), +} + +local gameplay_options= { + nesty_options.bool_config_val(player_config, "ComboUnderField"), + nesty_options.bool_config_val(player_config, "FlashyCombo"), + nesty_options.bool_config_val(player_config, "GameplayShowStepsDisplay"), + nesty_options.bool_config_val(player_config, "GameplayShowScore"), + nesty_options.bool_config_val(player_config, "JudgmentUnderField"), + nesty_options.bool_config_val(player_config, "Protiming"), +} + +-- The time life bar doesn't work sensibly outside the survival courses, so +-- keep it out of the menu. +local life_type_enum= {"LifeType_Bar", "LifeType_Battery"} +local life_options= { + nesty_options.enum_player_mod_single_val("bar_type", "LifeType_Bar", "LifeSetting"), + nesty_options.enum_player_mod_single_val("battery_type", "LifeType_Battery", "LifeSetting"), + nesty_options.enum_player_mod_single_val("normal_drain", "DrainType_Normal", "DrainSetting"), + nesty_options.enum_player_mod_single_val("no_recover", "DrainType_NoRecover", "DrainSetting"), + nesty_options.enum_player_mod_single_val("sudden_death", "DrainType_SuddenDeath", "DrainSetting"), + nesty_options.enum_player_mod_single_val("fail_immediate", "FailType_Immediate", "FailSetting"), + nesty_options.enum_player_mod_single_val("fail_immediate_continue", "FailType_ImmediateContinue", "FailSetting"), + nesty_options.enum_player_mod_single_val("fail_end_of_song", "FailType_EndOfSong", "FailSetting"), + nesty_options.enum_player_mod_single_val("fail_off", "FailType_Off", "FailSetting"), + nesty_options.float_player_mod_val_new("BatteryLives", 1, 2, 1, 10, 4), +} + +-- I suppose now would be a good time to mention that, since the float menu code ...thingy doesn't rely on powers of 10 anymore, +-- the values passed in will be different. +local base_options= { + notefield_prefs_speed_type_menu(), + notefield_prefs_speed_mod_menu(), + --Turns out the music rate can't handle values higher than 3! + nesty_options.float_song_mod_val_new("MusicRate", 0.1, 1, .1, 3, 1), + nesty_options.float_song_mod_toggle_val("Haste", 1, 0), + notefield_perspective_menu(), + nesty_options.float_config_toggle_val(notefield_prefs_config, "reverse", -1, 1), + nesty_options.float_config_val_new(notefield_prefs_config, "zoom", 0.1, 1), + nesty_options.submenu("chart_mods", chart_mods), + {name= "noteskin", translatable= true, menu= nesty_option_menus.noteskins}, + {name= "shown_noteskins", translatable= true, menu= nesty_option_menus.shown_noteskins, args= {}}, + nesty_options.bool_config_val(notefield_prefs_config, "hidden"), + nesty_options.bool_config_val(notefield_prefs_config, "sudden"), + advanced_notefield_prefs_menu(), + nesty_options.submenu("gameplay_options", gameplay_options), + nesty_options.submenu("life_options", life_options), + nesty_options.bool_song_mod_val("AssistClap"), + nesty_options.bool_song_mod_val("AssistMetronome"), + nesty_options.bool_song_mod_val("StaticBackground"), + nesty_options.bool_song_mod_val("RandomBGOnly"), + nesty_options.float_config_val_new(player_config, "ScreenFilter", 0.1, 0.5, 0, 1), + get_notefield_mods_toggle_menu(true, true), + {name= "reload_noteskins", translatable= true, type= "action", + execute= function() NOTESKIN:reload_skins() end}, +} + +local player_ready= {} + +local function exit_if_both_ready() + for i, pn in ipairs(GAMESTATE:GetHumanPlayers()) do + if not player_ready[pn] then return end + end + SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToNextScreen") +end + +local prev_explanation= {} +local function update_explanation(pn) + local cursor_item= menus[pn]:get_cursor_item() + if cursor_item then + local new_expl= cursor_item.name or cursor_item.text + local expl_com= "change_explanation" + if cursor_item.explanation then + new_expl= cursor_item.explanation + expl_com= "translated_explanation" + end + if new_expl ~= prev_explanation[pn] then + prev_explanation[pn]= new_expl + explanations[pn]:playcommand(expl_com, {text= new_expl}) + end + end +end + +local function input(event) + local pn= event.PlayerNumber + if not pn then return end + if not menus[pn] then return end + if menu_stack_generic_input(menus, event) + and event.type == "InputEventType_FirstPress" then + if event.GameButton == "Back" then + SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToPrevScreen") + else + player_ready[pn]= true + ready_indicators[pn]:playcommand("show_ready") + exit_if_both_ready() + end + else + if player_ready[pn] and not menus[pn]:can_exit_screen() then + player_ready[pn]= false + ready_indicators[pn]:playcommand("hide_ready") + end + end + update_explanation(pn) +end + +local frame= Def.ActorFrame{ + OnCommand= function(self) + SCREENMAN:GetTopScreen():AddInputCallback(input) + for pn, menu in pairs(menus) do + menu:push_menu_stack(nesty_option_menus.menu, base_options, "play_song") + menu:update_cursor_pos() + update_explanation(pn) + end + end, +} + +local item_params= { + text_commands= { + Font= "Common Condensed", OnCommand= function(self) + self:diffuse(color("#3D1D23")):diffusealpha(0):decelerate(0.2):diffusealpha(1) + end, + OffCommand=function(self) + self:smooth(0.3):diffusealpha(0) + end, + }, + text_width= .7, + value_text_commands= { + Font= "Common Condensed", OnCommand= function(self) + self:diffuse(color("#AC214A")):diffusealpha(0):decelerate(0.2):diffusealpha(1) + end, + OffCommand=function(self) + self:smooth(0.3):diffusealpha(0) + end, + }, + value_image_commands= { + OnCommand= function(self) + self:diffusealpha(0):smooth(0.3):diffusealpha(1) + end, + OffCommand=function(self) + self:smooth(0.3):diffusealpha(0) + end, + }, + value_width= .25, + type_images= { + bool= THEME:GetPathG("", "menu_icons/bool"), + choice= THEME:GetPathG("", "menu_icons/bool"), + menu= THEME:GetPathG("", "menu_icons/menu"), + }, +} + +for pn, menu in pairs(menus) do + frame[#frame+1]= LoadActor( + THEME:GetPathG("ScreenOptions", "halfpage")) .. { + InitCommand= function(self) + self:xy(menu_x[pn], 360) + end; + OnCommand=function(self) + self:diffusealpha(0):zoomx(0.8):decelerate(0.3):diffusealpha(1):zoomx(1) + end; + OffCommand=function(self) + self:decelerate(0.3):diffusealpha(0) + end; + } + frame[#frame+1]= menu:create_actors{ + x= menu_x[pn], y= 120, width= menu_width, height= menu_height, + translation_section= "notefield_options", + num_displays= 1, pn= pn, el_height= 36, + menu_sounds= { + pop= THEME:GetPathS("Common", "Cancel"), + push= THEME:GetPathS("_common", "row"), + act= THEME:GetPathS("Common", "start"), + move= THEME:GetPathS("Common", "value"), + move_up= THEME:GetPathS("Common", "value"), + move_down= THEME:GetPathS("Common", "value"), + inc= THEME:GetPathS("_switch", "up"), + dec= THEME:GetPathS("_switch", "down"), + }, + display_params= { + el_zoom= 0.8, item_params= item_params, item_mt= nesty_items.value, heading_height = 48, + on= function(self) + self:diffusealpha(0):decelerate(0.2):diffusealpha(1) + end, + off= function(self) + self:decelerate(0.2):diffusealpha(0) + end, + }, + } + frame[#frame+1]= Def.BitmapText{ + Font= "Common Normal", InitCommand= function(self) + explanations[pn]= self + self:xy(menu_x[pn] - (menu_width / 2), _screen.cy+154) + :diffuse(ColorDarkTone((PlayerColor(pn)))):horizalign(left):vertalign(top) + :wrapwidthpixels(menu_width / .8):zoom(.75) + :horizalign(left) + end, + change_explanationCommand= function(self, param) + local text= "" + if THEME:HasString("notefield_explanations", param.text) then + text= THEME:GetString("notefield_explanations", param.text) + end + self:playcommand("translated_explanation", {text= text}) + end, + translated_explanationCommand= function(self, param) + self:stoptweening():settext(param.text):cropright(1):linear(.5):cropright(0) + end, + } + frame[#frame+1]= Def.BitmapText{ + Font= "Common Condensed", Text= "READY!", InitCommand= function(self) + ready_indicators[pn]= self + self:xy(menu_x[pn], 146):zoom(1.5):diffuse(Color.Green):strokecolor(color("#2E540F")):diffusealpha(0) + end, + show_readyCommand= function(self) + self:stoptweening():decelerate(.5):diffusealpha(1) + end, + hide_readyCommand= function(self) + self:stoptweening():accelerate(.5):diffusealpha(0) + end, + } + local metrics_name = "PlayerNameplate" .. ToEnumShortString(pn) + frame[#frame+1] = LoadActor( + THEME:GetPathG("ScreenPlayerOptions", "PlayerNameplate"), pn) .. { + InitCommand=function(self) + self:name(metrics_name) + ActorUtil.LoadAllCommandsAndSetXY(self,"ScreenPlayerOptions") + self:x(menu_x[pn]) + end + } +end + +return frame diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetRoom background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetRoom background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetRoom background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetRoom background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Online background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Online background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic decorations.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenNetSelectMusic decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,418 @@ +local curStage = GAMESTATE:GetCurrentStage(); +local curStageIndex = GAMESTATE:GetCurrentStageIndex(); local t = LoadFallbackB(); -t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel"); -t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); -t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay"); +local function PercentScore(pn) + local t = LoadFont("_overpass Score")..{ + InitCommand=cmd(zoom,1;diffuse,Color("Black");diffusealpha,0.75;); + BeginCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local SongOrCourse, StepsOrTrail; + if GAMESTATE:IsCourseMode() then + SongOrCourse = GAMESTATE:GetCurrentCourse(); + StepsOrTrail = GAMESTATE:GetCurrentTrail(pn); + else + SongOrCourse = GAMESTATE:GetCurrentSong(); + StepsOrTrail = GAMESTATE:GetCurrentSteps(pn); + end; + + local profile, scorelist; + local text = ""; + if SongOrCourse and StepsOrTrail then + local st = StepsOrTrail:GetStepsType(); + local diff = StepsOrTrail:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + + if PROFILEMAN:IsPersistentProfile(pn) then + -- player profile + profile = PROFILEMAN:GetProfile(pn); + else + -- machine profile + profile = PROFILEMAN:GetMachineProfile(); + end; + + scorelist = profile:GetHighScoreList(SongOrCourse,StepsOrTrail); + assert(scorelist) + local scores = scorelist:GetHighScores(); + local topscore = scores[1]; + if topscore then + text = string.format("%.2f%%", topscore:GetPercentDP()*100.0); + -- 100% hack + if text == "100.00%" then + text = "100%"; + end; + else + text = string.format("%.2f%%", 0); + end; + else + text = ""; + end; + self:settext(text); + end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + }; + + if pn == PLAYER_1 then + t.CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + t.CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + else + t.CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + t.CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + end + + return t; +end + +-- Genre/Artist data +t[#t+1] = LoadActor(THEME:GetPathG("ScreenSelectMusic", "info pane")) .. { + InitCommand=cmd(horizalign,center;x,SCREEN_CENTER_X-228;y,SCREEN_CENTER_Y-75;zoom,1;); + OnCommand=function(self) + self:diffuse(ColorMidTone(StageToColor(curStage))); + self:zoomx(0):diffusealpha(0):decelerate(0.3):zoomx(1):diffusealpha(1); + end; + OffCommand=function(self) + self:sleep(0.3):decelerate(0.15):zoomx(0):diffusealpha(0); + end; + }; + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-330+6-138;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.3;diffusealpha,0;); + -- Length + StandardDecorationFromFileOptional("SongTime","SongTime") .. { + SetCommand=function(self) + local curSelection = nil; + local length = 0.0; + if GAMESTATE:IsCourseMode() then + curSelection = GAMESTATE:GetCurrentCourse(); + self:queuecommand("Reset"); + if curSelection then + local trail = GAMESTATE:GetCurrentTrail(GAMESTATE:GetMasterPlayerNumber()); + if trail then + length = TrailUtil.GetTotalSeconds(trail); + else + length = 0.0; + end; + else + length = 0.0; + end; + else + curSelection = GAMESTATE:GetCurrentSong(); + self:queuecommand("Reset"); + if curSelection then + length = curSelection:MusicLengthSeconds(); + if curSelection:IsLong() then + self:queuecommand("Long"); + elseif curSelection:IsMarathon() then + self:queuecommand("Marathon"); + else + self:queuecommand("Reset"); + end + else + length = 0.0; + self:queuecommand("Reset"); + end; + end; + self:settext( SecondsToMSS(length) ); + end; + CurrentSongChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(queuecommand,"Set"); + }; +}; + +-- Course count and type +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-200;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;zoom,1.0;y,SCREEN_CENTER_Y-78+2;maxwidth,180;diffuse,color("#DFE2E9");visible,GAMESTATE:IsCourseMode();); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + local course = GAMESTATE:GetCurrentCourse(); + if course then + self:settext(course:GetEstimatedNumStages() .. " songs"); + self:queuecommand("Refresh"); + else + self:settext(""); + self:queuecommand("Refresh"); + end + end; + }; +}; +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+5;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;zoom,1.0;y,SCREEN_CENTER_Y-78+2;maxwidth,180;diffuse,color("#DFE2E9");visible,GAMESTATE:IsCourseMode();); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + local course = GAMESTATE:GetCurrentCourse(); + if course then + self:settext(CourseTypeToLocalizedString(course:GetCourseType())); + self:queuecommand("Refresh"); + else + self:settext(""); + self:queuecommand("Refresh"); + end + end; + }; +}; + + +if not GAMESTATE:IsCourseMode() then + +-- P1 Difficulty Pane +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,center;x,SCREEN_CENTER_X-210-32;y,SCREEN_CENTER_Y+230+8;); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;smooth,0.4;diffusealpha,1;zoomy,1); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_1 then + (cmd(visible,true;diffusealpha,0;linear,0.3;diffusealpha,1))(self); + end; + end; + OffCommand=cmd(decelerate,0.3;zoomy,0.8;diffusealpha,0); + LoadActor(THEME:GetPathG("ScreenSelectMusic", "pane background")) .. { + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;decelerate,0.3;diffusealpha,1;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:finishtweening():linear(0.2):diffuse(ColorLightTone(CustomDifficultyToColor(cd))); + else + self:diffuse(color("#666666")); + end + else + self:diffuse(color("#666666")); + end + end + }; + LoadFont("StepsDisplay meter") .. { + InitCommand=cmd(zoom,1.25;diffuse,color("#000000");addx,-143;addy,13); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(stepsP1:GetMeter()) + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(uppercase,true;zoom,1;addy,-40;addx,-143;diffuse,color("#000000");maxwidth,115;); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;zoom,0.75;addy,-20;addx,-143;diffuse,color("#000000");maxwidth,130); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("StepsType",ToEnumShortString(st))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + +-- P2 Difficulty Pane +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,center;x,SCREEN_CENTER_X+210+32;y,SCREEN_CENTER_Y+230+8;); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;smooth,0.4;diffusealpha,1;zoomy,1); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_2 then + (cmd(visible,true;diffusealpha,0;linear,0.3;diffusealpha,1))(self); + end; + end; + OffCommand=cmd(decelerate,0.3;zoomy,0.8;diffusealpha,0); + LoadActor(THEME:GetPathG("ScreenSelectMusic", "pane background")) .. { + InitCommand=cmd(zoomx,-1;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;decelerate,0.3;diffusealpha,1;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:finishtweening():linear(0.2):diffuse(ColorLightTone(CustomDifficultyToColor(cd))); + else + self:diffuse(color("#666666")); + end + else + self:diffuse(color("#666666")); + end + end + }; + LoadFont("StepsDisplay meter") .. { + InitCommand=cmd(zoom,1.25;diffuse,color("#000000");addx,143;addy,13); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(stepsP2:GetMeter()) + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(uppercase,true;zoom,1;addy,-40;addx,143;diffuse,color("#000000");maxwidth,115;); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;zoom,0.75;addy,-20;addx,143;diffuse,color("#000000");maxwidth,130); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("StepsType",ToEnumShortString(st))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP1","PaneDisplayTextP1"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP2","PaneDisplayTextP2"); + +t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(PLAYER_1), PercentScore(PLAYER_1)); +t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(PLAYER_2), PercentScore(PLAYER_2)); + + +end; + +-- BPMDisplay +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(draworder,126;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;x,SCREEN_CENTER_X-198+69-66;y,SCREEN_CENTER_Y-78+2;diffuse,color("#512232");horizalign,right;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + self:settext("BPM"):diffuse(ColorLightTone(StageToColor(curStage))); + end; + }; + StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); +}; + + return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,482 +0,0 @@ --- Pester Kyzentun for an explanation if you need to customize this screen. --- Also, this might be rewritten to us a proper customizable lua menu system --- in the future. - --- Copy this file into your theme, then modify as needed to suit your theme. --- Each of the things on this list has a comment marking it, so you can --- quickly find it by searching. --- Things you will want to change: --- 1. The Numpad --- 2. The Cursor --- 3. The Menu Items --- 4. The Menu Values --- 4.1 The L/R indicators --- 5. The Menu Fader - -local profile= GAMESTATE:GetEditLocalProfile() - -local cursor_width_padding = 16 -local cursor_spacing_value = 30 - --- 1. The Numpad --- This is what sets up how the numpad looks. See Scripts/04 NumPadEntry.lua --- for a full description of how to customize a NumPad. --- Note that if you provide a custom prompt actor for the NumPad, it must --- have a SetCommand because the NumPad is used any time the player needs to --- enter a number, and the prompt is updated by running its SetCommand. -local number_entry= new_numpad_entry{ - Name= "number_entry", - InitCommand= cmd(diffusealpha, 0; xy, _screen.cx, _screen.cy * 1.5), - value = LoadFont("Common Large") .. { - InitCommand=cmd(xy,0,-62), - OnCommand=cmd(zoom,0.75;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone(PlayerColor(PLAYER_1))); - SetCommand=function(self, param) - self:settext(param[1]) - end, - }, - button = LoadFont("Common Normal") ..{ - InitCommand=cmd(shadowlength,1), - SetCommand=function(self, param) - self:settext(param[1]) - end, - OnCommand=cmd(diffuse,color("0.8,0.8,0.8,1");zoom,0.875), - GainFocusCommand=cmd(finishtweening;decelerate,0.125;zoom,1;diffuse,Color.White), - LoseFocusCommand=cmd(finishtweening;smooth,0.1;zoom,0.875;diffuse,color("0.8,0.8,0.8,1")) - }, - button_positions = {{-cursor_spacing_value, -cursor_spacing_value}, {0, -cursor_spacing_value}, {cursor_spacing_value, -cursor_spacing_value}, - {-cursor_spacing_value, 0}, {0, 0}, {cursor_spacing_value, 0}, - {-cursor_spacing_value, cursor_spacing_value}, {0, cursor_spacing_value}, {cursor_spacing_value, cursor_spacing_value}, - {-cursor_spacing_value, cursor_spacing_value*2}, {0, cursor_spacing_value*2}, {cursor_spacing_value, cursor_spacing_value*2}}, - cursor = Def.ActorFrame { - -- Move whole container - MoveCommand=function(self, param) - self:stoptweening() - self:decelerate(0.15) - self:xy(param[1], param[2]) - if param[3] then - self:z(param[3]) - end - end, - -- - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) - ) .. { - OnCommand=cmd(diffuse,PlayerDarkColor(PLAYER_1)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(decelerate,0.125)}) - end, - }, - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) - ) .. { - OnCommand=cmd(diffuse,PlayerColor(PLAYER_1)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(decelerate,0.125)}) - end, - } - }, - cursor_draw= "first", - prompt = LoadFont("Common Bold") .. { - Name="prompt", - InitCommand=cmd(xy,0,-96); - OnCommand=cmd(shadowlength,1;skewx,-0.125;diffusebottomedge,color("#DDDDDD");strokecolor,Color.Outline); - SetCommand= function(self, params) - self:settext(params[1]) - end - }, - LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black", 128, 192) .. { - InitCommand=cmd(xy, 0, -20) - } -} - -local function calc_list_pos(value, list) - for i, entry in ipairs(list) do - if entry.setting == value then - return i - end - end - return 1 -end - -local function item_value_to_text(item, value) - if item.item_type == "bool" then - if value then - value= THEME:GetString("ScreenOptionsCustomizeProfile", item.true_text) - else - value= THEME:GetString("ScreenOptionsCustomizeProfile", item.false_text) - end - elseif item.item_type == "list" then - local pos= calc_list_pos(value, item.list) - return item.list[pos].display_name - end - return value -end - -local char_list= {} -do - local all_chars= CHARMAN:GetAllCharacters() - for i, char in ipairs(char_list) do - char_list[#char_list+1]= { - setting= char:GetCharacterID(), display_name= char:GetDisplayName()} - end -end - --- Uncomment this section if you need to test the behavior of actors in the --- character list but don't have any duncing characters to test with. ---[=[ - -local fake_profile_mt= {__index= {}} -local val_list= {} -local function get_set_pair(name, default) - fake_profile_mt.__index["Get"..name]= function(self) - return self[name] - end - fake_profile_mt.__index["Set"..name]= function(self, val) - self[name]= val - end - val_list[#val_list+1]= {name, default} -end -get_set_pair("WeightPounds", 0) -get_set_pair("Voomax", 0) -get_set_pair("BirthYear", 0) -get_set_pair("IgnoreStepCountCalories", false) -get_set_pair("IsMale", true) -get_set_pair("Character", "dietlinde") -fake_profile_mt.__index.init= function(self) - for i, vald in ipairs(val_list) do - self[vald[1]]= vald[2] - end -end - -profile= setmetatable({}, fake_profile_mt) -profile:init() - -char_list= { - {setting= "shake", display_name= "soda"}, - {setting= "freem", display_name= "inc"}, - {setting= "midi", display_name= "man"}, - {setting= "kyz", display_name= "zentun"}, - {setting= "mad", display_name= "matt"}, - {setting= "db", display_name= "k2"}, -} -]=] - -local menu_items= { - {name= "weight", get= "GetWeightPounds", set= "SetWeightPounds", - item_type= "number", auto_done= 100}, - {name= "voomax", get= "GetVoomax", set= "SetVoomax", item_type= "number", - auto_done= 10}, - {name= "birth_year", get= "GetBirthYear", set= "SetBirthYear", - item_type= "number", auto_done= 1000}, - {name= "calorie_calc", get= "GetIgnoreStepCountCalories", - set= "SetIgnoreStepCountCalories", item_type= "bool", - true_text= "use_heart", false_text= "use_steps"}, - {name= "gender", get= "GetIsMale", set= "SetIsMale", item_type= "bool", - true_text= "male", false_text= "female"}, -} -if #char_list > 0 then - menu_items[#menu_items+1]= { - name= "character", get= "GetCharacter", set= "SetCharacter", - item_type= "list", list= char_list} -end -menu_items[#menu_items+1]= {name= "exit", item_type= "exit"} - -local menu_cursor -local menu_pos= 1 -local menu_start= SCREEN_TOP + 80 -if #menu_items > 6 then - menu_start= SCREEN_TOP + 68 -end -local menu_x= SCREEN_CENTER_X * 0.25 -local value_x= ( SCREEN_CENTER_X * 0.25 ) + 256 -local fader -local cursor_on_menu= "main" -local menu_item_actors= {} -local menu_values= {} -local list_pos= 0 -local active_list= {} -local left_showing= false -local right_showing= false - -local function fade_actor_to(actor, alf) - actor:stoptweening() - actor:smooth(.15) - actor:diffusealpha(alf) -end - -local function update_menu_cursor() - local item= menu_item_actors[menu_pos] - menu_cursor:playcommand("Move", {item:GetX(), item:GetY()}) - menu_cursor:playcommand("Fit", item) -end - -local function update_list_cursor() - local valactor= menu_values[menu_pos] - valactor:playcommand("Set", {active_list[list_pos].display_name}) - if list_pos > 1 then - if not left_showing then - valactor:playcommand("ShowLeft") - left_showing= true - end - else - if left_showing then - valactor:playcommand("HideLeft") - left_showing= false - end - end - if list_pos < #active_list then - if not right_showing then - valactor:playcommand("ShowRight") - right_showing= true - end - else - if right_showing then - valactor:playcommand("HideRight") - right_showing= false - end - end -end - -local function exit_screen() - local profile_id= GAMESTATE:GetEditLocalProfileID() - PROFILEMAN:SaveLocalProfile(profile_id) - SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToNextScreen") - SOUND:PlayOnce(THEME:GetPathS("Common", "Start"), true) -end - -local function input(event) - local pn= event.PlayerNumber - if not pn then return false end - if event.type == "InputEventType_Release" then return false end - local button= event.GameButton - if cursor_on_menu == "main" then - if button == "Start" then - local item= menu_items[menu_pos] - if item.item_type == "bool" then - local value= not profile[item.get](profile) - menu_values[menu_pos]:playcommand( - "Set", {item_value_to_text(item, value)}) - profile[item.set](profile, value) - elseif item.item_type == "number" then - --fade_actor_to(fader, .8) - fade_actor_to(number_entry.container, 1) - number_entry.value= profile[item.get](profile) - number_entry.value_actor:playcommand("Set", {number_entry.value}) - number_entry.auto_done_value= item.auto_done - number_entry.max_value= item.max - number_entry:update_cursor(number_entry.cursor_start) - number_entry.prompt_actor:playcommand( - "Set", {THEME:GetString("ScreenOptionsCustomizeProfile", item.name)}) - cursor_on_menu= "numpad" - elseif item.item_type == "list" then - cursor_on_menu= "list" - active_list= menu_items[menu_pos].list - list_pos= calc_list_pos( - profile[menu_items[menu_pos].get](profile), active_list) - update_list_cursor() - elseif item.item_type == "exit" then - exit_screen() - end - elseif button == "Back" then - exit_screen() - else - if button == "MenuLeft" or button == "MenuUp" then - if menu_pos > 1 then menu_pos= menu_pos - 1 end - update_menu_cursor() - elseif button == "MenuRight" or button == "MenuDown" then - if menu_pos < #menu_items then menu_pos= menu_pos + 1 end - update_menu_cursor() - end - end - elseif cursor_on_menu == "numpad" then - local done= number_entry:handle_input(button) - if done or button == "Back" then - local item= menu_items[menu_pos] - if button ~= "Back" then - profile[item.set](profile, number_entry.value) - menu_values[menu_pos]:playcommand( - "Set", {item_value_to_text(item, number_entry.value)}) - end - --fade_actor_to(fader, 0) - fade_actor_to(number_entry.container, 0) - cursor_on_menu= "main" - end - elseif cursor_on_menu == "list" then - if button == "MenuLeft" or button == "MenuUp" then - if list_pos > 1 then list_pos= list_pos - 1 end - update_list_cursor() - menu_values[menu_pos]:playcommand("PressLeft") - elseif button == "MenuRight" or button == "MenuDown" then - if list_pos < #active_list then list_pos= list_pos + 1 end - update_list_cursor() - menu_values[menu_pos]:playcommand("PressRight") - elseif button == "Start" or button == "Back" then - if button ~= "Back" then - profile[menu_items[menu_pos].set]( - profile, active_list[list_pos].setting) - end - local valactor= menu_values[menu_pos] - left_showing= false - right_showing= false - valactor:playcommand("HideLeft") - valactor:playcommand("HideRight") - cursor_on_menu= "main" - end - end -end - -local args= { - Def.Actor{ - OnCommand= function(self) - update_menu_cursor() - SCREENMAN:GetTopScreen():AddInputCallback(input) - end - }, - -- 2. The Cursor - -- This is the cursor on the main portion of the menu. - -- It needs to have Move and Fit commands for when it's moved to a new - -- item on the list. - Def.ActorFrame { - Name= "menu_cursor", InitCommand= function(self) - menu_cursor= self - end, - -- Move whole container - MoveCommand=function(self, param) - self:stoptweening() - self:decelerate(0.15) - self:xy(param[1], param[2]) - if param[3] then - self:z(param[3]) - end - end, - FitCommand= function(self, param) - self:addx(param:GetWidth()/2) - end, - -- - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) - ) .. { - OnCommand=cmd(diffuse,PlayerDarkColor(PLAYER_1)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) - end, - }, - LoadActor( THEME:GetPathG("_frame", "1D"), - { 2/18, 14/18, 2/18 }, - LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) - ) .. { - OnCommand=cmd(diffuse,PlayerColor(PLAYER_1)), - FitCommand=function(self, param) - self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) - end, - } - }, -} - --- Note that the "character" item in the menu only shows up if there are --- characters to choose from. You might want to adjust positioning for that. -for i, item in ipairs(menu_items) do - local item_y= menu_start + ((i-1) * 24) - -- 3. The Menu Items - -- This creates the actor that will be used to show each item on the menu. - args[#args+1]= Def.BitmapText{ - Name= "menu_" .. item.name, Font= "Common Normal", - Text= THEME:GetString("ScreenOptionsCustomizeProfile", item.name), - InitCommand= function(self) - -- Note that the item adds itself to the list menu_item_actors. This - -- is so that when the cursor is moved, the appropriate item can be - -- easily fetched for positioning and sizing the cursor. - -- Note the ActorFrames have a width of 1 unless you set it, so when - -- you change this from an BitmapText to a ActorFrame, you will have - -- to make the FitCommand of your cursor look at the children. - menu_item_actors[i]= self - self:xy(menu_x, item_y) - self:diffuse(Color.White) - self:horizalign(left) - end - } - if item.get then - local value_text= item_value_to_text(item, profile[item.get](profile)) - -- 4. The Menu Values - -- Each of the values needs to have a SetCommand so it can be updated - -- when the player changes it. - -- And ActorFrame is used because values for list items need to have - -- left/right indicators for when the player is making a choice. - local value_args= { - Name= "value_" .. item.name, - InitCommand= function(self) - -- Note that the ActorFrame is being added to the list menu_values - -- so it can be easily fetched and updated when the value changes. - menu_values[i]= self - self:xy(value_x, menu_start + ((i-1) * 24)) - end, - Def.BitmapText{ - Name= "val", Font= "Common Normal", Text= value_text, - InitCommand= function(self) - self:diffuse(Color.White) - self:horizalign(left) - end, - SetCommand= function(self, param) - self:settext(param[1]) - end, - } - } - if item.item_type == "list" then - -- 4.1 The L/R indicators - -- The L/R indicators are there to tell the player when there is a - -- choice to the left or right of the choice they are on. - -- Note that they are placed inside the ActorFrame for the value, so - -- when commands are played on the ActorFrame, they are played for the - -- indicators too. - -- The commands are ShowLeft, HideLeft, PressLeft, and the same for - -- Right. - -- Note that the right indicator has a SetCommand so it sees when the - -- value changes and checks the new width to position itself. - -- Show/Hide is only played when the indicator changes state. - -- Command execution order: Set, Show/Hide (if change occurred), Press - value_args[#value_args+1]= LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { - InitCommand= function(self) - self:rotationy(-180) - self:x(-8) - self:visible(false) - self:playcommand("Set", {value_text}) - end, - ShowLeftCommand= cmd(visible, true), - HideLeftCommand= cmd(visible, false), - PressLeftCommand= cmd(finishtweening;zoom,1.5;smooth,0.25;zoom,1), - } - value_args[#value_args+1]= LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { - InitCommand= function(self) - self:visible(false) - self:playcommand("Set", {value_text}) - end, - SetCommand= function(self) - local valw= self:GetParent():GetChild("val"):GetWidth() - self:x(valw+8) - end, - ShowRightCommand= cmd(visible, true), - HideRightCommand= cmd(visible, false), - PressRightCommand= cmd(finishtweening;zoom,1.5;smooth,0.25;zoom,1), - } - end - args[#args+1]= Def.ActorFrame(value_args) - end -end - -local _height = (#menu_items) * 24 -args[#args+1]= LoadActor(THEME:GetPathB("_frame", "3x3"),"rounded black",474,_height) .. { - Name= "fader", InitCommand= function(self) - fader= self - self:draworder(-20) - self:xy(menu_x + 474/2, menu_start + _height/2 - 12) - self:diffuse(Color.Black) - self:diffusealpha(0.75) - end -} - -args[#args+1]= number_entry:create_actors() - -return Def.ActorFrame(args) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenOptionsService In \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsDisplaySub out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenOptionsService Out \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsEdit out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsServiceChild out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService in.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService in.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -return Def.Actor{ - StartTransitioningCommand=function(self) - ThemePrefs.Save() - end -} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService In.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService In.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService In.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService In.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenOptionsService out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenOptionsService out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/Screen out/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/Screen out/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,8 +1,7 @@ -local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenOutDelay"); - return Def.ActorFrame { + StartTransitioningCommand=cmd(sleep,0.7); Def.Quad { - InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,0");sleep,fSleepTime;linear,0.01;diffusealpha,1); + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;draworder,10000); + StartTransitioningCommand=cmd(diffusealpha,0;diffuse,color("0,0,0,0");sleep,0.6;linear,0.15;diffusealpha,0); }; -}; \ No newline at end of file +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions background.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions background.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -local t = Def.ActorFrame {}; - -t[#t+1] = Def.ActorFrame { - Def.Sprite { - Condition=not GAMESTATE:IsCourseMode(); - InitCommand=cmd(Center); - OnCommand=function(self) - if GAMESTATE:GetCurrentSong() then - local song = GAMESTATE:GetCurrentSong(); - if song:HasBackground() then - self:LoadBackground(song:GetBackgroundPath()); - end; - self:scale_or_crop_background(); - (cmd(fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480))(self); - else - self:visible(false); - end - end; - }; - Def.Quad { - InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); - }; - LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top")) .. { - InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffusealpha,0.5); - }; -}; -return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions out.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPlayerOptions out.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -if PREFSMAN:GetPreference( "ShowSongOptions" ) ~= "Maybe_Ask" then - return LoadActor( THEME:GetPathB("Screen", "out") ); -end - -local t = Def.ActorFrame { - LoadActor( THEME:GetPathB("Screen", "out") ); - - LoadFont( "common normal" ) .. { - InitCommand=cmd(settext,"Press &START; for more options";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+100;visible,false); - AskForGoToOptionsCommand=cmd( - visible,true; - diffusealpha,0; - linear,0.15; - zoomy,1; - diffusealpha,1; - sleep,1; - linear,0.15; - diffusealpha,0; - zoomy,0; - ); - GoToOptionsCommand=cmd(visible,false); - }; - LoadFont( "common normal" ) .. { - InitCommand=cmd(settext,"entering options...";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+100;visible,false); - AskForGoToOptionsCommand=cmd( - visible,false; - linear,0.15; - zoomy,1; - diffusealpha,1; - sleep,1; - linear,0.15; - diffusealpha,0; - zoomy,0; - ); - GoToOptionsCommand=cmd(visible,true); - }; -}; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,24 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + Def.Sprite { + Name="animation", + Texture="LoadScreen diamond 5x2.png", + InitCommand=function(self) + self:SetAllStateDelays(0.1):diffusealpha(1):diffuse(color("#6248A7")):Center() + end, + OnCommand=function(self) + self:zoom(0):decelerate(0.25):zoom(0.5):sleep(0.5):decelerate(0.25):zoom(0) + end + }; +}; + +t[#t+1] = Def.Actor { + BeginCommand=function(self) + if SCREENMAN:GetTopScreen():HaveProfileToLoad() then self:sleep(1); end; + self:queuecommand("Load"); + end; + LoadCommand=function() SCREENMAN:GetTopScreen():Continue(); end; +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/LoadScreen diamond 5x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileLoad overlay/LoadScreen diamond 5x2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,24 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + Def.Sprite { + Name="animation", + Texture="LoadScreen diamond 5x2.png", + InitCommand=function(self) + self:SetAllStateDelays(0.1):diffusealpha(1):diffuse(color("#95326F")):Center() + end, + OnCommand=function(self) + self:zoom(0):decelerate(0.25):zoom(0.5):sleep(0.5):decelerate(0.25):zoom(0) + end + }; +}; + +t[#t+1] = Def.Actor { + BeginCommand=function(self) + if SCREENMAN:GetTopScreen():HaveProfileToSave() then self:sleep(1); end; + self:queuecommand("Load"); + end; + LoadCommand=function() SCREENMAN:GetTopScreen():Continue(); end; +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/LoadScreen diamond 5x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenProfileSave overlay/LoadScreen diamond 5x2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt off.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt off.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt off.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt off.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.Quad{ + InitCommand=cmd(scaletocover,-SCREEN_WIDTH*2,SCREEN_TOP,SCREEN_WIDTH*2,SCREEN_BOTTOM;diffuse,color("0,0,0,0.5")); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.5;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + }; + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenPrompt underlay.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenMiniMenu underlay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -local t = LoadFallbackB(); - -t[#t+1] = LoadFont("Common Normal") .. { - Name="Explanation"; - Text=THEME:GetString(Var "LoadingScreen","Explanation"); - InitCommand=function(self) - ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); - end; -}; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenReloadSongs background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenReloadSongs background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenReloadSongs background.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenReloadSongs background.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenTitleMenu background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,30 +1,10 @@ +local curStage = GAMESTATE:GetCurrentStage(); +local curStageIndex = GAMESTATE:GetCurrentStageIndex(); local t = LoadFallbackB(); --- Legacy StepMania 4 Function -local function StepsDisplay(pn) - local function set(self, player) - self:SetFromGameState( player ); - end - - local t = Def.StepsDisplay { - InitCommand=cmd(Load,"StepsDisplay",GAMESTATE:GetPlayerState(pn);); - }; - - if pn == PLAYER_1 then - t.CurrentStepsP1ChangedMessageCommand=function(self) set(self, pn); end; - t.CurrentTrailP1ChangedMessageCommand=function(self) set(self, pn); end; - else - t.CurrentStepsP2ChangedMessageCommand=function(self) set(self, pn); end; - t.CurrentTrailP2ChangedMessageCommand=function(self) set(self, pn); end; - end - - return t; -end -t[#t+1] = StandardDecorationFromFileOptional("AlternateHelpDisplay","AlternateHelpDisplay"); - local function PercentScore(pn) - local t = LoadFont("Common normal")..{ - InitCommand=cmd(zoom,0.625;shadowlength,1); + local t = LoadFont("_overpass Score")..{ + InitCommand=cmd(zoom,1;diffuse,Color("Black");diffusealpha,0.75;); BeginCommand=cmd(playcommand,"Set"); SetCommand=function(self) local SongOrCourse, StepsOrTrail; @@ -43,8 +23,6 @@ local diff = StepsOrTrail:GetDifficulty(); local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; local cd = GetCustomDifficulty(st, diff, courseType); - self:diffuse(CustomDifficultyToColor(cd)); - self:shadowcolor(CustomDifficultyToDarkColor(cd)); if PROFILEMAN:IsPersistentProfile(pn) then -- player profile @@ -87,49 +65,48 @@ return t; end --- Legacy StepMania 4 Function -for pn in ivalues(PlayerNumber) do - local MetricsName = "StepsDisplay" .. PlayerNumberToString(pn); - t[#t+1] = StepsDisplay(pn) .. { - InitCommand=function(self) self:player(pn); self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end; - PlayerJoinedMessageCommand=function(self, params) - if params.Player == pn then - self:visible(true); - (cmd(zoom,0;bounceend,0.3;zoom,1))(self); - end; - end; - PlayerUnjoinedMessageCommand=function(self, params) - if params.Player == pn then - self:visible(true); - (cmd(bouncebegin,0.3;zoom,0))(self); - end; - end; +-- Banner underlay +-- t[#t+1] = Def.ActorFrame { + -- InitCommand=cmd(x,SCREEN_CENTER_X-230;draworder,125); + -- OffCommand=cmd(smooth,0.2;diffusealpha,0;); + -- Def.Quad { + -- InitCommand=cmd(zoomto,468,196;diffuse,color("#fce1a1");diffusealpha,0.4;vertalign,top;y,SCREEN_CENTER_Y-230;); + -- }; +-- }; + +-- Banner + +t[#t+1] = LoadActor(THEME:GetPathG("ScreenSelectMusic", "banner overlay")) .. { + InitCommand=cmd(zoom,1;x,SCREEN_CENTER_X-228;y,SCREEN_CENTER_Y-165-11;draworder,47); + OnCommand=cmd(zoomy,0;decelerate,0.3;zoomy,1;); + OffCommand=cmd(decelerate,0.15;zoomx,0;); }; - if ShowStandardDecoration("PercentScore"..ToEnumShortString(pn)) then - t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(pn), PercentScore(pn)); - end; -end -t[#t+1] = StandardDecorationFromFileOptional("BannerFrame","BannerFrame"); -t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayFrameP1","PaneDisplayFrame"); -t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayFrameP2","PaneDisplayFrame"); -t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP1","PaneDisplayTextP1"); -t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP2","PaneDisplayTextP2"); -t[#t+1] = StandardDecorationFromFileOptional("DifficultyList","DifficultyList"); -t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); -t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel"); -t[#t+1] = StandardDecorationFromFileOptional("SegmentDisplay","SegmentDisplay"); ---[[ t[#t+1] = StandardDecorationFromFileOptional("NegativeDisplay","NegativeDisplay") .. { -}; --]] +-- Genre/Artist data +t[#t+1] = LoadActor(THEME:GetPathG("ScreenSelectMusic", "info pane")) .. { + InitCommand=cmd(horizalign,center;x,SCREEN_CENTER_X-228;y,SCREEN_CENTER_Y-75;zoom,1;); + OnCommand=function(self) + self:diffuse(ColorMidTone(StageToColor(curStage))); + self:zoomx(0):diffusealpha(0):decelerate(0.3):zoomx(1):diffusealpha(1); + end; + OffCommand=function(self) + self:sleep(0.3):decelerate(0.15):zoomx(0):diffusealpha(0); + end; + }; -t[#t+1] = StandardDecorationFromFileOptional("SongTime","SongTime") .. { +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-330+6-138;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.3;diffusealpha,0;); + -- Length + StandardDecorationFromFileOptional("SongTime","SongTime") .. { SetCommand=function(self) local curSelection = nil; local length = 0.0; if GAMESTATE:IsCourseMode() then curSelection = GAMESTATE:GetCurrentCourse(); - self:playcommand("Reset"); + self:queuecommand("Reset"); if curSelection then local trail = GAMESTATE:GetCurrentTrail(GAMESTATE:GetMasterPlayerNumber()); if trail then @@ -142,158 +119,344 @@ end; else curSelection = GAMESTATE:GetCurrentSong(); - self:playcommand("Reset"); + self:queuecommand("Reset"); if curSelection then length = curSelection:MusicLengthSeconds(); if curSelection:IsLong() then - self:playcommand("Long"); + self:queuecommand("Long"); elseif curSelection:IsMarathon() then - self:playcommand("Marathon"); + self:queuecommand("Marathon"); else - self:playcommand("Reset"); + self:queuecommand("Reset"); end else length = 0.0; - self:playcommand("Reset"); + self:queuecommand("Reset"); end; end; self:settext( SecondsToMSS(length) ); end; - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); - CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); - CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); -} + CurrentSongChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(queuecommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(queuecommand,"Set"); + }; +}; + +-- Course count and type +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-200;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;zoom,1.0;y,SCREEN_CENTER_Y-78+2;maxwidth,180;diffuse,color("#DFE2E9");visible,GAMESTATE:IsCourseMode();); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + local course = GAMESTATE:GetCurrentCourse(); + if course then + self:settext(course:GetEstimatedNumStages() .. " songs"); + self:queuecommand("Refresh"); + else + self:settext(""); + self:queuecommand("Refresh"); + end + end; + }; +}; +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+5;draworder,126); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;zoom,1.0;y,SCREEN_CENTER_Y-78+2;maxwidth,180;diffuse,color("#DFE2E9");visible,GAMESTATE:IsCourseMode();); + CurrentCourseChangedMessageCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + local course = GAMESTATE:GetCurrentCourse(); + if course then + self:settext(CourseTypeToLocalizedString(course:GetCourseType())); + self:queuecommand("Refresh"); + else + self:settext(""); + self:queuecommand("Refresh"); + end + end; + }; +}; +t[#t+1] = StandardDecorationFromFileOptional("CourseContentsList","CourseContentsList"); + if not GAMESTATE:IsCourseMode() then - local function CDTitleUpdate(self) - local song = GAMESTATE:GetCurrentSong(); - local cdtitle = self:GetChild("CDTitle"); - local height = cdtitle:GetHeight(); - - if song then - if song:HasCDTitle() then - cdtitle:visible(true); - cdtitle:Load(song:GetCDTitlePath()); - else - cdtitle:visible(false); + +-- P1 Difficulty Pane +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,center;x,SCREEN_CENTER_X-210-32;y,SCREEN_CENTER_Y+230+8;); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;smooth,0.4;diffusealpha,1;zoomy,1); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_1 then + (cmd(visible,true;diffusealpha,0;linear,0.3;diffusealpha,1))(self); end; - else - cdtitle:visible(false); end; - - self:zoom(scale(height,32,480,1,32/480)) - end; - t[#t+1] = Def.ActorFrame { - OnCommand=cmd(draworder,105;x,SCREEN_CENTER_X-256;y,SCREEN_CENTER_Y-84;zoom,0;sleep,0.5;decelerate,0.25;zoom,1;SetUpdateFunction,CDTitleUpdate); - OffCommand=cmd(bouncebegin,0.15;zoomx,0); - Def.Sprite { - Name="CDTitle"; - OnCommand=cmd(draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.35;zoom,0.75;spin;effectperiod,2;effectmagnitude,0,180,0); - BackCullCommand=cmd(diffuse,color("0.5,0.5,0.5,1")); - }; - }; - t[#t+1] = StandardDecorationFromFileOptional("NewSong","NewSong") .. { - -- ShowCommand=THEME:GetMetric(Var "LoadingScreen", "NewSongShowCommand" ); - -- HideCommand=THEME:GetMetric(Var "LoadingScreen", "NewSongHideCommand" ); - InitCommand=cmd(playcommand,"Set"); - BeginCommand=cmd(playcommand,"Set"); - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - SetCommand=function(self) - -- local pTargetProfile; - local sSong; - -- Start! - if GAMESTATE:GetCurrentSong() then - if PROFILEMAN:IsSongNew(GAMESTATE:GetCurrentSong()) then - self:playcommand("Show"); + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + LoadActor(THEME:GetPathG("ScreenSelectMusic", "pane background")) .. { + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;decelerate,0.3;diffusealpha,1;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:finishtweening():linear(0.2):diffuse(ColorLightTone(CustomDifficultyToColor(cd))); + else + self:diffuse(color("#666666")); + end + else + self:diffuse(color("#666666")); + end + end + }; + LoadFont("StepsDisplay meter") .. { + InitCommand=cmd(zoom,1.25;diffuse,color("#000000");addx,-143;addy,13); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(stepsP1:GetMeter()) + else + self:settext("") + end else - self:playcommand("Hide"); + self:settext("") end - else - self:playcommand("Hide"); - end - end; - }; - t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); -end; - -if GAMESTATE:IsCourseMode() then - t[#t+1] = Def.ActorFrame { - Def.Quad { - InitCommand=cmd( - x,THEME:GetMetric(Var "LoadingScreen","CourseContentsListX"); - y,THEME:GetMetric(Var "LoadingScreen","CourseContentsListY") - 118; - zoomto,256+32,192; - ); - OnCommand=cmd(diffuse,Color.Green;MaskSource); - }; - Def.Quad { - InitCommand=cmd( - x,THEME:GetMetric(Var "LoadingScreen","CourseContentsListX"); - y,THEME:GetMetric(Var "LoadingScreen","CourseContentsListY") + 186; - zoomto,256+32,64; - ); - OnCommand=cmd(diffuse,Color.Blue;MaskSource); + end }; - }; - t[#t+1] = StandardDecorationFromFileOptional("CourseContentsList","CourseContentsList"); - t[#t+1] = StandardDecorationFromFileOptional("NumCourseSongs","NumCourseSongs")..{ - InitCommand=cmd(horizalign,right); - SetCommand=function(self) - local curSelection= nil; - local sAppend = ""; - if GAMESTATE:IsCourseMode() then - curSelection = GAMESTATE:GetCurrentCourse(); - if curSelection then - sAppend = (curSelection:GetEstimatedNumStages() == 1) and "Stage" or "Stages"; - self:visible(true); - self:settext( curSelection:GetEstimatedNumStages() .. " " .. sAppend); + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(uppercase,true;zoom,1;addy,-40;addx,-143;diffuse,color("#000000");maxwidth,115;); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))); + else + self:settext("") + end else - self:visible(false); - end; - else - self:visible(false); + self:settext("") + end + end + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;zoom,0.75;addy,-20;addx,-143;diffuse,color("#000000");maxwidth,130); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP1ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + local st = stepsP1:GetStepsType(); + local diff = stepsP1:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("StepsType",ToEnumShortString(st))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + +-- P2 Difficulty Pane +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,center;x,SCREEN_CENTER_X+210+32;y,SCREEN_CENTER_Y+230+8;); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;smooth,0.4;diffusealpha,1;zoomy,1); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_2 then + (cmd(visible,true;diffusealpha,0;linear,0.3;diffusealpha,1))(self); end; end; - CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + LoadActor(THEME:GetPathG("ScreenSelectMusic", "pane background")) .. { + InitCommand=cmd(zoomx,-1;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;decelerate,0.3;diffusealpha,1;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:finishtweening():linear(0.2):diffuse(ColorLightTone(CustomDifficultyToColor(cd))); + else + self:diffuse(color("#666666")); + end + else + self:diffuse(color("#666666")); + end + end + }; + LoadFont("StepsDisplay meter") .. { + InitCommand=cmd(zoom,1.25;diffuse,color("#000000");addx,143;addy,13); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(stepsP2:GetMeter()) + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(uppercase,true;zoom,1;addy,-40;addx,143;diffuse,color("#000000");maxwidth,115;); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("CustomDifficulty",ToEnumShortString(diff))); + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;zoom,0.75;addy,-20;addx,143;diffuse,color("#000000");maxwidth,130); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.75;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + CurrentStepsP2ChangedMessageCommand=cmd(queuecommand,"Set";); + PlayerJoinedMessageCommand=cmd(queuecommand,"Set";diffusealpha,0;linear,0.3;diffusealpha,0.75;); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + local st = stepsP2:GetStepsType(); + local diff = stepsP2:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:settext(THEME:GetString("StepsType",ToEnumShortString(st))); + else + self:settext("") + end + else + self:settext("") + end + end + }; }; -end -t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP1","PaneDisplayTextP1"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP2","PaneDisplayTextP2"); + +t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(PLAYER_1), PercentScore(PLAYER_1)); +t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(PLAYER_2), PercentScore(PLAYER_2)); -t[#t+1] = StandardDecorationFromFileOptional("SortOrder","SortOrderText") .. { - BeginCommand=cmd(playcommand,"Set"); - SortOrderChangedMessageCommand=cmd(playcommand,"Set"); - SetCommand=function(self) - local s = GAMESTATE:GetSortOrder() - if s ~= nil then - local s = SortOrderToLocalizedString( s ) - self:settext( s ) - self:playcommand("Sort") - else - return - end - end; -}; -t[#t+1] = StandardDecorationFromFileOptional("SongOptionsFrame","SongOptionsFrame") .. { - ShowPressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameShowCommand"); - ShowEnteringOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameEnterCommand"); - HidePressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameHideCommand"); +end; + +-- BPMDisplay +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(draworder,126;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(diffusealpha,0;smooth,0.3;diffusealpha,1;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + LoadFont("Common Condensed") .. { + InitCommand=cmd(horizalign,right;x,SCREEN_CENTER_X-198+69-66;y,SCREEN_CENTER_Y-78+2;diffuse,color("#512232");horizalign,right;visible,not GAMESTATE:IsCourseMode();); + OnCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + self:settext("BPM"):diffuse(ColorLightTone(StageToColor(curStage))); + end; + }; + StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); }; + +t[#t+1] = StandardDecorationFromFileOptional("DifficultyList","DifficultyList"); t[#t+1] = StandardDecorationFromFileOptional("SongOptions","SongOptionsText") .. { ShowPressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsShowCommand"); ShowEnteringOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsEnterCommand"); HidePressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsHideCommand"); }; --- Sounds -t[#t+1] = Def.ActorFrame { - LoadActor(THEME:GetPathS("_switch","up")) .. { - SelectMenuOpenedMessageCommand=cmd(stop;play); + +t[#t+1] = Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(draworder,160;FullScreen;diffuse,color("0,0,0,1");diffusealpha,0); + ShowPressStartForOptionsCommand=cmd(sleep,0.2;decelerate,0.5;diffusealpha,1); }; - LoadActor(THEME:GetPathS("_switch","down")) .. { - SelectMenuClosedMessageCommand=cmd(stop;play); +}; + +t[#t+1] = StandardDecorationFromFileOptional("AlternateHelpDisplay","AlternateHelpDisplay"); + + +t[#t+1] = Def.ActorFrame { + OffCommand=cmd(sleep,0.1;linear,0.2;diffusealpha,0;); + InitCommand=cmd(x,SCREEN_CENTER_X-84;visible,not GAMESTATE:IsCourseMode();); + + StandardDecorationFromFileOptional("StageDisplay","StageDisplay") .. { + InitCommand=cmd(zoom,1); }; }; -return t +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/ScreenSelectMusic banner background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic decorations/ScreenSelectMusic banner background.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +local transition_params = { + color = color("#005A9D"), + transition_type = "in" +} + +return LoadActor(THEME:GetPathB("", "_transition"), transition_params) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,70 +1,45 @@ -local num_players = GAMESTATE:GetHumanPlayers(); -local function PositionItem(i,max) - local x_spacing = 128; - return x_spacing * (i-(max-1)/2); -end +local t = Def.ActorFrame {}; - -local t = Def.ActorFrame { - FOV=90; - -- - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_CENTER_X+80,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.75;fadeleft,32/SCREEN_CENTER_X;faderight,32/SCREEN_CENTER_X); - }; -}; --- -for i=1,#num_players do - local f = Def.ActorFrame { - InitCommand=cmd(x,-128+PositionItem(i,#num_players)); - UnchosenCommand=cmd(finishtweening;bounceend,0.25;zoom,1); - ChosenCommand=cmd(stoptweening;bouncebegin,0.3;zoom,0); - -- - StepsChosenMessageCommand=function( self, param ) - if param.Player ~= num_players[i] then return end; - self:playcommand("Chosen"); - end; - StepsUnchosenMessageCommand=function( self, param ) - if param.Player ~= num_players[i] then return end; - self:playcommand("Unchosen"); - end; - Def.Quad { - InitCommand=cmd(y,-35); - OnCommand=cmd(diffuse,PlayerColor(num_players[i]);shadowlength,1;linear,0.25;zoomtowidth,80;fadeleft,0.5;faderight,0.5); - }; - LoadFont("Common Bold") .. { - Text=ToEnumShortString(num_players[i]); - InitCommand=cmd(y,-48); - OnCommand=cmd(shadowlength,1;diffuse,PlayerColor(num_players[i])); - }; - LoadFont("Common Bold") .. { - Text="PRESS"; - InitCommand=cmd(y,-20); - OnCommand=cmd(shadowlength,1;pulse;effectmagnitude,1,1.125,1;effectperiod,0.5); - }; - LoadFont("Common Normal") .. { - Text="TO START"; - InitCommand=cmd(y,58); - OnCommand=cmd(shadowlength,1;zoom,0.75); - }; +-- Sort order +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_RIGHT-290;y,SCREEN_TOP+49;); + OffCommand=cmd(linear,0.3;diffusealpha,0;); + LoadActor(THEME:GetPathG("", "_sortFrame")) .. { + InitCommand=cmd(diffusealpha,0.9;zoom,1.5); + OnCommand=function(self) + self:diffuse(ScreenColor(SCREENMAN:GetTopScreen():GetName())); + end }; - if GAMESTATE:GetCurrentGame():GetName() == "pump" then - local ns = num_players[i] == PLAYER_1 and RoutineSkinP1() or RoutineSkinP2() - f[#f+1] = LoadActor( NOTESKIN:GetPathForNoteSkin("Center","Tap",ns) ) .. { - InitCommand=cmd(y,20); - } - end - t[#t+1] = f; -end --- Lock input for half a second so that players don't accidentally start a song -t[#t+1] = Def.Actor { - StartSelectingStepsMessageCommand=function() SCREENMAN:GetTopScreen():lockinput(0.5); end; -}; --- -t.InitCommand=cmd(Center;x,SCREEN_CENTER_X*1.5;diffusealpha,0); -t.StartSelectingStepsMessageCommand=cmd(linear,0.2;diffusealpha,1); -t.SongUnchosenMessageCommand=cmd(linear,0.2;diffusealpha,0); + LoadFont("Common Condensed") .. { + InitCommand=cmd(zoom,1;diffuse,color("#FFFFFF");diffusealpha,0.85;horizalign,left;addx,-115;); + OnCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + self:settext("SORT:"); + self:queuecommand("Refresh"); + end; + }; + LoadFont("Common Condensed") .. { + InitCommand=cmd(zoom,1;maxwidth,SCREEN_WIDTH;addx,115;diffuse,color("#FFFFFF");uppercase,true;horizalign,right;maxwidth,157;); + OnCommand=cmd(queuecommand,"Set"); + SortOrderChangedMessageCommand=cmd(queuecommand,"Set"); + ChangedLanguageDisplayMessageCommand=cmd(queuecommand,"Set"); + SetCommand=function(self) + local sortorder = GAMESTATE:GetSortOrder(); + if sortorder then + self:finishtweening(); + self:smooth(0.4); + self:diffusealpha(0); + self:settext(SortOrderToLocalizedString(sortorder)); + self:queuecommand("Refresh"):stoptweening():diffusealpha(0):smooth(0.3):diffusealpha(1) + else + self:settext(""); + self:queuecommand("Refresh"); + end + end; + }; +}; -return t; +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectMusic underlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectMusic underlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -local t = Def.ActorFrame { - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0); - StartSelectingStepsMessageCommand=cmd(stoptweening;linear,0.2;diffusealpha,0.75); - SongUnchosenMessageCommand=cmd(stoptweening;linear,0.2;diffusealpha,0); - }; -}; - -t.InitCommand=cmd(Center); - -return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode underlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectPlayMode underlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -local t = Def.ActorFrame {}; -t[#t+1] = StandardDecorationFromFileOptional("BackgroundFrame","BackgroundFrame"); -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectProfile overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectProfile overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSelectProfile overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSelectProfile overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,50 +1,52 @@ function GetLocalProfiles() - local ret = {}; + local t = {}; + + function GetSongsPlayedString(numSongs) + return numSongs == 1 and Screen.String("SingularSongPlayed") or Screen.String("SeveralSongsPlayed") + end for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do local profile=PROFILEMAN:GetLocalProfileFromIndex(p); - local item = Def.ActorFrame { + local ProfileCard = Def.ActorFrame { --[[ Def.Quad { InitCommand=cmd(zoomto,200,1;y,40/2); OnCommand=cmd(diffuse,Color('Outline');); }; --]] - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Text=profile:GetDisplayName(); InitCommand=cmd(shadowlength,1;y,-10;zoom,1;ztest,true); }; - LoadFont("Common Normal") .. { + LoadFont("Common Fallback") .. { InitCommand=cmd(shadowlength,1;y,8;zoom,0.5;vertspacing,-8;ztest,true); BeginCommand=function(self) local numSongsPlayed = profile:GetNumTotalSongsPlayed(); - local s = numSongsPlayed == 1 and "Song" or "Songs"; - self:settext( string.format(THEME:GetString("ScreenSelectProfile","%d "..s.." Played"),numSongsPlayed) ); + self:settext( string.format( GetSongsPlayedString( numSongsPlayed ), numSongsPlayed ) ) end; }; }; - table.insert( ret, item ); + t[#t+1]=ProfileCard; end; - return ret; + return t; end; function LoadCard(cColor) local t = Def.ActorFrame { - LoadActor( THEME:GetPathG("ScreenSelectProfile","CardBackground") ) .. { - InitCommand=cmd(diffuse,cColor); - }; - LoadActor( THEME:GetPathG("ScreenSelectProfile","CardFrame") ); - }; + Def.Quad { + InitCommand=cmd(zoomto,300,SCREEN_HEIGHT/1.3;y,20;diffuse,ColorDarkTone(cColor);diffusealpha,0.8;fadetop,0.2;fadebottom,0.2) + } + } return t end function LoadPlayerStuff(Player) - local ret = {}; + local t = {}; local pn = (Player == PLAYER_1) and 1 or 2; --[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. { Name = 'BigFrame'; }; --]] - local t = Def.ActorFrame { + t[#t+1] = Def.ActorFrame { Name = 'JoinFrame'; LoadCard(Color('Orange')); --[[ Def.Quad { @@ -55,54 +57,32 @@ InitCommand=cmd(zoomto,200,230); OnCommand=cmd(diffuse,Color('Orange');diffusealpha,0.5); }; --]] - LoadFont("Common Normal") .. { - Text=THEME:GetString("ScreenSelectProfile","PressStart"); - InitCommand=cmd(shadowlength,1); + LoadFont("Common Italic Condensed") .. { + Text="Press &START; to join."; + InitCommand=cmd(shadowlength,1;zoom,1.25); OnCommand=cmd(diffuseshift;effectcolor1,Color('White');effectcolor2,color("0.5,0.5,0.5")); }; }; - table.insert( ret, t ); - t = Def.ActorFrame { + t[#t+1] = Def.ActorFrame { Name = 'BigFrame'; LoadCard(PlayerColor(Player)); }; - table.insert( ret, t ); - ---[[ t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 170, 20) .. { - Name = 'SmallFrame'; - }; --]] - t = Def.ActorFrame { + t[#t+1] = Def.ActorFrame { Name = 'SmallFrame'; ---[[ Def.Quad { - InitCommand=cmd(zoomto,170+4,32+4); - OnCommand=cmd(shadowlength,1); - }; --]] InitCommand=cmd(y,-2); Def.Quad { - InitCommand=cmd(zoomto,200-10,40+2); - OnCommand=cmd(diffuse,Color('Black');diffusealpha,0.5); - }; - Def.Quad { - InitCommand=cmd(zoomto,200-10,40); - OnCommand=cmd(diffuse,PlayerColor(Player);fadeleft,0.25;faderight,0.25;glow,color("1,1,1,0.25")); + InitCommand=cmd(zoomto,300,40); + OnCommand=cmd(diffuse,PlayerColor(Player);fadeleft,0.25;faderight,0.25); }; - Def.Quad { - InitCommand=cmd(zoomto,200-10,40;y,-40/2+20); - OnCommand=cmd(diffuse,Color("Black");fadebottom,1;diffusealpha,0.35); - }; - Def.Quad { - InitCommand=cmd(zoomto,200-10,1;y,-40/2+1); - OnCommand=cmd(diffuse,PlayerColor(Player);glow,color("1,1,1,0.25")); - }; }; - table.insert( ret, t ); - t = Def.ActorScroller{ - Name = 'ProfileScroller'; + t[#t+1] = Def.ActorScroller{ + Name = 'Scroller'; NumItemsToDraw=6; --- InitCommand=cmd(y,-230/2+20;); + --InitCommand=cmd(zoom,2); OnCommand=cmd(y,1;SetFastCatchup,true;SetMask,200,58;SetSecondsPerItem,0.15); + OffCommand=cmd(decelerate,0.5;diffusealpha,0); TransformFunction=function(self, offset, itemIndex, numItems) local focus = scale(math.abs(offset),0,2,1,0); self:visible(false); @@ -113,40 +93,22 @@ end; children = GetLocalProfiles(); }; - table.insert( ret, t ); - t = Def.ActorFrame { + t[#t+1] = Def.ActorFrame { Name = "EffectFrame"; - --[[ Def.Quad { - InitCommand=cmd(y,-230/2;vertalign,top;zoomto,200,8;fadebottom,1); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25); - }; - Def.Quad { - InitCommand=cmd(y,230/2;vertalign,bottom;zoomto,200,8;fadetop,1); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25); - }; --]] }; - table.insert( ret, t ); ---[[ t = Def.BitmapText { - OnCommand = cmd(y,160); - Name = 'SelectedProfileText'; - Font = "Common Normal"; - Text = 'No profile'; - }; --]] - t = LoadFont("Common Normal") .. { + t[#t+1] = LoadFont("Common Condensed") .. { Name = 'SelectedProfileText'; - --InitCommand=cmd(y,160;shadowlength,1;diffuse,PlayerColor(Player)); - InitCommand=cmd(y,160;shadowlength,1;); + InitCommand=cmd(y,160;shadowlength,1;diffuse,ColorLightTone(PlayerColor(Player));diffusebottomedge,color("#FFFFFF");zoom,1.25); }; - table.insert( ret, t ); - return ret; + return t; end; function UpdateInternal3(self, Player) local pn = (Player == PLAYER_1) and 1 or 2; local frame = self:GetChild(string.format('P%uFrame', pn)); - local scroller = frame:GetChild('ProfileScroller'); + local scroller = frame:GetChild('Scroller'); local seltext = frame:GetChild('SelectedProfileText'); local joinframe = frame:GetChild('JoinFrame'); local smallframe = frame:GetChild('SmallFrame'); @@ -193,59 +155,17 @@ end; end; --- Will be set to the main ActorFrame for the screen in its OnCommand. -local main_frame= false - -local function input(event) - if event.type == "InputEventType_Release" then return end - local pn= event.PlayerNumber - local code= event.GameButton - if not pn or not code then return end - local input_functions= { - Start= function() - MESSAGEMAN:Broadcast("StartButton") - if not GAMESTATE:IsHumanPlayer(pn) then - SCREENMAN:GetTopScreen():SetProfileIndex(pn, -1) - else - SCREENMAN:GetTopScreen():Finish() - end - end, - Back= function() - if GAMESTATE:GetNumPlayersEnabled()==0 then - SCREENMAN:GetTopScreen():Cancel() - else - MESSAGEMAN:Broadcast("BackButton") - SCREENMAN:GetTopScreen():SetProfileIndex(pn, -2) - end - end, - MenuUp= function() - if GAMESTATE:IsHumanPlayer(pn) then - local ind = SCREENMAN:GetTopScreen():GetProfileIndex(pn) - if ind > 1 then - if SCREENMAN:GetTopScreen():SetProfileIndex(pn, ind - 1) then - MESSAGEMAN:Broadcast("DirectionButton") - main_frame:queuecommand('UpdateInternal2') - end - end - end - end, - MenuDown= function() - if GAMESTATE:IsHumanPlayer(pn) then - local ind = SCREENMAN:GetTopScreen():GetProfileIndex(pn) - if ind > 0 then - if SCREENMAN:GetTopScreen():SetProfileIndex(pn, ind + 1) then - MESSAGEMAN:Broadcast("DirectionButton") - main_frame:queuecommand('UpdateInternal2') - end - end - end +-- here's a (messy) fix for one player's selection ending the screen, +-- at least until this whole thing is rewritten to be... Not this +local ready = {} +local function AllPlayersReady() + for i, pn in ipairs(GAMESTATE:GetHumanPlayers()) do + if not ready[pn] then + return false end - } - input_functions.MenuLeft= input_functions.MenuUp - input_functions.MenuRight= input_functions.MenuDown - if input_functions[code] then - input_functions[code]() end + -- if it hasn't returned false by now, surely it must be true, right? RIGHT??? + return true end local t = Def.ActorFrame { @@ -254,6 +174,57 @@ self:queuecommand('UpdateInternal2'); end; + CodeMessageCommand = function(self, params) + if params.Name == 'Start' or params.Name == 'Center' then + MESSAGEMAN:Broadcast("StartButton"); + if not GAMESTATE:IsHumanPlayer(params.PlayerNumber) then + SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, -1); + else + ready[params.PlayerNumber] = true + if AllPlayersReady() then + SCREENMAN:GetTopScreen():Finish(); + end + end; + end; + if params.Name == 'Up' or params.Name == 'Up2' or params.Name == 'DownLeft' then + -- Added a line to make sure the player can't fiddle around in the menu + -- after they've already made a selection. + if GAMESTATE:IsHumanPlayer(params.PlayerNumber) and not ready[params.PlayerNumber] then + local ind = SCREENMAN:GetTopScreen():GetProfileIndex(params.PlayerNumber); + if ind > 1 then + if SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, ind - 1 ) then + MESSAGEMAN:Broadcast("DirectionButton"); + self:queuecommand('UpdateInternal2'); + end; + end; + end; + end; + if params.Name == 'Down' or params.Name == 'Down2' or params.Name == 'DownRight' then + if GAMESTATE:IsHumanPlayer(params.PlayerNumber) and not ready[params.PlayerNumber] then + local ind = SCREENMAN:GetTopScreen():GetProfileIndex(params.PlayerNumber); + if ind > 0 then + if SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, ind + 1 ) then + MESSAGEMAN:Broadcast("DirectionButton"); + self:queuecommand('UpdateInternal2'); + end; + end; + end; + end; + if params.Name == 'Back' then + if GAMESTATE:GetNumPlayersEnabled()==0 then + SCREENMAN:GetTopScreen():Cancel(); + else + MESSAGEMAN:Broadcast("BackButton") + -- Allow... erm... un-readying a player. + if ready[params.PlayerNumber] then + ready[params.PlayerNumber] = false + else + SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, -2); + end + end; + end; + end; + PlayerJoinedMessageCommand=function(self, params) self:queuecommand('UpdateInternal2'); end; @@ -263,8 +234,6 @@ end; OnCommand=function(self, params) - main_frame= self:GetParent() - SCREENMAN:GetTopScreen():AddInputCallback(input) self:queuecommand('UpdateInternal2'); end; @@ -277,38 +246,35 @@ Def.ActorFrame { Name = 'P1Frame'; InitCommand=cmd(x,SCREEN_CENTER_X-160;y,SCREEN_CENTER_Y); - OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); - OffCommand=cmd(bouncebegin,0.35;zoom,0); - PlayerJoinedMessageCommand=function(self,param) - if param.Player == PLAYER_1 then - (cmd(;zoom,1.15;bounceend,0.175;zoom,1.0;))(self); - end; - end; + --OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + -- PlayerJoinedMessageCommand=function(self,param) + -- if param.Player == PLAYER_1 then + -- (cmd(;zoom,1.15;bounceend,0.175;zoom,1.0;))(self); + -- end; + -- end; children = LoadPlayerStuff(PLAYER_1); }; Def.ActorFrame { Name = 'P2Frame'; InitCommand=cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y); - OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); - OffCommand=cmd(bouncebegin,0.35;zoom,0); - PlayerJoinedMessageCommand=function(self,param) - if param.Player == PLAYER_2 then - (cmd(zoom,1.15;bounceend,0.175;zoom,1.0;))(self); - end; - end; + --OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); + OffCommand=cmd(decelerate,0.3;diffusealpha,0); + -- PlayerJoinedMessageCommand=function(self,param) + -- if param.Player == PLAYER_2 then + -- (cmd(zoom,1.15;bounceend,0.175;zoom,1.0;))(self); + -- end; + -- end; children = LoadPlayerStuff(PLAYER_2); }; -- sounds LoadActor( THEME:GetPathS("Common","start") )..{ - IsAction= true, StartButtonMessageCommand=cmd(play); }; LoadActor( THEME:GetPathS("Common","cancel") )..{ - IsAction= true, BackButtonMessageCommand=cmd(play); }; LoadActor( THEME:GetPathS("Common","value") )..{ - IsAction= true, DirectionButtonMessageCommand=cmd(play); }; }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSMOnlineLogin background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSMOnlineLogin background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSMOnlineLogin background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSMOnlineLogin background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Online background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSongOptions background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSongOptions background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSongOptions background.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSongOptions background.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenPlayerOptions background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/_arrow (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/_arrow (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,4 +1,7 @@ if not GAMESTATE:IsCourseMode() then return Def.ActorFrame{} end; -- short circuit +local slideTime = 1.1; +local slideWait = 1.25; +local bottomSlide = 0.76; local course = GAMESTATE:GetCurrentCourse() local t = Def.ActorFrame{ @@ -13,17 +16,19 @@ self:LoadFromCurrentSongBackground() end end; - OnCommand=cmd(diffusealpha,0;scale_or_crop_background;sleep,0.5;linear,0.50;diffusealpha,1;sleep,3); - }; + OnCommand=function(self) + self:scale_or_crop_background() + self:addy(SCREEN_HEIGHT):sleep(slideWait):smooth(slideTime):addy(-SCREEN_HEIGHT); + end; + }; -- alternate background Def.Sprite{ InitCommand=cmd(Center;); BeginCommand=cmd(LoadFromCurrentSongBackground;scale_or_crop_background;diffusealpha,0); - OnCommand=cmd(sleep,4;playcommand,"Show"); + OnCommand=cmd(playcommand,"Show"); ShowCommand=function(self) if course:HasBackground() then - self:accelerate(0.25) - self:diffusealpha(1) + self:addy(SCREEN_HEIGHT):sleep(slideWait):smooth(slideTime):addy(-SCREEN_HEIGHT); end end; }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,4 +1,8 @@ local playMode = GAMESTATE:GetPlayMode() +local slideTime = 1.1; +local slideWait = 1.25; +local bottomSlide = 0.76; +local easeTime = 0.10; local sStage = "" sStage = GAMESTATE:GetCurrentStage() @@ -11,22 +15,41 @@ t[#t+1] = Def.Quad { InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color("Black")); }; + if GAMESTATE:IsCourseMode() then t[#t+1] = LoadActor("CourseDisplay"); else t[#t+1] = Def.Sprite { - InitCommand=cmd(Center;diffusealpha,0); + InitCommand=cmd(Center;diffusealpha,0.26); BeginCommand=cmd(LoadFromCurrentSongBackground); OnCommand=function(self) self:scale_or_crop_background() - self:sleep(0.5) - self:linear(0.50) - self:diffusealpha(1) - self:sleep(3) + self:addy(SCREEN_HEIGHT):sleep(slideWait):smooth(slideTime):addy(-SCREEN_HEIGHT):diffusealpha(1); end; }; end + +-- BG for credits +t[#t+1] = Def.ActorFrame { + OnCommand=cmd(addy,SCREEN_HEIGHT;sleep,slideWait;smooth,slideTime+easeTime;addy,-SCREEN_HEIGHT;sleep,2-easeTime;smooth,bottomSlide;addy,240); + -- Behind stage graphic + Def.Quad { + InitCommand=cmd(vertalign,bottom;x,SCREEN_CENTER_X;y,SCREEN_BOTTOM-110;zoomto,SCREEN_WIDTH,120;); + OnCommand=function(self) + self:diffuse(color("#000000")):diffusealpha(0.8); + end + }; + -- Behind song + Def.Quad { + InitCommand=cmd(vertalign,bottom;x,SCREEN_CENTER_X;y,SCREEN_BOTTOM;zoomto,SCREEN_WIDTH,110;); + OnCommand=function(self) + self:diffuse(color("#000000")):diffusealpha(0.9); + end + }; +}; + + local stage_num_actor= THEME:GetPathG("ScreenStageInformation", "Stage " .. ToEnumShortString(sStage), true) if stage_num_actor ~= "" and FILEMAN:DoesFileExist(stage_num_actor) then stage_num_actor= LoadActor(stage_num_actor) @@ -46,46 +69,127 @@ end t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); - OnCommand=cmd(stoptweening;zoom,1.25;decelerate,3;zoom,1); + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+190); + OnCommand=cmd(addy,SCREEN_HEIGHT;sleep,slideWait;smooth,slideTime+easeTime;addy,-SCREEN_HEIGHT;sleep,2-easeTime;smooth,bottomSlide;addy,240;); + stage_num_actor .. { - OnCommand=cmd(diffusealpha,0;linear,0.25;diffusealpha,1;sleep,1.75;linear,0.5;zoomy,0;zoomx,2;diffusealpha,0); + OnCommand=cmd(zoom,1;diffusealpha,1); }; }; +-- Step author credits + if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(y,SCREEN_BOTTOM-80;x,SCREEN_LEFT+40;); + OnCommand=cmd(addy,SCREEN_HEIGHT;sleep,slideWait;smooth,slideTime+easeTime;addy,-SCREEN_HEIGHT;sleep,2-easeTime;smooth,bottomSlide;addy,240;); + LoadFont("Common Italic Condensed") .. { + OnCommand=cmd(playcommand,"Set";horizalign,left;diffuse,color("#FFFFFF");); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1:GetAuthorCredit() ~= "" then + self:settext(string.upper(THEME:GetString("OptionTitles","Step Author")) .. ":"); + else + self:settext("") + end + else + self:settext("") + end + end + }; + LoadFont("Common Fallback Font") .. { + InitCommand=cmd(addy,22); + OnCommand=cmd(playcommand,"Set";horizalign,left;zoom,0.75;diffuse,color("#FFFFFF");); + SetCommand=function(self) + stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP1 ~= nil then + self:settext(stepsP1:GetAuthorCredit()) + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + end + + if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(y,SCREEN_BOTTOM-80;x,SCREEN_RIGHT-40;); + OnCommand=cmd(addy,SCREEN_HEIGHT;sleep,slideWait;smooth,slideTime+easeTime;addy,-SCREEN_HEIGHT;sleep,2-easeTime;smooth,bottomSlide;addy,240;); + LoadFont("Common Italic Condensed") .. { + OnCommand=cmd(playcommand,"Set";horizalign,right;diffuse,color("#FFFFFF");); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + local diff = stepsP2:GetDifficulty(); + if stepsP2:GetAuthorCredit() ~= "" then + self:settext(string.upper(THEME:GetString("OptionTitles","Step Author")) .. ":"); + else + self:settext("") + end + else + self:settext("") + end + end + }; + + LoadFont("Common Fallback Font") .. { + InitCommand=cmd(addy,22); + OnCommand=cmd(playcommand,"Set";horizalign,right;zoom,0.75;diffuse,color("#FFFFFF");); + SetCommand=function(self) + stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + local song = GAMESTATE:GetCurrentSong(); + if song then + if stepsP2 ~= nil then + self:settext(stepsP2:GetAuthorCredit()) + else + self:settext("") + end + else + self:settext("") + end + end + }; + }; + end + +-- Song title and artist t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+96); - OnCommand=cmd(stoptweening;addy,-16;decelerate,3;addy,16); - LoadFont("Common Normal") .. { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_BOTTOM-80); + OnCommand=cmd(addy,SCREEN_HEIGHT;sleep,slideWait;smooth,slideTime+easeTime;addy,-SCREEN_HEIGHT;sleep,2-easeTime;smooth,bottomSlide;addy,240;); + LoadFont("Common Fallback Font") .. { Text=GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() or GAMESTATE:GetCurrentSong():GetDisplayFullTitle(); - InitCommand=cmd(strokecolor,Color("Outline");y,-20); - OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + InitCommand=cmd(diffuse,color("#FFFFFF");maxwidth,SCREEN_WIDTH*0.6); + OnCommand=cmd(zoom,1;); }; - LoadFont("Common Normal") .. { + LoadFont("Common Fallback Font") .. { Text=GAMESTATE:IsCourseMode() and ToEnumShortString( GAMESTATE:GetCurrentCourse():GetCourseType() ) or GAMESTATE:GetCurrentSong():GetDisplayArtist(); - InitCommand=cmd(strokecolor,Color("Outline");zoom,0.75); - OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + InitCommand=cmd(diffuse,color("#FFFFFF");maxwidth,SCREEN_WIDTH*0.6); + OnCommand=cmd(zoom,0.75;addy,24;); }; - LoadFont("Common Normal") .. { - InitCommand=cmd(strokecolor,Color("Outline");diffuse,Color("Orange");diffusebottomedge,Color("Yellow");zoom,0.75;y,20); - BeginCommand=function(self) - local text = ""; - local SongOrCourse; - if GAMESTATE:IsCourseMode() then - local trail = GAMESTATE:GetCurrentTrail(GAMESTATE:GetMasterPlayerNumber()); - SongOrCourse = GAMESTATE:GetCurrentCourse(); - if SongOrCourse:GetEstimatedNumStages() == 1 then - text = SongOrCourse:GetEstimatedNumStages() .." Stage / ".. SecondsToMSSMsMs( TrailUtil.GetTotalSeconds(trail) ); - else - text = SongOrCourse:GetEstimatedNumStages() .." Stages / ".. SecondsToMSSMsMs( TrailUtil.GetTotalSeconds(trail) ); - end - else - SongOrCourse = GAMESTATE:GetCurrentSong(); - text = SecondsToMSSMsMs( SongOrCourse:MusicLengthSeconds() ); - end; - self:settext(text); - end; - OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); +}; + +-- Stunt BG in case the BG accidentally overhangs +t[#t+1] = Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color("Black")); + OnCommand=cmd(sleep,slideWait;smooth,slideTime;addy,-SCREEN_HEIGHT;sleep,0.2;diffusealpha,0); +}; + +t[#t+1] = Def.ActorFrame { + LoadActor("_arrow") .. { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;diffuse,color("#DAD6CC");); + OnCommand=cmd(diffusealpha,0;sleep,0.5;diffusealpha,0.6;decelerate,0.4;zoom,1.2;diffusealpha,0;); + }; + LoadActor("_arrow") .. { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;diffuse,color("#DAD6CC");); + OnCommand=cmd(zoom,0;bounceend,0.5;zoom,1;sleep,0.75;smooth,slideTime;addy,-SCREEN_HEIGHT;); }; }; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSystemLayer aux.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSystemLayer aux.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSystemLayer aux.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSystemLayer aux.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -local t = Def.ActorFrame {}; -local bOpen = false; -local function GetTime(self) - -- Painfully ugly, sorry. - local c = self:GetChildren(); - local tTime = { Hour = nil, Minute = nil, Second = nil, Append = nil}; - - if Hour() then tTime.Hour = Hour() else tTime.Hour = 0 end; - if Minute() then tTime.Minute = Minute() else tTime.Minute = 0 end; - if Second() then tTime.Second = Second() else tTime.Second = 0 end; - - if( Hour() < 12 ) then - tTime.Append = "AM" - else - tTime.Append = "PM" - end; - - if( Hour() == 0 ) then - tTime.Hour = 12; - end; - - c.Time:settextf("%02i:%02i:%02i %s",tTime.Hour,tTime.Minute,tTime.Second,tTime.Append); -end; -t[#t+1] = Def.ActorFrame { - Def.ActorFrame { - LoadActor(THEME:GetPathB("","_frame 3x3"),"rounded black",96,12) .. { - Name="Background"; - }; - LoadFont("Common Normal") .. { - Text="Test"; - Name="Time"; - InitCommand=cmd(zoom,0.675); - }; - -- - BeginCommand=function(self) - self:SetUpdateFunction( GetTime ); - self:SetUpdateRate( 1/30 ); - end; - }; - ToggleConsoleDisplayMessageCommand=function(self) - bOpen = not bOpen; - if bOpen then self:playcommand("Show") else self:playcommand("Hide") end - end; - InitCommand=cmd(x,SCREEN_RIGHT-50;y,10;visible,false); - ShowCommand=cmd(finishtweening;visible,true); - HideCommand=cmd(finishtweening;visible,false); -}; -return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSystemLayer overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSystemLayer overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenSystemLayer overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenSystemLayer overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,92 @@ +local function CreditsText( pn ) + local text = LoadFont(Var "LoadingScreen","credits") .. { + InitCommand=function(self) + self:name("Credits" .. PlayerNumberToString(pn)) + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + UpdateTextCommand=function(self) + local str = ScreenSystemLayerHelpers.GetCreditsMessage(pn); + self:settext(str); + end; + UpdateVisibleCommand=function(self) + local screen = SCREENMAN:GetTopScreen(); + local bShow = true; + if screen then + local sClass = screen:GetName(); + bShow = THEME:GetMetric( sClass, "ShowCreditDisplay" ); + end + + self:visible( bShow ); + end + }; + return text; +end; + +--[[ local function PlayerPane( PlayerNumber ) + local t = Def.ActorFrame { + InitCommand=function(self) + self:name("PlayerPane" .. PlayerNumberToString(PlayerNumber)); + -- ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end + }; + t[#t+1] = Def.ActorFrame { + Name = "Background"; + Def.Quad { + InitCommand=cmd(zoomto,160,28;queuecommand,"On"); + OnCommand=cmd(diffuse,PlayerColor(PlayerNumber);fadebottom,1); + }; + }; + t[#t+1] = Def.BitmapText{ + Font="Common Normal"; + Name = "PlayerText"; + InitCommand=cmd(x,-60;maxwidth,80/0.5;zoom,0.5;queuecommand,"On"); + OnCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local profile = PROFILEMAN:GetProfile( PlayerNumber) or PROFILEMAN:GetMachineProfile() + if profile then + self:settext( profile:GetDisplayName() ); + else + self:settext( "NoProf" ); + end + end; + }; + return t +end --]] +-- +local t = Def.ActorFrame {} + -- Aux +t[#t+1] = LoadActor(THEME:GetPathB("ScreenSystemLayer","aux")); + -- Credits +t[#t+1] = Def.ActorFrame { +--[[ PlayerPane( PLAYER_1 ) .. { + InitCommand=cmd(x,scale(0.125,0,1,SCREEN_LEFT,SCREEN_WIDTH);y,SCREEN_BOTTOM-16) + }; --]] + CreditsText( PLAYER_1 ); + CreditsText( PLAYER_2 ); +}; + -- Text +t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(zoomtowidth,SCREEN_WIDTH;zoomtoheight,30;horizalign,left;vertalign,top;y,SCREEN_TOP;diffuse,color("0,0,0,0")); + OnCommand=cmd(finishtweening;diffusealpha,0.85;); + OffCommand=cmd(sleep,3;linear,0.5;diffusealpha,0;); + }; + Def.BitmapText{ + Font="_fira mono 24px"; + Name="Text"; + InitCommand=cmd(maxwidth,750;horizalign,left;vertalign,top;y,SCREEN_TOP+10;x,SCREEN_LEFT+10;shadowlength,1;diffusealpha,0;); + OnCommand=cmd(finishtweening;diffusealpha,1;zoom,0.5); + OffCommand=cmd(sleep,3;linear,0.5;diffusealpha,0;); + }; + SystemMessageMessageCommand = function(self, params) + self:GetChild("Text"):settext( params.Message ); + self:playcommand( "On" ); + if params.NoAnimate then + self:finishtweening(); + end + self:playcommand( "Off" ); + end; + HideSystemMessageMessageCommand = cmd(finishtweening); +}; + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +return Def.ActorFrame { + Def.Quad{ + InitCommand=cmd(scaletocover,-SCREEN_WIDTH*2,SCREEN_TOP,SCREEN_WIDTH*2,SCREEN_BOTTOM;diffuse,color("0,0,0,0.5")); + OnCommand=cmd(diffusealpha,0;smooth,0.2;diffusealpha,0.5;); + OffCommand=cmd(smooth,0.2;diffusealpha,0;); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTextEntry underlay.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenMiniMenu underlay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleJoin decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleJoin decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleJoin decorations.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleJoin decorations.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -local t = LoadFallbackB(); -t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleJoin overlay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -local t = Def.ActorFrame{}; - --- todo: add event mode indicators and such -if GAMESTATE:IsEventMode() then - t[#t+1] = LoadFont("Common Large")..{ - Text=Screen.String("EventMode"); - InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-72;zoom,0.675;diffuse,Color.Yellow;strokecolor,ColorDarkTone(Color.Yellow);shadowlength,1); - OnCommand=cmd(glowshift;textglowmode,'TextGlowMode_Inner';effectperiod,2); - }; -end; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,40 @@ +-- You know what, I guess the "fancy UI background" theme option can be put to use. +if ThemePrefs.Get("FancyUIBG") then + return Def.ActorFrame { + LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + }; + + LoadActor("_particleLoader") .. { + }; + + LoadActor("_maze") .. { + OnCommand=cmd(Center;diffuse,color("#f6784922");effectperiod,10;spin;effectmagnitude,0,0,2.2) + }; + + Def.ActorFrame { + OnCommand=cmd(diffusealpha,0;decelerate,1.8;diffusealpha,1;); + LoadActor("_tunnel1") .. { + InitCommand=cmd(Center;blend,'BlendMode_Add';rotationz,-20), + OnCommand=cmd(zoom,1.75;diffusealpha,0.12;spin;effectmagnitude,0,0,16.5) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(Center;blend,'BlendMode_Add';rotationz,-10), + OnCommand=cmd(zoom,1.0;diffusealpha,0.09;spin;effectmagnitude,0,0,-11) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(Center;blend,'BlendMode_Add';rotationz,0), + OnCommand=cmd(zoom,0.5;diffusealpha,0.06;spin;effectmagnitude,0,0,5.5) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(Center;blend,'BlendMode_Add';rotationz,-10), + OnCommand=cmd(zoom,0.2;diffusealpha,0.03;spin;effectmagnitude,0,0,-2.2) + }; + }; + + } +else + return LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + } +end \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_maze.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_maze.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particleLoader.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particleLoader.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particleLoader.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particleLoader.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,72 @@ +local t = Def.ActorFrame{}; + +local Params = { + NumParticles = 13, + VelocityXMin = 70, + VelocityXMax = 90, + VelocityYMin = 70, + VelocityYMax = 90, + VelocityZMin = 0, + VelocityZMax = 0, + BobRateZMin = 0.4, + BobRateZMax = 0.7, + ZoomMin = 0.2, + ZoomMax = 0.6, + SpinZ = 0, + BobZ = 52, + File = "_particle normal", +}; + +local tParticleInfo = {} + +for i=1,Params.NumParticles do + tParticleInfo[i] = { + X = math.random(Params.VelocityXMin, Params.VelocityXMax), + Y = Params.VelocityYMin ~= Params.VelocityYMax and math.random(Params.VelocityYMin, Params.VelocityYMax) or Params.VelocityYMin, + Z = Params.VelocityZMin ~= Params.VelocityZMax and math.random(Params.VelocityZMin, Params.VelocityZMax) or Params.VelocityZMin, + Zoom = math.random(Params.ZoomMin*1000,Params.ZoomMax*1000) / 1000, + BobZRate = math.random(Params.BobRateZMin*1000,Params.BobRateZMax*1000) / 1000, + Age = 0, + }; + t[#t+1] = LoadActor( Params.File )..{ + Name="Particle"..i; + InitCommand=function(self) + self:basezoom(tParticleInfo[i].Zoom); + self:x(math.random(SCREEN_LEFT+(self:GetWidth()/2),SCREEN_RIGHT-(self:GetWidth()/2))); + self:y(math.random(SCREEN_TOP+(self:GetHeight()/2),SCREEN_BOTTOM-(self:GetHeight()/2))); + --self:z(math.random(-64,0)); + end; + OnCommand=cmd(diffusealpha,1); + }; +end + +local function UpdateParticles(self,DeltaTime) + tParticles = self:GetChildren(); + for i=1, Params.NumParticles do + local p = tParticles["Particle"..i]; + local vX = tParticleInfo[i].X; + local vY = tParticleInfo[i].Y; + local vZ = tParticleInfo[i].Z; + tParticleInfo[i].Age = tParticleInfo[i].Age + DeltaTime; + p:x(p:GetX() + (vX * DeltaTime)); + p:y(p:GetY() + (vY * DeltaTime)); + p:z(p:GetZ() + (vZ * DeltaTime)); +-- p:zoom( 1 + math.cos( +-- (tParticleInfo[i].Age * math.pi*2) +-- ) * 0.125 ); + if p:GetX() > SCREEN_RIGHT + (p:GetWidth()/2 - p:GetZ()) then + p:x(SCREEN_LEFT - (p:GetWidth()/2)); + elseif p:GetX() < SCREEN_LEFT - (p:GetWidth()/2 - p:GetZ()) then + p:x(SCREEN_RIGHT + (p:GetWidth()/2)); + end + if p:GetY() > SCREEN_BOTTOM + (p:GetHeight()/2 - p:GetZ()) then + p:y(SCREEN_TOP - (p:GetHeight()/2)); + elseif p:GetY() < SCREEN_TOP - (p:GetHeight()/2 - p:GetZ()) then + p:y(SCREEN_BOTTOM + (p:GetHeight()/2)); + end + end; +end; + +t.InitCommand = cmd(fov,90;SetUpdateFunction,UpdateParticles); + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particle normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_particle normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_tunnel1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_tunnel1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_tunnel2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu background/_tunnel2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -2,7 +2,17 @@ local t = Def.ActorFrame {} -t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer"); +t[#t+1] = Def.ActorFrame { + OnCommand=function(self) + if not FILEMAN:DoesFileExist("Save/ThemePrefs.ini") then + Trace("ThemePrefs doesn't exist; creating file") + ThemePrefs.ForceSave() + end + + ThemePrefs.Save() + end; +}; + t[#t+1] = StandardDecorationFromFileOptional("Logo","Logo"); t[#t+1] = StandardDecorationFromFileOptional("VersionInfo","VersionInfo"); t[#t+1] = StandardDecorationFromFileOptional("CurrentGametype","CurrentGametype"); diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_ScreenTitleMenu out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_ScreenTitleMenu out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_ScreenTitleMenu out/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_ScreenTitleMenu out/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -return Def.ActorFrame { - InitCommand=cmd(Center); - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;visible,false); - StartTransitioningCommand=cmd(visible,true;diffuse,Color("Black");sleep,3.5;diffusealpha,0); - }; - -- Sublime - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH,80;diffuse,Color("Orange");visible,false); - StartTransitioningCommand=cmd(visible,true;decelerate,2;zoomy,44;decelerate,0.5;diffusealpha,0); - }; - LoadFont("Common Normal") .. { - Text="This is only the beginning..."; - InitCommand=cmd(visible,false;shadowlength,1;shadowcolor,BoostColor(Color("Orange"),0.5)); - StartTransitioningCommand=cmd(visible,true;zoom,0.75;fadeleft,1;faderight,1;linear,1;faderight,0;fadeleft,0;sleep,1;decelerate,0.5;y,12;diffusealpha,0); - }; - -- End - Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color("White");visible,false); - StartTransitioningCommand=cmd(visible,true;decelerate,1;diffusealpha,0); - }; - -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/_bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/_bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenTitleMenu underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -return Def.ActorFrame { - Def.Quad { - InitCommand=cmd(horizalign,left;vertalign,top;y,SCREEN_TOP+8); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;zoomto,256,84;faderight,1); - }; - Def.Quad { - InitCommand=cmd(horizalign,right;vertalign,top;x,SCREEN_RIGHT;y,SCREEN_TOP+8); - OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;zoomto,256,46;fadeleft,1); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements aux.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements aux.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements aux.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements aux.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -local function Clock() - function UpdateVisible(self) - local screen = SCREENMAN:GetTopScreen() - local bShow = true - if screen then - local sClass = screen:GetName() - bShow = THEME:GetMetric(sClass, "ShowClock") - end - if bShow then - self:smooth(0.25) - self:y(12) - else - self:smooth(0.25) - self:y(-56) - end - end - -- clock - clock = Def.ActorFrame { - Name="Clock", - InitCommand=cmd(x,50;y,12;playcommand,"Update"), - ScreenChangedMessageCommand=UpdateVisible, - UpdateCommand=cmd(runcommandsonleaves,cmd(queuecommand,"Update")), - Def.RoundedBox(90,26)..{ InitCommand=cmd(x,-22;y,-4) }, - Def.ActorFrame { - Name="ClockText", - InitCommand=cmd(y,-2), - LoadFont("Common", "normal")..{ - Text="00:00:", - InitCommand=cmd(horizalign,right;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9")), - UpdateCommand=function(self) - local hour, min = Hour(), Minute() - if hour > 12 and GetUserPrefB("Use12HourClock") then - hour = hour - 12 - elseif hour == 0 and GetUserPrefB("Use12HourClock") then - hour = 12 - end - self:settext(string.format('%02i:%02i:', hour, min)) - self:sleep(1) - self:queuecommand("Update") - end - }, - LoadFont("Common", "normal")..{ - Text="00", - InitCommand=cmd(horizalign,left;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9")), - UpdateCommand=function(self) - local sec = Second() - self:settext(string.format('%02i', sec)) - self:sleep(1) - self:queuecommand("Update") - end, - }, - LoadFont("Common", "normal")..{ - Text="", - InitCommand=cmd(x,28;y,-3;horizalign,left;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9");visible,false;zoom,0.75), - UpdateCommand=function(self) - if not GetUserPrefB("Use12HourClock") then - self:visible(false) - return - end - local hour = Hour() - if hour < 12 then - self:settext("AM") - self:diffuse(color("1,0.85,0,1")) - self:diffusebottomedge(color("0.75,0.55,0,1")) - else - self:settext("PM") - self:diffuse(color("0,0.85,1,1")) - self:diffusebottomedge(color("0,0.55,1,1")) - end - self:visible(true) - self:sleep(1) - self:queuecommand("Update") - end - } - } - } - return clock; -end -local t = Def.ActorFrame {}; -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_barcode (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_barcode (stretch).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_bg top.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_bg top.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_checkerboard (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_checkerboard (stretch).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,35 +1,45 @@ -local t = Def.ActorFrame {}; - -t[#t+1] = Def.ActorFrame { - FOV=90; - InitCommand=cmd(Center); - Def.Quad { - InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00")); - }; - Def.ActorFrame { - InitCommand=cmd(hide_if,hideFancyElements;); - LoadActor("_checkerboard") .. { - InitCommand=cmd(rotationy,0;rotationz,0;rotationx,-90/4*3.5;zoomto,SCREEN_WIDTH*2,SCREEN_HEIGHT*2;customtexturerect,0,0,SCREEN_WIDTH*4/256,SCREEN_HEIGHT*4/256); - OnCommand=cmd(texcoordvelocity,0,0.25;diffuse,color("#ffd400");fadetop,1); +if ThemePrefs.Get("FancyUIBG") then + return Def.ActorFrame { + + LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + }, + + LoadActor("_maze") .. { + OnCommand=cmd(Center;diffuse,color("#f6784922");effectperiod,10;spin;effectmagnitude,0,0,2.2) + }, + + LoadActor("_barcode") .. { + InitCommand=cmd(zoomto,36,1024;blend,'BlendMode_Add';x,SCREEN_LEFT+36;y,SCREEN_CENTER_Y;diffusealpha,0.08); + OnCommand=cmd(customtexturerect,0,0,1,1;texcoordvelocity,0,-0.1); }; + LoadActor("_barcode") .. { + InitCommand=cmd(zoomto,36,1024;blend,'BlendMode_Add';x,SCREEN_RIGHT-36;y,SCREEN_CENTER_Y;diffusealpha,0.08); + OnCommand=cmd(customtexturerect,0,0,1,1;texcoordvelocity,0,0.1); + }; + + Def.ActorFrame { + OnCommand=cmd(diffusealpha,0;decelerate,1.8;diffusealpha,1;); + LoadActor("_tunnel1") .. { + InitCommand=cmd(x,SCREEN_LEFT+160;y,SCREEN_CENTER_Y;blend,'BlendMode_Add';rotationz,-20), + OnCommand=cmd(zoom,1.75;diffusealpha,0.14;spin;effectmagnitude,0,0,16.5) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(x,SCREEN_LEFT+160;y,SCREEN_CENTER_Y;blend,'BlendMode_Add';rotationz,-10), + OnCommand=cmd(zoom,1.0;diffusealpha,0.12;spin;effectmagnitude,0,0,-11) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(x,SCREEN_LEFT+160;y,SCREEN_CENTER_Y;blend,'BlendMode_Add';rotationz,0), + OnCommand=cmd(zoom,0.5;diffusealpha,0.10;spin;effectmagnitude,0,0,5.5) + }; + LoadActor("_tunnel1") .. { + InitCommand=cmd(x,SCREEN_LEFT+160;y,SCREEN_CENTER_Y;blend,'BlendMode_Add';rotationz,-10), + OnCommand=cmd(zoom,0.2;diffusealpha,0.08;spin;effectmagnitude,0,0,-2.2) + }; }; - LoadActor("_particleLoader") .. { - InitCommand=cmd(x,-SCREEN_CENTER_X;y,-SCREEN_CENTER_Y;hide_if,hideFancyElements;); - }; ---[[ LoadActor("_particles") .. { - InitCommand=cmd(x,-SCREEN_CENTER_X;y,-SCREEN_CENTER_Y); - }; --]] ---[[ LoadActor("_pattern") .. { - InitCommand=cmd(z,32;x,4;y,4;;rotationy,-12.25;rotationz,-30;rotationx,-20;zoomto,SCREEN_WIDTH*2,SCREEN_HEIGHT*2;customtexturerect,0,0,SCREEN_WIDTH*4/256,SCREEN_HEIGHT*4/256); - OnCommand=cmd(texcoordvelocity,0.125,0.5;diffuse,Color("Black");diffusealpha,0.5); - }; --]] - --[[ LoadActor("_grid") .. { - InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true); - OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*2,0,(7/8)*2,0;effectclock,'beatnooffset'; - effectcolor2,Color("White");effectcolor1,Color("Black");fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;blend,Blend.Add; - diffusealpha,0.155); - }; --]] -}; - -return t; + } +else + return LoadActor(THEME:GetPathG("common bg", "base")) .. { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT) + } +end \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_grid.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_grid.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_maze.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_maze.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -local hideFancyElements = (ThemePrefs.Get("FancyUIBG") == false) -local t = Def.ActorFrame{}; -if hideFancyElements then return t; end - -local Params = { - NumParticles = 30, - VelocityXMin = 100, - VelocityXMax = 400, - VelocityYMin = 0, - VelocityYMax = 0, - VelocityZMin = 0, - VelocityZMax = 0, - BobRateZMin = 0.4, - BobRateZMax = 0.7, - ZoomMin = 0.5, - ZoomMax = 1, - SpinZ = 0, - BobZ = 52, - File = "_particle normal", -}; - -local tParticleInfo = {} - -for i=1,Params.NumParticles do - tParticleInfo[i] = { - X = math.random(Params.VelocityXMin, Params.VelocityXMax), - Y = Params.VelocityYMin ~= Params.VelocityYMax and math.random(Params.VelocityYMin, Params.VelocityYMax) or Params.VelocityYMin, - Z = Params.VelocityZMin ~= Params.VelocityZMax and math.random(Params.VelocityZMin, Params.VelocityZMax) or Params.VelocityZMin, - Zoom = math.random(Params.ZoomMin*1000,Params.ZoomMax*1000) / 1000, - BobZRate = math.random(Params.BobRateZMin*1000,Params.BobRateZMax*1000) / 1000, - Age = 0, - }; - t[#t+1] = LoadActor( Params.File )..{ - Name="Particle"..i; - InitCommand=function(self) - self:basezoom(tParticleInfo[i].Zoom); - self:x(math.random(SCREEN_LEFT+(self:GetWidth()/2),SCREEN_RIGHT-(self:GetWidth()/2))); - self:y(math.random(SCREEN_TOP+(self:GetHeight()/2),SCREEN_BOTTOM-(self:GetHeight()/2))); - --self:z(math.random(-64,0)); - end; - OnCommand=cmd(diffuse,ColorLightTone(color("#ffd400"));diffusealpha,0.8); - }; -end - -local function UpdateParticles(self,DeltaTime) - tParticles = self:GetChildren(); - for i=1, Params.NumParticles do - local p = tParticles["Particle"..i]; - local vX = tParticleInfo[i].X; - local vY = tParticleInfo[i].Y; - local vZ = tParticleInfo[i].Z; - tParticleInfo[i].Age = tParticleInfo[i].Age + DeltaTime; - p:x(p:GetX() + (vX * DeltaTime)); - p:y(p:GetY() + (vY * DeltaTime)); - p:z(p:GetZ() + (vZ * DeltaTime)); --- p:zoom( 1 + math.cos( --- (tParticleInfo[i].Age * math.pi*2) --- ) * 0.125 ); - if p:GetX() > SCREEN_RIGHT + (p:GetWidth()/2 - p:GetZ()) then - p:x(SCREEN_LEFT - (p:GetWidth()/2)); - elseif p:GetX() < SCREEN_LEFT - (p:GetWidth()/2 - p:GetZ()) then - p:x(SCREEN_RIGHT + (p:GetWidth()/2)); - end - if p:GetY() > SCREEN_BOTTOM + (p:GetHeight()/2 - p:GetZ()) then - p:y(SCREEN_TOP - (p:GetHeight()/2)); - elseif p:GetY() < SCREEN_TOP - (p:GetHeight()/2 - p:GetZ()) then - p:y(SCREEN_BOTTOM + (p:GetHeight()/2)); - end - end; -end; - -t.InitCommand = cmd(fov,90;SetUpdateFunction,UpdateParticles); - -return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particle normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_particle normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_tunnel1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_tunnel1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_tunnel2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements background/_tunnel2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -local fTileSize = 32; -local iTilesX = math.ceil( SCREEN_WIDTH/fTileSize ); -local iTilesY = math.ceil( SCREEN_HEIGHT/fTileSize ); -local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenInDelay"); ---[[ local function Actor:PositionTile(self,iX,iY) - self:x( scale(iX,1,iTilesX,-SCREEN_CENTER_X,SCREEN_CENTER_X) ); - self:y( scale(iY,1,iTilesY,-SCREEN_CENTER_Y,SCREEN_CENTER_Y) ); -end --]] -local t = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); - OnCommand=cmd(sleep,fSleepTime); -}; ---[[ for indx=1,iTilesX do - for indy=1,iTilesY do - t[#t+1] = Def.Quad { - InitCommand=cmd(zoom,fTileSize-2; - x,math.floor( scale(indx,1,iTilesX,(iTilesX/2)*fTileSize*-1,(iTilesX/2)*fTileSize*1) ); - y,math.floor( scale(indy,1,iTilesY,(iTilesY/2)*fTileSize*-1,(iTilesY/2)*fTileSize*1) ); - ); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,1;zoom,fTileSize-2;sleep,(iTilesX+iTilesY)*(1/60);linear,0.0325 + ( indx / 60 );diffusealpha,0;zoom,fTileSize*1.25); - }; - end -end --]] -t[#t+1] = Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,1");sleep,0.0325 + fSleepTime;linear,0.15;diffusealpha,0); -}; ---[[ return Def.ActorFrame { - Def.Quad { - InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,1");linear,0.15;diffusealpha,0); - }; -}; --]] - -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,11 @@ +-- Alright, this is how we do things around here: +-- Write a table +local transition_params = { + color = color("#000000"), + transition_type = "in" +} + +-- Give it to another worker and let them do all the work with it +return LoadActor(THEME:GetPathB("", "_transition"), transition_params) + +-- Job done. diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -local fTileSize = 32; -local iTilesX = math.ceil( SCREEN_WIDTH/fTileSize ); -local iTilesY = math.ceil( SCREEN_HEIGHT/fTileSize ); -local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenOutDelay"); ---[[ local function Actor:PositionTile(self,iX,iY) - self:x( scale(iX,1,iTilesX,-SCREEN_CENTER_X,SCREEN_CENTER_X) ); - self:y( scale(iY,1,iTilesY,-SCREEN_CENTER_Y,SCREEN_CENTER_Y) ); -end --]] -local t = Def.ActorFrame { - InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); - OnCommand=cmd(sleep,fSleepTime); -}; ---[[ for indx=1,iTilesX do - for indy=1,iTilesY do - t[#t+1] = Def.Quad { - InitCommand=cmd(zoom,fTileSize-2; - x,math.floor( scale(indx,1,iTilesX,(iTilesX/2)*fTileSize*-1,(iTilesX/2)*fTileSize*1) ); - y,math.floor( scale(indy,1,iTilesY,(iTilesY/2)*fTileSize*-1,(iTilesY/2)*fTileSize*1) ); - ); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;zoom,fTileSize*1.25;linear,0.0325 + ( indx / 60 );diffusealpha,1;zoom,fTileSize-2); - }; - end -end --]] -t[#t+1] = Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,0");sleep,0.0325 + fSleepTime;linear,0.15;diffusealpha,1); -}; ---[[ return Def.ActorFrame { - Def.Quad { - InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); - OnCommand=cmd(diffuse,color("0,0,0,1");linear,0.15;diffusealpha,0); - }; -}; --]] - -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/BGAnimations/ScreenWithMenuElements out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +local transition_params = { + color = color("#000000"), + transition_type = "out" +} + +return LoadActor(THEME:GetPathB("", "_transition"), transition_params) diff -Nru stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_transition.lua stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_transition.lua --- stepmania-5.0.12+dfsg/Themes/default/BGAnimations/_transition.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/BGAnimations/_transition.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,24 @@ +-- To save on intense copy/pasting, this file was made to be loaded by actual in/out bganim files, +-- whose only real jobs are to pass in the transition type (in or out), and in certain cases, the +-- color (as is the case in ScreenEditMenu in, ScreenSelectMusic in, etc). +-- Other than that, there isn't really too much to say. +local t = Def.ActorFrame {} +local params = ... + +local startAlpha = params.transition_type == "in" and 1 or 0 +local endAlpha = math.abs(startAlpha-1) + +for i=1, 6 do + local sleep_time = 0.1 * i + t[#t+1] = LoadActor(THEME:GetPathG("", "_pt" .. i)) .. { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;Center;diffuse,params.color), + OnCommand=cmd(diffusealpha,startAlpha;sleep,sleep_time;linear,0.10;diffusealpha,endAlpha) + } +end + +t[#t+1] = Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;Center;diffuse,params.color), + OnCommand=cmd(diffusealpha,startAlpha;linear,0.5;diffusealpha,endAlpha) +} + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/BPMDisplay bpm.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/BPMDisplay bpm.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/BPMDisplay bpm.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/BPMDisplay bpm.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Condensed.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Condensed.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Condensed.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Condensed.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Fallback Font.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Fallback Font.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Fallback Font.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Fallback Font.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_open sans semibold 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Header.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Header.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Header.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Header.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_open sans semibold 48px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Italic Condensed.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Italic Condensed.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Italic Condensed.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Italic Condensed.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed Bold italic 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Normal.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Normal.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/Common Normal.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/Common Normal.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto Medium 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/CourseEntryDisplay difficulty.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/CourseEntryDisplay difficulty.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/CourseEntryDisplay difficulty.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/CourseEntryDisplay difficulty.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +StepsDisplay meter \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/CourseEntryDisplay number.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/CourseEntryDisplay number.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/CourseEntryDisplay number.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/CourseEntryDisplay number.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +StepsDisplay meter \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px [alt-stroke] 10x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=25 +Top=7 +LineSpacing=28 +DrawExtraPixelsLeft=0 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=14 +1=14 +2=14 +3=14 +4=14 +5=14 +6=14 +7=14 +8=14 +9=14 +10=14 +11=14 +12=14 +13=14 +14=14 +15=14 +16=14 +17=14 +18=14 +19=14 +20=14 +21=14 +22=14 +23=14 +24=14 +25=14 +26=14 +27=14 +28=14 +29=14 +30=14 +31=14 +32=14 +33=14 +34=14 +35=14 +36=14 +37=14 +38=14 +39=14 +40=14 +41=14 +42=14 +43=14 +44=14 +45=14 +46=14 +47=14 +48=14 +49=14 +50=14 +51=14 +52=14 +53=14 +54=14 +55=14 +56=14 +57=14 +58=14 +59=14 +60=14 +61=14 +62=14 +63=14 +64=14 +65=14 +66=14 +67=14 +68=14 +69=14 +70=14 +71=14 +72=14 +73=14 +74=14 +75=14 +76=14 +77=14 +78=14 +79=14 +80=14 +81=14 +82=14 +83=14 +84=14 +85=14 +86=14 +87=14 +88=14 +89=14 +90=14 +91=14 +92=14 +93=14 +94=14 +95=14 +96=14 +97=14 +98=14 +99=14 +100=14 +101=14 +102=14 +103=14 +104=14 +105=14 +106=14 +107=14 +108=14 +109=14 +110=14 +111=14 +112=14 +113=14 +114=14 +115=14 +116=14 +117=14 +118=14 +119=14 +120=14 +121=14 +122=14 +123=14 +124=14 +125=14 +126=14 +127=14 +128=14 +129=14 +130=14 +131=14 +132=14 +133=14 +134=14 +135=14 +136=14 +137=14 +138=14 +139=14 +140=14 +141=14 +142=14 +143=14 +144=14 +145=14 +146=14 +147=14 +148=14 +149=14 +150=14 +151=14 +152=14 +153=14 +154=14 +155=14 +156=14 +157=14 +158=14 +159=14 +160=14 +161=14 +162=14 +163=14 +164=14 +165=14 +166=14 +167=14 +168=14 +169=14 +170=14 +171=14 +172=14 +173=14 +174=14 +175=14 +176=14 +177=14 +178=14 +179=14 +180=14 +181=14 +182=14 +183=14 +184=14 +185=14 +186=14 +187=14 +188=14 +189=14 +190=14 +191=14 +192=14 +193=14 +194=14 +195=14 +196=14 +197=14 +198=14 +199=14 +200=14 +201=14 +202=14 +203=14 +204=14 +205=14 +206=14 +207=14 +208=14 +209=14 +210=14 +211=14 +212=14 +213=14 +214=14 +215=14 +216=14 +217=14 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=14 +1=14 +2=14 +3=14 +4=14 +5=14 +6=14 +7=14 +8=14 +9=14 +10=14 +11=14 +12=14 +13=14 +14=14 +15=14 +16=14 +17=14 +18=14 +19=14 +20=14 +21=14 +22=14 +23=14 +24=14 +25=14 +26=14 +27=14 +28=14 +29=14 +30=14 +31=14 +32=14 +33=14 +34=14 +35=14 +36=14 +37=14 +38=14 +39=14 +40=14 +41=14 +42=14 +43=14 +44=14 +45=14 +46=14 +47=14 +48=14 +49=14 +50=14 +51=14 +52=14 +53=14 +54=14 +55=14 +56=14 +57=14 +58=14 +59=14 +60=14 +61=14 +62=14 +63=14 +64=14 +65=14 +66=14 +67=14 +68=14 +69=14 +70=14 +71=14 +72=14 +73=14 +74=14 +75=14 +76=14 +77=14 +78=14 +79=14 +80=14 +81=14 +82=14 +83=14 +84=14 +85=14 +86=14 +87=14 +88=14 +89=14 +90=14 +91=14 +92=14 +93=14 +94=14 +95=14 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_fira mono 24px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_fira mono 24px [main-stroke] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_game chars 16px 4x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_game chars 16px 4x2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_game chars 16px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_game chars 16px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_game chars 16px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_game chars 16px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,37 @@ +# The characters in this font are actually much larger than 16 pixels. +# The "16px" indicates what size uppercase letter this font is meant +# for, not necessarily the actual size of the characters. + +[main] +0=32 +1=32 +2=32 +3=32 +4=32 +5=32 +6=32 +7=32 +8=32 +9=32 +10=32 +11=32 + + +# Don't load this font grayscale. +TextureHints=32bpp + +Top=8 +Baseline=24 + +map up=0 +map down=1 +map left=2 +map right=3 +map menuup=0 +map menudown=1 +map menuleft=2 +map menuright=3 +map start=4 +map select=5 +map back=6 +map auxwhite=7 \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/GenreDisplay genre.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/GenreDisplay genre.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/GenreDisplay genre.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/GenreDisplay genre.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Condensed diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/HelpDisplay text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/HelpDisplay text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/HelpDisplay text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/HelpDisplay text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/LyricDisplay text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/LyricDisplay text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/LyricDisplay text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/LyricDisplay text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MenuTimer numbers.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MenuTimer numbers.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MenuTimer numbers.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MenuTimer numbers.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass Combo \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Course.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Course.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Course.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Course.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Mode.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Mode.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Mode.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Mode.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Random.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Random.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Random.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Random.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Roulette.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Roulette.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem Roulette.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem Roulette.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem SectionCollapsed.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem SectionCollapsed.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem SectionCollapsed.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem SectionCollapsed.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem SectionExpanded.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem SectionExpanded.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem SectionExpanded.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem SectionExpanded.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem sort.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem sort.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/MusicWheelItem sort.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/MusicWheelItem sort.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/nestyMenu Item.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/nestyMenu Item.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/nestyMenu Item.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/nestyMenu Item.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed 24px Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px [alt-stroke] 10x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=42 +Top=17 +LineSpacing=49 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=9 +1=10 +2=15 +3=23 +4=21 +5=30 +6=26 +7=8 +8=11 +9=11 +10=20 +11=21 +12=10 +13=12 +14=10 +15=13 +16=21 +17=21 +18=21 +19=21 +20=21 +21=21 +22=21 +23=21 +24=21 +25=21 +26=10 +27=10 +28=21 +29=21 +30=21 +31=16 +32=32 +33=23 +34=23 +35=23 +36=26 +37=20 +38=19 +39=26 +40=27 +41=12 +42=10 +43=22 +44=19 +45=33 +46=27 +47=28 +48=22 +49=28 +50=22 +51=20 +52=20 +53=26 +54=22 +55=33 +56=21 +57=20 +58=21 +59=12 +60=13 +61=12 +62=21 +63=16 +64=21 +65=20 +66=22 +67=17 +68=22 +69=20 +70=12 +71=22 +72=22 +73=9 +74=9 +75=19 +76=9 +77=34 +78=22 +79=22 +80=22 +81=22 +82=15 +83=17 +84=13 +85=22 +86=18 +87=28 +88=19 +89=18 +90=17 +91=14 +92=20 +93=14 +94=21 +95=21 +96=9 +97=21 +98=15 +99=28 +100=18 +101=18 +102=21 +103=42 +104=20 +105=11 +106=33 +107=21 +108=6 +109=6 +110=13 +111=13 +112=14 +113=18 +114=36 +115=21 +116=28 +117=17 +118=11 +119=34 +120=17 +121=20 +122=9 +123=10 +124=21 +125=21 +126=21 +127=21 +128=20 +129=18 +130=21 +131=30 +132=13 +133=18 +134=21 +135=12 +136=30 +137=18 +138=15 +139=21 +140=13 +141=13 +142=21 +143=22 +144=24 +145=10 +146=8 +147=13 +148=14 +149=18 +150=28 +151=28 +152=28 +153=16 +154=23 +155=23 +156=23 +157=23 +158=23 +159=23 +160=32 +161=23 +162=20 +163=20 +164=20 +165=20 +166=12 +167=12 +168=12 +169=12 +170=26 +171=27 +172=28 +173=28 +174=28 +175=28 +176=28 +177=21 +178=28 +179=26 +180=26 +181=26 +182=26 +183=20 +184=22 +185=23 +186=20 +187=20 +188=20 +189=20 +190=20 +191=20 +192=31 +193=17 +194=20 +195=20 +196=20 +197=20 +198=9 +199=9 +200=9 +201=9 +202=22 +203=22 +204=22 +205=22 +206=22 +207=22 +208=22 +209=21 +210=22 +211=22 +212=22 +213=22 +214=22 +215=18 +216=22 +217=18 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=9 +1=23 +2=21 +3=19 +4=21 +5=19 +6=20 +7=18 +8=21 +9=20 +10=20 +11=20 +12=21 +13=12 +14=21 +15=21 +16=15 +17=20 +18=7 +19=9 +20=21 +21=9 +22=17 +23=21 +24=8 +25=17 +26=17 +27=13 +28=17 +29=21 +30=17 +31=17 +32=22 +33=23 +34=23 +35=23 +36=23 +37=19 +38=23 +39=23 +40=23 +41=20 +42=20 +43=20 +44=20 +45=12 +46=12 +47=26 +48=26 +49=27 +50=27 +51=28 +52=28 +53=28 +54=28 +55=21 +56=22 +57=26 +58=26 +59=26 +60=26 +61=20 +62=20 +63=23 +64=15 +65=20 +66=20 +67=20 +68=20 +69=9 +70=17 +71=17 +72=17 +73=20 +74=20 +75=20 +76=20 +77=9 +78=9 +79=22 +80=22 +81=22 +82=22 +83=22 +84=22 +85=22 +86=22 +87=21 +88=15 +89=22 +90=22 +91=22 +92=22 +93=18 +94=13 +95=9 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_noto sans 36px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_noto sans 36px [main-stroke] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_open sans semibold 48px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_open sans semibold 48px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_open sans semibold 48px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_open sans semibold 48px [alt-stroke] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_open sans semibold 48px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_open sans semibold 48px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_open sans semibold 48px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_open sans semibold 48px [main-stroke] 15x15.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/OptionRowExit item.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/OptionRowExit item.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/OptionRowExit item.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/OptionRowExit item.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed Bold italic 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/OptionRow title.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/OptionRow title.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/OptionRow title.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/OptionRow title.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed Bold 48px \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px [alt] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px [alt] 10x10 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px [alt-stroke] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px [alt-stroke] 10x10 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=39 +Top=14 +LineSpacing=56 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=8 +1=10 +2=15 +3=24 +4=21 +5=31 +6=25 +7=8 +8=12 +9=12 +10=19 +11=23 +12=8 +13=14 +14=8 +15=18 +16=23 +17=15 +18=22 +19=22 +20=23 +21=22 +22=22 +23=19 +24=22 +25=22 +26=8 +27=8 +28=23 +29=23 +30=23 +31=18 +32=29 +33=25 +34=24 +35=23 +36=25 +37=22 +38=20 +39=25 +40=25 +41=11 +42=20 +43=24 +44=21 +45=29 +46=26 +47=27 +48=23 +49=27 +50=24 +51=22 +52=21 +53=25 +54=24 +55=31 +56=23 +57=24 +58=24 +59=13 +60=18 +61=13 +62=23 +63=18 +64=14 +65=19 +66=20 +67=19 +68=20 +69=20 +70=12 +71=20 +72=20 +73=9 +74=9 +75=20 +76=10 +77=31 +78=20 +79=20 +80=20 +81=20 +82=15 +83=17 +84=14 +85=20 +86=19 +87=26 +88=19 +89=19 +90=18 +91=13 +92=10 +93=13 +94=23 +95=23 +96=8 +97=13 +98=16 +99=34 +100=20 +101=20 +102=14 +103=45 +104=22 +105=11 +106=32 +107=24 +108=8 +109=8 +110=16 +111=16 +112=15 +113=18 +114=21 +115=14 +116=29 +117=17 +118=11 +119=33 +120=18 +121=24 +122=6 +123=10 +124=19 +125=21 +126=23 +127=21 +128=10 +129=19 +130=14 +131=30 +132=16 +133=19 +134=23 +135=14 +136=30 +137=14 +138=14 +139=23 +140=13 +141=13 +142=14 +143=20 +144=23 +145=8 +146=14 +147=7 +148=17 +149=19 +150=25 +151=26 +152=29 +153=18 +154=25 +155=25 +156=25 +157=25 +158=25 +159=25 +160=30 +161=23 +162=22 +163=22 +164=22 +165=22 +166=11 +167=11 +168=11 +169=11 +170=25 +171=26 +172=27 +173=27 +174=27 +175=27 +176=27 +177=23 +178=26 +179=25 +180=25 +181=25 +182=25 +183=24 +184=23 +185=20 +186=19 +187=19 +188=19 +189=19 +190=19 +191=19 +192=31 +193=19 +194=20 +195=20 +196=20 +197=20 +198=9 +199=9 +200=9 +201=9 +202=20 +203=20 +204=20 +205=20 +206=20 +207=20 +208=20 +209=23 +210=20 +211=20 +212=20 +213=20 +214=20 +215=19 +216=20 +217=19 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=6 +1=25 +2=14 +3=21 +4=23 +5=21 +6=22 +7=19 +8=14 +9=22 +10=22 +11=21 +12=24 +13=14 +14=24 +15=24 +16=14 +17=19 +18=14 +19=10 +20=14 +21=15 +22=17 +23=14 +24=14 +25=17 +26=17 +27=16 +28=18 +29=14 +30=18 +31=18 +32=24 +33=25 +34=25 +35=25 +36=25 +37=21 +38=23 +39=23 +40=23 +41=22 +42=22 +43=22 +44=22 +45=11 +46=11 +47=25 +48=25 +49=26 +50=26 +51=27 +52=27 +53=27 +54=27 +55=23 +56=24 +57=25 +58=25 +59=25 +60=25 +61=24 +62=21 +63=20 +64=15 +65=19 +66=19 +67=19 +68=19 +69=10 +70=19 +71=19 +72=19 +73=20 +74=20 +75=20 +76=20 +77=9 +78=9 +79=26 +80=20 +81=20 +82=20 +83=20 +84=20 +85=20 +86=20 +87=23 +88=15 +89=20 +90=20 +91=20 +92=20 +93=19 +94=14 +95=14 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px [main] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px [main] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 36px [main-stroke] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 36px [main-stroke] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px [alt-stroke] 10x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=51 +Top=17 +LineSpacing=74 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=11 +1=13 +2=20 +3=33 +4=28 +5=41 +6=34 +7=11 +8=17 +9=17 +10=25 +11=30 +12=11 +13=19 +14=11 +15=24 +16=31 +17=19 +18=30 +19=29 +20=31 +21=29 +22=29 +23=26 +24=30 +25=29 +26=11 +27=11 +28=30 +29=30 +30=30 +31=24 +32=39 +33=33 +34=32 +35=31 +36=33 +37=29 +38=27 +39=33 +40=34 +41=14 +42=27 +43=32 +44=28 +45=39 +46=34 +47=36 +48=31 +49=36 +50=32 +51=29 +52=28 +53=33 +54=32 +55=41 +56=31 +57=32 +58=32 +59=18 +60=24 +61=18 +62=30 +63=24 +64=19 +65=26 +66=27 +67=25 +68=27 +69=26 +70=16 +71=27 +72=27 +73=12 +74=12 +75=26 +76=13 +77=41 +78=27 +79=27 +80=27 +81=27 +82=19 +83=23 +84=18 +85=27 +86=25 +87=35 +88=25 +89=26 +90=25 +91=18 +92=13 +93=18 +94=30 +95=30 +96=11 +97=18 +98=21 +99=45 +100=27 +101=27 +102=19 +103=60 +104=29 +105=15 +106=43 +107=32 +108=11 +109=11 +110=21 +111=21 +112=19 +113=24 +114=28 +115=19 +116=38 +117=23 +118=15 +119=44 +120=25 +121=32 +122=6 +123=13 +124=25 +125=28 +126=30 +127=28 +128=13 +129=25 +130=19 +131=41 +132=21 +133=25 +134=30 +135=19 +136=41 +137=19 +138=19 +139=30 +140=17 +141=17 +142=19 +143=27 +144=30 +145=11 +146=19 +147=10 +148=22 +149=25 +150=33 +151=35 +152=39 +153=24 +154=33 +155=33 +156=33 +157=33 +158=33 +159=33 +160=40 +161=31 +162=29 +163=29 +164=29 +165=29 +166=14 +167=14 +168=14 +169=14 +170=33 +171=34 +172=36 +173=36 +174=36 +175=36 +176=36 +177=30 +178=35 +179=33 +180=33 +181=33 +182=33 +183=32 +184=31 +185=27 +186=26 +187=26 +188=26 +189=26 +190=26 +191=26 +192=41 +193=25 +194=26 +195=26 +196=26 +197=26 +198=12 +199=12 +200=12 +201=12 +202=27 +203=27 +204=27 +205=27 +206=27 +207=27 +208=27 +209=30 +210=27 +211=27 +212=27 +213=27 +214=27 +215=26 +216=27 +217=26 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=6 +1=33 +2=19 +3=28 +4=30 +5=28 +6=29 +7=25 +8=19 +9=29 +10=29 +11=28 +12=32 +13=19 +14=32 +15=32 +16=19 +17=26 +18=19 +19=13 +20=19 +21=20 +22=23 +23=19 +24=19 +25=23 +26=23 +27=21 +28=25 +29=19 +30=25 +31=25 +32=32 +33=33 +34=33 +35=33 +36=33 +37=28 +38=31 +39=31 +40=31 +41=29 +42=29 +43=29 +44=29 +45=14 +46=14 +47=33 +48=33 +49=34 +50=34 +51=36 +52=36 +53=36 +54=36 +55=30 +56=32 +57=33 +58=33 +59=33 +60=33 +61=32 +62=28 +63=27 +64=19 +65=26 +66=26 +67=26 +68=26 +69=13 +70=25 +71=25 +72=25 +73=26 +74=26 +75=26 +76=26 +77=12 +78=12 +79=35 +80=27 +81=27 +82=27 +83=27 +84=27 +85=27 +86=27 +87=30 +88=19 +89=27 +90=27 +91=27 +92=27 +93=26 +94=18 +95=19 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass 48px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass 48px [main-stroke] 15x15.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Combo.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Combo.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Combo.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Combo.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,30 @@ +[common] +Baseline=65 +Top=23 +LineSpacing=123 +DrawExtraPixelsLeft=0 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[numbers] +Line 0=0123 +Line 1=4567 +Line 2=89%. +Line 3= :x, + +0=53 +1=53 +2=53 +3=53 +4=53 +5=53 +6=53 +7=53 +8=53 +9=53 +10=68 +11=19 +12=18 +13=19 +14=47 +15=20 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Combo [numbers] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Combo [numbers] 4x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Combo [numbers-stroke] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Combo [numbers-stroke] 4x4.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Score.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Score.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Score.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Score.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,30 @@ +[common] +Baseline=46 +Top=14 +LineSpacing=71 +DrawExtraPixelsLeft=0 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[numbers] +Line 0=0123 +Line 1=4567 +Line 2=89%. +Line 3= :x, + +0=31 +1=31 +2=31 +3=31 +4=31 +5=31 +6=31 +7=31 +8=31 +9=31 +10=31 +11=31 +12=31 +13=31 +14=31 +15=31 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Score [numbers] 4x4 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Score [numbers] 4x4 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_overpass Score [numbers-stroke] 4x4 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_overpass Score [numbers-stroke] 4x4 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Bold 54px [numbers] 4x5 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Bold 54px [numbers] 4x5 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Bold 54px [numbers-stroke] 4x5 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Bold 54px [numbers-stroke] 4x5 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Bold 80px [numbers] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Bold 80px [numbers] 4x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px [alt] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px [alt] 10x10 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px [alt-stroke] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px [alt-stroke] 10x10 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=29 +Top=12 +LineSpacing=32 +DrawExtraPixelsLeft=1 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=5 +1=6 +2=7 +3=13 +4=12 +5=16 +6=14 +7=4 +8=7 +9=7 +10=9 +11=12 +12=5 +13=7 +14=6 +15=8 +16=12 +17=12 +18=12 +19=12 +20=12 +21=12 +22=12 +23=12 +24=12 +25=12 +26=6 +27=6 +28=11 +29=12 +30=11 +31=10 +32=19 +33=13 +34=13 +35=13 +36=14 +37=12 +38=12 +39=14 +40=15 +41=6 +42=12 +43=13 +44=11 +45=17 +46=15 +47=14 +48=13 +49=14 +50=14 +51=13 +52=12 +53=14 +54=13 +55=18 +56=13 +57=13 +58=12 +59=6 +60=9 +61=6 +62=9 +63=9 +64=7 +65=11 +66=12 +67=11 +68=12 +69=11 +70=7 +71=12 +72=12 +73=5 +74=5 +75=11 +76=5 +77=18 +78=12 +79=12 +80=12 +81=12 +82=7 +83=10 +84=7 +85=12 +86=10 +87=15 +88=10 +89=10 +90=10 +91=7 +92=5 +93=7 +94=14 +95=11 +96=4 +97=7 +98=7 +99=15 +100=11 +101=12 +102=10 +103=20 +104=13 +105=6 +106=20 +107=12 +108=4 +109=4 +110=7 +111=8 +112=8 +113=14 +114=17 +115=10 +116=13 +117=10 +118=6 +119=19 +120=10 +121=13 +122=5 +123=6 +124=12 +125=12 +126=15 +127=13 +128=5 +129=13 +130=11 +131=17 +132=9 +133=10 +134=11 +135=7 +136=17 +137=10 +138=8 +139=12 +140=9 +141=9 +142=7 +143=12 +144=11 +145=6 +146=5 +147=6 +148=9 +149=10 +150=15 +151=16 +152=17 +153=10 +154=13 +155=13 +156=13 +157=13 +158=13 +159=13 +160=19 +161=13 +162=12 +163=12 +164=12 +165=12 +166=6 +167=6 +168=6 +169=6 +170=14 +171=15 +172=14 +173=14 +174=14 +175=14 +176=14 +177=11 +178=14 +179=14 +180=14 +181=14 +182=14 +183=13 +184=12 +185=13 +186=11 +187=11 +188=11 +189=11 +190=11 +191=11 +192=17 +193=11 +194=11 +195=11 +196=11 +197=11 +198=5 +199=5 +200=5 +201=5 +202=12 +203=12 +204=12 +205=12 +206=12 +207=12 +208=12 +209=12 +210=12 +211=12 +212=12 +213=12 +214=12 +215=10 +216=12 +217=10 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=5 +1=13 +2=9 +3=11 +4=15 +5=11 +6=13 +7=13 +8=11 +9=13 +10=13 +11=12 +12=12 +13=7 +14=12 +15=12 +16=8 +17=11 +18=6 +19=6 +20=7 +21=7 +22=10 +23=9 +24=5 +25=10 +26=10 +27=8 +28=10 +29=8 +30=10 +31=10 +32=14 +33=13 +34=13 +35=13 +36=13 +37=11 +38=13 +39=13 +40=13 +41=12 +42=12 +43=12 +44=12 +45=6 +46=6 +47=14 +48=14 +49=15 +50=15 +51=14 +52=14 +53=14 +54=14 +55=11 +56=14 +57=14 +58=14 +59=14 +60=14 +61=13 +62=12 +63=13 +64=7 +65=11 +66=11 +67=11 +68=11 +69=5 +70=11 +71=11 +72=11 +73=11 +74=11 +75=11 +76=11 +77=5 +78=5 +79=13 +80=12 +81=12 +82=12 +83=12 +84=12 +85=12 +86=12 +87=12 +88=7 +89=12 +90=12 +91=12 +92=12 +93=10 +94=7 +95=6 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px [main] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px [main] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed 24px [main-stroke] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed 24px [main-stroke] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [alt-stroke] 10x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=47 +Top=11 +LineSpacing=58 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=11 +1=13 +2=15 +3=25 +4=24 +5=31 +6=28 +7=8 +8=16 +9=16 +10=22 +11=23 +12=12 +13=17 +14=14 +15=16 +16=24 +17=24 +18=24 +19=24 +20=24 +21=24 +22=24 +23=24 +24=24 +25=24 +26=13 +27=12 +28=21 +29=24 +30=22 +31=22 +32=37 +33=29 +34=27 +35=27 +36=27 +37=24 +38=23 +39=28 +40=29 +41=13 +42=24 +43=27 +44=23 +45=36 +46=29 +47=29 +48=27 +49=29 +50=27 +51=26 +52=26 +53=27 +54=28 +55=36 +56=27 +57=26 +58=25 +59=13 +60=18 +61=13 +62=19 +63=19 +64=16 +65=23 +66=24 +67=22 +68=24 +69=23 +70=16 +71=24 +72=24 +73=12 +74=12 +75=23 +76=12 +77=36 +78=24 +79=24 +80=24 +81=24 +82=16 +83=22 +84=15 +85=24 +86=22 +87=30 +88=22 +89=21 +90=22 +91=14 +92=12 +93=14 +94=27 +95=24 +96=12 +97=16 +98=19 +99=32 +100=23 +101=24 +102=22 +103=39 +104=26 +105=14 +106=40 +107=25 +108=11 +109=11 +110=19 +111=19 +112=17 +113=26 +114=32 +115=21 +116=27 +117=22 +118=13 +119=37 +120=22 +121=26 +122=11 +123=13 +124=24 +125=25 +126=33 +127=26 +128=12 +129=27 +130=22 +131=38 +132=19 +133=22 +134=23 +135=17 +136=38 +137=22 +138=19 +139=23 +140=16 +141=16 +142=16 +143=26 +144=21 +145=14 +146=12 +147=16 +148=19 +149=22 +150=30 +151=32 +152=34 +153=21 +154=29 +155=29 +156=29 +157=29 +158=29 +159=29 +160=39 +161=27 +162=24 +163=24 +164=24 +165=24 +166=13 +167=13 +168=13 +169=13 +170=28 +171=29 +172=29 +173=29 +174=29 +175=29 +176=29 +177=23 +178=29 +179=27 +180=27 +181=27 +182=27 +183=26 +184=26 +185=27 +186=23 +187=23 +188=23 +189=23 +190=23 +191=23 +192=35 +193=22 +194=23 +195=23 +196=23 +197=23 +198=13 +199=13 +200=13 +201=13 +202=24 +203=24 +204=24 +205=24 +206=24 +207=24 +208=24 +209=24 +210=24 +211=24 +212=24 +213=24 +214=24 +215=21 +216=24 +217=21 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=11 +1=29 +2=21 +3=24 +4=33 +5=23 +6=26 +7=27 +8=22 +9=26 +10=26 +11=26 +12=25 +13=17 +14=25 +15=25 +16=19 +17=23 +18=14 +19=14 +20=16 +21=16 +22=22 +23=21 +24=12 +25=22 +26=22 +27=16 +28=22 +29=18 +30=22 +31=22 +32=27 +33=29 +34=29 +35=29 +36=29 +37=23 +38=27 +39=27 +40=27 +41=24 +42=24 +43=24 +44=24 +45=13 +46=13 +47=27 +48=28 +49=29 +50=29 +51=29 +52=29 +53=29 +54=29 +55=23 +56=27 +57=27 +58=27 +59=27 +60=27 +61=26 +62=26 +63=27 +64=16 +65=23 +66=23 +67=23 +68=23 +69=12 +70=22 +71=22 +72=22 +73=23 +74=23 +75=23 +76=23 +77=13 +78=13 +79=27 +80=25 +81=24 +82=24 +83=24 +84=24 +85=24 +86=24 +87=24 +88=16 +89=24 +90=24 +91=24 +92=24 +93=21 +94=15 +95=13 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold 48px [main-stroke] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [alt] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [alt] 10x10 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [alt-stroke] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [alt-stroke] 10x10 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=29 +Top=11 +LineSpacing=29 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=5 +1=6 +2=8 +3=12 +4=12 +5=15 +6=14 +7=4 +8=8 +9=8 +10=11 +11=11 +12=6 +13=9 +14=7 +15=8 +16=12 +17=12 +18=12 +19=12 +20=12 +21=12 +22=12 +23=12 +24=12 +25=12 +26=7 +27=6 +28=11 +29=12 +30=11 +31=11 +32=18 +33=14 +34=13 +35=13 +36=13 +37=12 +38=11 +39=14 +40=14 +41=6 +42=12 +43=13 +44=11 +45=18 +46=14 +47=14 +48=13 +49=14 +50=13 +51=13 +52=13 +53=13 +54=14 +55=18 +56=13 +57=13 +58=12 +59=6 +60=9 +61=6 +62=9 +63=9 +64=8 +65=11 +66=12 +67=11 +68=12 +69=11 +70=8 +71=12 +72=12 +73=6 +74=6 +75=11 +76=6 +77=17 +78=12 +79=12 +80=12 +81=12 +82=8 +83=11 +84=7 +85=12 +86=11 +87=15 +88=11 +89=11 +90=11 +91=7 +92=6 +93=7 +94=13 +95=12 +96=6 +97=8 +98=9 +99=16 +100=11 +101=12 +102=11 +103=19 +104=13 +105=7 +106=20 +107=12 +108=5 +109=5 +110=9 +111=9 +112=9 +113=13 +114=15 +115=10 +116=13 +117=11 +118=7 +119=18 +120=11 +121=13 +122=5 +123=6 +124=12 +125=12 +126=16 +127=13 +128=6 +129=13 +130=11 +131=18 +132=9 +133=11 +134=11 +135=9 +136=18 +137=11 +138=9 +139=11 +140=8 +141=8 +142=8 +143=13 +144=10 +145=7 +146=6 +147=8 +148=10 +149=11 +150=15 +151=16 +152=17 +153=11 +154=14 +155=14 +156=14 +157=14 +158=14 +159=14 +160=19 +161=13 +162=12 +163=12 +164=12 +165=12 +166=6 +167=6 +168=6 +169=6 +170=14 +171=14 +172=14 +173=14 +174=14 +175=14 +176=14 +177=11 +178=14 +179=13 +180=13 +181=13 +182=13 +183=13 +184=13 +185=13 +186=11 +187=11 +188=11 +189=11 +190=11 +191=11 +192=17 +193=11 +194=11 +195=11 +196=11 +197=11 +198=6 +199=6 +200=6 +201=6 +202=12 +203=12 +204=12 +205=12 +206=12 +207=12 +208=12 +209=12 +210=12 +211=12 +212=12 +213=12 +214=12 +215=11 +216=12 +217=11 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=5 +1=14 +2=10 +3=12 +4=16 +5=11 +6=13 +7=13 +8=11 +9=13 +10=13 +11=13 +12=12 +13=9 +14=12 +15=12 +16=9 +17=11 +18=7 +19=7 +20=8 +21=8 +22=11 +23=10 +24=6 +25=11 +26=11 +27=8 +28=11 +29=9 +30=11 +31=11 +32=13 +33=14 +34=14 +35=14 +36=14 +37=11 +38=13 +39=13 +40=13 +41=12 +42=12 +43=12 +44=12 +45=6 +46=6 +47=13 +48=14 +49=14 +50=14 +51=14 +52=14 +53=14 +54=14 +55=11 +56=13 +57=13 +58=13 +59=13 +60=13 +61=13 +62=13 +63=13 +64=8 +65=11 +66=11 +67=11 +68=11 +69=6 +70=11 +71=11 +72=11 +73=11 +74=11 +75=11 +76=11 +77=6 +78=6 +79=13 +80=12 +81=12 +82=12 +83=12 +84=12 +85=12 +86=12 +87=12 +88=8 +89=12 +90=12 +91=12 +92=12 +93=11 +94=7 +95=6 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [main] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [main] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [main-stroke] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto condensed Bold italic 24px [main-stroke] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px [alt] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px [alt] 10x10 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px [alt-stroke] 10x10 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px [alt-stroke] 10x10 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=27 +Top=9 +LineSpacing=29 +DrawExtraPixelsLeft=1 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=6 +1=6 +2=8 +3=15 +4=14 +5=18 +6=15 +7=4 +8=8 +9=8 +10=11 +11=13 +12=5 +13=8 +14=7 +15=10 +16=14 +17=14 +18=14 +19=14 +20=14 +21=14 +22=14 +23=14 +24=14 +25=14 +26=6 +27=6 +28=12 +29=13 +30=13 +31=12 +32=21 +33=16 +34=15 +35=16 +36=16 +37=14 +38=13 +39=16 +40=17 +41=7 +42=13 +43=15 +44=13 +45=21 +46=17 +47=17 +48=15 +49=17 +50=15 +51=14 +52=15 +53=16 +54=16 +55=21 +56=15 +57=15 +58=14 +59=7 +60=10 +61=7 +62=10 +63=11 +64=8 +65=13 +66=14 +67=13 +68=14 +69=13 +70=9 +71=14 +72=13 +73=6 +74=6 +75=13 +76=6 +77=21 +78=13 +79=14 +80=14 +81=14 +82=8 +83=12 +84=8 +85=13 +86=12 +87=18 +88=12 +89=12 +90=12 +91=8 +92=6 +93=8 +94=16 +95=14 +96=5 +97=8 +98=9 +99=17 +100=13 +101=14 +102=12 +103=23 +104=14 +105=7 +106=23 +107=14 +108=5 +109=5 +110=9 +111=9 +112=8 +113=15 +114=19 +115=12 +116=15 +117=12 +118=7 +119=22 +120=12 +121=15 +122=6 +123=6 +124=13 +125=14 +126=17 +127=15 +128=6 +129=15 +130=11 +131=19 +132=11 +133=12 +134=13 +135=8 +136=19 +137=12 +138=9 +139=13 +140=9 +141=9 +142=8 +143=14 +144=12 +145=7 +146=6 +147=9 +148=11 +149=12 +150=17 +151=19 +152=19 +153=12 +154=16 +155=16 +156=16 +157=16 +158=16 +159=16 +160=23 +161=16 +162=14 +163=14 +164=14 +165=14 +166=7 +167=7 +168=7 +169=7 +170=16 +171=17 +172=17 +173=17 +174=17 +175=17 +176=17 +177=13 +178=17 +179=16 +180=16 +181=16 +182=16 +183=15 +184=14 +185=15 +186=13 +187=13 +188=13 +189=13 +190=13 +191=13 +192=20 +193=13 +194=13 +195=13 +196=13 +197=13 +198=6 +199=6 +200=6 +201=6 +202=14 +203=13 +204=14 +205=14 +206=14 +207=14 +208=14 +209=14 +210=14 +211=13 +212=13 +213=13 +214=13 +215=12 +216=14 +217=12 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=6 +1=16 +2=10 +3=13 +4=17 +5=13 +6=14 +7=15 +8=11 +9=14 +10=14 +11=15 +12=14 +13=8 +14=14 +15=14 +16=9 +17=13 +18=7 +19=7 +20=8 +21=8 +22=12 +23=11 +24=6 +25=12 +26=12 +27=8 +28=12 +29=9 +30=12 +31=12 +32=15 +33=16 +34=16 +35=16 +36=16 +37=13 +38=16 +39=16 +40=16 +41=14 +42=14 +43=14 +44=14 +45=7 +46=7 +47=16 +48=16 +49=17 +50=17 +51=17 +52=17 +53=17 +54=17 +55=13 +56=15 +57=16 +58=16 +59=16 +60=16 +61=15 +62=15 +63=15 +64=8 +65=13 +66=13 +67=13 +68=13 +69=6 +70=13 +71=13 +72=13 +73=13 +74=13 +75=13 +76=13 +77=6 +78=6 +79=15 +80=14 +81=13 +82=13 +83=14 +84=14 +85=14 +86=14 +87=14 +88=8 +89=13 +90=13 +91=13 +92=13 +93=12 +94=8 +95=6 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px [main] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px [main] 15x15 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/_roboto Medium 24px [main-stroke] 15x15 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/_roboto Medium 24px [main-stroke] 15x15 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomInfoDisplay text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomInfoDisplay text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomInfoDisplay text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomInfoDisplay text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback Font \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomWheelItem text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomWheelItem text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomWheelItem text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomWheelItem text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback Font \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomWheel text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomWheel text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/RoomWheel text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/RoomWheel text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback Font \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime DeltaSeconds.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime DeltaSeconds.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime DeltaSeconds.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime DeltaSeconds.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScoreDisplayNormal Text \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime TimeRemaining.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime TimeRemaining.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime TimeRemaining.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayLifeTime TimeRemaining.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScoreDisplayNormal Text \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayNormal Text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayNormal Text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayNormal Text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayNormal Text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass Score \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayOni numbers.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayOni numbers.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayOni numbers.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayOni numbers.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScoreDisplayNormal Text \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayPercentage percent text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayPercentage percent text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScoreDisplayPercentage percent text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScoreDisplayPercentage percent text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass Score \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenConsoleOverlay SystemMessage.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenConsoleOverlay SystemMessage.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenConsoleOverlay SystemMessage.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenConsoleOverlay SystemMessage.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_fira mono 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay header.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay header.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay header.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay header.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -Common Normal \ No newline at end of file +_fira mono 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay line.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay line.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay line.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay line.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -Common Normal \ No newline at end of file +_fira mono 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay page.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay page.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenDebugOverlay page.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenDebugOverlay page.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -Common Normal \ No newline at end of file +Common Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenGameplay RemainingTime.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenGameplay RemainingTime.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenGameplay RemainingTime.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenGameplay RemainingTime.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass 36px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenGameplay scoreboard.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenGameplay scoreboard.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenGameplay scoreboard.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenGameplay scoreboard.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenHighScores Name.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenHighScores Name.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenHighScores Name.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenHighScores Name.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Italic Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers devices.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers devices.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers devices.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers devices.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers entry.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers entry.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers entry.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers entry.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers title.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers title.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenMapControllers title.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenMapControllers title.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenNetSelectBase chat.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenNetSelectBase chat.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenNetSelectBase chat.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenNetSelectBase chat.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_fira mono 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenNetSelectBase users.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenNetSelectBase users.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenNetSelectBase users.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenNetSelectBase users.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSelectMusic score.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSelectMusic score.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSelectMusic score.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSelectMusic score.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass Score \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSelectMusic SongTime.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSelectMusic SongTime.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSelectMusic SongTime.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSelectMusic SongTime.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Italic Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSystemLayer Credits.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSystemLayer Credits.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/ScreenSystemLayer Credits.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/ScreenSystemLayer Credits.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto condensed 24px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay description.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay description.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay description.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay description.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass 36px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplayListRow description.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplayListRow description.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplayListRow description.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplayListRow description.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Italic Condensed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplayListRow meter.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplayListRow meter.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplayListRow meter.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplayListRow meter.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass 36px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay meter.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay meter.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay meter.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay meter.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_overpass 36px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay StepsType.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay StepsType.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/StepsDisplay StepsType.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/StepsDisplay StepsType.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/TextBannerCourse text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/TextBannerCourse text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/TextBannerCourse text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/TextBannerCourse text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback Font \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/TextBanner text.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/TextBanner text.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Fonts/TextBanner text.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Fonts/TextBanner text.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Fallback Font \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner AllCourses.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner AllCourses.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner all music.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner all music.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner mode.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner mode.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner preferred.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner preferred.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner random.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner random.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Banner roulette.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Banner roulette.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CDTitle Con.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CDTitle Con.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_combined life frame (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_combined life frame (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_combined life frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_combined life frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CombinedLifeMeterTug frame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CombinedLifeMeterTug frame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CombinedLifeMeterTug frame.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CombinedLifeMeterTug frame.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,3 +1,2 @@ return LoadActor(THEME:GetPathG("_combined","life frame"))..{ - InitCommand=cmd(diffuse,PlayerColor(PLAYER_1);diffuserightedge,PlayerColor(PLAYER_2)); }; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_CombinedLifeMeterTug separator (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_CombinedLifeMeterTug separator (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_CombinedLifeMeterTug separator.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_CombinedLifeMeterTug separator.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Combo 100milestone/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Combo 100milestone/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Combo 100milestone/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Combo 100milestone/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -2,10 +2,6 @@ return Def.ActorFrame { LoadActor("explosion") .. { InitCommand=cmd(diffusealpha,0;blend,'BlendMode_Add';hide_if,not ShowFlashyCombo); - MilestoneCommand=cmd(rotationz,0;zoom,2;diffusealpha,0.5;linear,0.5;rotationz,90;zoom,1.75;diffusealpha,0); - }; - LoadActor("explosion") .. { - InitCommand=cmd(diffusealpha,0;blend,'BlendMode_Add';hide_if,not ShowFlashyCombo); - MilestoneCommand=cmd(rotationz,0;zoom,2;diffusealpha,0.5;linear,0.5;rotationz,-90;zoom,2.5;diffusealpha,0); + MilestoneCommand=cmd(rotationz,0;zoom,0.5;diffusealpha,0.6;linear,0.3;zoom,0.75;diffusealpha,0); }; }; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Combo 100milestone/explosion.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Combo 100milestone/explosion.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ComboGraph Backing (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ComboGraph Backing (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ComboGraph ComboNumber.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ComboGraph ComboNumber.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ComboGraph ComboNumber.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ComboGraph ComboNumber.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -return LoadFont("Common Bold") .. { - InitCommand=cmd(zoom,12/54;y,-1;shadowlength,1;strokecolor,Color.Outline); -}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ComboGraph MaxCombo (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ComboGraph MaxCombo (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ComboGraph NormalCombo (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ComboGraph NormalCombo (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/common bg base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/common bg base.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Common fallback background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Common fallback background.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Common fallback banner.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Common fallback banner.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Common splash.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Common splash.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Common window icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Common window icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CourseEntryDisplay bar.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CourseEntryDisplay bar.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/CourseEntryDisplay diamond.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/CourseEntryDisplay diamond.png differ diff -Nru stepmania-5.0.12+dfsg/Themes/default/Graphics/_diamond_transition_base.lua stepmania-5.1.0+dfsg/Themes/default/Graphics/_diamond_transition_base.lua --- stepmania-5.0.12+dfsg/Themes/default/Graphics/_diamond_transition_base.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Graphics/_diamond_transition_base.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,283 @@ +local trans_type= ... + +local variants= { + "shrinking", + "growing", + "growing_with_gaps", + "growing_in_order", + "growing_in_order_with_gaps", + "growing_in_rows", + "growing_in_rows_with_gaps", + "growing_random", + "growing_random_with_gaps", + "growing_random_in_order", + "growing_random_in_order_with_gaps", + "growing_random_in_rows", + "growing_random_in_rows_with_gaps", + "falling_in_order", + "falling_in_rows", + "streaking", + "streaking_random", +} +local picked_variant= "growing_in_rows_with_gaps" + +local diamonds_across= math.random(8, 32) +local diamonds_high= math.random(4, 16) +local diamond_width= _screen.w / diamonds_across +local diamond_height= _screen.h / diamonds_high +local num_diagonals= diamonds_across + diamonds_high +local transition_time= 0.3 +local diamond_side_len= math.sqrt((diamond_width^2) + (diamond_height^2)) +local diagonal_start_x= diamond_width * diamonds_high * -.5 +local diagonal_angle= math.atan2(diamond_height, diamond_width) / math.pi * 180 +local unsquished_side_len= math.sqrt((diamond_height^2)*2) / 2 + +local function make_diagonal_line(x, y, angle) + return Def.Quad{ + InitCommand= function(self) + self:xy(x, y):rotationz(angle):setsize(_screen.h*2, 1) + :diffuse{0, 0, 0, 1} + end, + } +end + +local diamond_ratio= diamond_width / diamond_height +local function make_diamond(x, y, size, diam_com) + return Def.ActorFrame{ + InitCommand= function(self) + self:zoomx(diamond_ratio):xy(x, y) + end, + Def.Quad{ + InitCommand= function(self) + self:setsize(size, size):diffuse{0, 0, 0, 1}:rotationz(45) + end, + }..diam_com} +end + +local trans_frame= Def.ActorFrame{ + StartTransitioningCommand= function(self) + if trans_type == "in" then + self:playcommand("Full"):playcommand("Tween"):playcommand("Empty") + else + self:playcommand("Empty"):playcommand("Tween"):playcommand("Full") + end + end, +} +local variant_words= split("_", picked_variant) +if picked_variant == "shrinking" then + local part_commands= { + EmptyCommand= function(self) + self:zoomy(0) + end, + FullCommand= function(self) + self:zoomy(diamond_side_len) + end, + TweenCommand= function(self) + self:linear(transition_time) + end, + } + for diag= 0, num_diagonals-1 do + local this_x= diagonal_start_x + (diag * diamond_width) + trans_frame[#trans_frame+1]= make_diagonal_line(this_x, _screen.cy, diagonal_angle) + .. part_commands + trans_frame[#trans_frame+1]= make_diagonal_line(this_x, _screen.cy, -diagonal_angle) + .. part_commands + end +elseif variant_words[1] == "growing" then + local part_commands= { + EmptyCommand= function(self) + self:zoom(0) + end, + FullCommand= function(self) + self:zoom(1) + end, + } + local random_flag= picked_variant:find("random") + local in_order_flag= picked_variant:find("in_order") + local in_rows_flag= picked_variant:find("in_rows") + local with_gaps_flag= picked_variant:find("with_gaps") + + local part_size= unsquished_side_len + local num_rows= diamonds_high * 2 + if with_gaps_flag then + part_size= part_size * 2 + num_rows= diamonds_high + end + local num_diamonds= num_rows * diamonds_across + local grow_time= transition_time / 2 + local offset_time= transition_time / num_diamonds + if in_rows_flag then + offset_time= transition_time / num_rows + end + + local row_waits= {} + local loop_internal= function(diam_y, diam_x, x, y) + local new_part= make_diamond(x, y, part_size, part_commands) + local diam_index= #trans_frame + local row_index= num_rows - diam_y + if random_flag then + if in_order_flag then + new_part[1].TweenCommand= function(self) + local index= diam_index + (math.random() * num_diamonds / 2) + local wait= index * offset_time + self:sleep(wait):linear(grow_time) + end + elseif in_rows_flag then + local wait= row_waits[diam_y] + if not wait then + wait= math.random() * num_rows * offset_time + row_waits[diam_y]= wait + end + new_part[1].TweenCommand= function(self) + self:sleep(wait):linear(grow_time) + end + else + new_part[1].TweenCommand= function(self) + local wait= math.random() * num_diamonds * offset_time + self:sleep(wait):linear(grow_time) + end + end + elseif in_order_flag then + new_part[1].TweenCommand= function(self) + local wait= diam_index * offset_time + self:sleep(wait):linear(grow_time) + end + elseif in_rows_flag then + new_part[1].TweenCommand= function(self) + local wait= row_index * offset_time + self:sleep(wait):linear(grow_time) + end + else + new_part[1].TweenCommand= function(self) + self:linear(transition_time) + end + end + trans_frame[#trans_frame+1]= new_part + end + if with_gaps_flag then + for diam_y= num_rows, 0, -1 do + for diam_x= 0, diamonds_across do + loop_internal(diam_y, diam_x, + diam_x * diamond_width, diam_y * diamond_height) + end + end + else + for diam_y= num_rows, 0, -1 do + local start_x= (diam_y % 2) * (diamond_width * .5) + for diam_x= 0, diamonds_across do + loop_internal(diam_y, diam_x, + start_x + diam_x * diamond_width, .5 * diam_y * diamond_height) + end + end + end +elseif variant_words[1] == "falling" then + local in_order_flag= picked_variant:find("in_order") + local in_rows_flag= picked_variant:find("in_rows") + local part_size= unsquished_side_len + local hide_y= _screen.h + diamond_height + local num_rows= diamonds_high * 2 + local num_diamonds= num_rows * diamonds_across + local fall_time= transition_time / 2 + local offset_time= transition_time / num_diamonds + if in_rows_flag then + offset_time= transition_time / num_rows + end + local diam_com= { + EmptyCommand= function(self) + self:zoom(1) + end, + FullCommand= function(self) + self:zoom(1) + end, + } + local loop_internal= function(diam_y, diam_x, start_x) + local diam_index= #trans_frame + local land_x= start_x + diam_x * diamond_width + local land_y= .5 * diam_y * diamond_height + local wait= 0 + if in_order_flag then + wait= diam_index * offset_time + elseif in_rows_flag then + local row_index= num_rows - diam_y + wait= row_index * offset_time + else + wait= math.random() * num_diamonds * offset_time + end + local part_com= { + EmptyCommand= function(self) + if trans_type == "in" then + self:y(land_y + hide_y) + else + self:y(land_y - hide_y) + end + end, + FullCommand= function(self) + self:y(land_y) + end, + TweenCommand= function(self) + self:sleep(wait):linear(fall_time) + end, + } + local new_part= make_diamond(land_x, land_y, part_size, diam_com) .. + part_com + trans_frame[#trans_frame+1]= new_part + end + for diam_y= num_rows, 0, -1 do + local start_x= (diam_y % 2) * (diamond_width * .5) + for diam_x= 0, diamonds_across do + loop_internal(diam_y, diam_x, start_x) + end + end +elseif variant_words[1] == "streaking" then + local random_flag= picked_variant:find("random") + local offset_time= transition_time / diamonds_across + local fall_time= transition_time / 2 + local hide_y= _screen.h + diamond_height + local part_size= unsquished_side_len + local diam_com= { + EmptyCommand= function(self) + self:zoom(1) + end, + FullCommand= function(self) + self:zoom(1) + end, + } + local loop_internal= function(diam_x) + local wait= diam_x * offset_time + if random_flag then + wait= math.random() * diamonds_across * offset_time + end + local new_part= Def.ActorFrame{ + InitCommand= function(self) + self:x(diam_x * diamond_width) + end, + EmptyCommand= function(self) + if trans_type == "in" then + self:y(hide_y) + else + self:y(-hide_y) + end + end, + FullCommand= function(self) + self:y(0) + end, + TweenCommand= function(self) + self:sleep(wait):linear(fall_time) + end, + Def.Quad{ + InitCommand= function(self) + self:y(_screen.cy):setsize(diamond_width, _screen.h) + :diffuse{0, 0, 0, 1} + end, + }, + make_diamond(0, 0, part_size, diam_com), + make_diamond(0, _screen.h, part_size, diam_com), + } + trans_frame[#trans_frame+1]= new_part + end + for diam_x= 0, diamonds_across do + loop_internal(diam_x) + end +end + +return trans_frame Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/difficulty BannerBase.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/difficulty BannerBase.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/DualScrollBar thumb p1 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/DualScrollBar thumb p1 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/DualScrollBar thumb p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/DualScrollBar thumb p1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/DualScrollBar thumb p2 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/DualScrollBar thumb p2 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/DualScrollBar thumb p2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/DualScrollBar thumb p2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/EditMenu Left 1x8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/EditMenu Left 1x8.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/EditMenu Right.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/EditMenu Right.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/EditMenu Right.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/EditMenu Right.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -local t = Def.ActorFrame{ - LoadActor("EditMenu Left")..{ - BeginCommand=cmd(zoomx,-1); - }; -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Generic icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Generic icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Failed.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Failed.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier01.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier01.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier02.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier02.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier03.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier03.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier04.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier04.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier05.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier05.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier06.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier06.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplayEval Tier07.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplayEval Tier07.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Failed.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Failed.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier01.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier01.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier02.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier02.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier03.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier03.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier04.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier04.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier05.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier05.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier06.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier06.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier07.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GradeDisplay Grade Grade_Tier07.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay backing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay backing.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay barely.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay barely.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay barely.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay barely.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay body.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay body.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_GraphDisplay overlay.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_GraphDisplay overlay.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay SongBoundary.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay SongBoundary.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/GraphDisplay SongBoundary.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/GraphDisplay SongBoundary.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/HoldJudgment label 1x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/HoldJudgment label 1x2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_howto find.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_howto find.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_howto install.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_howto install.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_icon Health.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_icon Health.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_icon Sort.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_icon Sort.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_icon Timing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_icon Timing.png differ diff -Nru stepmania-5.0.12+dfsg/Themes/default/Graphics/_JudgmentLineLabel/default.lua stepmania-5.1.0+dfsg/Themes/default/Graphics/_JudgmentLineLabel/default.lua --- stepmania-5.0.12+dfsg/Themes/default/Graphics/_JudgmentLineLabel/default.lua 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Graphics/_JudgmentLineLabel/default.lua 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -local jl = Var "JudgmentLine"; - -return Def.ActorFrame { - Def.Quad { - InitCommand=cmd(horizalign,right;zoomto,256,18); - OnCommand=cmd(diffuse,Color("Black");fadeleft,1); - }; - Def.Quad { - InitCommand=cmd(horizalign,left;zoomto,256,18); - OnCommand=cmd(diffuse,Color("Black");faderight,1); - }; - - LoadActor("_frame") .. { - InitCommand=cmd(diffuse,JudgmentLineToColor(jl)); - }; - LoadFont("Common Normal") .. { - InitCommand=cmd(zoom,0.675;settext,string.upper(JudgmentLineToLocalizedString(jl));diffuse,JudgmentLineToColor(jl);shadowlength,1;maxwidth,180); - }; -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_JudgmentLineLabel/_frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_JudgmentLineLabel/_frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Judgment Normal 1x6.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Judgment Normal 1x6.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Judgment Normal 2x6.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Judgment Normal 2x6.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBar danger.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBar danger.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBar danger.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBar danger.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeter bar frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeter bar frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBar over.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBar over.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBar under.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBar under.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBattery frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBattery frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBattery lives/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBattery lives/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBattery lives/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBattery lives/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -local player = Var "Player" -local blinkTime = 1.2 -local barWidth = 256; -local barHeight = 32; -local c; -local LifeMeter, MaxLives, CurLives; -local LifeRatio; - -local t = Def.ActorFrame { - LoadActor("_lives")..{ - InitCommand=cmd(pause;horizalign,left;x,-(barWidth/2)); - BeginCommand=function(self,param) - local screen = SCREENMAN:GetTopScreen(); - local glifemeter = screen:GetLifeMeter(player); - self:setstate(clamp(glifemeter:GetTotalLives()-1,0,9)); - - if glifemeter:GetTotalLives() <= 4 then - self:zoomx(barWidth/(4*64)); - else - self:zoomx(barWidth/((glifemeter:GetTotalLives())*64)); - end - self:cropright((640-(((glifemeter:GetTotalLives())*64)))/640); - end; - LifeChangedMessageCommand=function(self,param) - if param.Player == player then - if param.LivesLeft == 0 then - self:visible(false) - else - self:setstate( clamp(param.LivesLeft-1,0,9) ) - self:visible(true) - end - end - end; - StartCommand=function(self,param) - if param.Player == player then - self:setstate( clamp(param.LivesLeft-1,0,9) ); - end - end; - FinishCommand=cmd(playcommand,"Start"); - }; -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterBattery lives/_lives 1x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterBattery lives/_lives 1x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime background.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime background.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -LifeMeterBar under \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -LifeMeterBar over \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime over.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime over.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/LifeMeterTime over.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/LifeMeterTime over.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -LifeMeterBar over \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/menu_icons/bool 1x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/menu_icons/bool 1x2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/menu_icons/chevron.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/menu_icons/chevron.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/menu_icons/menu.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/menu_icons/menu.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheel highlight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheel highlight.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Course ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Course ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Course NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Course NormalPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Course NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Course NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem grades/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem grades/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem grades/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem grades/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,73 +1,31 @@ -- This actor is duplicated. Upvalues will not be duplicated. - local grades = { - Grade_Tier01 = 0; - Grade_Tier02 = 1; - Grade_Tier03 = 2; - Grade_Tier04 = 3; - Grade_Tier05 = 4; - Grade_Tier06 = 5; - Grade_Tier07 = 6; - Grade_Failed = 7; - Grade_None = 8; + Grade_Tier01 = 0, + Grade_Tier02 = 1, + Grade_Tier03 = 2, + Grade_Tier04 = 3, + Grade_Tier05 = 4, + Grade_Tier06 = 5, + Grade_Tier07 = 6, + Grade_Failed = 7, + Grade_None = nil }; ---[[ local t = LoadActor( "grades" ) .. { +return LoadActor("grades")..{ InitCommand=cmd(pause); SetGradeCommand=function(self, params) + if GAMESTATE:IsCourseMode() then + self:visible(false); + return; + end; local state = grades[params.Grade] or grades.Grade_None; - state = state*2; - - if params.PlayerNumber == PLAYER_2 then - state = state+1; - end - - self:setstate(state); - end; -}; --]] -local t = LoadFont("Common Normal") .. { - InitCommand=cmd(zoom,0.75;shadowlength,1;strokecolor,Color("Black")); - ShowCommand=cmd(stoptweening;bounceend,0.15;zoomy,0.75); - HideCommand=cmd(stoptweening;bouncebegin,0.15;zoomy,0); - SetGradeCommand=function(self,params) - local pnPlayer = params.PlayerNumber; - local sGrade = params.Grade or 'Grade_None'; - local gradeString = THEME:GetString("Grade",string.sub(sGrade,7)); - - self:settext(gradeString); - self:diffuse(PlayerColor(pnPlayer)); - self:diffusetopedge(BoostColor(PlayerColor(pnPlayer),1.5)); - self:strokecolor(BoostColor(PlayerColor(pnPlayer),0.25)); - ---[[ if sGrade == "Grade_NoTier" then - self:playcommand("Hide"); + if state == nil then + self:visible(false) else - self:playcommand("Show"); - end; --]] + self:visible(true) + state = state*2 + if params.PlayerNumber == PLAYER_2 then state = state+1 end + self:setstate(state) + end end; -}; - -return t; - --- (c) 2007 Glenn Maynard --- All rights reserved. --- --- Permission is hereby granted, free of charge, to any person obtaining a --- copy of this software and associated documentation files (the --- "Software"), to deal in the Software without restriction, including --- without limitation the rights to use, copy, modify, merge, publish, --- distribute, and/or sell copies of the Software, and to permit persons to --- whom the Software is furnished to do so, provided that the above --- copyright notice(s) and this permission notice appear in all copies of --- the Software and that both the above copyright notice(s) and this --- permission notice appear in supporting documentation. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF --- THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS --- INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT --- OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS --- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR --- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR --- PERFORMANCE OF THIS SOFTWARE. +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem grades/grades 2x8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem grades/grades 2x8.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Mode ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Mode ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem ModeItem.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem ModeItem.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadActor(THEME:GetPathG("MusicWheelItem", "ModeItem")) .. { + OnCommand=cmd(diffuse,ScreenColor(SCREENMAN:GetTopScreen():GetName());); +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Mode NormalPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Random NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Random NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette ColorPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -return Def.ActorFrame { - LoadActor(THEME:GetPathG("MusicWheelItem","Course NormalPart")) .. { - InitCommand=cmd(glow,color('1,1,1,0.25')); - }; - LoadActor(THEME:GetPathG("MusicWheelItem","Course NormalPart")) .. { - InitCommand=cmd(blend,Blend.Add;rainbow;diffusealpha,0.325); - }; -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_MusicWheelItem Roulette NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_MusicWheelItem Roulette NormalPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette OverPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette OverPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Roulette OverPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Roulette OverPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem Song ColorPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionCollapsed NormalPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem SectionCollapsed NormalPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Song ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Song ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Song NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Song NormalPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Song NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Song NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort ColorPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem Mode ColorPart \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadActor(THEME:GetPathG("MusicWheelItem", "ModeItem")) .. { + OnCommand=cmd(diffuse,ScreenColor(SCREENMAN:GetTopScreen():GetName());); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/MusicWheelItem Sort NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem Mode NormalPart \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/NoteColumn layers.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/NoteColumn layers.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/NoteColumn layers.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/NoteColumn layers.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,43 @@ +local offset= 52 +local hns_states= { + HoldNoteScore_Held= 0, + HoldNoteScore_LetGo= 1, + HoldNoteScore_MissedHold= 1, +} + +return { + Def.Sprite{ + Texture= THEME:GetPathG("HoldJudgment", "label"), + InitCommand= function(self) + self:draworder(notefield_draw_order.under_field) + :y(offset):animate(false):diffusealpha(0) + end, + WidthSetCommand= function(self, param) + scale_to_fit(self, param.width, param.width) + param.column:set_layer_transform_type(self, "FieldLayerTransformType_PosOnly") + :set_layer_fade_type(self, "FieldLayerFadeType_Explosion") + end, + PlayerStateSetCommand= function(self, param) + if player_config:get_data(param.PlayerNumber).JudgmentUnderField then + self:draworder(notefield_draw_order.under_field) + else + self:draworder(notefield_draw_order.over_field) + end + end, + ColumnJudgmentCommand= function(self, param) + local hns= param.hold_note_score + if hns_states[hns] then + self:stoptweening() + :setstate(hns_states[hns]) + :linear(.1):diffusealpha(1) + :sleep(.5) + :linear(.2):diffusealpha(0) + elseif hns then + lua.ReportScriptError("No sprite state for hns " .. tostring(hns)) + end + end, + ReverseChangedCommand= function(self, param) + self:y(offset * param.sign) + end, + }, +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/NoteField layers.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/NoteField layers.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/NoteField layers.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/NoteField layers.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,22 @@ +local filter_color= color("0.135,0.135,0.135,1") + +local layers= { + Def.Quad{ + InitCommand= function(self) + self:hibernate(math.huge):draworder(notefield_draw_order.board) + :diffuse(filter_color) + end, + PlayerStateSetCommand= function(self, param) + local pn= param.PlayerNumber + local alf= player_config:get_data(pn).ScreenFilter + if alf > 0 then + self:SetHeight(4096):diffusealpha(alf):hibernate(0) + end + end, + WidthSetCommand= function(self, param) + self:SetWidth(param.width+8) + end, + } +} + +return layers Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionRowExit frame (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionRowExit frame (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionRowExit frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionRowExit frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionRow frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionRow frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionRow frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionRow frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursor Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursor Left (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursor Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursor Middle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Left (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Left.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Left.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Left.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Left.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursor Left Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Middle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursor Middle Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Right (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Right.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Right.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP1 Right.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP1 Right.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursor Right diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Left.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Left.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Left.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Left.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -OptionsCursorP1 Left \ No newline at end of file +OptionsCursor Left diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Middle.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Middle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -OptionsCursorP1 Middle \ No newline at end of file +OptionsCursor Middle diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Right.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Right.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursorP2 Right.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursorP2 Right.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -1 +1 @@ -OptionsCursorP1 Right \ No newline at end of file +OptionsCursor Right Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsCursor Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsCursor Right (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderline Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderline Left (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderline Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderline Middle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Left (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Middle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderlineP1 Right (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/OptionsUnderline Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/OptionsUnderline Right (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/PaneDisplay text.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/PaneDisplay text.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/PaneDisplay text.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/PaneDisplay text.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -20,15 +20,15 @@ local function CreatePaneDisplayItem( _pnPlayer, _sLabel, _rcRadarCategory ) return Def.ActorFrame { - LoadFont("Common SemiBold") .. { + LoadFont("Common Italic Condensed") .. { Text=string.upper( THEME:GetString("PaneDisplay",_sLabel) ); InitCommand=cmd(horizalign,left); - OnCommand=cmd(zoom,0.5875;diffuse,color("0.9,0.9,0.9");shadowlength,1); + OnCommand=cmd(zoom,0.8;diffuse,color("0.9,0.9,0.9");shadowlength,1); }; - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Text=string.format("%04i", 0); - InitCommand=cmd(x,96;horizalign,right); - OnCommand=cmd(zoom,0.5875;shadowlength,1); + InitCommand=cmd(x,122;horizalign,right); + OnCommand=cmd(zoom,0.8;shadowlength,1); CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); @@ -109,28 +109,44 @@ -- Left CreatePaneDisplayItem( iPN, "Taps", 'RadarCategory_TapsAndHolds' ) .. { InitCommand=cmd(x,-128+16+8;y,-14); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.4;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.1;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Jumps", 'RadarCategory_Jumps' ) .. { - InitCommand=cmd(x,-128+16+8;y,-14+16); + InitCommand=cmd(x,-128+16+8;y,-14+24); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.5;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.15;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Holds", 'RadarCategory_Holds' ) .. { - InitCommand=cmd(x,-128+16+8;y,-14+16*2); + InitCommand=cmd(x,-128+16+8;y,-14+24*2); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.6;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.2;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Mines", 'RadarCategory_Mines' ) .. { - InitCommand=cmd(x,-128+16+8;y,-14+16*3); + InitCommand=cmd(x,-128+16+8;y,-14+24*3); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.7;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.25;diffusealpha,0;zoomy,0.8;); }; -- Center CreatePaneDisplayItem( iPN, "Hands", 'RadarCategory_Hands' ) .. { - InitCommand=cmd(x,8;y,-14); + InitCommand=cmd(x,36;y,-14); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.4;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.1;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Rolls", 'RadarCategory_Rolls' ) .. { - InitCommand=cmd(x,8;y,-14+16); + InitCommand=cmd(x,36;y,-14+24); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.5;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.15;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Lifts", 'RadarCategory_Lifts' ) .. { - InitCommand=cmd(x,8;y,-14+16*2); + InitCommand=cmd(x,36;y,-14+24*2); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.6;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.2;diffusealpha,0;zoomy,0.8;); }; CreatePaneDisplayItem( iPN, "Fakes", 'RadarCategory_Fakes' ) .. { - InitCommand=cmd(x,8;y,-14+16*3); + InitCommand=cmd(x,36;y,-14+24*3); + OnCommand=cmd(zoomy,0.8;diffusealpha,0;sleep,0.7;linear,0.3;diffusealpha,1;zoomy,1;); + OffCommand=cmd(linear,0.25;diffusealpha,0;zoomy,0.8;); }; }; return t; \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/default/Graphics/pause_menu.lua stepmania-5.1.0+dfsg/Themes/default/Graphics/pause_menu.lua --- stepmania-5.0.12+dfsg/Themes/default/Graphics/pause_menu.lua 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Graphics/pause_menu.lua 2018-01-25 05:01:07.000000000 +0000 @@ -24,9 +24,9 @@ } end local menu_spacing= 32 -local menu_bg_width= _screen.w * .4 +local menu_bg_width= _screen.w * .2 local menu_text_width= _screen.w * .35 -local menu_x= {[PLAYER_1]= _screen.w*.25, [PLAYER_2]= _screen.w*.75} +local menu_x= {[PLAYER_1]= THEME:GetMetric(Var "LoadingScreen","PlayerP1MiscX"), [PLAYER_2]= THEME:GetMetric(Var "LoadingScreen","PlayerP2MiscX")} local menu_y= _screen.cy - (#menu_choices * .5 * menu_spacing) local current_menu_choice= {} local menu_is_showing= {} @@ -34,17 +34,17 @@ local function create_menu_item(pn, x, y, item_name) return Def.BitmapText{ - Font= "Common Normal", Text= THEME:GetString("PauseMenu", item_name), + Font= "Common Condensed", Text= THEME:GetString("PauseMenu", item_name), InitCommand= function(self) self:xy(x, y) table.insert(menu_items[pn], self) self:playcommand("LoseFocus") end, LoseFocusCommand= function(self) - self:stopeffect():rotationz(0) + self:diffusealpha(0.5) end, GainFocusCommand= function(self) - self:wag():effectperiod(2):effectmagnitude(0, 0, 5) + self:diffusealpha(1) end, } end @@ -65,7 +65,7 @@ InitCommand= function(self) self:setsize(menu_bg_width, menu_spacing * (#menu_choices + 1)) :y(-menu_spacing):vertalign(top) - :diffuse{0, 0, 0, .25} + :diffuse{0, 0, 0, .75} :playcommand("Hide") end, }, Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player Badge FullCombo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player Badge FullCombo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player combo/_combo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player combo/_combo.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player combo/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player combo/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player combo/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player combo/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,4 @@ local c; -local cf; -local canAnimate = false; local player = Var "Player"; local ShowComboAt = THEME:GetMetric("Combo", "ShowComboAt"); local Pulse = THEME:GetMetric("Combo", "PulseCommand"); @@ -13,43 +11,31 @@ local LabelMinZoom = THEME:GetMetric("Combo", "LabelMinZoom"); local LabelMaxZoom = THEME:GetMetric("Combo", "LabelMaxZoom"); -local ShowFlashyCombo = ThemePrefs.Get("FlashyCombo") - local t = Def.ActorFrame { - InitCommand=cmd(vertalign,bottom); - -- flashy combo elements: LoadActor(THEME:GetPathG("Combo","100Milestone")) .. { Name="OneHundredMilestone"; - InitCommand=cmd(visible,ShowFlashyCombo); FiftyMilestoneCommand=cmd(playcommand,"Milestone"); }; LoadActor(THEME:GetPathG("Combo","1000Milestone")) .. { Name="OneThousandMilestone"; - InitCommand=cmd(visible,ShowFlashyCombo); ToastyAchievedMessageCommand=cmd(playcommand,"Milestone"); }; - -- normal combo elements: - Def.ActorFrame { - Name="ComboFrame"; - LoadFont( "Combo", "numbers" ) .. { - Name="Number"; - OnCommand = THEME:GetMetric("Combo", "NumberOnCommand"); - }; - LoadActor("_combo")..{ - Name="ComboLabel"; - OnCommand = THEME:GetMetric("Combo", "ComboLabelOnCommand"); - }; - LoadActor("_misses")..{ - Name="MissLabel"; - OnCommand = THEME:GetMetric("Combo", "MissLabelOnCommand"); - }; + InitCommand=cmd(vertalign,bottom); + LoadFont( "Combo", "numbers" ) .. { + Name="Number"; + OnCommand = THEME:GetMetric("Combo", "NumberOnCommand"); }; + LoadFont("_roboto condensed Bold italic 24px") .. { + Name="Label"; + OnCommand = THEME:GetMetric("Combo", "LabelOnCommand"); + }; + InitCommand = function(self) + -- We'll have to deal with this later + --self:draworder(notefield_draw_order.over_field) c = self:GetChildren(); - cf = c.ComboFrame:GetChildren(); - cf.Number:visible(false); - cf.ComboLabel:visible(false) - cf.MissLabel:visible(false) + c.Number:visible(false); + c.Label:visible(false); end; -- Milestones: -- 25,50,100,250,600 Multiples; @@ -62,34 +48,32 @@ else return end; --]] - TwentyFiveMilestoneCommand=function(self,parent) - if ShowFlashyCombo then - (cmd(finishtweening;addy,-4;bounceend,0.125;addy,4))(self); - end; + TwentyFiveMilestoneCommand=function(self,parent) + (cmd(skewy,-0.125;decelerate,0.325;skewy,0))(self); end; - --]] - --[[ ToastyAchievedMessageCommand=function(self,params) if params.PlayerNumber == player then - (cmd(thump,2;effectclock,'beat'))(c.ComboFrame); + (cmd(thump,2;effectclock,'beat'))(self); end; end; - ToastyDroppedMessageCommand=function(self,params) - if params.PlayerNumber == player then - (cmd(stopeffect))(c.ComboFrame); - end; - end; --]] ComboCommand=function(self, param) local iCombo = param.Misses or param.Combo; if not iCombo or iCombo < ShowComboAt then - cf.Number:visible(false); - cf.ComboLabel:visible(false) - cf.MissLabel:visible(false) + c.Number:visible(false); + c.Label:visible(false); return; end - cf.ComboLabel:visible(false) - cf.MissLabel:visible(false) + local labeltext = ""; + if param.Combo then + labeltext = "COMBO"; +-- c.Number:playcommand("Reset"); + else + labeltext = "MISSES"; +-- c.Number:playcommand("Miss"); + end + c.Label:settext( labeltext ); + c.Label:visible(false); param.Zoom = scale( iCombo, 0, NumberMaxZoomAt, NumberMinZoom, NumberMaxZoom ); param.Zoom = clamp( param.Zoom, NumberMinZoom, NumberMaxZoom ); @@ -97,51 +81,35 @@ param.LabelZoom = scale( iCombo, 0, NumberMaxZoomAt, LabelMinZoom, LabelMaxZoom ); param.LabelZoom = clamp( param.LabelZoom, LabelMinZoom, LabelMaxZoom ); - if param.Combo then - cf.ComboLabel:visible(true) - cf.MissLabel:visible(false) - else - cf.ComboLabel:visible(false) - cf.MissLabel:visible(true) - end - - cf.Number:visible(true); - cf.Number:settext( string.format("%i", iCombo) ); - cf.Number:textglowmode("TextGlowMode_Stroke"); + c.Number:visible(true); + c.Label:visible(true); + c.Number:settext( string.format("%i", iCombo) ); -- FullCombo Rewards if param.FullComboW1 then - cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W1"] ); - cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W1"] ); - cf.Number:textglowmode("TextGlowMode_Stroke"); - cf.Number:glowshift(); + c.Number:diffuse(color("#00aeef")); + c.Number:glowshift(); + (cmd(diffuse,color("#C7E5F0");diffusebottomedge,color("#00aeef");strokecolor,color("#0E3D53");))(c.Label); elseif param.FullComboW2 then - cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W2"] ); - cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W2"] ); - cf.Number:textglowmode("TextGlowMode_Stroke"); - cf.Number:glowshift(); + c.Number:diffuse(color("#F3D58D")); + c.Number:glowshift(); + (cmd(diffuse,color("#FAFAFA");diffusebottomedge,color("#F3D58D");strokecolor,color("#53450E");))(c.Label); elseif param.FullComboW3 then - cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W3"] ); - cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W3"] ); - cf.Number:textglowmode("TextGlowMode_Stroke"); - cf.Number:glowshift(); + c.Number:diffuse(color("#94D658")); + c.Number:stopeffect(); + (cmd(diffuse,color("#CFE5BC");diffusebottomedge,color("#94D658");strokecolor,color("#12530E");))(c.Label); elseif param.Combo then - -- Player 1's color is Red, which conflicts with the miss combo. - -- instead, just diffuse to white for now. -aj - --c.Number:diffuse(PlayerColor(player)); - cf.Number:diffuse(Color("White")); - cf.Number:strokecolor(Color("Stealth")); - cf.Number:stopeffect(); + c.Number:diffuse(color("#FBE9DD")); +-- c.Number:diffuse(PlayerColor(player)); + c.Number:stopeffect(); + (cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#602C1B");))(c.Label); else - cf.Number:diffuse(color("#ff0000")); - cf.Number:stopeffect(); + c.Number:diffuse(color("#FBE9DD")); + c.Number:stopeffect(); + (cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#602C1B");))(c.Label); end -- Pulse - Pulse( cf.Number, param ); - if param.Combo then - PulseLabel( cf.ComboLabel, param ); - else - PulseLabel( cf.MissLabel, param ); - end + Pulse( c.Number, param ); + PulseLabel( c.Label, param ); -- Milestone Logic end; --[[ ScoreChangedMessageCommand=function(self,param) Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player combo/_misses.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player combo/_misses.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player judgment/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player judgment/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player judgment/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player judgment/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -67,14 +67,14 @@ OnCommand=THEME:GetMetric("Protiming","ProtimingOnCommand"); ResetCommand=cmd(finishtweening;stopeffect;visible,false); }; - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Name="ProtimingAverage"; Text=""; InitCommand=cmd(visible,false); OnCommand=THEME:GetMetric("Protiming","AverageOnCommand"); ResetCommand=cmd(finishtweening;stopeffect;visible,false); }; - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Name="TextDisplay"; Text=THEME:GetString("Protiming","MS"); InitCommand=cmd(visible,false); @@ -230,4 +230,4 @@ }; -return t; +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player toasty/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player toasty/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/Player toasty/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/Player toasty/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -local Player = ... -assert(Player); -local HasToasty = false; -local fWidth = ( GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' ) and 600 or 256+16; -return Def.ActorFrame { - ToastyAchievedMessageCommand=function(self,params) - if params.PlayerNumber == Player then - (cmd(thump,1;effectclock,'beat';effectmagnitude,1,1,1; - effectcolor1,color("1,1.125,1,1");effectcolor2,color("1,1,1,1")))(self); - end - end; - Def.Quad { - InitCommand=cmd(zoomto,fWidth,SCREEN_HEIGHT;diffuse,PlayerColor(Player);diffusealpha,0;fadeleft,32/(256+16);faderight,32/(256+16)); - ToastyAchievedMessageCommand=function(self,params) - if params.PlayerNumber == Player then - (cmd(stoptweening;linear,2.125;diffuse,Color.Alpha( PlayerColor(Player), 0.345 );glow,color("1,1,1,0.5");decelerate,3;glow,Color.Alpha( ColorDarkTone( PlayerColor(Player) ), 0 );diffuseramp; - effectcolor1,ColorLightTone( PlayerColor(Player) );effectcolor2,PlayerColor(Player); - effectclock,'beat';effectperiod,2; - ))(self); - HasToasty = true; - end - end; - ToastyDroppedMessageCommand=function(self,params) - if params.PlayerNumber == Player then - if HasToasty then - (cmd(finishtweening;stopeffect;glow,color("1,1,1,0.5");decelerate,0.35;diffuse,Color.Alpha( Color("Black"), 0.25 );glow,color("1,1,1,0");linear,0.35*0.25;diffusealpha,0))(self); - HasToasty = false; - else - return - end - end - end; - }; -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt3.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt5.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_pt6.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_pt6.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_rave meter base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_rave meter base.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_rave result draw.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_rave result draw.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_rave result P1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_rave result P1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_rave result P2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_rave result P2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/RoomWheelItem ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/RoomWheelItem ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/RoomWheelItem ColorPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/RoomWheelItem ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem Song ColorPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/RoomWheelItem NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -MusicWheelItem Song NormalPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayNormal frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayOni frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayOni frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayOni frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayOni frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScoreDisplayNormal frame \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScoreDisplayRave stream level3.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation BannerFrame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation BannerFrame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation BannerFrame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation BannerFrame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenSelectMusic BannerFrame \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GameType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GameType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GameType.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GameType.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -return LoadFont("Common Normal") .. { - Text=GAMESTATE:GetCurrentGame():GetName(); -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p1.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p1.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation GradeFrame p2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Held.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Held.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Held.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Held.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W1.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W1.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W3.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W3.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W3.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W3.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W4.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W4.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W4.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W4.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W5.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W5.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W5.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation JudgmentLabel W5.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation LifeDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation LifeDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation LifeDifficulty.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation LifeDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,9 @@ -return LoadFont("Common Normal") .. { +return LoadFont("_roboto condensed 24px") .. { Text=GetLifeDifficulty(); AltText=""; BeginCommand=function(self) self:settextf( Screen.String("LifeDifficulty"), GetLifeDifficulty() ); + self:diffuse(color("#512232")):zoom(0.8); + self:diffusealpha(0):sleep(0.5):smooth(0.3):diffusealpha(1); end -}; \ No newline at end of file +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation MachineRecord.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation MachineRecord.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation MachineRecord.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation MachineRecord.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -local Player = ... -assert(Player,"MachineRecord needs Player") -local stats = STATSMAN:GetCurStageStats():GetPlayerStageStats(Player); -local record = stats:GetMachineHighScoreIndex() -local hasMachineRecord = record ~= -1 - -return LoadFont("Common normal")..{ - InitCommand=cmd(zoom,0.55;shadowlength,1;NoStroke;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25")); - BeginCommand=function(self) - self:visible(hasMachineRecord); - local text = string.format(THEME:GetString("ScreenEvaluation", "MachineRecord"), record+1) - self:settext(text); - end; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation PeakComboAward.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation PeakComboAward.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation PeakComboAward.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation PeakComboAward.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -return LoadFont("Common Normal"); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation PersonalRecord.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation PersonalRecord.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation PersonalRecord.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation PersonalRecord.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -local Player = ... -assert(Player,"PersonalRecord needs Player") -local stats = STATSMAN:GetCurStageStats():GetPlayerStageStats(Player); -local record = stats:GetPersonalHighScoreIndex() -local hasPersonalRecord = record ~= -1 - -return LoadFont("Common normal")..{ - InitCommand=cmd(zoom,0.55;shadowlength,1;NoStroke;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25")); - BeginCommand=function(self) - self:visible(hasPersonalRecord); - local text = string.format(THEME:GetString("ScreenEvaluation", "PersonalRecord"), record+1) - self:settext(text) - end -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation ScoreLabel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation ScoreLabel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation ScoreLabel.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation ScoreLabel.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation SongInformation.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation SongInformation.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation SongInformation.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation SongInformation.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -return Def.ActorFrame { - LoadFont("Common Normal") .. { - Name="TextTitle"; - InitCommand=cmd(y,-16.5;zoom,0.875;maxwidth,256/0.875;); - OnCommand=cmd(shadowlength,1); --- TickCommand=cmd(finishtweening;diffusealpha,0;addx,-10;zoomx,1.25;zoomy,0;decelerate,0.25;diffusealpha,1;addx,10;zoom,1;sleep,0;glow,Color("White");decelerate,0.275;glow,Color("Invisible")); - }; - LoadFont("Common Normal") .. { - Name="TextSubtitle"; - InitCommand=cmd(zoom,0.5;maxwidth,256/0.5); - OnCommand=cmd(shadowlength,1); --- TickCommand=cmd(finishtweening;diffusealpha,0;addy,-10;addx,10;decelerate,0.25;diffusealpha,1;addy,10;addx,-10); - }; - LoadFont("Common Normal") .. { - Name="TextArtist"; - InitCommand=cmd(y,18;zoom,0.75;maxwidth,256/0.75); - OnCommand=cmd(shadowlength,1;skewx,-0.2); --- TickCommand=cmd(finishtweening;diffusealpha,0;addy,10;addx,10;decelerate,0.25;diffusealpha,1;addy,-10;addx,-10); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation StageAward.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation StageAward.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation StageAward.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation StageAward.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -return LoadFont("Common Normal"); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation StageDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation StageDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation StageDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation StageDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,56 @@ +local curScreen = Var "LoadingScreen"; +local curStageIndex = GAMESTATE:GetCurrentStageIndex(); +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + LoadActor(THEME:GetPathG("", "_sortFrame")) .. { + InitCommand=cmd(diffusealpha,0.9;zoom,1.5); + BeginCommand=function(self) + local top = SCREENMAN:GetTopScreen() + if top then + if not string.find(top:GetName(),"ScreenEvaluation") then + curStageIndex = curStageIndex + 1 + end + end + self:playcommand("Set") + end; + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + self:diffuse(StageToColor(curStage)); + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(y,-1;zoom,1;shadowlength,1;uppercase,true;); + BeginCommand=function(self) + local top = SCREENMAN:GetTopScreen() + if top then + if not string.find(top:GetName(),"ScreenEvaluation") then + curStageIndex = curStageIndex + 1 + end + end + self:playcommand("Set") + end; + CurrentSongChangedMessageCommand= cmd(playcommand,"Set"), + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + if GAMESTATE:GetCurrentCourse() then + self:settext( curStageIndex+1 .. " / " .. GAMESTATE:GetCurrentCourse():GetEstimatedNumStages() ); + elseif GAMESTATE:IsEventMode() then + self:settextf("Stage %s", curStageIndex); + else + local thed_stage= thified_curstage_index(curScreen:find("Evaluation")) + if THEME:GetMetric(curScreen,"StageDisplayUseShortString") then + self:settext(thed_stage) + self:zoom(0.75); + else + self:settextf("%s Stage", thed_stage); + self:zoom(1); + end; + end; + -- StepMania is being stupid so we have to do this here; + self:diffuse(StageToColor(curStage)):diffusetopedge(ColorLightTone(StageToColor(curStage))); + self:diffusealpha(0):smooth(0.3):diffusealpha(1); + end; + }; +}; +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluationSummary BannerList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluationSummary BannerList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluationSummary BannerList.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluationSummary BannerList.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -local function GetList() - local l = {}; - for i=1,7 do - local stats; - stats = STATSMAN:GetPlayedStageStats(i); - - if not stats then - break - end - - l[#l+1] = stats; - end - return l -end - -local statList = GetList(); - -local as = Def.ActorScroller { - SecondsPerItem = 1; - NumItemsToDraw = 10; - TransformFunction = function( self, offset, itemIndex, numItems) - self:diffusealpha(1-offset); - end; - OnCommand=function(self) - self:SetLoop(true); - self:SetSecondsPauseBetweenItems(2); - self:ScrollThroughAllItems(); - end; -} - -for i=1,#statList do - local j = #statList - (i-1); - as[#as+1] = Def.ActorFrame { - Def.Sprite { - InitCommand=cmd(scaletoclipped,256,80); - OnCommand=function(self) - local path = statList[j]:GetPlayedSongs()[1]:GetBannerPath() or THEME:GetPathG("Common","fallback banner"); - self:LoadBanner(path); - end; - }; - Def.Quad { - InitCommand=cmd(x,128;y,40;horizalign,right;vertalign,bottom); - OnCommand=cmd(zoomto,80,18;diffuse,Color.Black;diffusealpha,0.5;fadeleft,0.5); - }; - LoadFont("Common Normal") .. { - Text=FormatNumberAndSuffix(statList[j]:GetStageIndex()+1); - InitCommand=cmd(x,128-4;y,40-4;horizalign,right;vertalign,bottom); - OnCommand=cmd(diffuse,StageToColor(statList[j]:GetStage());zoom,0.675;shadowlength,1); - }; - }; -end - -return Def.ActorFrame { - as; - LoadActor(THEME:GetPathG("ScreenSelectMusic","BannerFrame")); -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation TimingDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation TimingDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation TimingDifficulty.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation TimingDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,9 @@ -return LoadFont("Common Normal") .. { +return LoadFont("_roboto condensed 24px") .. { Text=GetLifeDifficulty(); AltText=""; BeginCommand=function(self) self:settextf( Screen.String("TimingDifficulty"), GetTimingDifficulty() ); - end -}; \ No newline at end of file + self:diffuse(color("#512232")):zoom(0.8); + self:diffusealpha(0):sleep(0.5):smooth(0.3):diffusealpha(1); + end; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation Win p1 1x3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation Win p1 1x3.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenEvaluation Win p2 1x3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenEvaluation Win p2 1x3.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameOver gameover.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameOver gameover.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ --- check if players are playing steps with different timingdata. -local numPlayers = GAMESTATE:GetNumPlayersEnabled() - -local function UpdateSingleBPM(self) - local bpmDisplay = self:GetChild("BPMDisplay") - local pn = GAMESTATE:GetMasterPlayerNumber() - local pState = GAMESTATE:GetPlayerState(pn); - local songPosition = pState:GetSongPosition() - local bpm = songPosition:GetCurBPS() * 60 - bpmDisplay:settext( string.format("%03.2f",bpm) ) -end - -local displaySingle = Def.ActorFrame{ - -- manual bpm display - LoadFont("BPMDisplay", "bpm")..{ - Name="BPMDisplay"; - InitCommand=cmd(zoom,0.675;shadowlength,1); - }; - - --[[ - Def.SongBPMDisplay { - File=THEME:GetPathF("BPMDisplay", "bpm"); - Name="BPMDisplay"; - InitCommand=cmd(zoom,0.675;shadowlength,1); - SetCommand=function(self) self:SetFromGameState() end; - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); - }; - --]] -}; - -displaySingle.InitCommand=cmd(SetUpdateFunction,UpdateSingleBPM); - -if numPlayers == 1 then - return displaySingle -else - -- check if both players are playing the same steps - local stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) - local stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) - - if not stepsP1 or not stepsP2 then - return displaySingle - end - - local stP1 = stepsP1:GetStepsType() - local stP2 = stepsP2:GetStepsType() - - local diffP1 = stepsP1:GetDifficulty() - local diffP2 = stepsP2:GetDifficulty() - - -- get timing data... - local timingP1 = stepsP1:GetTimingData() - local timingP2 = stepsP2:GetTimingData() - - --if stP1 == stP2 and diffP1 == diffP2 then - if timingP1 == timingP2 then - -- both players are steps with the same TimingData; only need one. - return displaySingle - end - - -- otherwise, we have some more work to do. - - local function Update2PBPM(self) - local dispP1 = self:GetChild("DisplayP1") - local dispP2 = self:GetChild("DisplayP2") - - -- needs current bpm for p1 and p2 - for pn in ivalues(PlayerNumber) do - local bpmDisplay = (pn == PLAYER_1) and dispP1 or dispP2 - local pState = GAMESTATE:GetPlayerState(pn); - local songPosition = pState:GetSongPosition() - local bpm = songPosition:GetCurBPS() * 60 - bpmDisplay:settext( string.format("%03.2f",bpm) ) - end - end - - local playerOffset = 36 -- was 28 - local displayTwoPlayers = Def.ActorFrame{ - -- manual bpm displays - LoadFont("BPMDisplay", "bpm")..{ - Name="DisplayP1"; - InitCommand=cmd(x,-playerOffset;zoom,0.6;shadowlength,1); - }; - LoadFont("BPMDisplay", "bpm")..{ - Name="DisplayP2"; - InitCommand=cmd(x,playerOffset;zoom,0.6;shadowlength,1); - }; - }; - - displayTwoPlayers.InitCommand=cmd(SetUpdateFunction,Update2PBPM); - - return displayTwoPlayers -end - --- should not get here --- return Def.ActorFrame{} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_bar.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_bar.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_bar.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_bar.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,118 @@ +local pn = ... + +local life_meter_width = 400 +local life_meter_num_segments = 46 +local life_meter_height = 20 +local life_meter_tip_width = 2 +local life_meter_tip_gap = 64 +local life_meter_outline = 0 + +local color_normal = Color.Green +local color_hot = Color.Blue +local color_danger = Color.Red +local color_dead = Color.Outline + +local pn_offset = (pn == PLAYER_1) and 0.5 or -0.5 +local name_offset_x = -life_meter_width/2 + +local function getPlayersName(pn) + local s = PROFILEMAN:GetPlayerName(pn) + if s == "" then + return PlayerNumberToString(pn) + end + return s +end + +local function MakeSeperators() + local function x_pos(i) + return (-life_meter_width/2) + (i/life_meter_num_segments)* life_meter_width + end + local a = Def.Quad { + InitCommand=cmd(zoomto,2,life_meter_height), + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.15) + } + local t = Def.ActorFrame {} + for i=1, life_meter_num_segments do + t[#t+1] = Def.ActorFrame { InitCommand=cmd(x,x_pos(i)); a } + end + return t +end + +local t = Def.ActorFrame {} + +local function updateFunc(self) + local c = self:GetChildren(); + local beat = self:GetSecsIntoEffect() % 1 + local _beat = self.life == 1.00 and 0 or beat + local _fillWidth = (life_meter_width * self.life - _beat * life_meter_tip_gap) / life_meter_width + local _clampedWidth = math.round(_fillWidth * life_meter_num_segments) + local _tipPosition = (life_meter_width * self.life ) / life_meter_width + local _tipClamped = math.round( _tipPosition * life_meter_num_segments ) + c.Fill:zoomtowidth( math.max(0,(_clampedWidth/life_meter_num_segments) * life_meter_width) ) + --c.Fill:zoomtowidth( (life_meter_width * self.life) - beat * life_meter_tip_gap) + c.Tip:x( clamp(-life_meter_tip_width/2 + scale((_tipClamped/life_meter_num_segments) * life_meter_width,0,life_meter_width, -life_meter_width/2, life_meter_width/2),0, life_meter_width) ) +end + +t[#t+1] = Def.ActorFrame { + InitCommand=function(self) + self:SetUpdateFunction(updateFunc) + self.life = 0 + end, + OnCommand=cmd(spin;effectclock,'beat';effectperiod,1;effectmagnitude,0,0,0), + HealthStateChangedMessageCommand=function(self,param) + local c = self:GetChildren() + + if param.PlayerNumber == pn then + if param.HealthState ~= param.OldHealthState then + local state_name = ToEnumShortString(param.HealthState) + self:playcommand(state_name) + end + end + end, + LifeChangedMessageCommand=function(self,param) + local c = self:GetChildren() + if param.Player == pn then + self.life = param.LifeMeter:GetLife() + c.Fill:zoomtowidth( (life_meter_width) * self.life ) + end + end, + -- Outline + Def.Quad { + Name="Outline", + InitCommand=cmd(zoomto,life_meter_width+life_meter_outline,life_meter_height+life_meter_outline), + OnCommand=cmd() + }, + -- Background + Def.Quad { + Name="Background", + InitCommand=cmd(zoomto,life_meter_width,life_meter_height), + OnCommand=cmd(diffuse,color("#32373E");), + AliveCommand=cmd(stopeffect;diffuse,color("#32373E");), + DangerCommand=cmd(diffuseshift;effectcolor2,ColorMidTone(Color.Red);effectcolor1,ColorDarkTone(Color.Red)), + DeadCommand=cmd(stopeffect;diffuse,color("#000000");), + }, + Def.Quad { + Name="Fill", + InitCommand=cmd(x,-life_meter_width/2;zoomto,life_meter_width,life_meter_height;horizalign,left), + OnCommand=cmd(diffuse,PlayerColor(pn);), + -- + HotCommand=cmd(diffuse,color("#FFB45E");glowshift;effectclock,'beat'), + AliveCommand=cmd(diffuse,PlayerColor(pn);stopeffect), + DangerCommand=cmd(diffuse,Color.Red;diffuseshift;effectclock,'beat';effectcolor1,Color.Red;effectcolor2,color("#FF797C");), + DeadCommand=cmd(diffuse,Color.Red;stopeffect) + }, + MakeSeperators(), + Def.Quad { + Name="Tip", + InitCommand=cmd(basezoomx,life_meter_tip_width;basezoomy,life_meter_height), + -- + OnCommand=cmd(diffuse,ColorLightTone(PlayerColor(pn));), + -- + HotCommand=cmd(diffuse,color("#FFED31");glowshift;effectclock,'beat'), + AliveCommand=cmd(diffuse,ColorLightTone(PlayerColor(pn));stopeffect), + DangerCommand=cmd(diffuse,Color.Red;diffuseshift;effectclock,'beat';effectcolor1,color("#000000");effectcolor2,Color.Red;), + DeadCommand=cmd(diffuse,Color.Red;stopeffect) + } +} + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_battery.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_battery.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_battery.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_battery.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,86 @@ +local pn = ... +local life_meter_width = 400 +local life_meter_height = 20 +local life_meter_outline = 0 + +local function CreateSeperators() + local t = Def.ActorFrame {} + + for i = 1, 50 do + t[#t+1] = Def.ActorFrame { + SetCommand=function(self) + local life_meter = SCREENMAN:GetTopScreen():GetLifeMeter(pn) + local num_items = life_meter:GetTotalLives() + + local function position(index) + return scale(index/num_items,0,1,-life_meter_width/2,life_meter_width/2) + end + + self:x(position(i)) + self:visible(i < num_items) + end, + OnCommand=cmd(playcommand,"Set"), + -- + Def.Quad { + InitCommand=cmd(zoomto,2,life_meter_height), + OnCommand=cmd(diffuse,Color.Black) + } + } + end + + return t +end + +local t = Def.ActorFrame {} + +t[#t+1] = Def.ActorFrame { + HealthStateChangedMessageCommand=function(self,param) + local c = self:GetChildren() + + if param.PlayerNumber == pn then + if param.HealthState ~= param.OldHealthState then + local state_name = ToEnumShortString(param.HealthState) + self:playcommand(state_name) + end + end + end, + LifeChangedMessageCommand=function(self,param) + local c = self:GetChildren() + if param.Player == pn then + local life = param.LifeMeter:GetLife() + c.Fill:zoomtowidth( life_meter_width * life ) + end + end, + -- Outline + Def.Quad { + Name="Outline", + InitCommand=cmd(zoomto,life_meter_width+life_meter_outline,life_meter_height+life_meter_outline), + OnCommand=cmd() + }, + -- Background + Def.Quad { + Name="Background", + InitCommand=cmd(zoomto,life_meter_width,life_meter_height), + OnCommand=cmd(diffuse,color("#32373E");), + AliveCommand=cmd(stopeffect;diffuse,color("#32373E");), + DangerCommand=cmd(diffuseshift;effectcolor2,ColorMidTone(Color.Red);effectcolor1,ColorDarkTone(Color.Red)), + DeadCommand=cmd(stopeffect;diffuse,color("#000000");), + }, + Def.Quad { + Name="Fill", + InitCommand=cmd(x,-life_meter_width/2;zoomto,life_meter_width,life_meter_height;horizalign,left), + OnCommand=cmd(diffuse,PlayerColor(pn)), + -- + HotCommand=cmd(glowshift;effectclock,'beat'), + AliveCommand=cmd(stopeffect), + DangerCommand=cmd(diffuseshift;effectclock,'beat';effectcolor1,PlayerColor(pn);effectcolor2,PlayerDarkColor(pn)), + DeadCommand=cmd(stopeffect) + }, + LoadFont("Common Normal") .. { + Text="", + OnCommand=cmd(diffuse,Color.Black) + }, + CreateSeperators() +} + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_Time.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_Time.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_Time.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay lifebar_Time.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenGameplay lifebar_bar \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay oni gameover.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay oni gameover.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay oni gameover.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay oni gameover.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay progress.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay progress.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay ScoreFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay ScoreFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay SongTitle.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay SongTitle.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay SongTitle.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay SongTitle.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -return LoadFont("ScreenGameplay","SongTitle") .. { - CurrentSongChangedMessageCommand=cmd(playcommand,"Refresh"); - RefreshCommand=function(self) - local vSong = GAMESTATE:GetCurrentSong(); - local vCourse = GAMESTATE:GetCurrentCourse(); - local sText = "" - if vSong then - sText = vSong:GetDisplayArtist() .. " - " .. vSong:GetDisplayFullTitle() - end - if vCourse then - sText = vCourse:GetDisplayFullTitle() .. " - " .. vSong:GetDisplayFullTitle(); - end - self:settext( sText ); - self:playcommand( "On" ); - end; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay StageDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay StageDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenGameplay StageDisplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenGameplay StageDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -3,9 +3,21 @@ local playMode = GAMESTATE:GetPlayMode(); local t = Def.ActorFrame { - LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",64,16); - LoadFont("Common Normal") .. { - InitCommand=cmd(y,-1;shadowlength,1;playcommand,"Set"); + LoadActor( THEME:GetPathG("ScreenGameplay", "progress")) .. { + OnCommand=cmd(playcommand,"Set"); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTraiP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTraiP2ChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + self:diffuse(ColorMidTone(StageToColor(curStage))) + end + }; + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(y,-1;x,-143;uppercase,true;horizalign,center;maxwidth,170;playcommand,"Set"); CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); @@ -34,11 +46,10 @@ end end end; - self:zoom(0.675); + self:zoom(1); self:diffuse(StageToColor(curStage)); self:diffusetopedge(ColorLightTone(StageToColor(curStage))); end; }; }; -return t - +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -4,12 +4,12 @@ }; t[#t+1] = LoadActor("frame") .. { - InitCommand=cmd(diffusealpha,0.25); + InitCommand=cmd(diffusealpha,0.8); }; t[#t+1] = Def.TextBanner { - InitCommand=cmd(x,-292;Load,"TextBannerHighScores"); + InitCommand=cmd(x,-230;Load,"TextBannerHighScores"); SetCommand=function(self, params) if params.Song then self:SetFromSong( params.Song ); @@ -32,7 +32,7 @@ t[#t+1] = Scores; for idx=1,NumColumns do - local x_pos = -60 + 80 * (idx-1); + local x_pos = 35 + 83 * (idx-1); Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Name") .. { Name = idx .. "Name"; InitCommand=cmd(x,x_pos;y,8;shadowlength,1;maxwidth,68); @@ -43,10 +43,6 @@ InitCommand=cmd(x,x_pos;y,-9;shadowlength,1;maxwidth,68); OnCommand=cmd(zoom,0.75); }; - Scores[#Scores+1] = LoadActor("filled") .. { - Name = idx .. "Filled"; - InitCommand=cmd(x,x_pos;); - }; Scores[#Scores+1] = LoadActor("empty") .. { Name = idx .. "Empty"; InitCommand=cmd(x,x_pos;); @@ -76,12 +72,10 @@ local name = c[idx .. "Name"]; local score = c[idx .. "Score"]; - local filled = c[idx .. "Filled"]; local empty = c[idx .. "Empty"]; name:visible( true ); score:visible( true ); - filled:visible( true ); empty:visible( false ); if hs and #hs > 0 then Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/empty (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/empty (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/empty.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/empty.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/filled (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/filled (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/frame (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/frame (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHighScores ScrollerItem/frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs Icon.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs Icon.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs Icon.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs Icon.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ -local gc = Var "GameCommand"; -local Name = gc:GetName(); -local Index = gc:GetIndex(); - -local previewWidth = SCREEN_CENTER_X*0.825; -local previewHeight = SCREEN_CENTER_Y; - -local t = Def.ActorFrame{ - Name="PreviewFrame"; - InitCommand=cmd(x,SCREEN_CENTER_X*1.5;y,SCREEN_CENTER_Y*0.85); - OffCommand=cmd(bouncebegin,0.25;addx,SCREEN_CENTER_X); -}; - -local function TitleMenuItem(text,focused) - if focused == nil then focused = false; end; - local textColor = focused and color("#FFFFFF") or color("#888888"); - return LoadFont("Common Normal")..{ - Text=text; - InitCommand=cmd(zoom,0.45;strokecolor,Color("Outline");diffuse,textColor); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; -end; - -local previews = { - WhereToFind = Def.ActorFrame{ - LoadActor(THEME:GetPathG("_howto","find"))..{ - InitCommand=cmd(zoomto,previewWidth,previewHeight); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - }; - HowToInstall = Def.ActorFrame{ - LoadActor(THEME:GetPathG("_howto","install"))..{ - InitCommand=cmd(zoomto,previewWidth,previewHeight); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - }; - AdditionalFolders = Def.ActorFrame{ - Def.Quad{ - InitCommand=cmd(zoomto,previewWidth,previewHeight); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - Def.Quad{ - InitCommand=cmd(y,-previewHeight*0.45;diffuse,color("#E0F0F0");zoomto,previewWidth,previewHeight*0.1;); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - LoadFont("Common normal")..{ - InitCommand=cmd(x,-(SCREEN_CENTER_X*0.4);y,-(SCREEN_CENTER_Y*0.475);zoom,0.625;halign,0;valign,0;diffuse,color("#000000")); - BeginCommand=function(self) - local text = "Preferences.ini"; - self:settext(text); - end; - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - LoadFont("Common normal")..{ - Text="[Options]\nAdditionalCourseFolders=\nAdditionalFolders=\nAdditionalSongFolders="; - InitCommand=cmd(x,-(SCREEN_CENTER_X*0.4);y,-(SCREEN_CENTER_Y*0.35);zoom,0.75;halign,0;valign,0;diffuse,color("#000000")); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - }; - ReloadSongs = Def.ActorFrame{ - LoadActor(THEME:GetPathB("ScreenTitleMenu","background/_bg"))..{ - InitCommand=cmd(zoomto,previewWidth,previewHeight;halign,0.5;valign,0.5); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - LoadFont("Common normal")..{ - InitCommand=cmd(zoom,0.4;maxwidth,(previewWidth*1.6)-8); - BeginCommand=function(self) - local song = SONGMAN:GetRandomSong(); - self:settext("Loading songs...\n"..song:GetGroupName().."\n"..song:GetDisplayFullTitle()); - end; - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - }; - Exit = Def.ActorFrame{ - LoadActor(THEME:GetPathB("ScreenTitleMenu","background/_bg"))..{ - InitCommand=cmd(zoomto,previewWidth,previewHeight;halign,0.5;valign,0.5); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - LoadActor(THEME:GetPathG("ScreenTitleMenu","logo"))..{ - InitCommand=cmd(y,-28;zoom,0.35;propagate,true); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); - }; - TitleMenuItem("Game Start",true)..{ - InitCommand=cmd(y,20); - }; - TitleMenuItem("Options")..{ - InitCommand=cmd(y,32); - }; - TitleMenuItem("Edit/Share")..{ - InitCommand=cmd(y,44); - }; - TitleMenuItem("Exit")..{ - InitCommand=cmd(y,56); - }; - }; -}; - -t[#t+1] = previews[Name]; - -t[#t+1] = LoadFont("Common normal")..{ - Name="Explanation"; - --Text="The quick brown fox jumps over the lazy dog ".. Index .." times."; - Text=Screen.String("Explanation-"..Name); - -- was x,-(SCREEN_CENTER_X*0.4);y,SCREEN_CENTER_Y*0.525; - InitCommand=cmd(x,-(SCREEN_CENTER_X*0.8);y,SCREEN_CENTER_Y*0.8;halign,0;valign,0;zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH*0.55)*1.75;NoStroke;shadowlength,1); - GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); -}; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs scroll.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs scroll.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs scroll.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenHowToInstallSongs scroll.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -local gc = Var("GameCommand"); -local squareSize = 8; -- was 18 - -return Def.ActorFrame { - Def.Quad{ - InitCommand=cmd(x,-12;zoom,squareSize;rotationz,45;diffuse,color("#222222")); - GainFocusCommand=cmd(stoptweening;accelerate,0.25;zoom,squareSize;rotationz,45;); - LoseFocusCommand=cmd(stoptweening;decelerate,0.25;zoom,0;rotationz,360+45); - }; - LoadFont("Common Normal") .. { - Text=gc:GetText(); - InitCommand=cmd(halign,0;zoom,0.625); - GainFocusCommand=cmd(stoptweening;decelerate,0.25;diffuse,color("1,1,1,1")); - LoseFocusCommand=cmd(stoptweening;accelerate,0.25;diffuse,color("0.5,0.5,0.5,1")); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenMapControllers exit.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenMapControllers exit.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenMapControllers exit.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenMapControllers exit.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -return LoadFont("Common Normal") .. { - Text=ScreenString("Exit"); - InitCommand=cmd(x,SCREEN_CENTER_X;zoom,0.75;shadowlength,0;diffuse,color("#880000");NoStroke); - OnCommand=cmd(diffusealpha,0;decelerate,0.5;diffusealpha,1); - OffCommand=cmd(stoptweening;accelerate,0.3;diffusealpha,0;queuecommand,"Hide"); - HideCommand=cmd(visible,false); - - GainFocusCommand=cmd(diffuseshift;effectcolor1,color("#FF2222");effectcolor2,color("#880000");); - LoseFocusCommand=cmd(stopeffect); -}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenMiniMenu page.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenMiniMenu page.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenMiniMenu page.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenMiniMenu page.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenMiniMenu page.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenMiniMenu page.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectBase ChatOutputBox.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectBase ChatOutputBox.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectBase ChatOutputBox.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectBase ChatOutputBox.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -return Def.ActorFrame{ - Def.Quad{ - InitCommand=cmd(zoomto,THEME:GetMetric(Var "LoadingScreen","ChatOutputBoxWidth"),THEME:GetMetric(Var "LoadingScreen","ChatOutputBoxHeight");diffuse,color("0,0,0,0.25")); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic BPMLabel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic BPMLabel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic BPMLabel.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic BPMLabel.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenSelectMusic BPMLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenSelectMusic DifficultyDisplay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic PaneDisplayTextP1 \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic PaneDisplayTextP2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic PaneDisplayTextP2 \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic SongTime.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic SongTime.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenNetSelectMusic SongTime.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenNetSelectMusic SongTime.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic SongTime \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions disqualify.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions disqualify.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions disqualify.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions disqualify.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -return LoadFont("Common Normal") .. { - Text=ScreenString("Disqualified"); -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions halfpage (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions halfpage (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -return LoadActor(THEME:GetPathG("OptionRowExit","frame")) .. { -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions LineHighlight P2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ScreenOptions LineHighlight P1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions line highlight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions line highlight.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions more.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions more.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions more.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions more.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenOptions page.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenOptions page.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenPlayerOptions PlayerNameplate.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenPlayerOptions PlayerNameplate.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenPlayerOptions PlayerNameplate.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenPlayerOptions PlayerNameplate.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,7 @@ local PlayerNumber = ... assert( PlayerNumber ) -local bpm_text_zoom = 0.875 +local bpm_text_zoom = 0.6 local song_bpms= {} local bpm_text= "??? - ???" @@ -22,38 +22,37 @@ end local t = Def.ActorFrame { - LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 192-8) .. { - OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.875); + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded light", 250-16) .. { + OnCommand=cmd(diffuse,ColorLightTone(PlayerColor(PlayerNumber));diffusealpha,0.5); }; - LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 192-8) .. { - OnCommand=cmd(diffusealpha,0.125); - }; - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Text=ToEnumShortString(PlayerNumber); Name="PlayerShortName", - InitCommand=cmd(x,-104;maxwidth,32), - OnCommand=cmd(diffuse,PlayerColor(PlayerNumber);shadowlength,1) + InitCommand=cmd(x,-127;maxwidth,32;zoom,0.75;), + OnCommand=cmd(diffuse,ColorDarkTone(PlayerColor(PlayerNumber));) }, - LoadFont("Common Normal") .. { + LoadFont("_overpass 36px") .. { Text=bpm_text; Name="BPMRangeOld", - InitCommand=cmd(x,-40;maxwidth,88/bpm_text_zoom), - OnCommand=cmd(shadowlength,1;zoom,bpm_text_zoom) + InitCommand=cmd(x,-60;maxwidth,88/bpm_text_zoom), + OnCommand=cmd(zoom,bpm_text_zoom;diffuse,ColorDarkTone(PlayerColor(PlayerNumber));) }, LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { Name="Seperator", - InitCommand=cmd(x,14) + InitCommand=cmd(x,4); + OnCommand=cmd(diffuse,ColorDarkTone(PlayerColor(PlayerNumber));) }, - LoadFont("Common Normal") .. { + LoadFont("_overpass 36px") .. { + Text="100 - 200000"; Text="100 - 200000"; Name="BPMRangeNew", InitCommand= function(self) - self:x(68):maxwidth(88/bpm_text_zoom):shadowlength(1):zoom(bpm_text_zoom) + self:x(68):maxwidth(88/bpm_text_zoom):zoom(bpm_text_zoom) local speed, mode= GetSpeedModeAndValueFromPoptions(PlayerNumber) self:playcommand("SpeedChoiceChanged", {pn= PlayerNumber, mode= mode, speed= speed}) end, - BPMWillNotChangeCommand=cmd(stopeffect), - BPMWillChangeCommand=cmd(diffuseshift;effectcolor1,Color.White;effectcolor2,Color.Orange), + BPMWillNotChangeCommand=cmd(stopeffect;diffuse,ColorDarkTone(PlayerColor(PlayerNumber));), + BPMWillChangeCommand=cmd(diffuseshift;effectcolor1,Color.Black;effectcolor2,ColorMidTone(PlayerColor(PlayerNumber));), SpeedChoiceChangedMessageCommand= function(self, param) if param.pn ~= PlayerNumber then return end local text= "" @@ -91,4 +90,4 @@ } } -return t \ No newline at end of file +return t Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/_base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/_base.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenQuickSetupOverview icon/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -local gc = Var "GameCommand"; -local c = {}; - c.X = THEME:GetMetric( Var "LoadingScreen", "Icon" .. gc:GetName() .. "X"); - c.Y = THEME:GetMetric( Var "LoadingScreen", "Icon" .. gc:GetName() .. "Y"); -local t = Def.ActorFrame {}; -t[#t+1] = Def.ActorFrame { - Condition=( gc:GetName() ~= "Back" ); - InitCommand=cmd(x,c.X;y,c.Y); - GainFocusCommand=cmd(finishtweening;zoom,1.125;bounceend,0.125;zoom,1); - LoseFocusCommand=cmd(stoptweening;linear,0.125;zoom,0.875); - LoadActor("_base") .. { - GainFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("Orange");diffusetopedge,Color("Yellow")); - LoseFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("White")); - }; - LoadFont("Common Normal") .. { - Text=gc:GetName(); - InitCommand=cmd(strokecolor,Color("White")); - OnCommand=cmd(diffuse,Color("Black")); - }; -}; -t[#t+1] = Def.ActorFrame { - Condition=( gc:GetName() == "Back" ); - InitCommand=cmd(x,c.X;y,c.Y); - GainFocusCommand=cmd(finishtweening;zoom,1.125;bounceend,0.125;zoom,1); - LoseFocusCommand=cmd(stoptweening;linear,0.125;zoom,0.875); - LoadActor("_base") .. { - GainFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("Red")); - LoseFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("White")); - }; - LoadFont("Common Normal") .. { - Text=gc:GetName(); - InitCommand=cmd(strokecolor,Color("White")); - OnCommand=cmd(diffuse,Color("Black")); - }; -}; - -return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking banner frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking banner frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking banner frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking banner frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking bullets 1x5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking bullets 1x5.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty easy.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty easy.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty easy.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty easy.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty hard.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty hard.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty hard.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty hard.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty medium.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty medium.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty medium.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking CourseDifficulty medium.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking course frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking course frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking course frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking course frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty challenge.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty challenge.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty challenge.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty challenge.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty easy.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty easy.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty easy.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty easy.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty hard.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty hard.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty hard.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty hard.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty medium.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty medium.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking Difficulty medium.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking Difficulty medium.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking song frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking song frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking song frame.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking song frame.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking type dance-double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking type dance-double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenRanking type dance-single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenRanking type dance-single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic BannerFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic BannerFrame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic banner overlay.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic banner overlay.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic BPMLabel.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic BPMLabel.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic BPMLabel.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic BPMLabel.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -return Def.ActorFrame { - LoadFont("Common Normal") .. { - Text="BPM"; - InitCommand=cmd(horizalign,right;zoom,0.75;strokecolor,Color("Outline")); - }; -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseContentsList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseContentsList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseContentsList.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseContentsList.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,42 +1,55 @@ -local transform = function(self,offsetFromCenter,itemIndex,numitems) - self:y( offsetFromCenter * 44 ); +-- Man, I hate this thing. I tried to do what I could with it, though. + +-- I'm not really sure why this needs to be separate from the main CourseContentsList creation... +local transform = function(self,offsetFromCenter,itemIndex,numItems) + self:y( offsetFromCenter * 62 ) + -- First condition is for making sure the items disappear before going past the banner. + -- Second condition is to make their transition from the bottom of the screen look a little smoother. + -- The exact numbers will likely need changing if "NumItemsToDraw" is changed. + if offsetFromCenter < -1 or offsetFromCenter > 5 then + self:diffusealpha(0) + -- And this is just so the objects don't look quite as "THERE" underneath the info pane and footer. + elseif offsetFromCenter < 0 or offsetFromCenter > 4 then + self:diffusealpha(0.6) + end end + return Def.CourseContentsList { - MaxSongs = 10; - NumItemsToDraw = 8; - ShowCommand=cmd(bouncebegin,0.3;zoomy,1); - HideCommand=cmd(linear,0.3;zoomy,0); + MaxSongs = 999, + NumItemsToDraw = 12, + ShowCommand=cmd(bouncebegin,0.3;zoomy,1), + HideCommand=cmd(linear,0.3;zoomy,0), SetCommand=function(self) - self:SetFromGameState(); - self:SetCurrentAndDestinationItem(0); - self:SetPauseCountdownSeconds(1); - self:SetSecondsPauseBetweenItems( 0.25 ); - self:SetTransformFromFunction(transform); + self:SetFromGameState() + self:SetCurrentAndDestinationItem(0) + self:SetPauseCountdownSeconds(1) + self:SetSecondsPauseBetweenItems( 0.25 ) + self:SetTransformFromFunction(transform) -- - self:SetDestinationItem( math.max(0,self:GetNumItems() - 4) ); - self:SetLoop(false); - self:SetMask(0,0); - end; - CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); - CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + self:SetDestinationItem( math.max(0,self:GetNumItems() - 5) ) + self:SetLoop(false) + self:SetMask(0,0) + end, + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"), + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"), Display = Def.ActorFrame { - InitCommand=cmd(setsize,270,44); + InitCommand=cmd(setsize,290,64), LoadActor(THEME:GetPathG("CourseEntryDisplay","bar")) .. { SetSongCommand=function(self, params) if params.Difficulty then - self:diffuse( CustomDifficultyToColor(params.Difficulty) ); + self:diffuse(ColorLightTone(CustomDifficultyToColor(params.Difficulty))); else self:diffuse( color("#FFFFFF") ); end - - (cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;linear,0.125;diffusealpha,1;linear,0.05;glow,color("1,1,1,0.5");decelerate,0.1;glow,color("1,1,1,0")))(self); - end; - }; + -- These tweens were actually messing up the visibility of the scroller objects, so... + --(cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;smooth,0.2;diffusealpha,1))(self); + end + }, Def.TextBanner { - InitCommand=cmd(x,-128;y,1;Load,"TextBanner";SetFromString,"", "", "", "", "", ""); + InitCommand=cmd(x,-10;y,-1;Load,"TextBannerCourse";SetFromString,"", "", "", "", "", ""), SetSongCommand=function(self, params) if params.Song then if GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() == "Abomination" then @@ -55,7 +68,8 @@ else self:SetFromSong( params.Song ); end; - self:diffuse( CustomDifficultyToColor(params.Difficulty) ); + self:diffuse(color("#000000")); + self:diffusealpha(0.8); -- self:glow("1,1,1,0.5"); else self:SetFromString( "??????????", "??????????", "", "", "", "" ); @@ -63,19 +77,19 @@ -- self:glow("1,1,1,0"); end - (cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoomy,1.1;linear,0.05;zoomx,1.1;decelerate,0.1;zoom,1))(self); - end; - }; + --(cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;smooth,0.2;diffusealpha,1;))(self); + end + }, LoadFont("CourseEntryDisplay","difficulty") .. { - Text="0"; - InitCommand=cmd(x,114;y,0;zoom,0.75;shadowlength,1); + Text="0", + InitCommand=cmd(x,210;y,0;zoom,0.75), SetSongCommand=function(self, params) if params.PlayerNumber ~= GAMESTATE:GetMasterPlayerNumber() then return end self:settext( params.Meter ); - self:diffuse( CustomDifficultyToColor(params.Difficulty) ); - (cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoomy,1.1;linear,0.05;zoomx,1.1;decelerate,0.1;zoom,1))(self); - end; - }; - }; -}; \ No newline at end of file + self:diffuse(ColorDarkTone(CustomDifficultyToColor(params.Difficulty) )); + --(cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoom,1.1;linear,0.05;zoom,1))(self); + end + }, + } +} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseType.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic CourseType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,2 +1,2 @@ -return LoadFont("Common Normal") .. { +return LoadFont("Common Condensed") .. { }; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_background.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Beginner.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Beginner.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Challenge.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Challenge.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Edit.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Edit.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Medium.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Medium.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -local t = Def.ActorFrame {}; -local function GetEdits( in_Song, in_StepsType ) - if in_Song then - local sSong = in_Song; - local sCurrentStyle = GAMESTATE:GetCurrentStyle(); - local sStepsType = in_StepsType; - local iNumEdits = 0; - if sSong:HasEdits( sStepsType ) then - local tAllSteps = sSong:GetAllSteps(); - for i,Step in pairs(tAllSteps) do - if Step:IsAnEdit() and Step:GetStepsType() == sStepsType then - iNumEdits = iNumEdits + 1; - end - end - return iNumEdits; - else - return iNumEdits; - end - else - return 0; - end -end; -t[#t+1] = Def.ActorFrame { - LoadActor("_Background"); -}; --- -for idx,diff in pairs(Difficulty) do - local sDifficulty = ToEnumShortString( diff ); - local tLocation = { - Beginner = 32*-1.25, - Easy = 32*-0.25, - Medium = 32*0.75, - Hard = 32*1.75, - Challenge = 32*2.75, - Edit = 32*4.75, - }; - t[#t+1] = Def.ActorFrame { - SetCommand=function(self) - local c = self:GetChildren(); --- local Bar = self:GetChild("Bar"); --- local Meter = self:GetChild("Meter" - local song = GAMESTATE:GetCurrentSong() - local bHasStepsTypeAndDifficulty = false; - local meter = ""; - if song then - local st = GAMESTATE:GetCurrentStyle():GetStepsType() - bHasStepsTypeAndDifficulty = song:HasStepsTypeAndDifficulty( st, diff ); - local steps = song:GetOneSteps( st, diff ); - if steps then - meter = steps:GetMeter(); - append = "" - -- - if diff == 'Difficulty_Edit' then - meter = GetEdits( song, st ); - append = ( GetEdits( song, st ) > 1 ) and "Edits" or "Edit" - meter = meter .. " " .. append - end - end - end - c.Meter:settext( meter ); - self:playcommand( bHasStepsTypeAndDifficulty and "Show" or "Hide" ); - end; - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - -- - LoadActor("_barpeice " .. sDifficulty ) .. { - Name="BarPeice"; - ShowCommand=cmd(stoptweening;linear,0.1;diffuse,CustomDifficultyToColor( sDifficulty )); - HideCommand=cmd(stoptweening;decelerate,0.05;diffuse,CustomDifficultyToDarkColor( sDifficulty )); - InitCommand=cmd(diffuse,CustomDifficultyToColor( sDifficulty )); - }; - LoadFont("StepsDisplay","Meter") .. { - Name="Meter"; - Text=(sDifficulty == "Edit") and "0 Edits" or "0"; - ShowCommand=cmd(stoptweening;linear,0.1;diffuse,CustomDifficultyToColor( sDifficulty )); - HideCommand=cmd(stoptweening;decelerate,0.05;diffuse,CustomDifficultyToDarkColor( sDifficulty )); - InitCommand=cmd(x,-64-8+tLocation[sDifficulty];shadowlength,1;zoom,0.75;diffuse,CustomDifficultyToColor( sDifficulty )); - }; - }; -end -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyList.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic DifficultyList.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -4,26 +4,23 @@ if song then -- self:setaux(0); self:finishtweening(); - self:playcommand("TweenOn"); + self:decelerate(0.3):zoomx(1):diffusealpha(1) elseif not song and self:GetZoomX() == 1 then -- self:setaux(1); self:finishtweening(); - self:playcommand("TweenOff"); + self:decelerate(0.3):zoomx(0):diffusealpha(0) end; end; - Def.Quad { - InitCommand=cmd(y,-14;zoomto,164,2;fadeleft,8/164;faderight,8/164); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;linear,0.35;diffusealpha,0.5); - }; - Def.Quad { - InitCommand=cmd(y,24*(5)-10;zoomto,164,2;fadeleft,8/164;faderight,8/164); - OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;linear,0.35;diffusealpha,0.5); - }; Def.StepsDisplayList { Name="StepsDisplayListRow"; - + OnCommand=function(self) + self:diffusealpha(0):zoomx(0):decelerate(0.4):zoomx(1):diffusealpha(1) + end; + OffCommand=function(self) + self:decelerate(0.3):zoomx(0):diffusealpha(0) + end; CursorP1 = Def.ActorFrame { - InitCommand=cmd(x,-128+16;player,PLAYER_1); + InitCommand=cmd(x,-170;player,PLAYER_1); PlayerJoinedMessageCommand=function(self, params) if params.Player == PLAYER_1 then self:visible(true); @@ -37,20 +34,16 @@ end; end; LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. { - InitCommand=cmd(diffuse,PlayerColor(PLAYER_1);x,8;zoom,0.75); + InitCommand=cmd(diffuse,ColorLightTone(PlayerColor(PLAYER_1));x,8;zoom,0.75); }; - LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { - InitCommand=cmd(x,20;diffuse,PlayerColor(PLAYER_1)); - OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';); - }; - LoadFont("Common Normal") .. { + LoadFont("_roboto condensed Bold 48px") .. { Text="P1"; - InitCommand=cmd(x,2;diffuse,PlayerColor(PLAYER_1);shadowlength,1); - OnCommand=cmd(zoom,0.75); + InitCommand=cmd(horizalign,center;x,8;diffuse,ColorDarkTone(PlayerColor(PLAYER_1));); + OnCommand=cmd(zoom,0.5); }; }; CursorP2 = Def.ActorFrame { - InitCommand=cmd(x,128-16;player,PLAYER_2); + InitCommand=cmd(x,170;player,PLAYER_2); PlayerJoinedMessageCommand=function(self, params) if params.Player == PLAYER_2 then self:visible(true); @@ -64,16 +57,12 @@ end; end; LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. { - InitCommand=cmd(diffuse,PlayerColor(PLAYER_2);x,-8;zoom,0.75;zoomx,-0.75;); - }; - LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { - InitCommand=cmd(x,-20;diffuse,PlayerColor(PLAYER_2);zoomx,-1); - OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';); + InitCommand=cmd(diffuse,ColorLightTone(PlayerColor(PLAYER_2));x,-8;zoom,0.75;zoomx,-0.75;); }; - LoadFont("Common Normal") .. { + LoadFont("_roboto condensed Bold 48px") .. { Text="P2"; - InitCommand=cmd(x,-2;diffuse,PlayerColor(PLAYER_2);shadowlength,1); - OnCommand=cmd(zoom,0.75); + InitCommand=cmd(horizalign,center;x,-8;diffuse,ColorDarkTone(PlayerColor(PLAYER_2));); + OnCommand=cmd(zoom,0.5); }; }; CursorP1Frame = Def.Actor{ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic fallback cdtitle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic fallback cdtitle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic fallback cdtitle.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic fallback cdtitle.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic info pane.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic info pane.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic NewSong.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic NewSong.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic NewSong.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic NewSong.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -return LoadFont("Common Normal") .. { - Text=THEME:GetString("ScreenSelectMusic","NEW!"); -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic NumCourseSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic NumCourseSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic NumCourseSongs.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic NumCourseSongs.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -return LoadFont("Common Normal") .. { -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic pane background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic pane background.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic PaneDisplayFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic PaneDisplayFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p1.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p1.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectmusic score frame p2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ --- segment display: tells the player about various gimmicks used in the song timing. -local iconPath = "_timingicons" -local leftColX = -144 -local rightColX = -leftColX - -local showCmd = cmd(stoptweening;accelerate,0.1;diffusealpha,1) -local hideCmd = cmd(stoptweening;accelerate,0.1;diffusealpha,0) - -local SegmentTypes = { - Stops = { Frame = 0, xPos = leftColX, yPos = 0 }, - Warps = { Frame = 2, xPos = leftColX, yPos = -16 }, - Delays = { Frame = 1, xPos = leftColX, yPos = -32 }, - Attacks = { Frame = 6, xPos = leftColX, yPos = 16 }, - Scrolls = { Frame = 3, xPos = rightColX, yPos = -32 }, - Speeds = { Frame = 4, xPos = rightColX, yPos = -17 }, - Fakes = { Frame = 5, xPos = rightColX, yPos = -2 }, -}; - -local t = Def.ActorFrame{ - BeginCommand=cmd(playcommand,"SetIcons";playcommand,"SetAttacksIconMessage"); - --OffCommand=cmd( RunCommandsOnChildren,cmd(playcommand,"Hide") ); - - SetIconsCommand=function(self) - local stops = self:GetChild("StopsIcon") - local delays = self:GetChild("DelaysIcon") - local warps = self:GetChild("WarpsIcon") - local scrolls = self:GetChild("ScrollsIcon") - local speeds = self:GetChild("SpeedsIcon") - local fakes = self:GetChild("FakesIcon") - - -- hax - MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = GAMESTATE:GetMasterPlayerNumber()}) - - local song = GAMESTATE:GetCurrentSong() - if song then - local timing = song:GetTimingData() - - if timing:HasWarps() then warps:playcommand("Show") - else warps:playcommand("Hide") - end - - if timing:HasStops() then stops:playcommand("Show") - else stops:playcommand("Hide") - end - - if timing:HasDelays() then delays:playcommand("Show") - else delays:playcommand("Hide") - end - - if timing:HasScrollChanges() then scrolls:playcommand("Show") - else scrolls:playcommand("Hide") - end - - if timing:HasSpeedChanges() then speeds:playcommand("Show") - else speeds:playcommand("Hide") - end - - if timing:HasFakes() then fakes:playcommand("Show") - else fakes:playcommand("Hide") - end - else - warps:playcommand("Hide") - stops:playcommand("Hide") - delays:playcommand("Hide") - scrolls:playcommand("Hide") - speeds:playcommand("Hide") - fakes:playcommand("Hide") - end - end; - SetAttacksIconMessageCommand=function(self,param) - local attacks = self:GetChild("AttacksIcon") - local song = GAMESTATE:GetCurrentSong() - if song then - local steps = GAMESTATE:GetCurrentSteps(param.Player) - if steps then - local hasAttacks = steps:HasAttacks() - attacks:playcommand(hasAttacks and "Show" or "Hide") - else - attacks:playcommand("Hide") - end - else - attacks:playcommand("Hide") - end - end; - - LoadActor(iconPath)..{ - Name="WarpsIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Warps.xPos;y,SegmentTypes.Warps.yPos;setstate,SegmentTypes.Warps.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="StopsIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Stops.xPos;y,SegmentTypes.Stops.yPos;setstate,SegmentTypes.Stops.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="DelaysIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Delays.xPos;y,SegmentTypes.Delays.yPos;setstate,SegmentTypes.Delays.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="AttacksIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Attacks.xPos;y,SegmentTypes.Attacks.yPos;setstate,SegmentTypes.Attacks.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="ScrollsIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Scrolls.xPos;y,SegmentTypes.Scrolls.yPos;setstate,SegmentTypes.Scrolls.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="SpeedsIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Speeds.xPos;y,SegmentTypes.Speeds.yPos;setstate,SegmentTypes.Speeds.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - LoadActor(iconPath)..{ - Name="FakesIcon"; - InitCommand=cmd(animate,false;x,SegmentTypes.Fakes.xPos;y,SegmentTypes.Fakes.yPos;setstate,SegmentTypes.Fakes.Frame;diffusealpha,0); - ShowCommand=showCmd; - HideCommand=hideCmd; - }; - CurrentSongChangedMessageCommand=cmd(playcommand,"SetIcons";); - CurrentStepsP1ChangedMessageCommand=function(self) MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = PLAYER_1}) end; - CurrentStepsP2ChangedMessageCommand=function(self) MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = PLAYER_2}) end; -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/_timingicons 4x2 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SegmentDisplay/_timingicons 4x2 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsFrame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsFrame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsFrame.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsFrame.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -return Def.Quad { - InitCommand=cmd(zoomto,SCREEN_WIDTH,64); -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptions.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptions.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptions.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptions.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -return LoadFont("Common Normal") .. { -}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsText.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsText.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsText.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongOptionsText.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,2 +1,2 @@ -return LoadFont("Common Normal") .. { +return LoadFont("_noto sans 36px") .. { }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongTime.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongTime.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SongTime.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SongTime.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,2 +1,2 @@ -return LoadFont("Common Normal") .. { +return LoadFont("Common normal") .. { }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderFrame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderFrame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderFrame.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderFrame.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -return Def.ActorFrame { - LoadActor(THEME:GetPathG("_icon","Sort")) .. { - InitCommand=cmd(x,-60;shadowlength,1;); - }; -}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderText.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderText.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderText.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectMusic SortOrderText.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -return LoadFont("Common Normal") .. { -}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode BackgroundFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode BackgroundFrame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background base.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background effect.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_background effect.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_cutout.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_cutout.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,35 +1,44 @@ -local gc = Var("GameCommand"); +local gc = Var("GameCommand") -local string_name = gc:GetText() -local string_expl = THEME:GetString(Var "LoadingScreen", gc:GetName().."Explanation") -local icon_color = ModeIconColors[gc:GetName()]; +--local string_expl = THEME:GetString(Var "LoadingScreen", gc:GetName().."Explanation") +local icon_color = ModeIconColors[gc:GetName()] +local icon_size = 192 -local t = Def.ActorFrame {}; +local t = Def.ActorFrame {} t[#t+1] = Def.ActorFrame { - GainFocusCommand=cmd(stoptweening;bob;effectmagnitude,0,6,0;decelerate,0.05;zoom,1); - LoseFocusCommand=cmd(stoptweening;stopeffect;decelerate,0.1;zoom,0.6); - - LoadActor("_background base")..{ - InitCommand=cmd(diffuse,icon_color); - }; - LoadActor("_background effect"); - LoadActor("_gloss"); - LoadActor("_stroke"); - LoadActor("_cutout"); + OnCommand=cmd(diffusealpha,0;linear,0.4;diffusealpha,1), + GainFocusCommand=cmd(stoptweening;bob;effectmagnitude,0,0,3;decelerate,0.1;zoom,0.95), + LoseFocusCommand=cmd(stoptweening;stopeffect;decelerate,0.1;zoom,0.9), + OffCommand=cmd(decelerate,0.2;zoom,0.7;diffusealpha,0), + + LoadActor("_background base") .. { + LoseFocusCommand=cmd(diffuse,ColorMidTone(icon_color)), + GainFocusCommand=cmd(diffuse,icon_color) + }, + + LoadActor( gc:GetName() ) .. { + InitCommand=cmd(addy,-20;diffuse,Color.Black), + GainFocusCommand=cmd(diffusealpha,1.0), + LoseFocusCommand=cmd(diffusealpha,0.7) + }, -- todo: generate a better font for these. - LoadFont("Common Large")..{ - Text=string.upper(string_name); - InitCommand=cmd(y,-12;maxwidth,232); - OnCommand=cmd(diffuse,Color.Black;shadowlength,1;shadowcolor,color("#ffffff77");skewx,-0.125); - }; - LoadFont("Common Normal")..{ - Text=string.upper(string_expl); - InitCommand=cmd(y,27.5;maxwidth,232); - }; - LoadActor("_background base") .. { - DisabledCommand=cmd(diffuse,color("0,0,0,0.5")); - EnabledCommand=cmd(diffuse,color("1,1,1,0")); - }; -}; + LoadFont("_overpass 48px")..{ + Text=string.upper(gc:GetText()), + InitCommand=cmd(horizalign,center;y,icon_size/3.4;zoom,0.5;maxwidth,icon_size*1.3;diffusecolor,color("#000000")), + GainFocusCommand=cmd(diffusealpha,0.8), + LoseFocusCommand=cmd(diffusealpha,0.6) + }, + + -- Will this ever actually be used? + -- LoadFont("Common Normal")..{ + -- Text=string.upper(string_expl), + -- InitCommand=cmd(y,27.5;maxwidth,232) + -- }, + + LoadActor("_highlight") .. { + LoseFocusCommand=cmd(stopeffect;decelerate,0.1;diffuse,Color.Invisible), + GainFocusCommand=cmd(decelerate,0.2;diffuse,Color.White;diffuseshift;effectcolor1,Color.White;effectcolor2,color("#FFFFFF99")) + } +} return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Endless.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Endless.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_gloss.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_gloss.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_highlight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_highlight.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Nonstop.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Nonstop.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Oni.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Oni.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Rave.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/Rave.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_stroke.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode Icon/_stroke.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -local gc = Var "GameCommand"; -local colors = { - Easy = color("#00ff00"), - Normal = color("#feee00"), - Hard = color("#feee00"), - Rave = color("#db93ff"), - Nonstop = color("#00ffff"), - Oni = color("#d70b8c"), - Endless = color("#b4c3d2"), -}; - -local icon_color = ModeIconColors[gc:GetName()]; - -local string_name = gc:GetText(); -local string_expl = THEME:GetString(Var "LoadingScreen", gc:GetName() .. "Explanation"); -local t = Def.ActorFrame {}; - --- Background! -t[#t+1] = Def.ActorFrame { - LoadActor(THEME:GetPathG("ScreenSelectPlayMode","BackgroundFrame")) .. { - InitCommand=cmd(diffuse,Color("Black");diffusealpha,0.45); - GainFocusCommand=cmd(visible,true); - LoseFocusCommand=cmd(visible,false); - }; - LoadActor("_HighlightFrame") .. { - InitCommand=cmd(diffuse,icon_color;diffusealpha,0); - GainFocusCommand=cmd(finishtweening;diffuse,ColorLightTone(icon_color);linear,1;diffuse,icon_color); - LoseFocusCommand=cmd(finishtweening;diffusealpha,0); - OffFocusedCommand=cmd(finishtweening;glow,Color("White");decelerate,1;glow,Color("Invisible")); - }; -}; - --- Emblem Frame -t[#t+1] = Def.ActorFrame { - FOV=90; - InitCommand=cmd(x,-192;zoom,0.9); - -- Main Emblem - LoadActor( gc:GetName() ) .. { - InitCommand=cmd(diffusealpha,0;zoom,0.75); - GainFocusCommand=cmd(finishtweening;stopeffect;diffusealpha,1;zoom,1;glow,Color("White");decelerate,0.5;glow,Color("Invisible");pulse;effecttiming,0.75,0.125,0.125,0.75;effectmagnitude,0.95,1,1;); - LoseFocusCommand=cmd(finishtweening;stopeffect;smooth,0.4;diffusealpha,0;zoom,0.75;glow,Color("Invisible")); - OffFocusedCommand=cmd(finishtweening;stopeffect;glow,icon_color;decelerate,0.5;rotationy,360;glow,Color("Invisible")); - }; -}; - --- Text Frame -t[#t+1] = Def.ActorFrame { - InitCommand=cmd(x,-192/2;y,-10); - LoadFont("Common Large") .. { - Text=string_name; - InitCommand=cmd(y,-2;horizalign,left;diffuse,icon_color;strokecolor,ColorDarkTone(icon_color);shadowlength,2;diffusealpha,0;skewx,-0.125); - OnCommand=cmd(glowshift;textglowmode,'TextGlowMode_Inner'; - effectcolor1,color("1,1,1,0.5");effectcolor2,color("1,1,1,0") - ); - GainFocusCommand=cmd(finishtweening;x,-16;diffuse,ColorLightTone(icon_color);decelerate,0.45;diffusealpha,1;x,0;diffuse,icon_color); - LoseFocusCommand=cmd(finishtweening;x,0;accelerate,0.4;diffusealpha,0;x,32;diffusealpha,0); - }; - LoadFont("Common Normal") .. { - Text=string_expl; - InitCommand=cmd(horizalign,right;x,320;y,30;shadowlength,1;diffusealpha,0;skewx,-0.125;zoom,0.75); - GainFocusCommand=cmd(finishtweening;x,320+16;decelerate,0.45;diffusealpha,1;x,320); - LoseFocusCommand=cmd(finishtweening;x,320;accelerate,0.4;diffusealpha,0;x,320-32;diffusealpha,0); - }; - Def.Quad { - InitCommand=cmd(horizalign,left;y,20;zoomto,320,2;diffuse,icon_color;diffusealpha,0;fadeleft,0.35;faderight,0.35); - GainFocusCommand=cmd(stoptweening;linear,0.5;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;linear,0.1;diffusealpha,0); - }; -}; - -t.GainFocusCommand=cmd(finishtweening;visible,true;zoom,1.1;decelerate,0.25;zoom,1); -t.LoseFocusCommand=cmd(finishtweening;visible,false;zoom,1); - -return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Rave.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectPlayMode scroller/Rave.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectProfile CardBackground.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectProfile CardBackground.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectProfile CardFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectProfile CardFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectStyle Icon.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectStyle Icon.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenSelectStyle Icon.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenSelectStyle Icon.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -11,21 +11,17 @@ LoseFocusCommand=THEME:GetMetric(Var "LoadingScreen","IconLoseFocusCommand"); LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background base"))..{ - InitCommand=cmd(diffuse,icon_color;diffusebottomedge,icon_color2); + GainFocusCommand=cmd(diffuse,color("#57213B");diffusetopedge,color("#80385B");); + LoseFocusCommand=cmd(diffuse,color("#57213B")); }; - LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background effect")); - LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_gloss")); - LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_stroke")); - LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_cutout")); - - LoadFont("Common Large")..{ + LoadFont("_overpass 36px")..{ Text=string.upper(string_name); InitCommand=cmd(y,-12;maxwidth,232); - OnCommand=cmd(diffuse,Color.Black;shadowlength,1;shadowcolor,color("#ffffff77");skewx,-0.125); + OnCommand=cmd(diffuse,icon_color); }; - LoadFont("Common Normal")..{ + LoadFont("Common Italic Condensed")..{ Text=string.upper(string_expl); - InitCommand=cmd(y,27.5;maxwidth,232); + InitCommand=cmd(y,29.5;maxwidth,128); }; LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background base"))..{ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 1st.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 1st.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 2nd.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 2nd.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 3rd.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 3rd.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 4th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 4th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 5th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 5th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage 6th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage 6th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage endless.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage endless.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage event.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage event.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage extra1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage extra1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage extra2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage extra2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage final.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage final.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage nonstop.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage nonstop.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenStageInformation stage oni.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenStageInformation stage oni.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu CurrentGametype.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu CurrentGametype.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu CurrentGametype.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu CurrentGametype.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,8 +1,7 @@ -local curGameName = GAMESTATE:GetCurrentGame():GetName(); +local icon_params = { + base_color = color("#CC2E3C"), + label_text = Screen.String("CurrentGametype"), + value_text = GAMESTATE:GetCurrentGame():GetName() +} -local t = LoadFont("Common Normal") .. { - BeginCommand=function(self) - self:settextf( Screen.String("CurrentGametype"), curGameName ); - end; -}; -return t; \ No newline at end of file +return LoadActor(THEME:GetPathG("", "_title_info_icon"), icon_params) \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu LifeDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu LifeDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu LifeDifficulty.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu LifeDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,21 +1,7 @@ -local label_text= false +local icon_params = { + base_color = color("#F51319"), + label_text = Screen.String("LifeDifficulty"), + value_text = GetLifeDifficulty() +} -return Def.ActorFrame { - LoadFont("Common Normal") .. { - Text=GetLifeDifficulty(); - AltText=""; - InitCommand=cmd(horizalign,left;zoom,0.675); - OnCommand= function(self) - label_text= self - self:shadowlength(1):settextf(Screen.String("LifeDifficulty"), ""); - end, - }; - LoadFont("Common Normal") .. { - Text=GetLifeDifficulty(); - AltText=""; - InitCommand=cmd(zoom,0.675;halign,0); - OnCommand= function(self) - self:shadowlength(1):skewx(-0.125):x(label_text:GetZoomedWidth()+8) - end, - }; -}; +return LoadActor(THEME:GetPathG("", "_title_info_icon"), icon_params) \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/_arrow (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/_arrow (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,14 +1,15 @@ local t = Def.ActorFrame{ InitCommand=cmd(fov,70); - LoadActor("_arrow")..{ - InitCommand=cmd(x,225;); + Def.ActorFrame { + InitCommand=cmd(zoom,0.75); + OnCommand=cmd(diffusealpha,0;zoom,0.4;decelerate,0.7;diffusealpha,1;zoom,0.75); + LoadActor("_text"); + LoadActor("_text")..{ + Name="TextGlow"; + InitCommand=cmd(blend,Blend.Add;diffusealpha,0.05;); + OnCommand=cmd(glowshift;effectperiod,5;effectcolor1,color("1,1,1,0.25");effectcolor2,color("1,1,1,1");); + }; + }; }; - LoadActor("_text"); - LoadActor("_text")..{ - Name="TextGlow"; - InitCommand=cmd(blend,Blend.Add;diffusealpha,0.05;); - OnCommand=cmd(glowshift;effectperiod,2.5;effectcolor1,color("1,1,1,0.25");effectcolor2,color("1,1,1,1");); - }; -}; return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/_text (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu logo/_text (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NetworkStatus.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NetworkStatus.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NetworkStatus.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NetworkStatus.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -2,27 +2,16 @@ local loggedOnSMO = IsNetSMOnline(); local t = Def.ActorFrame{ - Def.Quad { - InitCommand=cmd(y,-12;x,160;zoomto,320+32,38;vertalign,top;diffuse,Color.Black;diffusealpha,0.5); - OnCommand=cmd(faderight,0.45); - BeginCommand=function(self) - if netConnected then - self:zoomtoheight( 38 ); - else - self:zoomtoheight( 24 ); - end - end; - }; - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { InitCommand=cmd(uppercase,true;zoom,0.75;shadowlength,1;horizalign,left); BeginCommand=function(self) -- check network status if netConnected then - self:diffuse( color("0.95,0.975,1,1") ); - self:diffusebottomedge( color("0.72,0.89,1,1") ); + self:diffuse( color("#268129") ); + self:diffusebottomedge( color("#153F17") ); self:settext( Screen.String("Network OK") ); else - self:diffuse( color("1,1,1,1") ); + self:diffuse( color("#4F1B34") ); self:settext( Screen.String("Offline") ); end; end; @@ -30,8 +19,8 @@ }; if netConnected then - t[#t+1] = LoadFont("Common Normal") .. { - InitCommand=cmd(y,16;horizalign,left;zoom,0.5875;shadowlength,1;diffuse,color("0.72,0.89,1,1")); + t[#t+1] = LoadFont("Common Condensed") .. { + InitCommand=cmd(y,16;horizalign,left;zoom,0.5875;shadowlength,1;diffuse,color("#268129");diffusebottomedge,color("#153F17");); BeginCommand=function(self) self:settext( string.format(Screen.String("Connected to %s"), GetServerName()) ); end; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,2 +1,2 @@ -return LoadFont("Common Normal") .. { +return LoadFont("Common Condensed") .. { }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NumSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NumSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu NumSongs.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu NumSongs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,2 +1,2 @@ -return LoadFont("Common Normal") .. { +return LoadFont("Common Condensed") .. { }; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu PreferenceFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu PreferenceFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu scroll.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu scroll.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu scroll.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu scroll.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,16 +1,10 @@ local gc = Var("GameCommand"); return Def.ActorFrame { - Def.Quad{ - InitCommand=cmd(zoomto,256,26;fadeleft,0.45;faderight,0.45); - OnCommand=cmd(diffuseshift;effectcolor1,color("0,0,0,0.5");effectcolor2,color("0,0,0,0.5")); - GainFocusCommand=cmd(stoptweening;decelerate,0.1;zoomto,256,26;diffusealpha,1); - LoseFocusCommand=cmd(stoptweening;accelerate,0.1;zoomto,SCREEN_WIDTH,0;diffusealpha,0); - }; - LoadFont("Common Normal") .. { + LoadFont("_roboto condensed Bold 48px") .. { Text=THEME:GetString("ScreenTitleMenu",gc:GetText()); OnCommand=cmd(shadowlength,1); - GainFocusCommand=cmd(stoptweening;linear,0.1;zoom,1;diffuse,color("1,1,1,1")); - LoseFocusCommand=cmd(stoptweening;linear,0.1;zoom,0.75;diffuse,color("0.5,0.5,0.5,1")); + GainFocusCommand=cmd(stoptweening;linear,0.1;zoom,1;diffuse,color("#A3375C")); + LoseFocusCommand=cmd(stoptweening;linear,0.1;zoom,0.75;diffuse,color("#512232")); }; }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu TimingDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu TimingDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu TimingDifficulty.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu TimingDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,26 +1,7 @@ -local label_text= false -return Def.ActorFrame { - LoadFont("Common Normal") .. { - Text=GetTimingDifficulty(); - AltText=""; - InitCommand=cmd(horizalign,left;zoom,0.675); - OnCommand= function(self) - label_text= self - self:shadowlength(1):settextf(Screen.String("TimingDifficulty"), ""); - end, - }; - LoadFont("Common Normal") .. { - Text=GetTimingDifficulty(); - AltText=""; - InitCommand=cmd(x,136;zoom,0.675;halign,0); - OnCommand=function(self) - self:shadowlength(1):skewx(-0.125):x(label_text:GetZoomedWidth()+8) - if GetTimingDifficulty() == 9 then - self:settext(Screen.String("Hardest Timing")); - (cmd(zoom,0.5;diffuse,ColorLightTone( Color("Orange")) ))(self); - else - self:settext( GetTimingDifficulty() ); - end - end; - }; -}; +local icon_params = { + base_color = color("#CE3D06"), + label_text = Screen.String("TimingDifficulty"), + value_text = GetTimingDifficulty() == 9 and Screen.String("Hardest Timing") or GetTimingDifficulty() +} + +return LoadActor(THEME:GetPathG("", "_title_info_icon"), icon_params) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,14 +1,14 @@ return Def.ActorFrame { - LoadFont("Common Normal") .. { + LoadFont("Common Condensed") .. { Text=string.format("%s %s", ProductFamily(), ProductVersion()); AltText="StepMania"; - InitCommand=cmd(zoom,0.675); - OnCommand=cmd(horizalign,right;shadowlength,1); + InitCommand=cmd(zoom,1); + OnCommand=cmd(horizalign,right;diffusealpha,0.9); }; LoadFont("Common Normal") .. { Text=string.format("%s", VersionDate()); AltText="Unknown Version"; - InitCommand=cmd(y,16;zoom,0.5); - OnCommand=cmd(horizalign,right;shadowlength,1); + InitCommand=cmd(y,19;zoom,0.75); + OnCommand=cmd(horizalign,right;diffusealpha,0.7); }; }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements Footer.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements Footer.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements Footer.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements Footer.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,12 +1,19 @@ local t = Def.ActorFrame {}; -t[#t+1] = Def.Quad { - InitCommand=cmd(vertalign,bottom;zoomto,SCREEN_WIDTH,34;diffuse,color("#161616")); +t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(vertalign,bottom;zoomto,SCREEN_WIDTH,5;addy,-50;diffuse,Color("Black");fadetop,1;diffusealpha,0.8); + }; }; -t[#t+1] = LoadActor(THEME:GetPathG("ScreenWithMenuElements","header/Header")) .. { - InitCommand=cmd(y,-48;vertalign,bottom;zoomtowidth,SCREEN_WIDTH); - OnCommand=cmd(zoomy,-1;diffuse,color("#ffd400")); +t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(vertalign,bottom;zoomto,SCREEN_WIDTH,50;); + OnCommand=function(self) + self:diffuse(ColorMidTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))) + self:diffusetopedge(ColorDarkTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))):diffusealpha(0.8) + end; + }; }; return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/beat style icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/beat style icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/dance style icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/dance style icon.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,58 +1,84 @@ -local t = Def.ActorFrame {}; +local t = Def.ActorFrame {} -local function Update(self) - local c = self:GetChildren(); - local bps = GAMESTATE:GetSongBPS() or 1 - c.TextureStripe:texcoordvelocity(bps/3,0); -end - -local function IsVisible() - local r = Screen.String("HeaderText"); - return string.len(r) > 0 and true or false -end +-- Base bar diffuse,color("#1C1C1B");diffusebottomedge,color("#333230"); +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(vertalign,top), + OnCommand=function(self) + self:addy(-104):decelerate(0.5):addy(104) + end, + OffCommand=cmd(sleep,0.175;decelerate,0.4;addy,-105), + Def.Quad { + InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH,96), + OnCommand=function(self) + self:diffuse(ScreenColor(SCREENMAN:GetTopScreen():GetName())):diffusetopedge(ColorDarkTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))):diffusealpha(0.8) + end + }, + LoadActor("_shade") .. { + InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH,96), + OnCommand=function(self) + self:diffuse(ScreenColor(SCREENMAN:GetTopScreen():GetName())):diffusetopedge(ColorDarkTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))):diffusealpha(0.8):faderight(1) + end + }, + -- Shadow + Def.Quad { + InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH,8;y,96), + OnCommand=cmd(diffuse,Color("Black");fadebottom,1;diffusealpha,0.6) + } +} -t[#t+1] = Def.Quad { - InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH+1,50;diffuse,color("#161616")); +-- Diamond +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,-SCREEN_CENTER_X+76;y,SCREEN_TOP+30), + OnCommand=cmd(addx,-110;sleep,0.3;decelerate,0.7;addx,110), + OffCommand=cmd(decelerate,0.175;addx,-110), + + -- Diamond BG + Def.Quad { + InitCommand=cmd(vertalign,top;zoomto,54,54;rotationz,45), + OnCommand=function(self) + self:diffuse(ColorLightTone(ScreenColor(SCREENMAN:GetTopScreen():GetName()))) + end + }, + -- Symbol selector + Def.Sprite { + Name="HeaderDiamondIcon", + InitCommand=cmd(horizalign,center;y,18;x,-20;diffusealpha,0.8), + OnCommand=function(self) + local screen = SCREENMAN:GetTopScreen():GetName() + if FILEMAN:DoesFileExist("Themes/"..THEME:GetCurThemeName().."/Graphics/ScreenWithMenuElements header/"..screen.." icon.png") then + self:Load(THEME:GetPathG("","ScreenWithMenuElements header/"..screen.." icon")) + -- Little workaround so not every other options menu has the "graphic missing" icon. + elseif string.find(screen, "Options") then + self:Load(THEME:GetPathG("","ScreenWithMenuElements header/ScreenOptionsService icon")) + else + print("iconerror: file does not exist") + self:Load(THEME:GetPathG("","ScreenWithMenuElements header/Generic icon")) + end + end + } } -t[#t+1] = LoadActor("_texture stripe") .. { - Name="TextureStripe"; - InitCommand=cmd(x,-SCREEN_CENTER_X-8;y,-2;horizalign,left;vertalign,top;zoomto,320,50;customtexturerect,0,0,(320/2)/8,50/32); - OnCommand=cmd(texcoordvelocity,2,0;skewx,-0.0575;diffuse,color("#594300");diffuserightedge,color("#59430000")); -}; -t[#t+1] = LoadActor("Header") .. { - InitCommand=cmd(y,1;vertalign,top;zoomtowidth,SCREEN_WIDTH+1;diffuse,color("#ffd400")); - OnCommand=cmd(croptop,46/60); -}; - -t[#t+1] = LoadFont("Common Bold") .. { - Name="HeaderShadow"; - Text=Screen.String("HeaderText"); - InitCommand=cmd(x,-SCREEN_CENTER_X+26;y,28;zoom,1;horizalign,left;maxwidth,200); - OnCommand=cmd(visible,IsVisible();skewx,-0.125;diffuse,BoostColor(color("#ffd40077"),0.375);); - UpdateScreenHeaderMessageCommand=function(self,param) - self:settext(param.Header); - end; -}; - -t[#t+1] = Def.Quad { - Name="Underline"; - InitCommand=cmd(x,-SCREEN_CENTER_X+24-4;y,36;horizalign,left); - OnCommand=cmd(stoptweening;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,192;fadeleft,8/192;faderight,0.5; - visible,string.len( Screen.String("HeaderText") ) > 0 ); -}; - -t[#t+1] = LoadFont("Common Bold") .. { - Name="HeaderText"; - Text=Screen.String("HeaderText"); - InitCommand=cmd(x,-SCREEN_CENTER_X+24;y,26;zoom,1;horizalign,left;shadowlength,0;maxwidth,200); - OnCommand=cmd(visible,IsVisible();skewx,-0.125;diffuse,color("#ffd400");); + +-- Text +t[#t+1] = LoadFont("Common Header") .. { + Name="HeaderTitle", + Text=Screen.String("HeaderText"), + InitCommand=cmd(zoom,1.0;x,-SCREEN_CENTER_X+110;y,49;horizalign,left;diffuse,color("#ffffff");shadowlength,1;skewx,-0.1), + OnCommand=cmd(diffusealpha,0;sleep,0.5;smooth,0.3;diffusealpha,0.8), UpdateScreenHeaderMessageCommand=function(self,param) - self:settext(param.Header); - end; -}; - -t.BeginCommand=function(self) - self:SetUpdateFunction( Update ); -end + self:settext(param.Header) + end, + OffCommand=cmd(smooth,0.175;diffusealpha,0) +} + +-- t[#t+1] = LoadFont("Common Condensed") .. { + -- Name="HeaderSubTitle"; + -- Text=Screen.String("HeaderSubText"); + -- InitCommand=cmd(zoom,0.8;x,-SCREEN_CENTER_X+110;y,70;horizalign,left;diffuse,color("#ffffff");shadowlength,1;skewx,-0.1); + -- OnCommand=cmd(diffusealpha,0;sleep,0.55;smooth,0.3;diffusealpha,0.75;); + -- UpdateScreenHeaderMessageCommand=function(self,param) + -- self:settext(param.Header); + -- end; + -- OffCommand=cmd(smooth,0.3;diffusealpha,0;); +-- }; -return t +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/Generic icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/Generic icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/Header.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/Header.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/kb7 style icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/kb7 style icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/old _texture stripe.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/old _texture stripe.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/pump style icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/pump style icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEditMenu icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEditMenu icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationNormal icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationNormal icon.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationSummary icon.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationSummary icon.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationSummary icon.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenEvaluationSummary icon.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenEvaluationNormal icon \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenHighScores icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenHighScores icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNestyPlayerOptions icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNestyPlayerOptions icon.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetEvaluation icon.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetEvaluation icon.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetEvaluation icon.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetEvaluation icon.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenEvaluationNormal icon \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetRoom icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetRoom icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetSelectMusic icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenNetSelectMusic icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenOptionsEdit icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenOptionsEdit icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenOptionsService icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenOptionsService icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectCourse icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectCourse icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectMusic icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectMusic icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectPlayMode icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectPlayMode icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectProfile icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectProfile icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectStyle icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSelectStyle icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSMOnlineLogin icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/ScreenSMOnlineLogin icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/_shade.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/_shade.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/techno style icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/techno style icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/_texture stripe (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements header/_texture stripe (stretch).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements StageDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements StageDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScreenWithMenuElements StageDisplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScreenWithMenuElements StageDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,10 +1,11 @@ local curScreen = Var "LoadingScreen"; +local curStage = GAMESTATE:GetCurrentStage(); local curStageIndex = GAMESTATE:GetCurrentStageIndex(); local t = Def.ActorFrame {}; t[#t+1] = Def.ActorFrame { - LoadFont("Common Normal") .. { - InitCommand=cmd(y,-1;shadowlength,1;); + LoadFont("Common Italic Condensed") .. { + InitCommand=cmd(y,-1;zoom,1.2;maxwidth,130;); BeginCommand=function(self) local top = SCREENMAN:GetTopScreen() if top then @@ -14,27 +15,24 @@ end self:playcommand("Set") end; - CurrentSongChangedMessageCommand= cmd(playcommand,"Set"), SetCommand=function(self) - local curStage = GAMESTATE:GetCurrentStage(); if GAMESTATE:GetCurrentCourse() then self:settext( curStageIndex+1 .. " / " .. GAMESTATE:GetCurrentCourse():GetEstimatedNumStages() ); elseif GAMESTATE:IsEventMode() then - self:settextf("Stage %s", curStageIndex); + self:settextf("STAGE %s", curStageIndex); else - local thed_stage= thified_curstage_index(curScreen:find("Evaluation")) if THEME:GetMetric(curScreen,"StageDisplayUseShortString") then - self:settext(thed_stage) - self:zoom(0.75); + self:settextf("%s", ToEnumShortString(curStage)); + self:zoom(1); else - self:settextf("%s Stage", thed_stage); - self:zoom(1); + self:settextf("%s STAGE", ToEnumShortString(curStage)); + self:zoom(1); end; end; -- StepMania is being stupid so we have to do this here; - self:diffuse(StageToColor(curStage)); - self:diffusetopedge(ColorLightTone(StageToColor(curStage))); + self:diffuse(StageToColor(curStage)):diffusetopedge(ColorLightTone(StageToColor(curStage))); + self:diffusealpha(0):smooth(0.3):diffusealpha(1); end; }; }; -return t +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar bottom.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar bottom.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar bottom.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar bottom.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar middle.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar middle.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar StretchThumb.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar StretchThumb.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar StretchThumb.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar StretchThumb.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar TickThumb.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar TickThumb.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar TickThumb.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar TickThumb.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -local t = Def.ActorFrame {}; - -t[#t+1] = Def.ActorFrame { - Def.Quad { - InitCommand=cmd(zoomto,32,32); - }; -}; - -return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar top.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar top.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/ScrollBar top.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/ScrollBar top.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon 10Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon 10Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon 14Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon 14Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon 5Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon 5Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon 7Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon 7Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Couple.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Couple.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Endless.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Endless.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Extended.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Extended.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon HalfDouble.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon HalfDouble.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon KB7.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon KB7.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Oni.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Oni.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Rave.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Rave.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Routine.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Routine.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Solo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Solo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Survival.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Survival.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_SelectIcon Versus.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_SelectIcon Versus.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay frame p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay frame p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay frame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay frame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay frame p2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay frame p2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -SongMeterDisplay frame p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay stream p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay stream p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay stream p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay stream p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay stream p2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay stream p2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -SongMeterDisplay stream p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay stream.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay stream.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay tip p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay tip p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay tip p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay tip p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay tip p2.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay tip p2.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -SongMeterDisplay tip p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/SongMeterDisplay tip.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/SongMeterDisplay tip.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_sortFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_sortFrame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_stageFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_stageFrame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay autogen/_badge.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay autogen/_badge.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay autogen/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay autogen/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay autogen/default.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay autogen/default.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -local t = Def.ActorFrame{}; - -t[#t+1] = LoadActor("_badge") .. { - InitCommand=cmd(shadowlength,1;diffuse,Color.Green;pulse;effectmagnitude,0.875,1,1;effecttiming,0,0,1,0 - effectclock,'beatnooffset';effectperiod,2); -}; -t[#t+1] = Def.Quad { - InitCommand=cmd(zoomto,40,20;diffuse,Color.Black; - diffusealpha,0.5;fadeleft,0.25;faderight,0.25); -}; -t[#t+1] = Def.BitmapText { - Font="Common Normal"; - Text="AG"; - InitCommand=cmd(shadowlength,1;zoom,0.875); -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplayGameplay frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplayGameplay frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsDisplayListRow arrow.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsDisplayListRow arrow.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplayListRow autogen.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplayListRow autogen.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsDisplayListRow Cursor.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsDisplayListRow Cursor.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplayListRow frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplayListRow frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplayListRow StepsType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplayListRow StepsType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplayListRow StepsType.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplayListRow StepsType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,29 +1,17 @@ -local sString; +-- I have to do it like this because I think the Set command in the metrics is screwing me over local t = Def.ActorFrame{ ---[[ LoadActor("TestStep") .. { - InitCommand=cmd(zoomto,20,20); - }; --]] - LoadFont("Common normal")..{ - InitCommand=cmd(shadowlength,1;horizalign,left;zoom,0.45;skewx,-0.125); - SetMessageCommand=function(self,param) - sString = THEME:GetString("StepsListDisplayRow StepsType",ToEnumShortString(param.StepsType)); - if param.Steps and param.Steps:IsAutogen() then - self:diffusebottomedge(color("0.75,0.75,0.75,1")); - else - self:diffuse(Color("White")); - end; - self:settext( sString ); - end; - }; - -- argh this isn't working as nicely as I would've hoped... - --[[ + -- todo: make this less stupid Def.Sprite{ + InitCommand=cmd(x,8;horizalign,right), SetMessageCommand=function(self,param) - self:Load( THEME:GetPathG("","_StepsType/"..ToEnumShortString(param.StepsType)) ); - self:diffusealpha(0.5); - end; - }; - --]] -}; + local path = "Themes/"..THEME:GetCurThemeName().."/Graphics/_StepsType/" .. ToEnumShortString(param.StepsType) .. ".png" + if FILEMAN:DoesFileExist(path) then + self:Load( path ) + else + self:Load( THEME:GetPathG("","_StepsType/missing") ) + end + end + } +} return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay StepsType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay StepsType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StepsDisplay StepsType.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StepsDisplay StepsType.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -local sString; -local t = Def.ActorFrame{ - - LoadFont("Common normal")..{ - InitCommand=cmd(shadowlength,1); - SetMessageCommand=function(self,param) - if param.StepsType then - sString = THEME:GetString("StepsDisplay StepsType",ToEnumShortString(param.StepsType)); - if param.Steps and param.Steps:IsAutogen() then - self:diffusebottomedge(color("0.75,0.75,0.75,1")); - else - self:diffuse(Color("White")); - end; - self:settext( sString ); - end; - end; - }; - -- argh this isn't working as nicely as I would've hoped... - --[[ - Def.Sprite{ - SetMessageCommand=function(self,param) - self:Load( THEME:GetPathG("","_StepsType/"..ToEnumShortString(param.StepsType)) ); - self:diffusealpha(0.5); - end; - }; - --]] -}; - -return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Couple.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Couple.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Routine.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Routine.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Solo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Solo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Dance_Threepanel.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Dance_Threepanel.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Horizon_Single9.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Horizon_Single9.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/kb7.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/kb7.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/missing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/missing.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Pump_Couple.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Pump_Couple.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Pump_Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Pump_Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Pump_HalfDouble.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Pump_HalfDouble.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Pump_Routine.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Pump_Routine.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Pump_Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Pump_Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/SMX_Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/SMX_Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/SMX_Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/SMX_Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Techno_Double4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Techno_Double4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Techno_Double5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Techno_Double5.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Techno_Single4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Techno_Single4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Techno_Single5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Techno_Single5.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType/Techno_Single8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType/Techno_Single8.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/_StepsType Icon dance-single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/_StepsType Icon dance-single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StreamDisplay hot.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StreamDisplay hot.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StreamDisplay normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StreamDisplay normal.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StreamDisplay passing.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StreamDisplay passing.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/StreamDisplay passing.redir" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/StreamDisplay passing.redir" 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -StreamDisplay normal \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/TestStep.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/TestStep.png differ diff -Nru stepmania-5.0.12+dfsg/Themes/default/Graphics/_title_info_icon.lua stepmania-5.1.0+dfsg/Themes/default/Graphics/_title_info_icon.lua --- stepmania-5.0.12+dfsg/Themes/default/Graphics/_title_info_icon.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Graphics/_title_info_icon.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,25 @@ +-- This is used for the life/timing difficulty displays on the title menu, +-- as well as the current gametype. +local params = ... +return Def.ActorFrame { + -- Base + -- todo; make getting the base's image less stupid + LoadActor(THEME:GetPathG("","ScreenSelectPlayMode Icon/_background base")) .. { + InitCommand=cmd(zoomto,70,70;diffuse,params.base_color;diffusebottomedge,ColorMidTone(params.base_color);) + }, + -- The wanted value + LoadFont("Common Normal") .. { + InitCommand=cmd(diffuse,color("#FFFFFF");diffusealpha,0.85;), + OnCommand=function(self) + self:settext( params.value_text ) + self:zoom(string.len(params.value_text) > 3 and 0.6 or 1.5) + end + }, + -- Label + LoadFont("_roboto condensed Bold 48px") .. { + InitCommand=cmd(x,50;zoom,0.35;diffuse,color("#512232");horizalign,left;uppercase,true), + OnCommand= function(self) + self:shadowlength(0):settext(params.label_text) + end, + } +} Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/WheelNotifyIcon icons 4x2 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/WheelNotifyIcon icons 4x2 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Graphics/WheelNotifyIcon icons 4x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Graphics/WheelNotifyIcon icons 4x2.png differ diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/de.ini stepmania-5.1.0+dfsg/Themes/default/Languages/de.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/de.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/de.ini 2018-01-25 05:01:07.000000000 +0000 @@ -214,6 +214,20 @@ Short=Kurz Long=Lang +[newfield_options] +gameplay_options=Gameplay Options +ComboUnderField=Combo Under Field +FlashyCombo=Flashy Combo +GameplayShowScore=Show Score +GameplayShowStepsDisplay=Show Steps +JudgmentUnderField=Judgment Under Field + +[newfield_explanations] +ComboUnderField=Determine if the combo should display under the notes or not. +FlashyCombo=Determine if combo flashes should be shown or not. +GameplayShowScore=Show or Hide the score display in gameplay. +GameplayShowStepsDisplay=Show or Hide the step information display in gameplay. + [ScreenTestInput] HelpText=Halte &BACK; oder &START; um zu verlassen. diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/en.ini stepmania-5.1.0+dfsg/Themes/default/Languages/en.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/en.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/en.ini 2018-01-25 05:01:07.000000000 +0000 @@ -11,9 +11,9 @@ Network OK=Network OK Offline=Offline Connected to %s=Connected to %s -CurrentGametype=Current Gametype: %s -LifeDifficulty=Life Difficulty: %s -TimingDifficulty=Timing Difficulty: %s +CurrentGametype=Current Gametype +LifeDifficulty=Life Difficulty +TimingDifficulty=Timing Difficulty %i Songs (%i Groups), %i Courses=%i Songs (%i Groups), %i Courses [ScreenTitleJoin] @@ -44,12 +44,14 @@ %d Songs Played=%d Songs Played PressStart=Press &START; to join. HelpText=&MENUUP;&MENUDOWN; Switch Profile &START; Choose/Join &BACK; Unselect +HeaderSubText=Choose your character! [ScreenSelectMaster] HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move [ScreenSelectPlayMode] HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move +HeaderSubText=How would you like to groove today? EasyExplanation=A mode for beginners. HardExplanation=For experts. OldNormalExplanation=Not too easy, not too hard. @@ -59,24 +61,40 @@ OniExplanation=A true test of skill. EndlessExplanation=It don't stop, it keep rollin'. -[ScreenSelectPlayStyle] +[ScreenSelectStyle] HelpText=&BACK; Exit &START; Select &MENULEFT;&MENURIGHT; Move +HeaderSubText=There is no wrong way to play. [ScreenGameInformation] HelpText=&BACK; Exit &START; Skip [ScreenSelectMusic] NEW!=NEW! -Press Start For Options=Press &START; for Options -Entering Options=Entering Options -HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&AUXWHITE;+[KEY] Sort To [KEY] -AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Change Difficulties &SELECT;+&START; Quick Sort +Press Start For Options=Press &START; for options +Entering Options=Entering options menu... +HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move &SELECT; Shortcuts (hold):: &MENUUP;&MENUUP;/&MENUDOWN;&MENUDOWN; Change Difficulty &AUXWHITE;+[KEY] Sort by [KEY] +AlternateHelpText=&MENULEFT;&MENURIGHT; Change Difficulty &START; Change Sort +HeaderSubText= +SortLabel=Sort +SpeedLabel=Speed +LengthLabel=Length +StageLabel=Stage + +[MusicWheel] +ChallengeMeterText=Expert Meter +DoubleChallengeMeterText=Expert Meter (Double) +PopularityText=Most Played + +[SortOrder] +Popularity=Most Played +ChallengeMeter=Expert Meter +DoubleChallengeMeter=Double Expert Meter [ScreenSelectCourse] -HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&UP;&DOWN;&UP;&DOWN; for other course types +HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move::&MENUUP;&MENUUP;/&MENUDOWN;&MENUDOWN; Change Difficulty &UP;&DOWN;&UP;&DOWN; for other course types [ScreenOptions] -HelpText=&BACK; Exit &START; Choose &SELECT; Go Up &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move +HelpText=&BACK; Exit &START; Choose &SELECT; Go Up &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move Disqualified=Score will be disqualified! [ScreenStageInformation] @@ -111,10 +129,27 @@ PersonalRecord=Personal Record #%i! ITG DP:=ITG DP: MIGS DP:=MIGS DP: +HeaderText=Evaluation +HeaderSubText=Let's see how you did. +ExtraUnlocked=Extra Stage Available! + +[StageAward] +FullComboW1=Full Flawless Combo!!! + +[ScreenEditMenu] +HeaderText=Edit Songs [ScreenContinue] HelpText=&START; Advance Timer +[ScreenNestyPlayerOptions] +HeaderText=Select Options +HeaderSubText=Option after option, look at all those options! +HelpText=&BACK; Exit &START; Select/Toggle &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move &SELECT; Back to top + +[ScreenOptionsService] +HeaderSubText=If all else fails, throw a wrench at it. + [OptionTitles] AutoSetStyle=Auto Set Style NotePosition=Note Positions @@ -130,9 +165,14 @@ FancyUIBG=Fancy UI Background TimingDisplay=Timing Display +PreferredMeter=Preferred Meter +CustomComboContinue=Min Judgment to Continue Combo +CustomComboMaintain=Min Judgment to Maintain Combo +ForcedExtraMods=Force Mods on Extra Stage + [OptionExplanations] AutoSetStyle=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 (or press Shift+F2). -NotePosition=Determines where the arrow receptors are placed in gameplay. +NotePosition=Determines where the arrow receptors are placed in gameplay. ComboOnRolls=Choose if rolls should increment the combo or not. If you change this option, you will need to reload the metrics (via Shift+F2) for it to take effect. ComboUnderField=Determine if the combo should display under the notes or not. @@ -147,6 +187,11 @@ ScoringType=Defines which scoring method to use. If Special is selected, you can select a Special Scoring Mode in Theme Options. +PreferredMeter=Choose your preferred difficulty scale; this mainly affects the "boss song" threshold. If you change this option, you will need to reload the metrics (via Shift+F2) for it to take effect. +CustomComboContinue=Choose the minimum judgment needed to continue a combo, or choose Default if you're not sure. +CustomComboMaintain=Choose the minimum judgment needed to maintain a combo (without incrementing), or choose Default if you're not sure. +ForcedExtraMods=Choose whether or not forced mods should be used on Extra stages. + Speed=Adjust the speed at which arrows travel toward the targets. Accel=Change the way arrows approach the targets. Effect=Change the size or movement of the arrows and/or targets. @@ -157,7 +202,7 @@ Mines=Add or remove mine notes. PlayerAutoPlay=Have the notefield play by itself. ScoreDisplay=Change the way your score is shown. -ProTiming=Change the way your judgments are shown. +ProTiming=Display a detailed graph of step timings and judgments. Scroll=Adjust the direction arrows flow to meet the targets. NoteSkins=Choose a different appearance for the arrows. Handicap=Removes notes. Using these will invalidate a high score. @@ -168,6 +213,15 @@ SaveToProfileHelp=Requires profile or memory card. MusicRateHelp=Play the music at a faster rate. +LifeType=Choose between standard lifebar and battery (limited lives) modes. +BarDrain=Behavior of the standard lifebar. +BatLives=The number of lives given for the battery lifebar. +Fail=Adjust if and when the song ends if player life is depleted. +Assist=Sound effects that assist in following the rhythm of a song. +Rate=The playback speed of the song as a whole. +AutoAdjust=Calibrate song or gameplay timing and synchronization whilst playing the song. +SaveScores=Choose whether scores for this song will be saved. + [StepsListDisplayRow StepsType] Dance_Single=4 Dance_Double=8 @@ -218,6 +272,23 @@ Explanation-ReloadSongs=Reload the songs. This is required if you've added/changed/deleted songs while StepMania is running. Explanation-Exit=Return to the title menu. +[TapNoteScore] +W1=Flawless +W2=Perfect +W3=Great +W4=Good +W5=Bad + +[JudgmentLine] +W1=Flawless +W2=Perfect +W3=Great +W4=Good +W5=Bad +Held=Held +MaxCombo=Max Combo +Miss=Miss + [OptionNames] Custom=Special Many=Many @@ -226,6 +297,32 @@ Lower=Lower Short=Short Long=Long +Play Song=Play Song + +MeterClassic=1 to 10 (DDR/ITG) +MeterX=1 to 19 (DDR X) +MeterPump=1 to ?? (PIU) + +[notefield_options] +gameplay_options=Gameplay Options +ComboUnderField=Combo Under Field +FlashyCombo=Flashy Combo +GameplayShowScore=Show Score +GameplayShowStepsDisplay=Show Steps +JudgmentUnderField=Judgment Under Field +advanced_notefield_config=Notefield Config +notefield_mods_clear=Reset +notefield_mods_profile_save=Save Effects Mods +notefield_mods_profile_clear=Clear Saved Effects Mods +notefield_toggle_mods=Effects Mods +notefield_value_mods=Effects Mods (V) +ScreenFilter=Field Filter +noteskin_params=Noteskin Settings + +[notefield_explanations] +gameplay_options=Turn off or change some gameplay elements. +ComboUnderField=Combo is underneath notes when turned on. +JudgmentUnderField=Judgment is underneath notes when turned on. [ScreenTestInput] HelpText=Hold &BACK; or &START; to exit. @@ -261,6 +358,51 @@ Jump=Step on both panels if two different\narrows appear at the same time! Miss=If you misstep repeatedly, your dance\ngauge will decrease until the game\nis over! - [Protiming] MS=MS + +[ScreenNetRoom] +HeaderText=Online Lobby + +[ScreenNetSelectMusic] +HeaderText=Select Music + +[LongStepsType] +Dance_Single=Dance Single +Dance_Double=Dance Double +Dance_Couple=Dance Couple +Dance_Solo=Dance Solo +Dance_Routine=Dance Routine +Dance_Threepanel=Dance 3 Panels +Pump_Single=Pump Single +Pump_Double=Pump Double +Pump_Halfdouble=Pump Half-Double +Pump_Couple=Pump Couple +Pump_Routine=Pump Routine +Kb7_Single=KB7 +Ez2_Single=Ez2 Single +Ez2_Double=Ez2 Double +Ez2_Real=Ez2 Real +Para_Single=Para Single +Ds3ddx_Single=DS3DDX Single +Bm_Single5=BM 5 Keys +Bm_Versus5=BM VS 5k +Bm_Double5=BM 10 Keys +Bm_Single7=BM 7 Keys +Bm_Versus7=BM VS 7k +Bm_Double7=BM 14 Keys +Maniax_Single=Maniax Single +Maniax_Double=Maniax Double +Techno_Single4=Techno Single 4 +Techno_Single5=Techno Single 5 +Techno_Single8=Techno Single 8 +Techno_Double4=Techno Double 4 +Techno_Double5=Techno Double 5 +Techno_Double8=Techno Double 8 +Pnm_Five=PNM 5 Button +Pnm_Nine=PNM 9 Button +Lights_Cabinet=Lights +Kickbox_Human=Kickbox Human +Kickbox_Quadarm=Kickbox Quadarm +Kickbox_Insect=Kickbox Insect +Kickbox_Arachnid=Kickbox Arachnid \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/es.ini stepmania-5.1.0+dfsg/Themes/default/Languages/es.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/es.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/es.ini 2018-01-25 05:01:07.000000000 +0000 @@ -206,6 +206,18 @@ Normal=Normal Short=Corta +[newfield_options] +ComboUnderField=Combo bajo las notas +FlashyCombo=Combo animado +GameplayShowScore=Mostrar puntuación +GameplayShowStepsDisplay=Mostrar pasos + +[newfield_explanations] +ComboUnderField=Determina si el combo debe aparecer bajo las notas o no. +FlashyCombo=Determina si los flashes del combo deben mostrarse. +GameplayShowScore=Muestra u oculta la puntuación en el juego. +GameplayShowStepsDisplay=Muestra u oculta la información de pasos en el juego. + [Protiming] MS=MS @@ -252,3 +264,38 @@ [ScreenMapControllers] Exit=Salir + +[ScreenEvaluation] +HeaderText=Resultado + +[ScreenEditMenu] +HeaderText=Editar canciones/pasos +HeaderSubText=Haz canciones perfectas +HelpText=&BACK; Salir &START; Seleccionar &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Mover &SELECT; Regresar [PgUp][PgDown] Saltar + +edit_description_prompt=Escribe una descripción para esta edición. +delete_chart_prompt=¿Estás seguro de eliminar estos pasos? + +steps_action_back=Salir a los pasos +copy_dest_slot_back=Salir a elegir estilo de juego +copy_dest_style_back=Salir a elegir archivo a copiar +copy_from_back=Salir a elegir archivo a editar +new_chart_slot_back=Salir a elegir tipo de pasos +new_chart_stype_back=Salir a elegir pasos a editar +steps_list_back=Salir a elegir canción +song_list_back=Salir a elegir grupo +exit_edit_menu=Salir del modo editar + +edit_chart=Editar pasos +delete_chart=Eliminar pasos +new_chart=Nuevos pasos +copy_from=Crear nueva copia + +copy_to_slot_format=Copiar a %s %s +new_chart_slot_format=Nuevo - %s %s + +copy_dest_slot_menu=Elige la dificultad para los nuevos pasos. +copy_dest_stype_menu=Elige el tipo de notas para los nuevos pasos. +copy_from_menu=Elige los pasos a copiar. +new_chart_slot_menu=Elige la dificultad para los pasos. +new_chart_stype_menu=Elige el tipo de notas para los pasos. diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/fr.ini stepmania-5.1.0+dfsg/Themes/default/Languages/fr.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/fr.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/fr.ini 2018-01-25 05:01:07.000000000 +0000 @@ -214,6 +214,18 @@ Short=Court Long=Long +[newfield_options] +ComboUnderField=Combo Sous le Champ +FlashyCombo=Combo Éclatant +GameplayShowScore=Afficher le Score +GameplayShowStepsDisplay=Afficher les Pas + +[newfield_explanations] +ComboUnderField=Détermine si les combos doivent s'afficher ou non sous les flèches. +FlashyCombo=Choisi si les éclats de combo doivent être montrés ou non. +GameplayShowScore=Affiche ou masque le score en jeu. +GameplayShowStepsDisplay=Affiche ou masque les informations de pas en jeu. + [ScreenTestInput] HelpText=Tenir &BACK; ou &START; pour Quitter diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/id.ini stepmania-5.1.0+dfsg/Themes/default/Languages/id.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/id.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/id.ini 2018-01-25 05:01:07.000000000 +0000 @@ -227,6 +227,18 @@ Short=Pendek (Short) Long=Panjang (Long) +[newfield_options] +ComboUnderField=Combo Under Field +FlashyCombo=Kombo Berkedip-kedip +GameplayShowScore=Tunjukan Skor +GameplayShowStepsDisplay=Tunjukan Steps + +[newfield_explanations] +ComboUnderField=Menentukan Apabila Kombo harus terletak dibawah not atau tidak. +FlashyCombo=Menentukan apabila kilat kombo harus ditunjukan atau tidak. +GameplayShowScore=Tunjukan atau Sembunyikan layar skor saat bermain. +GameplayShowStepsDisplay=Tunjukan atau Sembunyikan Informasi step saat bermain. + [ScreenTestInput] HelpText=Tahan &BACK; atau &START; untuk Keluar. diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/ja.ini stepmania-5.1.0+dfsg/Themes/default/Languages/ja.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/ja.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/ja.ini 2018-01-25 05:01:07.000000000 +0000 @@ -221,6 +221,14 @@ Short=Short Long=Long +[newfield_options] + +[newfield_explanations] +ComboUnderField=コンボ数を描画するレイヤーの階層を選択します。 +FlashyCombo=この項目をOnに設定すると、50コンボごとに画面に光の輪が描画されます。 +GameplayShowScore=プレイ中のスコア表示の有無を設定します。 +GameplayShowStepsDisplay=プレイ中の譜面情報表示の有無を設定します。 + [ScreenTestInput] HelpText=&BACK;を押しっぱなしにするか&START; 終了 diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/nl.ini stepmania-5.1.0+dfsg/Themes/default/Languages/nl.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/nl.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/nl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -242,6 +242,18 @@ Normal=Normaal Short=Kort +[newfield_options] +ComboUnderField=Combo Onder Veld +FlashyCombo=Flitsende Combo +GameplayShowScore=Toon Score +GameplayShowStepsDisplay=Toon Stappen + +[newfield_explanations] +ComboUnderField=Kiest of de combo wel of niet onder de noten moet worden weergegeven. +FlashyCombo=Beslist of de combo flitsen wel of niet moeten worden weergegeven. +GameplayShowScore=Toon of Verberg de punten tijdens het spelen. +GameplayShowStepsDisplay=Toon of Verberg de stapinformatie tijden het spelen. + [ScreenTestInput] HelpText=Houd &BACK; of &START; ingedrukt om te stoppen. diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/pl.ini stepmania-5.1.0+dfsg/Themes/default/Languages/pl.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/pl.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/pl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -214,6 +214,18 @@ Short=Krótki Long=Długi +[newfield_options] +ComboUnderField=Combo Pod Strzałkami +FlashyCombo=Błyskające Combo +GameplayShowScore=Pokazuj wyniki +GameplayShowStepsDisplay=Pokazuj Kroki + +[newfield_explanations] +ComboUnderField=Określa czy wskaźnik Combo powinien być wyświetlany nad czy pod strzałkami. +FlashyCombo=Określa czy licznik Combo może błyskać czy nie. +GameplayShowScore=Wyświetla lub ukrywa licznik punktów podczas gry. +GameplayShowStepsDisplay=Wyświetla lub ukrywa statystykę strzałek podczas gry. + [ScreenTestInput] HelpText=Przytrzymaj &BACK; lub &START; aby wyjść. diff -Nru stepmania-5.0.12+dfsg/Themes/default/Languages/zh.ini stepmania-5.1.0+dfsg/Themes/default/Languages/zh.ini --- stepmania-5.0.12+dfsg/Themes/default/Languages/zh.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/Languages/zh.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,255 +0,0 @@ -;Stepmania 5.0系統 default主題繁體中文化檔案 Ver 0.99 Alpha - -[Screen] -HelpText=&BACK; 離開 &START; 確定 &SELECT; 設定&MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; 選擇 - -[ScreenWithMenuElements] -HelpText=&BACK; 離開 &START; 確定 &MENULEFT;&MENURIGHT; 選擇 -StageCounter=%s 個關卡 -EventStageCounter=已進行 %03i 個關卡 - -[ScreenTitleMenu] -HelpText=&BACK; 離開 &START; 確定 &MENUUP;&MENUDOWN; 選擇 -Network OK=網路 OK -Offline=線下模式 -Connected to %s=連接到 %s -CurrentGametype=現在遊戲類型: %s -LifeDifficulty=扣血強度: %s -TimingDifficulty=判定難度: %s -%i Songs (%i Groups), %i Courses=%i 個歌曲 (%i 個專輯), %i 個組曲 - -[ScreenTitleJoin] -HelpText=&START; 遊玩 -HelpTextJoin=&START; 遊玩 -HelpTextWait=Insert Credit(s) -EventMode=活動模式 -JointPremiumMain=雙人特別優惠 -JointPremiumSecondary=一局兩人玩! -DoublesPremiumMain=雙板特別優惠 -DoublesPremiumSecondary=一局玩雙板! - -[ScreenCaution] -HelpText=&START; Continue - -[ScreenDemonstration] -Demonstration=Demonstration -%s - %s [from %s]=%s - %s [from %s] - -[ScreenQuickSetupOverview] -Explanation=此處為常用設定, 若需要更詳細的設定請選擇「更多選項」 - -[ScreenProfileLoad] -HelpText=個人檔案讀取中... - -[ScreenSelectProfile] -%d Song Played=%d 首已遊玩 -%d Songs Played=%d 首已遊玩 -PressStart=&START; 加入 -HelpText=&MENUUP;&MENUDOWN; 切換個人檔案 &START; 確定/加入 &BACK; 取消 - -[ScreenSelectMaster] -HelpText=&BACK; 離開 &START; 確定 / 加入 &MENULEFT;&MENURIGHT; 選擇 - -[ScreenSelectPlayMode] -HelpText=&BACK; 離開 &START; 確定 / 加入 &MENULEFT;&MENURIGHT; 選擇 -EasyExplanation=初心者模式, 努力學習. -HardExplanation=進階者專用, 滿滿的箭頭. -OldNormalExplanation=中級者模式, 舒適的遊玩. -NormalExplanation=選擇你喜歡的歌曲! -RaveExplanation=對戰模式, 和你的對手互相切磋(陷害). -NonstopExplanation=多首歌曲串接的模式. -OniExplanation=挑戰模式, 只允許你指定失敗次數. -EndlessExplanation=無限模式, 無限輪迴. - -[ScreenSelectPlayStyle] -HelpText=&BACK; 離開 &START; 確定 &MENULEFT;&MENURIGHT; 選擇 - -[ScreenGameInformation] -HelpText=&BACK; 離開 &START; 跳過 - -[ScreenSelectMusic] -NEW!=NEW! -Press Start For Options=&START; 進入玩家設定畫面 -Entering Options=進入玩家設定 -HelpText=&BACK; 離開 &START; 確定 / 加入 &SELECT; 密碼 &MENULEFT;&MENURIGHT; 選擇::&AUXWHITE;+[KEY] 排序到 [KEY] -AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; 變更難度序列 &SELECT;+&START; 快速排序 - -[ScreenSelectCourse] -HelpText=&BACK; 離開 &START; 確定 / 加入 &SELECT; 密碼 &MENULEFT;&MENURIGHT; 選擇::&UP;&DOWN;&UP;&DOWN; 選擇排序 - -[ScreenOptions] -HelpText=&BACK; 離開 &START; 確定 &SELECT; 返回&MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; 選擇 -Disqualified=Score will be disqualified! - -[ScreenStageInformation] -HelpText= - -[ScreenGameplay] -HelpText= - -[ScreenHeartEntry] -Enter Heart Rate=Enter Heart Rate -Song Length=Song Length -Heart Rate=Heart Rate - -[ScreenEvaluation] -HelpText=&BACK; 離開 &START; 確定 &MENULEFT;+&MENURIGHT; or &SELECT; 拍照 -LifeDifficulty=扣血強度: %s -TimingDifficulty=判定難度: %s -MachineRecord=機器紀錄第 #%i 位! -PersonalRecord=個人紀錄第 #%i 位! -ITG DP:=ITG DP: -MIGS DP:=MIGS DP: - -[ScreenContinue] -HelpText=&START; Advance Timer - -[OptionTitles] -AutoSetStyle=自動設定類型 -NotePosition=箭頭位置 -ComboOnRolls=連鍵判定 -ComboUnderField=Combo顯示位置 - -GameplayShowScore=分數顯示 -GameplayShowStepsDisplay=譜面資訊 -ShowLotsaOptions=設定量 -LongFail=選擇失敗\n演出長度 -FlashyCombo=Combo到50\n閃光效果 -GameplayFooter=遊戲中\n設定項目表示欄 -FancyUIBG=背景特殊物件 -TimingDisplay=歌曲進度條\n校時點 - -[OptionExplanations] -AutoSetStyle=讓玩家可直接選擇可游玩的遊戲類型(需重開Stepmania). -NotePosition=選擇判定區的位置. -ComboOnRolls=選擇是否在連鍵擊中期間增加combo數. -ComboUnderField=選擇是否讓combo顯示在箭頭下面. - -GameplayShowScore=選擇是否在遊戲中顯示分數. -GameplayShowStepsDisplay=選擇是否顯示譜面資訊. -ShowLotsaOptions=選擇顯示設定量. &oq;Few&cq;為最小量, &oq;Many&cq;為最大量. -LongFail=選擇失敗演出方式長度. -FlashyCombo=選擇combo記數到50時數否發出閃光. -GameplayFooter=選擇是否用圖片擋住遊戲畫面上下邊. -FancyUIBG=選擇是否使用背景特殊物件, 若是較舊的機器可選擇關. -TimingDisplay=選擇是否在歌曲進度條顯示校時點. - -ScoringType=選擇喜好計分樣式,在組曲模式中仍會使用預設計分樣式. - -Speed=改變速度. \n「X」為一般倍數. \n「C」為固定BPM數. \n「M」為最大BPM數壓抑. -Accel=選擇加速、減速或是其他調整箭頭速度的特效. -Effect=選擇譜面與判定區特效. -Appearance=選擇隱藏鍵頭特效. -Turn=改變譜面排列方式. -Insert=選擇要插入箭頭的類型. -Holds=選擇長鍵項目. -Mines=增加或是移除炸彈. -PlayerAutoPlay=選擇自動遊玩類型. -ScoreDisplay=選擇分數顯示方式. -ProTiming=選擇使用專家判定, 這將會置換成更精準的判定時間表. -Scroll=選擇譜面滾動特效. -NoteSkins=選擇箭頭樣式. -Handicap=選擇譜面簡化方式, 這將無法紀錄最高分. -Hide=選擇要隱藏的項目. -Persp=改變視角方式. -Steps=選擇譜面難度. -Characters=選擇3D角色. -SaveToProfileHelp=選擇紀錄位置, 需有個人檔案或是記憶卡. -MusicRateHelp=改變歌曲撥放速度,選擇「Haste」會慢慢改變歌曲播放速度. - -[StepsListDisplayRow StepsType] -Dance_Single=4 -Dance_Double=8 -Dance_Couple=8 -Dance_Solo=6 -Dance_Routine=8 -Dance_Threepanel=3 -Pump_Single=5 -Pump_Double=10 -Pump_Halfdouble=6 -Pump_Couple=5 -Pump_Routine=10 -Kb7_Single=7 -Ez2_Single=ES -Ez2_Double=ED -Ez2_Real=ER -Para_Single=PS -Ds3ddx_Single=XS -Bm_Single5=5 -Bm_Double5=10 -Bm_Single7=7 -Bm_Double7=14 -Maniax_Single=MS -Maniax_Double=MD -Techno_Single4=4 -Techno_Single5=5 -Techno_Single8=8 -Techno_Double4=D4 -Techno_Double5=D5 -Techno_Double8=D8 -Pnm_Five=5 -Pnm_Nine=9 -Guitar_Five=5 -Karaoke=V -Lights_Cabinet=! - -[ScreenHowToInstallSongs] -BodyHeader=尋找StepMania歌曲檔案與安裝方法 -Finding Songs=從何處找到歌曲檔案 -Installing Songs=如何安裝歌曲檔案 -Importing Songs=如何導入已安裝的Stepmania檔案 -Reload Songs=如何重新讀取歌曲 -Exit=離開 - -Explanation-WhereToFind=開啟瀏覽器使用關鍵字「Stepmania Simfile」可以找到歌曲檔案. -Explanation-HowToInstall=在「Songs」建立專輯資料夾再放進歌曲檔案, 若是.smzip安裝包可自動安裝. -Explanation-AdditionalFolders=如果你有在其他地方安裝StepMania檔案, 你可以使用AdditionalFolders參考去讀取到StepMania 5. -Explanation-ReloadSongs=當你增加/變更/刪除歌曲時會在Stepmania啟動時重新讀取歌曲, 若有使用快速讀取時會忽略已變更的歌曲. -Explanation-Exit=回到標題畫面. - -[OptionNames] -Custom=Special -Many=Many -Few=Few -Normal=Normal -Lower=Lower -Short=Short -Long=Long - -[ScreenTestInput] -HelpText=按住 &BACK; 或 &START; 離開. - -[PaneDisplay] -Taps=箭頭數 -Jumps=雙鍵數 -Holds=長鍵數 -Mines=炸彈數 -Hands=多鍵數 -Rolls=連鍵數 -Lifts=離鍵數 -Fakes=假鍵數 -S=S -V=V -A=A -F=F -C=C - -[ScreenMapControllers] -Exit=Exit - -[ScreenGameOver] -GAME OVER=GAME OVER -Play again soon!=Play again soon! - -[ScreenHowToPlay] -How To Play StepMania=How To Play StepMania -Information=Information - -Feet=Your feet will be used to play! -Tap=When the arrows rise to this point,\nstep on the matching panels. -Jump=Step on both panels if two different\narrows appear at the same time! -Miss=If you misstep repeatedly, your dance\ngauge will decrease until the game\nis over! - - -[Protiming] -MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/default/metrics.ini stepmania-5.1.0+dfsg/Themes/default/metrics.ini --- stepmania-5.0.12+dfsg/Themes/default/metrics.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -3,7 +3,11 @@ FallbackTheme=_fallback [Common] -FirstAttractScreen="" +# How big the design of the theme is. for example, if a theme was designed for +# 1080p, it would be shrunken for 640x480, as well as that, if it was designed +# for 480p, it would be enlarged for bigger screens! +ScreenWidth=1 +ScreenHeight=720 AutoSetStyle=ThemePrefs.Get("AutoSetStyle") # 02 # @@ -14,311 +18,61 @@ [SongManager] NumSongGroupColors=1 # -SongGroupColor1=BoostColor(Color("Orange"),1.25) - +SongGroupColor1=Color("White") CourseGroupColor1=color("1,1,1,1") +ExtraColor=color("#F5BCBC") -- purple [UnlockManager] -# 03 # -[ArrowEffects] - -[Background] - -[Banner] - -[BPMDisplay] -SetNoBpmCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); -SetNormalCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); -SetChangeCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); -SetRandomCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,color("Green");textglowmode,'TextGlowMode_Inner';glowshift;effectcolor1,color("1,1,1,0.05");effectcolor2,color("1,1,1,0.325"); -SetExtraCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.5);diffuseshift;effectcolor1,color("1,1,1,1");effectcolor2,color("0.475,0.475,0.475,1"); -RandomCycleSpeed=0.2 -- smaller numbers mean the bpm cycles faster - -[CodeDetector] -# For Future Reference: -# @ = Holding -# - = In Conjuction With / Then -# ~ = Released -# + = At The Same Time - -[CodeDetectorOnline] - -[CombinedLifeMeterTug] -# We don't use it. -MeterWidth=512-8 -MeterHeight=40 - -[Combo] -ShowComboAt=2 - -LabelMinZoom=0.875*1 -LabelMaxZoom=0.875*1 - -PulseCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.05*param.Zoom); self:linear(0.05); self:zoom(param.Zoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; -PulseLabelCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.0125*param.LabelZoom); self:linear(0.05); self:zoom(param.LabelZoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; -NumberOnCommand=y,240-216-1.5;shadowlength,1;horizalign,right;vertalign,bottom;skewx,-0.125; - -ComboLabelOnCommand=x,0;y,23;shadowlength,1;zoom,0.75;align,0,1 -MissLabelOnCommand=x,0;y,23;shadowlength,1;zoom,0.75;align,0,1 - -[HoldJudgment] -HoldJudgmentLetGoCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.8;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 -HoldJudgmentHeldCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.3;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 - -[HelpDisplay] -TipShowTime=7 - -[Judgment] -JudgmentW1Command=finishtweening;shadowlength,0;y,0;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0;glowblink;effectperiod,0.05;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25") -JudgmentW2Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 -JudgmentW3Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.2;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; -JudgmentW4Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.1;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; -JudgmentW5Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.0;vibrate;effectmagnitude,1,2,2;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 -JudgmentMissCommand=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1;y,-20;linear,0.8;y,20;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 -# Late/Early -OffsetOnCommand= -OffsetLateCommand= -OffsetEarlyCommand= - -[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"; +[ScreenSystemLayer] +ShowClock=true +CreditsP1OnCommand=horizalign,left;vertalign,bottom;zoom,1;shadowlength,1;diffuse,ColorLightTone(PlayerColor(PLAYER_1));diffusetopedge,color("#FFFFFF");strokecolor,ColorMidTone(PlayerColor(PLAYER_1)); # -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"); -ProtimingW3Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W3"];sleep,2;linear,0.5;diffuse,Color("Invisible"); -ProtimingW4Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W4"];sleep,2;linear,0.5;diffuse,Color("Invisible"); -ProtimingW5Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W5"];sleep,2;linear,0.5;diffuse,Color("Invisible"); -ProtimingMissCommand=finishtweening;diffusealpha,1;zoom,1.15;glow,GameColor.Judgment["JudgmentLine_Miss"];linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_Miss"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +CreditsP2OnCommand=horizalign,right;vertalign,bottom;zoom,1;shadowlength,1;diffuse,ColorLightTone(PlayerColor(PLAYER_2));diffusetopedge,color("#FFFFFF");strokecolor,ColorMidTone(PlayerColor(PLAYER_2)); # -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; - -[Course] - -[CustomDifficulty] - -[DifficultyList] -ItemsSpacingY=24 -NumShownItems=8 -[FadingBanner] -BannerFadeFromCachedCommand=diffusealpha,1;stoptweening;accelerate,0.05;glow,Color.Alpha( Color("White"), 0.45 );decelerate,0.075;diffusealpha,0;glow,Color("Invisible"); -BannerOnCommand= -BannerFadeFromCachedCommand=diffusealpha,1;stoptweening;linear,0.1;glow,Color.Alpha(Color("White"),0.25);decelerate,0.15;glow,Color.Invisible;diffusealpha,0 -BannerFadeOffCommand=diffusealpha,1;stoptweening;linear,0.1;diffusealpha,0 -BannerResetFadeCommand=diffusealpha,1 -BannerRouletteCommand= -BannerRandomCommand= -[Gameplay] - -[GameState] - -[GrooveRadar] - -[GroupList] - -[HighScore] - -[Inventory] - -[LifeMeterBar] -OverOnCommand=diffuse,Color("Orange");diffuserightedge,BoostColor(Color("Orange"),1.5) - -[LifeMeterBattery] -BatteryBlinkTime=0.5 -# -BatteryP1X=0 -BatteryP1Y=0 -BatteryP2X=0 -BatteryP2Y=0 -# -NumLivesP2OnCommand=zoomx,-1 -NumLivesP2LoseLifeCommand=zoomx,-1.5;zoomy,1.5;linear,0.15;zoomx,-1;zoomy,1 - -[LifeMeterBattery Percent] # -PercentP2OnCommand=zoom,0.7;zoomx,-0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2) -DancePointsP2OnCommand=zoom,0.7;zoomx,-0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2) - -[LifeMeterTime] - -[LyricDisplay] - -[NotesWriterSM] - -[OptionRow] -TitleOnCommand=shadowlength,0;skewx,-0.1;uppercase,true;wrapwidthpixels,136;maxheight,42;zoom,0.6 -TitleGainFocusCommand=stoptweening;zoom,0.6375*1.125;bounceend,0.1;diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);strokecolor,Color("Black");zoom,0.6375; -# TitleGainFocusCommand=stoptweening;zoom,0.6375*1.25;bounceend,0.05;diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);strokecolor,Color("Black");zoom,0.6375;thump;effectmagnitude,1,1.05,1;effectclock,'beat' -TitleLoseFocusCommand=diffuse,Color("White");strokecolor,Color("Black");stopeffect; -# -ItemsStartX=SCREEN_CENTER_X-140 -ItemsEndX=SCREEN_CENTER_X+80 -ItemsGapX=12 -ItemsMinBaseZoom=0.5 -ItemsLongRowP1X=SCREEN_CENTER_X-60 -ItemsLongRowP2X=SCREEN_CENTER_X+100 -ItemsLongRowSharedX=SCREEN_CENTER_X -ItemOnCommand=shadowlength,1;zoom,0.55 -ItemGainFocusCommand= -ItemLoseFocusCommand= -TweenSeconds=0.05 -[OptionRowService] - -[OptionRowExit] -FrameOnCommand=visible,true;diffuse,Color("Red"); -FrameX=SCREEN_CENTER_X - -ItemsMinBaseZoom=1 -ItemOnCommand=shadowlength,1;zoom,0.8;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.75);shadowcolor,BoostColor(Color("Red"),0.35) -ItemGainFocusCommand=stoptweening;linear,0.1;zoom,1;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.75) -ItemLoseFocusCommand=stoptweening;decelerate,0.05;zoom,0.8; -ColorSelected=Color("Red") -ColorNotSelected=Color("Red") -ColorDisabled=Color("Red") - -ItemsLongRowP1X=SCREEN_CENTER_X-1024 -ItemsLongRowP2X=SCREEN_CENTER_X+1024 -ItemsLongRowSharedX=SCREEN_CENTER_X - -[OptionsCursor] - -[OptionsCursorP1] -LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_1) -MiddleOnCommand=;diffuse,PlayerColor(PLAYER_1) -RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_1) - -[OptionsCursorP2] -LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_2) -MiddleOnCommand=;diffuse,PlayerColor(PLAYER_2) -RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2) - -[OptionsUnderline] - -[OptionsUnderlineP1] -LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_1) -MiddleOnCommand=;diffuse,PlayerColor(PLAYER_1) -RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_1) - -[OptionsUnderlineP2] -LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_2) -MiddleOnCommand=;diffuse,PlayerColor(PLAYER_2) -RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2) - -[MenuTimer] -Text1OnCommand=horizalign,right;stopeffect;finishtweening;shadowlength,2;strokecolor,Color("Outline"); -Text1FormatFunction=function(fSeconds) fSeconds=math.floor(fSeconds); return string.format("%02.0f",fSeconds) end - -Text2OnCommand=x,2;y,3;stopeffect;stoptweening;halign,0;shadowlength,0;strokecolor,Color("Outline");zoom,0.65 -Text2FormatFunction=function(fSeconds) local remainder=fSeconds-math.floor(fSeconds); local digit=math.floor(remainder*100); return string.format("%02.0f",digit) end - -Warning10Command=diffuseshift;effectperiod,1;effectcolor1,Color.White;effectcolor2,Color.Red; - -[MenuTimerNoSound] +[ScreenJukebox] +MinSecondsToStep=0 +MinSecondsToMusic=0 -[MenuTimerContinue] -Fallback="MenuTimer" -Text1OnCommand=strokecolor,Color.Outline;shadowlength,2 -Text1FormatFunction=function(fSeconds) return string.format("%02.2f",fSeconds) end; +ShowStageDisplay=false -Text2OnCommand=visible,false -Text2FormatFunction=function(fSeconds) return "" end; +ShowLifeMeterBarP1=false +ShowLifeMeterBarP2=false +ScoreP1OnCommand=visible,false +ScoreP2OnCommand=visible,false -[MusicWheel] -SwitchSeconds=0.04 -LockedInitialVelocity=7 +# +[ScreenLogo] +TimerSeconds=20 +ShowHeader=false +ShowFooter=false -RouletteSwitchSeconds=0.04 -RouletteSlowDownSwitches=5 -LockedInitialVelocity=15 - -; linear wheel example: -; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ -; self:y(offsetFromCenter*38); \ -; end; -; 3D wheel example: -; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ -; local curve = math.pi; \ -; local WHEEL_3D_RADIUS = 245; \ -; local rotationx_radians = scale(offsetFromCenter,-numItems/2,numItems/2,-curve/2,curve/2); \ -; self:x( 0 - math.cos(offsetFromCenter/math.pi) ); \ -; self:y( WHEEL_3D_RADIUS * math.sin(rotationx_radians) ); \ -; self:z( -100 + WHEEL_3D_RADIUS * math.cos(rotationx_radians) ); \ -; self:rotationx( rotationx_radians * 180/math.pi ); --[[ to degrees end]] \ -; end; -ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*44 ); self:y( offsetFromCenter*46 ); end -MusicWheelSortOnCommand=fov,90; -MusicWheelSortOffCommand=fov,90; -MusicWheelItemSortOnCommand=zoomy,0;bounceend,0.05;zoomy,1 -MusicWheelItemSortOffCommand=linear,0.05;zoomy,0 -HighlightOnCommand=diffuseramp;effectcolor2,Color.White;effectcolor1,color("1,1,1,0.5");effectclock,'beatnooffset' -HighlightSortOnCommand=stoptweening;decelerate,0.05;glow,Color.Stealth;zoom,1 -HighlightSortOffCommand=stoptweening;accelerate,0.05;glow,Color.Yellow;zoom,1.05 -WheelItemOnDelayOffset=0.04 -WheelItemOffDelayOffset=0.04 - -SectionColor1=Color("Orange") -# -SongRealExtraColor=Color("Red") -SortMenuColor=Color("Orange") +ShowLogo=true +LogoX=SCREEN_CENTER_X +LogoY=SCREEN_CENTER_Y-18 +LogoOnCommand= +LogoOffCommand= -# +ArcadeOverlayX=SCREEN_CENTER_X +ArcadeOverlayY=SCREEN_BOTTOM-60 +ArcadeOverlay.TextX= +ArcadeOverlay.TextY= -UseEasyMarkerFlag=true - - -[CourseWheel] - -[OniWheel] -Fallback="CourseWheel" -ModeMenuChoiceNames="Oni,Survival" +NextScreen="ScreenDemonstration" -[OnlineMusicWheel] +[ScreenDemonstration] +ShowStageDisplay=false -[MusicWheelItem] -WheelNotifyIconX=-128-16+0.5 -WheelNotifyIconOnCommand=shadowlength,2; -# -SongNameX=-120 -# -CourseX=-120 -CourseOnCommand=maxwidth,208;horizalign,left -# -SectionExpandedX=-38 -SectionExpandedY=-2 -SectionExpandedOnCommand=maxwidth,194;shadowlength,1;shadowcolor,color("0.1,0.1,0.1,0.25") -# -SectionCollapsedX=-38 -SectionCollapsedY=-2 -SectionCollapsedOnCommand=maxwidth,194;shadowlength,1;shadowcolor,color("0.1,0.1,0.1,0.2") -# -SectionCountX=120 -SectionCountOnCommand=zoom,0.75;strokecolor,Color("Outline") -# -RouletteOnCommand=maxwidth,400;shadowlength,1;basezoom,0.75;rainbowscroll,true;pulse;effectmagnitude,1,1.125,1;effectperiod,3 -# -SortX=-132 -SortY=-2 -SortOnCommand=maxwidth,256;horizalign,left;shadowlength,1;shadowcolor,color("0,0,0,0.325") -# -ModeX=-132 -ModeY=-2 -ModeOnCommand=maxwidth,256;horizalign,left;strokecolor,Color("Outline") -# -GradeP1X=106+16 -GradeP1Y=-8 -GradeP2X=110+16 -GradeP2Y=8 +ShowLifeMeterBarP1=false +ShowLifeMeterBarP2=false -[NoteField] -ShowBoard=true +ScoreP1OnCommand=visible,false +ScoreP2OnCommand=visible,false -[PlayerStageStats] [Player] # In The Groove @@ -333,236 +87,20 @@ ComboUnderField=ComboUnderField() RollBodyIncrementsCombo=ThemePrefs.Get("ComboOnRolls") -[PlayerOptions] - -[PlayerShared] - -[Profile] - -[RadarValues] - -[RollingNumbers] - -[RollingNumbersEvaluation] - -[RollingNumbersJudgment] - -[ScoreDisplayNormal] -TextOnCommand=shadowlength,1; - -[ScoreDisplayOni] -TextX= -TextY= -TextOnCommand=shadowlength,1; -TextOffCommand= - -[ScoreDisplayOni Numbers] -TextX= -TextY= -TextOnCommand=shadowlength,1; -TextOffCommand= - -[ScoreDisplayLifeTime] -FrameOnCommand=visible,false;spin -# -TimeRemainingY=80 -TimeRemainingOnCommand=zoom,1;shadowlength,1; -# -DeltaSecondsOnCommand=y,80; -DeltaSecondsGainLifeCommand=zoom,0.5; - -[ScoreDisplayPercentage Percent] -PercentP1OnCommand=shadowlength,1;strokecolor,Color.Outline -PercentP2OnCommand=shadowlength,1;strokecolor,Color.Outline -DancePointsP1OnCommand=shadowlength,1;strokecolor,Color.Outline -DancePointsP2OnCommand=shadowlength,1;strokecolor,Color.Outline - -[ScoreDisplayRave] -MeterP1OnCommand=draworder,-1;texcoordvelocity,1,0 -MeterP2OnCommand=draworder,-1;zoomx,-1;texcoordvelocity,1,0 -LevelP1OnCommand=draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_1) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );x,-144;skewx,-0.125; -LevelP2OnCommand=draworder,105;draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_2) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );x,144;skewx,-0.125; - -[ScoreKeeperRave] - -[ScreenEvaluation Percent] -# TODO: Better name? -PercentP1OnCommand=horizalign,right;shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); -PercentP2OnCommand=horizalign,right;shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); -PercentRemainderP1OnCommand=horizalign,left;shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); -PercentRemainderP2OnCommand=horizalign,left;shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); -DancePointsP1X=0 -DancePointsP1Y=0 -DancePointsP1OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); -DancePointsP1OffCommand= -DancePointsP2X=0 -DancePointsP2Y=0 -DancePointsP2OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); -DancePointsP2OffCommand= -DancePointsDigits=2 -ApplyScoreDisplayOptions=true -PercentDecimalPlaces=2 -PercentTotalSize=5 - -[SoundEffectControl] - -[SoundEffectControl_Off] - -[SoundEffectControl_Speed] - -[SoundEffectControl_Pitch] - -[StepsDisplayListRow] -# TODO: Make this use DifficultyList? -CapitalizeDifficultyNames=false -NumShownItems=5 -ItemsSpacingY=24 -MoveCommand=decelerate,0.05 - -FrameX= - -FrameSetCommand=%function(self,param) \ - if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ - self:diffuse(ColorMidTone( CustomDifficultyToColor(param.CustomDifficulty) )); \ - else \ - self:diffuse(color('1,1,1,1')); \ - end; \ -end; -# -NumTicks=10 -MaxTicks=10 -# -ShowMeter=true -MeterX=56 -MeterOnCommand=shadowlength,1;zoom,0.65;textglowmode,'TextGlowMode_Inner'; -MeterSetCommand=%function(self,param) \ - if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ - end; \ - if param.Meter then \ - if param.Meter >= 10 then \ - self:textglowmode('TextGlowMode_Inner'); \ - self:glowshift(); \ - else \ - self:stopeffect(); \ - end; \ - end; \ -end; -# -ShowDescription=true -DescriptionX=ThemePrefs.Get("AutoSetStyle") and (-64-8+20) or (-64-8) -DescriptionOnCommand=shadowlength,1;horizalign,left;zoom,0.65;maxwidth,128+8-20;uppercase,true; -DescriptionSetCommand=%function(self,param) \ - if self:GetText() == "" then \ - self:settext("Edit"); \ - end; \ - if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ - end; \ -end; -# -ShowAutogen=true -AutogenX=0 -AutogenY=0 -AutogenOnCommand=diffuseshift;effectcolor1,Color.Alpha( Color("Green") , 0.5 );effectcolor2,ColorMidTone( Color("Green") ); -#AutogenOnCommand=zoom,0.75; -# -ShowStepsType=ThemePrefs.Get("AutoSetStyle") -StepsTypeX=-64-8 -StepsTypeY=0 -StepsTypeOnCommand= -StepsTypeSetCommand= - -[SongMeterDisplay] -StreamWidth=380 - -ContainerX= -ContainerY= -ContainerOnCommand= -ContainerOffCommand= - -FrameX=0 -FrameY=0 -FrameOnCommand=sleep,2;linear,0.25;diffuse,Color("Orange");glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 -FrameOffCommand= - -StreamX=0 -StreamY=0 -StreamOnCommand=0 -StreamOffCommand=0 - -TipX=0 -TipY=0 -TipOnCommand= -TipOffCommand= -[SongMeterDisplayP1] -Fallback="SongMeterDisplay" -FrameOnCommand=sleep,2;linear,0.25;diffuse,PlayerColor(PLAYER_1);glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 -[SongMeterDisplayP2] -Fallback="SongMeterDisplay" -FrameOnCommand=sleep,2;linear,0.25;diffuse,PlayerColor(PLAYER_2);glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 - -[StepsDisplayEvaluation] -Fallback="StepsDisplay" - -[StreamDisplay] -; a simple bar life meter: -; PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) local native_width=32; local zoomed_width=12; self:zoomx(zoomed_width/native_width); self:x((itemIndex-(numItems/2))*zoomed_width); end -# PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ - # local fItemWidth = ( 256 / numItems ) \ - # self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ - # self:zoomtowidth(fItemWidth); \ - # self:diffuseramp(); \ - # self:effectperiod(4); \ - # self:effectoffset((itemIndex-1)/numItems * -1); \ - # self:effectcolor2(color("1,1,1,1")); \ - # self:effectcolor1(color("0.5,0.5,0.5,1")); \ - # self:effectclock('beatnooffset'); \ -# end; -PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ - local offset = itemIndex / numItems \ - local rate = 4 \ - local fItemWidth = ( 256 / numItems ) \ - self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ - self:zoomtowidth(fItemWidth); \ - self:diffuseramp(); \ - self:effectcolor2(color("1,1,1,1")); \ - self:effectcolor1(color("0.5,0.5,0.5,1")); \ - self:effectperiod(rate); \ - self:effectclock('beat'); \ - self:effectoffset(1-offset); \ -end; -# PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ - # local fItemWidth = ( 256 / numItems ) \ - # self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ - # self:zoomtowidth(fItemWidth); \ - # self:diffuseramp(); \ - # self:effecttiming(1,0.01875*itemIndex,1,1-(0.01875*itemIndex)); \ - # self:effectclock('beatnooffset'); \ -# end; -TextureCoordScaleX=256/16 -NumPills=16 - -[TextBanner] -TitleOnCommand=horizalign,left;shadowlength,1; -SubtitleOnCommand=horizalign,left;shadowlength,1; -ArtistOnCommand=horizalign,left;shadowlength,1;skewx,-0.2 -ArtistPrependString="" - -[TextBannerHighScore] -Fallback="TextBanner" - -[WheelNotifyIcon] +# 03 # -[Screen] +[ScreenInit] +ShowHeader=false +ShowFooter=false +PrepareScreens="ScreenTitleMenu,ScreenTitleJoin" +GroupedScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" +PersistScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" [ScreenDebugOverlay] -BackgroundColor=color("0,0,0,0.75") +BackgroundColor=color("0,0,0,0.8") LineOnColor=Color.White -LineOffColor=color("0.75,0.75,0.75,1") +LineOffColor=color("0.5,0.5,0.5,1") LineStartY=SCREEN_TOP+50 LineSpacing=19 LineButtonX=SCREEN_CENTER_X-50 @@ -570,12 +108,12 @@ ButtonTextOnCommand=NoStroke;zoom,0.8;shadowlength,1 ButtonTextToggledCommand=linear,0.025;textglowmode,'TextGlowMode_Inner';glow,color("1,0,0,1");sleep,0.125;decelerate,0.2;glow,color("1,0,0,0"); -FunctionTextOnCommand=NoStroke;zoom,0.8;skewx,-0.125;shadowlength,1 +FunctionTextOnCommand=NoStroke;zoom,0.8;shadowlength,1 PageStartX=SCREEN_CENTER_X-100 PageSpacingX=120 PageTextOnCommand=NoStroke;zoom,0.75;strokecolor,Color.Outline; -PageTextGainFocusCommand=diffuse,color("1,1,1,1");skewx,-0.125; +PageTextGainFocusCommand=diffuse,color("1,1,1,1"); PageTextLoseFocusCommand=diffuse,color("0.6,0.6,0.6,1") DebugMenuHeaderX=SCREEN_LEFT+80 @@ -585,30 +123,177 @@ HeaderTextX=SCREEN_LEFT+80 HeaderTextY=SCREEN_TOP+18 -HeaderTextOnCommand=textglowmode,'TextGlowMode_Inner';glowshift;effectperiod,4;skewx,-0.125;diffusebottomedge,color("0.75,0.75,0.75,1");strokecolor,Color.Outline +HeaderTextOnCommand=textglowmode,'TextGlowMode_Inner';glowshift;effectperiod,4;diffusebottomedge,color("0.75,0.75,0.75,1");strokecolor,Color.Outline HeaderTextOffCommand= # -[ScreenSystemLayer] -ShowClock=true -CreditsP1OnCommand=horizalign,left;vertalign,bottom;zoom,0.675;shadowlength,1;diffuse,PlayerColor(PLAYER_1);diffusetopedge,ColorLightTone(PlayerColor(PLAYER_1)); +[ScreenPrompt] +ShowHeader=false +ShowFooter=false + +[ScreenTextEntry] +ShowHeader=false +ShowFooter=false + +[ScreenTitleMenu] +ShowHeader=false +ShowFooter=false + +ShowLogo=true +LogoX=SCREEN_CENTER_X +LogoY=SCREEN_CENTER_Y-108 +LogoOnCommand= +LogoOffCommand= # -CreditsP2OnCommand=horizalign,right;vertalign,bottom;zoom,0.675;shadowlength,1;diffuse,PlayerColor(PLAYER_2);diffusetopedge,ColorLightTone(PlayerColor(PLAYER_2)); +ShowTimingDifficulty=true +TimingDifficultyX=50 +TimingDifficultyY=50 +TimingDifficultyOnCommand=horizalign,left +TimingDifficultyOffCommand= # +ShowLifeDifficulty=true +LifeDifficultyX=50+(240) +LifeDifficultyY=50 +LifeDifficultyOnCommand=horizalign,left +LifeDifficultyOffCommand= +# +CurrentGametypeX=50+(240*2) +CurrentGametypeY=50 +CurrentGametypeOnCommand=horizalign,left +CurrentGametypeOffCommand= +# +ShowNumSongs=true +NumSongsX=16 +NumSongsY=110 +NumSongsOnCommand=horizalign,left;zoom,0.7;shadowlength,1;diffuse,color("#33312D");playcommand,"Set" +NumSongsOffCommand= +ShowCurrentGametype=true +# +ShowSystemDirection=false +SystemDirectionX=SCREEN_LEFT+40 +SystemDirectionY=SCREEN_TOP+24 +SystemDirectionOnCommand=diffuse,color("#33312D"); +SystemDirectionOffCommand= +# +ShowVersionInfo=true +VersionInfoX=SCREEN_RIGHT-16 +VersionInfoY=SCREEN_TOP+24 +VersionInfoOnCommand=diffuse,color("#33312D"); +VersionInfoOffCommand= +# +ShowNetworkStatus=true +NetworkStatusX=SCREEN_LEFT+12 +NetworkStatusY=SCREEN_BOTTOM-64 +NetworkStatusOnCommand=halign,0; +NetworkStatusOffCommand=linear,0.5;cropright,1 +# +WrapScroller=false +ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((46)*(itemIndex-(numItems-1)/2)); end; +ScrollerSecondsPerItem=0 +ScrollerNumItemsToDraw=20 +ScrollerX=SCREEN_CENTER_X +ScrollerY=SCREEN_CENTER_Y+140 +ScrollerOnCommand=zoom,0;smooth,0.35;zoom,1 +# + +[ScreenCaution] +ShowHeader=false +ShowFooter=false +ShowHelp=false -[ScreenConsoleOverlay] +[ScreenCredits] +ShowHeader=false +ShowFooter=false +ShowHelp=false -[ScreenInstallOverlay] +[ScreenHighScores] +Fallback="ScreenWithMenuElements" +ShowFooter=false +ShowHelp=false +ResetGameState=false +AttractVolume=true -[ScreenSyncOverlay] +FOV=90 -[ScreenStatsOverlay] +ScrollerItemsToDraw=9 +ScrollerOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;SetMask,624,80;draworder,-5 +ScrollerItemTransformFunction=function(self,offset,itemIndex,numItems) \ + self:y(92 * offset); \ +end; -[ScreenWithMenuElements] -WaitForChildrenBeforeTweening=true +[ScreenProfileLoad] +ShowHeader=false +ShowFooter=false +ShowHelp=false -ScreenInDelay=0 -ScreenOutDelay=0 +[ScreenProfileSave] +ShowHeader=false +ShowFooter=false +ShowHelp=false + +[ScreenMapControllers] +ShowHeader=false +ShowFooter=true +DevicesX=SCREEN_CENTER_X +DevicesY=SCREEN_TOP+8 +DevicesOnCommand=vertalign,top;maxheight,92;zoom,0.75;draworder,5;strokecolor,color("0,0,0,1") +DevicesOffCommand= +# +# The ListHeader parts are the row that the player's cursor starts on with +# the names of the columns. +ListHeaderP1S1Command=x,SCREEN_CENTER_X-270-80 +ListHeaderP1S2Command=x,SCREEN_CENTER_X-195-40 +ListHeaderP1S3Command=x,SCREEN_CENTER_X-120 +ListHeaderP2S1Command=x,SCREEN_CENTER_X+120 +ListHeaderP2S2Command=x,SCREEN_CENTER_X+195+40 +ListHeaderP2S3Command=x,SCREEN_CENTER_X+270+80 +# ListHeaderCenterOnCommand is for the center element of the ListHeader. +ListHeaderCenterOnCommand=x,SCREEN_CENTER_X;y,-6;zoom,0.7;shadowlength,1;ztest,true +# These commands are shared by all the ListHeader parts. +ListHeaderOnCommand=diffuse,color("#808080");shadowlength,0;max_dimension_use_zoom,true;zoom,0.75;maxwidth,130; +ListHeaderGainFocusCommand=diffuse,color("#808080");diffuseshift;effectcolor2,color("#808080");effectcolor1,color("#FFFFFF") +ListHeaderLoseFocusCommand=diffuse,color("#808080");stopeffect +# The positions of the elements showing what is mapped. +MappedToP1S1Command=x,SCREEN_CENTER_X-270-80 +MappedToP1S2Command=x,SCREEN_CENTER_X-195-40 +MappedToP1S3Command=x,SCREEN_CENTER_X-120 +MappedToP2S1Command=x,SCREEN_CENTER_X+120 +MappedToP2S2Command=x,SCREEN_CENTER_X+195+40 +MappedToP2S3Command=x,SCREEN_CENTER_X+270+80 +# These commands are shared between all the elements. +MappedToOnCommand=diffuse,color("#808080");shadowlength,0;zoom,0.75;max_dimension_use_zoom,true;maxwidth,130 +# WaitingCommand is executed when the player hits enter to set a key. +MappedToWaitingCommand=diffuse,color("#FF8080");pulse;effectperiod,0.5;effectmagnitude,0.8,1.3,0 +# MappedInputCommand is executed after the player maps the key. +MappedToMappedInputCommand=diffuse,color("#808080");diffuseshift;effectcolor2,color("#808080");effectcolor1,color("#FFFFFF") +MappedToGainFocusCommand=diffuse,color("#808080");diffuseshift;effectcolor2,color("#808080");effectcolor1,color("#FFFFFF") +MappedToLoseFocusCommand=diffuse,color("#808080");stopeffect +# GainMarkCommand is executed when the player adds the element to the set list. +MappedToGainMarkCommand=textglowmode,'TextGlowMode_Inner';glow,color("#FF00007f") +# LoseMarkCommand is executed when the player removes the element from the set list. +MappedToLoseMarkCommand=textglowmode,'TextGlowMode_Inner';glow,color("#FF000000") +# +# The LineScroller is an ActorScroller that controls the positioning of the +# rows. +LineScrollerOnCommand=%function(self) self:draworder(-1); self:y(64) self:setsecondsperitem(0.1) self:SetTransformFromHeight(36) end +LineScrollerOffCommand= +LineHideCommand=visible,false +LineOnCommand=%function(self) self:y(0); self:visible(true); local LeftToRight = math.mod(self.ItemIndex, 2) == 0 and 1 or -1; self:addx(-SCREEN_WIDTH * LeftToRight); end +LineOffCommand=%function(self) local LeftToRight = math.mod(self.ItemIndex, 2) == 0 and 1 or -1; self:stoptweening() self:accelerate(0.3); self:addx(SCREEN_WIDTH * LeftToRight); self:queuecommand('Hide') end +# +# The "P1 slots" and "P2 slots" labels. Use the entries in en.ini to change text. +LabelP1OnCommand=x,SCREEN_CENTER_X*0.4;zoom,0.7;shadowlength,1 +LabelP1OffCommand=linear,0.5;diffusealpha,0 +LabelP2OnCommand=x,SCREEN_CENTER_X*1.6;zoom,0.7;shadowlength,1 +LabelP2OffCommand=linear,0.5;diffusealpha,0 +# The primary effect of keys on this row. +PrimaryOnCommand=x,SCREEN_CENTER_X;y,-6;zoom,0.7;shadowlength,1;ztest,true +# The secondary effect of keys on this row. +SecondaryOnCommand=x,SCREEN_CENTER_X;y,6;zoom,0.5;shadowlength,1;ztest,true +# 06 # + +[ScreenWithMenuElements] +WaitForChildrenBeforeTweeningOut=true FOV=90 ShowHeader=true @@ -619,33 +304,30 @@ ShowFooter=true FooterX=SCREEN_CENTER_X -FooterY=SCREEN_BOTTOM+4 -FooterOnCommand=draworder,1; -FooterOffCommand= +FooterY=SCREEN_BOTTOM-10 +FooterOnCommand=draworder,5;y,SCREEN_BOTTOM+64;decelerate,0.4;y,SCREEN_BOTTOM; +FooterOffCommand=sleep,0.175;decelerate,0.4;y,SCREEN_BOTTOM+64; + +TimerX=SCREEN_RIGHT-60 +TimerY=SCREEN_TOP+45 +TimerOnCommand=draworder,10;diffuse,color("#fcb62c");zoom,0;sleep,0.3;smooth,0.3;zoom,0.75; +TimerOffCommand=smooth,0.2;zoom,0; +StageDisplayNumberOffset=1 +ScreenInDelay=0 +ScreenOutDelay=0 +# ShowHelp=true HelpX=SCREEN_CENTER_X -HelpY=SCREEN_BOTTOM-16 -HelpOnCommand=SetSecsBetweenSwitches,4;zoom,0.675;maxwidth,480/0.675;shadowlength,1;strokecolor,Color("Black");draworder,105;zoomy,0;zoom,1*0.675;linear,0.175 -HelpOffCommand=linear,0.175;zoomy,0 +HelpY=SCREEN_BOTTOM-26 +HelpOnCommand=SetSecsBetweenSwitches,4;zoom,1;maxwidth,720;shadowlength,1;diffuse,color("#FFFFFF");draworder,105;addy,64;decelerate,0.4;addy,-64; +HelpOffCommand=sleep,0.175;decelerate,0.4;addy,64; AlternateHelpDisplayX=SCREEN_CENTER_X -AlternateHelpDisplayY=SCREEN_BOTTOM-16 +AlternateHelpDisplayY=SCREEN_BOTTOM-26 # AlternateHelpDisplayOnCommand=draworder,105; -AlternateHelpDisplayOnCommand=SetSecsBetweenSwitches,4;zoom,0.675;maxwidth,480/0.675;shadowlength,1;strokecolor,Color("Black");draworder,105;zoomy,0;linear,0.175;zoom,1*0.675;diffusealpha,0 -AlternateHelpDisplayOffCommand=linear,0.175;zoomy,0 - -TimerX=SCREEN_RIGHT-36-4 -TimerY=SCREEN_TOP+23 -TimerOnCommand=draworder,2;visible,PREFSMAN:GetPreference("MenuTimer"); -# TimerOnCommand=fov,90;vanishpoint,SCREEN_RIGHT-36-4,SCREEN_TOP+20;draworder,5;visible,PREFSMAN:GetPreference("MenuTimer");rotationy,90;decelerate,0.4;rotationy,0; -TimerOffCommand= -# TimerOffCommand=accelerate,0.4;rotationx,90; - -StageDisplayNumberOffset=1 - -# -StageDisplayUseShortString=false +AlternateHelpDisplayOnCommand=SetSecsBetweenSwitches,4;zoom,1;maxwidth,720;shadowlength,1;diffuse,color("#FFFFFF");diffusealpha,0;draworder,105;addy,64;decelerate,0.4;addy,-64; +AlternateHelpDisplayOffCommand=sleep,0.175;decelerate,0.4;addy,64; # This is useful ArcadeOverlayX= @@ -658,110 +340,238 @@ ArcadeOverlay.TextOnCommand= ArcadeOverlay.TextOffCommand= -[ScreenWithMenuElementsBlank] -ShowHeader=false -ShowFooter=false - -[ScreenSelectMaster] - -[ScreenSelectMasterBlank] - -[ScreenTextEntry] -QuestionOnCommand=diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);wrapwidthpixels,600 -AnswerOnCommand=diffuse,Color("Blue");glowshift; - - -[ScreenInit] -PrepareScreens="ScreenTitleMenu,ScreenTitleJoin" -GroupedScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" -PersistScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" - -[ScreenTitleMenu] -ShowHeader=false -ShowFooter=true +[ScreenOptions] +CursorTweenSeconds=0.05 # -WrapScroller=false -ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((28)*(itemIndex-(numItems-1)/2)); end; -ScrollerSecondsPerItem=0 -ScrollerNumItemsToDraw=20 -ScrollerX=SCREEN_CENTER_X -ScrollerY=SCREEN_CENTER_Y+80 -ScrollerOnCommand=zoom,0;bounceend,0.35;zoom,1 +DisqualifyP1X=SCREEN_CENTER_X-176 +DisqualifyP1Y=SCREEN_BOTTOM-98 +DisqualifyP1OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_1 +DisqualifyP2X=SCREEN_CENTER_X+176 +DisqualifyP2Y=SCREEN_BOTTOM-98 +DisqualifyP2OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_2 # -ShowLogo=true -LogoX=SCREEN_CENTER_X-32 -LogoY=SCREEN_CENTER_Y-68 -LogoOnCommand= -LogoOffCommand= +ContainerOnCommand=x,-SCREEN_WIDTH;decelerate,0.35;x,SCREEN_LEFT +ContainerOffCommand=decelerate,0.35;addx,SCREEN_WIDTH; +CursorOnCommand= # -ShowTimingDifficulty=true -TimingDifficultyX=SCREEN_LEFT+16 -TimingDifficultyY=SCREEN_TOP+22 -TimingDifficultyOnCommand= -TimingDifficultyOffCommand= +LineHighlightOnCommand=cropleft,0.1;cropright,0.1;zoomx,1.25;fadeleft,0.05;faderight,0.05;diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25");effectclock,'beat' +LineHighlightChangeCommand=linear,0.1;diffuse,Color("White");diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25") +LineHighlightChangeCommand=linear,0.1;diffuse,Color("White");diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25") +LineHighlightChangeToExitCommand=linear,0.1;diffuse,Color("Red");diffuseshift;effectcolor2,color("1,0,0,0.5");effectcolor1,color("1,0,0,0.25") # -ShowLifeDifficulty=true -LifeDifficultyX=SCREEN_LEFT+16 -LifeDifficultyY=SCREEN_TOP+44 -LifeDifficultyOnCommand= -LifeDifficultyOffCommand= +LineHighlightP1OnCommand=diffuse,PlayerColor(PLAYER_1);zoomtowidth,720; +LineHighlightP1ChangeCommand=finishtweening;diffusealpha,1; +LineHighlightP1ChangeToExitCommand=finishtweening;diffusealpha,0.15; +LineHighlightP2OnCommand=diffuse,PlayerColor(PLAYER_2);zoomtowidth,720; +LineHighlightP2ChangeCommand=finishtweening;diffusealpha,1; +LineHighlightP2ChangeToExitCommand=finishtweening;diffusealpha,0.15; # -ShowNumSongs=true -NumSongsX=SCREEN_LEFT+16 -NumSongsY=SCREEN_TOP+68 -NumSongsOnCommand=vertalign,bottom;horizalign,left;zoom,0.5;shadowlength,1;playcommand,"Set" -NumSongsOffCommand= -ShowCurrentGametype=true +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-213+50*offsetFromCenter) end # -CurrentGametypeX=SCREEN_LEFT+16 -CurrentGametypeY=SCREEN_TOP+84 -CurrentGametypeOnCommand=vertalign,bottom;horizalign,left;zoom,0.5;shadowlength,1 -CurrentGametypeOffCommand= +ShowExitRow=true +SeparateExitRow=true +SeparateExitRowY=SCREEN_CENTER_Y+190 # -ShowSystemDirection=false -SystemDirectionX=SCREEN_LEFT+40 -SystemDirectionY=SCREEN_TOP+24 -SystemDirectionOnCommand= -SystemDirectionOffCommand= +ShowScrollBar=true +ScrollBarHeight=420 +ScrollBarTime=0.05 +ScrollBarX=SCREEN_CENTER_X+450 +ScrollBarY=SCREEN_CENTER_Y-20 # -ShowVersionInfo=true -VersionInfoX=SCREEN_RIGHT-16 -VersionInfoY=SCREEN_TOP+24 -VersionInfoOnCommand= +ShowExplanations=true +ExplanationP1X=SCREEN_CENTER_X-450+10 +ExplanationP1Y=SCREEN_CENTER_Y+250 +ExplanationP1OnCommand=diffuse,ColorDarkTone(PlayerColor(PLAYER_1));wrapwidthpixels,310/0.5;zoom,0.7;halign,0;cropright,1;linear,0.5;cropright,0;vertspacing,4; +ExplanationP1OffCommand= +ExplanationP2X=SCREEN_CENTER_X+450-10 +ExplanationP2Y=SCREEN_CENTER_Y+250 +ExplanationP2OnCommand=diffuse,ColorDarkTone(PlayerColor(PLAYER_2));wrapwidthpixels,310/0.5;zoom,0.7;halign,1;cropright,1;linear,0.5;cropright,0;vertspacing,4; +ExplanationP2OffCommand= +ExplanationTogetherX=SCREEN_CENTER_X +ExplanationTogetherY=SCREEN_CENTER_Y+245 +ExplanationTogetherOnCommand=stoptweening;zoom,0.6;diffuse,color("#000000");wrapwidthpixels,960/0.8;cropright,1;linear,0.5;cropright,0;vertspacing,-14 +ExplanationTogetherOffCommand=stoptweening + + +[OptionsCursorP1] +LeftOnCommand=horizalign,right;diffuse,ColorLightTone(PlayerColor(PLAYER_1)) +MiddleOnCommand=diffuse,ColorLightTone(PlayerColor(PLAYER_1)) +RightOnCommand=horizalign,left;diffuse,ColorLightTone(PlayerColor(PLAYER_1)) + +[OptionsCursorP2] +LeftOnCommand=horizalign,right;diffuse,ColorLightTone(PlayerColor(PLAYER_2)) +MiddleOnCommand=diffuse,ColorLightTone(PlayerColor(PLAYER_2)) +RightOnCommand=horizalign,left;diffuse,ColorLightTone(PlayerColor(PLAYER_2)) + +[OptionsUnderline] + +[OptionsUnderlineP1] +LeftOnCommand=horizalign,right;diffuse,ColorLightTone(PlayerColor(PLAYER_1)) +MiddleOnCommand=;diffuse,ColorLightTone(PlayerColor(PLAYER_1)) +RightOnCommand=horizalign,left;diffuse,ColorLightTone(PlayerColor(PLAYER_1)) + +[OptionsUnderlineP2] +LeftOnCommand=horizalign,right;diffuse,ColorLightTone(PlayerColor(PLAYER_2)) +MiddleOnCommand=;diffuse,ColorLightTone(PlayerColor(PLAYER_2)) +RightOnCommand=horizalign,left;diffuse,ColorLightTone(PlayerColor(PLAYER_2)) + +[ScreenOptionsMaster] + +[ScreenOptionsSimple] +NumRowsShown=10 +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-210+43*offsetFromCenter) end +ShowExitRow=true +SeparateExitRow=false +SeparateExitRowY=SCREEN_BOTTOM-40 + +ExplanationTogetherX=SCREEN_CENTER_X +ExplanationTogetherY=SCREEN_CENTER_Y+245 +ExplanationTogetherOnCommand=stoptweening;zoom,1;diffuse,color("#512232");wrapwidthpixels,700/0.75;cropright,1;linear,0.5;cropright,0 + +[ScreenOptionsSimpleService] + +[ScreenOptionsService] +ShowHeader=true +LineNames="GameType,GraphicSound,KeyConfig,Arcade,InputOptions,SoundGraphics,Theme,Profiles,Network,Advanced,Reload,Credits" +LineTheme="gamecommand;screen,ScreenOptionsTheme;name,Theme Options" +LineCredits="gamecommand;screen,ScreenCredits;name,StepMania Credits" +# ScreenOptionsSystemDirection" +NumRowsShown=10 +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-210+43*offsetFromCenter) end +SeparateExitRow=false +SeparateExitRowY=SCREEN_BOTTOM-40 +[OptionRowService] +TitleGainFocusCommand=diffuse,color("#9d324e"); +TitleLoseFocusCommand=diffuse,color("#512232"); +TitleOnCommand=maxwidth,600;zoom,0.6 -VersionInfoOffCommand= -# -ShowNetworkStatus=true -NetworkStatusX=SCREEN_LEFT+12 -NetworkStatusY=SCREEN_BOTTOM-64 -NetworkStatusOnCommand=halign,0; -NetworkStatusOffCommand=linear,0.5;cropright,1 -# +[OptionRowExit] +FrameOnCommand=visible,true;diffusealpha,0.2; +FrameX=SCREEN_CENTER_X; + +ItemsMinBaseZoom=1 +ItemOnCommand=zoom,1;uppercase,true;diffuse,color("#A61C17"); +ItemGainFocusCommand=stoptweening;linear,0.1;diffuse,color("#A61C17"); +ItemLoseFocusCommand=stoptweening;decelerate,0.05;diffuse,color("#A61C17"); + +FrameGainFocusCommand=stoptweening;linear,0.1;diffusealpha,1; +FrameLoseFocusCommand=stoptweening;decelerate,0.05;diffusealpha,0.2; + +ColorSelected=color("#A61C17") +ColorNotSelected=color("#A61C17") +ColorDisabled=color("#666666") + +ItemsLongRowP1X=SCREEN_CENTER_X-1024 +ItemsLongRowP2X=SCREEN_CENTER_X+1024 +ItemsLongRowSharedX=SCREEN_CENTER_X -[ScreenQuickSetupOverview] +[ScreenOptionsServiceChild] +ExplanationTogetherX=SCREEN_CENTER_X +ExplanationTogetherY=SCREEN_CENTER_Y+245 +ExplanationTogetherOnCommand=stoptweening;zoom,0.75;diffuse,color("#512232");wrapwidthpixels,700/0.75;cropright,1;linear,0.5;cropright,0 -IconStartX=SCREEN_CENTER_X-160 -IconStartY=SCREEN_BOTTOM-60 -IconSetX=SCREEN_CENTER_X-160 -IconSetY=SCREEN_BOTTOM-60 -IconBackX=SCREEN_CENTER_X+160 -IconBackY=SCREEN_BOTTOM-60 +[ScreenOptionsServiceExtendedChild] -ExplanationX=SCREEN_CENTER_X -ExplanationY=SCREEN_BOTTOM-100 -ExplanationOnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_WIDTH/0.75; -ExplanationOffCommand= +[OptionRow] +TitleX=SCREEN_CENTER_X-440 +TitleGainFocusCommand=diffuse,color("#9d324e"); +TitleLoseFocusCommand=diffuse,color("#320E1B"); +TitleOnCommand=shadowlength,0;wrapwidthpixels,SCREEN_WIDTH*0.4;vertspacing,-6;zoom,0.5;horizalign,left; +ColorSelected=color("#320E1B") +ColorNotSelected=color("#9d324e") +ColorDisabled=color("0.37,0.16,0.29,0.5") +ItemsStartX=SCREEN_CENTER_X-190 +ItemsEndX=SCREEN_CENTER_X+280 +TweenSeconds=0.09 +ItemOnCommand=shadowlength,0;zoom,0.75 +[OptionsUnderline] +Fallback="OptionsCursor" -[ScreenProfileLoad] -# -ShowHeader=true -ShowFooter=true -ShowHelp=true +[OptionsUnderlineP1] +Fallback="OptionsUnderline" +LeftX=0 +MiddleX=0 +RightX=0 +LeftY=14 +MiddleY=14 +RightY=14 + +[OptionsUnderlineP2] +Fallback="OptionsUnderline" +LeftX=0 +MiddleX=0 +RightX=0 +LeftY=17+4 +MiddleY=17+4 +RightY=17+4 + +[ScreenMiniMenu] +HeaderY=SCREEN_TOP +HeaderOnCommand=draworder,100;visible,false +LineHighlightOnCommand= +LineHighlightChangeCommand= +LineHighlightChangeToExitCommand= +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-219+43*offsetFromCenter) end +NumRowsShown=12 +ContainerOnCommand=x,-SCREEN_WIDTH;decelerate,0.35;x,SCREEN_LEFT +ContainerOffCommand=decelerate,0.35;addx,SCREEN_WIDTH; +CursorOnCommand= +ColorDisabled=color("0.37,0.16,0.29,0.5") + +[OptionRowMiniMenu] +Fallback="OptionRow" +TitleX=SCREEN_CENTER_X-400 +TitleOnCommand=horizalign,left;shadowlength,0;zoom,0.6; +ItemsLongRowP1X=SCREEN_CENTER_X-240 +ItemsLongRowP2X=SCREEN_CENTER_X+240+50 +ItemsLongRowSharedX=SCREEN_CENTER_X+200+50 +ItemOnCommand=zoom,1 + +ColorSelected=color("#512232") +ColorNotSelected=color("#9d324e") +ColorDisabled=color("0.37,0.16,0.29,0.5") + +[OptionRowMiniMenuEditHelp] +Fallback="OptionRowMiniMenu" + +TitleOnCommand=halign,0;strokecolor,color("#222222FF");shadowlength,1;zoom,0.5 + +[ScreenOptionsTheme] +Fallback="ScreenOptionsServiceChild" +NextScreen="ScreenOptionsService" +PrevScreen="ScreenOptionsService" +LineNames="gAuto,gNotePos,gScore,TimingDisplay,gOpts,gLongFail,gComboUnderField,FlashyCombo,FancyUIBG,PrefMeter" +LinegNotePos="lua,ThemePrefRow('NotePosition')" +LinegScore="lua,ThemePrefRow('GameplayShowScore')" +LineTimingDisplay="lua,ThemePrefRow('TimingDisplay')" +LinegOpts="lua,ThemePrefRow('ShowLotsaOptions')" +LinegAuto="lua,ThemePrefRow('AutoSetStyle')" +LinegLongFail="lua,ThemePrefRow('LongFail')" +LinegComboUnderField="lua,ThemePrefRow('ComboUnderField')" +LineFlashyCombo="lua,ThemePrefRow('FlashyCombo')" +LineGameplayFooter="lua,ThemePrefRow('GameplayFooter')" +LineFancyUIBG="lua,ThemePrefRow('FancyUIBG')" +LinePrefMeter="lua,ThemePrefRow('PreferredMeter')" + +[ScreenOptionsAdvanced] +LineNames="3,4,8,SI,SM,HN,CC,CM,11,13,14,15,16,28,29,30,31,32,ECPT" +# It might not be wise to put theme-defined options outside the theme options menu, but... +LineCC="lua,ThemePrefRow('CustomComboContinue')" +LineCM="lua,ThemePrefRow('CustomComboMaintain')" + +[ScreenMiniMenuContext] +PageOnCommand=visible,true +NumRowsShown=12 +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-217+43*offsetFromCenter) end +ItemsStartX=SCREEN_CENTER_X+120 +ItemsEndX=SCREEN_CENTER_X+280 +LineHighlightX=SCREEN_CENTER_X -[ScreenSelectProfile] -WaitForChildrenBeforeTweening=true +[OptionRowMiniMenuContext] +Fallback="OptionRowMiniMenu" +TitleX=240 [ScreenSelectStyle] UpdateOnMesage="" @@ -788,74 +598,19 @@ # [ScreenSelectPlayMode] -PersistScreens="ScreenSelectPlayMode,ScreenSelectMusic" -# -ScreenOutDelay=1.5 -# -DefaultChoice="Easy" -# ChoiceNames="Normal,Extended" -# +PerChoiceScrollElement=false PerChoiceIconElement=false # -ShowScroller=true +ShowScroller=false WrapScroller=true -ScrollerX=SCREEN_CENTER_X -ScrollerY=SCREEN_CENTER_Y-60 -ScrollerOnCommand=SetFastCatchup,true; -ScrollerOffCommand=decelerate,0.35;y,SCREEN_CENTER_Y;sleep,1.15;linear,0.1;zoomy,0 -# -ShowBackgroundFrame=false -BackgroundFrameX=SCREEN_CENTER_X -BackgroundFrameY=SCREEN_CENTER_Y-60 -BackgroundFrameOnCommand=diffuse,Color("Black");diffusealpha,0.7 -BackgroundFrameOffCommand=decelerate,0.8;y,SCREEN_CENTER_Y;sleep,1.5;linear,0.1;zoomy,0 -# ShowIcon=true +# UseIconMetrics=true # -IconGainFocusCommand=stoptweening;glowshift;decelerate,0.125;zoom,1; -IconLoseFocusCommand=stoptweening;stopeffect;decelerate,0.125;zoom,0.6; -# IconMinZoom=0.5 -# IconBaseZoom=0.6 -# -IconChoiceEasyX=SCREEN_CENTER_X-(240*(5/6)) -IconChoiceEasyY=SCREEN_BOTTOM-88-64 -IconChoiceEasyOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceEasyOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceNormalX=SCREEN_CENTER_X-80 -IconChoiceNormalY=SCREEN_BOTTOM-88-64 -IconChoiceNormalOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceNormalOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceHardX=SCREEN_CENTER_X+(80*(5/6)) -IconChoiceHardY=SCREEN_BOTTOM-88-64 -IconChoiceHardOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceHardOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceRaveX=SCREEN_CENTER_X+80 -IconChoiceRaveY=SCREEN_BOTTOM-88-64 -IconChoiceRaveOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceRaveOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceNonstopX=SCREEN_CENTER_X-160 -IconChoiceNonstopY=SCREEN_BOTTOM-88 -IconChoiceNonstopOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceNonstopOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceOniX=SCREEN_CENTER_X -IconChoiceOniY=SCREEN_BOTTOM-88 -IconChoiceOniOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceOniOffCommand=linear,0.1175;zoomx,0 -# -IconChoiceEndlessX=SCREEN_CENTER_X+160 -IconChoiceEndlessY=SCREEN_BOTTOM-88 -IconChoiceEndlessOnCommand=zoom,0;bounceend,0.35;zoom,0.8 -IconChoiceEndlessOffCommand=linear,0.1175;zoomx,0 - -[ScreenSelectCharacter] - -[ScreenGameInformation] +IconChoicePosFunction=ScreenSelectStylePositions +IconChoiceOnCommand= +#todo: I'd like the two icons on the lower half (Rave and Oni as it is now) to fly off-screen downwards instead of upwards +IconChoiceOffCommand= [ScreenSelectMusic] UsePlayerSelectMenu=false @@ -864,169 +619,100 @@ # ModeMenuAvailable=(getenv(sMode) == Normal) # HelpDisplay has things added here to make sure it disappears for another # actor, which we defined in this screens decorations. -HelpSelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675;accelerate,0.125;diffusealpha,0;zoom,0.675*0.75; -HelpSelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*0.75;bouncebegin,0.125;diffusealpha,1;zoom,0.675 +HelpSelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675;accelerate,0.125;diffusealpha,0;zoom,1; +HelpSelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*0.75;bouncebegin,0.125;diffusealpha,1;zoom,1 # Clone everything from HelpDisplay: we're lazy ShowAlternateHelpDisplay=true -# AlternateHelpDisplaySelectMenuOpenedMessageCommand=stoptweening;y,SCREEN_BOTTOM-16;accelerate,0.0725/2;y,SCREEN_BOTTOM-16-16;diffusealpha,1;decelerate,0.0725/2;y,SCREEN_BOTTOM-16-32; -# AlternateHelpDisplaySelectMenuClosedMessageCommand=stoptweening;y,SCREEN_BOTTOM-16;smooth,0.125;y,SCREEN_BOTTOM-16;diffusealpha,0; -AlternateHelpDisplaySelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*1.25;bounceend,0.2;diffusealpha,1;zoom,0.675; -AlternateHelpDisplaySelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675;accelerate,0.125;diffusealpha,0;zoom,0.675*0.75; -# -MusicWheelX=SCREEN_CENTER_X+160 -MusicWheelY=SCREEN_CENTER_Y -MusicWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_CENTER_Y;addx,SCREEN_CENTER_X;decelerate,0.1;addx,-SCREEN_CENTER_X -MusicWheelOffCommand=bouncebegin,0.15;zoomx,0; -# -ShowNewSong=not GAMESTATE:IsCourseMode() -NewSongX=SCREEN_CENTER_X-160+128-24 -NewSongY=SCREEN_TOP+160-2 -NewSongOnCommand=finishtweening;diffuse,Color("Orange");diffusetopedge,Color("Yellow");strokecolor,Color("Black");zoom,0.675;draworder,106;playcommand,"Set" -NewSongOffCommand=bouncebegin,0.1;zoom,0;diffusealpha,0 -NewSongShowCommand=finishtweening;diffusealpha,1;glowshift;effectclock,'bgm';effectperiod,4;textglowmode,'TextGlowMode_Inner'; -NewSongHideCommand=finishtweening;;diffusealpha,0;stopeffect; -# -ShowSongTime=true -SongTimeX=SCREEN_CENTER_X-160 -SongTimeY=SCREEN_TOP+160+(36/2)+8 -SongTimeOnCommand=zoom,0.75;strokecolor,Color("Outline");shadowlength,1 - - -SongTimeOffCommand=bouncebegin,0.15;zoom,0;diffusealpha,0; -SongTimeResetCommand=diffuse,Color("White"); -SongTimeAutogenCommand=diffuse,Color("Green"); -SongTimeLongCommand=diffuse,Color("Yellow");diffusebottomedge,Color("Orange"); -SongTimeMarathonCommand=diffuse,Color("Orange");diffusebottomedge,Color("Red"); -# -ShowSortOrderFrame=false -SortOrderFrameX=SCREEN_CENTER_X+128+32 -SortOrderFrameY=SCREEN_TOP+24 -SortOrderFrameOnCommand=draworder,105;shadowlength,1 -SortOrderFrameSortCommand= -SortOrderFrameSongChosenCommand=linear,0.1;diffusealpha,0; -SortOrderFrameOffCommand=bouncebegin,0.05;zoomy,0; -# -ShowSortOrder=true -SortOrderX=SCREEN_CENTER_X-160+128 -SortOrderY=SCREEN_TOP+160+(36/2)+8 -SortOrderOnCommand=draworder,105;horizalign,right;strokecolor,Color("Outline");zoom,0.675;maxwidth,96/0.675; -SortOrderSortCommand=finishtweening;zoom,0.675*1.25;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");decelerate,0.5;zoom,0.675;diffuse,Color("White"); -SortOrderSongChosenCommand=linear,0.25;diffusealpha,0; -SortOrderOffCommand=bouncebegin,0.05;zoomy,0; -# -ShowStageDisplay=true -StageDisplayX=SCREEN_RIGHT-128 -StageDisplayY=SCREEN_TOP+24+3 -StageDisplayOnCommand=skewx,-0.125;draworder,105;fov,90;zoom,0.75 -StageDisplayOffCommand=linear,0.05;zoomy,0; -# -ShowDifficultyDisplay=not ThemePrefs.Get("AutoSetStyle") and not GAMESTATE:IsCourseMode() -DifficultyDisplayX=SCREEN_CENTER_X-160 -DifficultyDisplayY=SCREEN_TOP+160-96+2 -DifficultyDisplayOnCommand=draworder,105;fov,90;zoom,1;zoomy,0;sleep,0.2;smooth,0.1;zoomy,1 -DifficultyDisplayOffCommand=linear,0.05;zoomy,0; -# -BannerX=SCREEN_CENTER_X-160 -BannerY=SCREEN_TOP+160-36+4 -BannerOnCommand=draworder,-1;scaletoclipped,256,80;visible,true;ztest,1;addy,-SCREEN_CENTER_Y;decelerate,0.1;addy,SCREEN_CENTER_Y -BannerOffCommand=bouncebegin,0.15;zoomx,0; -# -ShowBannerFrame=true -BannerFrameX=SCREEN_CENTER_X-160 -BannerFrameY=SCREEN_TOP+160-36+4 -BannerFrameOnCommand=draworder,105;addy,-SCREEN_CENTER_Y;decelerate,0.1;addy,SCREEN_CENTER_Y -BannerFrameOffCommand=bouncebegin,0.15;zoomx,0; -# -ShowBPMDisplay=true -BPMDisplayX=SCREEN_CENTER_X-160-90+2 -BPMDisplayY=SCREEN_TOP+160+(36/2)+8 -BPMDisplayOnCommand=finishtweening;maxwidth,128;horizalign,left;strokecolor,Color.Outline;addx,320;zoomx,0;decelerate,0.1;addx,-320;zoomx,1 -BPMDisplayOffCommand=bouncebegin,0.05;zoomx,0; -# -ShowBPMLabel=true -BPMLabelX=SCREEN_CENTER_X-160-90 -BPMLabelY=SCREEN_TOP+160+(36/2)+8 -BPMLabelOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X -BPMLabelOffCommand=bouncebegin,0.05;zoomx,0; -# -ShowSegmentDisplay=not GAMESTATE:IsCourseMode() -SegmentDisplayX=SCREEN_CENTER_X-160 -SegmentDisplayY=SCREEN_TOP+160-36+4 -SegmentDisplayOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X -SegmentDisplayOffCommand=bouncebegin,0.05;zoomx,0; +# +AlternateHelpDisplaySelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*1.25;bounceend,0.2;diffusealpha,1;zoom,1; +AlternateHelpDisplaySelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,1;accelerate,0.125;diffusealpha,0;zoom,0.675*0.75; +# +MusicWheelX=SCREEN_CENTER_X+326 +MusicWheelY=SCREEN_CENTER_Y-12 +MusicWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_CENTER_Y;addx,SCREEN_CENTER_X+60;sleep,0.2;decelerate,0.6;addx,-SCREEN_CENTER_X-60 +MusicWheelOffCommand=decelerate,0.4;x,SCREEN_WIDTH/0.75 +# +BannerX=SCREEN_CENTER_X-229 +BannerY=SCREEN_CENTER_Y-165-11 +BannerOnCommand=draworder,45;scaletoclipped,468,146;visible,true;zoomy,0;decelerate,0.3;zoomy,1; +BannerOffCommand=decelerate,0.2;zoomx,0; # ShowDifficultyList=not GAMESTATE:IsCourseMode(); -DifficultyListX=SCREEN_CENTER_X-160 -DifficultyListY=SCREEN_TOP+216 -DifficultyListOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X; -DifficultyListStartSelectingStepsMessageCommand=finishtweening;accelerate,0.2;zoom,1.1;decelerate,0.2;zoom,1; -DifficultyListOffCommand=bouncebegin,0.05;zoomx,0; +DifficultyListX=SCREEN_CENTER_X-228 +DifficultyListY=SCREEN_CENTER_Y-31 +DifficultyListOnCommand= +DifficultyListStartSelectingStepsMessageCommand= +DifficultyListOffCommand= # -DifficultyListTweenOnCommand=stoptweening;bounceend,0.1;zoomx,1 -DifficultyListTweenOffCommand=stoptweening;bouncebegin,0.1;zoomx,0 +DifficultyListTweenOnCommand= +DifficultyListTweenOffCommand= # Shrink the difficultylist for viewing panedisplays; # DifficultyListSelectMenuOpenedMessageCommand=stoptweening;decelerate,0.1;zoom,0.5; # DifficultyListSelectMenuClosedMessageCommand=stoptweening;accelerate,0.05;zoom,1; # -ShowPaneDisplayFrameP1=true -PaneDisplayFrameP1X=SCREEN_CENTER_X-160 -PaneDisplayFrameP1Y=SCREEN_BOTTOM-112-2 -PaneDisplayFrameP1OnCommand=player,PLAYER_1;diffuse,Color("Orange");zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 -PaneDisplayFrameP1OffCommand=bouncebegin,0.05;zoomx,0; -PaneDisplayFrameP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end +ShowSongTime=true +SongTimeX= +SongTimeY=SCREEN_CENTER_Y-78+2 +SongTimeOnCommand=horizalign,left;zoom,1.0;diffuse,color("#DFE2E9") + +ShowBPMDisplay=true +BPMDisplayX=SCREEN_CENTER_X-179-63 +BPMDisplayY=SCREEN_CENTER_Y-78+2 +BPMDisplayOnCommand=horizalign,right;zoom,1.0; + +ShowSongOptions=true +SongOptionsX=SCREEN_CENTER_X +SongOptionsY=SCREEN_CENTER_Y +SongOptionsOnCommand=visible,false;draworder,1000;diffuse,color("#FF8312");diffusebottomedge,color("#FFD75B");shadowlength,1;strokecolor,color("#472211"); +SongOptionsOffCommand= +SongOptionsShowCommand=visible,true;diffusealpha,0;zoom,0;settext,THEME:GetString("ScreenSelectMusic","Press Start For Options");decelerate,0.5;zoom,1.25;diffusealpha,1; +SongOptionsEnterCommand=settext,THEME:GetString("ScreenSelectMusic","Entering Options");sleep,0.1;decelerate,0.3;diffusealpha,0; +SongOptionsHideCommand=sleep,0.3;decelerate,0.3;diffusealpha,0; +# +ShowStageDisplay=true +StageDisplayX= +StageDisplayY=SCREEN_CENTER_Y-74 +StageDisplayOnCommand= +StageDisplayOffCommand= +StageDisplayUseShortString=true +# +ShowCourseContentsList=GAMESTATE:IsCourseMode() +CourseContentsListX=SCREEN_CENTER_X-228 +CourseContentsListY=SCREEN_CENTER_Y-20 +CourseContentsListOnCommand=draworder,-1;addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X +CourseContentsListOffCommand=bouncebegin,0.05;zoomx,0; +# +ShowNumCourseSongs=GAMESTATE:IsCourseMode() +NumCourseSongsX=SCREEN_CENTER_X-179 +NumCourseSongsY=SCREEN_CENTER_Y-64+2 +NumCourseSongsOnCommand= +NumCourseSongsOffCommand= # ShowPaneDisplayTextP1=true -PaneDisplayTextP1X=SCREEN_CENTER_X-160 -PaneDisplayTextP1Y=SCREEN_BOTTOM-122-2 -PaneDisplayTextP1OnCommand=player,PLAYER_1;zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 -PaneDisplayTextP1OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayTextP1X=SCREEN_CENTER_X-200+24-32 +PaneDisplayTextP1Y=SCREEN_CENTER_Y+207+8 +PaneDisplayTextP1OnCommand=player,PLAYER_1;horizalign,center; +PaneDisplayTextP1OffCommand= PaneDisplayTextP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end # -ShowPaneDisplayFrameP2=true -PaneDisplayFrameP2X=SCREEN_CENTER_X+160 -PaneDisplayFrameP2Y=SCREEN_BOTTOM-112-2 -PaneDisplayFrameP2OnCommand=player,PLAYER_2;diffuse,Color("Orange");zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 -PaneDisplayFrameP2OffCommand=bouncebegin,0.05;zoomx,0; -PaneDisplayFrameP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end -# ShowPaneDisplayTextP2=true -PaneDisplayTextP2X=SCREEN_CENTER_X+160 -PaneDisplayTextP2Y=SCREEN_BOTTOM-122-2 -PaneDisplayTextP2OnCommand=player,PLAYER_2;zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 -PaneDisplayTextP2OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayTextP2X=SCREEN_CENTER_X+200-72-4+32 +PaneDisplayTextP2Y=SCREEN_CENTER_Y+207+8 +PaneDisplayTextP2OnCommand=player,PLAYER_2;horizalign,center; +PaneDisplayTextP2OffCommand= PaneDisplayTextP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end # -ShowCourseContentsList=false -CourseContentsListX=SCREEN_CENTER_X-160 -CourseContentsListY=SCREEN_TOP+216+6 -CourseContentsListOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X -CourseContentsListOffCommand=bouncebegin,0.05;zoomx,0; -# -ShowNumCourseSongs=GAMESTATE:IsCourseMode() -NumCourseSongsX=SCREEN_CENTER_X-160+128 -NumCourseSongsY=SCREEN_TOP+160+(36/2)+8 -NumCourseSongsOnCommand=zoom,0.75;strokecolor,Color("Outline");shadowlength,1 -NumCourseSongsOffCommand=bouncebegin,0.05;zoom,0;diffusealpha,0; +PercentScoreP1X=SCREEN_CENTER_X-353-32 +PercentScoreP1Y=SCREEN_CENTER_Y+284 +PercentScoreP1OnCommand=zoomy,0;zoomx,0.35;sleep,0.8;smooth,0.2;zoomy,0.35 +PercentScoreP1OffCommand=smooth,0.2;zoomy,0;addy,-6; +# +PercentScoreP2X=SCREEN_CENTER_X+353+32 +PercentScoreP2Y=SCREEN_CENTER_Y+284 +PercentScoreP2OnCommand=zoomy,0;zoomx,0.35;sleep,0.8;smooth,0.2;zoomy,0.35 +PercentScoreP2OffCommand=smooth,0.2;zoomy,0;addy,-6; +NullScoreString=string.format("% 9i",0) # -ShowSongOptions=true -SongOptionsX=SCREEN_CENTER_X -SongOptionsY=SCREEN_CENTER_Y -SongOptionsOnCommand=visible,false;draworder,1000 -SongOptionsOffCommand= -#-- -SongOptionsShowCommand=visible,true;uppercase,true;zoom,1.2;settext,THEME:GetString("ScreenSelectMusic","Press Start For Options");decelerate,0.2;zoom,1; -SongOptionsEnterCommand=uppercase,true;settext,THEME:GetString("ScreenSelectMusic","Entering Options");sleep,0.2;linear,0.2;zoomy,0; -SongOptionsHideCommand=linear,0.1;zoomy,0; -# -ShowSongOptionsFrame=true -SongOptionsFrameX=SCREEN_CENTER_X -SongOptionsFrameY=SCREEN_CENTER_Y -SongOptionsFrameOnCommand=visible,false;draworder,1000 -SongOptionsFrameOffCommand= -#-- -SongOptionsFrameShowCommand=visible,true;diffuse,Color("Orange");diffusealpha,0.5;zoomy,40*1.5;linear,1.5;zoomy,40; -SongOptionsFrameEnterCommand=sleep,0.5;linear,0.3;diffusealpha,0; -SongOptionsFrameHideCommand=linear,0.3;diffusealpha,0 # CDTitleX=SCREEN_CENTER_X-160+90 CDTitleY=SCREEN_TOP+160+(36/2)+8 @@ -1035,334 +721,193 @@ #CDTitleOnCommand=draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.1;zoom,0.75;spin;effectmagnitude,0,180,0; CDTitleOnCommand=visible,false CDTitleOffCommand=bouncebegin,0.05;zoomx,0; -# -ScoreP1SortChangeCommand=stoptweening; -ScoreP2SortChangeCommand=stoptweening; -ScoreFrameP1SortChangeCommand=stoptweening; -ScoreFrameP2SortChangeCommand=stoptweening; -# -ShowStepsDisplayP1=GAMESTATE:IsHumanPlayer(PLAYER_1) -StepsDisplayP1X=SCREEN_CENTER_X-160 -StepsDisplayP1Y=SCREEN_BOTTOM-60 -StepsDisplayP1OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP1");addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y -StepsDisplayP1OffCommand=bouncebegin,0.05;zoomx,0; -# StepsDisplayP1CurrentStepsP1ChangedMessageCommand=stoptweening;zoom,1.2;decelerate,0.05;zoom,1 -# -ShowStepsDisplayP2=GAMESTATE:IsHumanPlayer(PLAYER_2) -StepsDisplayP2X=SCREEN_CENTER_X+160 -StepsDisplayP2Y=SCREEN_BOTTOM-60 -StepsDisplayP2OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP2");addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y -StepsDisplayP2OffCommand=bouncebegin,0.05;zoomx,0; -# StepsDisplayP2CurrentStepsP2ChangedMessageCommand=stoptweening;zoom,1.2;decelerate,0.05;zoom,1 -# -ShowPercentScoreP1=true -PercentScoreP1X=SCREEN_CENTER_X-80-1 -PercentScoreP1Y=SCREEN_BOTTOM-60 -PercentScoreP1OnCommand=player,PLAYER_1;addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y -PercentScoreP1OffCommand=bouncebegin,0.05;zoomx,0; -# -ShowPercentScoreP2=true -PercentScoreP2X=SCREEN_CENTER_X+240-1 -PercentScoreP2Y=SCREEN_BOTTOM-60 -PercentScoreP2OnCommand=player,PLAYER_2;addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y -PercentScoreP2OffCommand=bouncebegin,0.05;zoomx,0; [ScreenSelectCourse] -MusicWheelType=GAMESTATE:GetPlayMode() == 'PlayMode_Oni' and "OniWheel" or "CourseWheel" -Codes=GAMESTATE:GetPlayMode() == 'PlayMode_Oni' and "OniCodeDetector" or "CourseCodeDetector" -# -ShowDifficultyList=false -ShowCourseContentsList=true -ShowNumCourseSongs=true -# -UsePlayerSelectMenu=false +# Since ScreenSelectCourse falls back on ScreenSelectMusic, it can just get the metrics it needs +# from the latter; especially since the course mode-specific items are set to only show during +# course mode on their own anyways. SelectMenuAvailable=false + # -ShowSortOrder=true -SortOrderOnCommand=visible,false -# -ShowPaneDisplayFrameP1=false -ShowPaneDisplayTextP1=false -ShowPaneDisplayFrameP2=false -ShowPaneDisplayTextP2=false - - -[CourseCodeDetector] -NextSort1="" -NextSort2="" -NextSort3="" -NextSort4="" -ModeMenu1="" -ModeMenu2="" +[BPMDisplay] +SetNoBpmCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,color("#CFCAC3"); +SetNormalCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,color("#DFE2E9"); +SetChangeCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,color("#EDD7B9"); +SetRandomCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,color("#DE2626");textglowmode,'TextGlowMode_Inner';glowshift;effectcolor1,color("#EB7515");effectcolor2,color("#FF0000"); +SetExtraCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.5);diffuseshift;effectcolor1,color("1,1,1,1");effectcolor2,color("0.475,0.475,0.475,1"); +RandomCycleSpeed=0.2 -- smaller numbers mean the bpm cycles faster -[OniCodeDetector] -Fallback="CodeDetector" +[DifficultyList] +ItemsSpacingY=90 +ItemsSpacingX= +NumShownItems=3 -[StepsDisplay] -FrameLoadCommand=%function(self,param) end; -NumTicks=10 -MaxTicks=14 -TicksX=0 -TicksY=0 -TicksOnCommand=shadowlength,0; -TicksSetCommand=%function(self,param) end; -MeterX=56-32 -MeterY=0 -MeterOnCommand=shadowlength,1;textglowmode,'TextGlowMode_Inner' -MeterSetCommand=%function(self,param) \ - if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ - end; \ - if param.Meter then \ - if param.Meter >= 100 then \ - self:basezoom(0.8); \ - self:glowshift(); \ - elseif param.Meter >= 10 then \ - self:basezoom(1); \ - self:glowshift(); \ - else \ - self:basezoom(1); \ - self:stopeffect(); \ - end; \ - end; \ -end; -# -ShowDescription=true -DescriptionX=-20-32 -DescriptionY=ThemePrefs.Get("AutoSetStyle") and -5 or 0 -DescriptionOnCommand=shadowlength,1;uppercase,true;zoom,0.75;maxwidth,128+8 -DescriptionSetCommand=%function(self,param) \ - if self:GetText() == "" then \ - self:settext("Edit"); \ - end; \ +[StepsDisplayListRow] +# TODO: Make this use DifficultyList? +CapitalizeDifficultyNames=false +NumShownItems=6 +ItemsSpacingY=37 +MoveCommand=decelerate,0.05 + +FrameX= +FrameOnCommand=zoom,0.6 +FrameSetCommand=%function(self,param) \ if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + self:diffuse(ColorLightTone( CustomDifficultyToColor(param.CustomDifficulty) )); \ + else \ + self:diffuse(color('1,1,1,1')); \ end; \ end; # -ShowAutogen=true -AutogenX=-132 -AutogenY=0 -AutogenOnCommand= -AutogenSetCommand=finishtweening -AutogenTweenOnCommand=finishtweening;decelerate,0.25;zoom,1 -AutogenTweenOffCommand=finishtweening;bounceend,0.2;zoomx,8;zoomy,0 -# -ShowStepsType=ThemePrefs.Get("AutoSetStyle") -StepsTypeX=-20-32 -StepsTypeY=7 -StepsTypeOnCommand=zoom,0.45 - -[StepsDisplayGameplay] -Fallback="StepsDisplay" - +NumTicks=10 +MaxTicks=10 # ShowMeter=true -ZeroMeterString="?" -MeterX=56 -MeterY=0 -MeterOnCommand=shadowlength,1;textglowmode,'TextGlowMode_Inner' +MeterX=84+24 +MeterOnCommand=zoom,0.6;maxwidth,47 MeterSetCommand=%function(self,param) \ - if param.CustomDifficulty then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(ColorDarkTone( CustomDifficultyToColor(param.CustomDifficulty) )); \ end; \ if param.Meter then \ - if param.Meter >= 100 then \ - self:zoom(0.8); \ + if param.Meter >= 13 then \ + self:stopeffect(); \ else \ - self:zoom(1); \ + self:stopeffect(); \ end; \ end; \ end; # ShowDescription=true -DescriptionX=-20 -DescriptionY=ThemePrefs.Get("AutoSetStyle") and -5 or 0 -DescriptionOnCommand=shadowlength,1;uppercase,true;zoom,0.75;maxwidth,128+8 +DescriptionX=-84 +DescriptionOnCommand=horizalign,left;zoom,1;maxwidth,130;uppercase,true; DescriptionSetCommand=%function(self,param) \ if self:GetText() == "" then \ self:settext("Edit"); \ end; \ - if param.CustomDifficulty then \ - self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ - self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(ColorDarkTone(CustomDifficultyToColor(param.CustomDifficulty))); \ end; \ - (cmd(finishtweening;diffusealpha,0;addx,-4;smooth,0.125;addx,4;diffusealpha,1))(self); \ end; # -ShowAutogen=false -AutogenX=40 +ShowAutogen=true +AutogenX=0 AutogenY=0 -AutogenOnCommand= -AutogenSetCommand=%function(self,param) if param.Difficulty then self:diffuse(CustomDifficultyToLightColor(param.Difficulty)); self:strokecolor(CustomDifficultyToDarkColor(param.Difficulty)); end end -# -ShowStepsType=ThemePrefs.Get("AutoSetStyle") -StepsTypeX=-20 -StepsTypeY=7 -StepsTypeOnCommand=zoom,0.45 - -[ScreenOptions] -CursorTweenSeconds=0.05 - -DisqualifyP1X=SCREEN_CENTER_X-176 -DisqualifyP1Y=SCREEN_BOTTOM-98 -DisqualifyP1OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_1 -DisqualifyP2X=SCREEN_CENTER_X+176 -DisqualifyP2Y=SCREEN_BOTTOM-98 -DisqualifyP2OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_2 - -ContainerOnCommand=x,-SCREEN_WIDTH;decelerate,0.35;x,SCREEN_LEFT -CursorOnCommand= - -LineHighlightOnCommand=cropleft,0.1;cropright,0.1;zoomx,1.25;fadeleft,0.05;faderight,0.05;diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25");effectclock,'beat' -LineHighlightChangeCommand=linear,0.1;diffuse,Color("White");diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25") -LineHighlightChangeToExitCommand=linear,0.1;diffuse,Color("Red");diffuseshift;effectcolor2,color("1,0,0,0.5");effectcolor1,color("1,0,0,0.25") -# -LineHighlightP1OnCommand=diffuse,PlayerColor(PLAYER_1);diffusealpha,0.65;zoomtowidth,500;fadeleft,0.45;faderight,0.45; -LineHighlightP1ChangeCommand=finishtweening;diffusealpha,0.65; -LineHighlightP1ChangeToExitCommand=finishtweening;diffusealpha,0.15; -LineHighlightP2OnCommand=diffuse,PlayerColor(PLAYER_2);diffusealpha,0.65;zoomtowidth,500;fadeleft,0.45;faderight,0.45; -LineHighlightP2ChangeCommand=finishtweening;diffusealpha,0.65; -LineHighlightP2ChangeToExitCommand=finishtweening;diffusealpha,0.15; -# -ShowScrollBar=true -ScrollBarHeight=320 -ScrollBarTime=0.05 -ScrollBarX=SCREEN_CENTER_X+256+44 -ScrollBarY=SCREEN_CENTER_Y-24 +AutogenOnCommand=diffuseshift;effectcolor1,Color.Alpha( Color("Red") , 0.5 );effectcolor2,ColorMidTone( Color("Red") );zoom,0.6 +#AutogenOnCommand=zoom,0.75; # -ShowExplanations=true -ExplanationP1X=SCREEN_CENTER_X-256-20 -ExplanationP1Y=SCREEN_CENTER_Y+174 -ExplanationP1OnCommand=diffuse,PlayerColor(PLAYER_1);shadowlength,1;wrapwidthpixels,256/0.5;zoom,0.5;halign,0;cropright,1;linear,0.5;cropright,0 -ExplanationP1OffCommand= -ExplanationP2X=SCREEN_CENTER_X+256+20 -ExplanationP2Y=SCREEN_CENTER_Y+174 -ExplanationP2OnCommand=diffuse,PlayerColor(PLAYER_2);shadowlength,1;wrapwidthpixels,256/0.5;zoom,0.5;halign,1;cropright,1;linear,0.5;cropright,0 -ExplanationP2OffCommand= -ExplanationTogetherX=SCREEN_CENTER_X -ExplanationTogetherY=SCREEN_CENTER_Y+184 -ExplanationTogetherOnCommand=stoptweening;shadowlength,0;zoom,0.75;wrapwidthpixels,(SCREEN_WIDTH*0.9375)*1.25;cropright,1;linear,0.5;cropright,0 -ExplanationTogetherOffCommand=stoptweening -[ScreenOptionsMaster] - -[ScreenOptionsSimple] - -[ScreenOptionsSimpleService] - -[ScreenOptionsService] -ShowHeader=true - -LineNames="GameType,GraphicSound,KeyConfig,Arcade,InputOptions,SoundGraphics,Theme,Profiles,Network,Advanced,Reload,Credits" -LineTheme="gamecommand;screen,ScreenOptionsTheme;name,Theme Options" - -# ScreenOptionsSystemDirection" - -NumRowsShown=14 -RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-170+24*offsetFromCenter) end - -SeparateExitRow=false -SeparateExitRowY=SCREEN_BOTTOM-40 - -[ScreenOptionsExtended] -LineNames="2,Sync,3,10,11,4,12,5,Theme" - -[ScreenOptionsServiceChild] - -[ScreenOptionsServiceExtendedChild] - -[ScreenMiniMenu] -HeaderY=SCREEN_TOP -HeaderOnCommand=draworder,100;visible,false -LineHighlightOnCommand=cropleft,0.1;cropright,0.1;zoomx,1.3;fadeleft,0.25;faderight,0.25;diffusealpha,0.375 -LineHighlightChangeCommand= -LineHighlightChangeToExitCommand= - -[OptionRowMiniMenu] -Fallback="OptionRow" -TitleX=SCREEN_CENTER_X-320+48 -TitleOnCommand=horizalign,left;shadowlength,0;uppercase,true;zoom,0.6375;strokecolor,Color("Black"); -ItemsLongRowP1X=SCREEN_CENTER_X-240 -ItemsLongRowP2X=SCREEN_CENTER_X+240 -ItemsLongRowSharedX=SCREEN_CENTER_X+200 -ItemOnCommand=zoom,0.6375 - -ColorSelected=color("1,1,1,1") -ColorNotSelected=color("0.5,0.5,0.5,1") - -[ScreenMiniMenuContext] -PageOnCommand=visible,false -LineHighlightX=SCREEN_CENTER_X/2 - -TitleX=SCREEN_CENTER_X -TitleOnCommand=shadowlength,1; -ItemsStartX=SCREEN_CENTER_X -ItemsEndX=SCREEN_CENTER_X -ItemsGapX=14 -ItemsLongRowP1X=SCREEN_CENTER_X -ItemsLongRowP2X=SCREEN_CENTER_X -ItemsLongRowSharedX=SCREEN_CENTER_X - -[OptionRowMiniMenuContext] - -[ScreenMapControllers] -LinesVisible=15 - -[ScreenTestInput] - -[ScreenOptionsSystemDirection] -LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,16,LF,17,18,19,20,21,22" -LineLF="lua,ThemePrefRow('LongFail')" -LineRollCombo="lua,ThemePrefRow('ComboOnRolls')" -LineFlashyCombo="lua,ThemePrefRow('FlashyCombo')" - -[ScreenOptionsGraphicsSound] - -[ScreenOptionsAdvanced] -LineNames="3,4,8,SI,SM,11,13,14,15,16,28,29,30,32,RollCombo,ECPT" -LineRollCombo="lua,ThemePrefRow('ComboOnRolls')" - -[ScreenAppearanceOptions] - -[ScreenOptionsUI] +ShowStepsType=true +StepsTypeX=-97 +StepsTypeY=0 +StepsTypeOnCommand= +StepsTypeSetCommand= -[ScreenOptionsInput] +[MusicWheel] +ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ + self:y(offsetFromCenter*68); \ + if math.abs(offsetFromCenter) < 1 then \ + self:x(-20+math.abs(offsetFromCenter)*20); \ + end; \ +end +HighlightOnCommand=addx,-20;diffuseramp;effectcolor2,Color.White;effectcolor1,color("1,1,1,0.2");effectclock,'beatnooffset' +NumWheelItems=13 -[ScreenOptionsArcade] +ShowRoulette=true +ShowRandom=true -[ScreenOptionsTheme] -Fallback="ScreenOptionsServiceChild" -NextScreen="ScreenOptionsService" -PrevScreen="ScreenOptionsService" -LineNames="gNotePos,gAuto,gScore,gSDisp,TimingDisplay,gOpts,gLongFail,gComboUnderField,FlashyCombo,GameplayFooter,FancyUIBG" -LinegNotePos="lua,ThemePrefRow('NotePosition')" -LinegScore="lua,ThemePrefRow('GameplayShowScore')" -LinegSDisp="lua,ThemePrefRow('GameplayShowStepsDisplay')" -LineTimingDisplay="lua,ThemePrefRow('TimingDisplay')" -LinegOpts="lua,ThemePrefRow('ShowLotsaOptions')" -LinegAuto="lua,ThemePrefRow('AutoSetStyle')" -LinegLongFail="lua,ThemePrefRow('LongFail')" -LinegComboUnderField="lua,ThemePrefRow('ComboUnderField')" -LineFlashyCombo="lua,ThemePrefRow('FlashyCombo')" -LineGameplayFooter="lua,ThemePrefRow('GameplayFooter')" -LineFancyUIBG="lua,ThemePrefRow('FancyUIBG')" +[MusicWheelItem] +Fallback=WheelItemBase +IconX=-186 +IconY=0 +IconOnCommand= +# +SectionCountX=-245 +SectionExpandedOnCommand=x,-200;maxwidth,SCREEN_WIDTH*0.31;horizalign,left;shadowlength,1;strokecolor,color("#163742") +SectionCollapsedOnCommand=x,-200;maxwidth,SCREEN_WIDTH*0.31;horizalign,left;shadowlength,1;strokecolor,color("#163742") +SectionCountOnCommand=zoom,0.6;addy,2;diffuse,color("#000000");shadowlength,1;diffusealpha,0.75 +# +WheelNotifyIconX=-245 +WheelNotifyIconY=0 +WheelNotifyIconOnCommand=zoom,1; + +RouletteX=-200 +RouletteY=0 +RouletteOnCommand=zoom,1.25;uppercase,true;rainbowscroll,true;shadowlength,1;horizalign,left; + +RandomX=-200 +RandomY=0 +RandomOnCommand=zoom,1.25;uppercase,true;rainbowscroll,true;shadowlength,1;horizalign,left; + +GradeP1X=-196 +GradeP1Y=-14 +GradeP2X=-196 +GradeP2Y=14 -[ScreenSelectGame] +CourseX=-210 +CourseOnCommand=zoom,1.0;horizalign,left;shadowlength,1;maxwidth,SCREEN_WIDTH*0.31;strokecolor,color("#42292E") -[ScreenNetworkOptions] +ModeX=-210 +ModeOnCommand=zoom,1.0;horizalign,left;shadowlength,1;maxwidth,SCREEN_WIDTH*0.31;strokecolor,color("#42292E") -[ScreenOptionsManageProfiles] +SortX=-210 +SortOnCommand=zoom,1.0;horizalign,left;shadowlength,1;maxwidth,SCREEN_WIDTH*0.31;strokecolor,color("#42292E") -[ScreenOptionsEditProfile] +[TextBanner] +TitleX=150 +TitleY=0 +TitleOnCommand=shadowlength,2;horizalign,left +SubtitleX=90 +SubtitleY=0 +SubtitleOnCommand=shadowlength,1;horizalign,left +ArtistX=90 +ArtistY=0 +ArtistOnCommand=shadowlength,1;horizalign,left +ArtistPrependString="/" +AfterSetCommand=%function(self) \ + local Title=self:GetChild("Title"); \ + local Subtitle=self:GetChild("Subtitle"); \ + local Artist=self:GetChild("Artist"); \ + if Subtitle:GetText() == "" then \ + (cmd(zoom,1.1;maxwidth,SCREEN_WIDTH*0.24;y,-13;x,-150;strokecolor,color("#42292E");))(Title); \ + (cmd(visible,false))(Subtitle); \ + (cmd(zoom,0.75;maxwidth,SCREEN_WIDTH*0.36;y,13;x,-150;strokecolor,color("#42292E");))(Artist); \ + else \ + (cmd(zoom,0.9;maxwidth,SCREEN_WIDTH*0.30;y,-14;x,-150;strokecolor,color("#42292E");))(Title); \ + (cmd(visible,true;zoom,0.5;y,4;maxwidth,SCREEN_WIDTH*0.40;x,-150;strokecolor,color("#42292E");))(Subtitle); \ + (cmd(zoom,0.6;maxwidth,SCREEN_WIDTH*0.36;y,18;x,-150;strokecolor,color("#42292E");))(Artist); \ + end \ +end; -[ScreenOptionsCustomizeProfile] -ShowHeader=true -ShowFooter=true +[TextBannerCourse] +TitleOnCommand=horizalign,left +SubtitleOnCommand=horizalign,left +ArtistOnCommand=horizalign,left +ArtistPrependString="" +AfterSetCommand=%function(self) \ + local Title=self:GetChild("Title"); \ + local Subtitle=self:GetChild("Subtitle"); \ + local Artist=self:GetChild("Artist"); \ + if Subtitle:GetText() == "" then \ + (cmd(zoom,1.1;x,-220;maxwidth,340;y,-11))(Title); \ + (cmd(visible,false))(Subtitle); \ + (cmd(zoom,0.75;maxwidth,500;y,13;x,-220;))(Artist); \ + else \ + (cmd(zoom,0.9;x,-220;maxwidth,340;y,-13))(Title); \ + (cmd(visible,true;zoom,0.5;y,4;maxwidth,500;x,-220;))(Subtitle); \ + (cmd(zoom,0.6;maxwidth,500;y,18;x,-220;))(Artist); \ + end \ +end; -[ScreenReloadSongs] +[BitmapText] +# The colors in the 'roulette' text. you can have a lot! +NumRainbowColors=7 +RainbowColor1=color("0.95,0.81,0.81,1") -- red +RainbowColor2=color("0.95,0.82,0.95,1") -- pink +RainbowColor3=color("0.87,0.82,0.95,1") -- purple +RainbowColor4=color("0.82,0.88,0.95,1") -- sky blue +RainbowColor5=color("0.82,0.95,0.88,1") -- sea green +RainbowColor6=color("0.87,0.95,0.82,1") -- green +RainbowColor7=color("1.00,0.85,0.78,1") -- orange [ScreenPlayerOptions] LineNames="1,8,14,2,3A,3B,4,5,6,R1,R2,7,9,10,11,12,13,SF,17,16" @@ -1370,244 +915,136 @@ Line17="lua,OptionRowProTiming()" Line18="list,Characters" -PlayerNameplateP1X=SCREEN_CENTER_X * 0.5 + 16 -PlayerNameplateP1Y=SCREEN_CENTER_Y - 176 -PlayerNameplateP1OnCommand=draworder,DrawOrder.Decorations;zoomy,0;addx,-SCREEN_CENTER_X;sleep,0.75;decelerate,0.25;addx,SCREEN_CENTER_X;zoomy,1 -PlayerNameplateP1OffCommand= - -PlayerNameplateP2X=SCREEN_CENTER_X * 1.5 - 16 -PlayerNameplateP2Y=SCREEN_CENTER_Y - 176 -PlayerNameplateP2OnCommand=draworder,DrawOrder.Decorations;zoomy,0;addx,SCREEN_CENTER_X;sleep,0.75;decelerate,0.25;addx,-SCREEN_CENTER_X;zoomy,1 -PlayerNameplateP2OffCommand= +PlayerNameplateP1X=SCREEN_CENTER_X-270 +PlayerNameplateP1Y=SCREEN_CENTER_Y+190 +PlayerNameplateP1OnCommand=zoomy,0;draworder,DrawOrder.Decorations;sleep,0.8;decelerate,0.5;zoomy,1; +PlayerNameplateP1OffCommand=decelerate,0.35;addx,SCREEN_WIDTH; + +PlayerNameplateP2X=SCREEN_CENTER_X+270 +PlayerNameplateP2Y=SCREEN_CENTER_Y+190 +PlayerNameplateP2OnCommand=zoomy,0;draworder,DrawOrder.Decorations;sleep,0.8;decelerate,0.5;zoomy,1; +PlayerNameplateP2OffCommand=decelerate,0.35;addx,SCREEN_WIDTH; -[ScreenPlayerOptionsRestricted] -[ScreenSplash] - -[ScreenExit] +# 06 # +[Judgment] +JudgmentW1Command=finishtweening;shadowlength,0;y,0;diffusealpha,1;zoom,0.9;smooth,0.05;zoom,0.75;sleep,0.8;smooth,0.1;zoomy,0.5;zoomx,1.3;diffusealpha,0;glowblink;effectperiod,0.05;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25") +JudgmentW2Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,0.9;smooth,0.05;zoom,0.75;sleep,0.5;smooth,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +JudgmentW3Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,0.9;smooth,0.05;zoom,0.75;sleep,0.5;smooth,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; +JudgmentW4Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,0.9;smooth,0.05;zoom,0.75;sleep,0.5;smooth,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; +JudgmentW5Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,0.75;vibrate;effectmagnitude,1,2,2;sleep,0.5;smooth,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +JudgmentMissCommand=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,0.75;y,-20;smooth,0.8;y,20;sleep,0.5;smooth,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +# Late/Early +OffsetOnCommand= +OffsetLateCommand= +OffsetEarlyCommand= -[ScreenAttract] +[HoldJudgment] +HoldJudgmentLetGoCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.8;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 +HoldJudgmentHeldCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.3;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 +[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"); +ProtimingW3Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W3"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingW4Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W4"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingW5Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W5"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingMissCommand=finishtweening;diffusealpha,1;zoom,1.15;glow,GameColor.Judgment["JudgmentLine_Miss"];linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_Miss"];sleep,2;linear,0.5;diffuse,Color("Invisible"); # -# -# - -[ScreenHighScores] -Fallback="ScreenWithMenuElements" - -ResetGameState=false -AttractVolume=true - -FOV=90 +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; -ScrollerItemsToDraw=9 -ScrollerOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;SetMask,624,40;draworder,-5 -ScrollerItemTransformFunction=function(self,offset,itemIndex,numItems) \ - self:y(46 * offset); \ -end; -HelpOnCommand=visible,false +[Combo] +ShowComboAt=2 +LabelMinZoom=0.8*1 +LabelMaxZoom=1.0*1 -[ScreenRanking] -# +PulseCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.05*param.Zoom); self:linear(0.05); self:zoom(param.Zoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; +PulseLabelCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.0125*param.LabelZoom); self:linear(0.05); self:zoom(param.LabelZoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; -# +[ScreenStageInformation] +ShowHeader=False +ShowFooter=False -# +[LifeMeterBar] +DangerThreshold=0.275 +[ScreenGameplay] +ShowHeader=False +ShowFooter=False # - +PlayerP1MiscX=math.floor(scale((0.85/3),0,1,SCREEN_LEFT,SCREEN_RIGHT)) +PlayerP2MiscX=math.floor(scale((2.15/3),0,1,SCREEN_LEFT,SCREEN_RIGHT)) # - -# 05 # B - -# 05 # C -[ScreenGameplay] +LifeP1OnCommand=visible,false +LifeP2OnCommand=visible,false +ShowLifeMeterBarP1=GAMESTATE:GetPlayMode() ~= 'PlayMode_Rave' +ShowLifeMeterBarP2=GAMESTATE:GetPlayMode() ~= 'PlayMode_Rave' # -SongMeterDisplayX=SCREEN_CENTER_X -SongMeterDisplayY=SCREEN_TOP+50 -SongMeterDisplayOnCommand=draworder,50;zoom,0;y,SCREEN_TOP-24;sleep,1.5;decelerate,0.5;zoom,1;y,SCREEN_TOP+50 -SongMeterDisplayOffCommand= -# -ShowSongTitle=not GAMESTATE:IsDemonstration(); -SongTitleX=SCREEN_CENTER_X -SongTitleY=SCREEN_TOP+54 -SongTitleOnCommand=draworder,55;strokecolor,Color.Outline;shadowlength,1;basezoom,0.55;zoomy,0;sleep,1;smooth,0.5;zoom,1; -SongTitleOffCommand= -# -SongMeterDisplayP1X=Center1Player() and SCREEN_CENTER_X or SCREEN_LEFT+16 -SongMeterDisplayP1Y=Center1Player() and SCREEN_TOP+60 or SCREEN_CENTER_Y-32 -SongMeterDisplayP1OnCommand=draworder,5;rotationz,Center1Player() and 0 or -90;zoom,0;addx,-24;sleep,1.5;decelerate,0.5;zoom,1;addx,24;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 -SongMeterDisplayP1OffCommand= -# -SongMeterDisplayP2X=Center1Player() and SCREEN_CENTER_X or SCREEN_RIGHT-16 -SongMeterDisplayP2Y=Center1Player() and SCREEN_TOP+60 or SCREEN_CENTER_Y-32 -SongMeterDisplayP2OnCommand=draworder,5;rotationz,Center1Player() and 0 or -90;zoom,0;addx,24;sleep,1.5;decelerate,0.5;zoom,1;addx,-24;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 -SongMeterDisplayP2OffCommand= +LifeMeterBarP1X=SCREEN_LEFT+40; +LifeMeterBarP1Y=SCREEN_CENTER_Y +LifeMeterBarP1OnCommand=player,PLAYER_1;rotationz,-90;addx,-100;sleep,1;decelerate,0.9;addx,100; +LifeMeterBarP1OffCommand=sleep,1;decelerate,0.9;addx,-100; +LifeMeterBarP2X=SCREEN_RIGHT-40; +LifeMeterBarP2Y=SCREEN_CENTER_Y +LifeMeterBarP2OnCommand=player,PLAYER_2;rotationz,-90;addx,100;sleep,1;decelerate,0.9;addx,-100; +LifeMeterBarP2OffCommand=sleep,1;decelerate,0.9;addx,100; +# +ScoreP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1MiscX") +ScoreP1Y=SCREEN_TOP+40 +ScoreP1OnCommand=visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");zoom,0.75;diffuse,ColorLightTone(PlayerColor(PLAYER_1));hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1;addy,-100;sleep,1.3;decelerate,0.7;addy,100; +ScoreP1OffCommand=sleep,1;decelerate,0.9;addy,-100; +ScoreP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2MiscX") +ScoreP2Y=SCREEN_TOP+40 +ScoreP2OnCommand=visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");zoom,0.75;diffuse,ColorLightTone(PlayerColor(PLAYER_2));hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2;addy,-100;sleep,1.3;decelerate,0.7;addy,100; +ScoreP2OffCommand=sleep,1;decelerate,0.9;addy,-100; # -ShowBPMDisplay=true -BPMDisplayX=Center1Player() and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X -# BPMDisplayX=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X -BPMDisplayY=SCREEN_BOTTOM-17 -BPMDisplayOnCommand=draworder,101 -BPMDisplayOffCommand=bounceend,0.25;zoom,0 +StepsDisplayP1OnCommand=visible,false +StepsDisplayP2OnCommand=visible,false +StepsDisplayP1HideCommand=visible,false +StepsDisplayP2HideCommand=visible,false +StepsDisplayP1ShowCommand=visible,false +StepsDisplayP2ShowCommand=visible,false +StepsDisplayP1Y=SCREEN_BOTTOM+999 +StepsDisplayP2Y=SCREEN_BOTTOM+999 # ShowStageDisplay=true StageDisplayX=SCREEN_CENTER_X -StageDisplayY=Center1Player() and SCREEN_BOTTOM-76 or SCREEN_BOTTOM-50 -StageDisplayOnCommand=draworder,DrawOrder.Screen -StageDisplayOffCommand=bounceend,0.25;zoom,0 +StageDisplayY=SCREEN_BOTTOM-25 +StageDisplayOnCommand=draworder,DrawOrder.Screen;addy,100;sleep,0.5;decelerate,0.7;addy,-100; +StageDisplayOffCommand=sleep,1;decelerate,0.9;addy,100; StageDisplayUseShortString=true # -ShowScoreFrame=ThemePrefs.Get("GameplayFooter"); -ScoreFrameX=SCREEN_CENTER_X -ScoreFrameY=SCREEN_BOTTOM+4 -ScoreFrameOnCommand=draworder,4;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 -LifeP1OnCommand=finishtweening;addy,-48;sleep,1.25;bounceend,0.35;addy,48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 -#~ LifeP1OnCommand=addx,-SCREEN_CENTER_X;sleep,1.25;decelerate,0.35*0.25;addx,SCREEN_CENTER_X*1.5;accelerate,0.35*0.25;addx,-SCREEN_CENTER_X*0.25;bounceend,0.35*0.25;addx,-SCREEN_CENTER_X*0.25 -LifeP1OffCommand= -LifeP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# LifeP2X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -LifeP2Y=SCREEN_TOP+24 -LifeP2OnCommand=finishtweening;zoomx,-1;addy,-48;sleep,1.25;bounceend,0.35;addy,48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 -#~ LifeP2OnCommand=zoomx,-1;addx,SCREEN_CENTER_X;sleep,1.25;decelerate,0.35*0.25;addx,-SCREEN_CENTER_X*1.5;accelerate,0.35*0.25;addx,SCREEN_CENTER_X*0.25;bounceend,0.35*0.25;addx,SCREEN_CENTER_X*0.25 -LifeP2OffCommand= CombinedLifeX=SCREEN_CENTER_X -CombinedLifeY=SCREEN_TOP+24 -CombinedLifeOnCommand=finishtweening;addy,-48;sleep,1.25;bounceend,0.35;addy,48; -CombinedLifeOffCommand= -# -ToastyDisplayP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -# ToastyDisplayP1X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -ToastyDisplayP1Y=SCREEN_CENTER_Y -ToastyDisplayP1OnCommand=visible,false -ToastyDisplayP1OffCommand= -# -ToastyDisplayP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# ToastyDisplayP2X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -ToastyDisplayP2Y=SCREEN_CENTER_Y -ToastyDisplayP2OnCommand=visible,false -ToastyDisplayP2OffCommand= -# -SongNumberP1X=Center1Player() and SCREEN_CENTER_X - 60 or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") - 60 -SongNumberP1Y=SCREEN_TOP+24+7 -SongNumberP1OnCommand=zoom,0.75;diffuse,PlayerColor(PLAYER_1);strokecolor,BoostColor(PlayerColor(PLAYER_1),0.5) -SongNumberP1OffCommand= -SongNumberP2X=Center1Player() and SCREEN_CENTER_X + 60 or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") + 60 -SongNumberP2Y=SCREEN_TOP+24+7 -SongNumberP2OnCommand=zoom,0.75;diffuse,PlayerColor(PLAYER_2);strokecolor,BoostColor(PlayerColor(PLAYER_2),0.5) -SongNumberP2OffCommand= -# -RemainingTimeP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") + 32 -RemainingTimeP1Y=THEME:GetMetric(Var "LoadingScreen","ScoreP1Y") - 20 -RemainingTimeP1OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_1);diffusebottomedge,ColorMidTone(PlayerColor(PLAYER_1)); -RemainingTimeP1OffCommand= -RemainingTimeP2X=THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") + 32 -RemainingTimeP2Y=THEME:GetMetric(Var "LoadingScreen","ScoreP2Y") - 20 -RemainingTimeP2OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_2);diffusebottomedge,ColorMidTone(PlayerColor(PLAYER_2)); -RemainingTimeP2OffCommand= +CombinedLifeY=SCREEN_TOP-46 +CombinedLifeOnCommand=sleep,0.4;decelerate,0.3;addy,73; +CombinedLifeOffCommand=sleep,0.6;decelerate,0.5;addy,-73; +# +RemainingTimeP1X=THEME:GetMetric(Var "LoadingScreen","ScoreP1X") +60 +RemainingTimeP1Y=THEME:GetMetric(Var "LoadingScreen","ScoreP1Y") +RemainingTimeP1OnCommand=zoom,1;diffuse,ColorLightTone(PlayerColor(PLAYER_1));strokecolor,ColorDarkTone(PlayerColor(PLAYER_1));addy,-100;sleep,1.3;decelerate,0.7;addy,100; +RemainingTimeP1OffCommand=sleep,1;decelerate,0.9;addy,-100; +RemainingTimeP2X=THEME:GetMetric(Var "LoadingScreen","ScoreP2X") +60 +RemainingTimeP2Y=THEME:GetMetric(Var "LoadingScreen","ScoreP2Y") +RemainingTimeP2OnCommand=zoom,1;diffuse,ColorLightTone(PlayerColor(PLAYER_2));strokecolor,ColorDarkTone(PlayerColor(PLAYER_2));addy,-100;sleep,1.3;decelerate,0.7;addy,100; +RemainingTimeP2OffCommand=sleep,1;decelerate,0.9;addy,-100; # -DeltaSecondsP1X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP1X") - 80 +DeltaSecondsP1X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP1X") - 120 DeltaSecondsP1Y=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP1Y") DeltaSecondsP1OnCommand=shadowlength,1;skewx,-0.125 DeltaSecondsP1GainSecondsCommand=finishtweening;diffusealpha,1;zoom,1;decelerate,0.3;zoom,0.75;sleep,0.5;linear,0.2;diffusealpha,0;zoom,0 DeltaSecondsP1OffCommand= -DeltaSecondsP2X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP2X") - 80 +DeltaSecondsP2X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP2X") - 120 DeltaSecondsP2Y=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP2Y") DeltaSecondsP2OnCommand=shadowlength,1;skewx,-0.125 DeltaSecondsP2GainSecondsCommand=finishtweening;diffusealpha,1;zoom,1;decelerate,0.3;zoom,0.75;sleep,0.5;linear,0.2;diffusealpha,0;zoom,0 DeltaSecondsP2OffCommand= # -ScoreP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -# ScoreP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -ScoreP1Y=SCREEN_BOTTOM-48 -ScoreP1OnCommand=draworder,101;visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");diffuse,PlayerColor(PLAYER_1);sleep,3+0.3;smooth,0.5;y,SCREEN_BOTTOM-48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 -ScoreP1OffCommand= -ScoreP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# ScoreP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -ScoreP2Y=SCREEN_BOTTOM-48 -ScoreP2OnCommand=draworder,101;visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");diffuse,PlayerColor(PLAYER_2);sleep,3+0.3;smooth,0.5;y,SCREEN_BOTTOM-48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 -ScoreP2OffCommand= -# -StepsDescriptionP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -# StepsDescriptionP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -StepsDescriptionP1Y=SCREEN_CENTER_Y+34 -StepsDescriptionP1OnCommand=draworder,101;zoom,0.5;diffusealpha,0;addy,-10;smooth,0.3;diffusealpha,1;addy,10;sleep,3;smooth,0.5;addy,-10;diffusealpha,0 -StepsDescriptionP1OffCommand= -StepsDescriptionP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# StepsDescriptionP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -StepsDescriptionP2Y=SCREEN_CENTER_Y+34 -StepsDescriptionP2OnCommand=draworder,101;zoom,0.5;diffusealpha,0;addy,-10;smooth,0.3;diffusealpha,1;addy,10;sleep,3;smooth,0.5;addy,-10;diffusealpha,0 -StepsDescriptionP2OffCommand= -# -PlayerOptionsP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -# PlayerOptionsP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -PlayerOptionsP1Y=SCREEN_CENTER_Y+82 -PlayerOptionsP1OnCommand=draworder,101;shadowlength,1;vertalign,top;wrapwidthpixels,256*2;zoom,0.5;diffusealpha,0;addy,10;smooth,0.3;diffusealpha,1;addy,-10;sleep,3;smooth,0.5;addy,10;diffusealpha,0 -PlayerOptionsP1OffCommand= -PlayerOptionsP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# PlayerOptionsP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -PlayerOptionsP2Y=SCREEN_CENTER_Y+82 -PlayerOptionsP2OnCommand=draworder,101;shadowlength,1;vertalign,top;wrapwidthpixels,256*2;zoom,0.5;diffusealpha,0;addy,10;smooth,0.3;diffusealpha,1;addy,-10;sleep,3;smooth,0.5;addy,10;diffusealpha,0 -PlayerOptionsP2OffCommand= -# -StepsDisplayP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -# StepsDisplayP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -StepsDisplayP1Y=SCREEN_CENTER_Y+58 -StepsDisplayP1OnCommand=draworder,101;zoomy,0;linear,0.3;zoomy,1;sleep,3;queuecommand,( ThemePrefs.Get("GameplayShowStepsDisplay") == true and "Show" or "Hide" ); -StepsDisplayP1ShowCommand=smooth,0.5;y,SCREEN_BOTTOM-20; -StepsDisplayP1HideCommand=linear,0.5;zoomy,0 -StepsDisplayP1OffCommand= -StepsDisplayP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -# StepsDisplayP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") -StepsDisplayP2Y=SCREEN_CENTER_Y+58 -StepsDisplayP2OnCommand=draworder,101;zoomy,0;linear,0.3;zoomy,1;sleep,3;queuecommand,( ThemePrefs.Get("GameplayShowStepsDisplay") == true and "Show" or "Hide" ); -StepsDisplayP2ShowCommand=smooth,0.5;y,SCREEN_BOTTOM-20; -StepsDisplayP2HideCommand=linear,0.5;zoomy,0 -StepsDisplayP2OffCommand= -# -SongOptionsX=Center1Player() and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X -# SongOptionsX=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X -SongOptionsY=SCREEN_BOTTOM-32 -SongOptionsOnCommand=draworder,101;zoom,0.5 -SongOptionsOffCommand= -# -LyricDisplaySetNoReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+160 -LyricDisplaySetReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-140 -# This is used if one player is in reverse and the other isn't. -LyricDisplaySetOneReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-160; -LyricDisplayDefaultColor=Color("White") -# -OniGameOverP1X= -OniGameOverP1Y= -OniGameOverP1OnCommand= -OniGameOverP1OffCommand= -# -OniGameOverP2X= -OniGameOverP2Y= -OniGameOverP2OnCommand= -OniGameOverP2OffCommand= -# -SurviveTimeX=SCREEN_CENTER_X -SurviveTimeY=SCREEN_CENTER_Y+40 -SurviveTimeOnCommand=shadowlength,1;zoomx,0;bounceend,1;zoomx,1 -SurviveTimeOffCommand=shadowlength,1;linear,1;zoom,0.75;diffusealpha,0 -# -ActiveAttackListP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -ActiveAttackListP1Y= -ActiveAttackListP1OnCommand=visible,false -ActiveAttackListP1OffCommand= -ActiveAttackListP2X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") -ActiveAttackListP2Y= -ActiveAttackListP2OnCommand=visible,false -ActiveAttackListP2OffCommand= -# # Disable the normal start and select button actions to enable a custom pause # menu DebugOnCommand=visible,false @@ -1615,683 +1052,347 @@ UnpauseWithStart=false SelectSkipsSong=false StopCourseEarly=check_stop_course_early() - -[ScreenGameplayShared] - -[ScreenHeartEntry] -HeartEntryEnabled=true -ShowHeader=true -ShowFooter=true - -[ScreenEvaluation] -Class="ScreenEvaluation" -Fallback="ScreenWithMenuElements" -# -StageDisplayNumberOffset=0 -# -NextScreen=Branches.AfterEvaluation() -PrevScreen=Branches.AfterEvaluation() -# -PlayMusic=false -# -PrepareScreens="ScreenProfileSave,ScreenSelectMusic" -PersistScreens="ScreenEvaluation,ScreenProfileSave,ScreenSelectMusic" -# -ShowJudgmentLineW1=true -ShowJudgmentLineW2=true -ShowJudgmentLineW3=true -ShowJudgmentLineW4=true -ShowJudgmentLineW5=true -ShowJudgmentLineHeld=(GAMESTATE:GetCurrentGame():GetName() ~= "pump") -ShowJudgmentLineMiss=true -ShowJudgmentLineMaxCombo=true -ShowGradeArea=true -ShowScoreArea=true -ShowPointsArea=true -ShowSharedJudgmentLineLabels=true -ShowGraphDisplay=true -ShowComboGraph=true -ShowStepsDisplay=true - -# -W1NumberP1X=SCREEN_CENTER_X-160+40 -W1NumberP1Y=SCREEN_TOP+160 -W1NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -W1NumberP1OffCommand= -W1NumberP2X=SCREEN_CENTER_X+160-40 -W1NumberP2Y=SCREEN_TOP+160 -W1NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -W1NumberP2OffCommand= -W1LabelX=SCREEN_CENTER_X -W1LabelY=SCREEN_TOP+160 -W1LabelOnCommand= -W1LabelOffCommand= -# -W2NumberP1X=SCREEN_CENTER_X-160+40 -W2NumberP1Y=SCREEN_TOP+180 -W2NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -W2NumberP1OffCommand= -W2NumberP2X=SCREEN_CENTER_X+160-40 -W2NumberP2Y=SCREEN_TOP+180 -W2NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -W2NumberP2OffCommand= -W2LabelX=SCREEN_CENTER_X -W2LabelY=SCREEN_TOP+180 -W2LabelOnCommand= -W2LabelOffCommand= -# -W3NumberP1X=SCREEN_CENTER_X-160+40 -W3NumberP1Y=SCREEN_TOP+200 -W3NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -W3NumberP1OffCommand= -W3NumberP2X=SCREEN_CENTER_X+160-40 -W3NumberP2Y=SCREEN_TOP+200 -W3NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -W3NumberP2OffCommand= -W3LabelX=SCREEN_CENTER_X -W3LabelY=SCREEN_TOP+200 -W3LabelOnCommand= -W3LabelOffCommand= -# -W4NumberP1X=SCREEN_CENTER_X-160+40 -W4NumberP1Y=SCREEN_TOP+220 -W4NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -W4NumberP1OffCommand= -W4NumberP2X=SCREEN_CENTER_X+160-40 -W4NumberP2Y=SCREEN_TOP+220 -W4NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -W4NumberP2OffCommand= -W4LabelX=SCREEN_CENTER_X -W4LabelY=SCREEN_TOP+220 -W4LabelOnCommand= -W4LabelOffCommand= -# -W5NumberP1X=SCREEN_CENTER_X-160+40 -W5NumberP1Y=SCREEN_TOP+240 -W5NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -W5NumberP1OffCommand= -W5NumberP2X=SCREEN_CENTER_X+160-40 -W5NumberP2Y=SCREEN_TOP+240 -W5NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -W5NumberP2OffCommand= -W5LabelX=SCREEN_CENTER_X -W5LabelY=SCREEN_TOP+240 -W5LabelOnCommand= -W5LabelOffCommand= -# -MissNumberP1X=SCREEN_CENTER_X-160+40 -MissNumberP1Y=SCREEN_TOP+260 -MissNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -MissNumberP1OffCommand= -MissNumberP2X=SCREEN_CENTER_X+160-40 -MissNumberP2Y=SCREEN_TOP+260 -MissNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -MissNumberP2OffCommand= -MissLabelX=SCREEN_CENTER_X -MissLabelY=SCREEN_TOP+260 -MissLabelOnCommand= -MissLabelOffCommand= -# -HeldNumberP1X=SCREEN_CENTER_X-160+40 -HeldNumberP1Y=SCREEN_TOP+280 -HeldNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -HeldNumberP1OffCommand= -HeldNumberP2X=SCREEN_CENTER_X+160-40 -HeldNumberP2Y=SCREEN_TOP+280 -HeldNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -HeldNumberP2OffCommand= -HeldLabelX=SCREEN_CENTER_X -HeldLabelY=SCREEN_TOP+280 -HeldLabelOnCommand= -HeldLabelOffCommand= -# -MaxComboNumberP1X=SCREEN_CENTER_X-160+40 -MaxComboNumberP1Y=SCREEN_TOP+300 -MaxComboNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true -MaxComboNumberP1OffCommand= -MaxComboNumberP2X=SCREEN_CENTER_X+160-40 -MaxComboNumberP2Y=SCREEN_TOP+300 -MaxComboNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true -MaxComboNumberP2OffCommand= -MaxComboLabelX=SCREEN_CENTER_X -MaxComboLabelY=SCREEN_TOP+300 -MaxComboLabelOnCommand= -MaxComboLabelOffCommand= -# -ScoreLabelX=SCREEN_CENTER_X -ScoreLabelY=SCREEN_TOP+330 -ScoreLabelOnCommand= -ScoreLabelOffCommand= -# -ScoreNumberP1X=SCREEN_CENTER_X-160 -ScoreNumberP1Y=SCREEN_TOP+320 -ScoreNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;zoom,0.775;set_mult_attrs_with_diffuse,true -ScoreNumberP1OffCommand= -ScoreNumberP2X=SCREEN_CENTER_X+160 -ScoreNumberP2Y=SCREEN_TOP+320 -ScoreNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;zoom,0.775;set_mult_attrs_with_diffuse,true -ScoreNumberP2OffCommand= -# -PercentFrameP1X=SCREEN_CENTER_X-160 -PercentFrameP1Y=SCREEN_TOP+320 -PercentFrameP1OnCommand=visible,false -PercentFrameP1OffCommand= -# -PercentFrameP2X=SCREEN_CENTER_X+160 -PercentFrameP2Y=SCREEN_TOP+320 -PercentFrameP2OnCommand=visible,false -PercentFrameP2OffCommand= -# -PercentP1X=SCREEN_CENTER_X-160 -PercentP1Y=SCREEN_TOP+320 -PercentP1OnCommand=visible,false -PercentP1OffCommand= -# -PercentP2X=SCREEN_CENTER_X+160 -PercentP2Y=SCREEN_TOP+320 -PercentP2OnCommand=visible,false -PercentP2OffCommand= -# -LargeBannerX=SCREEN_CENTER_X -LargeBannerY=SCREEN_TOP+100 -LargeBannerOnCommand= -LargeBannerOffCommand= -LargeBannerFrameX=SCREEN_CENTER_X -LargeBannerFrameY=SCREEN_TOP+100 -LargeBannerFrameOnCommand= -LargeBannerFrameOffCommand= -# -GradeFrameP1X=SCREEN_CENTER_X-220 -GradeFrameP1Y=SCREEN_TOP+80 -GradeFrameP1OnCommand= -GradeFrameP1OffCommand= -GradeFrameP2X=SCREEN_CENTER_X+220 -GradeFrameP2Y=SCREEN_TOP+80 -GradeFrameP2OnCommand= -GradeFrameP2OffCommand= -# -GradeP1X=SCREEN_CENTER_X-220 -GradeP1Y=SCREEN_TOP+100 -GradeP1OnCommand= -GradeP1OffCommand= -GradeP2X=SCREEN_CENTER_X+220 -GradeP2Y=SCREEN_TOP+100 -GradeP2OnCommand= -GradeP2OffCommand= -# -PlayerOptionsP1X=SCREEN_CENTER_X-160 -PlayerOptionsP1Y=SCREEN_TOP+352 -PlayerOptionsP1OnCommand=zoom,0.5;shadowlength,1 -PlayerOptionsP1OffCommand= -## -PlayerOptionsP2X=SCREEN_CENTER_X+160 -PlayerOptionsP2Y=SCREEN_TOP+352 -PlayerOptionsP2OnCommand=zoom,0.5;shadowlength,1 -PlayerOptionsP2OffCommand= -# -SongOptionsX=SCREEN_CENTER_X -SongOptionsY=SCREEN_BOTTOM-104 -SongOptionsOnCommand=zoom,0.5;shadowlength,1; -SongOptionsOffCommand= -# -DisqualifiedP1X=SCREEN_CENTER_X-220 -DisqualifiedP1Y=SCREEN_TOP+140 -DisqualifiedP1OnCommand= -DisqualifiedP1OffCommand= -DisqualifiedP2X=SCREEN_CENTER_X+220 -DisqualifiedP2Y=SCREEN_TOP+140 -DisqualifiedP2OnCommand= -DisqualifiedP2OffCommand= -# -GraphDisplayP1X=SCREEN_CENTER_X-160 -GraphDisplayP1Y=SCREEN_BOTTOM-100 -GraphDisplayP1OnCommand= -GraphDisplayP1OffCommand= -GraphDisplayP2X=SCREEN_CENTER_X+160 -GraphDisplayP2Y=SCREEN_BOTTOM-100 -GraphDisplayP2OnCommand= -GraphDisplayP2OffCommand= -# -ComboGraphP1X=SCREEN_CENTER_X-160 -ComboGraphP1Y=SCREEN_BOTTOM-100+32-7 -ComboGraphP1OnCommand= -ComboGraphP1OffCommand= -ComboGraphP2X=SCREEN_CENTER_X+160 -ComboGraphP2Y=SCREEN_BOTTOM-100+32-7 -ComboGraphP2OnCommand= -ComboGraphP2OffCommand= -# -MachineRecordP1X=SCREEN_CENTER_X-220 -#MachineRecordP1Y=SCREEN_BOTTOM-156 - -MachineRecordP1Y=SCREEN_TOP+146 -MachineRecordP1OnCommand= -MachineRecordP1OffCommand= -# -MachineRecordP2X=SCREEN_CENTER_X+220 -#MachineRecordP2Y=SCREEN_BOTTOM-156 -MachineRecordP2Y=SCREEN_TOP+146 -MachineRecordP2OnCommand= - -MachineRecordP2OffCommand= -# -PersonalRecordP1X=SCREEN_CENTER_X-160 -PersonalRecordP1Y=SCREEN_BOTTOM-144 -PersonalRecordP1OnCommand= -PersonalRecordP1OffCommand= -# -PersonalRecordP2X=SCREEN_CENTER_X+160 -PersonalRecordP2Y=SCREEN_BOTTOM-144 -PersonalRecordP2OnCommand= -PersonalRecordP2OffCommand= -# -StageAwardP1X=SCREEN_CENTER_X-220 -StageAwardP1Y=SCREEN_TOP+130 -StageAwardP1OnCommand=draworder,105;zoom,0.75;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");strokecolor,ColorDarkTone( Color("Orange") );glowshift;textglowmode,'TextGlowMode_Inner' -StageAwardP1OffCommand= -# -StageAwardP2X=SCREEN_CENTER_X+220 -StageAwardP2Y=SCREEN_TOP+130 -StageAwardP2OnCommand=draworder,105;zoom,0.75;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");strokecolor,ColorDarkTone( Color("Orange") );glowshift;textglowmode,'TextGlowMode_Inner' -StageAwardP2OffCommand= -# -PeakComboAwardP1X=SCREEN_CENTER_X-160 -PeakComboAwardP1Y=SCREEN_TOP+300+10 -PeakComboAwardP1OnCommand=draworder,105;zoom,0.5;diffusebottomedge,Color("Blue");strokecolor,ColorDarkTone( Color("Blue") );glowshift;textglowmode,'TextGlowMode_Inner' -PeakComboAwardP1OffCommand= -# -PeakComboAwardP2X=SCREEN_CENTER_X+160 -PeakComboAwardP2Y=SCREEN_TOP+300+10 -PeakComboAwardP2OnCommand=draworder,105;zoom,0.5;diffusebottomedge,Color("Blue");strokecolor,ColorDarkTone( Color("Blue") );glowshift;textglowmode,'TextGlowMode_Inner' -PeakComboAwardP2OffCommand= -# -ShowStepsDisplayP1=GAMESTATE:IsHumanPlayer(PLAYER_1) -StepsDisplayP1X=SCREEN_CENTER_X-160 -StepsDisplayP1Y=SCREEN_BOTTOM-50 -StepsDisplayP1OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP1");addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y -StepsDisplayP1OffCommand=bouncebegin,0.15;zoomx,0; -# -ShowStepsDisplayP2=GAMESTATE:IsHumanPlayer(PLAYER_2) -StepsDisplayP2X=SCREEN_CENTER_X+160 -StepsDisplayP2Y=SCREEN_BOTTOM-50 -StepsDisplayP2OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP2");addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y -StepsDisplayP2OffCommand=bouncebegin,0.15;zoomx,0; -# -PercentScoreP1X=SCREEN_CENTER_X-82 -PercentScoreP1Y=SCREEN_BOTTOM-50 -PercentScoreP1OnCommand=draworder,100;addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y; -PercentScoreP1OffCommand=bouncebegin,0.15;zoomx,0; -# -PercentScoreP2X=SCREEN_CENTER_X+238 -PercentScoreP2Y=SCREEN_BOTTOM-50 -PercentScoreP2OnCommand=draworder,100;addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y; -PercentScoreP2OffCommand=bouncebegin,0.15;zoomx,0; -# -ShowGameType=true -GameTypeX=SCREEN_CENTER_X -GameTypeY=SCREEN_BOTTOM-48 -GameTypeOnCommand=addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y;zoom,0.675;shadowlength,1;shadowcolor,color("#22222266") -GameTypeOffCommand=bouncebegin,0.15;addy,SCREEN_CENTER_Y; -# -ShowTimingDifficulty=true -TimingDifficultyX=SCREEN_CENTER_X -TimingDifficultyY=SCREEN_TOP+16 -TimingDifficultyOnCommand=zoom,0.675;draworder,105 -TimingDifficultyOffCommand= -# -ShowLifeDifficulty=true -LifeDifficultyX=SCREEN_CENTER_X -LifeDifficultyY=SCREEN_TOP+32 -LifeDifficultyOnCommand=zoom,0.675;draworder,105 -LifeDifficultyOffCommand= # -ShowSongInformation=true -SongInformationX=SCREEN_CENTER_X -SongInformationY=SCREEN_TOP+100 -SongInformationOnCommand=playcommand,"Set";draworder,105 -SongInformationOffCommand= - -ShowWinArea=GAMESTATE:GetPlayMode() == 'PlayMode_Rave' -WinFrameP1X= -WinFrameP1Y= -WinFrameP1OnCommand= -WinFrameP2X= -WinFrameP2Y= -WinFrameP2OnCommand= -#----# -WinP1X=SCREEN_CENTER_X-224 -WinP1Y=SCREEN_BOTTOM-224 -WinP1OnCommand=draworder,101 -WinP2X=SCREEN_CENTER_X+224 -WinP2Y=SCREEN_BOTTOM-224 -WinP2OnCommand=draworder,101 +LyricDisplaySetNoReverseCommand=x,SCREEN_CENTER_X+0;y,SCREEN_CENTER_Y+260; +LyricDisplaySetReverseCommand=x,SCREEN_CENTER_X+0;y,SCREEN_CENTER_Y-260 +# This is used if one player is in reverse and the other isn't. +LyricDisplaySetOneReverseCommand=x,SCREEN_CENTER_X+0;y,SCREEN_CENTER_Y-260 +LyricDisplayDefaultColor=color("0,1,0,1"); -[ScreenEvaluationNormal] -Fallback="ScreenEvaluation" -# -PlayMusic=false -# -ShowBannerFrame=false -# -ShowStageDisplay=true -StageDisplayX=SCREEN_CENTER_X+160 -StageDisplayY=SCREEN_TOP+28 -StageDisplayOnCommand=draworder,105;fov,90;vertalign,bottom;vanishpoint,SCREEN_CENTER_X+160,SCREEN_TOP+28;rotationy,90;decelerate,0.5;rotationy,0; -StageDisplayOffCommand= +[ScoreDisplayNormal] +TextY= +TextOnCommand=zoom,1; -[ScreenEvaluationSummary] -Fallback="ScreenEvaluation" -# -NextScreen=Branch.AfterSummary() -# -PlayMusic=false -# -Summary=true -# -ShowStageDisplay=false -# -ShowBannerList=true -BannerListX=SCREEN_CENTER_X -BannerListY=SCREEN_TOP+96 -BannerListOnCommmand= -BannerListOffCommand= -# -SmallBanner1X=SCREEN_CENTER_X-72 -SmallBanner1Y=SCREEN_TOP+100-24 -SmallBanner1OnCommand=visible,false -SmallBanner1OffCommand= - -SmallBanner2X=SCREEN_CENTER_X-48 -SmallBanner2Y=SCREEN_TOP+100-16 -SmallBanner2OnCommand=visible,false -SmallBanner2OffCommand= - -SmallBanner3X=SCREEN_CENTER_X-24 -SmallBanner3Y=SCREEN_TOP+100-8 -SmallBanner3OnCommand=visible,false -SmallBanner3OffCommand= - -SmallBanner4X=SCREEN_CENTER_X+24 -SmallBanner4Y=SCREEN_TOP+100+8 -SmallBanner4OnCommand=visible,false -SmallBanner4OffCommand= - -SmallBanner5X=SCREEN_CENTER_X+48 -SmallBanner5Y=SCREEN_TOP+100+16 -SmallBanner5OnCommand=visible,false -SmallBanner5OfCommand= - -SmallBanner6X=SCREEN_CENTER_X+72 -SmallBanner6Y=SCREEN_TOP+100+24 -SmallBanner6OnCommand=visible,false -SmallBanner6OffCommand= +[ScoreDisplayPercentage Percent] +PercentP1OnCommand=shadowlength,1;strokecolor,Color.Outline +PercentP2OnCommand=shadowlength,1;strokecolor,Color.Outline +DancePointsP1OnCommand=shadowlength,1;strokecolor,Color.Outline +DancePointsP2OnCommand=shadowlength,1;strokecolor,Color.Outline -[ScreenNameEntry] +[ScoreDisplayOni] +TextOnCommand=zoom,1; +TextOffCommand= -[ScreenNameEntryTraditional] +[ScoreDisplayOni Numbers] +TextOnCommand=zoom,1; +TextOffCommand= -[ScreenContinue] -ShowHeader=false -ShowFooter=false -ContinueEnabled=false -# -TimerSeconds=20 -TimerMetricsGroup="MenuTimerContinue" -TimerX=SCREEN_CENTER_X -TimerY=SCREEN_CENTER_Y+24 -TimerOnCommand=visible,true -TimerOffCommand= +[ScoreDisplayLifeTime] -[ScreenProfileSave] -[ScreenProfileSaveSummary] +[ScoreDisplayRave] +MeterP1OnCommand=draworder,-1;texcoordvelocity,1,0 +MeterP2OnCommand=draworder,-1;zoomx,-1;texcoordvelocity,1,0 +LevelP1OnCommand=draworder,105;zoom,1.5;diffuse,ColorLightTone( PlayerColor(PLAYER_1) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );x,-144; +LevelP2OnCommand=draworder,105;draworder,105;zoom,1.5;diffuse,ColorLightTone( PlayerColor(PLAYER_2) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );x,144; -[ScreenGameOver] -TimerOnCommand=visible,false +[ScoreKeeperRave] +AttackDurationSeconds=6 -[ScreenPrompt] +[CombinedLifeMeterTug] +# We don't use it. +MeterWidth=512-8 +MeterHeight=80 -[ScreenOptionsEdit] +# 07 # +[ScreenEvaluationNormal] +ShowTimingDifficulty=true +TimingDifficultyX=SCREEN_CENTER_X-120; +TimingDifficultyY=SCREEN_BOTTOM-126+11; +TimingDifficultyOnCommand=maxwidth,140;shadowlength,1;diffusealpha,0;sleep,0.5;smooth,0.3;diffusealpha,1; +TimingDifficultyOffCommand=decelerate,0.3;diffusealpha,0; +# +ShowLifeDifficulty=true +LifeDifficultyX=SCREEN_CENTER_X+120; +LifeDifficultyY=SCREEN_BOTTOM-126+11; +LifeDifficultyOnCommand=maxwidth,140;shadowlength,1;diffusealpha,0;sleep,0.5;smooth,0.3;diffusealpha,1; +LifeDifficultyOffCommand=decelerate,0.3;diffusealpha,0; +# +StageDisplayUseShortString=false -[EditMenu] +[ScreenEvaluationSummary] +ShowTimingDifficulty=false +ShowLifeDifficulty=false +StageDisplayUseShortString=false -[TextBannerEditMode] +[ScreenGameOver] +ShowHeader=false +ShowFooter=false +ShowTimer=false -[ScreenEditMenu] +# 08 # [ScreenEdit] - -[ScreenPracticeMenu] - -[PracticeMenu] - -[ScreenPractice] - -[ScreenEditOptions] -LineNames="1,2,3,4,5,6,R1,R2,7,8,9,10,Attacks,11,12,13,14,15,16,SF,lead_in,ECPT" -Line1="lua,ArbitrarySpeedMods()" -LineSF="lua,OptionRowScreenFilter()" - -[StepsDisplayEdit] -Fallback="StepsDisplayGameplay" - -[ScreenMiniMenuEditHelp] - -[OptionRowMiniMenuEditHelp] - -[ScreenMiniMenuMainMenu] - -[ScreenMiniMenuAreaMenu] - -[ScreenMiniMenuStepsInformation] - -[ScreenMiniMenuSongInformation] - -[ScreenMiniMenuTimingDataInformation] - -[ScreenMiniMenuBackgroundChange] - -[ScreenMiniMenuPreferences] - -[ScreenMiniMenuInsertTapAttack] - -[ScreenMiniMenuInsertCourseAttack] - -[ScreenMiniMenuCourseDisplay] - -[ScreenMiniMenuCourseOptions] - -[ScreenOptionsExportPackage] - -[ScreenOptionsManage] - -[OptionRowManage] - -[OptionRowCourseOverview] - -[ScreenOptionsManageCourses] - -[OptionRowCourse] - -[ScreenOptionsEditCourse] - -[OptionRowEditCourse] - -[ScreenOptionsCourseOverview] - -[ScreenGameplaySyncMachine] -SongMeterDisplayP1OnCommand=visible,false -SongMeterDisplayP2OnCommand=visible,false -StepsDescriptionP1OnCommand=visible,false -StepsDescriptionP2OnCommand=visible,false -StepsDisplayP1OnCommand=visible,false -StepsDisplayP2OnCommand=visible,false -PlayerOptionsP1OnCommand=visible,false -PlayerOptionsP2OnCommand=visible,false - -[PlayerSyncMachine] - -[ScreenHowToInstallSongs] -Class="ScreenSelectMaster" -Fallback="ScreenSelectMaster" ShowHeader=false +ShowFooter=false +EditHelpX=SCREEN_LEFT+8 +EditHelpY=SCREEN_TOP+16 +EditHelpOnCommand=halign,0;valign,0;zoom,0.75;shadowlength,1;maxheight,(SCREEN_HEIGHT-32)*2 +InfoX=SCREEN_RIGHT-180 +InfoY=SCREEN_TOP+16 +InfoOnCommand=halign,0;valign,0;zoom,0.75;shadowlength,1;maxheight,(SCREEN_HEIGHT-32)*2 -ShowScroller=true -PerChoiceScrollElement=false -# -ShowIcon=true -UseIconMetrics=false -PerChoiceIconElement=false -# -ScrollerX=SCREEN_LEFT+32 -ScrollerY=SCREEN_CENTER_Y -ScrollerTransform=function(self,offset,itemIndex,numItems) self:y(24*(itemIndex-(numItems-1)/2)); end -ScrollerNumItemsToDraw=20 -ScrollerOffCommand=bouncebegin,0.25;addx,-SCREEN_CENTER_X - -ChoiceNames="WhereToFind,HowToInstall,AdditionalFolders,ReloadSongs,Exit" -ChoiceWhereToFind="urlnoexit,http://code.google.com/p/sm-ssc/wiki/FindingContent;text,"..Screen.String("Finding Songs") -ChoiceHowToInstall="urlnoexit,http://code.google.com/p/sm-ssc/wiki/InstallingContent;text,"..Screen.String("Installing Songs") -ChoiceAdditionalFolders="text,"..Screen.String("Importing Songs") -ChoiceReloadSongs="screen,ScreenReloadSongs;text,"..Screen.String("Reload Songs") -ChoiceExit="screen,"..Branch.TitleMenu()..";text,"..Screen.String("Exit") -DefaultChoice="WhereToFind" +# Online # +[ScreenNetSelectBase] +Class="ScreenNetSelectBase" +Fallback="ScreenWithMenuElements" -OptionOrderUp="5:4,4:3,3:2,2:1,1:5" -OptionOrderDown="1:2,2:3,3:4,4:5,5:1" +ChatInputBoxX=SCREEN_CENTER_X*0.5 +ChatInputBoxY=SCREEN_CENTER_Y-200 +ChatInputBoxOnCommand=bounceend,0.5;diffusealpha,1; +ChatInputBoxOffCommand=bouncebegin,0.5;zoomy,0 +ChatInputBoxWidth=SCREEN_CENTER_X*0.9 +ChatInputBoxHeight=64 +#--# +ChatInputX=(SCREEN_CENTER_X*0.5)*0.125 +ChatInputY=SCREEN_CENTER_Y+90 +ChatTextInputWidth=SCREEN_CENTER_X*1.8 +ChatInputOnCommand=halign,0;valign,0;zoom,0.5;diffusealpha,0;linear,0.55;diffusealpha,1 +ChatInputOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0 +# +UsersOnCommand=draworder,2;zoom,1;strokecolor,color("#000000");zoom,0.7 -[ScreenSMOnlineLogin] +[OnlineMusicWheel] +Fallback="MusicWheel" +# roulette + online causes a sorting issue that should be hammered out first. -aj +ShowRoulette=false +ShowRandom=false +ShowPortal=false -[ScreenNetSelectBase] +[ScreenNetRoom] +RoomWheelX=SCREEN_CENTER_X+326 +RoomWheelY=SCREEN_CENTER_Y-12 +RoomWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_CENTER_Y;addx,SCREEN_CENTER_X+60;sleep,0.2;decelerate,0.6;addx,-SCREEN_CENTER_X-60 +RoomWheelCommand=decelerate,0.4;x,SCREEN_WIDTH/0.75 +# +ChatInputBoxX=SCREEN_CENTER_X*0.5 +ChatInputBoxY=SCREEN_CENTER_Y+112 +ChatInputBoxOnCommand=diffusealpha,0; +ChatInputBoxOffCommand=bouncebegin,0.5;zoomy,0 +ChatInputBoxWidth=SCREEN_CENTER_X*0.9 +ChatInputBoxHeight=64 +# +ChatInputX=(SCREEN_CENTER_X*0.46)*0.125 +ChatInputY=SCREEN_CENTER_Y+160 +ChatTextInputWidth=SCREEN_CENTER_X*1.4 +ChatInputOnCommand=halign,0;valign,0;zoom,0.6;diffusealpha,0;linear,0.55;diffusealpha,1 +ChatInputOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0 +# +ChatOutputBoxX=SCREEN_CENTER_X*0.46 +ChatOutputBoxY=SCREEN_CENTER_Y+150 +ChatOutputBoxOnCommand=diffusealpha,0; +ChatOutputBoxOffCommand=diffusealpha,0; +ChatOutputBoxWidth=SCREEN_CENTER_X*0.9 +ChatOutputBoxHeight=SCREEN_CENTER_Y*0.875 + +# +ChatOutputX=(SCREEN_CENTER_X*0.46)*0.125 +ChatOutputY=SCREEN_CENTER_Y+150 +ChatTextOutputWidth=SCREEN_CENTER_X*1.5 +ChatOutputLines=12 +ChatOutputOnCommand=halign,0;valign,1;zoom,0.6;diffusealpha,0;linear,0.55;diffusealpha,1 +ChatOutputOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0 +# [ScreenNetSelectMusic] -BPMDisplayX=SCREEN_CENTER_X-160-90+2 -BPMDisplayY=SCREEN_CENTER_Y+156 -BPMDisplayOnCommand=finishtweening;horizalign,left;strokecolor,Color("Outline");maxwidth,128;addx,320;zoomx,0;decelerate,0.35;addx,-320;zoomx,1 -BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0; - -StepsDisplayP1X=SCREEN_CENTER_X-240 -StepsDisplayP1Y=SCREEN_CENTER_Y+185 -StepsDisplayP1OnCommand=horizalign,right;zoomx,0.0;zoomy,0.0;linear,0.5;zoomy,1.0;zoomx,1.0 -StepsDisplayP1OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0 -#--# -StepsDisplayP2X=SCREEN_CENTER_X-110 -StepsDisplayP2Y=SCREEN_CENTER_Y+185 -StepsDisplayP2OnCommand=horizalign,right;zoomx,0.0;zoomy,0.0;linear,0.5;zoomy,1.0;zoomx,1.0 -StepsDisplayP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0 -#====# - +ShowSongTime=true +ShowCourseContentsList=false ShowBPMDisplay=true -BPMDisplayX=SCREEN_CENTER_X+2 -BPMDisplayY=SCREEN_CENTER_Y+188 -BPMDisplayOnCommand=finishtweening;maxwidth,128;horizalign,left;strokecolor,Color("Outline");addx,320;zoomx,0;decelerate,0.35;addx,-320;zoomx,1 -BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0; -#--# -ShowBPMLabel=true -BPMLabelX=SCREEN_CENTER_X -BPMLabelY=SCREEN_CENTER_Y+188 -BPMLabelOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.35;addx,SCREEN_CENTER_X -BPMLabelOffCommand=bouncebegin,0.15;zoomx,0; - +ShowDifficultyList=false +# +ShowSongTime=true +SongTimeX= +SongTimeY=SCREEN_CENTER_Y-78+2 +SongTimeOnCommand=horizalign,left;zoom,1.0;diffuse,color("#DFE2E9") +# +ShowBPMDisplay=true +BPMDisplayX=SCREEN_CENTER_X-179-63 +BPMDisplayY=SCREEN_CENTER_Y-78+2 +BPMDisplayOnCommand=horizalign,right;zoom,1.0; +# +StepsDisplayP1X=SCREEN_CENTER_X +StepsDisplayP1Y=SCREEN_CENTER_Y+8888 +StepsDisplayP2X=SCREEN_CENTER_X +StepsDisplayP2Y=SCREEN_CENTER_Y+8888 +# +StepsDisplayP1OnCommand=visible,false; +StepsDisplayP2OnCommand=visible,false; +# +ShowPaneDisplayTextP1=true +PaneDisplayTextP1X=SCREEN_CENTER_X-200+24-32 +PaneDisplayTextP1Y=SCREEN_CENTER_Y+207+8 +PaneDisplayTextP1OnCommand=player,PLAYER_1;horizalign,center;zoomy,0;sleep,0.4;decelerate,0.3;zoomy,1 +PaneDisplayTextP1OffCommand=smooth,0.2;zoomy,0; +PaneDisplayTextP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end +# +ShowPaneDisplayTextP2=true +PaneDisplayTextP2X=SCREEN_CENTER_X+200-72-4+32 +PaneDisplayTextP2Y=SCREEN_CENTER_Y+207+8 +PaneDisplayTextP2OnCommand=player,PLAYER_2;horizalign,center;zoomy,0;sleep,0.4;decelerate,0.3;zoomy,1 +PaneDisplayTextP2OffCommand=smooth,0.2;zoomy,0; +PaneDisplayTextP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end +# +PercentScoreP1X=SCREEN_CENTER_X-353-32 +PercentScoreP1Y=SCREEN_CENTER_Y+284 +PercentScoreP1OnCommand=zoomy,0;zoomx,0.35;sleep,0.8;smooth,0.2;zoomy,0.35 +PercentScoreP1OffCommand=smooth,0.2;zoomy,0;addy,-6; +# +PercentScoreP2X=SCREEN_CENTER_X+353+32 +PercentScoreP2Y=SCREEN_CENTER_Y+284 +PercentScoreP2OnCommand=zoomy,0;zoomx,0.35;sleep,0.8;smooth,0.2;zoomy,0.35 +PercentScoreP2OffCommand=smooth,0.2;zoomy,0;addy,-6; +NullScoreString=string.format("% 9i",0) +# +MusicWheelX=SCREEN_CENTER_X+326 +MusicWheelY=SCREEN_CENTER_Y-12 +MusicWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_CENTER_Y;addx,SCREEN_CENTER_X+60;sleep,0.2;decelerate,0.6;addx,-SCREEN_CENTER_X-60 +MusicWheelOffCommand=decelerate,0.4;x,SCREEN_WIDTH/0.75 +# +ChatInputX=(SCREEN_CENTER_X*0.46)*0.125 +ChatInputY=SCREEN_CENTER_Y+160 +ChatTextInputWidth=SCREEN_CENTER_X*1.4 +ChatInputOnCommand=halign,0;valign,0;zoom,0.6;diffusealpha,0;linear,0.55;diffusealpha,1 +ChatInputOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0 +# +ChatInputBoxX=SCREEN_CENTER_X*0.5 +ChatInputBoxY=SCREEN_CENTER_Y+112 +ChatInputBoxOnCommand=diffusealpha,0; +ChatInputBoxOffCommand=bouncebegin,0.5;zoomy,0 +ChatInputBoxWidth=SCREEN_CENTER_X*0.9 +ChatInputBoxHeight=64 +# +ChatOutputBoxX=SCREEN_CENTER_X*0.46 +ChatOutputBoxY=SCREEN_CENTER_Y+150 +ChatOutputBoxOnCommand=diffusealpha,0; +ChatOutputBoxOffCommand=diffusealpha,0; +ChatOutputBoxWidth=SCREEN_CENTER_X*0.9 +ChatOutputBoxHeight=SCREEN_CENTER_Y*0.875 + +# +ChatOutputX=(SCREEN_CENTER_X*0.46)*0.125 +ChatOutputY=SCREEN_CENTER_Y+150 +ChatTextOutputWidth=SCREEN_CENTER_X*1.5 +ChatOutputLines=12 +ChatOutputOnCommand=halign,0;valign,1;zoom,0.6;diffusealpha,0;linear,0.55;diffusealpha,1 +ChatOutputOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0 +# UsersX=SCREEN_CENTER_X-272 UsersY=SCREEN_CENTER_Y-172 UsersDX=40 UsersAY=16 UsersOnCommand=draworder,2;zoom,0.75;shadowlength,1 -# -ShowDifficultyDisplay=true -DifficultyDisplayX=SCREEN_CENTER_X -DifficultyDisplayY=SCREEN_CENTER_Y+158 -DifficultyDisplayOnCommand=draworder,105;fov,90;zoom,0.75 -DifficultyDisplayOffCommand=linear,0.25;zoomy,0; - -[StepsDisplayNet] - -[ScreenNetRoom] - -[RoomWheel] [RoomWheelItem] +TextX=0 +TextY=0 +TextOnCommand=horizalign,left;zoom,1.1;maxwidth,SCREEN_WIDTH*0.31;y,-14;x,-200;strokecolor,color("#42292E"); + +DescriptionX=0 +DescriptionY=0 +DescriptionOnCommand=horizalign,left;zoom,0.75;maxwidth,SCREEN_WIDTH*0.5;x,-200;y,16;strokecolor,color("#42292E"); -[RoomInfoDisplay] - -[ScreenSMOnlineSelectMusic] - -[ModIcon] - -[ModIconSelectMusic] - -[ModIconRow] - -[ModIconRowSelectMusic] - -[GraphDisplay] - -[ComboGraph] - -[ScreenNetEvaluation] -UserTier02OrBetterCommand=diffuseshift;effectperiod,0.75;effectcolor1,color("1,0.95,0.8,1");effectcolor2,color("0.8,0.95,1,1") - -# Arcade - -[ScreenLogo] -TimerSeconds=10 -ShowLogo=true -LogoX=SCREEN_CENTER_X -LogoY=SCREEN_CENTER_Y-18 -LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 -LogoOffCommand=stopeffect;bouncebegin,0.35;zoom,0 - -ArcadeOverlay.TextY=SCREEN_BOTTOM-60 -# - -[ScreenHowToPlay] - -[ScreenTitleJoin] -ShowHelp=false -HelpText=Screen.String("HelpTextTitleJoin") -HelpY=SCREEN_CENTER_Y+100 -HelpOnCommand=visible,false;zoom,1;strokecolor,color("0.125,0.125,0.125,0.5");queuecommand,"Refresh" -HelpCoinIsertedMessageCommand=playcommand,"Refresh" -HelpCoinModeChangedMessageCommand=playcommand,"Refresh" -HelpRefreshCommand=%function(self) \ - local bCanPlay = GAMESTATE:EnoughCreditsToJoin(); \ - local bReady = GAMESTATE:GetNumSidesJoined() > 0; \ - if bCanPlay or bReady then \ - self:SetTipsColonSeperated(THEME:GetString( Var "LoadingScreen","HelpTextPlay")); \ - else \ - self:SetTipsColonSeperated(THEME:GetString( Var "LoadingScreen","HelpTextWait")); \ - end \ -end; -# -LogoX=SCREEN_CENTER_X -LogoY=SCREEN_CENTER_Y-28 -LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 -LogoOffCommand=stopeffect;bouncebegin,0.35;rotationz,360;zoom,0 - -VersionInfoX=SCREEN_CENTER_X+110 -VersionInfoY=SCREEN_CENTER_Y+4 -VersionInfoOnCommand=horizalign,right;vertalign,bottom;bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,1;shadowlength,1;shadowcolor,color("0.2,0.2,0.2,0.925"); -ScrollerOnCommand=visible,false; -ArcadeOverlay.TextY=SCREEN_BOTTOM-128 - -[ScreenDemonstration] -SongMeterDisplayOnCommand=visible,false -SongMeterDisplayP1OnCommand=visible,false -SongMeterDisplayP2OnCommand=visible,false -LifeP1OnCommand=visible,false -LifeP2OnCommand=visible,false -ScoreP1OnCommand=visible,false -ScoreP2OnCommand=visible,false -StepsDisplayP1OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 -StepsDisplayP2OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 -ShowBPMDisplay=false - -[ScreenJukeboxMenu] - -[ScreenJukebox] +[StepsDisplayEdit] +ShowDescription=true +DescriptionX=-4 +DescriptionY=0 +MeterX=100 +DescriptionOnCommand=shadowlength,0;uppercase,false;zoom,0.75 -[ScreenCredits] +[ScreenEditMenu] +PrevScreen=Branch.TitleMenu() +EditMenuType="EditMenu" +ExplanationX=SCREEN_CENTER_X +ExplanationY=SCREEN_BOTTOM-147 +ExplanationOnCommand=wrapwidthpixels,SCREEN_WIDTH*0.9375/0.675;shadowlength,1;zoom,1;strokecolor,color("#000000");zoom,1; +NumStepsLoadedFromProfileX=SCREEN_RIGHT-180 +NumStepsLoadedFromProfileY=SCREEN_TOP+42 +NumStepsLoadedFromProfileOnCommand=visible,false -[TimingData] -GetReturnsNumbers=true +[EditMenu] +Arrows1X=SCREEN_CENTER_X-270-90 +Arrows2X=SCREEN_CENTER_X+270+90 +ArrowsEnabledCommand=diffuse,color("#EBC159");shadowlengthy,1;shadowcolor,color("#002740"); +ArrowsDisabledCommand=diffuse,color("0.45,0.45,0.45,1");shadowlengthy,1;shadowcolor,color("#382902"); + +GroupBannerX=SCREEN_CENTER_X+170+60 +GroupBannerY=SCREEN_CENTER_Y-140-20 +GroupBannerOnCommand=scaletoclipped,128,40 + +SongBannerX=SCREEN_CENTER_X+170+60 +SongBannerY=SCREEN_CENTER_Y-90 +SongBannerOnCommand=scaletoclipped,128,40 + +TextBannerType="TextBannerEditMode" +SongTextBannerX=SCREEN_CENTER_X-25 +SongTextBannerY=SCREEN_CENTER_Y-90 + +StepsDisplayX=SCREEN_CENTER_X+70 +StepsDisplayY=SCREEN_CENTER_Y-0 +StepsDisplaySourceX=SCREEN_CENTER_X+150 +StepsDisplaySourceY=SCREEN_CENTER_Y+80 + +Row1Y=SCREEN_CENTER_Y-140-20 +Row2Y=SCREEN_CENTER_Y-90 +Row3Y=SCREEN_CENTER_Y-40 +Row4Y=SCREEN_CENTER_Y-0 +Row5Y=SCREEN_CENTER_Y+40 +Row6Y=SCREEN_CENTER_Y+80 +Row7Y=SCREEN_CENTER_Y+120 + +Label1X=SCREEN_CENTER_X-300-30 +Label1Y=THEME:GetMetric("EditMenu","Row1Y") +Label1OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label1OffCommand= +Label2X=SCREEN_CENTER_X-300-30 +Label2Y=THEME:GetMetric("EditMenu","Row2Y") +Label2OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label2OffCommand= +Label3X=SCREEN_CENTER_X-300-30 +Label3Y=THEME:GetMetric("EditMenu","Row3Y") +Label3OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label3OffCommand= +Label4X=SCREEN_CENTER_X-300-30 +Label4Y=THEME:GetMetric("EditMenu","Row4Y") +Label4OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label4OffCommand= +Label5X=SCREEN_CENTER_X-300-30 +Label5Y=THEME:GetMetric("EditMenu","Row5Y") +Label5OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label5OffCommand= +Label6X=SCREEN_CENTER_X-300-30 +Label6Y=THEME:GetMetric("EditMenu","Row6Y") +Label6OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label6OffCommand= +Label7X=SCREEN_CENTER_X-300-30 +Label7Y=THEME:GetMetric("EditMenu","Row7Y") +Label7OnCommand=strokecolor,color("#000000");zoom,1;horizalign,left; +Label7OffCommand= + +Value1X=SCREEN_CENTER_X-50 +Value1Y=THEME:GetMetric("EditMenu","Row1Y") +Value1OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.45; +Value1OffCommand= +Value2X=SCREEN_CENTER_X+60+40 +Value2Y=THEME:GetMetric("EditMenu","Row2Y") +Value2OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.65 +Value2OffCommand= +Value3X=SCREEN_CENTER_X+60+40 +Value3Y=THEME:GetMetric("EditMenu","Row3Y") +Value3OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.65 +Value3OffCommand= +Value4X=SCREEN_CENTER_X+40 +Value4Y=THEME:GetMetric("EditMenu","Row4Y") +Value4OnCommand=visible,false; +Value4OffCommand= +Value5X=SCREEN_CENTER_X+60+40 +Value5Y=THEME:GetMetric("EditMenu","Row5Y") +Value5OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.65 +Value5OffCommand= +Value6X=SCREEN_CENTER_X+40 +Value6Y=THEME:GetMetric("EditMenu","Row6Y") +Value6OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.65 +Value6OffCommand= +Value7X=SCREEN_CENTER_X+60+40 +Value7Y=THEME:GetMetric("EditMenu","Row7Y") +Value7OnCommand=strokecolor,color("#000000");zoom,1;maxwidth,SCREEN_CENTER_X*0.65 +Value7OffCommand= \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/_blank.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/_blank.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/_gameplay sync music.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/_gameplay sync music.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/_missing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/_missing.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Catalog.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Catalog.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Catalog.xsl" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Catalog.xsl" 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Totals - - - - - - - - -
- -
-
- -
- - - - - - - - - Steps - Trail - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
- - - - - - - -
- diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Common.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Common.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Common.xsl" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Common.xsl" 1970-01-01 00:00:00.000000000 +0000 @@ -1,831 +0,0 @@ - - - - - - - - - - - - JavaScript: toggleLinkClicked(event); - JavaScript: return false; - JavaScript: toggleLinkOnMouseOver(event); - JavaScript: toggleLinkOnMouseOut(event); - cursor: hand; - - - - - - - - - - - - - - - - - - - - - - <xsl:value-of select="$Catalog/ProductTitle" /><xsl:text> </xsl:text><xsl:value-of select="$DocName" /> - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - -
- - - - - - - button - Internet Ranking - navButton - JavaScript: window.location = ''; - - - - - - button - Upload Stats - navButton - JavaScript: window.location = '&stats_xml=' + window.location; - - - - - Machine: - - - Name: - -
- Last Played: -
- -
- -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - - : - - - - - - - - - - - - true - - - false - - - - - - - - Guid= - - - _new - - - - - - - - - - - - - - - - - - - - valuename - - nowrap - - - -   - - dyndata - - nowrap - - - -     - - - - - - - - - - -
-
- - - - - - - - - - valuename - - - - - dyndata - - - -
  
- -
- - - - - - - -
- - -
-
-
- - - - - - - - - valuename - - -    - - - valuename - - - -    - - dyndata - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
-
-
-
- - - - - - - - - main - - - - - - - -
- -
-
- - - - - - - - main - - - - - - -
- -
-
- - - - - - - - main - - - - - - - -
- -
-
- - - - - - - - - - - - - -
- diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Stats.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Stats.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/Profile Stats.xsl" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/Profile Stats.xsl" 1970-01-01 00:00:00.000000000 +0000 @@ -1,1421 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Instructions - - - -

Overview

- - - - -
- This section explains all the files saved to your memory card. Please read the instructions below before modifying any files on your memory card. Modifying files may result in irreversible loss of your data. -
- -
- -

Description of Files

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Edits/ - This directory contains edit step files that you've created yourself or downloaded from the internet. - - More Info - - You can place up to 200 .edit files in this directory. The edit file format is similar to an .sm file, except that it has only two tags: -
- #SONG:<SongDirectory>; -
- #NOTES:<StepsType>:<Description>:<Difficulty>:<Meter>:<RadarValues>:<NoteData>; -
-
-
LastGood/ - This directory contains a backup of your last Stats.xml and signatures that were successfully loaded. - - More Info - - The stats on your memory card may fail to load because: -
    -
  • The Stats.xml file or its digital signatures have become corrupt.
  • -
  • The Stats.xml file has been modified outside of the game. This will cause the digital signature check to fail.
  • -
- If your saved statistics fail to load, your can restore from from the "last good" data. Copy all 3 files in the files LastGood directory into the main profile directory (one level up from LastGood). -
-
-
Screenshots/ - All in-game screenshots that you take are saved in this directory. - - More Info - - This directory contains all screenshots that you've captured while playing the game. The Screenshots section of Stats.xml shows thumbnails score details for all screens you've captured. -
- The MD5 hash for a screenshot file can be used to verify that the screenshot has not been modified since it was first saved. -
- If your memory card is full, you can free space by deleting some of the screenshot .jpg files or moving them to another disk. -
-
-
Catalog.xmlContains game data used by Stats.xsl for displaying a report of your stats.
DontShare.sig - DontShare.sig is a digital signature that's required by the game when it loads your memory card data. This is a secret file that you shouldn't share with anyone else. - - More Info - - You can freely share Stats.xml and Stats.xml.sig with other players or submit these files for internet ranking. However, you should always keep DontShare.sig private. - Without the DontShare.sig, another player will not be able to load your saved data and pass it off as their own. - - -
Editable.ini - Holds preferences that you can edit using your home computer. You can open this file using any text editor program and save changes. -
Stats.xmlYou're looking at this file now. It contains all of your saved scores, statistics, and preferences. The game reads this data when you insert your memory card.
Stats.xml.sig - This is the digital signature for Stats.xml. - - More Info - - Digital signatures are used to verify that your data hasn't been modified outside of the game. This prevents cheaters from changing their score data and passing it off as real. -
- If any of Stats.xml, Stats.xml.sig, or DontShare.sig have been modified outside of the game, your memory card data will be ignored and overridden after the next save. It's important that you don't modify any of these three files because doing so will render your data permanently unusable. -
-
-
- -
-
-
- - - - - - - - - - - General Data - - - - - - - - -
- -
- - - Song Count by PlayMode - - - - - - - - - - - - - - - - - - - - - - Song Count by Style - - - - - - - - - - - - - - - - - - - - - - Song Count by Difficulty - - - - - - - - - - - - - - - - - - - - - - Song Count by Meter - - - - - - - - - - - - - - - - - - - - - - Stages Passed by Grade - - - - - - - - - - - - - - - - - - - - - - Stages Passed by PlayMode - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - Songs - Courses - - - Steps - Trail - - - - - - Popularity - - - - - Ranking - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unplayed - - - - - - - - - - - - - - - - - - - - - - - Ranking - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
-
-
- -
- -
-
- -
-
-
- - - - - - - - - - Steps - Trail - - - - Top Scores - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - -
-
-
-
- - - - - - - - - - - Songs - Courses - - - Steps - Trail - - - Difficulty - CourseDifficulty - - - - Completeness - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
Actual - - - - - -
Possible - - - - - -
Percentage - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
- -
-
-
-
-
-
- - - - - - - - - - - - Recent Scores - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Screenshots - - - - - - - - - - - - - - - - -
- - - _new - - - 160 - 120 - border-width: 0 - - - - - - - - -
- -
-
- - - - - - - - - - Coin Counts - - - - - - - - - - - - - - - - - -
- -
-
- -
- -
-
-
- - - - - - - - - - - Calories - - - - - WARNING: Weight is not set. Calorie counts may be inaccurate. -
-
- - - - - - - - - All time - - - - - - - - Per Song - - - 0 - - - - - - - - - - Per Minute of Gameplay - - - 0 - - - - - - - - - - - -
- -

By Week

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SunMonTueWedThuFriSat
- -
-
-
- - - - - - - - - Week of - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - error: - - - - - - - - - - - Sun - Mon - Tue - Wed - Thu - Fri - Sat - error: - - - - - - - - - - - Jan - Feb - Mar - Apr - May - Jun - Jul - Aug - Sep - Oct - Nov - Dec - error: - - - - - - - - - - - January - February - March - April - May - June - July - August - September - October - November - December - error: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [not implemented] - - - - - 0 - - - - - - 0 - - - - - - - 12 - 0 - - 0 - - - - - - - [not implemented] - - - - - 0 - - - - - - 0 - - - - - - - AM - PM - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [not implemented] - - - - - [not implemented] - - - - - [not implemented] - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - - - - - - - - -
- diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/ScreenGameplaySyncMachine music.sm" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/ScreenGameplaySyncMachine music.sm" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/ScreenGameplaySyncMachine music.sm" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/ScreenGameplaySyncMachine music.sm" 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ -#TITLE:Sync; -#SUBTITLE:; -#ARTIST:Unknown artist; -#TITLETRANSLIT:; -#SUBTITLETRANSLIT:; -#ARTISTTRANSLIT:; -#GENRE:; -#CREDIT:; -#BANNER:; -#BACKGROUND:; -#LYRICSPATH:; -#CDTITLE:; -#MUSIC:_gameplay sync music.ogg; -#OFFSET:-0.019; -#SAMPLESTART:0.000; -#SAMPLELENGTH:12.000; -#SELECTABLE:YES; -#BPMS:0.000=132.000; -#STOPS:; -#BGCHANGES:; -#KEYSOUNDS:; - -//---------------dance-single - ---------------- -#NOTES: - dance-single: - : - Beginner: - 1: - 0.302,0.205,0.000,0.000,0.000: - // measure 1 -0000 -0000 -0000 -0000 -, // measure 2 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 3 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 4 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 5 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 6 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 7 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -, // measure 8 -1000 -0001 -1000 -0001 -1000 -0001 -1000 -0001 -; - -//---------------dance-single - blank---------------- -#NOTES: - pump-single: - blank: - Beginner: - 1: - 0.302,0.205,0.000,0.000,0.000: - // measure 1 -00000 -00000 -00000 -00000 -, // measure 2 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 3 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 4 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 5 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 6 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 7 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -, // measure 8 -10000 -00001 -10000 -00001 -10000 -00001 -10000 -00001 -; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/ScreenHowToPlay steps.sm" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/ScreenHowToPlay steps.sm" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Other/ScreenHowToPlay steps.sm" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Other/ScreenHowToPlay steps.sm" 1970-01-01 00:00:00.000000000 +0000 @@ -1,170 +0,0 @@ -// these steps are only used by the How To Play screen. -// you can use any difficuly here, as long as there is -// only one set of steps in the file. the steps start -// as soon as the screen comes up. also, the music used -// is Sounds/ScreenHowToPlay Music, so no need to specify -// a song file here. -#TITLE:ScreenHowToPlay steps; -#ARTIST:foo; -#BPMS:0.000=100.000; -#STOPS:16=2,18=2,20=2,22=2; - -#NOTES: - dance-single: - BASIC: - easy: - 1: - 0,0,0,0,0: -0000 -0000 -0000 -0000 -, -0000 -0000 -0000 -0000 -, -0000 -0000 -0000 -0000 -, -0000 -0000 -0000 -0000 -, -0100 -0000 -0010 -0000 -, -1000 -0000 -1001 -0000 -, -1000 -0100 -0001 -0100 -0010 -1000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -, -0000 -0000 -0000 -0000 -, -0000 -0000 -0000 -0000 -,; - -#NOTES: - pump-single: - NORMAL: - easy: - 1: - 0,0,0,0,0: -00000 -00000 -00000 -00000 -, -00000 -00000 -00000 -00000 -, -00000 -00000 -00000 -00000 -, -00000 -00000 -00000 -00000 -, -01000 -00000 -00100 -00000 -, -10000 -00000 -10010 -00000 -, -10000 -01000 -00010 -01000 -00100 -10000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -00000 -, -00000 -00000 -00000 -00000 -, -00000 -00000 -00000 -00000 -,; diff -Nru stepmania-5.0.12+dfsg/Themes/default/readme.md stepmania-5.1.0+dfsg/Themes/default/readme.md --- stepmania-5.0.12+dfsg/Themes/default/readme.md 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/readme.md 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,14 @@ +Introduction +----------- +Lambda (formerly FiftyOne) is a modern, high-definition theme for StepMania 5.x. It is designed to serve as the default theme for StepMania 5.1; it features a clean aesthetic with bold colors that reflects modern design trends, yet still maintains a suitable level of energy for a rhythm game. Under the hood, it's also a bit more future-proof than the previous theme, with certain screens featuring more prominent use of backend Lua code to replace legacy methods of rendering particular elements. + +Source code +----------- +Inkscape SVG source code is available for the majority of graphics created in the _src folder on the repository used to develop it, located at Some of the original mockups are also included for reference, although they are meant primarily for reference purposes due to changes in the theme's style since these mockups (such as the removal of rounded corners and increased use of chamfered edges and diamond motifs). + +The main fonts are the current version of Roboto and Noto Sans , and Open Sans (although, preferably, Noto Sans should eventually be used in any location Open Sans is currently used). Certain accents make use of the fonts Overpass and Zeroes + + +License +----------- +As it incorporates existing code from StepMania, and is intended to possibly be part of the main distribution, Lambda is licensed under the terms of the MIT License. \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/00 ThemeInfo.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/00 ThemeInfo.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/00 ThemeInfo.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/00 ThemeInfo.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ --- theme identification: -themeInfo = { - ProductCode = "SSC-501", - Name = "StepMania 5 Default", - Date = "20120108", -} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 BranchOverrides.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 BranchOverrides.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 BranchOverrides.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 BranchOverrides.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +Branch.OptionsEdit = function() + if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then + return "ScreenHowToInstallSongs" + end + return "ScreenEditMenu" +end \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Colors.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Colors.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Colors.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Colors.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,7 +1,116 @@ +-- color based on screen name +function ScreenColor(screen) + local colors = { + ["ScreenSelectStyle"] = ScreenColors.Style, + ["ScreenSelectPlayMode"] = ScreenColors.PlayMode, + ["ScreenSelectMusic"] = ScreenColors.Music, + ["ScreenSelectCourse"] = ScreenColors.Course, + ["ScreenPlayerOptions"] = ScreenColors.PlayerOptions, + ["ScreenNestyPlayerOptions"] = ScreenColors.PlayerOptions, + ["ScreenOptionsService"] = ScreenColors.OptionsService, + ["ScreenEvaluationNormal"] = ScreenColors.Evaluation, + ["ScreenHighScores"] = ScreenColors.Evaluation, + ["ScreenEvaluationSummary"] = ScreenColors.Summary, + ["ScreenStageInformation"] = ScreenColors.StageInformation, + ["ScreenEditMenu"] = ScreenColors.Edit, + ["ScreenSMOnlineLogin"] = ScreenColors.Online, + ["ScreenNetRoom"] = ScreenColors.Online, + ["ScreenNetSelectMusic"] = ScreenColors.Online, + ["ScreenNetEvaluation"] = ScreenColors.Evaluation, + ["Default"] = ScreenColors.Default, + } + + if colors[screen] then return colors[screen]; + else return colors["Default"]; end; +end; + +ScreenColors = { + Style = color("#81468B"), + PlayMode = color("#b2350c"), + Music = color("#1268aa"), + Online = color("#1CA6A0"), + Course = color("#6D1646"), + PlayerOptions = color("#544abe"), + OptionsService = color("#5F2D41"), + Evaluation = color("#806635"), + Summary = color("#B38D47"), + StageInformation = color("#D05722"), + Edit = color("#B34754"), + Default = color("#5F2D41"), +} + ModeIconColors = { - Normal = color("#FFEE00"), -- yellow - Rave = color("#db93ff"), -- violet - Nonstop = color("#5ca9ff"), -- blue - Oni = color("#00f1e2"), -- cyan - Endless = color("#b4c3d2"), -- steel + Normal = color("#339FF2"), + Rave = color("#6BFF90"), + Nonstop = color("#FF66AB"), + Oni = color("#FF714D"), + Endless = color("#6A62CA"), +} + +GameColor = { + PlayerColors = { + PLAYER_1 = color("#3982FF"), + PLAYER_2 = color("#FF4596"), + both = color("#FFFFFF"), + }, + PlayerDarkColors = { + PLAYER_1 = color("#023C9F"), + PLAYER_2 = color("#7F083C"), + both = color("#F5E1E1"), + }, + Difficulty = { + --[[ These are for 'Custom' Difficulty Ranks. It can be very useful + in some cases, especially to apply new colors for stuff you + couldn't before. (huh? -aj) ]] + Beginner = color("#A165CE"), -- purple + Easy = color("#50DA1A"), -- green + Medium = color("#FFE53E"), -- yellow + Hard = color("#FE4F49"), -- orange + Challenge = color("#2DDBFF"), -- light blue + Edit = color("0.8,0.8,0.8,1"), -- gray + Couple = color("#ed0972"), -- hot pink + Routine = color("#ff9a00"), -- orange + --[[ These are for courses, so let's slap them here in case someone + wanted to use Difficulty in Course and Step regions. ]] + Difficulty_Beginner = color("#A165CE"), -- purple + Difficulty_Easy = color("#50DA1A"), -- green + Difficulty_Medium = color("#FFE53E"), -- yellow + Difficulty_Hard = color("#FE4F49"), -- orange + Difficulty_Challenge = color("#2DDBFF"), -- light blue + Difficulty_Edit = color("0.8,0.8,0.8,1"), -- gray + Difficulty_Couple = color("#ed0972"), -- hot pink + Difficulty_Routine = color("#ff9a00") -- orange + }, + Stage = { + Stage_1st = color("#F6C455"), + Stage_2nd = color("#EDA858"), + Stage_3rd = color("#E69259"), + Stage_4th = color("#DD775B"), + Stage_5th = color("#D55E5D"), + Stage_6th = color("#CD445F"), + Stage_Next = color("#73ff00"), + Stage_Final = color("#4BC6EB"), + Stage_Extra1 = color("#B60052"), + Stage_Extra2 = color("#FF499B"), + Stage_Nonstop = color("#FFD782"), + Stage_Oni = color("#FF714D"), + Stage_Endless = color("#6040A7"), + Stage_Event = color("#9d324e"), + Stage_Demo = color("#9d324e") + }, + Judgment = { + JudgmentLine_W1 = color("#A0DBF1"), + JudgmentLine_W2 = color("#F1E4A2"), + JudgmentLine_W3 = color("#ABE39B"), + JudgmentLine_W4 = color("#86ACD6"), + JudgmentLine_W5 = color("#958CD6"), + JudgmentLine_Held = color("#FFFFFF"), + JudgmentLine_Miss = color("#F97E7E"), + JudgmentLine_MaxCombo = color("#ffc600") + }, } + +GameColor.Difficulty["Crazy"] = GameColor.Difficulty["Hard"] +GameColor.Difficulty["Freestyle"] = GameColor.Difficulty["Easy"] +GameColor.Difficulty["Nightmare"] = GameColor.Difficulty["Challenge"] +GameColor.Difficulty["HalfDouble"] = GameColor.Difficulty["Medium"] \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Lyrics.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Lyrics.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Lyrics.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Lyrics.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -function Actor:LyricCommand(side) - self:draworder(DrawOrder.Screen+1); - self:settext(Var "LyricText") - - self:stoptweening() - self:shadowlengthx(0) - self:shadowlengthy(0) - self:strokecolor(Color("Outline")) - self:zoomx(clamp(SCREEN_WIDTH/(self:GetZoomedWidth()+1), 0, 1)) - - local Color = Var "LyricColor" - local Factor = 1 - if side == "Back" then - Factor = 0.5 - elseif side == "Front" then - Factor = 0.9 - end - self:diffuse({ - Color[1] * Factor, - Color[2] * Factor, - Color[3] * Factor, - Color[4] * Factor - }) - - if side == "Front" then - self:cropright(1) - else - self:cropleft(0) - end - - self:diffusealpha(0) - self:linear(0.2) - self:diffusealpha(0.75) - self:linear(Var "LyricDuration" * 0.75) - if side == "Front" then - self:cropright(0) - else - self:cropleft(1) - end - self:sleep(Var "LyricDuration" * 0.25) - self:linear(0.2) - self:diffusealpha(0) -end - --- (c) 2006 Glenn Maynard --- All rights reserved. --- --- Permission is hereby granted, free of charge, to any person obtaining a --- copy of this software and associated documentation files (the --- "Software"), to deal in the Software without restriction, including --- without limitation the rights to use, copy, modify, merge, publish, --- distribute, and/or sell copies of the Software, and to permit persons to --- whom the Software is furnished to do so, provided that the above --- copyright notice(s) and this permission notice appear in all copies of --- the Software and that both the above copyright notice(s) and this --- permission notice appear in supporting documentation. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF --- THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS --- INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT --- OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS --- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR --- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR --- PERFORMANCE OF THIS SOFTWARE. - diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 TextBanner.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 TextBanner.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 TextBanner.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 TextBanner.lua" 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -local mainMaxWidth = 228; -- zoom w/subtitle is 0.75 (multiply by 1.25) -local subMaxWidth = 420; -- zoom is 0.6 (multiply zoom,1 value by 1.4) -local artistMaxWidth = 300/0.8; - -local mainMaxWidthHighScore = 192; -- zoom w/subtitle is 0.75 (multiply by 1.25) -local subMaxWidthHighScore = 280; -- zoom is 0.6 (multiply zoom,1 value by 1.4) -local artistMaxWidthHighScore = 280/0.8; - ---[[ --- The old (cmd(blah))(Actor) syntax is hard to read. --- This is longer, but much easier to read. - Colby ---]] -function TextBannerAfterSet(self,param) - local Title = self:GetChild("Title") - local Subtitle = self:GetChild("Subtitle") - local Artist = self:GetChild("Artist") - - if Subtitle:GetText() == "" then - Title:maxwidth(mainMaxWidth) - Title:y(-8) - Title:zoom(1) - - -- hide so that the game skips drawing. - Subtitle:visible(false) - - Artist:zoom(0.66) - Artist:maxwidth(artistMaxWidth) - Artist:y(8) - else - Title:maxwidth(mainMaxWidth*1.25) - Title:y(-11) - Title:zoom(0.75) - - -- subtitle below title - Subtitle:visible(true) - Subtitle:zoom(0.6) - Subtitle:y(0) - Subtitle:maxwidth(subMaxWidth) - - Artist:zoom(0.6) - Artist:maxwidth(artistMaxWidth) - Artist:y(10) - end -end - -function TextBannerHighScoreAfterSet(self,param) - local Title = self:GetChild("Title") - local Subtitle = self:GetChild("Subtitle") - local Artist = self:GetChild("Artist") - - if Subtitle:GetText() == "" then - Title:maxwidth(mainMaxWidthHighScore) - Title:y(-8) - Title:zoom(1) - - -- hide so that the game skips drawing. - Subtitle:visible(false) - - Artist:zoom(0.66) - Artist:maxwidth(artistMaxWidthHighScore) - Artist:y(8) - else - Title:maxwidth(mainMaxWidthHighScore*1.25) - Title:y(-11) - Title:zoom(0.75) - - -- subtitle below title - Subtitle:visible(true) - Subtitle:zoom(0.6) - Subtitle:y(0) - Subtitle:maxwidth(subMaxWidthHighScore) - - Artist:zoom(0.6) - Artist:maxwidth(artistMaxWidthHighScore) - Artist:y(10) - end -end diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 ThemePrefs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 ThemePrefs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 ThemePrefs.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 ThemePrefs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -3,12 +3,12 @@ return THEME:GetString('OptionNames',str) end --- Example usage of new system (not fully implemented yet) +-- Example usage of new system (absolutely fully implemented and completely usable) local Prefs = { AutoSetStyle = { - Default = false, + Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, @@ -50,7 +50,7 @@ }, FlashyCombo = { - Default = false, + Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, @@ -62,7 +62,7 @@ }, FancyUIBG = { - Default = false, + Default = true, Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, @@ -78,6 +78,30 @@ Choices = { OptionNameString('Off'), OptionNameString('On') }, Values = { false, true } }, + PreferredMeter = + { + Default = "old", + Choices = { OptionNameString('MeterClassic'), OptionNameString('MeterX'), OptionNameString('MeterPump') }, + Values = { "old", "X", "pump" } + }, + CustomComboContinue = + { + Default = "default", + Choices = { OptionNameString('Default'), OptionNameString('TNS_W1'), OptionNameString('TNS_W2'), OptionNameString('TNS_W3'), OptionNameString('TNS_W4') }, + Values = { "default", "TapNoteScore_W1", "TapNoteScore_W2", "TapNoteScore_W3", "TapNoteScore_W4" } + }, + CustomComboMaintain = + { + Default = "default", + Choices = { OptionNameString('Default'), OptionNameString('TNS_W1'), OptionNameString('TNS_W2'), OptionNameString('TNS_W3'), OptionNameString('TNS_W4') }, + Values = { "default", "TapNoteScore_W1", "TapNoteScore_W2", "TapNoteScore_W3", "TapNoteScore_W4" } + }, + ForcedExtraMods = + { + Default = true, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + } } ThemePrefs.InitAll(Prefs) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Utilities.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Utilities.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/02 Utilities.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/02 Utilities.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +-- Placed here to keep shit from breaking until I get myself together long enough to deal with it all +function scale_to_fit(actor, width, height) + local xscale= width / actor:GetWidth() + local yscale= height / actor:GetHeight() + actor:zoom(math.min(xscale, yscale)) +end \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/03 Gameplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/03 Gameplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/03 Gameplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/03 Gameplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -23,4 +23,64 @@ -- combo under field is another thing that doesn't always need to be custom function ComboUnderField() return ThemePrefs.Get("ComboUnderField") +end + +-- The "boss song" threshold is controlled entirely by a theme preference. +function GetExtraColorThreshold() + local ret = { + ["old"] = 10, + ["X"] = 15, + ["pump"] = 21, + } + return ret[ThemePrefs.Get("PreferredMeter")] or 10 +end + +-- These judgment-related things are also controlled by theme preferences, +-- but allow using the default gametype-based setting just in case. + +-- Lowest judgment allowed to increment a combo. +function ComboContinue() + local Continue = { + dance = GAMESTATE:GetPlayMode() == "PlayMode_Oni" and "TapNoteScore_W2" or "TapNoteScore_W3", + pump = "TapNoteScore_W3", + beat = "TapNoteScore_W3", + kb7 = "TapNoteScore_W3", + para = "TapNoteScore_W4" + } + if ThemePrefs.Get("CustomComboContinue") ~= "default" then + return ThemePrefs.Get("CustomComboContinue") + else + return Continue[GAMESTATE:GetCurrentGame():GetName()] or "TapNoteScore_W3" + end +end + +-- Lowest judgment allowed to maintain a combo; but not increment it. +function ComboMaintain() + local Maintain = { + dance = "TapNoteScore_W3", + pump = "TapNoteScore_W4", + beat = "TapNoteScore_W3", + kb7 = "TapNoteScore_W3", + para = "TapNoteScore_W4" + } + if ThemePrefs.Get("CustomComboMaintain") ~= "default" then + return ThemePrefs.Get("CustomComboMaintain") + else + return Maintain[GAMESTATE:GetCurrentGame():GetName()] or "TapNoteScore_W3" + end +end + +-- The name's misleading; this is used for SelectPlayMode. +function ScreenSelectStylePositions(count) + local poses= {} + local choice_size = 192 + + for i= 1, count do + local start_x = _screen.cx + ( (choice_size / 1.5) * ( i - math.ceil(count/2) ) ) + -- The Y position depends on if the icon's index is even or odd. + local start_y = i % 2 == 0 and _screen.cy / 0.8 or (_screen.cy / 0.8) - (choice_size / 1.5) + poses[#poses+1] = {start_x, start_y} + end + + return poses end \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/04 item_scroller.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/04 item_scroller.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/04 item_scroller.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/04 item_scroller.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,216 @@ +-- item_scroller is a replacement for ActorScroller. Kyzentun made it +-- because writing code is easier than reading documentation and code and +-- carefully verifying exactly what some unfamiliar actor class does. +-- Original versions found in Consensual were named sick_wheel. + +-- item_scroller is based on the idea that you have some table of data to +-- display, and an actor that can display one element of data. + +-- See Docs/Themerdocs/item_scroller.md for documentation. + +function table.rotate_right(t, r) + local new_t= {} + for n= 1, #t do + local index= ((n - r - 1) % #t) + 1 + new_t[n]= t[index] + end + return new_t +end + +function table.rotate_left(t, r) + local new_t= {} + for n= 1, #t do + local index= ((n + r - 1) % #t) + 1 + new_t[n]= t[index] + end + return new_t +end + +function wrapped_index(start, offset, set_size) + return ((start - 1 + offset) % set_size) + 1 +end + +function force_to_range(min, number, max) + return math.min(max, math.max(min, number)) +end + +-- These local functions are meant for internal use only. Things that use +-- item_scroller should not need to call them directly. +local function check_metatable(item_metatable) + assert(item_metatable.__index.create_actors, "The metatable must have a create_actors function. This should return a Def.ActorFrame containing whatever actors will be needed for display.") + assert(item_metatable.__index.transform, "The metatable must have a transform function. The transform function must take 3 arguments: position in list (1 to num_items), number of items in list, boolean indicating whether item has focus.") + assert(item_metatable.__index.set, "The metatable must have a set function. The set function must take an instance of info, which it should use to set its actors to display the info.") +end + +local function calc_start(self, info, pos) + if self.disable_repeating and #info < #self.items then + return pos + end + pos= math.floor(pos) - self.focus_pos + if self.disable_wrapping then + pos= force_to_range(1, pos, #info - #self.items + 1) + if pos < 1 then pos= 1 end + end + return pos +end + +local function call_item_set(self, item_index, info_index) + self.info_map[item_index]= info_index + self.items[item_index]:set(self.info_set[info_index]) +end + +local function no_repeat_internal_scroll(self, focus_pos) + for i, item in ipairs(self.items) do + item:transform(i, #self.items, i == focus_pos, focus_pos) + end +end + +local function internal_scroll(self, start_pos) + if self.disable_repeating and #self.info_set < #self.items then + no_repeat_internal_scroll(self, start_pos) + return + end + local shift_amount= start_pos - self.info_pos + if math.abs(shift_amount) < #self.items then + self.items= table.rotate_left(self.items, shift_amount) + self.info_map= table.rotate_left(self.info_map, shift_amount) + self.info_pos= start_pos + if shift_amount < 0 then + local absa= math.abs(shift_amount) + for n= 1, absa+1 do + if self.items[n] then + local info_index= self:maybe_wrap_index(self.info_pos, n, self.info_set) + call_item_set(self, n, info_index) + end + end + elseif shift_amount > 0 then + for n= #self.items - shift_amount, #self.items do + if self.items[n] then + local info_index= self:maybe_wrap_index(self.info_pos, n, self.info_set) + call_item_set(self, n, info_index) + end + end + end + else + self.info_pos= start_pos + for i= 1, #self.items do + local info_index= self:maybe_wrap_index(self.info_pos, i, self.info_set) + call_item_set(self, i, info_index) + end + end + if self.disable_repeating then + for i, item in ipairs(self.items) do + item:transform(i, #self.items, i == self.focus_pos, self.focus_pos) + end + else + for i, item in ipairs(self.items) do + item:transform(i, #self.items, i == self.focus_pos, self.focus_pos) + end + end +end + +local function no_repeat_set_info_set(self, pos) + self.info_pos= 1 + for n= 1, #self.info_set do + call_item_set(self, n, n) + end + for n= #self.info_set+1, #self.items do + call_item_set(self, n, n) + end + internal_scroll(self, pos) +end + +item_scroller_mt= { + __index= { + create_actors= function(self, name, num_items, item_metatable, mx, my, item_params) + item_params= item_params or {} + self.name= name + self.info_pos= 1 + self.info_map= {} + self.num_items= num_items + assert(item_metatable, "A metatable for items to be put in the item_scroller must be provided.") + check_metatable(item_metatable) + self.focus_pos= math.floor(num_items / 2) + mx= mx or 0 + my= my or 0 + self.items= {} + local args= { + Name= self.name, + InitCommand= function(subself) + subself:xy(mx, my) + self.container= subself + end + } + for n= 1, num_items do + local item= setmetatable({}, item_metatable) + local sub_params= DeepCopy(item_params) + sub_params.name= "item" .. n + local actor_frame= item:create_actors(sub_params) + self.items[#self.items+1]= item + args[#args+1]= actor_frame + end + return Def.ActorFrame(args) + end, + maybe_wrap_index= function(self, ipos, n, info) + if self.disable_wrapping then + return ipos - 1 + n + else + return wrapped_index(ipos, n, #info) + end + end, + set_info_set= function(self, info, pos) + self.info_set= info + if self.disable_repeating and #self.info_set < #self.items then + no_repeat_set_info_set(self, pos) + return + end + local start_pos= calc_start(self, info, pos) + self.info_pos= start_pos + for n= 1, #self.items do + local index= self:maybe_wrap_index(start_pos, n, info) + call_item_set(self, n, index) + end + internal_scroll(self, start_pos) + end, + set_element_info= function(self, element, info) + self.info_set[element]= info + for i= 1, #self.items do + if self.info_map[i] == element then + call_item_set(self, i, element) + end + end + end, + scroll_to_pos= function(self, pos) + local start_pos= calc_start(self, self.info_set, pos) + internal_scroll(self, start_pos) + end, + scroll_by_amount= function(self, a) + internal_scroll(self, self.info_pos + a) + end, + get_info_at_focus_pos= function(self) + local index= self:maybe_wrap_index(self.info_pos, self.focus_pos, + self.info_set) + return self.info_set[index] + end, + get_actor_item_at_focus_pos= function(self) + return self.items[self.focus_pos] + end, + get_items_by_info_index= function(self, index) + local ret= {} + for i= 1, #self.items do + if self.info_map[i] == index then + ret[#ret+1]= self.items[i] + end + end + return ret + end, + find_item_by_info= function(self, info) + local ret= {} + for i, item in ipairs(self.items) do + if item.info == info then + ret[#ret+1]= item + end + end + return ret + end, +}} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/04 Other.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/04 Other.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Scripts/04 Other.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Scripts/04 Other.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,24 +1,3 @@ -function SongMeterDisplayX(pn) - if Center1Player() then - return SCREEN_CENTER_X - else - return pn == PLAYER_1 and SCREEN_LEFT+16 or SCREEN_RIGHT-16 - end -end - -function SongMeterDisplayY(pn) - return Center1Player() and SCREEN_TOP+50 or SCREEN_CENTER_Y -end - -function SongMeterDisplayCommand(pn) - if Center1Player() then - return cmd(draworder,50;zoom,0;y,SCREEN_TOP-24;sleep,1.5;decelerate,0.5;zoom,1;y,SCREEN_TOP+50) - else - local xAdd = (pn == PLAYER_1) and -24 or 24 - return cmd(draworder,5;rotationz,-90;zoom,0;addx,xAdd;sleep,1.5;decelerate,0.5;zoom,1;addx,xAdd*-1) - end -end - local numbered_stages= { Stage_1st= true, Stage_2nd= true, @@ -46,4 +25,4 @@ function check_stop_course_early() return course_stopped_by_pause_menu -end +end \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/choice Down.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/choice Down.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/choice Up.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/choice Up.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/Common invalid.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/Common invalid.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_common row.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_common row.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/Common Start.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/Common Start.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/Common value.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/Common value.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/MenuTimer tick.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/MenuTimer tick.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_Music credits (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_Music credits (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_Music title (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_Music title (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/MusicWheel change.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/MusicWheel change.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_Screen cancel.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_Screen cancel.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/ScreenGameplay failed.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/ScreenGameplay failed.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_switch down.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_switch down.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/default/_switch up.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/default/_switch up.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/Common invalid.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/Common invalid.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_common row.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_common row.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/Common Start.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/Common Start.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/Common value.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/Common value.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/MenuTimer tick.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/MenuTimer tick.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_Music credits (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_Music credits (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_Music title (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_Music title (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/MusicWheel change.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/MusicWheel change.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_Screen cancel.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_Screen cancel.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/ScreenGameplay failed.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/ScreenGameplay failed.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_switch down.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_switch down.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/kommisar/_switch up.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/kommisar/_switch up.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit freeze.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit freeze.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit marker.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit marker.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit save.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit save.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit snap.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit snap.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit switch player.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit switch player.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenEdit value increase.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenEdit value increase.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenGameplayAlternate failed.mp3 and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenGameplayAlternate failed.mp3 differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenGameplayAlternate failed.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenGameplayAlternate failed.ogg differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty easier.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty easier.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty easier.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty easier.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +choice Down \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty harder.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty harder.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty harder.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/default/Sounds/ScreenSelectMusic difficulty harder.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +choice Up \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/default/ThemeInfo.ini stepmania-5.1.0+dfsg/Themes/default/ThemeInfo.ini --- stepmania-5.0.12+dfsg/Themes/default/ThemeInfo.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/default/ThemeInfo.ini 2018-01-25 05:01:07.000000000 +0000 @@ -1,3 +1,3 @@ [ThemeInfo] DisplayName=Default -Author=Midiman \ No newline at end of file +Author=The Lambda Project \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/base._ini stepmania-5.1.0+dfsg/Themes/_fallback/base._ini --- stepmania-5.0.12+dfsg/Themes/_fallback/base._ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/base._ini 2018-01-25 05:01:07.000000000 +0000 @@ -2810,14 +2810,13 @@ [ScreenAppearanceOptions] Fallback="ScreenOptionsServiceChild" -LineNames="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19" +LineNames="1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19" Line1="conf,Language" Line2="conf,Announcer" Line3="conf,Theme" Line4="conf,DefaultNoteSkin" Line5="conf,ShowInstructions" Line6="conf,ShowCaution" -Line7="conf,DancePointsForOni" Line8="conf,ShowSelectGroup" Line9="conf,MusicWheelUsesSections" Line10="conf,CourseSortOrder" diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/de.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/de.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/de.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/de.ini 2018-01-25 05:01:07.000000000 +0000 @@ -383,7 +383,6 @@ CreateNew= Create New Course=Create a new course. Create New Profile=Create a new player profile. -DancePointsForOni=Toggle whether the score in Oni mode displays Dance Points or the Percent Score. DefaultFailType=IMMEDIATE stops play when all players run out of life. 30 MISSES stops play after 30 consecutive misses. END OF SONG stops play at the end of the song if all players have run out of life. OFF disables fail. DefaultFailTypeNoOff=IMMEDIATE stops play when all players run out of life. 30 MISSES stops play after 30 consecutive misses. END OF SONG stops play at the end of the song if all players have run out of life. DefaultNoteSkin=Choose the default noteskin to use when playing. @@ -1013,7 +1012,6 @@ Create New Profile=Create Profile Credit=Credit Cut=Cut -DancePointsForOni=Oni Score Display DefaultFailType=Default Fail Type DefaultFailTypeNoOff=Default Fail Type DefaultNoteSkin=Default NoteSkin diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/en.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/en.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/en.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/en.ini 2018-01-25 05:01:07.000000000 +0000 @@ -381,10 +381,14 @@ ComboContinuesBetweenSongs=If turned on, the combo will not be reset to 0 after every song. Connection=Connect to Server (To be specified) CourseSortOrder=Determines how courses are sorted. +CustomSongsEnable=Custom songs are loaded from USB profiles. +CustomSongsMaxCount=Only this many custom songs will be loaded from a profile. +CustomSongsLoadTimeout=If loading a custom song takes more seconds than this, give up. +CustomSongsMaxSeconds=If a custom song is longer than this (seconds), disable it. +CustomSongsMaxMegabytes=If a custom song is larger than this (MB), disable it. CreateNew= Create New Course=Create a new course. Create New Profile=Create a new player profile. -DancePointsForOni=Toggle whether the score in Oni mode displays Dance Points or the Percent Score. DefaultFailType=IMMEDIATE stops play when all players run out of life. IMMEDIATE CONTINUE fails players when they run out of life, but allows play to continue. END OF SONG evaluates pass/fail at the end of the current stage. OFF disables fail. DefaultFailTypeNoOff=IMMEDIATE stops play when all players run out of life. IMMEDIATE CONTINUE fails players when they run out of life, but allows play to continue. END OF SONG evaluates pass/fail at the end of the current stage. DefaultNoteSkin=Choose the default noteskin to use when playing. @@ -393,6 +397,7 @@ Delete= Difficulty= DisplayAspectRatio=Change the width-to-height ratio of graphics in the game. Most modern displays are either 16:9 or 16:10. +FullscreenType=Change whether fullscreen mode uses the display exclusively (traditional), or is a borderless window (nicer). DisplayColorDepth=Choose the color depth of the window. This option may not take effect in windowed mode. DisplayResolution=Choose the output resolution. A higher resolution will show more detail, but requires a faster video card. Display Options=BGFit, Appearance and UI options. @@ -662,25 +667,37 @@ 2m=2m 2nd=2nd 3=3 +30=30 3 Times=3 Times 32bit=32bit 32nd=32nd 4=4 +40=40 4 Times=4 Times 48th=48th 4th=4th 4m=4m 5=5 +50=50 5 Times=5 Times 6=6 +60=60 64th=64th 7=7 +70=70 8=8 +80=80 8th=8th 9=9 -50=50 +90=90 100=100 +120=120 +150=150 +180=180 +210=210 +240=240 1000=1000 +10000=10000 1000000=1000000 Actual=Actual Add=Additive @@ -1016,8 +1033,12 @@ Create New Course=Create New Create New Profile=Create Profile Credit=Credit +CustomSongsEnable=Enable Custom Songs +CustomSongsMaxCount=Max Custom Songs +CustomSongsLoadTimeout=Custom Song Load Timeout +CustomSongsMaxSeconds=Custom Song Length Limit +CustomSongsMaxMegabytes=Custom Song Size Limit Cut=Cut -DancePointsForOni=Oni Score Display DefaultFailType=Default Fail Type DefaultFailTypeNoOff=Default Fail Type DefaultNoteSkin=Default NoteSkin @@ -1035,6 +1056,7 @@ DisplayColorDepth=Display Color DisplayResolution=Display Resolution Display Options=Display Options +FullscreenType=Fullscreen Type Disqualification=Disqualification Duration seconds=Duration seconds EasterEggs=Easter Eggs @@ -1498,6 +1520,7 @@ Restart=Restart Reload=Reload Reload Overlay Screens=Reload Overlay Screens +Reload Prefs=Reload Preferences Reload Theme and Textures=Reload Theme and Textures Rendering Stats=Rendering Stats Reset key mapping to default=Reset key mapping to default @@ -2640,7 +2663,7 @@ FullComboW2=Full Perfect Combo!! SingleDigitW2=Single Digit Perfects!! OneW2=One Perfect!! -FullComboW1=Full Fantastic Combo!!! +FullComboW1=Full Flawless Combo!!! 80PercentW3=80% Greats! 90PercentW3=90% Greats!! 100PercentW3=100% Greats!!! diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/es.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/es.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/es.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/es.ini 2018-01-25 05:01:07.000000000 +0000 @@ -375,7 +375,6 @@ CreateNew= Create New Course=Crear un curso nuevo. Create New Profile=Crear un perfil de jugador nuevo. -DancePointsForOni=Activa si la puntuación en el modo Oni muestra Puntos de baile (DP) o puntuación en porcentaje. DefaultFailType=Cuando los jugadores se quedan sin vida, INMEDIATO detiene el juego inmediatamente; FIN DE CANCIÓN al final, y APAGADO desactiva la pantalla de fallo. DefaultFailTypeNoOff=Cuando los jugadores se quedan sin vida, INMEDIATO detiene el juego inmediatamente, y FIN DE CANCIÓN al final. DefaultNoteSkin=Elige el diseño de las flechas que se muestra por defecto al jugar. @@ -991,7 +990,6 @@ Create New Profile=Crear un perfil Credit=Crédito Cut=Cortar -DancePointsForOni=Puntuación Oni DefaultFailType=Fallo por defecto DefaultFailTypeNoOff=Fallo por defecto DefaultNoteSkin=Diseño por defecto diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/fr.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/fr.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/fr.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/fr.ini 2018-01-25 05:01:07.000000000 +0000 @@ -381,7 +381,6 @@ CreateNew= Create New Course=Create a new course. Create New Profile=Create a new player profile. -DancePointsForOni=Toggle whether the score in Oni mode displays Dance Points or the Percent Score. DefaultFailType=IMMEDIATE stops play when all players run out of life. 30 MISSES stops play after 30 consecutive misses. END OF SONG stops play at the end of the song if all players have run out of life. OFF disables fail. DefaultFailTypeNoOff=IMMEDIATE stops play when all players run out of life. 30 MISSES stops play after 30 consecutive misses. END OF SONG stops play at the end of the song if all players have run out of life. DefaultNoteSkin=Choose the default noteskin to use when playing. @@ -1007,7 +1006,6 @@ Scoreboard=Scoreboard # UI Options Center1Player=Centrer le  Joueur 1 -DancePointsForOni=Affichage du Score Oni MenuTimer=Chrono du Menu MusicWheelUsesSections=Sections de Roulette ShowBanners=Montrer les Bannières diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/ja.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/ja.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/ja.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/ja.ini 2018-01-25 05:01:07.000000000 +0000 @@ -526,7 +526,6 @@ //メニュー→オプション→UI Center1Player=&oq;On&cq;にして1人プレイを行うと、レーンが中央に寄ります。 -DancePointsForOni=Oniモードでのスコア表示をダンスポイントかパーセンテージから選択します。 MenuTimer=&oq;On&cq;に設定すると、ゲーム中の各シーンの操作に制限時間が発生します。 MusicWheelUsesSections=&oq;Always&cq;ではグループフォルダ+ABC順で表示します。\n&oq;Never&cq;ではフォルダを使用しません。&oq;Title Only&cq;ではABC順で表示します。 ShowBanners=バナーの表示を設定します。 @@ -1085,7 +1084,6 @@ Create New Profile=Create Profile Credit=権利表記 Cut=選択範囲を切り取り -DancePointsForOni=Oni Score Display DefaultFailType=Default Fail Type DefaultFailTypeNoOff=Default Fail Type DefaultNoteSkin=Default NoteSkin diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/nl.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/nl.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/nl.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/nl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -383,7 +383,6 @@ Create New Course=Maak nieuw parkoers. Create New Profile=Maak nieuw spelerprofiel. CreateNew= -DancePointsForOni=Schakel tussen de weergave van Dans Punten of Procenten voor de score in Oni mode. DefaultFailType=METEEN stopt het spelen als alle spelers door hun leven zijn. 30 MISSEN stopt als er 30 keer achtereenvolgend word gemist. EIND VAN NUMMER stopt aan het eind van een nummer als de spelers geen leven meer hebben. UIT maakt falen onmogelijk. DefaultFailTypeNoOff=METEEN stopt het spelen als alle spelers door hun leven zijn. 30 MISSEN stopt als er 30 keer achtereenvolgend word gemist. EIND VAN NUMMER stopt aan het eind van een nummer als de spelers geen leven meer hebben. DefaultNoteSkin=Kies een standaard uiterlijk van de noten voor tijdens het spelen. @@ -995,7 +994,6 @@ Create New=Creëer Nieuw Credit=Krediet Cut=Knippen -DancePointsForOni=Oni Score Weergave DefaultFailType=Standaard Faaltype DefaultFailTypeNoOff=Standaard Faaltype DefaultNoteSkin=Standaard NootUiterlijk diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/pl.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/pl.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/pl.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/pl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -380,7 +380,6 @@ CreateNew= Create New Course=Utwórz nowy Maraton. Create New Profile=Utwórz nowy profil gracza. -DancePointsForOni=Decyduje czy w trybie Oni wyświetlane są punkty czy procenty. DefaultFailType=NATYCHMIAST przerywa grę kiedy graczowi skończy się energia. 30 spudłowań przerywa grę po następujących po sobie 30 niezaliczonych strzałkach. NA KONIEC PIOSENKI przerywa grę dopiero na koniec piosenki nawet jeśli graczowi skończy się wcześniej energia. OFF wyłącza przerywanie gry. DefaultFailTypeNoOff=NATYCHMIAST przerywa grę kiedy graczowi skończy się energia. 30 spudłowań przerywa grę po następujących po sobie 30 niezaliczonych strzałkach. NA KONIEC PIOSENKI przerywa grę dopiero na koniec piosenki nawet jeśli graczowi skończy się wcześniej energia. DefaultNoteSkin=Ustala domyślny wygląd strzałek używanych podczas gry. @@ -992,7 +991,6 @@ Create New Profile=Stwórz Nowy Profil Credit=Kredyt Cut=Wytnij -DancePointsForOni=Wyświetlanie Punktów w Oni DefaultFailType=Domyślny tryb Porażki DefaultFailTypeNoOff=Domyślny tryb Porażki DefaultNoteSkin=Domyślny NoteSkin @@ -2761,4 +2759,4 @@ ChoicesSizeMismatch=Opcje i Wartości mają różne rozmiary (%d, %d) NoDefaultInValues=Ustawienie "%s" nie posiada wartości odpowiadającej domyślnej. TypeMismatch=Niezgodność typów pomiędzy domyślną (%s) i wartością %d (%s) ->>>>>>> inne \ No newline at end of file +>>>>>>> inne diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/Languages/zh.ini stepmania-5.1.0+dfsg/Themes/_fallback/Languages/zh.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/Languages/zh.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/Languages/zh.ini 2018-01-25 05:01:07.000000000 +0000 @@ -385,7 +385,6 @@ CreateNew=建立新的譜面. Create New Course=建立新的組曲. Create New Profile=建立新的個人檔案. -DancePointsForOni=鬼組曲成績顯示類型設定. DefaultFailType=選擇遊戲結束的方式. DefaultFailTypeNoOff=選擇多人遊玩時遊戲結束的方式. DefaultNoteSkin=選擇預設箭頭樣式. @@ -1016,7 +1015,6 @@ Create New Profile=建立個人資料 Credit=Credit Cut=剪下 -DancePointsForOni=挑戰模式 分數表示 DefaultFailType=失敗方式 DefaultFailTypeNoOff=預設 失敗方式 DefaultNoteSkin=預設 箭頭樣式 diff -Nru stepmania-5.0.12+dfsg/Themes/_fallback/metrics.ini stepmania-5.1.0+dfsg/Themes/_fallback/metrics.ini --- stepmania-5.0.12+dfsg/Themes/_fallback/metrics.ini 2016-08-10 23:15:24.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/_fallback/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -65,6 +65,11 @@ # Used in PlayerStageStats for formatting scores. PercentScoreDecimalPlaces=2 +# We want to define which Images to cache. +# Predefined Images include: Banner,Background,CDTitle,Jacket,CDImage,Disc +# Is Case Sensitive +ImageCache="Banner" + # 02 # [LightsManager] @@ -138,6 +143,9 @@ CourseGroupColor8=color("1,1,1,1") -- white CourseGroupColor9=color("1,1,1,1") -- white CourseGroupColor10=color("1,1,1,1") -- white +NumProfileSongGroupColors=2 +ProfileSongGroupColor1=PlayerColor(PLAYER_1) +ProfileSongGroupColor2=PlayerColor(PLAYER_2) UnlockColor=color("1,0.5,0,1") [UnlockManager] @@ -186,7 +194,6 @@ FrameWidthLockEffectsToOverlapping=false FrameWidthLockEffectsTweenPixels=25 ArrowSpacing=64 -DrawHiddenNotesAfterReceptor=true BlinkModFrequency=0.3333 BoostModMinClamp=-400 BoostModMaxClamp=400 @@ -210,21 +217,37 @@ TipsyOffsetTimerFrequency=1.2 TipsyOffsetColumnFrequency=2 TipsyOffsetArrowMagnitude=0.4 -TornadoPositionScaleToLow=-1 -TornadoPositionScaleToHigh=1 -TornadoOffsetFrequency=6 -TornadoOffsetScaleFromLow=-1 -TornadoOffsetScaleFromHigh=1 +TornadoXPositionScaleToLow=-1 +TornadoXPositionScaleToHigh=1 +TornadoXOffsetFrequency=6 +TornadoXOffsetScaleFromLow=-1 +TornadoXOffsetScaleFromHigh=1 +TornadoYPositionScaleToLow=-1 +TornadoYPositionScaleToHigh=1 +TornadoYOffsetFrequency=6 +TornadoYOffsetScaleFromLow=-1 +TornadoYOffsetScaleFromHigh=1 +TornadoZPositionScaleToLow=-1 +TornadoZPositionScaleToHigh=1 +TornadoZOffsetFrequency=6 +TornadoZOffsetScaleFromLow=-1 +TornadoZOffsetScaleFromHigh=1 DrunkColumnFrequency=0.2 DrunkOffsetFrequency=10 DrunkArrowMagnitude=0.5 +DrunkZColumnFrequency=0.2 +DrunkZOffsetFrequency=10 +DrunkZArrowMagnitude=0.5 BeatOffsetHeight=15 BeatPIHeight=2 +BeatYOffsetHeight=15 +BeatYPIHeight=2 +BeatZOffsetHeight=15 +BeatZPIHeight=2 MiniPercentBase=0.5 MiniPercentGate=1 TinyPercentBase=0.5 TinyPercentGate=1 -DizzyHoldHeads=false QuantizeArrowYPosition=false [Background] @@ -3033,10 +3056,12 @@ Fallback="ScreenOptionsServiceChild" NextScreen="ScreenOptionsService" PrevScreen="ScreenOptionsService" -LineNames="1,2,3,4,5,6,7,8,9,10,11,12,13,FNR,14,17,18,19,20" -Line1="conf,Windowed" -Line2="conf,DisplayResolution" -Line3="conf,DisplayAspectRatio" +LineNames="1,2,3,RefreshRate,FSType,4,5,6,7,8,9,10,11,13,FNR,14,17,18,19,20" +Line1="lua,ConfDisplayMode()" +Line2="lua,ConfAspectRatio()" +Line3="lua,ConfDisplayResolution()" +LineRefreshRate="lua,ConfRefreshRate()" +LineFSType="lua,ConfFullscreenType()" Line4="conf,DisplayColorDepth" Line5="conf,HighResolutionTextures" Line6="conf,MaxTextureResolution" @@ -3045,6 +3070,7 @@ Line9="conf,SmoothLines" Line10="conf,CelShadeModels" Line11="conf,DelayedTextureDelete" +# RefreshRate ConfOption no longer used Line12="conf,RefreshRate" Line13="conf,Vsync" LineFNR="conf,FastNoteRendering" @@ -3112,9 +3138,8 @@ Fallback="ScreenOptionsServiceChild" NextScreen="ScreenOptionsDisplaySub" PrevScreen="ScreenOptionsDisplaySub" -LineNames="1,3,4,6,7,8,9,10,11,12,14" +LineNames="1,4,6,7,8,9,10,11,12,14" Line1="conf,Center1Player" -Line3="conf,DancePointsForOni" Line4="conf,MenuTimer" Line6="conf,MusicWheelUsesSections" Line7="conf,ShowBanners" diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/02 ActorDef.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/02 ActorDef.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/02 ActorDef.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/02 ActorDef.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -62,16 +62,27 @@ if t._Level then level = t._Level + 1 end - local info = debug.getinfo(level,"Sl"); + local info - -- Source file of caller: - local Source = info.source - t._Source = Source + -- Sometimes info.source will be "=(tail call)" when we need the actual + -- file something came from. + -- So this loop climbs the stack until it reaches an actual file path + -- or reaches end. + repeat + info = debug.getinfo(level,"Sl"); + if info then + -- Source file of caller: + local source= info.source + t._Source= source + -- Line number of caller: + t._Line = info.currentline + t._Dir= DebugPathToRealPath(source) - t._Dir = DebugPathToRealPath( Source ) - - -- Line number of caller: - t._Line = info.currentline + -- level is incremented for the next time through the loop. Take + -- that into account if level is used after the loop. + level= level + 1 + end + until t._Dir or not info setmetatable( t, DefMetatable ) return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/02 Utilities.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/02 Utilities.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/02 Utilities.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/02 Utilities.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -1,6 +1,6 @@ -- Find a key in tab with the given value. function FindValue(tab, value) - for key, name in tab do + for key, name in pairs(tab) do if value == name then return key end @@ -11,7 +11,7 @@ -- Return the index of a true value in list. function FindSelection(list) - for index, on in list do + for index, on in ipairs(list) do if on then return index end @@ -32,7 +32,7 @@ function wrap(val,n) local x = val Trace( "wrap "..x.." "..n ) - if x<0 then + if x<0 then x = x + (math.ceil(-x/n)+1)*n end Trace( "adjusted "..x ) @@ -122,18 +122,26 @@ --Get the count of all items in a table function table.itemcount(t) local i = 0 - while next(t)~=nil do - i=i+1 + for _, v in pairs(t) do + i = i+1 end return i end function math.round(num, pre) if pre and pre < 0 then pre = 0 end - local mult = 10^(pre or 0) - if num >= 0 then return math.floor(num*mult+.5)/mult + local mult = 10^(pre or 0) + if num >= 0 then return math.floor(num*mult+.5)/mult else return math.ceil(num*mult-.5)/mult end end + +function math.gcd(a, b) + while b ~= 0 do + a, b = b, math.mod(a, b) + end + return a +end + -- deprecated? function round(val, decimal) if decimal then @@ -197,7 +205,7 @@ if arg1==nil then arg1=arg2 elseif arg2==nil then arg2=arg1 end return (GAMESTATE:IsSideJoined(PLAYER_1) and arg1 or nil),(GAMESTATE:IsSideJoined(PLAYER_2) and arg2 or nil) -end +end function Center1Player() local styleType = GAMESTATE:GetCurrentStyle():GetStyleType() @@ -345,16 +353,13 @@ end function IsUsingWideScreen() - local curAspect = round(GetScreenAspectRatio(),5); - for k,v in pairs(AspectRatios) do - if AspectRatios[k] == curAspect then - if k == "SixteenNine" or k == "SixteenTen" then - return true; - else return false; - end; - end; - end; -end; + local curAspect = GetScreenAspectRatio() + if math.abs(curAspect-16/9) <= .044 or math.abs(curAspect - 16/10) <= .044 then + return true + else + return false + end +end -- Usage: Pass in an ActorFrame and a string to put in front of every line. -- indent will be appended to at each level of the recursion, to indent each @@ -415,6 +420,26 @@ Trace(indent .. "end") end +function rec_count_children(parent) + local total= 1 + if #parent > 0 and type(parent) == "table" then + for i, c in ipairs(parent) do + total= total + rec_count_children(c) + end + elseif parent.GetChildren then + local pname= (parent.GetName and parent:GetName()) or "" + local children= parent:GetChildren() + for k, v in pairs(children) do + if #v > 0 then + total= total + rec_count_children(v) + else + total= total + rec_count_children(v) + end + end + end + return total +end + -- Minor text formatting functions from Kyzentun. -- TODO: Figure out why BitmapText:maxwidth doesn't do what I want. -- Intentionally undocumented because they should be moved to BitmapText ASAP @@ -491,7 +516,7 @@ -- (c) 2005-2011 Glenn Maynard, Chris Danford, SSC -- All rights reserved. --- +-- -- Permission is hereby granted, free of charge, to any person obtaining a -- copy of this software and associated documentation files (the -- "Software"), to deal in the Software without restriction, including @@ -501,7 +526,7 @@ -- copyright notice(s) and this permission notice appear in all copies of -- the Software and that both the above copyright notice(s) and this -- permission notice appear in supporting documentation. --- +-- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF @@ -511,4 +536,3 @@ -- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -- PERFORMANCE OF THIS SOFTWARE. - diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/03 DisplaySpecs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/03 DisplaySpecs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/03 DisplaySpecs.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/03 DisplaySpecs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,614 @@ +-- A shim to make an honest-to-goodness lua table (array) out of the +-- userdata DisplaySpecs we get from c++ +local cachedSpecs = nil + +local function GetDisplaySpecs() + if cachedSpecs == nil then + local specs = DISPLAY:GetDisplaySpecs() + t = { + ById= function(self, id) + for i, d in ipairs(self) do + if d:GetId() == id or + ((id == '' or id == nil) and d:IsVirtual()) then + return self[i] + end + end + -- default to returning first DisplaySpec + return self[1] + end, + -- hold on to a reference to the userdata, so it isn't GC'd prematurely + c_specs= specs + } + for i = 1, #specs do + t[i] = specs[i] + end + + cachedSpecs = t + end + + return cachedSpecs +end + +-- Ease lookup of OptionRow effects masks +local OE = OptEffect:Reverse() + +function ConfDisplayMode() + local effectsMask = 2^OE["OptEffect_SavePreferences"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyGraphics"] + + local specs = GetDisplaySpecs() + local choices = {} + for i, d in ipairs(specs) do + choices[i] = d:GetName() + end + local origDisplay = PREFSMAN:GetPreference("DisplayId") + local origWindowed = PREFSMAN:GetPreference("Windowed") + choices[#choices + 1] = "Windowed" + + local t = { + Name= "Windowed", + GoToFirstOnStart= false, + OneChoiceForAllPlayers= true, + ExportOnChange= false, + LayoutType= "ShowAllInRow", + SelectType= "SelectOne", + + Choices= choices, + LoadSelections= function(self, list, pn) + local windowed = PREFSMAN:GetPreference("Windowed") + local displayIdx = FindValue(specs, specs:ById(PREFSMAN:GetPreference("DisplayId"))) + local i = windowed and #self.Choices or displayIdx + list[i] = true + end, + SaveSelections= function(self, list, pn) + local choice = FindSelection(list) + local selWindowed = choice == #self.Choices + local selDisplay = selWindowed and origDisplay or specs[choice]:GetId() + + -- If we've changed from the established preferences in place at our + -- instantiation, then we'll return our effects + if selWindowed ~= origWindowed + or selDisplay ~= origDisplay then + return effectsMask + else + return 0 + end + end, + NotifyOfSelection= function(self, pn, choice) + local curDisplay = PREFSMAN:GetPreference("DisplayId") + local curWindowed = PREFSMAN:GetPreference("Windowed") + local selWindowed = choice == #self.Choices + local selDisplay = selWindowed and curDisplay or specs[choice]:GetId() + -- If we've changed from what's currently saved in PREFSMAN, + -- then we'll broadcast that state + if selWindowed ~= curWindowed + or selDisplay ~= curDisplay then + PREFSMAN:SetPreference("Windowed", selWindowed) + PREFSMAN:SetPreference("DisplayId", selDisplay) + MESSAGEMAN:Broadcast("DisplayChoiceChanged") + end + end + } + return t +end + +-- TODO: here, I'm replicating the AspectRatios table from "02 Utilities.lua", +-- but in a friendly format +local winFracs = { + {n=3, d=4}, + {n=1, d=1}, + {n=5, d=4}, + {n=4, d=3}, + {n=16, d=10}, + {n=16, d=9}, + {n=8, d=3} +} +-- Maximum distance between aspect ratios to be considered equivalent +-- (approximately half the distance between 16:9 and 16:10) +local RATIO_EPSILON = .044 + + +local function GetWindowAspectRatios() + local ratios = {} + for i, f in ipairs(winFracs) do + ratios[math.round(f.n/f.d, 3)] = f + end + + return ratios +end + +-- build a map from DisplayId to supported aspect ratios +local function GetDisplayAspectRatios(specs) + local ratios = {} + local recognized = GetWindowAspectRatios() + for _, d in ipairs(specs) do + local dRatios = {} + for j, mode in ipairs(d:GetSupportedModes()) do + local trueRatio = mode:GetWidth()/mode:GetHeight() + local truncRatio = math.round(trueRatio, 3) + if not dRatios[truncRatio] then + local f = {} + -- Check if this is a known aspect ratio, or practically the + -- same (e.g. 1366x768 is typically considered 16:9) + for knownRatio, fraction in pairs(recognized) do + if math.abs(trueRatio - (fraction.n/fraction.d)) < RATIO_EPSILON then + truncRatio = knownRatio + f = fraction + break + end + end + + -- If we didn't find a recognized ratio, then register a new ratio + -- as the reduced fraction of width / height + if not f.n then + local w = mode:GetWidth() + local h = mode:GetHeight() + local gcd = math.gcd(w, h) + dRatios[trueRatio] = {n=w/gcd, d=h/gcd} + else + dRatios[truncRatio] = f + end + end + end + ratios[d:GetId()] = dRatios + -- Allow looking up the virtual display's aspect ratio by empty string + if d:IsVirtual() then + ratios[""] = dRatios + end + end + + return ratios +end + +-- hack, use as a space to share value between ConfAspectRatio() and +-- ConfDisplayResoltuion(). Can't use PREFSMAN:SetPreference("DisplayAspectRatio", x) +-- because that change take effect *immediately* (it is read in the rendering loop) +local CurAspectRatio = 0 + +function ConfAspectRatio() + local effectsMask = 2^OE["OptEffect_SavePreferences"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyGraphics"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyAspectRatio"] + local specs = GetDisplaySpecs() + local origAspectRatio = PREFSMAN:GetPreference("DisplayAspectRatio") + CurAspectRatio = origAspectRatio + + local dRatios = GetDisplayAspectRatios(specs) + local wRatios = GetWindowAspectRatios() + local t = { + Name= "DisplayAspectRatio", + GoToFirstOnStart= false, + OneChoiceForAllPlayers= true, + ExportOnChange= false, + LayoutType= "ShowAllInRow", + SelectType= "SelectOne", + ReloadRowMessages= {"DisplayChoiceChanged"}, + LoadSelections= function(self, list, pn) + local r = CurAspectRatio + for i, v in ipairs(self.ChoiceVals) do + if math.abs(CurAspectRatio - v) < RATIO_EPSILON then + list[i] = true + break + end + end + end, + + SaveSelections= function(self, list, pn) + local i = FindSelection(list) + PREFSMAN:SetPreference("DisplayAspectRatio", self.ChoiceVals[i]) + if math.abs(self.ChoiceVals[i] - origAspectRatio) < RATIO_EPSILON then + return 0 + else + return effectsMask + end + end, + + NotifyOfSelection= function(self, pn, choice) + local selRatio = self.ChoiceVals[choice] + if math.abs(selRatio-CurAspectRatio) >= RATIO_EPSILON then + CurAspectRatio = selRatio + MESSAGEMAN:Broadcast("AspectRatioChoiceChanged") + end + end, + + Reload= function(self) + local origVals = self.ChoiceVals + self:GenChoices() + + -- Pass along the message to ConfDisplayResolution() + -- regardless, but important we do this *after* self:GenChoices() + -- to ensure we've updated the CurAspectRatio in accordance + -- with what this display supports + MESSAGEMAN:Broadcast("AspectRatioChoiceChanged") + + if #origVals ~= #self.ChoiceVals then + return "ReloadChanged_All" + end + + for i, v in ipairs(origVals) do + if origVals[i] ~= self.ChoiceVals[i] then + return "ReloadChanged_All" + end + end + + return "ReloadChanged_None" + end, + + GenChoices= function(self) + -- Determine the available aspect ratios for the current display mode + local isWindowed = PREFSMAN:GetPreference("Windowed") + local curDisplayId = PREFSMAN:GetPreference("DisplayId") + local ratios = isWindowed and wRatios or (dRatios[curDisplayId] or dRatios[specs[1]:GetId()]) + local choices = {} + local vals = {} + foreach_ordered(ratios, function(v, f) + vals[#vals + 1] = f.n/f.d + choices[#choices + 1] = tostring(f.n) .. ':' .. tostring(f.d) + end) + self.Choices = choices + self.ChoiceVals = vals + + -- Get the closest aspect ratio to the currently-configured one + -- that this display mode supports + local closestRatio = vals[1] + local closestDist = math.abs(vals[1] - CurAspectRatio) + for _, v in ipairs(vals) do + local dist = math.abs(v - CurAspectRatio) + if dist < closestDist then + closestRatio = v + closestDist = dist + end + end + CurAspectRatio = closestRatio + end + } + t:GenChoices() + return t +end + +local function GenerateFeasibleWindowSizesForRatio(specs, r) + -- Get the largest feasible window size *for a single monitor*, + -- then generate a sequence of smaller window sizes, until + -- one of height/width < 300 (arbitrary) + -- TODO: Get fancy and consider larger rectangles that span + -- multiple monitors + local maxWinWidth = 0 + for _, d in ipairs(specs) do + local modes = d:GetSupportedModes() + local dLargestMode = modes[#modes] + local w = dLargestMode:GetWidth() + local h = dLargestMode:GetHeight() + local dMaxWinWidth = w/r <= h and w or r*h + maxWinWidth = dMaxWinWidth > maxWinWidth and dMaxWinWidth or maxWinWidth + end + + -- Generate successively smaller rectangles + local sizes = {} + + local w = maxWinWidth + local h = maxWinWidth/r + while w > 300 and h > 300 do + sizes[#sizes + 1] = {w=math.round(w), h=math.round(h)} + w = 0.75*w + h = w/r + end + + -- Reverse the list (sort in increasing size) + local rsizes = {} + for i = #sizes, 1, -1 do + rsizes[i] = sizes[#sizes - i + 1] + end + + return rsizes +end + +local function GetFeasibleWindowSizesForRatio(specs, r) + -- First, try to see if we have a sufficiently large set of + -- resolutions to pick from in the list(s) of supported modes for the display(s) + -- (since those resolutions tend to be "natural" looking), otherwise just generate + -- some window sizes (which might look weird). + local widths = {} + for _, d in ipairs(specs) do + for _, m in ipairs(d:GetSupportedModes()) do + local w = m:GetWidth() + local h = m:GetHeight() + if math.abs((w/h) - r) < RATIO_EPSILON then + widths[w] = h + end + end + end + + if table.itemcount(widths) < 4 then + return GenerateFeasibleWindowSizesForRatio(specs, r) + else + local resolutions = {} + for w, h in pairs(widths) do + resolutions[#resolutions + 1] = {w=w, h=h} + end + table.sort(resolutions, function (a, b) return a.w < b.w end) + return resolutions + end + +end + + +local function GetDisplayResolutionsForRatio(d, r) + local sizes = {} + for _, m in ipairs(d:GetSupportedModes()) do + local w = m:GetWidth() + local h = m:GetHeight() + local trueRatio = w/h + if math.abs(trueRatio - r) < RATIO_EPSILON then + -- This depends on the fact that GetSupportedModes returns + -- a *sorted* list + if #sizes == 0 or sizes[#sizes].w ~= w or sizes[#sizes].h ~= h then + sizes[#sizes + 1] = {w=m:GetWidth(), h=m:GetHeight()} + end + end + end + return sizes +end + +function ConfDisplayResolution() + local effectsMask = 2^OE["OptEffect_SavePreferences"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyGraphics"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyAspectRatio"] + local specs = GetDisplaySpecs() + local origWidth = PREFSMAN:GetPreference("DisplayWidth") + local origHeight = PREFSMAN:GetPreference("DisplayHeight") + + local t = { + Name= "DisplayResolution", + GoToFirstOnStart= false, + OneChoiceForAllPlayers= true, + ExportOnChange= false, + LayoutType= "ShowAllInRow", + SelectType= "SelectOne", + ReloadRowMessages= {"AspectRatioChoiceChanged"}, + LoadSelections= function(self, list, pn) + local w = PREFSMAN:GetPreference("DisplayWidth") + local h = PREFSMAN:GetPreference("DisplayHeight") + for i, v in ipairs(self.ChoiceVals) do + if v.w == w and v.h == h then + list[i] = true + break + end + end + end, + + SaveSelections= function(self, list, pn) + local i = FindSelection(list) + local w = self.ChoiceVals[i].w + local h = self.ChoiceVals[i].h + PREFSMAN:SetPreference("DisplayWidth", w) + PREFSMAN:SetPreference("DisplayHeight", h) + if w == origWidth and h == origHeight then + return 0 + else + return effectsMask + end + end, + + NotifyOfSelection= function(self, pn, choice) + local selRes = self.ChoiceVals[choice] + local curWidth = PREFSMAN:GetPreference("DisplayWidth") + local curHeight = PREFSMAN:GetPreference("DisplayHeight") + if selRes.w ~= curWidth or selRes.h ~= curHeight then + PREFSMAN:SetPreference("DisplayWidth", selRes.w) + PREFSMAN:SetPreference("DisplayHeight", selRes.h) + MESSAGEMAN:Broadcast("DisplayResolutionChoiceChanged") + end + end, + + Reload= function(self) + local origVals = self.ChoiceVals + self:GenChoices() + + -- Pass along the message to ConfRefreshRate() regardless of + -- what happens here. Do this *after* GenChoices() so that + -- *if* currently configured resolution needed to change in response + -- to change in configured AspectRatio, ConfRefreshRate() can change + -- accordingly + MESSAGEMAN:Broadcast("DisplayResolutionChoiceChanged") + + if #origVals ~= #self.ChoiceVals then + return "ReloadChanged_All" + end + + for i, v in ipairs(origVals) do + if origVals[i] ~= self.ChoiceVals[i] then + return "ReloadChanged_All" + end + end + + return "ReloadChanged_None" + end, + + GenChoices= function(self) + local isWindowed = PREFSMAN:GetPreference("Windowed") + local curDisplay = specs:ById(PREFSMAN:GetPreference("DisplayId")) + local curRatio = CurAspectRatio ~= 0 and CurAspectRatio or PREFSMAN:GetPreference("DisplayAspectRatio") + local resolutions = isWindowed and GetFeasibleWindowSizesForRatio(specs, curRatio) + or GetDisplayResolutionsForRatio(curDisplay, curRatio) + + local choices = {} + local vals = {} + for i, r in ipairs(resolutions) do + vals[#vals + 1] = r + choices[#choices + 1] = tostring(r.w) .. 'x' .. tostring(r.h) + end + self.Choices = choices + self.ChoiceVals = vals + + -- If the currently configured resolution isn't available at this + -- aspect ratio, then pick the closest resolution + local w = PREFSMAN:GetPreference("DisplayWidth") + local h = PREFSMAN:GetPreference("DisplayHeight") + local closest = nil + local mindist = -1 + for i, v in ipairs(vals) do + local dist = math.sqrt((v.w - w)^2 + (v.h - h)^2) + if mindist == -1 or dist < mindist then + mindist = dist + closest = v + end + end + PREFSMAN:SetPreference("DisplayWidth", closest.w) + PREFSMAN:SetPreference("DisplayHeight", closest.h) + end + } + t:GenChoices() + return t +end + +function GetDisplayRatesForResolution(d, w, h) + local rates = {} + for _, m in ipairs(d:GetSupportedModes()) do + if m:GetWidth() == w and m:GetHeight() == h then + rates[#rates + 1] = math.round(m:GetRefreshRate()) + end + end + return rates +end + +function ConfRefreshRate() + local effectsMask = 2^OE["OptEffect_SavePreferences"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyGraphics"] + local specs = GetDisplaySpecs() + local origRate = PREFSMAN:GetPreference("RefreshRate") + + local t = { + Name= "RefreshRate", + GoToFirstOnStart= false, + OneChoiceForAllPlayers= true, + ExportOnChange= false, + LayoutType= "ShowAllInRow", + SelectType= "SelectOne", + ReloadRowMessages= {"DisplayResolutionChoiceChanged"}, + LoadSelections= function(self, list, pn) + local r = PREFSMAN:GetPreference("RefreshRate") + local i = FindValue(self.ChoiceVals, r) + list[i] = true + end, + + SaveSelections= function(self, list, pn) + local i = FindSelection(list) + local r = self.ChoiceVals[i] + PREFSMAN:SetPreference("RefreshRate", r) + if r ~= origRate then + return effectsMask + else + return 0 + end + end, + + NotifyOfSelection= function(self, pn, choice) + local selRate = self.ChoiceVals[choice] + local curRate = PREFSMAN:GetPreference("RefreshRate") + if selRate ~= curRate then + PREFSMAN:SetPreference("RefreshRate", selRate) + end + end, + + Reload= function(self) + local origVals = self.ChoiceVals + self:GenChoices() + if #origVals ~= #self.ChoiceVals then + return "ReloadChanged_All" + end + + for i, v in ipairs(origVals) do + if origVals[i] ~= self.ChoiceVals[i] then + return "ReloadChanged_All" + end + end + + return "ReloadChanged_None" + end, + + GenChoices= function(self) + local isWindowed = PREFSMAN:GetPreference("Windowed") + local d = specs:ById(PREFSMAN:GetPreference("DisplayId")) + local w = PREFSMAN:GetPreference("DisplayWidth") + local h = PREFSMAN:GetPreference("DisplayHeight") + local rates = isWindowed and {} + or GetDisplayRatesForResolution(d, w, h) + + local choices = {"Default"} + local choiceVals = {REFRESH_DEFAULT} + for i, r in ipairs(rates) do + choiceVals[#choiceVals + 1] = math.round(r) + choices[#choices + 1] = tostring(math.round(r)) + end + + self.Choices = choices + self.ChoiceVals = choiceVals + + -- If the currently configured refresh rate isn't available at this + -- resolution, then pick the closest one (so long as it's within + -- a fixed threshold) + local curRate = PREFSMAN:GetPreference("RefreshRate") + local threshold = 10 + local closestIdx = nil + local mindist = -1 + for i, r in ipairs(choiceVals) do + local dist = math.abs(r - curRate) + if mindist == -1 or dist < mindist then + mindist = dist + closestIdx = i + end + end + local curRateIdx = mindist < threshold and closestIdx or 1 + PREFSMAN:SetPreference("RefreshRate", choiceVals[curRateIdx]) + end + } + t:GenChoices() + return t +end + +function ConfFullscreenType() + local effectsMask = 2^OE["OptEffect_SavePreferences"] + effectsMask = effectsMask + 2^OE["OptEffect_ApplyGraphics"] + + local FULLSCREEN_EXCLUSIVE = 0 + local FULLSCREEN_BORDERLESS_WIN = 1 + + local fsbwSupported = DISPLAY:SupportsFullscreenBorderlessWindow() + + local choiceVals = {FULLSCREEN_EXCLUSIVE} + local choices = {"Default"} + if fsbwSupported then + choices = {"Exclusive", "Borderless Window"} + choiceVals = {FULLSCREEN_EXCLUSIVE, FULLSCREEN_BORDERLESS_WIN} + end + local origFSType = PREFSMAN:GetPreference("FullscreenIsBorderlessWindow") and FULLSCREEN_BORDERLESS_WIN or FULLSCREEN_EXCLUSIVE + + local t = { + Name= "FullscreenType", + GoToFirstOnStart= false, + OneChoiceForAllPlayers= true, + ExportOnChange= false, + LayoutType= "ShowAllInRow", + SelectType= "SelectOne", + Choices= choices, + ChoiceVals= choiceVals, + + LoadSelections= function(self, list, pn) + local fsType = PREFSMAN:GetPreference("FullscreenIsBorderlessWindow") and FULLSCREEN_BORDERLESS_WIN + or FULLSCREEN_EXCLUSIVE + local i = FindValue(self.ChoiceVals, fsType) + list[i] = true + end, + SaveSelections= function(self, list, pn) + local selFSType = self.ChoiceVals[FindSelection(list)] + PREFSMAN:SetPreference("FullscreenIsBorderlessWindow", selFSType == FULLSCREEN_BORDERLESS_WIN) + if selFSType ~= origFSType then + return effectsMask + else + return 0 + end + end + } + + return t +end diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/03 Gameplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/03 Gameplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/03 Gameplay.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/03 Gameplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -460,3 +460,17 @@ local inputCode = CodeDetectorCodes[codeName] return inputCode[gameName] or inputCode["default"] end + +function oitg_zoom_mode_actor() + return Def.Actor{ + OnCommand= function(self) + local screen= SCREENMAN:GetTopScreen() + for i, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do + local player= screen:GetChild("Player"..ToEnumShortString(pn)) + if player and player.set_oitg_zoom_mode then + player:set_oitg_zoom_mode(true) + end + end + end, + } +end diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/04 CreditsHelpers.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/04 CreditsHelpers.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/_fallback/Scripts/04 CreditsHelpers.lua" 2016-08-10 23:15:24.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/_fallback/Scripts/04 CreditsHelpers.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -85,8 +85,10 @@ "Kaox", -- pump/default noteskin -- Add Graphics/CreditsLogo name.png and change your entry to a table like this to look super pro. {logo= "kyzentun", name= "Kyzentun"}, -- new lua bindings, theme documentation + "Lirodon", -- Lambda default theme on 5.1 "Mad Matt", -- new lua bindings "Matt McCutchen", -- minor fix for some dance pads on linux + "MrThatKid", -- nitg modifiers "NitroX72", -- pump/frame noteskin "nixtrix", -- various BMS features and other fixes "Petriform", -- default theme music diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_Arcade decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_Arcade decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_Arcade decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_Arcade decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,31 @@ +local t = Def.ActorFrame {}; +t.InitCommand=function(self) + self:name("ArcadeOverlay") + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen") +end; +t[#t+1] = Def.ActorFrame { + Name="ArcadeOverlay.Text"; + InitCommand=function(self) + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen") + end; + LoadActor(THEME:GetPathG("OptionRowExit","Frame")) .. { + InitCommand=cmd(diffuse,Color("Orange");diffusealpha,0.35); + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(zoom,0.75;shadowlength,1;glowshift;strokecolor,Color("Outline");diffuse,Color("Orange");diffusetopedge,Color("Yellow");textglowmode,'TextGlowMode_Inner'); + Text="..."; + OnCommand=cmd(playcommand,"Refresh"); + CoinInsertedMessageCommand=cmd(playcommand,"Refresh"); + CoinModeChangedMessageCommand=cmd(playcommand,"Refresh"); + RefreshCommand=function(self) + local bCanPlay = GAMESTATE:EnoughCreditsToJoin(); + local bReady = GAMESTATE:GetNumSidesJoined() > 0; + if bCanPlay or bReady then + self:settext(THEME:GetString("ScreenTitleJoin","HelpTextJoin")); + else + self:settext(THEME:GetString("ScreenTitleJoin","HelpTextWait")); + end + end; + }; +}; +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame 3x1/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame 3x1/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame 3x1/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame 3x1/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,12 @@ +local File, Width = ... +assert( File ); +assert( Width ); + +local FullFile = THEME:GetPathB('','_frame files 3x1/'..File ) +local Frame = LoadActor( FullFile ) + +return Def.ActorFrame { + Frame .. { InitCommand=cmd(setstate,0;pause;horizalign,right;x,-Width/2) }; + Frame .. { InitCommand=cmd(setstate,1;pause;zoomtowidth,Width) }; + Frame .. { InitCommand=cmd(setstate,2;pause;horizalign,left;x,Width/2) }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame 3x3/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame 3x3/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame 3x3/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame 3x3/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,18 @@ +local File, Width, Height = ... +assert( File ); +assert( Width ); +assert( Height ); + +local FullFile = THEME:GetPathB('','_frame files 3x3/'..File ) +local Frame = LoadActor( FullFile ) +return Def.ActorFrame { + Frame .. { InitCommand=cmd(setstate,0;pause;horizalign,right;vertalign,bottom;x,-Width/2;y,-Height/2) }; + Frame .. { InitCommand=cmd(setstate,1;pause;zoomtowidth,Width;vertalign,bottom;zoomtowidth,Width;y,-Height/2) }; + Frame .. { InitCommand=cmd(setstate,2;pause;horizalign,left;vertalign,bottom;x,Width/2;y,-Height/2) }; + Frame .. { InitCommand=cmd(setstate,3;pause;horizalign,right;x,-Width/2;zoomtoheight,Height) }; + Frame .. { InitCommand=cmd(setstate,4;pause;zoomtowidth,Width;zoomtoheight,Height) }; + Frame .. { InitCommand=cmd(setstate,5;pause;horizalign,left;x,Width/2;zoomtoheight,Height) }; + Frame .. { InitCommand=cmd(setstate,6;pause;horizalign,right;vertalign,top;x,-Width/2;y,Height/2) }; + Frame .. { InitCommand=cmd(setstate,7;pause;zoomtowidth,Width;vertalign,top;zoomtowidth,Width;y,Height/2) }; + Frame .. { InitCommand=cmd(setstate,8;pause;horizalign,left;vertalign,top;x,Width/2;y,Height/2) }; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded fill.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded fill.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded gloss.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded gloss.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded white.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame cursors/rounded white.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame files 3x1/rounded fill 3x1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame files 3x1/rounded fill 3x1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_frame files 3x1/rounded gloss 3x1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_frame files 3x1/rounded gloss 3x1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/old ScreenWithMenuElements background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/old ScreenWithMenuElements background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/old ScreenWithMenuElements background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/old ScreenWithMenuElements background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,11 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("#00bfe8");diffusetopedge,color("#009ad5")); + }; +}; + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen cancel/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen cancel/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen cancel/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen cancel/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,0.5");sleep,5/60;diffusealpha,1;sleep,5/60); + }; + LoadActor(THEME:GetPathS("_Screen","cancel")) .. { + IsAction= true, + StartTransitioningCommand=cmd(play); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,46 @@ +local t = Def.ActorFrame {}; + +-- Fade +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.75); + OffCommand=cmd(linear,0.25;diffusealpha,0); + }; +}; +-- Emblem +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + OnCommand=cmd(diffusealpha,0.5); + LoadActor("_warning bg") .. { + OnCommand=cmd(diffuse,Color.Yellow); + }; + Def.ActorFrame { + LoadActor("_exclamation") .. { + OnCommand=cmd(diffuse,Color.Yellow); + }; + }; +}; + +-- Text +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center;y,SCREEN_CENTER_Y); + OnCommand=cmd(addy,-96); + -- Underline + Def.Quad { + InitCommand=cmd(y,24;zoomto,256,2); + OnCommand=cmd(diffuse,color("#ffd400");shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,256;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Large") .. { + Text=Screen.String("Caution"); + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");strokecolor,ColorDarkTone(color("#ffd400"))); + }; + LoadFont("Common Normal") .. { + Text=Screen.String("CautionText"); + InitCommand=cmd(y,128); + OnCommand=cmd(strokecolor,color("0,0,0,0.5");shadowlength,1;wrapwidthpixels,SCREEN_WIDTH-80); + }; +}; +-- +return t Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/_exclamation.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/_exclamation.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/_warning bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCaution overlay/_warning bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenContinue underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenContinue underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenContinue underlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenContinue underlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,34 @@ +local timer_seconds = THEME:GetMetric(Var "LoadingScreen","TimerSeconds"); +local t = Def.ActorFrame {}; + +-- Fade +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.25; + sleep,timer_seconds/2; + linear,timer_seconds/2-0.5;diffusealpha,1); + }; + -- Warning Fade + Def.Quad { + InitCommand=cmd(y,16;scaletoclipped,SCREEN_WIDTH,148); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5; + linear,timer_seconds;zoomtoheight,148*0.75); + } +}; +-- +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center;y,SCREEN_CENTER_Y-24); + -- Underline + Def.Quad { + InitCommand=cmd(y,16;zoomto,256,1); + OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,256;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Bold") .. { + Text="Continue?"; + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)); + }; +}; +-- +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,20 @@ +local scrolltime = 95; + +local t = Def.ActorFrame { + InitCommand=cmd(Center); + LoadActor("_space")..{ + InitCommand=cmd(y,-SCREEN_HEIGHT*1.5;fadebottom,0.125;fadetop,0.25); + OnCommand=cmd(linear,scrolltime;addy,SCREEN_HEIGHT*1.5825); + }; + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffusecolor,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); + }; + LoadActor("_grid")..{ + InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true); + OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset'; + effectcolor2,Color("Black");effectcolor1,Color.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345); + }; +}; + +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/_grid.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/_grid.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/_space.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits background/_space.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenCredits overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenCredits overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,65 @@ +-- To add a section to the credits, use the following: +-- local theme_credits= { +-- name= "Theme Credits", -- the name of your section +-- "Me", -- The people you want to list in your section. +-- "Myself", +-- "My other self", +-- {logo= "pro_dude", name= "Pro self"}, -- Someone who has a logo image. +-- -- This logo image would be "Graphics/CreditsLogo pro_dude.png". +-- } +-- StepManiaCredits.AddSection(theme_credits) +-- +-- If you want to add your section after an existing section, use the following: +-- StepManiaCredits.AddSection(theme_credits, 7) +-- +-- Or position can be the name of a section to insert after: +-- StepManiaCredits.AddSection(theme_credits, "Special Thanks") +-- +-- Or if you want to add your section before a section: +-- StepManiaCredits.AddSection(theme_credits, "Special Thanks", true) + +-- StepManiaCredits is defined in _fallback/Scripts/04 CreditsHelpers.lua. + +local line_on = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,1) +local section_on = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,1) +local subsection_on = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,1) +local item_padding_start = 4; +local line_height= 30 +-- Tell the credits table the line height so it can use it for logo sizing. +StepManiaCredits.SetLineHeight(line_height) + +local creditScroller = Def.ActorScroller { + SecondsPerItem = 0.5; + NumItemsToDraw = 40; + TransformFunction = function( self, offset, itemIndex, numItems) + self:y(line_height*offset) + end; + OnCommand = cmd(scrollwithpadding,item_padding_start,15); +} + +-- Add sections with padding. +for section in ivalues(StepManiaCredits.Get()) do + StepManiaCredits.AddLineToScroller(creditScroller, section.name, section_on) + for name in ivalues(section) do + if name.type == "subsection" then + StepManiaCredits.AddLineToScroller(creditScroller, name, subsection_on) + else + StepManiaCredits.AddLineToScroller(creditScroller, name, line_on) + end + end + StepManiaCredits.AddLineToScroller(creditScroller) + StepManiaCredits.AddLineToScroller(creditScroller) +end + +creditScroller.BeginCommand=function(self) + SCREENMAN:GetTopScreen():PostScreenMessage( 'SM_MenuTimer', (creditScroller.SecondsPerItem * (#creditScroller + item_padding_start) + 10) ); +end; + +return Def.ActorFrame{ + creditScroller..{ + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64), + }, + LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top"))..{ + InitCommand=cmd(Center), + }, +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = LoadFallbackB(); +t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1");cropbottom,1;fadebottom,1); + OnCommand=cmd(decelerate,0.5;cropbottom,0;fadebottom,0); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenDemonstration overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,46 @@ +local t = Def.ActorFrame{ + Def.Quad{ + Name="TopFrame"; + InitCommand=cmd(CenterX;y,SCREEN_TOP;valign,0;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0,0,0,1");fadebottom,0.5); + }; + + Def.Quad{ + Name="BotFrame"; + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM;valign,1;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.15;diffuse,color("0,0,0,1");fadetop,0.5); + }; + + Def.ActorFrame{ + Name="MiddleSection"; + InitCommand=cmd(CenterX;y,SCREEN_CENTER_Y*1.35); + Def.Quad{ + Name="Frame"; + InitCommand=cmd(zoomto,SCREEN_WIDTH,0;diffuse,color("0.1,0.1,0.1,0.75");fadebottom,0.25;fadetop,0.25;); + OnCommand=cmd(smooth,0.75;zoomtoheight,64;); + }; + LoadFont("Common normal")..{ + Text=Screen.String("Demonstration"); + InitCommand=cmd(diffusealpha,0;strokecolor,color("0,0,0,0.5")); + OnCommand=cmd(smooth,0.75;diffusealpha,1;diffuseshift;effectcolor1,HSV(38,0.45,0.95)); + }; + }; + + LoadFont("Common normal")..{ + Name="SongTitle"; + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_TOP+16;zoom,0.5;shadowlength,1;valign,0); + BeginCommand=function(self) + local song = GAMESTATE:GetCurrentSong(); + local text = ""; + if song then + local artist = song:GetDisplayArtist() + local title = song:GetDisplayFullTitle() + local group = song:GetGroupName() + text = string.format(Screen.String("%s - %s [from %s]"),artist,title,group) + end; + self:settext(text); + end; +-- OnCommand=cmd(queuecommand,"Scroll"); +-- ScrollCommand=cmd(linear,10;x,-SCREEN_WIDTH*2;sleep,1;x,SCREEN_WIDTH*2;queuecommand,"Scroll"); + }; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEdit background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEdit background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEdit background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEdit background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,27 @@ +local t = Def.ActorFrame { + InitCommand=cmd(fov,90); +}; +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + LoadActor( THEME:GetPathB("ScreenWithMenuElements","background/_bg top") ) .. { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + }; + Def.Quad{ + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,color("0.2,0.2,0.2,0")); + OnCommand=function(self) + local topScreen = SCREENMAN:GetTopScreen() + if topScreen then + local screenName = topScreen:GetName() + if screenName == "ScreenEdit" or screenName == "ScreenPractice" then + self:diffusealpha(0.95) + else + self:diffusealpha(0.65) + end; + end; + end; + EditorShowMessageCommand=cmd(stoptweening;linear,0.5;diffusealpha,0.95); + EditorHideMessageCommand=cmd(stoptweening;linear,0.5;diffusealpha,0.65); + }; +}; + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,27 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + Def.Sprite { + OnCommand=function(self) + if GAMESTATE:GetCurrentSong() then + local song = GAMESTATE:GetCurrentSong(); + if song:HasBackground() then + self:LoadBackground(song:GetBackgroundPath()); + end; + self:scale_or_crop_background() + self:fadebottom(0.25) + self:fadetop(0.25) + self:croptop(1/10) + self:cropbottom(1/10) + else + self:visible(false); + end + end; + }; + Def.Quad { + InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); + }; +}; + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,259 @@ +local function GraphDisplay( pn ) + local t = Def.ActorFrame { + LoadActor( THEME:GetPathG("_GraphDisplay","overlay")) .. { + InitCommand=cmd(y,6); + }; + Def.GraphDisplay { + InitCommand=cmd(Load,"GraphDisplay";); + BeginCommand=function(self) + local ss = SCREENMAN:GetTopScreen():GetStageStats(); + self:Set( ss, ss:GetPlayerStageStats(pn) ); + self:player( pn ); + end + }; + }; + return t; +end + +local function ComboGraph( pn ) + local t = Def.ActorFrame { + Def.ComboGraph { + InitCommand=cmd(Load,"ComboGraph";); + BeginCommand=function(self) + local ss = SCREENMAN:GetTopScreen():GetStageStats(); + self:Set( ss, ss:GetPlayerStageStats(pn) ); + self:player( pn ); + end + }; + }; + return t; +end + +local function PercentScore( pn ) + local t = LoadFont("Common normal")..{ + InitCommand=cmd(zoom,0.625;shadowlength,1;player,pn); + BeginCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + -- todo: color by difficulty + local SongOrCourse, StepsOrTrail; + if GAMESTATE:IsCourseMode() then + SongOrCourse = GAMESTATE:GetCurrentCourse() + StepsOrTrail = GAMESTATE:GetCurrentTrail(pn) + else + SongOrCourse = GAMESTATE:GetCurrentSong() + StepsOrTrail = GAMESTATE:GetCurrentSteps(pn) + end; + if SongOrCourse and StepsOrTrail then + local st = StepsOrTrail:GetStepsType(); + local diff = StepsOrTrail:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:diffuse(CustomDifficultyToColor(cd)); + self:shadowcolor(CustomDifficultyToDarkColor(cd)); + end + + local pss = STATSMAN:GetPlayedStageStats(1):GetPlayerStageStats(pn); + if pss then + local pct = pss:GetPercentDancePoints(); + if pct == 1 then + self:settext("100%"); + else + self:settext(FormatPercentScore(pct)); + end; + end; + end; + }; + return t; +end + +local t = LoadFallbackB(); + +t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); + +if ShowStandardDecoration("GraphDisplay") and GAMESTATE:GetPlayMode() ~= "PlayMode_Rave" then + for pn in ivalues(GAMESTATE:GetHumanPlayers()) do + t[#t+1] = StandardDecorationFromTable( "GraphDisplay" .. ToEnumShortString(pn), GraphDisplay(pn) ); + end +end + +if ShowStandardDecoration("ComboGraph") and GAMESTATE:GetPlayMode() ~= "PlayMode_Rave" then + for pn in ivalues(GAMESTATE:GetHumanPlayers()) do + t[#t+1] = StandardDecorationFromTable( "ComboGraph" .. ToEnumShortString(pn), ComboGraph(pn) ); + end +end + +if ShowStandardDecoration("StepsDisplay") then + for pn in ivalues(PlayerNumber) do + local t2 = Def.StepsDisplay { + InitCommand=cmd(Load,"StepsDisplayEvaluation",pn;SetFromGameState,pn;); + UpdateNetEvalStatsMessageCommand=function(self,param) + if GAMESTATE:IsPlayerEnabled(pn) then + self:SetFromSteps(param.Steps) + end; + end; + }; + t[#t+1] = StandardDecorationFromTable( "StepsDisplay" .. ToEnumShortString(pn), t2 ); + t[#t+1] = StandardDecorationFromTable( "PercentScore" .. ToEnumShortString(pn), PercentScore(pn) ); + end +end + +for pn in ivalues(PlayerNumber) do + local MetricsName = "MachineRecord" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "MachineRecord"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; +end + +for pn in ivalues(PlayerNumber) do + local MetricsName = "PersonalRecord" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PersonalRecord"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; +end + +for pn in ivalues(PlayerNumber) do + local MetricsName = "StageAward" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "StageAward"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + BeginCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local tStats = THEME:GetMetric(Var "LoadingScreen", "Summary") and STATSMAN:GetAccumPlayedStageStats() or STATSMAN:GetCurStageStats(); + tStats = tStats:GetPlayerStageStats(pn); + if tStats:GetStageAward() and not tStats:GetFailed() then + self:settext( THEME:GetString( "StageAward", ToEnumShortString( tStats:GetStageAward() ) ) ); + else + self:settext( "" ); + end + end; + }; +end + +for pn in ivalues(PlayerNumber) do + local MetricsName = "PeakComboAward" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PeakComboAward"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + BeginCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local tStats = THEME:GetMetric(Var "LoadingScreen", "Summary") and STATSMAN:GetAccumPlayedStageStats() or STATSMAN:GetCurStageStats(); + tStats = tStats:GetPlayerStageStats(pn); + if tStats:GetPeakComboAward() then + self:settext( THEME:GetString( "PeakComboAward", ToEnumShortString( tStats:GetPeakComboAward() ) ) ); + else + self:settext( "" ); + end + end; + }; +end + +t[#t+1] = StandardDecorationFromFileOptional("SongInformation","SongInformation") .. { + BeginCommand=function(self) + local SongOrCourse; + if GAMESTATE:GetCurrentSong() then + SongOrCourse = GAMESTATE:GetCurrentSong(); + elseif GAMESTATE:GetCurrentCourse() then + SongOrCourse = GAMESTATE:GetCurrentCourse(); + else + return + end + + if SongOrCourse:HasBanner() then + self:visible(false); + else + self:visible(true); + end + end; + SetCommand=function(self) + local c = self:GetChildren(); + 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.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.TextSubtitle:visible(true); + c.TextSubtitle:y(0); + c.TextArtist:visible(true); + c.TextArtist:y(18); + end +-- self:playcommand("Tick"); + elseif GAMESTATE:GetCurrentCourse() then + SongOrCourse = GAMESTATE:GetCurrentCourse(); + + c.TextTitle:settext( SongOrCourse:GetDisplayMainTitle() or nil ); + c.TextSubtitle:settext( SongOrCourse:GetDisplaySubTitle() or nil ); + c.TextArtist:settext( SongOrCourse:GetDisplayArtist() or nil ); + +-- self:playcommand("Tick"); + else + SongOrCourse = nil; + + c.TextTitle:settext(""); + c.TextSubtitle:settext(""); + c.TextArtist:settext(""); + + self:playcommand("Hide") + end + end; +-- OnCommand=cmd(playcommand,"Set"); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + DisplayLanguageChangedMessageCommand=cmd(playcommand,"Set"); +}; +t[#t+1] = StandardDecorationFromFileOptional("LifeDifficulty","LifeDifficulty"); +t[#t+1] = StandardDecorationFromFileOptional("TimingDifficulty","TimingDifficulty"); +t[#t+1] = StandardDecorationFromFileOptional("GameType","GameType"); +t[#t+1] = Def.ActorFrame { + Condition=GAMESTATE:HasEarnedExtraStage() and GAMESTATE:IsExtraStage() and not GAMESTATE:IsExtraStage2(); + InitCommand=cmd(draworder,105); + LoadActor( THEME:GetPathS("ScreenEvaluation","try Extra1" ) ) .. { + Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; + OnCommand=cmd(play); + }; + LoadActor( THEME:GetPathG("ScreenStageInformation","Stage extra1" ) ) .. { + Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; + InitCommand=cmd(Center); + OnCommand=cmd(diffusealpha,0;zoom,0.85;bounceend,1;zoom,1;diffusealpha,1;sleep,0;glow,Color("White");decelerate,1;glow,Color("Invisible");smooth,0.35;zoom,0.25;y,SCREEN_BOTTOM-72); + }; +}; +t[#t+1] = Def.ActorFrame { + Condition=GAMESTATE:HasEarnedExtraStage() and not GAMESTATE:IsExtraStage() and GAMESTATE:IsExtraStage2(); + InitCommand=cmd(draworder,105); + LoadActor( THEME:GetPathS("ScreenEvaluation","try Extra2" ) ) .. { + Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; + OnCommand=cmd(play); + }; + LoadActor( THEME:GetPathG("ScreenStageInformation","Stage extra2" ) ) .. { + Condition=THEME:GetMetric( Var "LoadingScreen","Summary" ) == false; + InitCommand=cmd(Center); + OnCommand=cmd(diffusealpha,0;zoom,0.85;bounceend,1;zoom,1;diffusealpha,1;sleep,0;glow,Color("White");decelerate,1;glow,Color("Invisible");smooth,0.35;zoom,0.25;y,SCREEN_BOTTOM-72); + }; +}; +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,79 @@ +local vStats = STATSMAN:GetCurStageStats(); + +local function CreateStats( pnPlayer ) + -- Actor Templates + 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. + local tStats = { + W1 = pnStageStats:GetTapNoteScores('TapNoteScore_W1'); + W2 = pnStageStats:GetTapNoteScores('TapNoteScore_W2'); + W3 = pnStageStats:GetTapNoteScores('TapNoteScore_W3'); + W4 = pnStageStats:GetTapNoteScores('TapNoteScore_W4'); + W5 = pnStageStats:GetTapNoteScores('TapNoteScore_W5'); + Miss = pnStageStats:GetTapNoteScores('TapNoteScore_Miss'); + HitMine = pnStageStats:GetTapNoteScores('TapNoteScore_HitMine'); + AvoidMine = pnStageStats:GetTapNoteScores('TapNoteScore_AvoidMine'); + Held = pnStageStats:GetHoldNoteScores('HoldNoteScore_Held'); + LetGo = pnStageStats:GetHoldNoteScores('HoldNoteScore_LetGo'); + }; + -- Organized Equation Values + local tValues = { + -- marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7 + ITG = ( tStats["W1"]*7 + tStats["W2"]*6 + tStats["W3"]*5 + tStats["W4"]*4 + tStats["W5"]*2 + tStats["Held"]*7 ), + -- (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7 + ITG_MAX = ( tStats["W1"] + tStats["W2"] + tStats["W3"] + tStats["W4"] + tStats["W5"] + tStats["Miss"] + tStats["Held"] + tStats["LetGo"] )*7, + -- marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6 + MIGS = ( tStats["W1"]*3 + tStats["W2"]*2 + tStats["W3"] - tStats["W5"]*4 - tStats["Miss"]*8 + tStats["Held"]*6 ), + -- (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6 + 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,-34); + LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { + InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); + }; + aLabel .. { Text=THEME:GetString("ScreenEvaluation","ITG DP:"); InitCommand=cmd(x,-64) }; + aText .. { Text=string.format("%04i",tValues["ITG"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; + aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); }; + aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; + }; + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(y,-6); + LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { + InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); + }; + aLabel .. { Text=THEME:GetString("ScreenEvaluation","MIGS DP:"); InitCommand=cmd(x,-64) }; + aText .. { Text=string.format("%04i",tValues["MIGS"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; + 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); }; + }; + return t +end; + +local t = Def.ActorFrame {}; +GAMESTATE:IsPlayerEnabled(PLAYER_1) +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-20); + CreateStats( PLAYER_1 ); +}; +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-20); + CreateStats( PLAYER_2 ); +}; + +if gameplay_pause_count > 0 then + t[#t+1]= Def.BitmapText{ + Font= "Common Normal", + Text= THEME:GetString("PauseMenu", "pause_count") .. ": " .. gameplay_pause_count, + InitCommand= function(self) + self:xy(_screen.cx, 375):diffuse(Color.White):zoom(.75) + end + } +end + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/kyuze.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/kyuze.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/kyuze.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/kyuze.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,100 @@ +local vStats = STATSMAN:GetCurStageStats(); + +local function CreateStats( pnPlayer ) + -- Actor Templates + 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. + local tStats = { + W1 = pnStageStats:GetTapNoteScores('TapNoteScore_W1'); + W2 = pnStageStats:GetTapNoteScores('TapNoteScore_W2'); + W3 = pnStageStats:GetTapNoteScores('TapNoteScore_W3'); + W4 = pnStageStats:GetTapNoteScores('TapNoteScore_W4'); + W5 = pnStageStats:GetTapNoteScores('TapNoteScore_W5'); + Miss = pnStageStats:GetTapNoteScores('TapNoteScore_Miss'); + HitMine = pnStageStats:GetTapNoteScores('TapNoteScore_HitMine'); + AvoidMine = pnStageStats:GetTapNoteScores('TapNoteScore_AvoidMine'); + Held = pnStageStats:GetHoldNoteScores('HoldNoteScore_Held'); + LetGo = pnStageStats:GetHoldNoteScores('HoldNoteScore_LetGo'); + }; + local itg_values= {W1= 5, + W2= 4, + W3= 2, + W4= 0, + W5= -6, + Miss= -12, + HitMine= 0, -- Kyz hates mines. Should be -6 + AvoidMine= 0, + Held= 5, + LetGo= 0} + local migs_values= {W1= 3, + W2= 2, + W3= 1, + W4= 0, + W5= -4, + Miss= -8, + HitMine= 0, + AvoidMine= 0, + Held= 6, + LetGo= 0} + local itg_keys_for_max= {W1= 5, W2= 5, W3= 5, W4= 5, W5= 5, Miss= 5, Held= 5, LetGo= 5} + local migs_keys_for_max= {W1= 3, W2= 3, W3= 3, W4= 3, W3= 3, Miss= 3, Held= 6, LetGo= 6} + + local tValues= { ITG= 0, ITG_MAX= 0, MIGS= 0, MIGS_MAX= 0} + for k, v in pairs(itg_keys_for_max) do + if tStats[k] then + tValues.ITG_MAX= tValues.ITG_MAX + (tStats[k] * v) + end + end + for k, v in pairs(migs_keys_for_max) do + if tStats[k] then + tValues.MIGS_MAX= tValues.MIGS_MAX + (tStats[k] * v) + end + end + + for k, v in pairs(tStats) do + if itg_values[k] then + tValues.ITG= tValues.ITG + (v * itg_values[k]) + end + if migs_values[k] then + tValues.MIGS= tValues.MIGS + (v * migs_values[k]) + end + end + + local t = Def.ActorFrame {}; + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(y,-34); + LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { + InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); + }; + aLabel .. { Text=THEME:GetString("ScreenEvaluation","ITG DP:"); InitCommand=cmd(x,-64) }; + aText .. { Text=string.format("%04i",tValues["ITG"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; + aText .. { Text="/"; InitCommand=cmd(x,28;y,5;vertalign,bottom;zoom,0.5;diffusealpha,0.5); }; + aText .. { Text=string.format("%04i",tValues["ITG_MAX"]); InitCommand=cmd(x,32;y,5;vertalign,bottom;zoom,0.5); }; + }; + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(y,-6); + LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { + InitCommand=cmd(zoom,0.875;diffuse,PlayerColor( pnPlayer )); + }; + aLabel .. { Text=THEME:GetString("ScreenEvaluation","MIGS DP:"); InitCommand=cmd(x,-64) }; + aText .. { Text=string.format("%04i",tValues["MIGS"]); InitCommand=cmd(x,-8;y,5;vertalign,bottom;zoom,0.6); }; + 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); }; + }; + return t +end; + +local t = Def.ActorFrame {}; +GAMESTATE:IsPlayerEnabled(PLAYER_1) +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-34); + CreateStats( PLAYER_1 ); +}; +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-34); + CreateStats( PLAYER_2 ); +}; +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/original.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/original.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/original.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluation overlay/original.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,86 @@ +local ss = STATSMAN:GetCurStageStats(); +local pss = ss:GetPlayerStageStats('PlayerNumber_P1'); +local misscount = pss:GetTapNoteScores('TapNoteScore_Miss'); +local boocount = pss:GetTapNoteScores('TapNoteScore_W5'); +local goodcount = pss:GetTapNoteScores('TapNoteScore_W4'); +local greatcount = pss:GetTapNoteScores('TapNoteScore_W3'); +local perfcount = pss:GetTapNoteScores('TapNoteScore_W2'); +local marvcount = pss:GetTapNoteScores('TapNoteScore_W1'); +local minehitcount = pss:GetTapNoteScores('TapNoteScore_HitMine'); +local minemisscount = pss:GetTapNoteScores('TapNoteScore_AvoidMine'); +local okcount = pss:GetHoldNoteScores('HoldNoteScore_Held'); +local ngcount = pss:GetHoldNoteScores('HoldNoteScore_LetGo'); +local ITGdp = marvcount*7 + perfcount*6 + greatcount*5 + goodcount*4 + boocount*2 + okcount*7 +local ITGdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount + okcount + ngcount)*7 +local MIGSdp = marvcount*3 + perfcount*2 + greatcount*1 - boocount*4 - misscount*8 + okcount*6 +local MIGSdpmax = (marvcount + perfcount + greatcount + goodcount + boocount + misscount)*3 + (okcount + ngcount)*6 +local histogram = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} +local total = 0 +local maxValue = 0; +print("John11length: "..#histogram); + +for i=1,#tTotalJudgmentsSigned do + print("John11Timings: "..i.." - "..tTotalJudgmentsSigned[i]) + local index = math.floor((0.18-tTotalJudgmentsSigned[i])*(#histogram/.36)); + print("John11Index: "..i.." - "..index) + if index >= 0 and index <= #histogram - 1 then + histogram[index] = histogram[index] + 1 + total = total + 1 + if histogram[index] > maxValue then + maxValue = histogram[index] + end + end +end + +for i=1,#histogram do + print("John11Judgments: "..i.." - "..histogram[i]) +end + +local t = Def.ActorFrame {} +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X/3;y,SCREEN_CENTER_Y); + LoadFont("Common Normal") .. { + Text="MIGS DP: "..tostring(MIGSdp).."/"..tostring(MIGSdpmax).."\nITG DP: "..tostring(ITGdp).."/"..tostring(ITGdpmax).."\nOffset Avg: "..RoundTo(tTimingDifferenceAverage,5).."\nAbs Offset Avg: "..RoundTo(tTimingDifferenceAbsAverage,5).."\nEarly Taps: "..tEarlyHits.."\nLate Taps: "..tLateHits; + InitCommand=cmd(y,-4;shadowlength,1;diffuse,Color("Red");zoom,0.5) + }; +} + +for i=1,#histogram do + local offset = -1 + if i > #histogram/2 then + offset = 1 + end + t[#t+1] = Def.Quad { + InitCommand=cmd(diffuse,Color("Red");zoomtowidth,300/#histogram-1;zoomtoheight,histogram[#histogram-i]/maxValue*150;x,SCREEN_CENTER_X+100+300/#histogram*i+offset;y,SCREEN_CENTER_Y-histogram[#histogram-i]/maxValue*150/2); + } +end + +t[#t+1] = Def.Quad { + InitCommand=cmd(x,SCREEN_CENTER_X+250;y,SCREEN_CENTER_Y+3;zoomtowidth,300;zoomtoheight,5;diffuse,color("#FFFFFF")); +} + +t[#t+1] = Def.Quad { + InitCommand=cmd(x,SCREEN_CENTER_X+252;y,SCREEN_CENTER_Y-75;zoomtowidth,1;zoomtoheight,150;diffuse,color("#000000")); +} + + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+125;y,SCREEN_CENTER_Y+15); + LoadFont("Common Normal") .. { + Text="Early"; + InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5) + }; +} + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+375;y,SCREEN_CENTER_Y+15); + LoadFont("Common Normal") .. { + Text="Late"; + InitCommand=cmd(shadowlength,1;diffuse,Color("#FF0000");zoom,0.5) + }; +} + +print("John11Total: "..total) +print("John11MaxValue: "..maxValue) + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = LoadActor(THEME:GetPathB("ScreenWithMenuElements","background")); + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenEvaluationSummary decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +local t = LoadFallbackB(); + +t[#t+1] = StandardDecorationFromFileOptional("BannerList","BannerList"); + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameInformation underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameInformation underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameInformation underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameInformation underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +local t = Def.ActorFrame {}; +--[[ t[#t+1] = Def.Actor { + OnCommand=function(self) + local sTarget = PROFILEMAN:GetProfileDir('ProfileSlot_Machine'); + -- + WriteFile(sTarget .. "Jason.txt","Charlie is a magical unicorn!"); + end; +}; --]] + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameOver underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameOver underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameOver underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameOver underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,29 @@ +local timer_seconds = THEME:GetMetric(Var "LoadingScreen","TimerSeconds"); + +return Def.ActorFrame { + InitCommand=cmd(Center), + -- Fade + Def.ActorFrame { + InitCommand=cmd(); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT), + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.25; + sleep,timer_seconds/2; + linear,timer_seconds/2-0.5;diffusealpha,0.8), + }, + -- Warning Fade + Def.Quad { + InitCommand=cmd(y,-4;scaletoclipped,SCREEN_WIDTH,164), + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5; + linear,timer_seconds;zoomtoheight,164*0.75), + } + }, + -- + LoadActor(THEME:GetPathG("ScreenGameOver","gameover"))..{ + InitCommand=cmd(y,-16;shadowlength,2) + }, + LoadFont("Common Normal")..{ + Text=ScreenString("Play again soon!"), + InitCommand=cmd(y,36;shadowlength,2) + } +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +return Def.ActorFrame { Name="YOU_WISH_YOU_WERE_PLAYING_BEATMANIA_RIGHT_NOW" }; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger all/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger all/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger all/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger all/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame { + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); + OnCommand=cmd(smooth,1;diffuse,color("0.75,0,0,0.75");decelerate,2;diffuse,color("0,0,0,1")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p1/BGAnimation.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay danger p2/BGAnimation.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p1/BGAnimation.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay dead p2/BGAnimation.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +[BGAnimation] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,231 @@ +local maxSegments = 150 + +local function CreateSegments(Player) + local t = Def.ActorFrame { }; + local bars = Def.ActorFrame{ Name="CoverBars" }; + local bpmFrame = Def.ActorFrame{ Name="BPMFrame"; }; + local stopFrame = Def.ActorFrame{ Name="StopFrame"; }; + local delayFrame = Def.ActorFrame{ Name="DelayFrame"; }; + local warpFrame = Def.ActorFrame{ Name="WarpFrame"; }; + local fakeFrame = Def.ActorFrame{ Name="FakeFrame"; }; + local scrollFrame = Def.ActorFrame{ Name="ScrollFrame"; }; + local speedFrame = Def.ActorFrame{ Name="SpeedFrame"; }; + + local fFrameWidth = 380; + local fFrameHeight = 8; + -- XXX: doesn't work in course mode -aj + if not GAMESTATE:IsSideJoined( Player ) then + return t + elseif not GAMESTATE:IsCourseMode() then + -- Straight rip off NCRX + local song = GAMESTATE:GetCurrentSong(); + local steps = GAMESTATE:GetCurrentSteps( Player ); + if steps then + local timingData = steps:GetTimingData(); + -- use the StepsSeconds, which will almost always be more proper + -- than a file with ITG2r21 compatibility. + if song then + local songLen = song:MusicLengthSeconds(); + + local firstBeatSecs = song:GetFirstSecond(); + local lastBeatSecs = song:GetLastSecond(); + + local bpms = timingData:GetBPMsAndTimes(true); + local stops = timingData:GetStops(true); + local delays = timingData:GetDelays(true); + local warps = timingData:GetWarps(true); + local fakes = timingData:GetFakes(true); + local scrolls = timingData:GetScrolls(true); + local speeds = timingData:GetSpeeds(true); + + -- we don't want too many segments to be shown. + local sumSegments = #bpms + #stops + #delays + #warps + #fakes + #scrolls + #speeds + if sumSegments > maxSegments then + return Def.ActorFrame{} + end + + local function CreateLine(beat, secs, firstShadow, firstDiffuse, secondShadow, firstEffect, secondEffect) + local beatTime = timingData:GetElapsedTimeFromBeat(beat); + if beatTime < 0 then beatTime = 0; end; + return Def.ActorFrame { + Def.Quad { + InitCommand=function(self) + self:shadowlength(0); + self:shadowcolor(color(firstShadow)); + -- set width + self:zoomto(math.max((secs/songLen)*fFrameWidth, 1), fFrameHeight); + -- find location + self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); + end; + OnCommand=function(self) + self:diffuse(color(firstDiffuse)); + end; + }; + --[[ there's a cool effect that can't happen because we don't fade out like we did before + Def.Quad { + InitCommand=function(self) + --self:diffuse(HSVA(192,1,0.8,0.8)); + self:shadowlength(0); + self:shadowcolor(color(secondShadow)); + -- set width + self:zoomto(math.max((secs/songLen)*fFrameWidth, 1),fFrameHeight); + -- find location + self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); + end; + OnCommand=function(self) + self:diffusealpha(1); + self:diffuseshift(); + self:effectcolor1(color(firstEffect)); + self:effectcolor2(color(secondEffect)); + self:effectclock('beat'); + self:effectperiod(1/8); + -- + self:diffusealpha(0); + self:sleep(beatTime+1); + self:diffusealpha(1); + self:linear(4); + self:diffusealpha(0); + end; + };]] + }; + end; + + for i=2,#bpms do + bpmFrame[#bpmFrame+1] = CreateLine(bpms[i][1], 0, + "#00808077", "#00808077", "#00808077", "#FF634777", "#FF000077"); + end; + + for i=1,#delays do + delayFrame[#delayFrame+1] = CreateLine(delays[i][1], delays[i][2], + "#FFFF0077", "#FFFF0077", "#FFFF0077", "#00FF0077", "#FF000077"); + end; + + for i=1,#stops do + stopFrame[#stopFrame+1] = CreateLine(stops[i][1], stops[i][2], + "#FFFFFF77", "#FFFFFF77", "#FFFFFF77", "#FFA50077", "#FF000077"); + end; + + for i=1,#scrolls do + scrollFrame[#scrollFrame+1] = CreateLine(scrolls[i][1], 0, + "#4169E177", "#4169E177", "#4169E177", "#0000FF77", "#FF000077"); + end; + + for i=1,#speeds do + -- TODO: Turn beats into seconds for this calculation? + speedFrame[#speedFrame+1] = CreateLine(speeds[i][1], 0, + "#ADFF2F77", "#ADFF2F77", "#ADFF2F77", "#7CFC0077", "#FF000077"); + end; + + for i=1,#warps do + warpFrame[#warpFrame+1] = CreateLine(warps[i][1], 0, + "#CC00CC77", "#CC00CC77", "#CC00CC77", "#FF33CC77", "#FF000077"); + end; + + for i=1,#fakes do + fakeFrame[#fakeFrame+1] = CreateLine(fakes[i][1], 0, + "#BC8F8F77", "#BC8F8F77", "#BC8F8F77", "#F4A46077", "#FF000077"); + end; + end; + bars[#bars+1] = bpmFrame; + bars[#bars+1] = scrollFrame; + bars[#bars+1] = speedFrame; + bars[#bars+1] = stopFrame; + bars[#bars+1] = delayFrame; + bars[#bars+1] = warpFrame; + bars[#bars+1] = fakeFrame; + t[#t+1] = bars; + --addition here: increase performance a ton by only rendering once + t[#t+1] = Def.ActorFrameTexture{Name="Target"} + t[#t+1] = Def.Sprite{Name="Actual"} + local FirstPass=true; + local function Draw(self) + kids=self:GetChildren(); + if FirstPass then + kids.Target:setsize(fFrameWidth,fFrameHeight); + kids.Target:EnableAlphaBuffer(true); + kids.Target:Create(); + + kids.Target:GetTexture():BeginRenderingTo(); + for k,v in pairs(kids) do + if k~="Target" and k~="Actual" then + v:Draw(); + end + end + kids.Target:GetTexture():FinishRenderingTo(); + + kids.Actual:SetTexture(kids.Target:GetTexture()); + FirstPass=false; + end + kids.Actual:Draw(); + end + t.InitCommand=function(self) self:SetDrawFunction(Draw); end + end + end + return t +end +local t = LoadFallbackB() +t[#t+1] = StandardDecorationFromFileOptional("ScoreFrame","ScoreFrame"); + +local function songMeterScale(val) return scale(val,0,1,-380/2,380/2) end + +for pn in ivalues(PlayerNumber) do + local MetricsName = "SongMeterDisplay" .. PlayerNumberToString(pn); + local songMeterDisplay = Def.ActorFrame{ + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + Def.Quad { + InitCommand=cmd(zoomto,420,20); + OnCommand=cmd(fadeleft,0.35;faderight,0.35;diffuse,Color.Black;diffusealpha,0.5); + }; + LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'frame ' .. PlayerNumberToString(pn) ) ) .. { + InitCommand=function(self) + self:name('Frame'); + ActorUtil.LoadAllCommandsAndSetXY(self,MetricsName); + end; + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.25);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.5);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(zoomto,2,8); + OnCommand=cmd(x,songMeterScale(0.75);diffuse,PlayerColor(pn);diffusealpha,0.5); + }; + Def.SongMeterDisplay { + StreamWidth=THEME:GetMetric( MetricsName, 'StreamWidth' ); + Stream=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'stream ' .. PlayerNumberToString(pn) ) )..{ + InitCommand=cmd(diffuse,PlayerColor(pn);diffusealpha,0.5;blend,Blend.Add;); + }; + Tip=LoadActor( THEME:GetPathG( 'SongMeterDisplay', 'tip ' .. PlayerNumberToString(pn) ) ) .. { InitCommand=cmd(visible,false); }; + }; + }; + if ThemePrefs.Get("TimingDisplay") == true then + songMeterDisplay[#songMeterDisplay+1] = CreateSegments(pn); + end + t[#t+1] = songMeterDisplay +end; + +for pn in ivalues(PlayerNumber) do + local MetricsName = "ToastyDisplay" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG("Player", 'toasty'), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; +end; + + +t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); +t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); +t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle"); + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay failed/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay failed/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay failed/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay failed/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,31 @@ +local longFail = ThemePrefs.Get("LongFail"); + +local t = Def.ActorFrame{}; + +if longFail then + t[#t+1] = Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); + OnCommand=cmd(decelerate,1.25;diffuse,color("0.75,0,0,0.75");linear,7;diffuse,color("0,0,0,1");sleep,1.25;linear,1;diffuse,color("1,0,0,1");decelerate,2;diffuse,color("0,0,0,1")); + }; + t[#t+1] = Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("1,1,1,1");diffusealpha,0); + OnCommand=cmd(finishtweening;diffusealpha,1;decelerate,1.25;diffuse,color("1,0,0,0")); + }; + t[#t+1] = LoadActor(THEME:GetPathS( "ScreenGameplayAlternate", "failed" ) ) .. { + StartTransitioningCommand=cmd(play); + }; +else + t[#t+1] = Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("1,0,0,0");blend,Blend.Multiply); + OnCommand=cmd(smooth,1;diffuse,color("0.75,0,0,0.75");decelerate,2;diffuse,color("0,0,0,1")); + }; + t[#t+1] = Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("1,1,1,1");diffusealpha,0); + OnCommand=cmd(finishtweening;diffusealpha,1;decelerate,1.25;diffuse,color("1,0,0,0")); + }; + t[#t+1] = LoadActor(THEME:GetPathS( Var "LoadingScreen", "failed" ) ) .. { + StartTransitioningCommand=cmd(play); + }; +end; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +if IsNetSMOnline() then + -- don't show "Ready" online; it will obscure the immediately-starting steps. + return Def.ActorFrame{} +end + +return LoadActor("go") .. { + InitCommand=cmd(Center;draworder,105); + StartTransitioningCommand=cmd(zoom,1.3;diffusealpha,0;bounceend,0.25;zoom,1;diffusealpha,1;linear,0.15;glow,BoostColor(Color("Blue"),1.75);decelerate,0.3;glow,1,1,1,0;sleep,1-0.45;linear,0.25;diffusealpha,0;); +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/go.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay go/go.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay in/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay in/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,15 @@ +local t = Def.ActorFrame {}; +t[#t+1] = Def.Sprite { + InitCommand=cmd(Center;diffusealpha,1); + BeginCommand=cmd(LoadFromCurrentSongBackground); + OnCommand=function(self) + if PREFSMAN:GetPreference("StretchBackgrounds") then + self:SetSize(SCREEN_WIDTH,SCREEN_HEIGHT) + else + self:scale_or_crop_background() + end + self:linear(1) + self:diffusealpha(0) + end; +}; +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay next course song/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay next course song/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay next course song/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay next course song/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,39 @@ +local t = Def.ActorFrame{}; + +if not GAMESTATE:IsCourseMode() then return t; end; + +t[#t+1] = Def.Sprite { + InitCommand=cmd(Center); + BeforeLoadingNextCourseSongMessageCommand=function(self) self:LoadFromSongBackground( SCREENMAN:GetTopScreen():GetNextCourseSong() ) end; + ChangeCourseSongInMessageCommand=cmd(scale_or_crop_background); + StartCommand=cmd(diffusealpha,0;decelerate,0.5;diffusealpha,1;); + FinishCommand=cmd(linear,0.1;glow,Color.Alpha(Color("White"),0.5);decelerate,0.4;glow,Color("Invisible");diffusealpha,0); +}; + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + OnCommand=cmd(stoptweening;addx,30;linear,3;addx,-30); + LoadFont("Common Normal") .. { + InitCommand=cmd(strokecolor,Color("Outline");y,-10); + BeforeLoadingNextCourseSongMessageCommand=function(self) + local NextSong = SCREENMAN:GetTopScreen():GetNextCourseSong(); + self:settext( NextSong:GetDisplayFullTitle() ); + end; + StartCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; +--[[ LoadFont("Common Normal") .. { + Text=GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentCourse():GetCourseType() or GAMESTATE:GetCurrentSong():GetDisplayArtist(); + InitCommand=cmd(strokecolor,Color("Outline");zoom,0.75); + OnCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; --]] + LoadFont("Common Normal") .. { + InitCommand=cmd(strokecolor,Color("Outline");diffuse,Color("Orange");diffusebottomedge,Color("Yellow");zoom,0.75;y,10); + BeforeLoadingNextCourseSongMessageCommand=function(self) + local NextSong = SCREENMAN:GetTopScreen():GetNextCourseSong(); + self:settext( SecondsToMSSMsMs( NextSong:MusicLengthSeconds() ) ); + end; + StartCommand=cmd(faderight,1;diffusealpha,0;linear,0.5;faderight,0;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,50 @@ +local raveChildren + +local bg = Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0")); + OnCommand=cmd(linear,5;diffusealpha,1); + }; + + Def.ActorFrame{ + Name="RaveMessages"; + InitCommand=function(self) + raveChildren = self:GetChildren() + self:visible(GAMESTATE:GetPlayMode() == 'PlayMode_Rave') + + raveChildren.P1Win:visible(false) + raveChildren.P2Win:visible(false) + raveChildren.Draw:visible(false) + end; + OffCommand=function(self) + local p1Win = GAMESTATE:IsWinner(PLAYER_1) + local p2Win = GAMESTATE:IsWinner(PLAYER_2) + + if GAMESTATE:IsWinner(PLAYER_1) then + raveChildren.P1Win:visible(true) + elseif GAMESTATE:IsWinner(PLAYER_2) then + raveChildren.P2Win:visible(true) + else + raveChildren.Draw:visible(true) + end + end; + + LoadActor(THEME:GetPathG("_rave result","P1"))..{ + Name="P1Win"; + InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); + OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + }; + LoadActor(THEME:GetPathG("_rave result","P2"))..{ + Name="P2Win"; + InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); + OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + }; + LoadActor(THEME:GetPathG("_rave result","draw"))..{ + Name="Draw"; + InitCommand=cmd(Center;cropbottom,1;fadebottom,1;); + OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0); + }; + }; +}; + +return bg \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,41 @@ +local t = Def.ActorFrame {}; +local function UpdateTime(self) + local c = self:GetChildren(); + for pn in ivalues(PlayerNumber) do + local vStats = STATSMAN:GetCurStageStats():GetPlayerStageStats( pn ); + local vTime; + local obj = self:GetChild( string.format("RemainingTime" .. PlayerNumberToString(pn) ) ); + if vStats and obj then + vTime = vStats:GetLifeRemainingSeconds() + obj:settext( SecondsToMMSSMsMs( vTime ) ); + end; + end; +end +if GAMESTATE:GetCurrentCourse() then + if GAMESTATE:GetCurrentCourse():GetCourseType() == "CourseType_Survival" then + -- RemainingTime + for pn in ivalues(PlayerNumber) do + local MetricsName = "RemainingTime" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "RemainingTime"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; + end + for pn in ivalues(PlayerNumber) do + local MetricsName = "DeltaSeconds" .. PlayerNumberToString(pn); + t[#t+1] = LoadActor( THEME:GetPathG( Var "LoadingScreen", "DeltaSeconds"), pn ) .. { + InitCommand=function(self) + self:player(pn); + self:name(MetricsName); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; + }; + end + end; +end; +t.InitCommand=cmd(SetUpdateFunction,UpdateTime); +t[#t+1]= LoadActor(THEME:GetPathG("", "pause_menu")) +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +if IsNetSMOnline() then + -- don't show "Ready" online; it will obscure the immediately-starting steps. + return Def.ActorFrame{} +end + +return LoadActor("ready") .. { + InitCommand=cmd(Center;draworder,105); + StartTransitioningCommand=cmd(zoom,1.3;diffusealpha,0;bounceend,0.25;zoom,1;diffusealpha,1;linear,0.15;glow,BoostColor(Color("Orange"),1.75);decelerate,0.3;glow,1,1,1,0;sleep,1-0.45;linear,0.25;diffusealpha,0;); +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/ready.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay ready/ready.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay toasty/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay toasty/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenGameplay toasty/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenGameplay toasty/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame { +-- InitCommand=cmd(x,SCREEN_RIGHT;y,SCREEN_BOTTOM;draworder,101); + StartTransitioningCommand=function(self) + MESSAGEMAN:Broadcast("Toasty",{ Time = math.random(1,3) }); + end +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHeartEntry overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHeartEntry overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHeartEntry overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHeartEntry overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,172 @@ +local cursor_width_padding = 16 +local cursor_spacing_value = 30 + +local heart_xs= { + [PLAYER_1]= SCREEN_CENTER_X * 0.625, + [PLAYER_2]= SCREEN_CENTER_X * 1.375, +} + +local heart_entries= {} +for i, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do + local profile= PROFILEMAN:GetProfile(pn) + if profile and profile:GetIgnoreStepCountCalories() then + heart_entries[pn]= new_numpad_entry{ + Name= pn .. "_heart_entry", + InitCommand= cmd(xy, heart_xs[pn], SCREEN_CENTER_Y+48), + value = LoadFont("Common Large") .. { + InitCommand=cmd(xy,0,-62), + OnCommand=cmd(zoom,0.75;diffuse,PlayerColor(pn);strokecolor,ColorDarkTone(PlayerColor(pn))); + SetCommand=function(self, param) + self:settext(param[1]) + end, + }, + button = LoadFont("Common Normal") ..{ + InitCommand=cmd(shadowlength,1), + SetCommand=function(self, param) + self:settext(param[1]) + end, + OnCommand=cmd(diffuse,color("0.8,0.8,0.8,1");zoom,0.875), + GainFocusCommand=cmd(finishtweening;decelerate,0.125;zoom,1;diffuse,Color.White), + LoseFocusCommand=cmd(finishtweening;smooth,0.1;zoom,0.875;diffuse,color("0.8,0.8,0.8,1")) + }, + button_positions = {{-cursor_spacing_value, -cursor_spacing_value}, {0, -cursor_spacing_value}, {cursor_spacing_value, -cursor_spacing_value}, + {-cursor_spacing_value, 0}, {0, 0}, {cursor_spacing_value, 0}, + {-cursor_spacing_value, cursor_spacing_value}, {0, cursor_spacing_value}, {cursor_spacing_value, cursor_spacing_value}, + {-cursor_spacing_value, cursor_spacing_value*2}, {0, cursor_spacing_value*2}, {cursor_spacing_value, cursor_spacing_value*2}}, + cursor = Def.ActorFrame { + -- Move whole container + MoveCommand=function(self, param) + self:stoptweening() + self:decelerate(0.15) + self:xy(param[1], param[2]) + if param[3] then + self:z(param[3]) + end + end, + -- + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) + ) .. { + OnCommand=cmd(diffuse,PlayerDarkColor(pn)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) + end, + }, + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) + ) .. { + OnCommand=cmd(diffuse,PlayerColor(pn)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) + end, + } + }, + cursor_draw= "first", + prompt = LoadFont("Common Bold") .. { + Name="prompt", + Text=THEME:GetString("ScreenHeartEntry", "Heart Rate"), + InitCommand=cmd(xy,0,-96); + OnCommand=cmd(shadowlength,1;skewx,-0.125;diffusebottomedge,color("#DDDDDD");strokecolor,Color.Outline); + }, + max_value= 300, + auto_done_value= 100, + } + end +end + +local function input(event) + local pn= event.PlayerNumber + if not pn then return end + if event.type == "InputEventType_Release" then return end + if not heart_entries[pn] then return end + local done= heart_entries[pn]:handle_input(event.GameButton) + if done then + SOUND:PlayOnce(THEME:GetPathS("Common", "Start"), true) + local all_done= true + for pn, entry in pairs(heart_entries) do + if not entry.done then all_done= false break end + end + if all_done then + for pn, entry in pairs(heart_entries) do + local profile= PROFILEMAN:GetProfile(pn) + if profile and profile:GetIgnoreStepCountCalories() then + local calories= profile:CalculateCaloriesFromHeartRate( + entry.value, GAMESTATE:GetLastGameplayDuration()) + profile:AddCaloriesToDailyTotal(calories) + end + end + SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToNextScreen") + end + end +end + +local timer_text +local function timer_update(self) + local time= math.floor((self:GetSecsIntoEffect() % 60) * 10) / 10 + if time < 10 then + timer_text:settext(("0%.1f"):format(time)) + else + timer_text:settext(("%.1f"):format(time)) + end +end + +local args= { + -- + Def.ActorFrame{ + Name= "timer", + InitCommand= function(self) + self:effectperiod(2^16) + timer_text= self:GetChild("timer_text") + self:SetUpdateFunction(timer_update) + end, + OnCommand= function(self) + SCREENMAN:GetTopScreen():AddInputCallback(input) + end, + Def.BitmapText{ + Name= "timer_text", Font= "Common Normal", Text= "00.0", + InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-80; diffuse, Color.White), + OnCommand= cmd(strokecolor,Color.Outline), + } + }, + Def.Quad { + InitCommand=cmd(xy, SCREEN_CENTER_X+1, SCREEN_CENTER_Y-100+1;zoomto,2,2); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;linear,0.25;zoomtowidth,420;fadeleft,0.25;faderight,0.25); + }; + Def.Quad { + InitCommand=cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-100;zoomto,2,2); + OnCommand=cmd(diffuse,color("#ffd400");shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,420;fadeleft,0.25;faderight,0.25); + }; + Def.BitmapText { + Name= "explanation", Font= "Common Large", + Text= string.upper(THEME:GetString("ScreenHeartEntry", "Enter Heart Rate")), + InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y-128; diffuse, Color.White), + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");strokecolor,ColorDarkTone(color("#ffd400")))} + , + + Def.BitmapText{ + Name= "song_len_label", Font= "Common Normal", + Text= THEME:GetString("ScreenHeartEntry", "Song Length"), + InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y+192-32; diffuse, Color.White), + OnCommand= cmd(shadowlength,1)}, + Def.BitmapText{ + Name= "song_len", Font= "Common Normal", + Text= SecondsToMMSS(GAMESTATE:GetLastGameplayDuration()), + InitCommand= cmd(xy, SCREEN_CENTER_X, SCREEN_CENTER_Y+192-8; diffuse, Color.White), + OnCommand= cmd(shadowlength,1;zoom,0.75), + } + +} + +for pn in ivalues(GAMESTATE:GetEnabledPlayers()) do + args[#args+1] = LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black", 128, 192) .. { + InitCommand=cmd(x,heart_xs[pn];y,SCREEN_CENTER_Y+28), + } +end + +for pn, entry in pairs(heart_entries) do + args[#args+1]= entry:create_actors() +end + +return Def.ActorFrame(args) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,47 @@ +local t = LoadFallbackB(); + +local StepsType = ToEnumShortString( GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame()) ); +local stString = THEME:GetString("StepsType",StepsType); + +local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns"); + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-160); + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH, 32); + OnCommand=cmd(y,-16;diffuse,Color.Black;fadebottom,0.8); + }; + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH, 56); + OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.75;fadebottom,0.35); + }; +}; + +for i=1,NumColumns do + local st = THEME:GetMetric(Var "LoadingScreen","ColumnStepsType" .. i); + local dc = THEME:GetMetric(Var "LoadingScreen","ColumnDifficulty" .. i); + local s = GetCustomDifficulty( st, dc ); + + t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X-60 + 80 * (i-1);y,SCREEN_CENTER_Y-168); + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 18) .. { + OnCommand=cmd(diffuse,CustomDifficultyToDarkColor(s);diffusealpha,0.5); + }; + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 18) .. { + OnCommand=cmd(diffuse,CustomDifficultyToColor(s);diffusealpha,0.125); + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;settext,CustomDifficultyToLocalizedString(s)); + OnCommand=cmd(zoom,0.675;maxwidth,80/0.675;diffuse,CustomDifficultyToColor(s);shadowlength,1); + }; + }; +end + +t[#t+1] = LoadFont("Common Bold") .. { + InitCommand=cmd(settext,stString;x,SCREEN_CENTER_X-220;y,SCREEN_CENTER_Y-168); + OnCommand=cmd(skewx,-0.125;diffusebottomedge,color("0.75,0.75,0.75");shadowlength,2); +}; + +t.OnCommand=cmd(draworder,105); + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/_difficulty frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHighScores decorations/_difficulty frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenWithMenuElements background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToInstallSongs overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,13 @@ +-- how does installed song??? let's find out + +local t = Def.ActorFrame{ + LoadFont("Common Normal")..{ + Name="Header"; + InitCommand=cmd(x,SCREEN_LEFT+24;y,SCREEN_TOP+24;halign,0;diffuse,color("#CCCCCC");settext,Screen.String("BodyHeader");shadowlength,1;shadowcolor,HSV(40,0,0.6);diffusetopedge,color("#FFFFFF")); + OnCommand=cmd(queuecommand,"Anim"); + AnimCommand=cmd(cropright,1;faderight,1;addx,96;decelerate,1;addx,-96;skewx,-0.1;cropright,0;faderight,0;); + }; + -- todo: add explantion paragraph here (above the scroller) +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,4 @@ +return LoadActor("bg.png") ..{ + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomtowidth,SCREEN_WIDTH;zoomtoheight,SCREEN_HEIGHT); + OnCommand=cmd(texcoordvelocity,0,-1;customtexturerect,0,0,SCREEN_WIDTH/self:GetWidth(),SCREEN_HEIGHT/self:GetHeight();diffuse,color("0.9,0.9,0.9,1")); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = LoadFallbackB(); +t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,94 @@ +return Def.ActorFrame { + Def.ActorFrame { + OnCommand=cmd(x,SCREEN_CENTER_X-20); + + -- Initial glow around receptors + LoadActor("tapglow") .. { + OnCommand=cmd(x,85;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + LoadActor("tapglow") .. { + OnCommand=cmd(x,275;y,95;zoom,0.7;rotationz,270;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + LoadActor("tapglow") .. { + OnCommand=cmd(x,212;y,95;zoom,0.7;rotationz,180;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + LoadActor("tapglow") .. { + OnCommand=cmd(x,148;y,95;zoom,0.7;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,6;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + + LoadActor("tapglow") .. { + OnCommand=cmd(x,148;y,95;zoom,0.7;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,9.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + + -- 2nd step UP + LoadActor("tapglow") .. { + OnCommand=cmd(x,212;y,95;zoom,0.7;rotationz,180;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,12.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + + -- 3rd step UP + LoadActor("tapglow") .. { + OnCommand=cmd(x,84;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,15.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + + -- 4th step jump + LoadActor("tapglow") .. { + OnCommand=cmd(x,85;y,95;zoom,0.7;rotationz,90;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,18.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + LoadActor("tapglow") .. { + OnCommand=cmd(x,275;y,95;zoom,0.7;rotationz,270;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,18.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + + -- miss step + LoadActor("healthhilight") .. { + OnCommand=cmd(x,180;y,40;diffuseshift;effectcolor1,1,0.93333,0.266666,0.4;effectcolor2,1,1,1,1;effectperiod,0.25;effectmagnitude,0,1,0;diffusealpha,0;sleep,22.7;linear,0;diffusealpha,1;sleep,1.7;linear,0;diffusealpha,0); + }; + }; + + -- messages + LoadFont("Common Bold") .. { + Text=ScreenString("How To Play StepMania"), + InitCommand=cmd(zbuffer,1;z,20;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;shadowlength,1;strokecolor,Color("Outline")); + BeginCommand=function(self) + self:AddAttribute(12, {Length=9, Diffuse=Color.White}); + end; + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25);diffusealpha,0;zoom,4;sleep,0.0;linear,0.3;diffusealpha,1;zoom,1;sleep,1.8;linear,0.3;zoom,0.75;x,170;y,60); + }; + LoadActor("_howtoplay feet") .. { + InitCommand=cmd(shadowlength,1;strokecolor,Color.Outline); + OnCommand=cmd(z,20;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;addx,-SCREEN_WIDTH;sleep,2.4;decelerate,0.3;addx,SCREEN_WIDTH;sleep,2;linear,0.3;zoomy,0); + }; + Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X+120;y,SCREEN_CENTER_Y+40); + + LoadActor("_howtoplay tap")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,6;queuecommand,"Show"); + }; + LoadActor("_howtoplay tap")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,9.7;queuecommand,"Show"); + }; + LoadActor("_howtoplay tap")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,12.7;queuecommand,"Show"); + }; + LoadActor("_howtoplay tap")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,15.7;queuecommand,"Show"); + }; + LoadActor("_howtoplay jump")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,18.7;queuecommand,"Show"); + }; + LoadActor("_howtoplay miss")..{ + InitCommand=cmd(diffusealpha,0); + ShowCommand=cmd(linear,0;diffusealpha,1;sleep,2;linear,0;diffusealpha,0); + OnCommand=cmd(sleep,22.7;queuecommand,"Show"); + }; + }; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/feet.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/feet.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/healthhilight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/healthhilight.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return LoadFont("Common Normal") .. { + Text=ScreenString("Feet"); + BeginCommand=function(self) + self:AddAttribute(5, {Length= 4, Diffuse=Color.Red}) + end; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay jump.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,18 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); + Def.Quad { + Name="Underline"; + InitCommand=cmd(y,-12); + OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Bold") .. { + Text=ScreenString("Information"); + InitCommand=cmd(y,-26); + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) + }; + LoadFont("Common Normal") .. { + Text=ScreenString("Jump"); + InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); + OnCommand=cmd(zoom,0.875); + }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay miss.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,18 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); + Def.Quad { + Name="Underline"; + InitCommand=cmd(y,-12); + OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Bold") .. { + Text=ScreenString("Information"); + InitCommand=cmd(y,-26); + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) + }; + LoadFont("Common Normal") .. { + Text=ScreenString("Miss"); + InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); + OnCommand=cmd(zoom,0.75); + }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/_howtoplay tap.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,18 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",380,80); + Def.Quad { + Name="Underline"; + InitCommand=cmd(y,-12); + OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;zoomtowidth,192;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Bold") .. { + Text=ScreenString("Information"); + InitCommand=cmd(y,-26); + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)) + }; + LoadFont("Common Normal") .. { + Text=ScreenString("Tap"); + InitCommand=cmd(y,18;wrapwidthpixels,480;vertspacing,-12;shadowlength,1); + OnCommand=cmd(zoom,0.875); + }; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/jumpmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/jumpmessage.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/missmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/missmessage.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/tapglow.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/tapglow.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/tapmessage.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenHowToPlay overlay/tapmessage.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen in/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen in/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenInDelay"); + +return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,1");sleep,fSleepTime;linear,0.01;diffusealpha,0); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenInit decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenInit decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenInit decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenInit decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = LoadFallbackB(); +t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenJukebox in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenJukebox in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenJukebox in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenJukebox in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1")); + OnCommand=cmd(decelerate,0.5;diffusealpha,0); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenJukebox out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenJukebox out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenJukebox out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenJukebox out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0")); + OnCommand=cmd(accelerate,0.5;diffusealpha,1); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenLogo decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenLogo decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenLogo decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenLogo decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +local t = LoadFallbackB(); + +t[#t+1] = StandardDecorationFromFileOptional("Logo","Logo"); +t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu cancel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu cancel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu cancel.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu cancel.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu in.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu in.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu in.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu in.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenMiniMenu underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.ActorFrame { + Def.Quad{ + InitCommand=cmd(scaletocover,-SCREEN_WIDTH*2,SCREEN_TOP,SCREEN_WIDTH*2,SCREEN_BOTTOM;diffuse,color("0,0,0,0.5")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenNetSelectMusic decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenNetSelectMusic decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenNetSelectMusic decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenNetSelectMusic decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +local t = LoadFallbackB(); + +t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel"); +t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); +t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay"); +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenOptionsCustomizeProfile overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,482 @@ +-- Pester Kyzentun for an explanation if you need to customize this screen. +-- Also, this might be rewritten to us a proper customizable lua menu system +-- in the future. + +-- Copy this file into your theme, then modify as needed to suit your theme. +-- Each of the things on this list has a comment marking it, so you can +-- quickly find it by searching. +-- Things you will want to change: +-- 1. The Numpad +-- 2. The Cursor +-- 3. The Menu Items +-- 4. The Menu Values +-- 4.1 The L/R indicators +-- 5. The Menu Fader + +local profile= GAMESTATE:GetEditLocalProfile() + +local cursor_width_padding = 16 +local cursor_spacing_value = 30 + +-- 1. The Numpad +-- This is what sets up how the numpad looks. See Scripts/04 NumPadEntry.lua +-- for a full description of how to customize a NumPad. +-- Note that if you provide a custom prompt actor for the NumPad, it must +-- have a SetCommand because the NumPad is used any time the player needs to +-- enter a number, and the prompt is updated by running its SetCommand. +local number_entry= new_numpad_entry{ + Name= "number_entry", + InitCommand= cmd(diffusealpha, 0; xy, _screen.cx, _screen.cy * 1.5), + value = LoadFont("Common Large") .. { + InitCommand=cmd(xy,0,-62), + OnCommand=cmd(zoom,0.75;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone(PlayerColor(PLAYER_1))); + SetCommand=function(self, param) + self:settext(param[1]) + end, + }, + button = LoadFont("Common Normal") ..{ + InitCommand=cmd(shadowlength,1), + SetCommand=function(self, param) + self:settext(param[1]) + end, + OnCommand=cmd(diffuse,color("0.8,0.8,0.8,1");zoom,0.875), + GainFocusCommand=cmd(finishtweening;decelerate,0.125;zoom,1;diffuse,Color.White), + LoseFocusCommand=cmd(finishtweening;smooth,0.1;zoom,0.875;diffuse,color("0.8,0.8,0.8,1")) + }, + button_positions = {{-cursor_spacing_value, -cursor_spacing_value}, {0, -cursor_spacing_value}, {cursor_spacing_value, -cursor_spacing_value}, + {-cursor_spacing_value, 0}, {0, 0}, {cursor_spacing_value, 0}, + {-cursor_spacing_value, cursor_spacing_value}, {0, cursor_spacing_value}, {cursor_spacing_value, cursor_spacing_value}, + {-cursor_spacing_value, cursor_spacing_value*2}, {0, cursor_spacing_value*2}, {cursor_spacing_value, cursor_spacing_value*2}}, + cursor = Def.ActorFrame { + -- Move whole container + MoveCommand=function(self, param) + self:stoptweening() + self:decelerate(0.15) + self:xy(param[1], param[2]) + if param[3] then + self:z(param[3]) + end + end, + -- + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) + ) .. { + OnCommand=cmd(diffuse,PlayerDarkColor(PLAYER_1)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(decelerate,0.125)}) + end, + }, + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) + ) .. { + OnCommand=cmd(diffuse,PlayerColor(PLAYER_1)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(decelerate,0.125)}) + end, + } + }, + cursor_draw= "first", + prompt = LoadFont("Common Bold") .. { + Name="prompt", + InitCommand=cmd(xy,0,-96); + OnCommand=cmd(shadowlength,1;skewx,-0.125;diffusebottomedge,color("#DDDDDD");strokecolor,Color.Outline); + SetCommand= function(self, params) + self:settext(params[1]) + end + }, + LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black", 128, 192) .. { + InitCommand=cmd(xy, 0, -20) + } +} + +local function calc_list_pos(value, list) + for i, entry in ipairs(list) do + if entry.setting == value then + return i + end + end + return 1 +end + +local function item_value_to_text(item, value) + if item.item_type == "bool" then + if value then + value= THEME:GetString("ScreenOptionsCustomizeProfile", item.true_text) + else + value= THEME:GetString("ScreenOptionsCustomizeProfile", item.false_text) + end + elseif item.item_type == "list" then + local pos= calc_list_pos(value, item.list) + return item.list[pos].display_name + end + return value +end + +local char_list= {} +do + local all_chars= CHARMAN:GetAllCharacters() + for i, char in ipairs(char_list) do + char_list[#char_list+1]= { + setting= char:GetCharacterID(), display_name= char:GetDisplayName()} + end +end + +-- Uncomment this section if you need to test the behavior of actors in the +-- character list but don't have any duncing characters to test with. +--[=[ + +local fake_profile_mt= {__index= {}} +local val_list= {} +local function get_set_pair(name, default) + fake_profile_mt.__index["Get"..name]= function(self) + return self[name] + end + fake_profile_mt.__index["Set"..name]= function(self, val) + self[name]= val + end + val_list[#val_list+1]= {name, default} +end +get_set_pair("WeightPounds", 0) +get_set_pair("Voomax", 0) +get_set_pair("BirthYear", 0) +get_set_pair("IgnoreStepCountCalories", false) +get_set_pair("IsMale", true) +get_set_pair("Character", "dietlinde") +fake_profile_mt.__index.init= function(self) + for i, vald in ipairs(val_list) do + self[vald[1]]= vald[2] + end +end + +profile= setmetatable({}, fake_profile_mt) +profile:init() + +char_list= { + {setting= "shake", display_name= "soda"}, + {setting= "freem", display_name= "inc"}, + {setting= "midi", display_name= "man"}, + {setting= "kyz", display_name= "zentun"}, + {setting= "mad", display_name= "matt"}, + {setting= "db", display_name= "k2"}, +} +]=] + +local menu_items= { + {name= "weight", get= "GetWeightPounds", set= "SetWeightPounds", + item_type= "number", auto_done= 100}, + {name= "voomax", get= "GetVoomax", set= "SetVoomax", item_type= "number", + auto_done= 10}, + {name= "birth_year", get= "GetBirthYear", set= "SetBirthYear", + item_type= "number", auto_done= 1000}, + {name= "calorie_calc", get= "GetIgnoreStepCountCalories", + set= "SetIgnoreStepCountCalories", item_type= "bool", + true_text= "use_heart", false_text= "use_steps"}, + {name= "gender", get= "GetIsMale", set= "SetIsMale", item_type= "bool", + true_text= "male", false_text= "female"}, +} +if #char_list > 0 then + menu_items[#menu_items+1]= { + name= "character", get= "GetCharacter", set= "SetCharacter", + item_type= "list", list= char_list} +end +menu_items[#menu_items+1]= {name= "exit", item_type= "exit"} + +local menu_cursor +local menu_pos= 1 +local menu_start= SCREEN_TOP + 80 +if #menu_items > 6 then + menu_start= SCREEN_TOP + 68 +end +local menu_x= SCREEN_CENTER_X * 0.25 +local value_x= ( SCREEN_CENTER_X * 0.25 ) + 256 +local fader +local cursor_on_menu= "main" +local menu_item_actors= {} +local menu_values= {} +local list_pos= 0 +local active_list= {} +local left_showing= false +local right_showing= false + +local function fade_actor_to(actor, alf) + actor:stoptweening() + actor:smooth(.15) + actor:diffusealpha(alf) +end + +local function update_menu_cursor() + local item= menu_item_actors[menu_pos] + menu_cursor:playcommand("Move", {item:GetX(), item:GetY()}) + menu_cursor:playcommand("Fit", item) +end + +local function update_list_cursor() + local valactor= menu_values[menu_pos] + valactor:playcommand("Set", {active_list[list_pos].display_name}) + if list_pos > 1 then + if not left_showing then + valactor:playcommand("ShowLeft") + left_showing= true + end + else + if left_showing then + valactor:playcommand("HideLeft") + left_showing= false + end + end + if list_pos < #active_list then + if not right_showing then + valactor:playcommand("ShowRight") + right_showing= true + end + else + if right_showing then + valactor:playcommand("HideRight") + right_showing= false + end + end +end + +local function exit_screen() + local profile_id= GAMESTATE:GetEditLocalProfileID() + PROFILEMAN:SaveLocalProfile(profile_id) + SCREENMAN:GetTopScreen():StartTransitioningScreen("SM_GoToNextScreen") + SOUND:PlayOnce(THEME:GetPathS("Common", "Start"), true) +end + +local function input(event) + local pn= event.PlayerNumber + if not pn then return false end + if event.type == "InputEventType_Release" then return false end + local button= event.GameButton + if cursor_on_menu == "main" then + if button == "Start" then + local item= menu_items[menu_pos] + if item.item_type == "bool" then + local value= not profile[item.get](profile) + menu_values[menu_pos]:playcommand( + "Set", {item_value_to_text(item, value)}) + profile[item.set](profile, value) + elseif item.item_type == "number" then + --fade_actor_to(fader, .8) + fade_actor_to(number_entry.container, 1) + number_entry.value= profile[item.get](profile) + number_entry.value_actor:playcommand("Set", {number_entry.value}) + number_entry.auto_done_value= item.auto_done + number_entry.max_value= item.max + number_entry:update_cursor(number_entry.cursor_start) + number_entry.prompt_actor:playcommand( + "Set", {THEME:GetString("ScreenOptionsCustomizeProfile", item.name)}) + cursor_on_menu= "numpad" + elseif item.item_type == "list" then + cursor_on_menu= "list" + active_list= menu_items[menu_pos].list + list_pos= calc_list_pos( + profile[menu_items[menu_pos].get](profile), active_list) + update_list_cursor() + elseif item.item_type == "exit" then + exit_screen() + end + elseif button == "Back" then + exit_screen() + else + if button == "MenuLeft" or button == "MenuUp" then + if menu_pos > 1 then menu_pos= menu_pos - 1 end + update_menu_cursor() + elseif button == "MenuRight" or button == "MenuDown" then + if menu_pos < #menu_items then menu_pos= menu_pos + 1 end + update_menu_cursor() + end + end + elseif cursor_on_menu == "numpad" then + local done= number_entry:handle_input(button) + if done or button == "Back" then + local item= menu_items[menu_pos] + if button ~= "Back" then + profile[item.set](profile, number_entry.value) + menu_values[menu_pos]:playcommand( + "Set", {item_value_to_text(item, number_entry.value)}) + end + --fade_actor_to(fader, 0) + fade_actor_to(number_entry.container, 0) + cursor_on_menu= "main" + end + elseif cursor_on_menu == "list" then + if button == "MenuLeft" or button == "MenuUp" then + if list_pos > 1 then list_pos= list_pos - 1 end + update_list_cursor() + menu_values[menu_pos]:playcommand("PressLeft") + elseif button == "MenuRight" or button == "MenuDown" then + if list_pos < #active_list then list_pos= list_pos + 1 end + update_list_cursor() + menu_values[menu_pos]:playcommand("PressRight") + elseif button == "Start" or button == "Back" then + if button ~= "Back" then + profile[menu_items[menu_pos].set]( + profile, active_list[list_pos].setting) + end + local valactor= menu_values[menu_pos] + left_showing= false + right_showing= false + valactor:playcommand("HideLeft") + valactor:playcommand("HideRight") + cursor_on_menu= "main" + end + end +end + +local args= { + Def.Actor{ + OnCommand= function(self) + update_menu_cursor() + SCREENMAN:GetTopScreen():AddInputCallback(input) + end + }, + -- 2. The Cursor + -- This is the cursor on the main portion of the menu. + -- It needs to have Move and Fit commands for when it's moved to a new + -- item on the list. + Def.ActorFrame { + Name= "menu_cursor", InitCommand= function(self) + menu_cursor= self + end, + -- Move whole container + MoveCommand=function(self, param) + self:stoptweening() + self:decelerate(0.15) + self:xy(param[1], param[2]) + if param[3] then + self:z(param[3]) + end + end, + FitCommand= function(self, param) + self:addx(param:GetWidth()/2) + end, + -- + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded fill")) + ) .. { + OnCommand=cmd(diffuse,PlayerDarkColor(PLAYER_1)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) + end, + }, + LoadActor( THEME:GetPathG("_frame", "1D"), + { 2/18, 14/18, 2/18 }, + LoadActor(THEME:GetPathB("_frame", "cursors/rounded gloss")) + ) .. { + OnCommand=cmd(diffuse,PlayerColor(PLAYER_1)), + FitCommand=function(self, param) + self:playcommand("SetSize",{ Width=param:GetWidth()+cursor_width_padding, tween=cmd(stoptweening;decelerate,0.15)}) + end, + } + }, +} + +-- Note that the "character" item in the menu only shows up if there are +-- characters to choose from. You might want to adjust positioning for that. +for i, item in ipairs(menu_items) do + local item_y= menu_start + ((i-1) * 24) + -- 3. The Menu Items + -- This creates the actor that will be used to show each item on the menu. + args[#args+1]= Def.BitmapText{ + Name= "menu_" .. item.name, Font= "Common Normal", + Text= THEME:GetString("ScreenOptionsCustomizeProfile", item.name), + InitCommand= function(self) + -- Note that the item adds itself to the list menu_item_actors. This + -- is so that when the cursor is moved, the appropriate item can be + -- easily fetched for positioning and sizing the cursor. + -- Note the ActorFrames have a width of 1 unless you set it, so when + -- you change this from an BitmapText to a ActorFrame, you will have + -- to make the FitCommand of your cursor look at the children. + menu_item_actors[i]= self + self:xy(menu_x, item_y) + self:diffuse(Color.White) + self:horizalign(left) + end + } + if item.get then + local value_text= item_value_to_text(item, profile[item.get](profile)) + -- 4. The Menu Values + -- Each of the values needs to have a SetCommand so it can be updated + -- when the player changes it. + -- And ActorFrame is used because values for list items need to have + -- left/right indicators for when the player is making a choice. + local value_args= { + Name= "value_" .. item.name, + InitCommand= function(self) + -- Note that the ActorFrame is being added to the list menu_values + -- so it can be easily fetched and updated when the value changes. + menu_values[i]= self + self:xy(value_x, menu_start + ((i-1) * 24)) + end, + Def.BitmapText{ + Name= "val", Font= "Common Normal", Text= value_text, + InitCommand= function(self) + self:diffuse(Color.White) + self:horizalign(left) + end, + SetCommand= function(self, param) + self:settext(param[1]) + end, + } + } + if item.item_type == "list" then + -- 4.1 The L/R indicators + -- The L/R indicators are there to tell the player when there is a + -- choice to the left or right of the choice they are on. + -- Note that they are placed inside the ActorFrame for the value, so + -- when commands are played on the ActorFrame, they are played for the + -- indicators too. + -- The commands are ShowLeft, HideLeft, PressLeft, and the same for + -- Right. + -- Note that the right indicator has a SetCommand so it sees when the + -- value changes and checks the new width to position itself. + -- Show/Hide is only played when the indicator changes state. + -- Command execution order: Set, Show/Hide (if change occurred), Press + value_args[#value_args+1]= LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { + InitCommand= function(self) + self:rotationy(-180) + self:x(-8) + self:visible(false) + self:playcommand("Set", {value_text}) + end, + ShowLeftCommand= cmd(visible, true), + HideLeftCommand= cmd(visible, false), + PressLeftCommand= cmd(finishtweening;zoom,1.5;smooth,0.25;zoom,1), + } + value_args[#value_args+1]= LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { + InitCommand= function(self) + self:visible(false) + self:playcommand("Set", {value_text}) + end, + SetCommand= function(self) + local valw= self:GetParent():GetChild("val"):GetWidth() + self:x(valw+8) + end, + ShowRightCommand= cmd(visible, true), + HideRightCommand= cmd(visible, false), + PressRightCommand= cmd(finishtweening;zoom,1.5;smooth,0.25;zoom,1), + } + end + args[#args+1]= Def.ActorFrame(value_args) + end +end + +local _height = (#menu_items) * 24 +args[#args+1]= LoadActor(THEME:GetPathB("_frame", "3x3"),"rounded black",474,_height) .. { + Name= "fader", InitCommand= function(self) + fader= self + self:draworder(-20) + self:xy(menu_x + 474/2, menu_start + _height/2 - 12) + self:diffuse(Color.Black) + self:diffusealpha(0.75) + end +} + +args[#args+1]= number_entry:create_actors() + +return Def.ActorFrame(args) diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenOptionsService in.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenOptionsService in.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenOptionsService in.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenOptionsService in.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.Actor{ + StartTransitioningCommand=function(self) + ThemePrefs.Save() + end +} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/Screen out/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/Screen out/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenOutDelay"); + +return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,0");sleep,fSleepTime;linear,0.01;diffusealpha,1); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions background.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions background.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions background.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions background.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,29 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + Def.Sprite { + Condition=not GAMESTATE:IsCourseMode(); + InitCommand=cmd(Center); + OnCommand=function(self) + if GAMESTATE:GetCurrentSong() then + local song = GAMESTATE:GetCurrentSong(); + if song:HasBackground() then + self:LoadBackground(song:GetBackgroundPath()); + end; + self:scale_or_crop_background(); + (cmd(fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480))(self); + else + self:visible(false); + end + end; + }; + Def.Quad { + InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); + }; + LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top")) .. { + InitCommand=cmd(Center;scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffusealpha,0.5); + }; +}; +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,15 @@ +local num_players = GAMESTATE:GetHumanPlayers(); + +local t = LoadFallbackB(); + +for i=1,#num_players do + local metrics_name = "PlayerNameplate" .. ToEnumShortString(num_players[i]) + t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PlayerNameplate"), num_players[i] ) .. { + InitCommand=function(self) + self:name(metrics_name); + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end + } +end + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions out.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions out.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions out.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPlayerOptions out.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,39 @@ +if PREFSMAN:GetPreference( "ShowSongOptions" ) ~= "Maybe_Ask" then + return LoadActor( THEME:GetPathB("Screen", "out") ); +end + +local t = Def.ActorFrame { + LoadActor( THEME:GetPathB("Screen", "out") ); + + LoadFont( "common normal" ) .. { + InitCommand=cmd(settext,"Press &START; for more options";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+100;visible,false); + AskForGoToOptionsCommand=cmd( + visible,true; + diffusealpha,0; + linear,0.15; + zoomy,1; + diffusealpha,1; + sleep,1; + linear,0.15; + diffusealpha,0; + zoomy,0; + ); + GoToOptionsCommand=cmd(visible,false); + }; + LoadFont( "common normal" ) .. { + InitCommand=cmd(settext,"entering options...";x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+100;visible,false); + AskForGoToOptionsCommand=cmd( + visible,false; + linear,0.15; + zoomy,1; + diffusealpha,1; + sleep,1; + linear,0.15; + diffusealpha,0; + zoomy,0; + ); + GoToOptionsCommand=cmd(visible,true); + }; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPrompt underlay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPrompt underlay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenPrompt underlay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenPrompt underlay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenMiniMenu underlay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenQuickSetupOverview decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,11 @@ +local t = LoadFallbackB(); + +t[#t+1] = LoadFont("Common Normal") .. { + Name="Explanation"; + Text=THEME:GetString(Var "LoadingScreen","Explanation"); + InitCommand=function(self) + ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); + end; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenReloadSongs background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenReloadSongs background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenReloadSongs background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenReloadSongs background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenTitleMenu background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,299 @@ +local t = LoadFallbackB(); + +-- Legacy StepMania 4 Function +local function StepsDisplay(pn) + local function set(self, player) + self:SetFromGameState( player ); + end + + local t = Def.StepsDisplay { + InitCommand=cmd(Load,"StepsDisplay",GAMESTATE:GetPlayerState(pn);); + }; + + if pn == PLAYER_1 then + t.CurrentStepsP1ChangedMessageCommand=function(self) set(self, pn); end; + t.CurrentTrailP1ChangedMessageCommand=function(self) set(self, pn); end; + else + t.CurrentStepsP2ChangedMessageCommand=function(self) set(self, pn); end; + t.CurrentTrailP2ChangedMessageCommand=function(self) set(self, pn); end; + end + + return t; +end +t[#t+1] = StandardDecorationFromFileOptional("AlternateHelpDisplay","AlternateHelpDisplay"); + +local function PercentScore(pn) + local t = LoadFont("Common normal")..{ + InitCommand=cmd(zoom,0.625;shadowlength,1); + BeginCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local SongOrCourse, StepsOrTrail; + if GAMESTATE:IsCourseMode() then + SongOrCourse = GAMESTATE:GetCurrentCourse(); + StepsOrTrail = GAMESTATE:GetCurrentTrail(pn); + else + SongOrCourse = GAMESTATE:GetCurrentSong(); + StepsOrTrail = GAMESTATE:GetCurrentSteps(pn); + end; + + local profile, scorelist; + local text = ""; + if SongOrCourse and StepsOrTrail then + local st = StepsOrTrail:GetStepsType(); + local diff = StepsOrTrail:GetDifficulty(); + local courseType = GAMESTATE:IsCourseMode() and SongOrCourse:GetCourseType() or nil; + local cd = GetCustomDifficulty(st, diff, courseType); + self:diffuse(CustomDifficultyToColor(cd)); + self:shadowcolor(CustomDifficultyToDarkColor(cd)); + + if PROFILEMAN:IsPersistentProfile(pn) then + -- player profile + profile = PROFILEMAN:GetProfile(pn); + else + -- machine profile + profile = PROFILEMAN:GetMachineProfile(); + end; + + scorelist = profile:GetHighScoreList(SongOrCourse,StepsOrTrail); + assert(scorelist) + local scores = scorelist:GetHighScores(); + local topscore = scores[1]; + if topscore then + text = string.format("%.2f%%", topscore:GetPercentDP()*100.0); + -- 100% hack + if text == "100.00%" then + text = "100%"; + end; + else + text = string.format("%.2f%%", 0); + end; + else + text = ""; + end; + self:settext(text); + end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + }; + + if pn == PLAYER_1 then + t.CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + t.CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + else + t.CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + t.CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + end + + return t; +end + +-- Legacy StepMania 4 Function +for pn in ivalues(PlayerNumber) do + local MetricsName = "StepsDisplay" .. PlayerNumberToString(pn); + t[#t+1] = StepsDisplay(pn) .. { + InitCommand=function(self) self:player(pn); self:name(MetricsName); ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); end; + PlayerJoinedMessageCommand=function(self, params) + if params.Player == pn then + self:visible(true); + (cmd(zoom,0;bounceend,0.3;zoom,1))(self); + end; + end; + PlayerUnjoinedMessageCommand=function(self, params) + if params.Player == pn then + self:visible(true); + (cmd(bouncebegin,0.3;zoom,0))(self); + end; + end; + }; + if ShowStandardDecoration("PercentScore"..ToEnumShortString(pn)) then + t[#t+1] = StandardDecorationFromTable("PercentScore"..ToEnumShortString(pn), PercentScore(pn)); + end; +end + +t[#t+1] = StandardDecorationFromFileOptional("BannerFrame","BannerFrame"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayFrameP1","PaneDisplayFrame"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayFrameP2","PaneDisplayFrame"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP1","PaneDisplayTextP1"); +t[#t+1] = StandardDecorationFromFileOptional("PaneDisplayTextP2","PaneDisplayTextP2"); +t[#t+1] = StandardDecorationFromFileOptional("DifficultyList","DifficultyList"); + +t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay"); +t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel"); +t[#t+1] = StandardDecorationFromFileOptional("SegmentDisplay","SegmentDisplay"); +--[[ t[#t+1] = StandardDecorationFromFileOptional("NegativeDisplay","NegativeDisplay") .. { +}; --]] + +t[#t+1] = StandardDecorationFromFileOptional("SongTime","SongTime") .. { + SetCommand=function(self) + local curSelection = nil; + local length = 0.0; + if GAMESTATE:IsCourseMode() then + curSelection = GAMESTATE:GetCurrentCourse(); + self:playcommand("Reset"); + if curSelection then + local trail = GAMESTATE:GetCurrentTrail(GAMESTATE:GetMasterPlayerNumber()); + if trail then + length = TrailUtil.GetTotalSeconds(trail); + else + length = 0.0; + end; + else + length = 0.0; + end; + else + curSelection = GAMESTATE:GetCurrentSong(); + self:playcommand("Reset"); + if curSelection then + length = curSelection:MusicLengthSeconds(); + if curSelection:IsLong() then + self:playcommand("Long"); + elseif curSelection:IsMarathon() then + self:playcommand("Marathon"); + else + self:playcommand("Reset"); + end + else + length = 0.0; + self:playcommand("Reset"); + end; + end; + self:settext( SecondsToMSS(length) ); + end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); +} + +if not GAMESTATE:IsCourseMode() then + local function CDTitleUpdate(self) + local song = GAMESTATE:GetCurrentSong(); + local cdtitle = self:GetChild("CDTitle"); + local height = cdtitle:GetHeight(); + + if song then + if song:HasCDTitle() then + cdtitle:visible(true); + cdtitle:Load(song:GetCDTitlePath()); + else + cdtitle:visible(false); + end; + else + cdtitle:visible(false); + end; + + self:zoom(scale(height,32,480,1,32/480)) + end; + t[#t+1] = Def.ActorFrame { + OnCommand=cmd(draworder,105;x,SCREEN_CENTER_X-256;y,SCREEN_CENTER_Y-84;zoom,0;sleep,0.5;decelerate,0.25;zoom,1;SetUpdateFunction,CDTitleUpdate); + OffCommand=cmd(bouncebegin,0.15;zoomx,0); + Def.Sprite { + Name="CDTitle"; + OnCommand=cmd(draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.35;zoom,0.75;spin;effectperiod,2;effectmagnitude,0,180,0); + BackCullCommand=cmd(diffuse,color("0.5,0.5,0.5,1")); + }; + }; + t[#t+1] = StandardDecorationFromFileOptional("NewSong","NewSong") .. { + -- ShowCommand=THEME:GetMetric(Var "LoadingScreen", "NewSongShowCommand" ); + -- HideCommand=THEME:GetMetric(Var "LoadingScreen", "NewSongHideCommand" ); + InitCommand=cmd(playcommand,"Set"); + BeginCommand=cmd(playcommand,"Set"); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + -- local pTargetProfile; + local sSong; + -- Start! + if GAMESTATE:GetCurrentSong() then + if PROFILEMAN:IsSongNew(GAMESTATE:GetCurrentSong()) then + self:playcommand("Show"); + else + self:playcommand("Hide"); + end + else + self:playcommand("Hide"); + end + end; + }; + t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay"); +end; + +if GAMESTATE:IsCourseMode() then + t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd( + x,THEME:GetMetric(Var "LoadingScreen","CourseContentsListX"); + y,THEME:GetMetric(Var "LoadingScreen","CourseContentsListY") - 118; + zoomto,256+32,192; + ); + OnCommand=cmd(diffuse,Color.Green;MaskSource); + }; + Def.Quad { + InitCommand=cmd( + x,THEME:GetMetric(Var "LoadingScreen","CourseContentsListX"); + y,THEME:GetMetric(Var "LoadingScreen","CourseContentsListY") + 186; + zoomto,256+32,64; + ); + OnCommand=cmd(diffuse,Color.Blue;MaskSource); + }; + }; + t[#t+1] = StandardDecorationFromFileOptional("CourseContentsList","CourseContentsList"); + t[#t+1] = StandardDecorationFromFileOptional("NumCourseSongs","NumCourseSongs")..{ + InitCommand=cmd(horizalign,right); + SetCommand=function(self) + local curSelection= nil; + local sAppend = ""; + if GAMESTATE:IsCourseMode() then + curSelection = GAMESTATE:GetCurrentCourse(); + if curSelection then + sAppend = (curSelection:GetEstimatedNumStages() == 1) and "Stage" or "Stages"; + self:visible(true); + self:settext( curSelection:GetEstimatedNumStages() .. " " .. sAppend); + else + self:visible(false); + end; + else + self:visible(false); + end; + end; + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + }; +end + +t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay"); + +t[#t+1] = StandardDecorationFromFileOptional("SortOrder","SortOrderText") .. { + BeginCommand=cmd(playcommand,"Set"); + SortOrderChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local s = GAMESTATE:GetSortOrder() + if s ~= nil then + local s = SortOrderToLocalizedString( s ) + self:settext( s ) + self:playcommand("Sort") + else + return + end + end; +}; + +t[#t+1] = StandardDecorationFromFileOptional("SongOptionsFrame","SongOptionsFrame") .. { + ShowPressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameShowCommand"); + ShowEnteringOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameEnterCommand"); + HidePressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsFrameHideCommand"); +}; +t[#t+1] = StandardDecorationFromFileOptional("SongOptions","SongOptionsText") .. { + ShowPressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsShowCommand"); + ShowEnteringOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsEnterCommand"); + HidePressStartForOptionsCommand=THEME:GetMetric(Var "LoadingScreen","SongOptionsHideCommand"); +}; +-- Sounds +t[#t+1] = Def.ActorFrame { + LoadActor(THEME:GetPathS("_switch","up")) .. { + SelectMenuOpenedMessageCommand=cmd(stop;play); + }; + LoadActor(THEME:GetPathS("_switch","down")) .. { + SelectMenuClosedMessageCommand=cmd(stop;play); + }; +}; + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,70 @@ +local num_players = GAMESTATE:GetHumanPlayers(); +local function PositionItem(i,max) + local x_spacing = 128; + return x_spacing * (i-(max-1)/2); +end + + +local t = Def.ActorFrame { + FOV=90; + -- + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_CENTER_X+80,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.75;fadeleft,32/SCREEN_CENTER_X;faderight,32/SCREEN_CENTER_X); + }; +}; +-- +for i=1,#num_players do + local f = Def.ActorFrame { + InitCommand=cmd(x,-128+PositionItem(i,#num_players)); + UnchosenCommand=cmd(finishtweening;bounceend,0.25;zoom,1); + ChosenCommand=cmd(stoptweening;bouncebegin,0.3;zoom,0); + -- + StepsChosenMessageCommand=function( self, param ) + if param.Player ~= num_players[i] then return end; + self:playcommand("Chosen"); + end; + StepsUnchosenMessageCommand=function( self, param ) + if param.Player ~= num_players[i] then return end; + self:playcommand("Unchosen"); + end; + Def.Quad { + InitCommand=cmd(y,-35); + OnCommand=cmd(diffuse,PlayerColor(num_players[i]);shadowlength,1;linear,0.25;zoomtowidth,80;fadeleft,0.5;faderight,0.5); + }; + LoadFont("Common Bold") .. { + Text=ToEnumShortString(num_players[i]); + InitCommand=cmd(y,-48); + OnCommand=cmd(shadowlength,1;diffuse,PlayerColor(num_players[i])); + }; + LoadFont("Common Bold") .. { + Text="PRESS"; + InitCommand=cmd(y,-20); + OnCommand=cmd(shadowlength,1;pulse;effectmagnitude,1,1.125,1;effectperiod,0.5); + }; + LoadFont("Common Normal") .. { + Text="TO START"; + InitCommand=cmd(y,58); + OnCommand=cmd(shadowlength,1;zoom,0.75); + }; + }; + if GAMESTATE:GetCurrentGame():GetName() == "pump" then + local ns = num_players[i] == PLAYER_1 and RoutineSkinP1() or RoutineSkinP2() + f[#f+1] = LoadActor( NOTESKIN:GetPathForNoteSkin("Center","Tap",ns) ) .. { + InitCommand=cmd(y,20); + } + end + t[#t+1] = f; +end +-- Lock input for half a second so that players don't accidentally start a song +t[#t+1] = Def.Actor { + StartSelectingStepsMessageCommand=function() SCREENMAN:GetTopScreen():lockinput(0.5); end; +}; + +-- +t.InitCommand=cmd(Center;x,SCREEN_CENTER_X*1.5;diffusealpha,0); +t.StartSelectingStepsMessageCommand=cmd(linear,0.2;diffusealpha,1); +t.SongUnchosenMessageCommand=cmd(linear,0.2;diffusealpha,0); + + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic underlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectMusic underlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,12 @@ +local t = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0); + StartSelectingStepsMessageCommand=cmd(stoptweening;linear,0.2;diffusealpha,0.75); + SongUnchosenMessageCommand=cmd(stoptweening;linear,0.2;diffusealpha,0); + }; +}; + +t.InitCommand=cmd(Center); + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectPlayMode underlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectPlayMode underlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectPlayMode underlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectPlayMode underlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = Def.ActorFrame {}; +t[#t+1] = StandardDecorationFromFileOptional("BackgroundFrame","BackgroundFrame"); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectProfile overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectProfile overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSelectProfile overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSelectProfile overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,317 @@ +function GetLocalProfiles() + local ret = {}; + + for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do + local profile=PROFILEMAN:GetLocalProfileFromIndex(p); + local item = Def.ActorFrame { +--[[ Def.Quad { + InitCommand=cmd(zoomto,200,1;y,40/2); + OnCommand=cmd(diffuse,Color('Outline');); + }; --]] + LoadFont("Common Normal") .. { + Text=profile:GetDisplayName(); + InitCommand=cmd(shadowlength,1;y,-10;zoom,1;ztest,true); + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(shadowlength,1;y,8;zoom,0.5;vertspacing,-8;ztest,true); + BeginCommand=function(self) + local numSongsPlayed = profile:GetNumTotalSongsPlayed(); + local s = numSongsPlayed == 1 and "Song" or "Songs"; + self:settext( string.format(THEME:GetString("ScreenSelectProfile","%d "..s.." Played"),numSongsPlayed) ); + end; + }; + }; + table.insert( ret, item ); + end; + + return ret; +end; + +function LoadCard(cColor) + local t = Def.ActorFrame { + LoadActor( THEME:GetPathG("ScreenSelectProfile","CardBackground") ) .. { + InitCommand=cmd(diffuse,cColor); + }; + LoadActor( THEME:GetPathG("ScreenSelectProfile","CardFrame") ); + }; + return t +end +function LoadPlayerStuff(Player) + local ret = {}; + + local pn = (Player == PLAYER_1) and 1 or 2; + +--[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. { + Name = 'BigFrame'; + }; --]] + local t = Def.ActorFrame { + Name = 'JoinFrame'; + LoadCard(Color('Orange')); +--[[ Def.Quad { + InitCommand=cmd(zoomto,200+4,230+4); + OnCommand=cmd(shadowlength,1;diffuse,color("0,0,0,0.5")); + }; + Def.Quad { + InitCommand=cmd(zoomto,200,230); + OnCommand=cmd(diffuse,Color('Orange');diffusealpha,0.5); + }; --]] + LoadFont("Common Normal") .. { + Text=THEME:GetString("ScreenSelectProfile","PressStart"); + InitCommand=cmd(shadowlength,1); + OnCommand=cmd(diffuseshift;effectcolor1,Color('White');effectcolor2,color("0.5,0.5,0.5")); + }; + }; + table.insert( ret, t ); + + t = Def.ActorFrame { + Name = 'BigFrame'; + LoadCard(PlayerColor(Player)); + }; + table.insert( ret, t ); + +--[[ t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 170, 20) .. { + Name = 'SmallFrame'; + }; --]] + t = Def.ActorFrame { + Name = 'SmallFrame'; +--[[ Def.Quad { + InitCommand=cmd(zoomto,170+4,32+4); + OnCommand=cmd(shadowlength,1); + }; --]] + InitCommand=cmd(y,-2); + Def.Quad { + InitCommand=cmd(zoomto,200-10,40+2); + OnCommand=cmd(diffuse,Color('Black');diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(zoomto,200-10,40); + OnCommand=cmd(diffuse,PlayerColor(Player);fadeleft,0.25;faderight,0.25;glow,color("1,1,1,0.25")); + }; + Def.Quad { + InitCommand=cmd(zoomto,200-10,40;y,-40/2+20); + OnCommand=cmd(diffuse,Color("Black");fadebottom,1;diffusealpha,0.35); + }; + Def.Quad { + InitCommand=cmd(zoomto,200-10,1;y,-40/2+1); + OnCommand=cmd(diffuse,PlayerColor(Player);glow,color("1,1,1,0.25")); + }; + }; + table.insert( ret, t ); + + t = Def.ActorScroller{ + Name = 'ProfileScroller'; + NumItemsToDraw=6; +-- InitCommand=cmd(y,-230/2+20;); + OnCommand=cmd(y,1;SetFastCatchup,true;SetMask,200,58;SetSecondsPerItem,0.15); + TransformFunction=function(self, offset, itemIndex, numItems) + local focus = scale(math.abs(offset),0,2,1,0); + self:visible(false); + self:y(math.floor( offset*40 )); +-- self:zoomy( focus ); +-- self:z(-math.abs(offset)); +-- self:zoom(focus); + end; + children = GetLocalProfiles(); + }; + table.insert( ret, t ); + + t = Def.ActorFrame { + Name = "EffectFrame"; + --[[ Def.Quad { + InitCommand=cmd(y,-230/2;vertalign,top;zoomto,200,8;fadebottom,1); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25); + }; + Def.Quad { + InitCommand=cmd(y,230/2;vertalign,bottom;zoomto,200,8;fadetop,1); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25); + }; --]] + }; + table.insert( ret, t ); +--[[ t = Def.BitmapText { + OnCommand = cmd(y,160); + Name = 'SelectedProfileText'; + Font = "Common Normal"; + Text = 'No profile'; + }; --]] + t = LoadFont("Common Normal") .. { + Name = 'SelectedProfileText'; + --InitCommand=cmd(y,160;shadowlength,1;diffuse,PlayerColor(Player)); + InitCommand=cmd(y,160;shadowlength,1;); + }; + table.insert( ret, t ); + + return ret; +end; + +function UpdateInternal3(self, Player) + local pn = (Player == PLAYER_1) and 1 or 2; + local frame = self:GetChild(string.format('P%uFrame', pn)); + local scroller = frame:GetChild('ProfileScroller'); + local seltext = frame:GetChild('SelectedProfileText'); + local joinframe = frame:GetChild('JoinFrame'); + local smallframe = frame:GetChild('SmallFrame'); + local bigframe = frame:GetChild('BigFrame'); + + if GAMESTATE:IsHumanPlayer(Player) then + frame:visible(true); + if MEMCARDMAN:GetCardState(Player) == 'MemoryCardState_none' then + --using profile if any + joinframe:visible(false); + smallframe:visible(true); + bigframe:visible(true); + seltext:visible(true); + scroller:visible(true); + local ind = SCREENMAN:GetTopScreen():GetProfileIndex(Player); + if ind > 0 then + scroller:SetDestinationItem(ind-1); + seltext:settext(PROFILEMAN:GetLocalProfileFromIndex(ind-1):GetDisplayName()); + else + if SCREENMAN:GetTopScreen():SetProfileIndex(Player, 1) then + scroller:SetDestinationItem(0); + self:queuecommand('UpdateInternal2'); + else + joinframe:visible(true); + smallframe:visible(false); + bigframe:visible(false); + scroller:visible(false); + seltext:settext('No profile'); + end; + end; + else + --using card + smallframe:visible(false); + scroller:visible(false); + seltext:settext('CARD'); + SCREENMAN:GetTopScreen():SetProfileIndex(Player, 0); + end; + else + joinframe:visible(true); + scroller:visible(false); + seltext:visible(false); + smallframe:visible(false); + bigframe:visible(false); + end; +end; + +-- Will be set to the main ActorFrame for the screen in its OnCommand. +local main_frame= false + +local function input(event) + if event.type == "InputEventType_Release" then return end + local pn= event.PlayerNumber + local code= event.GameButton + if not pn or not code then return end + local input_functions= { + Start= function() + MESSAGEMAN:Broadcast("StartButton") + if not GAMESTATE:IsHumanPlayer(pn) then + SCREENMAN:GetTopScreen():SetProfileIndex(pn, -1) + else + SCREENMAN:GetTopScreen():Finish() + end + end, + Back= function() + if GAMESTATE:GetNumPlayersEnabled()==0 then + SCREENMAN:GetTopScreen():Cancel() + else + MESSAGEMAN:Broadcast("BackButton") + SCREENMAN:GetTopScreen():SetProfileIndex(pn, -2) + end + end, + MenuUp= function() + if GAMESTATE:IsHumanPlayer(pn) then + local ind = SCREENMAN:GetTopScreen():GetProfileIndex(pn) + if ind > 1 then + if SCREENMAN:GetTopScreen():SetProfileIndex(pn, ind - 1) then + MESSAGEMAN:Broadcast("DirectionButton") + main_frame:queuecommand('UpdateInternal2') + end + end + end + end, + MenuDown= function() + if GAMESTATE:IsHumanPlayer(pn) then + local ind = SCREENMAN:GetTopScreen():GetProfileIndex(pn) + if ind > 0 then + if SCREENMAN:GetTopScreen():SetProfileIndex(pn, ind + 1) then + MESSAGEMAN:Broadcast("DirectionButton") + main_frame:queuecommand('UpdateInternal2') + end + end + end + end + } + input_functions.MenuLeft= input_functions.MenuUp + input_functions.MenuRight= input_functions.MenuDown + if input_functions[code] then + input_functions[code]() + end +end + +local t = Def.ActorFrame { + + StorageDevicesChangedMessageCommand=function(self, params) + self:queuecommand('UpdateInternal2'); + end; + + PlayerJoinedMessageCommand=function(self, params) + self:queuecommand('UpdateInternal2'); + end; + + PlayerUnjoinedMessageCommand=function(self, params) + self:queuecommand('UpdateInternal2'); + end; + + OnCommand=function(self, params) + main_frame= self:GetParent() + SCREENMAN:GetTopScreen():AddInputCallback(input) + self:queuecommand('UpdateInternal2'); + end; + + UpdateInternal2Command=function(self) + UpdateInternal3(self, PLAYER_1); + UpdateInternal3(self, PLAYER_2); + end; + + children = { + Def.ActorFrame { + Name = 'P1Frame'; + InitCommand=cmd(x,SCREEN_CENTER_X-160;y,SCREEN_CENTER_Y); + OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); + OffCommand=cmd(bouncebegin,0.35;zoom,0); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_1 then + (cmd(;zoom,1.15;bounceend,0.175;zoom,1.0;))(self); + end; + end; + children = LoadPlayerStuff(PLAYER_1); + }; + Def.ActorFrame { + Name = 'P2Frame'; + InitCommand=cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y); + OnCommand=cmd(zoom,0;bounceend,0.35;zoom,1); + OffCommand=cmd(bouncebegin,0.35;zoom,0); + PlayerJoinedMessageCommand=function(self,param) + if param.Player == PLAYER_2 then + (cmd(zoom,1.15;bounceend,0.175;zoom,1.0;))(self); + end; + end; + children = LoadPlayerStuff(PLAYER_2); + }; + -- sounds + LoadActor( THEME:GetPathS("Common","start") )..{ + IsAction= true, + StartButtonMessageCommand=cmd(play); + }; + LoadActor( THEME:GetPathS("Common","cancel") )..{ + IsAction= true, + BackButtonMessageCommand=cmd(play); + }; + LoadActor( THEME:GetPathS("Common","value") )..{ + IsAction= true, + DirectionButtonMessageCommand=cmd(play); + }; + }; +}; + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSongOptions background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSongOptions background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSongOptions background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSongOptions background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenPlayerOptions background \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation out.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation out.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation out.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation out.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/CourseDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,32 @@ +if not GAMESTATE:IsCourseMode() then return Def.ActorFrame{} end; -- short circuit +local course = GAMESTATE:GetCurrentCourse() + +local t = Def.ActorFrame{ + -- background + Def.Sprite{ + InitCommand=cmd(Center); + BeginCommand=function(self) + if course:GetBackgroundPath() then + self:Load( course:GetBackgroundPath() ) + else + -- default to the BG of the first song in the course + self:LoadFromCurrentSongBackground() + end + end; + OnCommand=cmd(diffusealpha,0;scale_or_crop_background;sleep,0.5;linear,0.50;diffusealpha,1;sleep,3); + }; + -- alternate background + Def.Sprite{ + InitCommand=cmd(Center;); + BeginCommand=cmd(LoadFromCurrentSongBackground;scale_or_crop_background;diffusealpha,0); + OnCommand=cmd(sleep,4;playcommand,"Show"); + ShowCommand=function(self) + if course:HasBackground() then + self:accelerate(0.25) + self:diffusealpha(1) + end + end; + }; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenStageInformation underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,92 @@ +local playMode = GAMESTATE:GetPlayMode() + +local sStage = "" +sStage = GAMESTATE:GetCurrentStage() + +if playMode ~= 'PlayMode_Regular' and playMode ~= 'PlayMode_Rave' and playMode ~= 'PlayMode_Battle' then + sStage = playMode; +end; + +local t = Def.ActorFrame {}; +t[#t+1] = Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color("Black")); +}; +if GAMESTATE:IsCourseMode() then + t[#t+1] = LoadActor("CourseDisplay"); +else + t[#t+1] = Def.Sprite { + InitCommand=cmd(Center;diffusealpha,0); + BeginCommand=cmd(LoadFromCurrentSongBackground); + OnCommand=function(self) + self:scale_or_crop_background() + self:sleep(0.5) + self:linear(0.50) + self:diffusealpha(1) + self:sleep(3) + end; + }; +end + +local stage_num_actor= THEME:GetPathG("ScreenStageInformation", "Stage " .. ToEnumShortString(sStage), true) +if stage_num_actor ~= "" and FILEMAN:DoesFileExist(stage_num_actor) then + stage_num_actor= LoadActor(stage_num_actor) +else + -- Midiman: We need a "Stage Next" actor or something for stages after + -- the 6th. -Kyz + local curStage = GAMESTATE:GetCurrentStage(); + stage_num_actor= Def.BitmapText{ + Font= "Common Normal", Text= thified_curstage_index(false) .. " Stage", + InitCommand= function(self) + self:zoom(1.5) + self:strokecolor(Color.Black) + self:diffuse(StageToColor(curStage)); + self:diffusetopedge(ColorLightTone(StageToColor(curStage))); + end + } +end + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); + OnCommand=cmd(stoptweening;zoom,1.25;decelerate,3;zoom,1); + stage_num_actor .. { + OnCommand=cmd(diffusealpha,0;linear,0.25;diffusealpha,1;sleep,1.75;linear,0.5;zoomy,0;zoomx,2;diffusealpha,0); + }; +}; + +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+96); + OnCommand=cmd(stoptweening;addy,-16;decelerate,3;addy,16); + LoadFont("Common Normal") .. { + Text=GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() or GAMESTATE:GetCurrentSong():GetDisplayFullTitle(); + InitCommand=cmd(strokecolor,Color("Outline");y,-20); + OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; + LoadFont("Common Normal") .. { + Text=GAMESTATE:IsCourseMode() and ToEnumShortString( GAMESTATE:GetCurrentCourse():GetCourseType() ) or GAMESTATE:GetCurrentSong():GetDisplayArtist(); + InitCommand=cmd(strokecolor,Color("Outline");zoom,0.75); + OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(strokecolor,Color("Outline");diffuse,Color("Orange");diffusebottomedge,Color("Yellow");zoom,0.75;y,20); + BeginCommand=function(self) + local text = ""; + local SongOrCourse; + if GAMESTATE:IsCourseMode() then + local trail = GAMESTATE:GetCurrentTrail(GAMESTATE:GetMasterPlayerNumber()); + SongOrCourse = GAMESTATE:GetCurrentCourse(); + if SongOrCourse:GetEstimatedNumStages() == 1 then + text = SongOrCourse:GetEstimatedNumStages() .." Stage / ".. SecondsToMSSMsMs( TrailUtil.GetTotalSeconds(trail) ); + else + text = SongOrCourse:GetEstimatedNumStages() .." Stages / ".. SecondsToMSSMsMs( TrailUtil.GetTotalSeconds(trail) ); + end + else + SongOrCourse = GAMESTATE:GetCurrentSong(); + text = SecondsToMSSMsMs( SongOrCourse:MusicLengthSeconds() ); + end; + self:settext(text); + end; + OnCommand=cmd(diffusealpha,0;linear,0.5;diffusealpha,1;sleep,1.5;linear,0.5;diffusealpha,0); + }; +}; + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSystemLayer aux.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSystemLayer aux.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenSystemLayer aux.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenSystemLayer aux.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,48 @@ +local t = Def.ActorFrame {}; +local bOpen = false; +local function GetTime(self) + -- Painfully ugly, sorry. + local c = self:GetChildren(); + local tTime = { Hour = nil, Minute = nil, Second = nil, Append = nil}; + + if Hour() then tTime.Hour = Hour() else tTime.Hour = 0 end; + if Minute() then tTime.Minute = Minute() else tTime.Minute = 0 end; + if Second() then tTime.Second = Second() else tTime.Second = 0 end; + + if( Hour() < 12 ) then + tTime.Append = "AM" + else + tTime.Append = "PM" + end; + + if( Hour() == 0 ) then + tTime.Hour = 12; + end; + + c.Time:settextf("%02i:%02i:%02i %s",tTime.Hour,tTime.Minute,tTime.Second,tTime.Append); +end; +t[#t+1] = Def.ActorFrame { + Def.ActorFrame { + LoadActor(THEME:GetPathB("","_frame 3x3"),"rounded black",96,12) .. { + Name="Background"; + }; + LoadFont("Common Normal") .. { + Text="Test"; + Name="Time"; + InitCommand=cmd(zoom,0.675); + }; + -- + BeginCommand=function(self) + self:SetUpdateFunction( GetTime ); + self:SetUpdateRate( 1/30 ); + end; + }; + ToggleConsoleDisplayMessageCommand=function(self) + bOpen = not bOpen; + if bOpen then self:playcommand("Show") else self:playcommand("Hide") end + end; + InitCommand=cmd(x,SCREEN_RIGHT-50;y,10;visible,false); + ShowCommand=cmd(finishtweening;visible,true); + HideCommand=cmd(finishtweening;visible,false); +}; +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTextEntry underlay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTextEntry underlay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTextEntry underlay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTextEntry underlay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenMiniMenu underlay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +local t = LoadFallbackB(); +t[#t+1] = LoadActor( THEME:GetPathB("_Arcade","decorations") ); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin overlay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin overlay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin overlay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleJoin overlay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,12 @@ +local t = Def.ActorFrame{}; + +-- todo: add event mode indicators and such +if GAMESTATE:IsEventMode() then + t[#t+1] = LoadFont("Common Large")..{ + Text=Screen.String("EventMode"); + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-72;zoom,0.675;diffuse,Color.Yellow;strokecolor,ColorDarkTone(Color.Yellow);shadowlength,1); + OnCommand=cmd(glowshift;textglowmode,'TextGlowMode_Inner';effectperiod,2); + }; +end; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,34 @@ +InitUserPrefs(); + +local t = Def.ActorFrame {} + +t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer"); +t[#t+1] = StandardDecorationFromFileOptional("Logo","Logo"); +t[#t+1] = StandardDecorationFromFileOptional("VersionInfo","VersionInfo"); +t[#t+1] = StandardDecorationFromFileOptional("CurrentGametype","CurrentGametype"); +t[#t+1] = StandardDecorationFromFileOptional("LifeDifficulty","LifeDifficulty"); +t[#t+1] = StandardDecorationFromFileOptional("TimingDifficulty","TimingDifficulty"); +t[#t+1] = StandardDecorationFromFileOptional("NetworkStatus","NetworkStatus"); +t[#t+1] = StandardDecorationFromFileOptional("SystemDirection","SystemDirection"); + +t[#t+1] = StandardDecorationFromFileOptional("NumSongs","NumSongs") .. { + SetCommand=function(self) + local InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked = 0; + if SONGMAN:GetRandomSong() then + InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked = + SONGMAN:GetNumSongs(), + SONGMAN:GetNumAdditionalSongs(), + SONGMAN:GetNumCourses(), + SONGMAN:GetNumAdditionalCourses(), + SONGMAN:GetNumSongGroups(), + SONGMAN:GetNumUnlockedSongs(); + else + return + end + + self:settextf(THEME:GetString("ScreenTitleMenu","%i Songs (%i Groups), %i Courses"), InstalledSongs, Groups, InstalledCourses); +-- self:settextf("%i (+%i) Songs (%i Groups), %i (+%i) Courses", InstalledSongs, AdditionalSongs, Groups, InstalledCourses, AdditionalCourses); + end; +}; + +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_ScreenTitleMenu out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_ScreenTitleMenu out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/_ScreenTitleMenu out/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/_ScreenTitleMenu out/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,23 @@ +return Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;visible,false); + StartTransitioningCommand=cmd(visible,true;diffuse,Color("Black");sleep,3.5;diffusealpha,0); + }; + -- Sublime + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,80;diffuse,Color("Orange");visible,false); + StartTransitioningCommand=cmd(visible,true;decelerate,2;zoomy,44;decelerate,0.5;diffusealpha,0); + }; + LoadFont("Common Normal") .. { + Text="This is only the beginning..."; + InitCommand=cmd(visible,false;shadowlength,1;shadowcolor,BoostColor(Color("Orange"),0.5)); + StartTransitioningCommand=cmd(visible,true;zoom,0.75;fadeleft,1;faderight,1;linear,1;faderight,0;fadeleft,0;sleep,1;decelerate,0.5;y,12;diffusealpha,0); + }; + -- End + Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,Color("White");visible,false); + StartTransitioningCommand=cmd(visible,true;decelerate,1;diffusealpha,0); + }; + +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/_bg.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/_bg.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenTitleMenu underlay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(horizalign,left;vertalign,top;y,SCREEN_TOP+8); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;zoomto,256,84;faderight,1); + }; + Def.Quad { + InitCommand=cmd(horizalign,right;vertalign,top;x,SCREEN_RIGHT;y,SCREEN_TOP+8); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5;zoomto,256,46;fadeleft,1); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements aux.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements aux.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements aux.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements aux.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,80 @@ +local function Clock() + function UpdateVisible(self) + local screen = SCREENMAN:GetTopScreen() + local bShow = true + if screen then + local sClass = screen:GetName() + bShow = THEME:GetMetric(sClass, "ShowClock") + end + if bShow then + self:smooth(0.25) + self:y(12) + else + self:smooth(0.25) + self:y(-56) + end + end + -- clock + clock = Def.ActorFrame { + Name="Clock", + InitCommand=cmd(x,50;y,12;playcommand,"Update"), + ScreenChangedMessageCommand=UpdateVisible, + UpdateCommand=cmd(runcommandsonleaves,cmd(queuecommand,"Update")), + Def.RoundedBox(90,26)..{ InitCommand=cmd(x,-22;y,-4) }, + Def.ActorFrame { + Name="ClockText", + InitCommand=cmd(y,-2), + LoadFont("Common", "normal")..{ + Text="00:00:", + InitCommand=cmd(horizalign,right;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9")), + UpdateCommand=function(self) + local hour, min = Hour(), Minute() + if hour > 12 and GetUserPrefB("Use12HourClock") then + hour = hour - 12 + elseif hour == 0 and GetUserPrefB("Use12HourClock") then + hour = 12 + end + self:settext(string.format('%02i:%02i:', hour, min)) + self:sleep(1) + self:queuecommand("Update") + end + }, + LoadFont("Common", "normal")..{ + Text="00", + InitCommand=cmd(horizalign,left;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9")), + UpdateCommand=function(self) + local sec = Second() + self:settext(string.format('%02i', sec)) + self:sleep(1) + self:queuecommand("Update") + end, + }, + LoadFont("Common", "normal")..{ + Text="", + InitCommand=cmd(x,28;y,-3;horizalign,left;shadowlength,0;diffusebottomedge,color("0.9,0.9,0.9");visible,false;zoom,0.75), + UpdateCommand=function(self) + if not GetUserPrefB("Use12HourClock") then + self:visible(false) + return + end + local hour = Hour() + if hour < 12 then + self:settext("AM") + self:diffuse(color("1,0.85,0,1")) + self:diffusebottomedge(color("0.75,0.55,0,1")) + else + self:settext("PM") + self:diffuse(color("0,0.85,1,1")) + self:diffusebottomedge(color("0,0.55,1,1")) + end + self:visible(true) + self:sleep(1) + self:queuecommand("Update") + end + } + } + } + return clock; +end +local t = Def.ActorFrame {}; +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_bg top.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_bg top.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_checkerboard (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_checkerboard (stretch).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,35 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + FOV=90; + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("#FFCB05");diffusebottomedge,color("#F0BA00")); + }; + Def.ActorFrame { + InitCommand=cmd(hide_if,hideFancyElements;); + LoadActor("_checkerboard") .. { + InitCommand=cmd(rotationy,0;rotationz,0;rotationx,-90/4*3.5;zoomto,SCREEN_WIDTH*2,SCREEN_HEIGHT*2;customtexturerect,0,0,SCREEN_WIDTH*4/256,SCREEN_HEIGHT*4/256); + OnCommand=cmd(texcoordvelocity,0,0.25;diffuse,color("#ffd400");fadetop,1); + }; + }; + LoadActor("_particleLoader") .. { + InitCommand=cmd(x,-SCREEN_CENTER_X;y,-SCREEN_CENTER_Y;hide_if,hideFancyElements;); + }; +--[[ LoadActor("_particles") .. { + InitCommand=cmd(x,-SCREEN_CENTER_X;y,-SCREEN_CENTER_Y); + }; --]] +--[[ LoadActor("_pattern") .. { + InitCommand=cmd(z,32;x,4;y,4;;rotationy,-12.25;rotationz,-30;rotationx,-20;zoomto,SCREEN_WIDTH*2,SCREEN_HEIGHT*2;customtexturerect,0,0,SCREEN_WIDTH*4/256,SCREEN_HEIGHT*4/256); + OnCommand=cmd(texcoordvelocity,0.125,0.5;diffuse,Color("Black");diffusealpha,0.5); + }; --]] + --[[ LoadActor("_grid") .. { + InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true); + OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*2,0,(7/8)*2,0;effectclock,'beatnooffset'; + effectcolor2,Color("White");effectcolor1,Color("Black");fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;blend,Blend.Add; + diffusealpha,0.155); + }; --]] +}; + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_grid.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_grid.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particleLoader.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,74 @@ +local hideFancyElements = (ThemePrefs.Get("FancyUIBG") == false) +local t = Def.ActorFrame{}; +if hideFancyElements then return t; end + +local Params = { + NumParticles = 30, + VelocityXMin = 100, + VelocityXMax = 400, + VelocityYMin = 0, + VelocityYMax = 0, + VelocityZMin = 0, + VelocityZMax = 0, + BobRateZMin = 0.4, + BobRateZMax = 0.7, + ZoomMin = 0.5, + ZoomMax = 1, + SpinZ = 0, + BobZ = 52, + File = "_particle normal", +}; + +local tParticleInfo = {} + +for i=1,Params.NumParticles do + tParticleInfo[i] = { + X = math.random(Params.VelocityXMin, Params.VelocityXMax), + Y = Params.VelocityYMin ~= Params.VelocityYMax and math.random(Params.VelocityYMin, Params.VelocityYMax) or Params.VelocityYMin, + Z = Params.VelocityZMin ~= Params.VelocityZMax and math.random(Params.VelocityZMin, Params.VelocityZMax) or Params.VelocityZMin, + Zoom = math.random(Params.ZoomMin*1000,Params.ZoomMax*1000) / 1000, + BobZRate = math.random(Params.BobRateZMin*1000,Params.BobRateZMax*1000) / 1000, + Age = 0, + }; + t[#t+1] = LoadActor( Params.File )..{ + Name="Particle"..i; + InitCommand=function(self) + self:basezoom(tParticleInfo[i].Zoom); + self:x(math.random(SCREEN_LEFT+(self:GetWidth()/2),SCREEN_RIGHT-(self:GetWidth()/2))); + self:y(math.random(SCREEN_TOP+(self:GetHeight()/2),SCREEN_BOTTOM-(self:GetHeight()/2))); + --self:z(math.random(-64,0)); + end; + OnCommand=cmd(diffuse,ColorLightTone(color("#ffd400"));diffusealpha,0.8); + }; +end + +local function UpdateParticles(self,DeltaTime) + tParticles = self:GetChildren(); + for i=1, Params.NumParticles do + local p = tParticles["Particle"..i]; + local vX = tParticleInfo[i].X; + local vY = tParticleInfo[i].Y; + local vZ = tParticleInfo[i].Z; + tParticleInfo[i].Age = tParticleInfo[i].Age + DeltaTime; + p:x(p:GetX() + (vX * DeltaTime)); + p:y(p:GetY() + (vY * DeltaTime)); + p:z(p:GetZ() + (vZ * DeltaTime)); +-- p:zoom( 1 + math.cos( +-- (tParticleInfo[i].Age * math.pi*2) +-- ) * 0.125 ); + if p:GetX() > SCREEN_RIGHT + (p:GetWidth()/2 - p:GetZ()) then + p:x(SCREEN_LEFT - (p:GetWidth()/2)); + elseif p:GetX() < SCREEN_LEFT - (p:GetWidth()/2 - p:GetZ()) then + p:x(SCREEN_RIGHT + (p:GetWidth()/2)); + end + if p:GetY() > SCREEN_BOTTOM + (p:GetHeight()/2 - p:GetZ()) then + p:y(SCREEN_TOP - (p:GetHeight()/2)); + elseif p:GetY() < SCREEN_TOP - (p:GetHeight()/2 - p:GetZ()) then + p:y(SCREEN_BOTTOM + (p:GetHeight()/2)); + end + end; +end; + +t.InitCommand = cmd(fov,90;SetUpdateFunction,UpdateParticles); + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particle normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements background/_particle normal.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements decorations/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements decorations/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements decorations/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements decorations/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +-- Loads up a slew of objects to load into the screen, like how 3.9 does. +-- 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"); +t[#t+1] = StandardDecorationFromFileOptional( "Help", "Help" ); +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements in/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements in/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements in/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements in/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,35 @@ +local fTileSize = 32; +local iTilesX = math.ceil( SCREEN_WIDTH/fTileSize ); +local iTilesY = math.ceil( SCREEN_HEIGHT/fTileSize ); +local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenInDelay"); +--[[ local function Actor:PositionTile(self,iX,iY) + self:x( scale(iX,1,iTilesX,-SCREEN_CENTER_X,SCREEN_CENTER_X) ); + self:y( scale(iY,1,iTilesY,-SCREEN_CENTER_Y,SCREEN_CENTER_Y) ); +end --]] +local t = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); + OnCommand=cmd(sleep,fSleepTime); +}; +--[[ for indx=1,iTilesX do + for indy=1,iTilesY do + t[#t+1] = Def.Quad { + InitCommand=cmd(zoom,fTileSize-2; + x,math.floor( scale(indx,1,iTilesX,(iTilesX/2)*fTileSize*-1,(iTilesX/2)*fTileSize*1) ); + y,math.floor( scale(indy,1,iTilesY,(iTilesY/2)*fTileSize*-1,(iTilesY/2)*fTileSize*1) ); + ); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,1;zoom,fTileSize-2;sleep,(iTilesX+iTilesY)*(1/60);linear,0.0325 + ( indx / 60 );diffusealpha,0;zoom,fTileSize*1.25); + }; + end +end --]] +t[#t+1] = Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,1");sleep,0.0325 + fSleepTime;linear,0.15;diffusealpha,0); +}; +--[[ return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,1");linear,0.15;diffusealpha,0); + }; +}; --]] + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements out/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements out/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements out/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/BGAnimations/ScreenWithMenuElements out/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,35 @@ +local fTileSize = 32; +local iTilesX = math.ceil( SCREEN_WIDTH/fTileSize ); +local iTilesY = math.ceil( SCREEN_HEIGHT/fTileSize ); +local fSleepTime = THEME:GetMetric( Var "LoadingScreen","ScreenOutDelay"); +--[[ local function Actor:PositionTile(self,iX,iY) + self:x( scale(iX,1,iTilesX,-SCREEN_CENTER_X,SCREEN_CENTER_X) ); + self:y( scale(iY,1,iTilesY,-SCREEN_CENTER_Y,SCREEN_CENTER_Y) ); +end --]] +local t = Def.ActorFrame { + InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y); + OnCommand=cmd(sleep,fSleepTime); +}; +--[[ for indx=1,iTilesX do + for indy=1,iTilesY do + t[#t+1] = Def.Quad { + InitCommand=cmd(zoom,fTileSize-2; + x,math.floor( scale(indx,1,iTilesX,(iTilesX/2)*fTileSize*-1,(iTilesX/2)*fTileSize*1) ); + y,math.floor( scale(indy,1,iTilesY,(iTilesY/2)*fTileSize*-1,(iTilesY/2)*fTileSize*1) ); + ); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;zoom,fTileSize*1.25;linear,0.0325 + ( indx / 60 );diffusealpha,1;zoom,fTileSize-2); + }; + end +end --]] +t[#t+1] = Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,0");sleep,0.0325 + fSleepTime;linear,0.15;diffusealpha,1); +}; +--[[ return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(Center;zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,color("0,0,0,1");linear,0.15;diffusealpha,0); + }; +}; --]] + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/Combo Numbers.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/Combo Numbers.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/Combo Numbers.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/Combo Numbers.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto Bold 54px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/Common Large.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/Common Large.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/Common Large.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/Common Large.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_open sans semibold 48px \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/MenuTimerContinue numbers.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/MenuTimerContinue numbers.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/MenuTimerContinue numbers.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/MenuTimerContinue numbers.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_roboto Bold 80px \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [alt] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [alt] 10x10.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [alt-stroke] 10x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [alt-stroke] 10x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,352 @@ +[common] +Baseline=54 +Top=20 +LineSpacing=65 +DrawExtraPixelsLeft=4 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[main] +Line 0= !"#$%&'()*+,-. +Line 1=/0123456789:;<= +Line 2=>?@ABCDEFGHIJKL +Line 3=MNOPQRSTUVWXYZ[ +Line 4=\]^_`abcdefghij +Line 5=klmnopqrstuvwxy +Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š +Line 7=‹ŒŽ‘’“”•–—˜™š›œ +Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬ +Line 9=­®¯°±²³´µ¶·¸¹º» +Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ +Line 11=ËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ +Line 12=ÚÛÜÝÞßàáâãäåæçè +Line 13=éêëìíîïðñòóôõö÷ +Line 14=øùúûüýþÿ + +0=12 +1=13 +2=21 +3=31 +4=27 +5=41 +6=36 +7=12 +8=15 +9=15 +10=26 +11=27 +12=13 +13=15 +14=13 +15=19 +16=27 +17=27 +18=27 +19=27 +20=27 +21=27 +22=27 +23=27 +24=27 +25=27 +26=13 +27=13 +28=27 +29=27 +30=27 +31=22 +32=43 +33=32 +34=32 +35=30 +36=35 +37=27 +38=26 +39=35 +40=36 +41=15 +42=14 +43=31 +44=26 +45=44 +46=38 +47=38 +48=30 +49=38 +50=31 +51=26 +52=27 +53=36 +54=30 +55=45 +56=30 +57=28 +58=28 +59=16 +60=19 +61=16 +62=26 +63=21 +64=28 +65=28 +66=30 +67=24 +68=30 +69=28 +70=17 +71=27 +72=30 +73=13 +74=13 +75=27 +76=13 +77=46 +78=30 +79=29 +80=30 +81=30 +82=21 +83=23 +84=19 +85=30 +86=26 +87=39 +88=26 +89=26 +90=23 +91=19 +92=26 +93=18 +94=27 +95=28 +96=13 +97=28 +98=22 +99=39 +100=24 +101=25 +102=29 +103=60 +104=26 +105=16 +106=46 +107=28 +108=9 +109=9 +110=19 +111=19 +112=18 +113=24 +114=48 +115=29 +116=37 +117=23 +118=16 +119=46 +120=23 +121=28 +122=12 +123=13 +124=27 +125=27 +126=27 +127=27 +128=26 +129=24 +130=28 +131=40 +132=18 +133=27 +134=27 +135=15 +136=40 +137=24 +138=21 +139=27 +140=17 +141=17 +142=28 +143=31 +144=31 +145=13 +146=10 +147=17 +148=18 +149=27 +150=40 +151=40 +152=40 +153=22 +154=32 +155=32 +156=32 +157=32 +158=32 +159=32 +160=44 +161=30 +162=27 +163=27 +164=27 +165=27 +166=15 +167=15 +168=15 +169=15 +170=35 +171=38 +172=38 +173=38 +174=38 +175=38 +176=38 +177=27 +178=38 +179=36 +180=36 +181=36 +182=36 +183=28 +184=30 +185=32 +186=28 +187=28 +188=28 +189=28 +190=28 +191=28 +192=43 +193=24 +194=28 +195=28 +196=28 +197=28 +198=13 +199=13 +200=13 +201=13 +202=29 +203=30 +204=29 +205=29 +206=29 +207=29 +208=29 +209=27 +210=29 +211=30 +212=30 +213=30 +214=30 +215=26 +216=30 +217=26 + +[alt] +Line 0= Ą˘Ł¤ĽŚ§¨Š +Line 1=ŞŤŹ­ŽŻ°ą˛ł +Line 2=´ľśˇ¸šşťź˝ +Line 3=žżŔÁÂĂÄĹĆÇ +Line 4=ČÉĘËĚÍÎĎĐŃ +Line 5=ŇÓÔŐÖ×ŘŮÚŰ +Line 6=ÜÝŢßŕáâăäĺ +Line 7=ćçčéęëěíîď +Line 8=đńňóôőö÷řů +Line 9=úűüýţ˙ + +0=12 +1=32 +2=29 +3=26 +4=27 +5=26 +6=26 +7=24 +8=28 +9=26 +10=26 +11=27 +12=28 +13=15 +14=28 +15=28 +16=21 +17=28 +18=10 +19=14 +20=28 +21=13 +22=23 +23=29 +24=10 +25=23 +26=23 +27=19 +28=23 +29=28 +30=23 +31=23 +32=31 +33=32 +34=32 +35=32 +36=32 +37=26 +38=30 +39=30 +40=30 +41=27 +42=27 +43=27 +44=27 +45=15 +46=15 +47=35 +48=35 +49=38 +50=38 +51=38 +52=38 +53=38 +54=38 +55=27 +56=31 +57=36 +58=36 +59=36 +60=36 +61=28 +62=27 +63=32 +64=21 +65=28 +66=28 +67=28 +68=28 +69=13 +70=24 +71=24 +72=24 +73=28 +74=28 +75=28 +76=28 +77=13 +78=13 +79=30 +80=30 +81=30 +82=30 +83=29 +84=29 +85=29 +86=29 +87=27 +88=21 +89=30 +90=30 +91=30 +92=30 +93=26 +94=19 +95=13 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [main] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [main] 15x15.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [main-stroke] 15x15.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_open sans semibold 48px [main-stroke] 15x15.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 54px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 54px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 54px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 54px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,35 @@ +[common] +Baseline=54 +Top=14 +LineSpacing=66 +DrawExtraPixelsLeft=3 +DrawExtraPixelsRight=3 +AdvanceExtraPixels=0 + +[numbers] +Line 0=0123 +Line 1=4567 +Line 2=89%. +Line 3= :x, +Line 4=-+ab + +0=31 +1=31 +2=31 +3=31 +4=31 +5=31 +6=31 +7=31 +8=31 +9=31 +10=40 +11=16 +12=13 +13=15 +14=28 +15=15 +16=23 +17=23 +18=0 +19=0 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 54px [numbers] 4x5 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 54px [numbers] 4x5 (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 54px [numbers-stroke] 4x5 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 54px [numbers-stroke] 4x5 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 80px.ini" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 80px.ini" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 80px.ini" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 80px.ini" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,30 @@ +[common] +Baseline=66 +Top=28 +LineSpacing=106 +DrawExtraPixelsLeft=0 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[numbers] +Line 0=0123 +Line 1=4567 +Line 2=89%. +Line 3= :x, + +0=46 +1=46 +2=46 +3=46 +4=46 +5=46 +6=46 +7=46 +8=46 +9=46 +10=59 +11=23 +12=20 +13=23 +14=41 +15=21 Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 80px [numbers] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 80px [numbers] 4x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay header.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay header.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay header.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay header.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay line.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay line.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay line.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay line.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay page.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay page.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay page.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenDebugOverlay page.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenGameplay SongTitle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenGameplay SongTitle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenGameplay SongTitle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenGameplay SongTitle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Common Normal \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenGameplay survive time.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenGameplay survive time.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Fonts/ScreenGameplay survive time.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Fonts/ScreenGameplay survive time.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +Combo Numbers \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Banner all music.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Banner all music.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Banner mode.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Banner mode.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Banner random.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Banner random.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Banner roulette.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Banner roulette.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CDTitle Con.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CDTitle Con.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_combined life frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_combined life frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug frame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug frame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug frame.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug frame.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadActor(THEME:GetPathG("_combined","life frame"))..{ + InitCommand=cmd(diffuse,PlayerColor(PLAYER_1);diffuserightedge,PlayerColor(PLAYER_2)); +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_CombinedLifeMeterTug separator.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_CombinedLifeMeterTug separator.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug separator.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug separator.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug separator.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug separator.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_CombinedLifeMeterTug separator \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug stream p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug stream p1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug stream p2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug stream p2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CombinedLifeMeterTug tip p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 1000milestone/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 1000milestone/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 1000milestone/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 1000milestone/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,12 @@ +return Def.ActorFrame { + FOV=90; +--[[ LoadActor("shot") .. { + InitCommand=cmd(diffusealpha,0;zoom,2;blend,'BlendMode_Add'); + MilestoneCommand=cmd(diffusealpha,0.75;rotationz,0;accelerate,2.5;diffusealpha,0;rotationz,360;zoom,2.5); + }; --]] +--[[ LoadActor("shot") .. { + InitCommand=cmd(diffusealpha,0;zoom,2;zoomx,-2;blend,'BlendMode_Add'); + MilestoneCommand=cmd(diffusealpha,0.75;rotationz,-360;x,0;linear,2.5;diffusealpha,0;rotationz,0;zoom,2.5); + }; --]] + LoadActor(THEME:GetPathG("Combo","100Milestone")); +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 1000milestone/shot.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 1000milestone/shot.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 100milestone/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 100milestone/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 100milestone/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 100milestone/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,11 @@ +local ShowFlashyCombo = ThemePrefs.Get("FlashyCombo") +return Def.ActorFrame { + LoadActor("explosion") .. { + InitCommand=cmd(diffusealpha,0;blend,'BlendMode_Add';hide_if,not ShowFlashyCombo); + MilestoneCommand=cmd(rotationz,0;zoom,2;diffusealpha,0.5;linear,0.5;rotationz,90;zoom,1.75;diffusealpha,0); + }; + LoadActor("explosion") .. { + InitCommand=cmd(diffusealpha,0;blend,'BlendMode_Add';hide_if,not ShowFlashyCombo); + MilestoneCommand=cmd(rotationz,0;zoom,2;diffusealpha,0.5;linear,0.5;rotationz,-90;zoom,2.5;diffusealpha,0); + }; +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Combo 100milestone/explosion.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Combo 100milestone/explosion.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ComboGraph Backing (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ComboGraph Backing (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ComboGraph ComboNumber.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ComboGraph ComboNumber.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ComboGraph ComboNumber.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ComboGraph ComboNumber.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadFont("Common Bold") .. { + InitCommand=cmd(zoom,12/54;y,-1;shadowlength,1;strokecolor,Color.Outline); +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ComboGraph MaxCombo (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ComboGraph MaxCombo (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ComboGraph NormalCombo (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ComboGraph NormalCombo (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Common fallback background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Common fallback background.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Common fallback banner.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Common fallback banner.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Common splash.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Common splash.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Common window icon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Common window icon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/CourseEntryDisplay bar.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/CourseEntryDisplay bar.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/DualScrollBar thumb p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/DualScrollBar thumb p1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/DualScrollBar thumb p2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/DualScrollBar thumb p2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/EditMenu Left 1x8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/EditMenu Left 1x8.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/EditMenu Right.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/EditMenu Right.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/EditMenu Right.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/EditMenu Right.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +local t = Def.ActorFrame{ + LoadActor("EditMenu Left")..{ + BeginCommand=cmd(zoomx,-1); + }; +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Failed.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Failed.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier01.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier01.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier02.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier02.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier03.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier03.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier04.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier04.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier05.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier05.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier06.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier06.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier07.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GradeDisplayEval Tier07.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay backing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay backing.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay barely.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay barely.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay barely.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay barely.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay body.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay body.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_GraphDisplay overlay.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_GraphDisplay overlay.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay SongBoundary.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay SongBoundary.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/GraphDisplay SongBoundary.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/GraphDisplay SongBoundary.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/HoldJudgment label 1x2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/HoldJudgment label 1x2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_howto find.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_howto find.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_howto install.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_howto install.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_icon Health.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_icon Health.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_icon Sort.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_icon Sort.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_icon Timing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_icon Timing.png differ diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/default.lua stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/default.lua --- stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/default.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/default.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,19 @@ +local jl = Var "JudgmentLine"; + +return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(horizalign,right;zoomto,256,18); + OnCommand=cmd(diffuse,Color("Black");fadeleft,1); + }; + Def.Quad { + InitCommand=cmd(horizalign,left;zoomto,256,18); + OnCommand=cmd(diffuse,Color("Black");faderight,1); + }; + + LoadActor("_frame") .. { + InitCommand=cmd(diffuse,JudgmentLineToColor(jl)); + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(zoom,0.675;settext,string.upper(JudgmentLineToLocalizedString(jl));diffuse,JudgmentLineToColor(jl);shadowlength,1;maxwidth,180); + }; +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/_frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_JudgmentLineLabel/_frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Judgment Normal 1x6.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Judgment Normal 1x6.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBar danger.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBar danger.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBar danger.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBar danger.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBar over.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBar over.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBar under.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBar under.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBattery frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBattery frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,43 @@ +local player = Var "Player" +local blinkTime = 1.2 +local barWidth = 256; +local barHeight = 32; +local c; +local LifeMeter, MaxLives, CurLives; +local LifeRatio; + +local t = Def.ActorFrame { + LoadActor("_lives")..{ + InitCommand=cmd(pause;horizalign,left;x,-(barWidth/2)); + BeginCommand=function(self,param) + local screen = SCREENMAN:GetTopScreen(); + local glifemeter = screen:GetLifeMeter(player); + self:setstate(clamp(glifemeter:GetTotalLives()-1,0,9)); + + if glifemeter:GetTotalLives() <= 4 then + self:zoomx(barWidth/(4*64)); + else + self:zoomx(barWidth/((glifemeter:GetTotalLives())*64)); + end + self:cropright((640-(((glifemeter:GetTotalLives())*64)))/640); + end; + LifeChangedMessageCommand=function(self,param) + if param.Player == player then + if param.LivesLeft == 0 then + self:visible(false) + else + self:setstate( clamp(param.LivesLeft-1,0,9) ) + self:visible(true) + end + end + end; + StartCommand=function(self,param) + if param.Player == player then + self:setstate( clamp(param.LivesLeft-1,0,9) ); + end + end; + FinishCommand=cmd(playcommand,"Start"); + }; +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/_lives 1x10.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterBattery lives/_lives 1x10.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime background.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime background.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime background.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime background.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +LifeMeterBar under \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +LifeMeterBar over \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime over.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime over.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/LifeMeterTime over.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/LifeMeterTime over.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +LifeMeterBar over \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheel highlight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheel highlight.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Course ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Course ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Course NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Course NormalPart (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem grades/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem grades/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem grades/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem grades/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,73 @@ +-- This actor is duplicated. Upvalues will not be duplicated. + +local grades = { + Grade_Tier01 = 0; + Grade_Tier02 = 1; + Grade_Tier03 = 2; + Grade_Tier04 = 3; + Grade_Tier05 = 4; + Grade_Tier06 = 5; + Grade_Tier07 = 6; + Grade_Failed = 7; + Grade_None = 8; +}; + +--[[ local t = LoadActor( "grades" ) .. { + InitCommand=cmd(pause); + SetGradeCommand=function(self, params) + local state = grades[params.Grade] or grades.Grade_None; + state = state*2; + + if params.PlayerNumber == PLAYER_2 then + state = state+1; + end + + self:setstate(state); + end; +}; --]] +local t = LoadFont("Common Normal") .. { + InitCommand=cmd(zoom,0.75;shadowlength,1;strokecolor,Color("Black")); + ShowCommand=cmd(stoptweening;bounceend,0.15;zoomy,0.75); + HideCommand=cmd(stoptweening;bouncebegin,0.15;zoomy,0); + SetGradeCommand=function(self,params) + local pnPlayer = params.PlayerNumber; + local sGrade = params.Grade or 'Grade_None'; + local gradeString = THEME:GetString("Grade",string.sub(sGrade,7)); + + self:settext(gradeString); + self:diffuse(PlayerColor(pnPlayer)); + self:diffusetopedge(BoostColor(PlayerColor(pnPlayer),1.5)); + self:strokecolor(BoostColor(PlayerColor(pnPlayer),0.25)); + +--[[ if sGrade == "Grade_NoTier" then + self:playcommand("Hide"); + else + self:playcommand("Show"); + end; --]] + end; +}; + +return t; + +-- (c) 2007 Glenn Maynard +-- All rights reserved. +-- +-- Permission is hereby granted, free of charge, to any person obtaining a +-- copy of this software and associated documentation files (the +-- "Software"), to deal in the Software without restriction, including +-- without limitation the rights to use, copy, modify, merge, publish, +-- distribute, and/or sell copies of the Software, and to permit persons to +-- whom the Software is furnished to do so, provided that the above +-- copyright notice(s) and this permission notice appear in all copies of +-- the Software and that both the above copyright notice(s) and this +-- permission notice appear in supporting documentation. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +-- THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS +-- INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT +-- OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +-- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +-- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +-- PERFORMANCE OF THIS SOFTWARE. Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Mode ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Mode ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Mode NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Mode NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette ColorPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette NormalPart.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette NormalPart.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette NormalPart.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette NormalPart.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathG("MusicWheelItem","Course NormalPart")) .. { + InitCommand=cmd(glow,color('1,1,1,0.25')); + }; + LoadActor(THEME:GetPathG("MusicWheelItem","Course NormalPart")) .. { + InitCommand=cmd(blend,Blend.Add;rainbow;diffusealpha,0.325); + }; +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_MusicWheelItem Roulette NormalPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_MusicWheelItem Roulette NormalPart.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette OverPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette OverPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette OverPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Roulette OverPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem Song ColorPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionCollapsed ColorPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionCollapsed NormalPart (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded ColorPart (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem SectionExpanded NormalPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem SectionCollapsed NormalPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Song ColorPart.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Song ColorPart.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Song NormalPart (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Song NormalPart (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort ColorPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem Mode ColorPart \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/MusicWheelItem Sort NormalPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem Mode NormalPart \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/NoteField bars 1x4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/NoteField bars 1x4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/NoteField board/board.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/NoteField board/board.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/NoteField board/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/NoteField board/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/NoteField board/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/NoteField board/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,26 @@ +local filter_color= color("0.135,0.135,0.135,1") + +local args= { + Def.Quad{ + InitCommand= function(self) + self:hibernate(math.huge):diffuse(filter_color) + end, + PlayerStateSetCommand= function(self, param) + local pn= param.PlayerNumber + local style= GAMESTATE:GetCurrentStyle(pn) + local alf= getenv("ScreenFilter"..ToEnumShortString(pn)) or 0 + local width= style:GetWidth(pn) + 8 + self:setsize(width, _screen.h*4096):diffusealpha(alf):hibernate(0) + end, + } +} + +if GAMESTATE:GetCurrentGame():GetName() == "kb7" then + args[#args+1]= Def.Sprite{ + Texture= "board.png", InitCommand= function(self) + self:y(_screen.cy):zoomy(_screen.h) + end, + } +end + +return Def.ActorFrame(args) Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionRowExit frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionRowExit frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionRow frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionRow frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionRow frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionRow frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoLeft.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoLeft.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoLeft.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoLeft.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoRight.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoRight.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoRight.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 CanGoRight.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Left (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Middle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP1 Right (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoLeft.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoLeft.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoLeft.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoLeft.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursorP1 CanGoLeft \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoRight.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoRight.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoRight.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 CanGoRight.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursorP1 CanGoRight \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Left.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Left.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Left.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Left.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursorP1 Left \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Middle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Middle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursorP1 Middle \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Right.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Right.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Right.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsCursorP2 Right.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsCursorP1 Right \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Left (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Left (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Middle (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Middle (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Right (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP1 Right (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Left.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Left.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Left.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Left.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsUnderlineP1 Left \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Middle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Middle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsUnderlineP1 Middle \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Right.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Right.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Right.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/OptionsUnderlineP2 Right.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +OptionsUnderlineP1 Right \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/PaneDisplay text.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/PaneDisplay text.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/PaneDisplay text.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/PaneDisplay text.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,136 @@ +local iPN = ...; +assert(iPN,"[Graphics/PaneDisplay text.lua] No PlayerNumber Provided."); + +local t = Def.ActorFrame {}; +local function GetRadarData( pnPlayer, rcRadarCategory ) + local tRadarValues; + local StepsOrTrail; + local fDesiredValue = 0; + if GAMESTATE:GetCurrentSteps( pnPlayer ) then + StepsOrTrail = GAMESTATE:GetCurrentSteps( pnPlayer ); + fDesiredValue = StepsOrTrail:GetRadarValues( pnPlayer ):GetValue( rcRadarCategory ); + elseif GAMESTATE:GetCurrentTrail( pnPlayer ) then + StepsOrTrail = GAMESTATE:GetCurrentTrail( pnPlayer ); + fDesiredValue = StepsOrTrail:GetRadarValues( pnPlayer ):GetValue( rcRadarCategory ); + else + StepsOrTrail = nil; + end; + return fDesiredValue; +end; + +local function CreatePaneDisplayItem( _pnPlayer, _sLabel, _rcRadarCategory ) + return Def.ActorFrame { + LoadFont("Common SemiBold") .. { + Text=string.upper( THEME:GetString("PaneDisplay",_sLabel) ); + InitCommand=cmd(horizalign,left); + OnCommand=cmd(zoom,0.5875;diffuse,color("0.9,0.9,0.9");shadowlength,1); + }; + LoadFont("Common Normal") .. { + Text=string.format("%04i", 0); + InitCommand=cmd(x,96;horizalign,right); + OnCommand=cmd(zoom,0.5875;shadowlength,1); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + local course = GAMESTATE:GetCurrentCourse() + if not song and not course then + self:settextf("%04i", 0); + else + self:settextf("%04i", GetRadarData( _pnPlayer, _rcRadarCategory ) ); + end + end; + }; + }; +end; + +local function CreatePaneDisplayGraph( _pnPlayer, _sLabel, _rcRadarCategory ) + return Def.ActorFrame { + LoadFont("Common Normal") .. { + Text=_sLabel; + InitCommand=cmd(horizalign,left); + OnCommand=cmd(zoom,0.5;shadowlength,1); + }; + Def.Quad { + InitCommand=cmd(x,12;zoomto,50,10;horizalign,left); + OnCommand=cmd(diffuse,Color("Black");shadowlength,1;diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(x,12;zoomto,50,10;horizalign,left); + OnCommand=cmd(shadowlength,0;diffuse,Color("Green");diffusebottomedge,ColorLightTone(Color("Green"))); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + local course = GAMESTATE:GetCurrentCourse() + if not song and not course then + self:stoptweening(); + self:decelerate(0.2); + self:zoomtowidth(0); + else + self:stoptweening(); + self:decelerate(0.2); + self:zoomtowidth( clamp(GetRadarData( _pnPlayer, _rcRadarCategory ) * 50,0,50) ); + end + end; + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(x,14;zoom,0.5;halign,0;); + OnCommand=cmd(shadowlength,1;strokecolor,color("0.15,0.15,0.15,0.625")); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local song = GAMESTATE:GetCurrentSong() + local course = GAMESTATE:GetCurrentCourse() + if not song and not course then + self:settext("") + else + self:settextf("%i%%", GetRadarData( _pnPlayer, _rcRadarCategory ) * 100 ); + end + end; + }; + }; +end; + +--[[ Numbers ]] +t[#t+1] = Def.ActorFrame { + -- Left + CreatePaneDisplayItem( iPN, "Taps", 'RadarCategory_TapsAndHolds' ) .. { + InitCommand=cmd(x,-128+16+8;y,-14); + }; + CreatePaneDisplayItem( iPN, "Jumps", 'RadarCategory_Jumps' ) .. { + InitCommand=cmd(x,-128+16+8;y,-14+16); + }; + CreatePaneDisplayItem( iPN, "Holds", 'RadarCategory_Holds' ) .. { + InitCommand=cmd(x,-128+16+8;y,-14+16*2); + }; + CreatePaneDisplayItem( iPN, "Mines", 'RadarCategory_Mines' ) .. { + InitCommand=cmd(x,-128+16+8;y,-14+16*3); + }; + -- Center + CreatePaneDisplayItem( iPN, "Hands", 'RadarCategory_Hands' ) .. { + InitCommand=cmd(x,8;y,-14); + }; + CreatePaneDisplayItem( iPN, "Rolls", 'RadarCategory_Rolls' ) .. { + InitCommand=cmd(x,8;y,-14+16); + }; + CreatePaneDisplayItem( iPN, "Lifts", 'RadarCategory_Lifts' ) .. { + InitCommand=cmd(x,8;y,-14+16*2); + }; + CreatePaneDisplayItem( iPN, "Fakes", 'RadarCategory_Fakes' ) .. { + InitCommand=cmd(x,8;y,-14+16*3); + }; +}; +return t; \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Graphics/pause_menu.lua stepmania-5.1.0+dfsg/Themes/legacy/Graphics/pause_menu.lua --- stepmania-5.0.12+dfsg/Themes/legacy/Graphics/pause_menu.lua 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Graphics/pause_menu.lua 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,238 @@ +course_stopped_by_pause_menu= false + +local prompt_text= { + Start= THEME:GetString("ScreenGameplay", "GiveUpStartText"), + Select= THEME:GetString("ScreenGameplay", "GiveUpSelectText"), + Back= THEME:GetString("ScreenGameplay", "GiveUpBackText"), +} +local prompt_actor= false + +local screen_gameplay= false +local menu_items= {[PLAYER_1]= {}, [PLAYER_2]= {}} +local menu_frames= {} +local menu_choices= { + "continue_playing", + "restart_song", + "forfeit_song", +} +if GAMESTATE:IsCourseMode() then + menu_choices= { + "continue_playing", + "skip_song", + "forfeit_course", + "end_course", + } +end +local menu_spacing= 32 +local menu_bg_width= _screen.w * .4 +local menu_text_width= _screen.w * .35 +local menu_x= {[PLAYER_1]= _screen.w*.25, [PLAYER_2]= _screen.w*.75} +local menu_y= _screen.cy - (#menu_choices * .5 * menu_spacing) +local current_menu_choice= {} +local menu_is_showing= {} +local enabled_players= {} + +local function create_menu_item(pn, x, y, item_name) + return Def.BitmapText{ + Font= "Common Normal", Text= THEME:GetString("PauseMenu", item_name), + InitCommand= function(self) + self:xy(x, y) + table.insert(menu_items[pn], self) + self:playcommand("LoseFocus") + end, + LoseFocusCommand= function(self) + self:stopeffect():rotationz(0) + end, + GainFocusCommand= function(self) + self:wag():effectperiod(2):effectmagnitude(0, 0, 5) + end, + } +end + +local function create_menu_frame(pn, x, y) + local frame= Def.ActorFrame{ + InitCommand= function(self) + self:xy(x, y):playcommand("Hide") + menu_frames[pn]= self + end, + ShowCommand= function(self) + self:visible(true) + end, + HideCommand= function(self) + self:visible(false) + end, + Def.Quad{ + InitCommand= function(self) + self:setsize(menu_bg_width, menu_spacing * (#menu_choices + 1)) + :y(-menu_spacing):vertalign(top) + :diffuse{0, 0, 0, .25} + :playcommand("Hide") + end, + }, + } + for i, choice in ipairs(menu_choices) do + frame[#frame+1]= create_menu_item(pn, 0, (i-1)*menu_spacing, choice) + end + return frame +end + +local function backout(screen) + screen_gameplay:SetPrevScreenName(screen):begin_backing_out() +end + +local function show_menu(pn) + menu_frames[pn]:playcommand("Show") + for i, item in ipairs(menu_items[pn]) do + item:playcommand("LoseFocus") + end + current_menu_choice[pn]= 1 + menu_items[pn][current_menu_choice[pn]]:playcommand("GainFocus") + menu_is_showing[pn]= true +end + +local function close_menu(pn) + menu_frames[pn]:playcommand("Hide") + menu_is_showing[pn]= false + local stay_paused= false + for pn, showing in pairs(menu_is_showing) do + if showing then + stay_paused= true + end + end + if not stay_paused then + local fg= screen_gameplay:GetChild("SongForeground") + if fg then fg:visible(old_fg_visible) end + screen_gameplay:PauseGame(false) + end +end + +local choice_actions= { + continue_playing= function(pn) + close_menu(pn) + end, + restart_song= function(pn) + backout("ScreenStageInformation") + end, + forfeit_song= function(pn) + backout(SelectMusicOrCourse()) + end, + skip_song= function(pn) + screen_gameplay:PostScreenMessage("SM_NotesEnded", 0) + end, + forfeit_course= function(pn) + backout(SelectMusicOrCourse()) + end, + end_course= function(pn) + course_stopped_by_pause_menu= true + screen_gameplay:PostScreenMessage("SM_NotesEnded", 0) + end, +} + +local menu_actions= { + Start= function(pn) + local choice_name= menu_choices[current_menu_choice[pn]] + if choice_actions[choice_name] then + choice_actions[choice_name](pn) + end + end, + Left= function(pn) + if current_menu_choice[pn] > 1 then + menu_items[pn][current_menu_choice[pn]]:playcommand("LoseFocus") + current_menu_choice[pn]= current_menu_choice[pn] - 1 + menu_items[pn][current_menu_choice[pn]]:playcommand("GainFocus") + end + end, + Right= function(pn) + if current_menu_choice[pn] < #menu_choices then + menu_items[pn][current_menu_choice[pn]]:playcommand("LoseFocus") + current_menu_choice[pn]= current_menu_choice[pn] + 1 + menu_items[pn][current_menu_choice[pn]]:playcommand("GainFocus") + end + end, +} +menu_actions.Up= menu_actions.Left +menu_actions.Down= menu_actions.Right +menu_actions.MenuLeft= menu_actions.Left +menu_actions.MenuRight= menu_actions.Right +menu_actions.MenuUp= menu_actions.Up +menu_actions.MenuDown= menu_actions.Down + +local function pause_and_show(pn) + gameplay_pause_count= gameplay_pause_count + 1 + screen_gameplay:PauseGame(true) + local fg= screen_gameplay:GetChild("SongForeground") + if fg then + old_fg_visible= fg:GetVisible() + fg:visible(false) + end + prompt_actor:playcommand("Hide") + show_menu(pn) +end + +local function show_prompt(button) + prompt_actor:playcommand("Show", {text= prompt_text[button]}) +end + +local function hide_prompt() + prompt_actor:playcommand("Hide") +end + +local function input(event) + local pn= event.PlayerNumber + if not enabled_players[pn] then return end + local button= event.GameButton + if not button then return end + if event.type == "InputEventType_Release" then return end + local is_paused= screen_gameplay:IsPaused() + if is_paused then + if menu_is_showing[pn] then + if menu_actions[button] then + menu_actions[button](pn) + return + end + else + if button == "Start" then + show_menu(pn) + return + end + end + end +end + +local frame= Def.ActorFrame{ + OnCommand= function(self) + screen_gameplay= SCREENMAN:GetTopScreen() + if screen_gameplay:GetName() == "ScreenGameplaySyncMachine" then return end + screen_gameplay:AddInputCallback(input) + end, + PlayerHitPauseMessageCommand= function(self, params) + pause_and_show(params.pn) + end, + ShowPausePromptMessageCommand= function(self, params) + show_prompt(params.button) + end, + HidePausePromptMessageCommand= function(self) + hide_prompt() + end, + pause_controller_actor(), + Def.BitmapText{ + Font= "Common Normal", InitCommand= function(self) + prompt_actor= self + self:xy(_screen.cx, _screen.h*.75):zoom(.75):diffusealpha(0) + end, + ShowCommand= function(self, param) + self:stoptweening():settext(param.text):accelerate(.25):diffusealpha(1) + :sleep(1):queuecommand("Hide") + end, + HideCommand= function(self) + self:stoptweening():decelerate(.25):diffusealpha(0) + end, + }, +} + +for i, pn in ipairs(GAMESTATE:GetEnabledPlayers()) do + enabled_players[pn]= true + frame[#frame+1]= create_menu_frame(pn, menu_x[pn], menu_y) +end + +return frame Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player Badge FullCombo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player Badge FullCombo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player combo/_combo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player combo/_combo.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player combo/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player combo/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player combo/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player combo/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,158 @@ +local c; +local cf; +local canAnimate = false; +local player = Var "Player"; +local ShowComboAt = THEME:GetMetric("Combo", "ShowComboAt"); +local Pulse = THEME:GetMetric("Combo", "PulseCommand"); +local PulseLabel = THEME:GetMetric("Combo", "PulseLabelCommand"); + +local NumberMinZoom = THEME:GetMetric("Combo", "NumberMinZoom"); +local NumberMaxZoom = THEME:GetMetric("Combo", "NumberMaxZoom"); +local NumberMaxZoomAt = THEME:GetMetric("Combo", "NumberMaxZoomAt"); + +local LabelMinZoom = THEME:GetMetric("Combo", "LabelMinZoom"); +local LabelMaxZoom = THEME:GetMetric("Combo", "LabelMaxZoom"); + +local ShowFlashyCombo = ThemePrefs.Get("FlashyCombo") + +local t = Def.ActorFrame { + InitCommand=cmd(vertalign,bottom); + -- flashy combo elements: + LoadActor(THEME:GetPathG("Combo","100Milestone")) .. { + Name="OneHundredMilestone"; + InitCommand=cmd(visible,ShowFlashyCombo); + FiftyMilestoneCommand=cmd(playcommand,"Milestone"); + }; + LoadActor(THEME:GetPathG("Combo","1000Milestone")) .. { + Name="OneThousandMilestone"; + InitCommand=cmd(visible,ShowFlashyCombo); + ToastyAchievedMessageCommand=cmd(playcommand,"Milestone"); + }; + -- normal combo elements: + Def.ActorFrame { + Name="ComboFrame"; + LoadFont( "Combo", "numbers" ) .. { + Name="Number"; + OnCommand = THEME:GetMetric("Combo", "NumberOnCommand"); + }; + LoadActor("_combo")..{ + Name="ComboLabel"; + OnCommand = THEME:GetMetric("Combo", "ComboLabelOnCommand"); + }; + LoadActor("_misses")..{ + Name="MissLabel"; + OnCommand = THEME:GetMetric("Combo", "MissLabelOnCommand"); + }; + }; + InitCommand = function(self) + c = self:GetChildren(); + cf = c.ComboFrame:GetChildren(); + cf.Number:visible(false); + cf.ComboLabel:visible(false) + cf.MissLabel:visible(false) + end; + -- Milestones: + -- 25,50,100,250,600 Multiples; +--[[ if (iCombo % 100) == 0 then + c.OneHundredMilestone:playcommand("Milestone"); + elseif (iCombo % 250) == 0 then + -- It should really be 1000 but thats slightly unattainable, since + -- combo doesnt save over now. + c.OneThousandMilestone:playcommand("Milestone"); + else + return + end; --]] + TwentyFiveMilestoneCommand=function(self,parent) + if ShowFlashyCombo then + (cmd(finishtweening;addy,-4;bounceend,0.125;addy,4))(self); + end; + end; + --]] + --[[ + ToastyAchievedMessageCommand=function(self,params) + if params.PlayerNumber == player then + (cmd(thump,2;effectclock,'beat'))(c.ComboFrame); + end; + end; + ToastyDroppedMessageCommand=function(self,params) + if params.PlayerNumber == player then + (cmd(stopeffect))(c.ComboFrame); + end; + end; --]] + ComboCommand=function(self, param) + local iCombo = param.Misses or param.Combo; + if not iCombo or iCombo < ShowComboAt then + cf.Number:visible(false); + cf.ComboLabel:visible(false) + cf.MissLabel:visible(false) + return; + end + + cf.ComboLabel:visible(false) + cf.MissLabel:visible(false) + + param.Zoom = scale( iCombo, 0, NumberMaxZoomAt, NumberMinZoom, NumberMaxZoom ); + param.Zoom = clamp( param.Zoom, NumberMinZoom, NumberMaxZoom ); + + param.LabelZoom = scale( iCombo, 0, NumberMaxZoomAt, LabelMinZoom, LabelMaxZoom ); + param.LabelZoom = clamp( param.LabelZoom, LabelMinZoom, LabelMaxZoom ); + + if param.Combo then + cf.ComboLabel:visible(true) + cf.MissLabel:visible(false) + else + cf.ComboLabel:visible(false) + cf.MissLabel:visible(true) + end + + cf.Number:visible(true); + cf.Number:settext( string.format("%i", iCombo) ); + cf.Number:textglowmode("TextGlowMode_Stroke"); + -- FullCombo Rewards + if param.FullComboW1 then + cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W1"] ); + cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W1"] ); + cf.Number:textglowmode("TextGlowMode_Stroke"); + cf.Number:glowshift(); + elseif param.FullComboW2 then + cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W2"] ); + cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W2"] ); + cf.Number:textglowmode("TextGlowMode_Stroke"); + cf.Number:glowshift(); + elseif param.FullComboW3 then + cf.Number:diffuse( GameColor.Judgment["JudgmentLine_W3"] ); + cf.Number:strokecolor( GameColor.Judgment["JudgmentLine_W3"] ); + cf.Number:textglowmode("TextGlowMode_Stroke"); + cf.Number:glowshift(); + elseif param.Combo then + -- Player 1's color is Red, which conflicts with the miss combo. + -- instead, just diffuse to white for now. -aj + --c.Number:diffuse(PlayerColor(player)); + cf.Number:diffuse(Color("White")); + cf.Number:strokecolor(Color("Stealth")); + cf.Number:stopeffect(); + else + cf.Number:diffuse(color("#ff0000")); + cf.Number:stopeffect(); + end + -- Pulse + Pulse( cf.Number, param ); + if param.Combo then + PulseLabel( cf.ComboLabel, param ); + else + PulseLabel( cf.MissLabel, param ); + end + -- Milestone Logic + end; +--[[ ScoreChangedMessageCommand=function(self,param) + local iToastyCombo = param.ToastyCombo; + if iToastyCombo and (iToastyCombo > 0) then +-- (cmd(thump;effectmagnitude,1,1.2,1;effectclock,'beat'))(c.Number) +-- (cmd(thump;effectmagnitude,1,1.2,1;effectclock,'beat'))(c.Number) + else +-- c.Number:stopeffect(); + end; + end; --]] +}; + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player combo/_misses.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player combo/_misses.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player judgment/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player judgment/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player judgment/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player judgment/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,233 @@ +local c; +local player = Var "Player"; +local function ShowProtiming() + if GAMESTATE:IsDemonstration() then + return false + else + return GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(player)); + end +end; +local bShowProtiming = ShowProtiming(); +local ProtimingWidth = 240; +local function MakeAverage( t ) + local sum = 0; + for i=1,#t do + sum = sum + t[i]; + end + return sum / #t +end + +local tTotalJudgments = {}; + +local JudgeCmds = { + TapNoteScore_W1 = THEME:GetMetric( "Judgment", "JudgmentW1Command" ); + TapNoteScore_W2 = THEME:GetMetric( "Judgment", "JudgmentW2Command" ); + TapNoteScore_W3 = THEME:GetMetric( "Judgment", "JudgmentW3Command" ); + TapNoteScore_W4 = THEME:GetMetric( "Judgment", "JudgmentW4Command" ); + TapNoteScore_W5 = THEME:GetMetric( "Judgment", "JudgmentW5Command" ); + TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" ); +}; + +local ProtimingCmds = { + TapNoteScore_W1 = THEME:GetMetric( "Protiming", "ProtimingW1Command" ); + TapNoteScore_W2 = THEME:GetMetric( "Protiming", "ProtimingW2Command" ); + TapNoteScore_W3 = THEME:GetMetric( "Protiming", "ProtimingW3Command" ); + TapNoteScore_W4 = THEME:GetMetric( "Protiming", "ProtimingW4Command" ); + TapNoteScore_W5 = THEME:GetMetric( "Protiming", "ProtimingW5Command" ); + TapNoteScore_Miss = THEME:GetMetric( "Protiming", "ProtimingMissCommand" ); +}; + +local AverageCmds = { + Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" ); +}; +local TextCmds = { + Pulse = THEME:GetMetric( "Protiming", "TextPulseCommand" ); +}; + +local TNSFrames = { + TapNoteScore_W1 = 0; + TapNoteScore_W2 = 1; + TapNoteScore_W3 = 2; + TapNoteScore_W4 = 3; + TapNoteScore_W5 = 4; + TapNoteScore_Miss = 5; +}; +local t = Def.ActorFrame {}; +t[#t+1] = Def.ActorFrame { + LoadActor(THEME:GetPathG("Judgment","Normal")) .. { + Name="Judgment"; + InitCommand=cmd(pause;visible,false); + OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand"); + ResetCommand=cmd(finishtweening;stopeffect;visible,false); + }; + LoadFont("Combo Numbers") .. { + Name="ProtimingDisplay"; + Text=""; + InitCommand=cmd(visible,false); + OnCommand=THEME:GetMetric("Protiming","ProtimingOnCommand"); + ResetCommand=cmd(finishtweening;stopeffect;visible,false); + }; + LoadFont("Common Normal") .. { + Name="ProtimingAverage"; + Text=""; + InitCommand=cmd(visible,false); + OnCommand=THEME:GetMetric("Protiming","AverageOnCommand"); + ResetCommand=cmd(finishtweening;stopeffect;visible,false); + }; + LoadFont("Common Normal") .. { + Name="TextDisplay"; + Text=THEME:GetString("Protiming","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,ProtimingWidth,16); + ResetCommand=cmd(finishtweening;diffusealpha,0.8;visible,false); + OnCommand=cmd(diffuse,Color("Black");diffusetopedge,color("0.1,0.1,0.1,1");diffusealpha,0.8;shadowlength,2;); + }; + Def.Quad { + Name="ProtimingGraphWindowW3"; + InitCommand=cmd(visible,false;y,32;zoomto,ProtimingWidth-4,16-4); + ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false); + OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W3"];); + }; + Def.Quad { + Name="ProtimingGraphWindowW2"; + InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW2"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,ProtimingWidth-4),16-4); + ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false); + OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W2"];); + }; + Def.Quad { + Name="ProtimingGraphWindowW1"; + InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW1"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,ProtimingWidth-4),16-4); + ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false); + OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W1"];); + }; + Def.Quad { + Name="ProtimingGraphUnderlay"; + InitCommand=cmd(visible,false;y,32;zoomto,ProtimingWidth-4,16-4); + ResetCommand=cmd(finishtweening;diffusealpha,0.25;visible,false); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25); + }; + Def.Quad { + Name="ProtimingGraphFill"; + InitCommand=cmd(visible,false;y,32;zoomto,0,16-4;horizalign,left;); + ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false); + OnCommand=cmd(diffuse,Color("Red");); + }; + Def.Quad { + Name="ProtimingGraphAverage"; + InitCommand=cmd(visible,false;y,32;zoomto,2,7;); + ResetCommand=cmd(finishtweening;diffusealpha,0.85;visible,false); + OnCommand=cmd(diffuse,Color("Orange");diffusealpha,0.85); + }; + Def.Quad { + Name="ProtimingGraphCenter"; + InitCommand=cmd(visible,false;y,32;zoomto,2,16-4;); + ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false); + OnCommand=cmd(diffuse,Color("White");diffusealpha,1); + }; + InitCommand = function(self) + c = self:GetChildren(); + end; + + JudgmentMessageCommand=function(self, param) + -- Fix Player Combo animating when player successfully avoids a mine. + local msgParam = param; + MESSAGEMAN:Broadcast("TestJudgment",msgParam); + -- + if param.Player ~= player then return end; + if param.HoldNoteScore then return end; + + local iNumStates = c.Judgment:GetNumStates(); + local iFrame = TNSFrames[param.TapNoteScore]; + + if not iFrame then return end + if iNumStates == 12 then + iFrame = iFrame * 2; + if not param.Early then + iFrame = iFrame + 1; + end + end + + + local fTapNoteOffset = param.TapNoteOffset; + if param.HoldNoteScore then + fTapNoteOffset = 1; + else + fTapNoteOffset = param.TapNoteOffset; + end + + if param.TapNoteScore == 'TapNoteScore_Miss' then + fTapNoteOffset = 1; + bUseNegative = true; + else +-- fTapNoteOffset = fTapNoteOffset; + bUseNegative = false; + end; + + if fTapNoteOffset ~= 1 then + -- we're safe, you can push the values + tTotalJudgments[#tTotalJudgments+1] = math.abs(fTapNoteOffset); +--~ tTotalJudgments[#tTotalJudgments+1] = bUseNegative and fTapNoteOffset or math.abs( fTapNoteOffset ); + end + + self:playcommand("Reset"); + + c.Judgment:visible( not bShowProtiming ); + c.Judgment:setstate( iFrame ); + JudgeCmds[param.TapNoteScore](c.Judgment); + + c.ProtimingDisplay:visible( bShowProtiming ); + c.ProtimingDisplay:settextf("%i",fTapNoteOffset * 1000); + ProtimingCmds[param.TapNoteScore](c.ProtimingDisplay); + + c.ProtimingAverage:visible( bShowProtiming ); + 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 ); + c.ProtimingGraphWindowW2:visible( bShowProtiming ); + c.ProtimingGraphWindowW1:visible( bShowProtiming ); + c.ProtimingGraphFill:visible( bShowProtiming ); + c.ProtimingGraphFill:finishtweening(); + c.ProtimingGraphFill:decelerate(1/60); +-- c.ProtimingGraphFill:zoomtowidth( clamp(fTapNoteOffset * 188,-188/2,188/2) ); + c.ProtimingGraphFill:zoomtowidth( clamp( + scale( + fTapNoteOffset, + 0,PREFSMAN:GetPreference("TimingWindowSecondsW3"), + 0,(ProtimingWidth-4)/2), + -(ProtimingWidth-4)/2,(ProtimingWidth-4)/2) + ); + c.ProtimingGraphAverage:visible( bShowProtiming ); + c.ProtimingGraphAverage:zoomtowidth( clamp( + scale( + MakeAverage( tTotalJudgments ), + 0,PREFSMAN:GetPreference("TimingWindowSecondsW3"), + 0,ProtimingWidth-4), + 0,ProtimingWidth-4) + ); +-- c.ProtimingGraphAverage:zoomtowidth( clamp(MakeAverage( tTotalJudgments ) * 1880,0,188) ); + c.ProtimingGraphCenter:visible( bShowProtiming ); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphBG); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphUnderlay); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW3); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW2); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW1); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphFill); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphAverage); + (cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphCenter); + end; + +}; + + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player toasty/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player toasty/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/Player toasty/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/Player toasty/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,34 @@ +local Player = ... +assert(Player); +local HasToasty = false; +local fWidth = ( GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' ) and 600 or 256+16; +return Def.ActorFrame { + ToastyAchievedMessageCommand=function(self,params) + if params.PlayerNumber == Player then + (cmd(thump,1;effectclock,'beat';effectmagnitude,1,1,1; + effectcolor1,color("1,1.125,1,1");effectcolor2,color("1,1,1,1")))(self); + end + end; + Def.Quad { + InitCommand=cmd(zoomto,fWidth,SCREEN_HEIGHT;diffuse,PlayerColor(Player);diffusealpha,0;fadeleft,32/(256+16);faderight,32/(256+16)); + ToastyAchievedMessageCommand=function(self,params) + if params.PlayerNumber == Player then + (cmd(stoptweening;linear,2.125;diffuse,Color.Alpha( PlayerColor(Player), 0.345 );glow,color("1,1,1,0.5");decelerate,3;glow,Color.Alpha( ColorDarkTone( PlayerColor(Player) ), 0 );diffuseramp; + effectcolor1,ColorLightTone( PlayerColor(Player) );effectcolor2,PlayerColor(Player); + effectclock,'beat';effectperiod,2; + ))(self); + HasToasty = true; + end + end; + ToastyDroppedMessageCommand=function(self,params) + if params.PlayerNumber == Player then + if HasToasty then + (cmd(finishtweening;stopeffect;glow,color("1,1,1,0.5");decelerate,0.35;diffuse,Color.Alpha( Color("Black"), 0.25 );glow,color("1,1,1,0");linear,0.35*0.25;diffusealpha,0))(self); + HasToasty = false; + else + return + end + end + end; + }; +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_rave meter base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_rave meter base.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_rave result draw.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_rave result draw.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_rave result P1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_rave result P1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_rave result P2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_rave result P2.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/RoomWheelItem ColorPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/RoomWheelItem ColorPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/RoomWheelItem ColorPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/RoomWheelItem ColorPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem Song ColorPart \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/RoomWheelItem NormalPart.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/RoomWheelItem NormalPart.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/RoomWheelItem NormalPart.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/RoomWheelItem NormalPart.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +MusicWheelItem Song NormalPart \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayLifeTime frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayLifeTime frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayLifeTime frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayLifeTime frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScoreDisplayNormal frame \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayNormal frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayNormal frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayNormal frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayNormal frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_rave meter base \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave frame base p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_rave meter base \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScoreDisplayRave stream level3.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenDemonstration StageDisplay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenDemonstration StageDisplay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenDemonstration StageDisplay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenDemonstration StageDisplay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation BannerFrame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation BannerFrame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation BannerFrame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation BannerFrame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic BannerFrame \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GameType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GameType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GameType.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GameType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadFont("Common Normal") .. { + Text=GAMESTATE:GetCurrentGame():GetName(); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation GradeFrame p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Held.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Held.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Held.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Held.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel MaxCombo.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel Miss.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W3.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W3.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W3.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W3.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W4.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W4.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W4.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W4.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W5.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W5.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W5.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation JudgmentLabel W5.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_JudgmentLineLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation LifeDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation LifeDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation LifeDifficulty.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation LifeDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +return LoadFont("Common Normal") .. { + Text=GetLifeDifficulty(); + AltText=""; + BeginCommand=function(self) + self:settextf( Screen.String("LifeDifficulty"), GetLifeDifficulty() ); + end +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation MachineRecord.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation MachineRecord.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation MachineRecord.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation MachineRecord.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,14 @@ +local Player = ... +assert(Player,"MachineRecord needs Player") +local stats = STATSMAN:GetCurStageStats():GetPlayerStageStats(Player); +local record = stats:GetMachineHighScoreIndex() +local hasMachineRecord = record ~= -1 + +return LoadFont("Common normal")..{ + InitCommand=cmd(zoom,0.55;shadowlength,1;NoStroke;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25")); + BeginCommand=function(self) + self:visible(hasMachineRecord); + local text = string.format(THEME:GetString("ScreenEvaluation", "MachineRecord"), record+1) + self:settext(text); + end; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation PeakComboAward.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation PeakComboAward.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation PeakComboAward.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation PeakComboAward.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +return LoadFont("Common Normal"); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation PersonalRecord.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation PersonalRecord.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation PersonalRecord.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation PersonalRecord.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,14 @@ +local Player = ... +assert(Player,"PersonalRecord needs Player") +local stats = STATSMAN:GetCurStageStats():GetPlayerStageStats(Player); +local record = stats:GetPersonalHighScoreIndex() +local hasPersonalRecord = record ~= -1 + +return LoadFont("Common normal")..{ + InitCommand=cmd(zoom,0.55;shadowlength,1;NoStroke;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25")); + BeginCommand=function(self) + self:visible(hasPersonalRecord); + local text = string.format(THEME:GetString("ScreenEvaluation", "PersonalRecord"), record+1) + self:settext(text) + end +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation ScoreLabel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation ScoreLabel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation ScoreLabel.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation ScoreLabel.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation SongInformation.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation SongInformation.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation SongInformation.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation SongInformation.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,20 @@ +return Def.ActorFrame { + LoadFont("Common Normal") .. { + Name="TextTitle"; + InitCommand=cmd(y,-16.5;zoom,0.875;maxwidth,256/0.875;); + OnCommand=cmd(shadowlength,1); +-- TickCommand=cmd(finishtweening;diffusealpha,0;addx,-10;zoomx,1.25;zoomy,0;decelerate,0.25;diffusealpha,1;addx,10;zoom,1;sleep,0;glow,Color("White");decelerate,0.275;glow,Color("Invisible")); + }; + LoadFont("Common Normal") .. { + Name="TextSubtitle"; + InitCommand=cmd(zoom,0.5;maxwidth,256/0.5); + OnCommand=cmd(shadowlength,1); +-- TickCommand=cmd(finishtweening;diffusealpha,0;addy,-10;addx,10;decelerate,0.25;diffusealpha,1;addy,10;addx,-10); + }; + LoadFont("Common Normal") .. { + Name="TextArtist"; + InitCommand=cmd(y,18;zoom,0.75;maxwidth,256/0.75); + OnCommand=cmd(shadowlength,1;skewx,-0.2); +-- TickCommand=cmd(finishtweening;diffusealpha,0;addy,10;addx,10;decelerate,0.25;diffusealpha,1;addy,-10;addx,-10); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation StageAward.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation StageAward.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation StageAward.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation StageAward.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +return LoadFont("Common Normal"); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluationSummary BannerList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluationSummary BannerList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluationSummary BannerList.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluationSummary BannerList.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,56 @@ +local function GetList() + local l = {}; + for i=1,7 do + local stats; + stats = STATSMAN:GetPlayedStageStats(i); + + if not stats then + break + end + + l[#l+1] = stats; + end + return l +end + +local statList = GetList(); + +local as = Def.ActorScroller { + SecondsPerItem = 1; + NumItemsToDraw = 10; + TransformFunction = function( self, offset, itemIndex, numItems) + self:diffusealpha(1-offset); + end; + OnCommand=function(self) + self:SetLoop(true); + self:SetSecondsPauseBetweenItems(2); + self:ScrollThroughAllItems(); + end; +} + +for i=1,#statList do + local j = #statList - (i-1); + as[#as+1] = Def.ActorFrame { + Def.Sprite { + InitCommand=cmd(scaletoclipped,256,80); + OnCommand=function(self) + local path = statList[j]:GetPlayedSongs()[1]:GetBannerPath() or THEME:GetPathG("Common","fallback banner"); + self:LoadBanner(path); + end; + }; + Def.Quad { + InitCommand=cmd(x,128;y,40;horizalign,right;vertalign,bottom); + OnCommand=cmd(zoomto,80,18;diffuse,Color.Black;diffusealpha,0.5;fadeleft,0.5); + }; + LoadFont("Common Normal") .. { + Text=FormatNumberAndSuffix(statList[j]:GetStageIndex()+1); + InitCommand=cmd(x,128-4;y,40-4;horizalign,right;vertalign,bottom); + OnCommand=cmd(diffuse,StageToColor(statList[j]:GetStage());zoom,0.675;shadowlength,1); + }; + }; +end + +return Def.ActorFrame { + as; + LoadActor(THEME:GetPathG("ScreenSelectMusic","BannerFrame")); +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation TimingDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation TimingDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation TimingDifficulty.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation TimingDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +return LoadFont("Common Normal") .. { + Text=GetLifeDifficulty(); + AltText=""; + BeginCommand=function(self) + self:settextf( Screen.String("TimingDifficulty"), GetTimingDifficulty() ); + end +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation Win p1 1x3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation Win p1 1x3.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenEvaluation Win p2 1x3.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenEvaluation Win p2 1x3.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameOver gameover.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameOver gameover.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay BPMDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay BPMDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay BPMDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay BPMDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,96 @@ +-- check if players are playing steps with different timingdata. +local numPlayers = GAMESTATE:GetNumPlayersEnabled() + +local function UpdateSingleBPM(self) + local bpmDisplay = self:GetChild("BPMDisplay") + local pn = GAMESTATE:GetMasterPlayerNumber() + local pState = GAMESTATE:GetPlayerState(pn); + local songPosition = pState:GetSongPosition() + local bpm = songPosition:GetCurBPS() * 60 + bpmDisplay:settext( string.format("%03.2f",bpm) ) +end + +local displaySingle = Def.ActorFrame{ + -- manual bpm display + LoadFont("BPMDisplay", "bpm")..{ + Name="BPMDisplay"; + InitCommand=cmd(zoom,0.675;shadowlength,1); + }; + + --[[ + Def.SongBPMDisplay { + File=THEME:GetPathF("BPMDisplay", "bpm"); + Name="BPMDisplay"; + InitCommand=cmd(zoom,0.675;shadowlength,1); + SetCommand=function(self) self:SetFromGameState() end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + }; + --]] +}; + +displaySingle.InitCommand=cmd(SetUpdateFunction,UpdateSingleBPM); + +if numPlayers == 1 then + return displaySingle +else + -- check if both players are playing the same steps + local stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + + if not stepsP1 or not stepsP2 then + return displaySingle + end + + local stP1 = stepsP1:GetStepsType() + local stP2 = stepsP2:GetStepsType() + + local diffP1 = stepsP1:GetDifficulty() + local diffP2 = stepsP2:GetDifficulty() + + -- get timing data... + local timingP1 = stepsP1:GetTimingData() + local timingP2 = stepsP2:GetTimingData() + + --if stP1 == stP2 and diffP1 == diffP2 then + if timingP1 == timingP2 then + -- both players are steps with the same TimingData; only need one. + return displaySingle + end + + -- otherwise, we have some more work to do. + + local function Update2PBPM(self) + local dispP1 = self:GetChild("DisplayP1") + local dispP2 = self:GetChild("DisplayP2") + + -- needs current bpm for p1 and p2 + for pn in ivalues(PlayerNumber) do + local bpmDisplay = (pn == PLAYER_1) and dispP1 or dispP2 + local pState = GAMESTATE:GetPlayerState(pn); + local songPosition = pState:GetSongPosition() + local bpm = songPosition:GetCurBPS() * 60 + bpmDisplay:settext( string.format("%03.2f",bpm) ) + end + end + + local playerOffset = 36 -- was 28 + local displayTwoPlayers = Def.ActorFrame{ + -- manual bpm displays + LoadFont("BPMDisplay", "bpm")..{ + Name="DisplayP1"; + InitCommand=cmd(x,-playerOffset;zoom,0.6;shadowlength,1); + }; + LoadFont("BPMDisplay", "bpm")..{ + Name="DisplayP2"; + InitCommand=cmd(x,playerOffset;zoom,0.6;shadowlength,1); + }; + }; + + displayTwoPlayers.InitCommand=cmd(SetUpdateFunction,Update2PBPM); + + return displayTwoPlayers +end + +-- should not get here +-- return Def.ActorFrame{} \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay DeltaSeconds.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay DeltaSeconds.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay DeltaSeconds.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay DeltaSeconds.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,25 @@ +local PlayerNumber = ...; +assert( PlayerNumber ); + +local t = LoadFont("ScreenGameplay","RemainingTime") .. { + Name="RemainingTime"; + Text=""; + JudgmentMessageCommand=function(self,params) + if params.Player == PlayerNumber then + if params.TapNoteScore then + local tns = ToEnumShortString(params.TapNoteScore) + local prefname= ("TimeMeterSecondsChange%s"):format(tns) + if PREFSMAN:PreferenceExists(prefname) then + self:playcommand( "GainSeconds" ); + self:playcommand( tns ); + self:settextf( "%+1.1fs", PREFSMAN:GetPreference(prefname) ); + end + else + return + end + else + return + end + end; +}; +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay oni gameover.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay oni gameover.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay oni gameover.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay oni gameover.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay RemainingTime.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay RemainingTime.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay RemainingTime.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay RemainingTime.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +local PlayerNumber = ...; +assert( PlayerNumber ); + +local t = LoadFont("ScreenGameplay","RemainingTime") .. { + Name="SurvivalTime"; + Text=""; +}; + +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay ScoreFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay ScoreFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay SongTitle.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay SongTitle.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay SongTitle.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay SongTitle.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,16 @@ +return LoadFont("ScreenGameplay","SongTitle") .. { + CurrentSongChangedMessageCommand=cmd(playcommand,"Refresh"); + RefreshCommand=function(self) + local vSong = GAMESTATE:GetCurrentSong(); + local vCourse = GAMESTATE:GetCurrentCourse(); + local sText = "" + if vSong then + sText = vSong:GetDisplayArtist() .. " - " .. vSong:GetDisplayFullTitle() + end + if vCourse then + sText = vCourse:GetDisplayFullTitle() .. " - " .. vSong:GetDisplayFullTitle(); + end + self:settext( sText ); + self:playcommand( "On" ); + end; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay StageDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay StageDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenGameplay StageDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenGameplay StageDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,44 @@ +local curScreen = Var "LoadingScreen"; +local curStageIndex = GAMESTATE:GetCurrentStageIndex() + 1; +local playMode = GAMESTATE:GetPlayMode(); + +local t = Def.ActorFrame { + LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",64,16); + LoadFont("Common Normal") .. { + InitCommand=cmd(y,-1;shadowlength,1;playcommand,"Set"); + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTraiP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTraiP2ChangedMessageCommand=cmd(playcommand,"Set"); + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + if GAMESTATE:IsCourseMode() then + local stats = STATSMAN:GetCurStageStats() + if not stats then + return + end + local mpStats = stats:GetPlayerStageStats( GAMESTATE:GetMasterPlayerNumber() ) + local songsPlayed = mpStats:GetSongsPassed() + 1 + self:settextf("%i / %i", songsPlayed, GAMESTATE:GetCurrentCourse():GetEstimatedNumStages()); + else + if GAMESTATE:IsEventMode() then + self:settextf("Stage %s", curStageIndex); + else + local thed_stage= thified_curstage_index(false) + if THEME:GetMetric(curScreen,"StageDisplayUseShortString") then + self:settextf(thed_stage) + else + self:settextf("%s Stage", thed_stage) + end + end + end; + self:zoom(0.675); + self:diffuse(StageToColor(curStage)); + self:diffusetopedge(ColorLightTone(StageToColor(curStage))); + end; + }; +}; +return t + diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,99 @@ +local t = Def.ActorFrame { + FOV=90; + InitCommand=cmd(runcommandsonleaves,cmd(ztest,true)); +}; + +t[#t+1] = LoadActor("frame") .. { + InitCommand=cmd(diffusealpha,0.25); +}; + + +t[#t+1] = Def.TextBanner { + InitCommand=cmd(x,-292;Load,"TextBannerHighScores"); + SetCommand=function(self, params) + if params.Song then + self:SetFromSong( params.Song ); + self:diffuse( SONGMAN:GetSongColor(params.Song) ); + else + self:SetFromString( params.Course:GetTitle() ); + self:diffuse( SONGMAN:GetCourseColor(params.Course) ); + end + end; +}; + +local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns"); + +local c; +local Scores = Def.ActorFrame { + InitCommand = function(self) + c = self:GetChildren(); + end; +}; +t[#t+1] = Scores; + +for idx=1,NumColumns do + local x_pos = -60 + 80 * (idx-1); + Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Name") .. { + Name = idx .. "Name"; + InitCommand=cmd(x,x_pos;y,8;shadowlength,1;maxwidth,68); + OnCommand=cmd(zoom,0.75); + }; + Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Score") .. { + Name = idx .. "Score"; + InitCommand=cmd(x,x_pos;y,-9;shadowlength,1;maxwidth,68); + OnCommand=cmd(zoom,0.75); + }; + Scores[#Scores+1] = LoadActor("filled") .. { + Name = idx .. "Filled"; + InitCommand=cmd(x,x_pos;); + }; + Scores[#Scores+1] = LoadActor("empty") .. { + Name = idx .. "Empty"; + InitCommand=cmd(x,x_pos;); + OnCommand=cmd(zoom,0.75); + }; + +end + +local sNoScoreName = THEME:GetMetric("Common", "NoScoreName"); + +Scores.SetCommand=function(self, params) + local pProfile = PROFILEMAN:GetMachineProfile(); + + for name, child in pairs(c) do + child:visible(false); + end + for idx=1,NumColumns do + c[idx .. "Empty"]:visible(true); + end + + local Current = params.Song or params.Course; + if Current then + for idx, CurrentItem in pairs(params.Entries) do + if CurrentItem then + local hsl = pProfile:GetHighScoreList(Current, CurrentItem); + local hs = hsl and hsl:GetHighScores(); + + local name = c[idx .. "Name"]; + local score = c[idx .. "Score"]; + local filled = c[idx .. "Filled"]; + local empty = c[idx .. "Empty"]; + + name:visible( true ); + score:visible( true ); + filled:visible( true ); + empty:visible( false ); + + if hs and #hs > 0 then + name:settext( hs[1]:GetName() ); + score:settext( FormatPercentScore( hs[1]:GetPercentDP() ) ); + else + name:settext( sNoScoreName ); + score:settext( FormatPercentScore( 0 ) ); + end + end + end; + end +end; + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/empty (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/empty (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/filled (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/filled (doubleres).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/frame (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHighScores ScrollerItem/frame (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs Icon.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs Icon.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs Icon.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs Icon.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,121 @@ +local gc = Var "GameCommand"; +local Name = gc:GetName(); +local Index = gc:GetIndex(); + +local previewWidth = SCREEN_CENTER_X*0.825; +local previewHeight = SCREEN_CENTER_Y; + +local t = Def.ActorFrame{ + Name="PreviewFrame"; + InitCommand=cmd(x,SCREEN_CENTER_X*1.5;y,SCREEN_CENTER_Y*0.85); + OffCommand=cmd(bouncebegin,0.25;addx,SCREEN_CENTER_X); +}; + +local function TitleMenuItem(text,focused) + if focused == nil then focused = false; end; + local textColor = focused and color("#FFFFFF") or color("#888888"); + return LoadFont("Common Normal")..{ + Text=text; + InitCommand=cmd(zoom,0.45;strokecolor,Color("Outline");diffuse,textColor); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; +end; + +local previews = { + WhereToFind = Def.ActorFrame{ + LoadActor(THEME:GetPathG("_howto","find"))..{ + InitCommand=cmd(zoomto,previewWidth,previewHeight); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + }; + HowToInstall = Def.ActorFrame{ + LoadActor(THEME:GetPathG("_howto","install"))..{ + InitCommand=cmd(zoomto,previewWidth,previewHeight); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + }; + AdditionalFolders = Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(zoomto,previewWidth,previewHeight); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + Def.Quad{ + InitCommand=cmd(y,-previewHeight*0.45;diffuse,color("#E0F0F0");zoomto,previewWidth,previewHeight*0.1;); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + LoadFont("Common normal")..{ + InitCommand=cmd(x,-(SCREEN_CENTER_X*0.4);y,-(SCREEN_CENTER_Y*0.475);zoom,0.625;halign,0;valign,0;diffuse,color("#000000")); + BeginCommand=function(self) + local text = "Preferences.ini"; + self:settext(text); + end; + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + LoadFont("Common normal")..{ + Text="[Options]\nAdditionalCourseFolders=\nAdditionalFolders=\nAdditionalSongFolders="; + InitCommand=cmd(x,-(SCREEN_CENTER_X*0.4);y,-(SCREEN_CENTER_Y*0.35);zoom,0.75;halign,0;valign,0;diffuse,color("#000000")); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + }; + ReloadSongs = Def.ActorFrame{ + LoadActor(THEME:GetPathB("ScreenTitleMenu","background/_bg"))..{ + InitCommand=cmd(zoomto,previewWidth,previewHeight;halign,0.5;valign,0.5); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + LoadFont("Common normal")..{ + InitCommand=cmd(zoom,0.4;maxwidth,(previewWidth*1.6)-8); + BeginCommand=function(self) + local song = SONGMAN:GetRandomSong(); + self:settext("Loading songs...\n"..song:GetGroupName().."\n"..song:GetDisplayFullTitle()); + end; + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + }; + Exit = Def.ActorFrame{ + LoadActor(THEME:GetPathB("ScreenTitleMenu","background/_bg"))..{ + InitCommand=cmd(zoomto,previewWidth,previewHeight;halign,0.5;valign,0.5); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + LoadActor(THEME:GetPathG("ScreenTitleMenu","logo"))..{ + InitCommand=cmd(y,-28;zoom,0.35;propagate,true); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); + }; + TitleMenuItem("Game Start",true)..{ + InitCommand=cmd(y,20); + }; + TitleMenuItem("Options")..{ + InitCommand=cmd(y,32); + }; + TitleMenuItem("Edit/Share")..{ + InitCommand=cmd(y,44); + }; + TitleMenuItem("Exit")..{ + InitCommand=cmd(y,56); + }; + }; +}; + +t[#t+1] = previews[Name]; + +t[#t+1] = LoadFont("Common normal")..{ + Name="Explanation"; + --Text="The quick brown fox jumps over the lazy dog ".. Index .." times."; + Text=Screen.String("Explanation-"..Name); + -- was x,-(SCREEN_CENTER_X*0.4);y,SCREEN_CENTER_Y*0.525; + InitCommand=cmd(x,-(SCREEN_CENTER_X*0.8);y,SCREEN_CENTER_Y*0.8;halign,0;valign,0;zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH*0.55)*1.75;NoStroke;shadowlength,1); + GainFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.5;diffusealpha,0); +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs scroll.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs scroll.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs scroll.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenHowToInstallSongs scroll.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,16 @@ +local gc = Var("GameCommand"); +local squareSize = 8; -- was 18 + +return Def.ActorFrame { + Def.Quad{ + InitCommand=cmd(x,-12;zoom,squareSize;rotationz,45;diffuse,color("#222222")); + GainFocusCommand=cmd(stoptweening;accelerate,0.25;zoom,squareSize;rotationz,45;); + LoseFocusCommand=cmd(stoptweening;decelerate,0.25;zoom,0;rotationz,360+45); + }; + LoadFont("Common Normal") .. { + Text=gc:GetText(); + InitCommand=cmd(halign,0;zoom,0.625); + GainFocusCommand=cmd(stoptweening;decelerate,0.25;diffuse,color("1,1,1,1")); + LoseFocusCommand=cmd(stoptweening;accelerate,0.25;diffuse,color("0.5,0.5,0.5,1")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenLogo Logo.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenLogo Logo.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenLogo Logo.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenLogo Logo.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenTitleMenu logo \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenMapControllers exit.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenMapControllers exit.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenMapControllers exit.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenMapControllers exit.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +return LoadFont("Common Normal") .. { + Text=ScreenString("Exit"); + InitCommand=cmd(x,SCREEN_CENTER_X;zoom,0.75;shadowlength,0;diffuse,color("#880000");NoStroke); + OnCommand=cmd(diffusealpha,0;decelerate,0.5;diffusealpha,1); + OffCommand=cmd(stoptweening;accelerate,0.3;diffusealpha,0;queuecommand,"Hide"); + HideCommand=cmd(visible,false); + + GainFocusCommand=cmd(diffuseshift;effectcolor1,color("#FF2222");effectcolor2,color("#880000");); + LoseFocusCommand=cmd(stopeffect); +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenMiniMenu page.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenMiniMenu page.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenMiniMenu page.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenMiniMenu page.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatInputBox.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatInputBox.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatInputBox.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatInputBox.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(zoomto,THEME:GetMetric(Var "LoadingScreen","ChatInputBoxWidth"),THEME:GetMetric(Var "LoadingScreen","ChatInputBoxHeight");diffuse,color("0,0,0,0.25")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatOutputBox.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatOutputBox.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatOutputBox.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectBase ChatOutputBox.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(zoomto,THEME:GetMetric(Var "LoadingScreen","ChatOutputBoxWidth"),THEME:GetMetric(Var "LoadingScreen","ChatOutputBoxHeight");diffuse,color("0,0,0,0.25")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMDisplay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMDisplay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMDisplay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMDisplay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic BPMDisplay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMLabel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMLabel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMLabel.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic BPMLabel.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic BPMLabel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenNetSelectMusic DifficultyDisplay.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenSelectMusic DifficultyDisplay \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions disqualify.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions disqualify.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions disqualify.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions disqualify.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadFont("Common Normal") .. { + Text=ScreenString("Disqualified"); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P1.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P1.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P1.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P1.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadActor(THEME:GetPathG("OptionRowExit","frame")) .. { +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions LineHighlight P2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenOptions LineHighlight P1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions line highlight.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions line highlight.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions more.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions more.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions more.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions more.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenOptions page.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenOptions page.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenPlayerOptions PlayerNameplate.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenPlayerOptions PlayerNameplate.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenPlayerOptions PlayerNameplate.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenPlayerOptions PlayerNameplate.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,94 @@ +local PlayerNumber = ... +assert( PlayerNumber ) + +local bpm_text_zoom = 0.875 + +local song_bpms= {} +local bpm_text= "??? - ???" +local function format_bpm(bpm) + return ("%.0f"):format(bpm) +end + +-- Courses don't have GetDisplayBpms. +if GAMESTATE:GetCurrentSong() then + song_bpms= GAMESTATE:GetCurrentSong():GetDisplayBpms() + song_bpms[1]= math.round(song_bpms[1]) + song_bpms[2]= math.round(song_bpms[2]) + if song_bpms[1] == song_bpms[2] then + bpm_text= format_bpm(song_bpms[1]) + else + bpm_text= format_bpm(song_bpms[1]) .. " - " .. format_bpm(song_bpms[2]) + end +end + +local t = Def.ActorFrame { + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 192-8) .. { + OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.875); + }; + LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 192-8) .. { + OnCommand=cmd(diffusealpha,0.125); + }; + LoadFont("Common Normal") .. { + Text=ToEnumShortString(PlayerNumber); + Name="PlayerShortName", + InitCommand=cmd(x,-104;maxwidth,32), + OnCommand=cmd(diffuse,PlayerColor(PlayerNumber);shadowlength,1) + }, + LoadFont("Common Normal") .. { + Text=bpm_text; + Name="BPMRangeOld", + InitCommand=cmd(x,-40;maxwidth,88/bpm_text_zoom), + OnCommand=cmd(shadowlength,1;zoom,bpm_text_zoom) + }, + LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { + Name="Seperator", + InitCommand=cmd(x,14) + }, + LoadFont("Common Normal") .. { + Text="100 - 200000"; + Name="BPMRangeNew", + InitCommand= function(self) + self:x(68):maxwidth(88/bpm_text_zoom):shadowlength(1):zoom(bpm_text_zoom) + local speed, mode= GetSpeedModeAndValueFromPoptions(PlayerNumber) + self:playcommand("SpeedChoiceChanged", {pn= PlayerNumber, mode= mode, speed= speed}) + end, + BPMWillNotChangeCommand=cmd(stopeffect), + BPMWillChangeCommand=cmd(diffuseshift;effectcolor1,Color.White;effectcolor2,Color.Orange), + SpeedChoiceChangedMessageCommand= function(self, param) + if param.pn ~= PlayerNumber then return end + local text= "" + local no_change= true + if param.mode == "x" then + if not song_bpms[1] then + text= "??? - ???" + elseif song_bpms[1] == song_bpms[2] then + text= format_bpm(song_bpms[1] * param.speed*.01) + else + text= format_bpm(song_bpms[1] * param.speed*.01) .. " - " .. + format_bpm(song_bpms[2] * param.speed*.01) + end + no_change= param.speed == 100 + elseif param.mode == "C" then + text= param.mode .. param.speed + no_change= param.speed == song_bpms[2] and song_bpms[1] == song_bpms[2] + else + no_change= param.speed == song_bpms[2] + if song_bpms[1] == song_bpms[2] then + text= param.mode .. param.speed + else + local factor= song_bpms[1] / song_bpms[2] + text= param.mode .. format_bpm(param.speed * factor) .. " - " + .. param.mode .. param.speed + end + end + self:settext(text) + if no_change then + self:queuecommand("BPMWillNotChange") + else + self:queuecommand("BPMWillChange") + end + end + } +} + +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/_base.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/_base.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenQuickSetupOverview icon/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,37 @@ +local gc = Var "GameCommand"; +local c = {}; + c.X = THEME:GetMetric( Var "LoadingScreen", "Icon" .. gc:GetName() .. "X"); + c.Y = THEME:GetMetric( Var "LoadingScreen", "Icon" .. gc:GetName() .. "Y"); +local t = Def.ActorFrame {}; +t[#t+1] = Def.ActorFrame { + Condition=( gc:GetName() ~= "Back" ); + InitCommand=cmd(x,c.X;y,c.Y); + GainFocusCommand=cmd(finishtweening;zoom,1.125;bounceend,0.125;zoom,1); + LoseFocusCommand=cmd(stoptweening;linear,0.125;zoom,0.875); + LoadActor("_base") .. { + GainFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("Orange");diffusetopedge,Color("Yellow")); + LoseFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("White")); + }; + LoadFont("Common Normal") .. { + Text=gc:GetName(); + InitCommand=cmd(strokecolor,Color("White")); + OnCommand=cmd(diffuse,Color("Black")); + }; +}; +t[#t+1] = Def.ActorFrame { + Condition=( gc:GetName() == "Back" ); + InitCommand=cmd(x,c.X;y,c.Y); + GainFocusCommand=cmd(finishtweening;zoom,1.125;bounceend,0.125;zoom,1); + LoseFocusCommand=cmd(stoptweening;linear,0.125;zoom,0.875); + LoadActor("_base") .. { + GainFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("Red")); + LoseFocusCommand=cmd(stoptweening;linear,0.125;diffuse,Color("White")); + }; + LoadFont("Common Normal") .. { + Text=gc:GetName(); + InitCommand=cmd(strokecolor,Color("White")); + OnCommand=cmd(diffuse,Color("Black")); + }; +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking banner frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking banner frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking banner frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking banner frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking bullets 1x5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking bullets 1x5.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty easy.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty easy.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty easy.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty easy.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty hard.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty hard.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty hard.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty hard.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty medium.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty medium.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty medium.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking CourseDifficulty medium.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking course frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking course frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking course frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking course frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty challenge.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty challenge.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty challenge.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty challenge.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty easy.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty easy.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty easy.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty easy.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty hard.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty hard.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty hard.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty hard.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty medium.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty medium.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty medium.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking Difficulty medium.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking song frame.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking song frame.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking song frame.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking song frame.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking type dance-double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking type dance-double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenRanking type dance-single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenRanking type dance-single.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic AlternateHelpDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic AlternateHelpDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic AlternateHelpDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic AlternateHelpDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,33 @@ +return Def.HelpDisplay { + File = THEME:GetPathF("HelpDisplay", "text"); + InitCommand=function(self) + local s = THEME:GetString(Var "LoadingScreen","AlternateHelpText"); + self:SetTipsColonSeparated(s); + end; + SetHelpTextCommand=function(self, params) + self:SetTipsColonSeparated( params.Text ); + end; +}; +--[[ local sString = THEME:GetString(Var "LoadingScreen","AlternateHelpText"); +local tItems = split(sString,"&"); + +local t = Def.ActorScroller { + NumItemsToDraw=#tItems; + SecondsPerItem=1.25; + TransformFunction=function( self, offset, itemIndex, numItems ) + self:x( offset*74 ); + end; + InitCommand=cmd(SetLoop,true); +-- OnCommand=cmd(scrollwithpadding,10,0); +}; + +for i=1,#tItems do + t[#t+1] = Def.ActorFrame { + LoadFont("HelpDisplay", "text") .. { + Text=tostring(tItems[i]); + OnCommand=THEME:GetMetric( Var "LoadingScreen","HelpOnCommand"); + }; + }; +end + +return t; --]] Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BannerFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BannerFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +return Def.BPMDisplay { + File=THEME:GetPathF("BPMDisplay", "bpm"); + Name="BPMDisplay"; + SetCommand=function(self) self:SetFromGameState() end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMLabel.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMLabel.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMLabel.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic BPMLabel.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +return Def.ActorFrame { + LoadFont("Common Normal") .. { + Text="BPM"; + InitCommand=cmd(horizalign,right;zoom,0.75;strokecolor,Color("Outline")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseContentsList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseContentsList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseContentsList.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseContentsList.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,81 @@ +local transform = function(self,offsetFromCenter,itemIndex,numitems) + self:y( offsetFromCenter * 44 ); +end +return Def.CourseContentsList { + MaxSongs = 10; + NumItemsToDraw = 8; + ShowCommand=cmd(bouncebegin,0.3;zoomy,1); + HideCommand=cmd(linear,0.3;zoomy,0); + SetCommand=function(self) + self:SetFromGameState(); + self:SetCurrentAndDestinationItem(0); + self:SetPauseCountdownSeconds(1); + self:SetSecondsPauseBetweenItems( 0.25 ); + self:SetTransformFromFunction(transform); + -- + self:SetDestinationItem( math.max(0,self:GetNumItems() - 4) ); + self:SetLoop(false); + self:SetMask(0,0); + end; + CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"); + CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"); + + Display = Def.ActorFrame { + InitCommand=cmd(setsize,270,44); + + LoadActor(THEME:GetPathG("CourseEntryDisplay","bar")) .. { + SetSongCommand=function(self, params) + if params.Difficulty then + self:diffuse( CustomDifficultyToColor(params.Difficulty) ); + else + self:diffuse( color("#FFFFFF") ); + end + + (cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;linear,0.125;diffusealpha,1;linear,0.05;glow,color("1,1,1,0.5");decelerate,0.1;glow,color("1,1,1,0")))(self); + end; + }; + + Def.TextBanner { + InitCommand=cmd(x,-128;y,1;Load,"TextBanner";SetFromString,"", "", "", "", "", ""); + SetSongCommand=function(self, params) + if params.Song then + if GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() == "Abomination" then + -- abomination hack + if PREFSMAN:GetPreference("EasterEggs") then + if params.Number % 2 ~= 0 then + -- turkey march + local artist = params.Song:GetDisplayArtist(); + self:SetFromString( "Turkey", "", "", "", artist, "" ); + else + self:SetFromSong( params.Song ); + end; + else + self:SetFromSong( params.Song ); + end; + else + self:SetFromSong( params.Song ); + end; + self:diffuse( CustomDifficultyToColor(params.Difficulty) ); +-- self:glow("1,1,1,0.5"); + else + self:SetFromString( "??????????", "??????????", "", "", "", "" ); + self:diffuse( color("#FFFFFF") ); +-- self:glow("1,1,1,0"); + end + + (cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoomy,1.1;linear,0.05;zoomx,1.1;decelerate,0.1;zoom,1))(self); + end; + }; + + LoadFont("CourseEntryDisplay","difficulty") .. { + Text="0"; + InitCommand=cmd(x,114;y,0;zoom,0.75;shadowlength,1); + SetSongCommand=function(self, params) + if params.PlayerNumber ~= GAMESTATE:GetMasterPlayerNumber() then return end + self:settext( params.Meter ); + self:diffuse( CustomDifficultyToColor(params.Difficulty) ); + (cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoomy,1.1;linear,0.05;zoomx,1.1;decelerate,0.1;zoom,1))(self); + end; + }; + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseType.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic CourseType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_background.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_background.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Beginner.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Beginner.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Challenge.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Challenge.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Edit.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Edit.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Medium.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/_barpeice Medium.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyDisplay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,80 @@ +local t = Def.ActorFrame {}; +local function GetEdits( in_Song, in_StepsType ) + if in_Song then + local sSong = in_Song; + local sCurrentStyle = GAMESTATE:GetCurrentStyle(); + local sStepsType = in_StepsType; + local iNumEdits = 0; + if sSong:HasEdits( sStepsType ) then + local tAllSteps = sSong:GetAllSteps(); + for i,Step in pairs(tAllSteps) do + if Step:IsAnEdit() and Step:GetStepsType() == sStepsType then + iNumEdits = iNumEdits + 1; + end + end + return iNumEdits; + else + return iNumEdits; + end + else + return 0; + end +end; +t[#t+1] = Def.ActorFrame { + LoadActor("_Background"); +}; +-- +for idx,diff in pairs(Difficulty) do + local sDifficulty = ToEnumShortString( diff ); + local tLocation = { + Beginner = 32*-1.25, + Easy = 32*-0.25, + Medium = 32*0.75, + Hard = 32*1.75, + Challenge = 32*2.75, + Edit = 32*4.75, + }; + t[#t+1] = Def.ActorFrame { + SetCommand=function(self) + local c = self:GetChildren(); +-- local Bar = self:GetChild("Bar"); +-- local Meter = self:GetChild("Meter" + local song = GAMESTATE:GetCurrentSong() + local bHasStepsTypeAndDifficulty = false; + local meter = ""; + if song then + local st = GAMESTATE:GetCurrentStyle():GetStepsType() + bHasStepsTypeAndDifficulty = song:HasStepsTypeAndDifficulty( st, diff ); + local steps = song:GetOneSteps( st, diff ); + if steps then + meter = steps:GetMeter(); + append = "" + -- + if diff == 'Difficulty_Edit' then + meter = GetEdits( song, st ); + append = ( GetEdits( song, st ) > 1 ) and "Edits" or "Edit" + meter = meter .. " " .. append + end + end + end + c.Meter:settext( meter ); + self:playcommand( bHasStepsTypeAndDifficulty and "Show" or "Hide" ); + end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + -- + LoadActor("_barpeice " .. sDifficulty ) .. { + Name="BarPeice"; + ShowCommand=cmd(stoptweening;linear,0.1;diffuse,CustomDifficultyToColor( sDifficulty )); + HideCommand=cmd(stoptweening;decelerate,0.05;diffuse,CustomDifficultyToDarkColor( sDifficulty )); + InitCommand=cmd(diffuse,CustomDifficultyToColor( sDifficulty )); + }; + LoadFont("StepsDisplay","Meter") .. { + Name="Meter"; + Text=(sDifficulty == "Edit") and "0 Edits" or "0"; + ShowCommand=cmd(stoptweening;linear,0.1;diffuse,CustomDifficultyToColor( sDifficulty )); + HideCommand=cmd(stoptweening;decelerate,0.05;diffuse,CustomDifficultyToDarkColor( sDifficulty )); + InitCommand=cmd(x,-64-8+tLocation[sDifficulty];shadowlength,1;zoom,0.75;diffuse,CustomDifficultyToColor( sDifficulty )); + }; + }; +end +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyList.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyList.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyList.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic DifficultyList.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,86 @@ +return Def.ActorFrame { + CurrentSongChangedMessageCommand=function(self) + local song = GAMESTATE:GetCurrentSong(); + if song then +-- self:setaux(0); + self:finishtweening(); + self:playcommand("TweenOn"); + elseif not song and self:GetZoomX() == 1 then +-- self:setaux(1); + self:finishtweening(); + self:playcommand("TweenOff"); + end; + end; + Def.Quad { + InitCommand=cmd(y,-14;zoomto,164,2;fadeleft,8/164;faderight,8/164); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;linear,0.35;diffusealpha,0.5); + }; + Def.Quad { + InitCommand=cmd(y,24*(5)-10;zoomto,164,2;fadeleft,8/164;faderight,8/164); + OnCommand=cmd(diffuse,Color("Black");diffusealpha,0;linear,0.35;diffusealpha,0.5); + }; + Def.StepsDisplayList { + Name="StepsDisplayListRow"; + + CursorP1 = Def.ActorFrame { + InitCommand=cmd(x,-128+16;player,PLAYER_1); + PlayerJoinedMessageCommand=function(self, params) + if params.Player == PLAYER_1 then + self:visible(true); + (cmd(zoom,0;bounceend,1;zoom,1))(self); + end; + end; + PlayerUnjoinedMessageCommand=function(self, params) + if params.Player == PLAYER_1 then + self:visible(true); + (cmd(bouncebegin,1;zoom,0))(self); + end; + end; + LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. { + InitCommand=cmd(diffuse,PlayerColor(PLAYER_1);x,8;zoom,0.75); + }; + LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { + InitCommand=cmd(x,20;diffuse,PlayerColor(PLAYER_1)); + OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';); + }; + LoadFont("Common Normal") .. { + Text="P1"; + InitCommand=cmd(x,2;diffuse,PlayerColor(PLAYER_1);shadowlength,1); + OnCommand=cmd(zoom,0.75); + }; + }; + CursorP2 = Def.ActorFrame { + InitCommand=cmd(x,128-16;player,PLAYER_2); + PlayerJoinedMessageCommand=function(self, params) + if params.Player == PLAYER_2 then + self:visible(true); + (cmd(zoom,0;bounceend,1;zoom,1))(self); + end; + end; + PlayerUnjoinedMessageCommand=function(self, params) + if params.Player == PLAYER_2 then + self:visible(true); + (cmd(bouncebegin,1;zoom,0))(self); + end; + end; + LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. { + InitCommand=cmd(diffuse,PlayerColor(PLAYER_2);x,-8;zoom,0.75;zoomx,-0.75;); + }; + LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. { + InitCommand=cmd(x,-20;diffuse,PlayerColor(PLAYER_2);zoomx,-1); + OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';); + }; + LoadFont("Common Normal") .. { + Text="P2"; + InitCommand=cmd(x,-2;diffuse,PlayerColor(PLAYER_2);shadowlength,1); + OnCommand=cmd(zoom,0.75); + }; + }; + CursorP1Frame = Def.Actor{ + ChangeCommand=cmd(stoptweening;decelerate,0.05); + }; + CursorP2Frame = Def.Actor{ + ChangeCommand=cmd(stoptweening;decelerate,0.05); + }; + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic fallback cdtitle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic fallback cdtitle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic fallback cdtitle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic fallback cdtitle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NewSong.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NewSong.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NewSong.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NewSong.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return LoadFont("Common Normal") .. { + Text=THEME:GetString("ScreenSelectMusic","NEW!"); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NumCourseSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NumCourseSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NumCourseSongs.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic NumCourseSongs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP1.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP1.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP1.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP1.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +return LoadActor(THEME:GetPathG("PaneDisplay","Text"),PLAYER_1); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP2.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP2.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP2.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic PaneDisplayTextP2.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +return LoadActor(THEME:GetPathG("PaneDisplay","Text"),PLAYER_2); \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p1.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p1.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p1.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p1.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectmusic score frame p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,133 @@ +-- segment display: tells the player about various gimmicks used in the song timing. +local iconPath = "_timingicons" +local leftColX = -144 +local rightColX = -leftColX + +local showCmd = cmd(stoptweening;accelerate,0.1;diffusealpha,1) +local hideCmd = cmd(stoptweening;accelerate,0.1;diffusealpha,0) + +local SegmentTypes = { + Stops = { Frame = 0, xPos = leftColX, yPos = 0 }, + Warps = { Frame = 2, xPos = leftColX, yPos = -16 }, + Delays = { Frame = 1, xPos = leftColX, yPos = -32 }, + Attacks = { Frame = 6, xPos = leftColX, yPos = 16 }, + Scrolls = { Frame = 3, xPos = rightColX, yPos = -32 }, + Speeds = { Frame = 4, xPos = rightColX, yPos = -17 }, + Fakes = { Frame = 5, xPos = rightColX, yPos = -2 }, +}; + +local t = Def.ActorFrame{ + BeginCommand=cmd(playcommand,"SetIcons";playcommand,"SetAttacksIconMessage"); + --OffCommand=cmd( RunCommandsOnChildren,cmd(playcommand,"Hide") ); + + SetIconsCommand=function(self) + local stops = self:GetChild("StopsIcon") + local delays = self:GetChild("DelaysIcon") + local warps = self:GetChild("WarpsIcon") + local scrolls = self:GetChild("ScrollsIcon") + local speeds = self:GetChild("SpeedsIcon") + local fakes = self:GetChild("FakesIcon") + + -- hax + MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = GAMESTATE:GetMasterPlayerNumber()}) + + local song = GAMESTATE:GetCurrentSong() + if song then + local timing = song:GetTimingData() + + if timing:HasWarps() then warps:playcommand("Show") + else warps:playcommand("Hide") + end + + if timing:HasStops() then stops:playcommand("Show") + else stops:playcommand("Hide") + end + + if timing:HasDelays() then delays:playcommand("Show") + else delays:playcommand("Hide") + end + + if timing:HasScrollChanges() then scrolls:playcommand("Show") + else scrolls:playcommand("Hide") + end + + if timing:HasSpeedChanges() then speeds:playcommand("Show") + else speeds:playcommand("Hide") + end + + if timing:HasFakes() then fakes:playcommand("Show") + else fakes:playcommand("Hide") + end + else + warps:playcommand("Hide") + stops:playcommand("Hide") + delays:playcommand("Hide") + scrolls:playcommand("Hide") + speeds:playcommand("Hide") + fakes:playcommand("Hide") + end + end; + SetAttacksIconMessageCommand=function(self,param) + local attacks = self:GetChild("AttacksIcon") + local song = GAMESTATE:GetCurrentSong() + if song then + local steps = GAMESTATE:GetCurrentSteps(param.Player) + if steps then + local hasAttacks = steps:HasAttacks() + attacks:playcommand(hasAttacks and "Show" or "Hide") + else + attacks:playcommand("Hide") + end + else + attacks:playcommand("Hide") + end + end; + + LoadActor(iconPath)..{ + Name="WarpsIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Warps.xPos;y,SegmentTypes.Warps.yPos;setstate,SegmentTypes.Warps.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="StopsIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Stops.xPos;y,SegmentTypes.Stops.yPos;setstate,SegmentTypes.Stops.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="DelaysIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Delays.xPos;y,SegmentTypes.Delays.yPos;setstate,SegmentTypes.Delays.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="AttacksIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Attacks.xPos;y,SegmentTypes.Attacks.yPos;setstate,SegmentTypes.Attacks.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="ScrollsIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Scrolls.xPos;y,SegmentTypes.Scrolls.yPos;setstate,SegmentTypes.Scrolls.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="SpeedsIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Speeds.xPos;y,SegmentTypes.Speeds.yPos;setstate,SegmentTypes.Speeds.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + LoadActor(iconPath)..{ + Name="FakesIcon"; + InitCommand=cmd(animate,false;x,SegmentTypes.Fakes.xPos;y,SegmentTypes.Fakes.yPos;setstate,SegmentTypes.Fakes.Frame;diffusealpha,0); + ShowCommand=showCmd; + HideCommand=hideCmd; + }; + CurrentSongChangedMessageCommand=cmd(playcommand,"SetIcons";); + CurrentStepsP1ChangedMessageCommand=function(self) MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = PLAYER_1}) end; + CurrentStepsP2ChangedMessageCommand=function(self) MESSAGEMAN:Broadcast("SetAttacksIcon",{Player = PLAYER_2}) end; +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/_timingicons 4x2 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SegmentDisplay/_timingicons 4x2 (doubleres).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsFrame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsFrame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsFrame.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsFrame.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +return Def.Quad { + InitCommand=cmd(zoomto,SCREEN_WIDTH,64); +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptions.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptions.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptions.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptions.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsText.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsText.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsText.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongOptionsText.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongTime.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongTime.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongTime.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SongTime.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderFrame.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderFrame.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderFrame.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderFrame.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +return Def.ActorFrame { + LoadActor(THEME:GetPathG("_icon","Sort")) .. { + InitCommand=cmd(x,-60;shadowlength,1;); + }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderText.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderText.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderText.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectMusic SortOrderText.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode BackgroundFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode BackgroundFrame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_background base (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_background effect.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_background effect.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_cutout.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_cutout.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,35 @@ +local gc = Var("GameCommand"); + +local string_name = gc:GetText() +local string_expl = THEME:GetString(Var "LoadingScreen", gc:GetName().."Explanation") +local icon_color = ModeIconColors[gc:GetName()]; + +local t = Def.ActorFrame {}; +t[#t+1] = Def.ActorFrame { + GainFocusCommand=cmd(stoptweening;bob;effectmagnitude,0,6,0;decelerate,0.05;zoom,1); + LoseFocusCommand=cmd(stoptweening;stopeffect;decelerate,0.1;zoom,0.6); + + LoadActor("_background base")..{ + InitCommand=cmd(diffuse,icon_color); + }; + LoadActor("_background effect"); + LoadActor("_gloss"); + LoadActor("_stroke"); + LoadActor("_cutout"); + + -- todo: generate a better font for these. + LoadFont("Common Large")..{ + Text=string.upper(string_name); + InitCommand=cmd(y,-12;maxwidth,232); + OnCommand=cmd(diffuse,Color.Black;shadowlength,1;shadowcolor,color("#ffffff77");skewx,-0.125); + }; + LoadFont("Common Normal")..{ + Text=string.upper(string_expl); + InitCommand=cmd(y,27.5;maxwidth,232); + }; + LoadActor("_background base") .. { + DisabledCommand=cmd(diffuse,color("0,0,0,0.5")); + EnabledCommand=cmd(diffuse,color("1,1,1,0")); + }; +}; +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_gloss.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_gloss.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_stroke.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode Icon/_stroke.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,74 @@ +local gc = Var "GameCommand"; +local colors = { + Easy = color("#00ff00"), + Normal = color("#feee00"), + Hard = color("#feee00"), + Rave = color("#db93ff"), + Nonstop = color("#00ffff"), + Oni = color("#d70b8c"), + Endless = color("#b4c3d2"), +}; + +local icon_color = ModeIconColors[gc:GetName()]; + +local string_name = gc:GetText(); +local string_expl = THEME:GetString(Var "LoadingScreen", gc:GetName() .. "Explanation"); +local t = Def.ActorFrame {}; + +-- Background! +t[#t+1] = Def.ActorFrame { + LoadActor(THEME:GetPathG("ScreenSelectPlayMode","BackgroundFrame")) .. { + InitCommand=cmd(diffuse,Color("Black");diffusealpha,0.45); + GainFocusCommand=cmd(visible,true); + LoseFocusCommand=cmd(visible,false); + }; + LoadActor("_HighlightFrame") .. { + InitCommand=cmd(diffuse,icon_color;diffusealpha,0); + GainFocusCommand=cmd(finishtweening;diffuse,ColorLightTone(icon_color);linear,1;diffuse,icon_color); + LoseFocusCommand=cmd(finishtweening;diffusealpha,0); + OffFocusedCommand=cmd(finishtweening;glow,Color("White");decelerate,1;glow,Color("Invisible")); + }; +}; + +-- Emblem Frame +t[#t+1] = Def.ActorFrame { + FOV=90; + InitCommand=cmd(x,-192;zoom,0.9); + -- Main Emblem + LoadActor( gc:GetName() ) .. { + InitCommand=cmd(diffusealpha,0;zoom,0.75); + GainFocusCommand=cmd(finishtweening;stopeffect;diffusealpha,1;zoom,1;glow,Color("White");decelerate,0.5;glow,Color("Invisible");pulse;effecttiming,0.75,0.125,0.125,0.75;effectmagnitude,0.95,1,1;); + LoseFocusCommand=cmd(finishtweening;stopeffect;smooth,0.4;diffusealpha,0;zoom,0.75;glow,Color("Invisible")); + OffFocusedCommand=cmd(finishtweening;stopeffect;glow,icon_color;decelerate,0.5;rotationy,360;glow,Color("Invisible")); + }; +}; + +-- Text Frame +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(x,-192/2;y,-10); + LoadFont("Common Large") .. { + Text=string_name; + InitCommand=cmd(y,-2;horizalign,left;diffuse,icon_color;strokecolor,ColorDarkTone(icon_color);shadowlength,2;diffusealpha,0;skewx,-0.125); + OnCommand=cmd(glowshift;textglowmode,'TextGlowMode_Inner'; + effectcolor1,color("1,1,1,0.5");effectcolor2,color("1,1,1,0") + ); + GainFocusCommand=cmd(finishtweening;x,-16;diffuse,ColorLightTone(icon_color);decelerate,0.45;diffusealpha,1;x,0;diffuse,icon_color); + LoseFocusCommand=cmd(finishtweening;x,0;accelerate,0.4;diffusealpha,0;x,32;diffusealpha,0); + }; + LoadFont("Common Normal") .. { + Text=string_expl; + InitCommand=cmd(horizalign,right;x,320;y,30;shadowlength,1;diffusealpha,0;skewx,-0.125;zoom,0.75); + GainFocusCommand=cmd(finishtweening;x,320+16;decelerate,0.45;diffusealpha,1;x,320); + LoseFocusCommand=cmd(finishtweening;x,320;accelerate,0.4;diffusealpha,0;x,320-32;diffusealpha,0); + }; + Def.Quad { + InitCommand=cmd(horizalign,left;y,20;zoomto,320,2;diffuse,icon_color;diffusealpha,0;fadeleft,0.35;faderight,0.35); + GainFocusCommand=cmd(stoptweening;linear,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;linear,0.1;diffusealpha,0); + }; +}; + +t.GainFocusCommand=cmd(finishtweening;visible,true;zoom,1.1;decelerate,0.25;zoom,1); +t.LoseFocusCommand=cmd(finishtweening;visible,false;zoom,1); + +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Endless (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/_HighlightFrame (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Nonstop (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Oni (dither).png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Rave.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectPlayMode scroller/Rave.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectProfile CardBackground.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectProfile CardBackground.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectProfile CardFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectProfile CardFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectStyle Icon.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectStyle Icon.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenSelectStyle Icon.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenSelectStyle Icon.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,36 @@ +local gc = Var("GameCommand"); + +local string_name = gc:GetText(); +local string_expl = THEME:GetString("StyleType", gc:GetStyle():GetStyleType()); +local icon_color = color("#FFCB05"); +local icon_color2 = color("#F0BA00"); + +local t = Def.ActorFrame {}; +t[#t+1] = Def.ActorFrame { + GainFocusCommand=THEME:GetMetric(Var "LoadingScreen","IconGainFocusCommand"); + LoseFocusCommand=THEME:GetMetric(Var "LoadingScreen","IconLoseFocusCommand"); + + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background base"))..{ + InitCommand=cmd(diffuse,icon_color;diffusebottomedge,icon_color2); + }; + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background effect")); + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_gloss")); + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_stroke")); + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_cutout")); + + LoadFont("Common Large")..{ + Text=string.upper(string_name); + InitCommand=cmd(y,-12;maxwidth,232); + OnCommand=cmd(diffuse,Color.Black;shadowlength,1;shadowcolor,color("#ffffff77");skewx,-0.125); + }; + LoadFont("Common Normal")..{ + Text=string.upper(string_expl); + InitCommand=cmd(y,27.5;maxwidth,232); + }; + + LoadActor(THEME:GetPathG("ScreenSelectPlayMode", "icon/_background base"))..{ + DisabledCommand=cmd(diffuse,color("0,0,0,0.5")); + EnabledCommand=cmd(diffuse,color("1,1,1,0")); + }; +}; +return t \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 1st.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 1st.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 2nd.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 2nd.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 3rd.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 3rd.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 4th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 4th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 5th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 5th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 6th.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage 6th.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage endless.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage endless.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage event.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage event.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage extra1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage extra1.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage extra2.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage extra2.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage final.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage final.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage nonstop.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage nonstop.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage oni.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenStageInformation stage oni.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu CurrentGametype.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu CurrentGametype.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu CurrentGametype.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu CurrentGametype.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +local curGameName = GAMESTATE:GetCurrentGame():GetName(); + +local t = LoadFont("Common Normal") .. { + BeginCommand=function(self) + self:settextf( Screen.String("CurrentGametype"), curGameName ); + end; +}; +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu cursor.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu cursor.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu cursor.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu cursor.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,8 @@ +local t = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(zoomto,32,32); + OnCommand=cmd(spin); + }; +}; + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu LifeDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu LifeDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu LifeDifficulty.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu LifeDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,21 @@ +local label_text= false + +return Def.ActorFrame { + LoadFont("Common Normal") .. { + Text=GetLifeDifficulty(); + AltText=""; + InitCommand=cmd(horizalign,left;zoom,0.675); + OnCommand= function(self) + label_text= self + self:shadowlength(1):settextf(Screen.String("LifeDifficulty"), ""); + end, + }; + LoadFont("Common Normal") .. { + Text=GetLifeDifficulty(); + AltText=""; + InitCommand=cmd(zoom,0.675;halign,0); + OnCommand= function(self) + self:shadowlength(1):skewx(-0.125):x(label_text:GetZoomedWidth()+8) + end, + }; +}; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/_arrow (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/_arrow (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,14 @@ +local t = Def.ActorFrame{ + InitCommand=cmd(fov,70); + LoadActor("_arrow")..{ + InitCommand=cmd(x,225;); + }; + LoadActor("_text"); + LoadActor("_text")..{ + Name="TextGlow"; + InitCommand=cmd(blend,Blend.Add;diffusealpha,0.05;); + OnCommand=cmd(glowshift;effectperiod,2.5;effectcolor1,color("1,1,1,0.25");effectcolor2,color("1,1,1,1");); + }; +}; + +return t; Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/_text (dither).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu logo/_text (dither).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NetworkStatus.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NetworkStatus.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NetworkStatus.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NetworkStatus.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,41 @@ +local netConnected = IsNetConnected(); +local loggedOnSMO = IsNetSMOnline(); + +local t = Def.ActorFrame{ + Def.Quad { + InitCommand=cmd(y,-12;x,160;zoomto,320+32,38;vertalign,top;diffuse,Color.Black;diffusealpha,0.5); + OnCommand=cmd(faderight,0.45); + BeginCommand=function(self) + if netConnected then + self:zoomtoheight( 38 ); + else + self:zoomtoheight( 24 ); + end + end; + }; + LoadFont("Common Normal") .. { + InitCommand=cmd(uppercase,true;zoom,0.75;shadowlength,1;horizalign,left); + BeginCommand=function(self) + -- check network status + if netConnected then + self:diffuse( color("0.95,0.975,1,1") ); + self:diffusebottomedge( color("0.72,0.89,1,1") ); + self:settext( Screen.String("Network OK") ); + else + self:diffuse( color("1,1,1,1") ); + self:settext( Screen.String("Offline") ); + end; + end; + }; +}; + +if netConnected then + t[#t+1] = LoadFont("Common Normal") .. { + InitCommand=cmd(y,16;horizalign,left;zoom,0.5875;shadowlength,1;diffuse,color("0.72,0.89,1,1")); + BeginCommand=function(self) + self:settext( string.format(Screen.String("Connected to %s"), GetServerName()) ); + end; + }; +end; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumAdditionalSongs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumSongs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumSongs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumSongs.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu NumSongs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2 @@ +return LoadFont("Common Normal") .. { +}; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu PreferenceFrame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu PreferenceFrame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu scroll.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu scroll.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu scroll.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu scroll.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,16 @@ +local gc = Var("GameCommand"); + +return Def.ActorFrame { + Def.Quad{ + InitCommand=cmd(zoomto,256,26;fadeleft,0.45;faderight,0.45); + OnCommand=cmd(diffuseshift;effectcolor1,color("0,0,0,0.5");effectcolor2,color("0,0,0,0.5")); + GainFocusCommand=cmd(stoptweening;decelerate,0.1;zoomto,256,26;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;accelerate,0.1;zoomto,SCREEN_WIDTH,0;diffusealpha,0); + }; + LoadFont("Common Normal") .. { + Text=THEME:GetString("ScreenTitleMenu",gc:GetText()); + OnCommand=cmd(shadowlength,1); + GainFocusCommand=cmd(stoptweening;linear,0.1;zoom,1;diffuse,color("1,1,1,1")); + LoseFocusCommand=cmd(stoptweening;linear,0.1;zoom,0.75;diffuse,color("0.5,0.5,0.5,1")); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu SystemDirection/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu SystemDirection/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu SystemDirection/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu SystemDirection/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,105 @@ +local t = Def.ActorFrame {}; +local tInfo = { + {"EventMode","Stages"}, + {"LifeDifficulty","Life"}, + {"TimingDifficulty","Difficulty"}, +}; +local fSpacingX = 72; +local function MakeDisplayBar( fZoomX, fZoomY ) + return Def.ActorFrame { + Def.Quad { + InitCommand=cmd(vertalign,bottom;y,1;zoomto,fZoomX+2,fZoomY+2); + OnCommand=cmd(diffuse,Color("Black")); + }; + Def.Quad { + InitCommand=cmd(vertalign,bottom;zoomto,fZoomX,fZoomY); + OnCommand=cmd(diffuse,Color("Orange");diffusetopedge,Color("Yellow")); + }; + }; +end +local function MakeIcon( sTarget ) + local t = Def.ActorFrame { + LoadActor(THEME:GetPathG("MenuTimer","Frame")); + LoadFont("Common Normal") .. { + Text=sTarget[2]; + InitCommand=cmd(y,24+2;zoom,0.5;shadowlength,1); + }; + -- + LoadFont("Common Normal") .. { + Text="0"; + OnCommand=cmd(settext, + ( PREFSMAN:GetPreference("EventMode") ) and "∞" or PREFSMAN:GetPreference("SongsPerPlay") + ); + Condition=sTarget[1] == "EventMode"; + }; + Def.ActorFrame { + -- Life goes up to 1-5 + Def.ActorFrame { + InitCommand=cmd(y,12); + MakeDisplayBar( 6, 5 ) .. { + InitCommand=cmd(x,-16;visible,( GetLifeDifficulty() >= 1 )); + }; + MakeDisplayBar( 6, 9 ) .. { + InitCommand=cmd(x,-8;visible,( GetLifeDifficulty() >= 2 )); + }; + MakeDisplayBar( 6, 13 ) .. { + InitCommand=cmd(x,0;visible,( GetLifeDifficulty() >= 3 )); + }; + MakeDisplayBar( 6, 16 ) .. { + InitCommand=cmd(x,8;visible,( GetLifeDifficulty() >= 4 )); + }; + MakeDisplayBar( 6, 20 ) .. { + InitCommand=cmd(x,16;visible,( GetLifeDifficulty() >= 5 )); + }; + }; + Condition=sTarget[1] == "LifeDifficulty"; + }; + Def.ActorFrame { + -- Timing goes up to 1-8 + Def.ActorFrame { + InitCommand=cmd(y,12); + MakeDisplayBar( 4, 5 ) .. { + InitCommand=cmd(x,-20;visible,( GetTimingDifficulty() >= 1 )); + }; + MakeDisplayBar( 4, 9 ) .. { + InitCommand=cmd(x,-15;visible,( GetTimingDifficulty() >= 2 )); + }; + MakeDisplayBar( 4, 13 ) .. { + InitCommand=cmd(x,-10;visible,( GetTimingDifficulty() >= 3 )); + }; + MakeDisplayBar( 4, 16 ) .. { + InitCommand=cmd(x,-5;visible,( GetTimingDifficulty() >= 4 )); + }; + MakeDisplayBar( 4, 20 ) .. { + InitCommand=cmd(x,5;visible,( GetTimingDifficulty() >= 5 )); + }; + MakeDisplayBar( 4, 20 ) .. { + InitCommand=cmd(x,10;visible,( GetTimingDifficulty() >= 6 )); + }; + MakeDisplayBar( 4, 20 ) .. { + InitCommand=cmd(x,15;visible,( GetTimingDifficulty() >= 7 )); + }; + MakeDisplayBar( 4, 20 ) .. { + InitCommand=cmd(x,20;visible,( GetTimingDifficulty() >= 8 )); + }; + }; + Condition=sTarget[1] == "TimingDifficulty"; + }; + -- +--[[ for i=1,8 do + t[#t+1] = Def.Quad { + InitCommand=cmd(vertalign,bottom;zoomto,4,10+(i*4)); + }; + end --]] + }; + return t +end; + +for i=1,#tInfo do + t[#t+1] = MakeIcon( tInfo[i] ) .. { + InitCommand=cmd(x,(i-1)*fSpacingX); + }; +end + +return t + diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu TimingDifficulty.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu TimingDifficulty.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu TimingDifficulty.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu TimingDifficulty.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,26 @@ +local label_text= false +return Def.ActorFrame { + LoadFont("Common Normal") .. { + Text=GetTimingDifficulty(); + AltText=""; + InitCommand=cmd(horizalign,left;zoom,0.675); + OnCommand= function(self) + label_text= self + self:shadowlength(1):settextf(Screen.String("TimingDifficulty"), ""); + end, + }; + LoadFont("Common Normal") .. { + Text=GetTimingDifficulty(); + AltText=""; + InitCommand=cmd(x,136;zoom,0.675;halign,0); + OnCommand=function(self) + self:shadowlength(1):skewx(-0.125):x(label_text:GetZoomedWidth()+8) + if GetTimingDifficulty() == 9 then + self:settext(Screen.String("Hardest Timing")); + (cmd(zoom,0.5;diffuse,ColorLightTone( Color("Orange")) ))(self); + else + self:settext( GetTimingDifficulty() ); + end + end; + }; +}; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu VersionInfo.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu VersionInfo.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenTitleMenu VersionInfo.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenTitleMenu VersionInfo.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,14 @@ +return Def.ActorFrame { + LoadFont("Common Normal") .. { + Text=string.format("%s %s", ProductFamily(), ProductVersion()); + AltText="StepMania"; + InitCommand=cmd(zoom,0.675); + OnCommand=cmd(horizalign,right;shadowlength,1); + }; + LoadFont("Common Normal") .. { + Text=string.format("%s", VersionDate()); + AltText="Unknown Version"; + InitCommand=cmd(y,16;zoom,0.5); + OnCommand=cmd(horizalign,right;shadowlength,1); + }; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Footer.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Footer.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Footer.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Footer.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,12 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.Quad { + InitCommand=cmd(vertalign,bottom;zoomto,SCREEN_WIDTH,34;diffuse,color("#161616")); +}; + +t[#t+1] = LoadActor(THEME:GetPathG("ScreenWithMenuElements","header/Header")) .. { + InitCommand=cmd(y,-48;vertalign,bottom;zoomtowidth,SCREEN_WIDTH); + OnCommand=cmd(zoomy,-1;diffuse,color("#ffd400")); +}; + +return t; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,58 @@ +local t = Def.ActorFrame {}; + +local function Update(self) + local c = self:GetChildren(); + local bps = GAMESTATE:GetSongBPS() or 1 + c.TextureStripe:texcoordvelocity(bps/3,0); +end + +local function IsVisible() + local r = Screen.String("HeaderText"); + return string.len(r) > 0 and true or false +end + +t[#t+1] = Def.Quad { + InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH+1,50;diffuse,color("#161616")); +} +t[#t+1] = LoadActor("_texture stripe") .. { + Name="TextureStripe"; + InitCommand=cmd(x,-SCREEN_CENTER_X-8;y,-2;horizalign,left;vertalign,top;zoomto,320,50;customtexturerect,0,0,(320/2)/8,50/32); + OnCommand=cmd(texcoordvelocity,2,0;skewx,-0.0575;diffuse,color("#594300");diffuserightedge,color("#59430000")); +}; +t[#t+1] = LoadActor("Header") .. { + InitCommand=cmd(y,1;vertalign,top;zoomtowidth,SCREEN_WIDTH+1;diffuse,color("#ffd400")); + OnCommand=cmd(croptop,46/60); +}; + +t[#t+1] = LoadFont("Common Bold") .. { + Name="HeaderShadow"; + Text=Screen.String("HeaderText"); + InitCommand=cmd(x,-SCREEN_CENTER_X+26;y,28;zoom,1;horizalign,left;maxwidth,200); + OnCommand=cmd(visible,IsVisible();skewx,-0.125;diffuse,BoostColor(color("#ffd40077"),0.375);); + UpdateScreenHeaderMessageCommand=function(self,param) + self:settext(param.Header); + end; +}; + +t[#t+1] = Def.Quad { + Name="Underline"; + InitCommand=cmd(x,-SCREEN_CENTER_X+24-4;y,36;horizalign,left); + OnCommand=cmd(stoptweening;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,192;fadeleft,8/192;faderight,0.5; + visible,string.len( Screen.String("HeaderText") ) > 0 ); +}; + +t[#t+1] = LoadFont("Common Bold") .. { + Name="HeaderText"; + Text=Screen.String("HeaderText"); + InitCommand=cmd(x,-SCREEN_CENTER_X+24;y,26;zoom,1;horizalign,left;shadowlength,0;maxwidth,200); + OnCommand=cmd(visible,IsVisible();skewx,-0.125;diffuse,color("#ffd400");); + UpdateScreenHeaderMessageCommand=function(self,param) + self:settext(param.Header); + end; +}; + +t.BeginCommand=function(self) + self:SetUpdateFunction( Update ); +end + +return t Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/Header.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/Header.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/old _texture stripe.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/old _texture stripe.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/_texture stripe (stretch).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements header/_texture stripe (stretch).png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Help.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Help.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Help.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements Help.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,10 @@ +return Def.HelpDisplay { + File = THEME:GetPathF("HelpDisplay", "text"); + InitCommand=function(self) + local s = THEME:GetString(Var "LoadingScreen","HelpText"); + self:SetTipsColonSeparated(s); + end; + SetHelpTextCommand=function(self, params) + self:SetTipsColonSeparated( params.Text ); + end; +}; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements StageDisplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements StageDisplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements StageDisplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScreenWithMenuElements StageDisplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,40 @@ +local curScreen = Var "LoadingScreen"; +local curStageIndex = GAMESTATE:GetCurrentStageIndex(); +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + LoadFont("Common Normal") .. { + InitCommand=cmd(y,-1;shadowlength,1;); + BeginCommand=function(self) + local top = SCREENMAN:GetTopScreen() + if top then + if not string.find(top:GetName(),"ScreenEvaluation") then + curStageIndex = curStageIndex + 1 + end + end + self:playcommand("Set") + end; + CurrentSongChangedMessageCommand= cmd(playcommand,"Set"), + SetCommand=function(self) + local curStage = GAMESTATE:GetCurrentStage(); + if GAMESTATE:GetCurrentCourse() then + self:settext( curStageIndex+1 .. " / " .. GAMESTATE:GetCurrentCourse():GetEstimatedNumStages() ); + elseif GAMESTATE:IsEventMode() then + self:settextf("Stage %s", curStageIndex); + else + local thed_stage= thified_curstage_index(curScreen:find("Evaluation")) + if THEME:GetMetric(curScreen,"StageDisplayUseShortString") then + self:settext(thed_stage) + self:zoom(0.75); + else + self:settextf("%s Stage", thed_stage); + self:zoom(1); + end; + end; + -- StepMania is being stupid so we have to do this here; + self:diffuse(StageToColor(curStage)); + self:diffusetopedge(ColorLightTone(StageToColor(curStage))); + end; + }; +}; +return t diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar bottom.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar bottom.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar bottom.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar bottom.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar middle.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar middle.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar middle.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar middle.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar StretchThumb.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar StretchThumb.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar StretchThumb.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar StretchThumb.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar TickThumb.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar TickThumb.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar TickThumb.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar TickThumb.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,9 @@ +local t = Def.ActorFrame {}; + +t[#t+1] = Def.ActorFrame { + Def.Quad { + InitCommand=cmd(zoomto,32,32); + }; +}; + +return t \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar top.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar top.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/ScrollBar top.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/ScrollBar top.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_blank \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon 10Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon 10Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon 14Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon 14Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon 5Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon 5Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon 7Keys.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon 7Keys.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Couple.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Couple.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Easy.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Easy.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Endless.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Endless.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Extended.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Extended.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon HalfDouble.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon HalfDouble.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Hard.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Hard.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon KB7.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon KB7.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Normal.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Oni.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Oni.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Rave.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Rave.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Routine.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Routine.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Solo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Solo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Survival.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Survival.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_SelectIcon Versus.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_SelectIcon Versus.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay frame p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +SongMeterDisplay frame p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay stream p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +SongMeterDisplay stream p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p1.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p1.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p2.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p2.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p2.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/SongMeterDisplay tip p2.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +SongMeterDisplay tip p1 \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/_badge.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/_badge.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/default.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/default.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/default.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay autogen/default.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,17 @@ +local t = Def.ActorFrame{}; + +t[#t+1] = LoadActor("_badge") .. { + InitCommand=cmd(shadowlength,1;diffuse,Color.Green;pulse;effectmagnitude,0.875,1,1;effecttiming,0,0,1,0 + effectclock,'beatnooffset';effectperiod,2); +}; +t[#t+1] = Def.Quad { + InitCommand=cmd(zoomto,40,20;diffuse,Color.Black; + diffusealpha,0.5;fadeleft,0.25;faderight,0.25); +}; +t[#t+1] = Def.BitmapText { + Font="Common Normal"; + Text="AG"; + InitCommand=cmd(shadowlength,1;zoom,0.875); +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplayGameplay frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplayGameplay frame.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsDisplayListRow arrow.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsDisplayListRow arrow.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplayListRow autogen.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplayListRow autogen.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsDisplayListRow Cursor.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsDisplayListRow Cursor.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplayListRow frame.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplayListRow frame.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplayListRow StepsType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplayListRow StepsType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplayListRow StepsType.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplayListRow StepsType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,29 @@ +local sString; +local t = Def.ActorFrame{ +--[[ LoadActor("TestStep") .. { + InitCommand=cmd(zoomto,20,20); + }; --]] + LoadFont("Common normal")..{ + InitCommand=cmd(shadowlength,1;horizalign,left;zoom,0.45;skewx,-0.125); + SetMessageCommand=function(self,param) + sString = THEME:GetString("StepsListDisplayRow StepsType",ToEnumShortString(param.StepsType)); + if param.Steps and param.Steps:IsAutogen() then + self:diffusebottomedge(color("0.75,0.75,0.75,1")); + else + self:diffuse(Color("White")); + end; + self:settext( sString ); + end; + }; + -- argh this isn't working as nicely as I would've hoped... + --[[ + Def.Sprite{ + SetMessageCommand=function(self,param) + self:Load( THEME:GetPathG("","_StepsType/"..ToEnumShortString(param.StepsType)) ); + self:diffusealpha(0.5); + end; + }; + --]] +}; + +return t; \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay StepsType.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay StepsType.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StepsDisplay StepsType.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StepsDisplay StepsType.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,29 @@ +local sString; +local t = Def.ActorFrame{ + + LoadFont("Common normal")..{ + InitCommand=cmd(shadowlength,1); + SetMessageCommand=function(self,param) + if param.StepsType then + sString = THEME:GetString("StepsDisplay StepsType",ToEnumShortString(param.StepsType)); + if param.Steps and param.Steps:IsAutogen() then + self:diffusebottomedge(color("0.75,0.75,0.75,1")); + else + self:diffuse(Color("White")); + end; + self:settext( sString ); + end; + end; + }; + -- argh this isn't working as nicely as I would've hoped... + --[[ + Def.Sprite{ + SetMessageCommand=function(self,param) + self:Load( THEME:GetPathG("","_StepsType/"..ToEnumShortString(param.StepsType)) ); + self:diffusealpha(0.5); + end; + }; + --]] +}; + +return t; \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Solo.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Dance_Solo.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/kb7.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/kb7.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Pump_Double.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Pump_Double.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Pump_HalfDouble.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Pump_HalfDouble.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Pump_Single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Pump_Single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Double4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Double4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Double5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Double5.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single4.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single4.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single5.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single5.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single8.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType/Techno_Single8.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/_StepsType Icon dance-single.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/_StepsType Icon dance-single.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StreamDisplay hot.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StreamDisplay hot.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StreamDisplay normal.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StreamDisplay normal.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StreamDisplay passing.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StreamDisplay passing.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/StreamDisplay passing.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/StreamDisplay passing.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +StreamDisplay normal \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/TestStep.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/TestStep.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Graphics/WheelNotifyIcon icons 4x2 (doubleres).png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Graphics/WheelNotifyIcon icons 4x2 (doubleres).png differ diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/de.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/de.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/de.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/de.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,253 @@ +[Screen] +HelpText=&BACK; Verlassen &START; Auswählen &SELECT; Optionen &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Bewegen + +[ScreenWithMenuElements] +HelpText=&BACK; Verlassen &START; Auswählen &MENULEFT;&MENURIGHT; Bewegen +StageCounter=%s Stufe +EventStageCounter=Stufe %03i + +[ScreenTitleMenu] +HelpText=&BACK; Verlassen &START; Auswählen &MENUUP;&MENUDOWN; Bewegen +Network OK=Netwerk OK +Offline=Offline +Connected to %s=Verbunden zu %s +CurrentGametype=Momentaner Spielstyp: %s +LifeDifficulty=Leben-Schwierigkeit: %s +TimingDifficulty=Timing-Schwierigkeit: %s +%i Songs (%i Groups), %i Courses=%i Lieder (%i Gruppen), %i Kurse + +[ScreenTitleJoin] +HelpText=Drücke &START; um zu spielen +HelpTextJoin=Drücke &START; um zu spielen +HelpTextWait=Guthaben erhöhen! +EventMode=Ereignis-Modus +JointPremiumMain=Joint Premium +JointPremiumSecondary=Two players can play with one credit! +DoublesPremiumMain=Doubles Premium +DoublesPremiumSecondary=Play doubles for one credit! + +[ScreenCaution] +HelpText=&START; Fortfahren + +[ScreenDemonstration] +Demonstration=Demonstration +%s - %s [from %s]=%s - %s\n[von %s] + +[ScreenQuickSetupOverview] +Explanation=Schnelleinrichtung bietet einen einfachen Weg um häufig-geränderte und nützliche Einstellungen vorzunehmen. + +[ScreenProfileLoad] +HelpText=... Lade Profile, bitte warten ... + +[ScreenSelectProfile] +%d Song Played=%d Lied gespielt +%d Songs Played=%d Lieder gespielt +PressStart=Drücke &START; um beizutreten. +HelpText=&MENUUP;&MENUDOWN; Profil wechseln &START; Auswählen/Beitreten &BACK; Deselektieren + +[ScreenSelectMaster] +HelpText=&BACK; Verlassen &START; Auswählen / Beitreten &MENULEFT;&MENURIGHT; Bewegen + +[ScreenSelectPlayMode] +HelpText=&BACK; Verlassen &START; Auswählen / Beitreten &MENULEFT;&MENURIGHT; Bewegen +EasyExplanation=Ein Modus für Anfänger. +HardExplanation=Für Experten. +OldNormalExplanation=Nicht zu einfach, nicht zu schwer. +NormalExplanation=Spiel all deine Lieblingslieder! +RaveExplanation=Kämpfe gegen einen Freund oder Gegner. +NonstopExplanation=Mehrere Lieder hintereinander +OniExplanation=Eine wahrhaftiger Test von Können. +EndlessExplanation=Es hört nicht auf, es geht einfach weiter. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Verlassen &START; Auswählen &MENULEFT;&MENURIGHT; Bewegen + +[ScreenGameInformation] +HelpText=&BACK; Verlassen &START; Überspringen + +[ScreenSelectMusic] +NEW!=NEU! +Press Start For Options=Drücke &START; für Optionen +Entering Options=Betrete Optionen +HelpText=&BACK; Verlassen &START; Auswählen / Beitreten &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Bewegen::&AUXWHITE;+[KEY] Sortiere nach [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Schwierigkeiten ändern &SELECT;+&START; Schnellsortierung + +[ScreenSelectCourse] +HelpText=&BACK; Verlassen &START; Auswählen / Beitreten &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Bewegen::&UP;&DOWN;&UP;&DOWN; für andere Kurs-Arten + +[ScreenOptions] +HelpText=&BACK; Verlassen &START; Auswählen &SELECT; Gehe hoch &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Bewegen +Disqualified=Punktestand wird disqulifiziert! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=Herzfrequenz eingeben +Song Length=Liedlänge +Heart Rate=Herzfrequenz + +[ScreenEvaluation] +HelpText=&BACK; Verlassen &START; Weiter machen &MENULEFT;+&MENURIGHT; oder &SELECT; Schnappschuss +LifeDifficulty=Leben-Schwierigkeit: %s +TimingDifficulty=Timing-Schwierigkeit: %s +MachineRecord=Maschinen-Rekord #%i! +PersonalRecord=Persönlicher Rekord #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=Stil automatisch setzen +NotePosition=Notenpositionen +ComboOnRolls=Rolls Increment Combo +ComboUnderField=Combo Under Field + +GameplayShowScore=Show Score +GameplayShowStepsDisplay=Show Steps +ShowLotsaOptions=Options Density +LongFail=Fail Length +FlashyCombo=Flashy Combo +GameplayFooter=Gameplay Footer +FancyUIBG=Fancy UI Background +TimingDisplay=Timing Display + +[OptionExplanations] +AutoSetStyle=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 (or press Shift+F2). +NotePosition=Determines where the arrow receptors are placed in gameplay. +ComboOnRolls=Choose if rolls should increment the combo or not. If you change this option, you will need to reload the metrics (via Shift+F2) for it to take effect. +ComboUnderField=Determine if the combo should display under the notes or not. + +GameplayShowScore=Show or Hide the score display in gameplay. +GameplayShowStepsDisplay=Show or Hide the step information display in gameplay. +ShowLotsaOptions=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. +LongFail=Choose between the original "Long" sm-ssc fail or the "Short" fail adopted later. +FlashyCombo=Determine if combo flashes should be shown or not. +GameplayFooter=If on, displays a footer that blocks visibility of incoming arrows for a certain region ( DDR's score frame ). +FancyUIBG=Toggles the fancy background. "Off" is recommended for older computers. Changes will take effect at the title screen. +TimingDisplay=Toggles the display of timing segments on the song progress meter. + +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. +Accel=Change the way arrows approach the targets. +Effect=Change the size or movement of the arrows and/or targets. +Appearance=Control the visibilty of the arrows. +Turn=Change the step choreography by adjusting the position of arrows. +Insert=Add tap notes to the step choreography. +Holds=Turn some tap notes into hold notes. +Mines=Add or remove mine notes. +PlayerAutoPlay=Have the notefield play by itself. +ScoreDisplay=Change the way your score is shown. +ProTiming=Change the way your judgments are shown. +Scroll=Adjust the direction arrows flow to meet the targets. +NoteSkins=Choose a different appearance for the arrows. +Handicap=Removes notes. Using these will invalidate a high score. +Hide=Dark hides the receptors. Blind hides judgments. Cover hides the background. +Persp=Change the viewing angle of the arrow stream. +Steps=Adjust the difficulty of the steps. +Characters=Dancing buddies. +SaveToProfileHelp=Requires profile or memory card. +MusicRateHelp=Play the music at a faster rate. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=How to Obtain and Install Songs for StepMania +Finding Songs=Where to Find Songs +Installing Songs=How to Install Songs +Importing Songs=Importing from existing StepMania installs +Reload Songs=Reload Songs +Exit=Back to Title Menu + +Explanation-WhereToFind=Launches a web page with information on finding songs for use with StepMania. +Explanation-HowToInstall=Launches a web page with song installation instructions. +Explanation-AdditionalFolders=If you have other installs of StepMania, you can use the AdditionalFolders preferences to load it into StepMania 5. +Explanation-ReloadSongs=Reload the songs. This is required if you've added/changed/deleted songs while StepMania is running. +Explanation-Exit=Return to the title menu. + +[OptionNames] +Custom=Special +Many=Viele +Few=Wenige +Normal=Normal +Lower=Lower +Short=Kurz +Long=Lang + +[ScreenTestInput] +HelpText=Halte &BACK; oder &START; um zu verlassen. + +[PaneDisplay] +Taps=Antipper +Jumps=Sprünge +Holds=Halter +Mines=Minen +Hands=Hände +Rolls=Rollen +Lifts=Heber +Fakes=Fälschungen +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Verlassen + +[ScreenGameOver] +GAME OVER=GAME OVER +Play again soon!=Spiel bald wieder! + +[ScreenHowToPlay] +How To Play StepMania=Wie man StepMania spielt +Information=Informationen + +Feet=Deine Füße werden zum Spielen verwendet! +Tap=Wenn die Pfeile zu diesem Punkt kommen,\ntritt auf die passenden Flächen. +Jump=Tritt auf beide Flächen, wenn zwei verschiedene\nPfeile zur selben Zeit auftauchen! +Miss=Wenn du oft daneben tretest, wird deine\nTanz-Anzeige abnehmen bis das Spiel\nvorbei ist! + + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/en.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/en.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/en.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/en.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,266 @@ +[Screen] +HelpText=&BACK; Exit &START; Select &SELECT; Options &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move + +[ScreenWithMenuElements] +HelpText=&BACK; Exit &START; Select &MENULEFT;&MENURIGHT; Move +StageCounter=%s Stage +EventStageCounter=Stage %03i + +[ScreenTitleMenu] +HelpText=&BACK; Exit &START; Select &MENUUP;&MENUDOWN; Move +Network OK=Network OK +Offline=Offline +Connected to %s=Connected to %s +CurrentGametype=Current Gametype: %s +LifeDifficulty=Life Difficulty: %s +TimingDifficulty=Timing Difficulty: %s +%i Songs (%i Groups), %i Courses=%i Songs (%i Groups), %i Courses + +[ScreenTitleJoin] +HelpText=Press &START; to Play +HelpTextJoin=Press &START; to Play +HelpTextWait=Insert Credits! +EventMode=Event Mode +JointPremiumMain=Joint Premium +JointPremiumSecondary=Two players can play with one credit! +DoublesPremiumMain=Doubles Premium +DoublesPremiumSecondary=Play doubles for one credit! + +[ScreenCaution] +HelpText=&START; Continue + +[ScreenDemonstration] +Demonstration=Demonstration +%s - %s [from %s]=%s - %s\n[from %s] + +[ScreenQuickSetupOverview] +Explanation=Quick Setup provides a easy way to set commonly-changed and useful preferences. + +[ScreenProfileLoad] +HelpText=... Loading profiles, please wait ... + +[ScreenSelectProfile] +%d Song Played=%d Song Played +%d Songs Played=%d Songs Played +PressStart=Press &START; to join. +HelpText=&MENUUP;&MENUDOWN; Switch Profile &START; Choose/Join &BACK; Unselect + +[ScreenSelectMaster] +HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move + +[ScreenSelectPlayMode] +HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move +EasyExplanation=A mode for beginners. +HardExplanation=For experts. +OldNormalExplanation=Not too easy, not too hard. +NormalExplanation=Play all your favorite songs! +RaveExplanation=Battle against friend or foe. +NonstopExplanation=Several Songs in a row +OniExplanation=A true test of skill. +EndlessExplanation=It don't stop, it keep rollin'. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Exit &START; Select &MENULEFT;&MENURIGHT; Move + +[ScreenGameInformation] +HelpText=&BACK; Exit &START; Skip + +[ScreenSelectMusic] +NEW!=NEW! +Press Start For Options=Press &START; for Options +Entering Options=Entering Options +HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&AUXWHITE;+[KEY] Sort To [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Change Difficulties &SELECT;+&START; Quick Sort + +[ScreenSelectCourse] +HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&UP;&DOWN;&UP;&DOWN; for other course types + +[ScreenOptions] +HelpText=&BACK; Exit &START; Choose &SELECT; Go Up &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move +Disqualified=Score will be disqualified! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +GiveUpAbortedText= +GiveUpStartText=Double tap &START; to access menu +GiveUpSelectText=Double tap &SELECT; to access menu +GiveUpBackText=Double tap &BACK; to access menu +HelpText= + +[PauseMenu] +continue_playing=Continue Playing +end_course=End Course +forfeit_course=Forfeit Course +forfeit_song=Forfeit Song +pause_count=Pause Count +restart_song=Restart Song +skip_song=Skip Song + +[ScreenHeartEntry] +Enter Heart Rate=Enter Heart Rate +Song Length=Song Length +Heart Rate=Heart Rate + +[ScreenEvaluation] +HelpText=&BACK; Exit &START; Move On &MENULEFT;+&MENURIGHT; or &SELECT; Snapshot +LifeDifficulty=Life Difficulty: %s +TimingDifficulty=Timing Difficulty: %s +MachineRecord=Machine Record #%i! +PersonalRecord=Personal Record #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=Auto Set Style +NotePosition=Note Positions +ComboOnRolls=Rolls Increment Combo +ComboUnderField=Combo Under Field + +GameplayShowScore=Show Score +GameplayShowStepsDisplay=Show Steps +ShowLotsaOptions=Options Density +LongFail=Fail Length +FlashyCombo=Flashy Combo +GameplayFooter=Gameplay Footer +FancyUIBG=Fancy UI Background +TimingDisplay=Timing Display + +[OptionExplanations] +AutoSetStyle=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 (or press Shift+F2). +NotePosition=Determines where the arrow receptors are placed in gameplay. +ComboOnRolls=Choose if rolls should increment the combo or not. If you change this option, you will need to reload the metrics (via Shift+F2) for it to take effect. +ComboUnderField=Determine if the combo should display under the notes or not. + +GameplayShowScore=Show or Hide the score display in gameplay. +GameplayShowStepsDisplay=Show or Hide the step information display in gameplay. +ShowLotsaOptions=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. +LongFail=Choose between the original "Long" sm-ssc fail or the "Short" fail adopted later. +FlashyCombo=Determine if combo flashes should be shown or not. +GameplayFooter=If on, displays a footer that blocks visibility of incoming arrows for a certain region ( DDR's score frame ). +FancyUIBG=Toggles the fancy background. "Off" is recommended for older computers. Changes will take effect at the title screen. +TimingDisplay=Toggles the display of timing segments on the song progress meter. + +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. +Accel=Change the way arrows approach the targets. +Effect=Change the size or movement of the arrows and/or targets. +Appearance=Control the visibilty of the arrows. +Turn=Change the step choreography by adjusting the position of arrows. +Insert=Add tap notes to the step choreography. +Holds=Turn some tap notes into hold notes. +Mines=Add or remove mine notes. +PlayerAutoPlay=Have the notefield play by itself. +ScoreDisplay=Change the way your score is shown. +ProTiming=Change the way your judgments are shown. +Scroll=Adjust the direction arrows flow to meet the targets. +NoteSkins=Choose a different appearance for the arrows. +Handicap=Removes notes. Using these will invalidate a high score. +Hide=Dark hides the receptors. Blind hides judgments. Cover hides the background. +Persp=Change the viewing angle of the arrow stream. +Steps=Adjust the difficulty of the steps. +Characters=Dancing buddies. +SaveToProfileHelp=Requires profile or memory card. +MusicRateHelp=Play the music at a faster rate. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=How to Obtain and Install Songs for StepMania +Finding Songs=Where to Find Songs +Installing Songs=How to Install Songs +Importing Songs=Importing from existing StepMania installs +Reload Songs=Reload Songs +Exit=Back to Title Menu + +Explanation-WhereToFind=Launches a web page with information on finding songs for use with StepMania. +Explanation-HowToInstall=Launches a web page with song installation instructions. +Explanation-AdditionalFolders=If you have other installs of StepMania, you can use the AdditionalFolders preferences to load it into StepMania 5. +Explanation-ReloadSongs=Reload the songs. This is required if you've added/changed/deleted songs while StepMania is running. +Explanation-Exit=Return to the title menu. + +[OptionNames] +Custom=Special +Many=Many +Few=Few +Normal=Normal +Lower=Lower +Short=Short +Long=Long + +[ScreenTestInput] +HelpText=Hold &BACK; or &START; to exit. + +[PaneDisplay] +Taps=Taps +Jumps=Jumps +Holds=Holds +Mines=Mines +Hands=Hands +Rolls=Rolls +Lifts=Lifts +Fakes=Fakes +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Exit + +[ScreenGameOver] +GAME OVER=GAME OVER +Play again soon!=Play again soon! + +[ScreenHowToPlay] +How To Play StepMania=How To Play StepMania +Information=Information + +Feet=Your feet will be used to play! +Tap=When the arrows rise to this point,\nstep on the matching panels. +Jump=Step on both panels if two different\narrows appear at the same time! +Miss=If you misstep repeatedly, your dance\ngauge will decrease until the game\nis over! + + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/es.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/es.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/es.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/es.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,254 @@ +[KEY] Sort To [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Cambiar dificultad &SELECT;+&START; Orden rápido + +[Screen] +HelpText=&BACK; Salir &START; Seleccionar &SELECT; Opciones &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Mover + +[ScreenWithMenuElements] +HelpText=&BACK; Salir &START; Seleccionar &MENULEFT;&MENURIGHT; Mover +StageCounter=Fase %s +EventStageCounter=Fase %03i + +[ScreenTitleMenu] +HelpText=&BACK; Salir &START; Seleccionar &MENUUP;&MENUDOWN; Mover +Network OK=Conexión OK +Offline=Sin conexión +Connected to %s=Conectado a %s +CurrentGametype=Tipo de juego: %s +LifeDifficulty=Dificultad vida: %s +TimingDifficulty=Dificultad ritmo: %s +%i Songs (%i Groups), %i Courses=%i canciones (%i grupos), %i cursos + +[ScreenTitleJoin] +HelpText=Pulsa &START; para jugar +HelpTextJoin=Pulsa &START; para jugar +HelpTextWait=Inserta créditos... +EventMode=Modo evento +JointPremiumMain=Premium mixto +JointPremiumSecondary=¡Con un crédito pueden participar dos jugadores! +DoublesPremiumMain=Premium dobles +DoublesPremiumSecondary=¡Con un crédito puedes jugar a dobles! + +[ScreenDemonstration] +Demonstration=Demostración + +[ScreenQuickSetupOverview] +Explanation=La configuración rápida te permite cambiar opciones comunes de forma sencilla. + +[ScreenProfileLoad] +HelpText=Cargando perfiles... + +[ScreenSelectProfile] +%d Song Played=%d canción jugada +%d Songs Played=%d canciones jugadas +PressStart=Presiona\n&START;\npara unirte +HelpText=&MENUUP;&MENUDOWN; Cambiar perfil &START; Elegir/Unirse &BACK; Deseleccionar + +[ScreenSelectMaster] +HelpText=&BACK; Salir &START; Elegir/Unirse &MENULEFT;&MENURIGHT; Mover + +[ScreenSelectPlayMode] +HelpText=&BACK; Salir &START; Elegir/Unirse &MENULEFT;&MENURIGHT; Mover +EasyExplanation=Modalidad para principiantes +HardExplanation=Solo para expertos +OldNormalExplanation=Ni muy fácil, ni muy difícil +NormalExplanation=¡Juega con tus canciones favoritas! +RaveExplanation=Lucha contra un amigo o rival +ExtendedExplanation=Varias canciones seguidas +OniExplanation=Pon a prueba tu habilidad +EndlessExplanation=A tope y sin parar +NonstopExplanation=Varias canciones seguidas + +[ScreenSelectPlayStyle] +HelpText=&BACK; Salir &START; Elegir &MENULEFT;&MENURIGHT; Mover + +[ScreenGameInformation] +HelpText=&BACK; Salir &START; Ignorar + +[ScreenSelectMusic] +NEW!=¡NUEVA! +Press Start For Options=Pulsa &START; para ver más opciones +Entering Options=Accediendo al menú +HelpText=&BACK; Salir &START; Elegir/Unirse &SELECT; Códigos especiales &MENULEFT;&MENURIGHT; Mover::&AUXWHITE;+[TECLA] Ordenar por letra [TECLA] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Cambiar dificultad &SELECT;+&START; Organización rápida + +[ScreenSelectCourse] +HelpText=&BACK; Salir &START; Elegir/Unirse &SELECT; Códigos especiales &MENULEFT;&MENURIGHT; Mover::&UP;,&DOWN;,&UP;,&DOWN; para otros cursos + +[ScreenOptions] +HelpText=&BACK; Salir &START; Elegir &SELECT; Atrás &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Mover +Disqualified=¡La puntuación será descalificada! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenEvaluation] +HelpText=&BACK; Salir &START; Continuar &MENULEFT;+&MENURIGHT; o &SELECT; Captura +LifeDifficulty=Dificultad vida: %s +TimingDifficulty=Dificultad ritmo: %s +MachineRecord=Récord de esta máquina: %i +PersonalRecord=Récord personal: %i +ITG DP:=DP ITG: +MIGS DP:=DP MIGS: + +[OptionTitles] +AutoSetStyle=Selección automática +NotePosition=Posición de notas +ComboOnRolls=Repes combos +ComboUnderField=Combo bajo las notas + +GameplayShowScore=Mostrar puntuación +GameplayShowStepsDisplay=Mostrar pasos +ShowLotsaOptions=Número opciones +LongFail=Tiempo de fallo +FlashyCombo=Combo animado +GameplayFooter=Interfaz al pie +FancyUIBG=Fondo animado +TimingDisplay=Mostrar duración + +[OptionExplanations] +AutoSetStyle=Permite que el juego liste todos los modos de uno y dos jugadores. Es necesario que StepMania se reinicie (o pulsar Mayús+F2). +NotePosition=Determina dónde se colocan los receptores de flechas en el juego. +ComboOnRolls=Elige si los repes incrementan el combo o no. +ComboUnderField=Determina si el combo debe aparecer bajo las notas o no. + +GameplayShowScore=Muestra u oculta la puntuación en el juego. +GameplayShowStepsDisplay=Muestra u oculta la información de pasos en el juego. +ShowLotsaOptions=Escoge cuántas líneas o filas de opciones escoger.\nPOCAS mantiene el mínimo; MUCHAS añade varias modificaciones. +LongFail=Escoge entre la pantalla de fallo LARGA de sm-ssc o la CORTA adoptada más tarde. +FlashyCombo=Determina si los flashes del combo deben mostrarse. +GameplayFooter=Si está activado, muestra un mensaje al pie de la pantalla que bloquea la visibilidad de las flechas (pantalla de puntuación DDR). +FancyUIBG=Activa el fondo animado. Se recomienda desactivarlo en ordenadores\nno muy potentes. Los cambios se verán en la pantalla de título. +TimingDisplay=Activa la visualización de segmentos de sincronización\nen la barra de progreso de la canción. + +ScoringType=Define qué método de puntuación emplear. Si se selecciona Especial, puedes escoger un modo de puntuación especial en el menú de opciones. + +Speed=Cambia la velocidad de las flechas. +Accel=Cambia la forma en la que las flechas se acercan al objetivo. +Effect=Cambia el tamaño o el movimiento de las flechas u objetivos. +Appearance=Cambia el aspecto de las flechas. +Turn=Cambia la coreografía de los pasos. +Insert=Añade pasos a la coreografía del baile. +Holds=Activa o desactiva flechas que hay que mantener. +Mines=Activa o desactiva las minas. +PlayerAutoPlay=Juega y reproduce los pasos automáticamente. +ScoreDisplay=Cambia la forma en la que se muestra la puntuación. +ProTiming=Cambia la forma en la que se muestran los juicios. +Scroll=Cambia la orientación del área de pasos. +NoteSkins=Cambia el diseño de las flechas. +Handicap=Elimina ciertos pasos. Si se activa, no tendrás acceso a la tabla de récords. +Hide=Oscuro cambia los receptores. A ciegas cambia el juicio. Cubrir oculta el fondo. +Persp=Cambia el ángulo de visión del flujo de flechas. +Steps=Selecciona la dificultad de los pasos. +Characters=Personajes de baile. +SaveToProfileHelp=Necesita un perfil o tarjeta de memoria. +MusicRateHelp=Reproduce la música más rápido. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Cómo conseguir e instalar canciones para StepMania +Finding Songs=Dónde encontrar canciones +Installing Songs=Cómo instalar canciones +Importing Songs=A través de otras instalaciones de StepMania +Reload Songs=Recargar canciones +Exit=Volver al menú principal + +Explanation-WhereToFind=Abre una página web con información sobre cómo encontrar canciones que puedas usar en StepMania. +Explanation-HowToInstall=Abre una página web con instrucciones sobre cómo instalar canciones. +Explanation-AdditionalFolders=Si tienes otra instalación de StepMania, puedes utilizar la carpeta AdditionalFolders para cargar sus contenidos a StepMania 5. +Explanation-ReloadSongs=Recarga las canciones. Esto es necesario si has añadido, cambiado o eliminado canciones mientras StepMania funcionaba. +Explanation-Exit=Regresa al menú principal. + +[OptionNames] +Custom=Especial +Few=Pocas +Long=Larga +Lower=Bajo +Many=Muchas +Normal=Normal +Short=Corta + +[Protiming] +MS=MS + +[PaneDisplay] +Taps=Flechas +Jumps=Saltos +Holds=Presión +Mines=Minas +Hands=Manos +Rolls=Repes +Lifts=Sueltas +Fakes=Falsos +S=S +V=V +A=A +F=F +C=C + +[ScreenTestInput] +HelpText=Mantén pulsado &BACK; o &START; para salir. + +[ScreenCaution] +HelpText=&START; Continuar + +[ScreenContinue] +HelpText=&START; Temporiz. avance + +[ScreenGameOver] +GAME OVER=FIN DE LA PARTIDA +Play again soon!=¡Vuelve pronto! + +[ScreenHeartEntry] +Enter Heart Rate=Introducir pulso cardíaco +Heart Rate=Pulso cardíaco +Song Length=Duración canción + +[ScreenHowToPlay] +Feet=¡Usa los pies para jugar! +How To Play StepMania=Cómo jugar a StepMania +Information=Información +Jump=¡Salta en dos paneles si\naparecen flechas a la vez! +Miss=¡Si fallas repetidamente, tu medidor\ndescenderá hasta que se\nacabe la partida! +Tap=Cuando las flechas suban a este punto,\npisa el panel correspondiente. + +[ScreenMapControllers] +Exit=Salir diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/fr.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/fr.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/fr.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/fr.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,253 @@ +[Screen] +HelpText=&BACK; Quitter &START; Lancer &SELECT; Options &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Se déplacer + +[ScreenWithMenuElements] +HelpText=&BACK; Quitter &START; Choisir &MENULEFT;&MENURIGHT; Changer +StageCounter=Niveau %s +EventStageCounter=Niveau %03i + +[ScreenTitleMenu] +HelpText=&BACK; Quitter &START; Sélectionner &MENUUP;&MENUDOWN; Se déplacer +Network OK=Réseau OK +Offline=Déconnecté +Connected to %s=Connecté à %s +CurrentGametype=Type de jeu actuel : %s +LifeDifficulty=Difficulté de Vie : %s +TimingDifficulty=Difficulté de Timing : %s +%i Songs (%i Groups), %i Courses=%i Chansons (%i Groupes), %i Parcours + +[ScreenTitleJoin] +HelpText=Appuyez sur &START; +HelpTextJoin=Appuyez sur &START; +HelpTextWait=Insérez des jetons ! +EventMode=Mode Évènement +JointPremiumMain=Joint Premium +JointPremiumSecondary=2 joueurs peuvent jouer avec 1 jeton ! +DoublesPremiumMain=Doubles Premium +DoublesPremiumSecondary=Jouer doublement pour 1 jeton ! + +[ScreenCaution] +HelpText=&START; Suivant + +[ScreenDemonstration] +Demonstration=Démonstration +%s - %s [from %s]=%s - %s\n[from %s] + +[ScreenQuickSetupOverview] +Explanation=L'installation rapide est un moyen facile d'installer avec le paramétrage communément utilisé. + +[ScreenProfileLoad] +HelpText=... Chargement des profils, veuillez patienter ... + +[ScreenSelectProfile] +%d Song Played=%d chanson jouée +%d Songs Played=%d chansons jouées +PressStart=Appuyez sur &START; +HelpText=&MENUUP;&MENUDOWN; Changer de profil &START; Choisir &BACK; Revenir + +[ScreenSelectMaster] +HelpText=&BACK; Quitter &START; Choisir &MENULEFT;&MENURIGHT; Changer + +[ScreenSelectPlayMode] +HelpText=&BACK; Quitter &START; Choisir &MENULEFT;&MENURIGHT; Changer +EasyExplanation=Mode débutant. +HardExplanation=Mode expert. +OldNormalExplanation=Ni trop facile, ni trop difficile. +NormalExplanation=Jouez sur vos chansons préférées ! +RaveExplanation=Combattez un ami ou un ennemi ! +NonstopExplanation=Plusieurs chansons d'affilées. +OniExplanation=Testez vos performances. +EndlessExplanation=Je ne veux pas m'arrêter de jouer ! + +[ScreenSelectPlayStyle] +HelpText=&BACK; Quitter &START; Choisir &MENULEFT;&MENURIGHT; Se déplacer + +[ScreenGameInformation] +HelpText=&BACK; Quitter &START; Passer + +[ScreenSelectMusic] +NEW!=NOUVEAU! +Press Start For Options=Appuyez sur &START; pour les options +Entering Options=Chargement des options +HelpText=&BACK; Quitter &START; Lancer &SELECT; Codes Magiques &MENULEFT;&MENURIGHT; Changer::&AUXWHITE;+[A-Z] Pour Trier à [A-Z] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Changer la difficulté &SELECT;+&START; Tri rapide + +[ScreenSelectCourse] +HelpText=&BACK; Quitter &START; Choisir &SELECT; Codes Magiques &MENULEFT;&MENURIGHT; Se déplacer::&UP;&DOWN;&UP;&DOWN; Pour d'autres modes de jeu + +[ScreenOptions] +HelpText=&BACK; Retour &START; Choisir/ Descendre &SELECT; Monter &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Changer +Disqualified=Le score sera disqualifié ! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=Entrez le Pouls +Song Length=Longueur de la chanson +Heart Rate=Pouls + +[ScreenEvaluation] +HelpText=&BACK; Quitter &START; Continuer &MENULEFT;+&MENURIGHT; ou &SELECT; Prendre en Photo +LifeDifficulty=Difficulté de Vie : %s +TimingDifficulty=Difficulté de Timing : %s +MachineRecord=Record #%i! +PersonalRecord=Record personnel #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Accélérer le chrono + +[OptionTitles] +AutoSetStyle=Style Automatique +NotePosition=Position des Notes +ComboOnRolls=Roulement de Tambour +ComboUnderField=Combo Sous le Champ + +GameplayShowScore=Afficher le Score +GameplayShowStepsDisplay=Afficher les Pas +ShowLotsaOptions=Densité des Options +LongFail=Longueur du Échoué +FlashyCombo=Combo Éclatant +GameplayFooter=Bas de Page +FancyUIBG=Fond IU Fantaisiste +TimingDisplay=Affichage de Timing + +[OptionExplanations] +AutoSetStyle=Permet au jeu de lister tous les modes de jeu à un ou deux joueurs au lieu d'un seul mode. Peut nécessiter un redémarrage de StepMania (ou appuyez sur Maj + F2). +NotePosition=Choisissez où les cibles des flèches seront affichées. +ComboOnRolls=Choisi si chaque extra tape de Tambour devraient ajouter au combo ou non. Si vous changez cette option, vous devrez recharger les métriques (via Maj+F2) pour prendre effet. +ComboUnderField=Détermine si les combos doivent s'afficher ou non sous les flèches. + +GameplayShowScore=Affiche ou masque le score en jeu. +GameplayShowStepsDisplay=Affiche ou masque les informations de pas en jeu. +ShowLotsaOptions=Choisi le nombre de lignes/rangées d'options possible. &oq;Peu&cq; garde le minimum. &oq;Plusieurs&cq; ajoute plusieurs modifications. +LongFail=Choisi la longueur de temps que "Échoué" soie aperçu, entre l'original "Long" de sm-ssc ou le "Court" adopté plus tard. +FlashyCombo=Choisi si les éclats de combo doivent être montrés ou non. +GameplayFooter=Si activé, une zone en bas d'écran masque les flèches( score DDR). +FancyUIBG=Active le mode "Fantaise". "Off" est recommandé sur les PC les plus anciens. Les changements prendront effet sur l'écran titre. +TimingDisplay=Bascule l'affichage des segments de timing sur la barre de progression de la chanson. + +ScoringType=Définit comment la note est calculée. Si vous avez sélectionné "Spécial", vous pouvez choisir "Special Scoring Mode" dans les Options de Thèmes. + +Speed=Ajuste la vitesse à laquelle les flèches arrivent vers les cibles +Accel=Change la manière dont les flèches se rapprochent des cibles. +Effect=Change la taille ou le mouvement des flèches et/ou des cibles. +Appearance=Contrôle la visibilité des flèches. +Turn=Modifie la chorégraphie en ajustant la position des flèches. +Insert=Ajoute des notes de Tape à la chorégraphie de pas. +Holds=Ôte les notes « Tenir » ; \n Converti des « Tapes » en « Tenirs » ; \n Change les « Tenirs » en « Tambours » ; +Mines=Ajoute ou supprime les mines. +PlayerAutoPlay=Joue la chorégraphie automatiquement. +ScoreDisplay=Change la présentation du score. +ProTiming=Change la façon dont les jugements sont affichés. +Scroll=Ajuste la direction que les flèches prennent pour atteindre les cibles. +NoteSkins=Change l'apparence des flèches/notes. +Handicap=Supprime des flèches, mais rend le high score invalide. +Hide="Sombre" Masque les Cibles;\n "Aveugle" les Jugement;\n et "Couverture" le Fond. +Persp=Change l'angle que l'on voie les flèches et cibles. +Steps=Ajuste la difficulté des pas. +Characters=Amis de Dance. +SaveToProfileHelp=Nécessite un profil ou une carte mémoire. +MusicRateHelp=Joue la chanson à un rythme plus rapide. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Comment obtenir de nouvelles chansons pour Stepmania et les installer +Finding Songs=Où trouver des chansons +Installing Songs=Comment installer des chansons +Importing Songs=Importer depuis une ancienne installation de Stepmania +Reload Songs=Recharger les chansons +Exit=Revenir au menu précédent + +Explanation-WhereToFind=Ouvrir une page web pour trouver des chansons pour StepMania. (Anglais) +Explanation-HowToInstall=Ouvrir une page web pour expliquer l'installation de nouvelle chanson.(Anglais) +Explanation-AdditionalFolders=Si vous avez déjà installé StepMania, vous pouvez utiliser un dossier supplémentaire dans les Préférences pour les charger les chansons dans StepMania 5. +Explanation-ReloadSongs=Recharge la liste des chansons. Ceci est obligatoire si vous avez ajouté, déplacé ou supprimé des chansons alors que StepMania était lancé. +Explanation-Exit=Revenir au menu précédent + +[OptionNames] +Custom=Spécial +Many=Beaucoup +Few=Peu +Normal=Normal +Lower=Plus Bas +Short=Court +Long=Long + +[ScreenTestInput] +HelpText=Tenir &BACK; ou &START; pour Quitter + +[PaneDisplay] +Taps=Tapes +Jumps=Sauts +Holds=Tenir +Mines=Mines +Hands=Mains +Rolls=Tambours +Lifts=Lever +Fakes=Fausses +S=Co +V=V +A=A +F=G +C=Ch + +[ScreenMapControllers] +Exit=Retour + +[ScreenGameOver] +GAME OVER=PERDU +Play again soon!=Revenez jouer ! + +[ScreenHowToPlay] +How To Play StepMania=Comment jouer à StepMania +Information=Informations + +Feet=Vos pieds seront utilisés pour jouer ! +Tap=Lorsque les flèches arrivent à ce niveau, \n appuyez sur les panneaux correspondants. +Jump=Appuyez sur les deux flèches en même temps ! +Miss=Si vous faites plusieurs erreurs d'affilée, \n votre jauge diminuera jusqu'à perdre la partie ! + + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/id.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/id.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/id.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/id.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,266 @@ +[Screen] +HelpText=&BACK; Keluar &START; Select &SELECT; Pilihan &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Pindah + +[ScreenWithMenuElements] +HelpText=&BACK; Keluar &START; Select &MENULEFT;&MENURIGHT; Pindah +StageCounter=%s Stage +EventStageCounter=Stage %03i + +[ScreenTitleMenu] +HelpText=&BACK; Keluar &START; Select &MENUUP;&MENUDOWN; Pindah +Network OK=Jaringan OK +Offline=Luring +Connected to %s=Tersambung ke %s +CurrentGametype=Sedang bermain: %s +LifeDifficulty=Kesulitan Nyawa: %s +TimingDifficulty=Kesulitan Timing: %s +%i Lagu (%i Grup), %i Courses=%i Lagu (%i Grup), %i Kursus + +[ScreenTitleJoin] +HelpText=Tekan &START; untuk Bermain +HelpTextJoin=Tekan &START; untuk Bermain +HelpTextWait=Masukan Kredit! +EventMode=Modus Acara +JointPremiumMain=Joint Premium +JointPremiumSecondary=Dua pemain dapat bermain dengan satu kredit! +DoublesPremiumMain=Premium Dobel +DoublesPremiumSecondary=Bermain Dobel untuk satu kredit! + +[ScreenCaution] +HelpText=&START; Lanjut + +[ScreenDemonstration] +Demonstration=Demonstrasi +%s - %s [dari %s]=%s - %s\n[dari %s] + +[ScreenQuickSetupOverview] +Explanation=Setup Cepat memberikan cara mudah untuk mengatur ubahan-umum dan preferensi-preferensi berguna. + +[ScreenProfileLoad] +HelpText=... Memuat profile, silahkan tunggu ... + +[ScreenSelectProfile] +%d Lagu Dimainkan=%d Lagu telah dimainkan +%d Lagu Dimainkan=%d Lagu telah dimainkan +PressStart=Tekan &START; untuk bergabung. +HelpText=&MENUUP;&MENUDOWN; Ganti Profil &START; Pilih/Gabung &BACK; Cabut + +[ScreenSelectMaster] +HelpText=&BACK; Keluar &START; Pilih / Gabung &MENULEFT;&MENURIGHT; Pindah + +[ScreenSelectPlayMode] +HelpText=&BACK; Keluar &START; Pilih / Gabung &MENULEFT;&MENURIGHT; Pindah +EasyExplanation=Sebuah modus untuk Pemula. +HardExplanation= Untuk ahli. +OldNormalExplanation=Tak terlalu gampang, tak terlalu sulit. +NormalExplanation=Mainkan semua lagu favorit-mu! +RaveExplanation=Bertarung antar teman atau musuh. +NonstopExplanation=Beberapa lagu berturut-turut +OniExplanation=Sebuah tes skil yang sejati. +EndlessExplanation=Tak berhenti, terus berjalan. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Keluar &START; Pilih &MENULEFT;&MENURIGHT; Pindah + +[ScreenGameInformation] +HelpText=&BACK; Keluar &START; Lewati + +[ScreenSelectMusic] +NEW!=BARU! +Press Start For Options=Tekan &START; untuk Pilihan +Entering Options=Memasuki Pilihan +HelpText=&BACK; Keluar &START; Pilih / Gabung &SELECT; Kode Ajaib &MENULEFT;&MENURIGHT; Pindah::&AUXWHITE;+[KEY] Sortir ke [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Ubah Kesulitan &SELECT;+&START; Sortir Cepat + +[ScreenSelectCourse] +HelpText=&BACK; Keluar &START; Pilih / Gabung &SELECT; Kode Ajaib &MENULEFT;&MENURIGHT; Pindah::&UP;&DOWN;&UP;&DOWN; untuk tipe course yang lain + +[ScreenOptions] +HelpText=&BACK; Keluar &START; Pilih &SELECT; Ke Atas &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Pindah +Disqualified=Skor akan didiskualifikasi! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +GiveUpAbortedText= +GiveUpStartText=Tekan dua kali &START; untuk mengakses menu +GiveUpBackText=Tekan dua kali &BACK; untuk mengakses menu +SkipSongText=Tekan dua kali &SELECT; untuk mengakses menu +HelpText= + +[PauseMenu] +continue_playing=Lanjutkan Bermain +end_course=Akhiri Course +forfeit_course=Tinggalkan Course +forfeit_song=Tinggalkan lagu +pause_count=Hitungan Tunda +restart_song=Mulai ulang Lagu +skip_song=Lewati Lagu + +[ScreenHeartEntry] +Enter Heart Rate=Masukan Detak Jantung +Song Length=Panjang Lagu +Heart Rate=Detak Jantung + +[ScreenEvaluation] +HelpText=&BACK; Keluar &START; Lanjutkan &MENULEFT;+&MENURIGHT; atau &SELECT; Ambil Gambar +LifeDifficulty=Kesulitan Nyawa: %s +TimingDifficulty=Kesulitan Timing: %s +MachineRecord=Rekor Mesin #%i! +PersonalRecord=Rekor Personal #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=Auto Set Style +NotePosition=Posisi Not +ComboOnRolls=Rolls Increment Combo +ComboUnderField=Combo Under Field + +GameplayShowScore=Tunjukan Skor +GameplayShowStepsDisplay=Tunjukan Steps +ShowLotsaOptions=Kepadatan Opsi +LongFail=Panjang Kegagalan +FlashyCombo=Kombo Berkedip-kedip +GameplayFooter=Gameplay Footer +FancyUIBG=Latar Belakang UI Indah +TimingDisplay=Layar Timing + +[OptionExplanations] +AutoSetStyle=Memperbolehkan game untuk mengumpulan seluruh modus 1P dan 2P daripada satu style saja. Ini mungkin membutuhkan mulai ulang Stepmania (atau tekan Shift+F2). +NotePosition=Menentukan dimana reseptor panah diletakan pada saat bermain. +ComboOnRolls=Pilih apabila Gulir (Rolls) akan menambah Kombo atau tidak. Jika Anda mengubah pilihan ini, Anda butuh memuat ulang metrics-nya (via Shift+F2) supaya efek ini berlaku. +ComboUnderField=Menentukan Apabila Kombo harus terletak dibawah not atau tidak. + +GameplayShowScore=Tunjukan atau Sembunyikan layar skor saat bermain. +GameplayShowStepsDisplay=Tunjukan atau Sembunyikan Informasi step saat bermain. +ShowLotsaOptions=Pilih Berapa banyak garis/baris pilihan untuk dipilih dari. &oq;Few&cq; Tetapkan daftar menjadi minimal. &oq;Many&cq; tambah berbagai mod-mod pamer. +LongFail=Pilih antara gagal sm-scc "Panjang" orisinil atau gagal "Pendek" diadopsi nanti. +FlashyCombo=Menentukan apabila kilat kombo harus ditunjukan atau tidak. +GameplayFooter=Jika menyala, Munculkan footer yang menghalangi penglihatan akan datangnya panah untuk di beberapa negara (Bingkai skor DDR). +FancyUIBG=Mati/Nyalakan latar belakang UI indah. "Mati (Off)" disarankan untuk komputer yang lama. Ubahan akan berlaku pada layar awal. +TimingDisplay=Mati/Nyalakan layar segmen timing pada meteran progres lagu. + +ScoringType=Menetapkan metode skoring mana untuk digunakan. Jika Istimewa dipilih, Anda dapat memilih Modus Penskoran Istimewa (Special Scoring Mode) pada Opsi Tema. + +Speed=Atur kelajuan panah berjalan terhadap target. +Accel=Ubah cara panah mendekati target. +Effect=Ubah ukuran atau gerakan dari panah dan/atau target. +Appearance=Kontrol penglihatan dari panah. +Turn=Ubah koreografi step dengan mengatur posisi panah. +Insert=Tambah not injak kedalam koreografi step. +Holds=Ubah beberapa not injak menjadi not tahan. +Mines=Tambah atau singkirkan not ranjau. +PlayerAutoPlay=Notefield bermain dengan sendirinya. +ScoreDisplay=Ubah cara skor terlihat. +ProTiming=Ubah cara Judgement terlihat. +Scroll=Atur arah aliran panah untuk menemui target. +NoteSkins=Pilih tampilan panah-panah yang berbeda. +Handicap=Menyingkirkan not-not. Penggunaan ini akan membatalkan skor tertinggi. +Hide=Gelap (Dark) menyembunyikan reseptor. Buta (Blind) menyembunyikan judgement. Tirai (Cover) menyembunyikan latar belakang. +Persp=Ubah sudut pandang dari aliran panah. +Steps=Atur tingkat kesulitan dari step-step. +Characters=Orang-orang berdansa. +SaveToProfileHelp=Membutuhkan profil atau kartu memori (memory card). +MusicRateHelp=Mainkan musik pada tingkat yang lebih cepat. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Cara Mendapatkan dan Memasang Lagu untuk Stepmania +Finding Songs=Dimana untuk Mencari Lagu +Installing Songs=Cara Memasang Lagu +Importing Songs=Mengimpor dari instalasi2 Stepmania yang ada +Reload Songs=Muat ulang Lagu +Exit=Kembali ke Menu Awal + +Explanation-WhereToFind=Luncurkan sebuah laman web dengan informasi dalam mencari lagu untuk digunakan pada Stepmania. +Explanation-HowToInstall=Luncurkan sebuah Laman web dengan instruksi-instruksi pemasangan lagu. +Explanation-AdditionalFolders=Apabila anda memiliki instalasi Stepmania yang lain, Anda dapat menggunakan preferensi AdditionalFolders untuk memuatnya pada Stepmania 5. +Explanation-ReloadSongs=Muat ulang lagu-lagu. Ini dibutuhkan apabila Anda telah menambahkan/mengubah/menghapus lagu selagi Stepmania sedang berjalan. +Explanation-Exit=Kembali ke menu awal. + +[OptionNames] +Custom=Istimewa (Special) +Many=Banyak (Many) +Few=Sedikit (Few) +Normal=Normal +Lower=Rendah (Lower) +Short=Pendek (Short) +Long=Panjang (Long) + +[ScreenTestInput] +HelpText=Tahan &BACK; atau &START; untuk Keluar. + +[PaneDisplay] +Taps=Injak +Jumps=Loncat +Holds=Tahan +Mines=Ranjau +Hands=Tangan +Rolls=Gulir +Lifts=Angkat +Fakes=Palsu +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Keluar + +[ScreenGameOver] +GAME OVER=GAME OVER (Permainan Tamat) +Play again soon!=Main lagi nanti! + +[ScreenHowToPlay] +How To Play StepMania=Cara bermain StepMania +Information=Informasi + +Feet=Kaki Anda digungakan untuk bermain! +Tap=Saat panah menaik pada titik ini,\ninjak panel yang sesuai. +Jump=Injak pada kedua panel jika dua panah\nberbeda muncul bersamaan! +Miss=Jika Anda kelewat step-nya berulang kali, meteran \ndance Anda akan berkurang sampai\npermainan sudah tamat (Game Over)! + + +[Protiming] +MS=MD diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/ja.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/ja.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/ja.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/ja.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,262 @@ +// Stepmania用日本語言語パック(defaultテーマ用) Ver.2-20141002 +// Updated for 5.0.7 -hanubeki 2015/04/14 + +//一部プレイオプションに手を入れています + +// find_missing_strings_in_theme_translationsで無かった分を補完 -hanubeki 2015/04/14 + +[Screen] +HelpText=&BACK; 戻る &START; 決定 &SELECT; オプション &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; カーソル移動 + +[ScreenWithMenuElements] +HelpText=&BACK; 戻る &START; 決定 &MENULEFT;&MENURIGHT; カーソル移動 +StageCounter=%s Stage +EventStageCounter=Stage %03i + +[ScreenTitleMenu] +HelpText=&BACK; 戻る &START; 決定 &MENUUP;&MENUDOWN; カーソル移動 +Network OK=オンライン +Offline=オフライン +Connected to %s=接続先: %s +CurrentGametype=ゲームタイプ: %s +LifeDifficulty=ライフレベル: %s +TimingDifficulty=判定レベル: %s +%i Songs (%i Groups), %i Courses=%i 曲 (%i グループ), %i コース + +[ScreenTitleJoin] +HelpText=Press &START; to Play +HelpTextJoin=Press &START; to Play +HelpTextWait=Insert Credit(s) +EventMode=イベントモード +JointPremiumMain=Joint Premium! +JointPremiumSecondary=ただいま1クレジットで2人プレイができます +DoublesPremiumMain=Doubles Premium! +DoublesPremiumSecondary=ただいま1クレジットでダブルプレーができます + +[ScreenCaution] +HelpText=&START; 続ける + +[ScreenDemonstration] +Demonstration=Demonstration +%s - %s [from %s]=%s - %s\n[from %s] + +[ScreenQuickSetupOverview] +Explanation=よく使うオプションをまとめています。 + +[ScreenProfileLoad] +HelpText=… プロファイル読み込み中、しばらくお待ちください … + +[ScreenSelectProfile] +%d Song Played=プレイ済み:%d曲 +%d Songs Played=プレイ済み:%d曲 +PressStart=&START;を押すと\nエントリーします +HelpText=&MENUUP;&MENUDOWN; プロファイル選択 &START; 決定/エントリー &BACK; キャンセル/戻る + +[ScreenSelectMaster] +HelpText=&BACK; 戻る &START; 選択 / エントリー &MENULEFT;&MENURIGHT; カーソル移動 + +[ScreenSelectPlayMode] +HelpText=&BACK; 戻る &START; 選択 / エントリー &MENULEFT;&MENURIGHT; カーソル移動 +EasyExplanation=初心者向けモードです。 +HardExplanation=上級者向けモードです。 +OldNormalExplanation=中級者向けモードです。 +NormalExplanation=一曲ずつ選択してステージクリアを目指す通常モードです。 +RaveExplanation=おじゃまを送り付けながら対戦相手と競うモードです。 +NonstopExplanation=何曲かを1セットにしてプレイする上級者モードです。 +OniExplanation=ライフ制で1セットの曲をプレイする超上級者用モードです。 +EndlessExplanation=ゲームオーバーまでひたすらプレイし続けるモードです。 + +[ScreenSelectPlayStyle] +HelpText=&BACK; 戻る &START; 決定 &MENULEFT;&MENURIGHT; カーソル移動 + +[ScreenGameInformation] +HelpText=&BACK; 戻る &START; スキップ + +[ScreenSelectMusic] +NEW!=NEW! +Press Start For Options=&START;を押すとプレイオプション画面へ移行します +Entering Options=Entering Options +HelpText=&BACK; 戻る &START; 決定 / エントリー &SELECT; ショートカット::&MENUUP;か&MENUDOWN;の二回押し 譜面選択&MENULEFT;&MENURIGHT; 曲選択::&UP;&DOWN;&UP;&DOWN; ソート切り替え &AUXWHITE;+[キーボード] 曲名ソートにしてその文字のフォルダを開く +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; 譜面選択 &SELECT;+&START; クイックソート + +[ScreenSelectCourse] +HelpText=&BACK; 戻る &START; 決定 / エントリー &SELECT; ショートカット &MENULEFT;&MENURIGHT; コース選択::&UP;&DOWN;&UP;&DOWN; ソート切り替え + +[ScreenOptions] +HelpText=&BACK; 戻る &START; 選択 &SELECT; 前の項目に戻る &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; カーソル移動 +Disqualified=スコア集計対象外になるオプションが選択されています + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=心拍数を入力してください +Heart Rate=心拍数 +Song Length=曲の長さ + +[ScreenEvaluation] +HelpText=&BACK; 戻る &START; 次へ &MENULEFT;+&MENURIGHT;または&SELECT; スクリーンショット +LifeDifficulty=ライフレベル: %s +TimingDifficulty=判定レベル: %s +MachineRecord=Machine Record #%i! +PersonalRecord=Personal Record #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; タイマーを進める + +[OptionTitles] +AutoSetStyle=Auto Set Style +NotePosition=Note Positions +ComboOnRolls=Rolls Increment Combo +ComboUnderField=Combo Under Field + +GameplayShowScore=Show Score +GameplayShowStepsDisplay=Show Steps +ShowLotsaOptions=Options Density +LongFail=Fail Length +FlashyCombo=Flashy Combo +GameplayFooter=Gameplay Footer +FancyUIBG=Fancy UI Background +TimingDisplay=Timing Display + +[OptionExplanations] +AutoSetStyle=ミュージックホイールで全スタイルの譜面が選択できるようになります。\n設定後Stepmaniaの再起動かShift+F2キーを押す必要があります。 +NotePosition=ノーツを描画するレイヤーの階層を選択します。 +ComboOnRolls=ロールの判定をコンボに含めるかどうかを選択します。\n設定後Stepmaniaの再起動かShift+F2キーを押す必要があります。 +ComboUnderField=コンボ数を描画するレイヤーの階層を選択します。 + +GameplayShowScore=プレイ中のスコア表示の有無を設定します。 +GameplayShowStepsDisplay=プレイ中の譜面情報表示の有無を設定します。 +ShowLotsaOptions=&oq;Few&cq;を選択するとプレイオプションの項目は最小限になります。 &oq;Many&cq;を選択するとすべての項目を表示します。 +LongFail=ゲージ切れが起きた際の演出のパターンを選択します。 +FlashyCombo=この項目をOnに設定すると、50コンボごとに画面に光の輪が描画されます。 +GameplayFooter=プレイ中のスコアフレーム表示の有無を設定します。 +FancyUIBG=背景を派手にします。マシンパワーが低い場合はOffに設定することを推奨します。\n変更はタイトル画面で有効になります。 +TimingDisplay=プレイ中の楽曲の現在位置を確認できるバーの表示の有無を設定します。 + +ScoringType=使用するスコアタイプを設定します。\nSpecialを選択した場合はTheme OptionsでSpecial Score Optionの項目の設定をしてください。 + +Speed=Xmodは譜面の流れる速度を何倍かします。Cmodは譜面の流れる速度を固定します。\nMmodは譜面の流れる速度の上限を制限します。使用したいハイスピードの種類を選択してから、\n数字を選択して速度調節してください。 +Accel=ノートのレセプターへの近づき方を変更します。\nこのオプションは複数同時選択できます。 +Effect=ノートやレセプターの大きさや動き方を変更します。\nこのオプションは複数同時選択できます。 +Appearance=ノートの可視範囲を変更します。\nこのオプションは複数同時選択できます。 +Turn=ノーツ配置を入れ替えます。\nこのオプションは複数同時選択できます。 +Insert=基本のノート配置にノートを追加します。\nこのオプションは複数同時選択できます。 +Holds=通常のノートをロングノートに変化させます。\nこのオプションは複数同時選択できます。 +Mines=マインノートを追加、あるいは削除します。 +PlayerAutoPlay=この項目をOnにすると、オートプレイになります。 +ScoreDisplay=スコア表示を変更します。 +ProTiming=Onにすると、ノートの判定がジャストタイミングからどれだけずれているか表示されるようになります。 +Scroll=ノートの移動方向を変更します。\nこのオプションは複数同時選択できます。 +NoteSkins=プレイに使用するノートスキンを変更します。\n必ず現在のゲームモードに対応したスキンを使用してください。 +Handicap=ノートを削除します。このオプションは複数同時選択できます。\nこのオプションを有効にして出したスコアはランキングに集計されません。 +Hide=Darkはレセプターを描画しません。Blindは判定を描画しません。Coverは背景を描画しません。\nこのオプションは複数同時に有効にできます。 +Persp=ノートが流れる平面を見る角度を変更します。 +Steps=プレイする譜面を選択します。 +Characters=プレイ中に表示するダンサーを設定します。 +SaveToProfileHelp=プレイ結果の保存をメモリーカードに行います。 +MusicRateHelp=楽曲自体を設定値倍の速度で再生しながらプレイします。 + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=楽曲が1曲もありません! +Finding Songs=楽曲の探し方 +Installing Songs=楽曲追加のしかた +Importing Songs=他のStepmaniaから曲を追加する +Reload Songs=リロード +Exit=タイトル画面に戻る + +Explanation-WhereToFind=検索エンジンで「Stepmania 譜面」で検索したり、パッケージサイトを活用してみてください。\nなお著作権を侵害するファイルが含まれた譜面をダウンロードしないようお願いします。 +Explanation-HowToInstall=&START; を押すと、公式サイトの「楽曲追加のしかた」(英文)が表示されます。 +Explanation-AdditionalFolders=すでに別のStepmaniaをインストールしているなら、\n「Additional Folders」を利用することでフォルダ構造を変えることなく楽曲を追加できます。 +Explanation-ReloadSongs=タイトル画面の「Options」から「Reload Songs/Courses」を選択します。\nStepmania外で譜面が変更された場合はリロードしてキャッシュを削除し再読み込みしないと変更が反映されません。 +Explanation-Exit=タイトル画面に戻ります。 + +[OptionNames] +Custom=Special +Many=Many +Few=Few +Normal=Normal +Lower=Lower +Short=Short +Long=Long + +[ScreenTestInput] +HelpText=&BACK;を押しっぱなしにするか&START; 終了 + +[PaneDisplay] +Taps=Taps +Jumps=Jumps +Holds=Holds +Mines=Mines +Hands=Hands +Rolls=Rolls +Lifts=Lifts +Fakes=Fakes +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Exit + +[ScreenGameOver] +GAME OVER=GAME OVER +Play again soon!=Play again soon! + +[ScreenHowToPlay] +How To Play StepMania=How To Play StepMania +Information=Information + +# XXX: "は足を使" +# /Themes/default/BGAnimations/ScreenHowToPlay overlay/_howtoplay feet.lua +# self:AddAttribute(6, {Length= 1, Diffuse=Color.Red}) +Feet=このゲームは足を使います +Tap=曲に合わせて、ここに来た瞬間に踏め! +Jump=2つ同時に来たら両方踏もう +Miss=何回もミスをしてダンスゲージが\n無くなるとゲームオーバー + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/nl.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/nl.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/nl.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/nl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,281 @@ +[Screen] +HelpText=&BACK; Exit &START; Selecteer &SELECT; Opties &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Beweeg + +[ScreenWithMenuElements] +HelpText=&BACK; Exit &START; Selecteer &MENULEFT;&MENURIGHT; Beweeg +StageCounter=%s Etappe +EventStageCounter=Etappe %03i + +[ScreenTitleMenu] +HelpText=&BACK; Exit &START; Selecteer &MENUUP;&MENUDOWN; Beweeg +Network OK=Netwerk OK +Offline=Offline +Connected to %s=Verbonden met %s +CurrentGametype=Huidig Speltype: %s +LifeDifficulty=Levensniveau: %s +TimingDifficulty=Timingsniveau: %s +%i Songs (%i Groups), %i Courses=%i Nummers (%i Groepen), %i Parkoers + +[ScreenTitleJoin] +HelpText=Druk &START; om te Spelen +HelpTextJoin=Druk &START; om te Spelen +HelpTextWait=Voer Krediet In! +EventMode=Evenement Mode +JointPremiumMain=Gedeelde Premium +JointPremiumSecondary=Twee spelers kunnen met n krediet spelen! +DoublesPremiumMain=Dubbel Premium +DoublesPremiumSecondary=Speel Dubbel voor n krediet! + +[ScreenCaution] +HelpText=&START; Doorgaan + +[ScreenDemonstration] +Demonstration=Demonstratie +%s - %s [van %s]=%s - %s\n[van %s] + +[ScreenQuickSetupOverview] +Explanation=Snel Instellen is een snelle makkelijke manier om veel-gebruikte instellingen te veranderen. + +[ScreenProfileLoad] +HelpText=... Profielen aan het laden, wacht een moment A.U.B. ... + +[ScreenSelectProfile] +%d Song Played=%d Nummer Gespeeld +%d Songs Played=%d Nummers Gespeeld +PressStart=Druk &START; om mee te doen. +HelpText=&MENUUP;&MENUDOWN; Wissel Profiel &START; Kies/Doe Mee &BACK; Deselecteer + +[ScreenSelectMaster] +HelpText=&BACK; Exit &START; Selecteer / Doe Mee &MENULEFT;&MENURIGHT; Beweeg + +[ScreenSelectPlayMode] +HelpText=&BACK; Exit &START; Selecteer / Doe Mee &MENULEFT;&MENURIGHT; Beweeg +EasyExplanation=Een mode voor beginners. +HardExplanation=Voor experts. +OldNormalExplanation=Niet te makkelijk, niet te moeilijk. +NormalExplanation=Speel al je favoriete nummers! +RaveExplanation=Neem het op tegen je vriend of vijand. +NonstopExplanation=Een aantal nummers in een rij +OniExplanation=Een echte test van vaardigheid. +EndlessExplanation=Het stopt niet, laat het maar komen. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Exit &START; Selecteer &MENULEFT;&MENURIGHT; Beweeg + +[ScreenGameInformation] +HelpText=&BACK; Exit &START; Overslaan + +[ScreenSelectMusic] +NEW!=NIEUW! +Press Start For Options=Druk &START; voor Opties +Entering Options=Opties Worden Geopend +HelpText=&BACK; Exit &START; Selecteer / Doe Mee &SELECT; Magische Codes &MENULEFT;&MENURIGHT; Beweeg::&AUXWHITE;+[KEY] Sorteer Op [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Verander Niveau &SELECT;+&START; Snelle Sortering + +[ScreenSelectCourse] +HelpText=&BACK; Exit &START; Selecteer / Doe Mee &SELECT; Magische Codes &MENULEFT;&MENURIGHT; Beweeg::&UP;&DOWN;&UP;&DOWN; voor andere parkoerstypen + +[ScreenOptions] +HelpText=&BACK; Exit &START; Kies &SELECT; Ga Omhoog &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Beweeg +Disqualified=Score zal worden gediskwalificeerd! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=Voer Hartslag In +Heart Rate=Hartslag +Song Length=Lengte Nummer + +[ScreenEvaluation] +HelpText=&BACK; Exit &START; Ga Verder &MENULEFT;+&MENURIGHT; of &SELECT; Foto +LifeDifficulty=Levensniveau: %s +TimingDifficulty=Timingsniveau: %s +MachineRecord=Machine Record #%i! +PersonalRecord=Persoonlijk Record #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Laat Timer Doorlopen + +[OptionTitles] +# Are these UserPref- strings still used? They don't seem to exist in en.ini +UserPrefAutoSetStyle=Bepaal Stijl +UserPrefNotePosition=Nootpositie +UserPrefComboOnRolls=Rollen Verhogen Combo +UserPrefComboUnderField=Combo Onder Veld + +UserPrefGameplayShowScore=Toon Score +UserPrefGameplayShowStepsDisplay=Toon Stappen +UserPrefShowLotsaOptions=Optie-dichtheid +UserPrefLongFail=Faallengte +UserPrefFlashyCombo=Flitsende Combo +UserPrefGameplayFooter=Toon Voettekst +UserPrefFancyUIBG=Sierlijke UI Achtergrond +UserPrefTimingDisplay=Toon Timing + +AutoSetStyle=Auto-Bepaal Stijl +ComboOnRolls=Rollen Verhogen Combo +ComboUnderField=Combo Onder Veld +FancyUIBG=Sierlijke UI Achtergrond +FlashyCombo=Flitsende Combo +GameplayFooter=Toon Voetstuk +GameplayShowScore=Toon Score +GameplayShowStepsDisplay=Toon Stappen +LongFail=Faallengte +NotePosition=Nootpositie +ShowLotsaOptions=Optie-dichtheid +TimingDisplay=Toon Timing + +[OptionExplanations] +# Are these UserPref- strings still used? They don't seem to exist in en.ini +UserPrefAutoSetStyle=Laat toe dat het spel de n en twee speler modus tegelijk laat zien in plaats van maar n van de twee. Dit heeft misschien een herstart nodig (of druk Shift+F2). +UserPrefNotePosition=Beslist waar de pijl ontvangers worden geplaatst tijdens het spelen. +UserPrefComboOnRolls=Kiest of rollen de combo wel of niet moeten verhogen. +UserPrefComboUnderField=Kiest of de combo wel of niet onder de noten moet worden weergegeven. + +UserPrefGameplayShowScore=Toon of Verberg de punten tijdens het spelen. +UserPrefGameplayShowStepsDisplay=Toon of Verberg de stapinformatie tijden het spelen. +UserPrefShowLotsaOptions=Kies hoeveel rijen aan opties je hebt om te kiezen. &oq;Weinig&cq; Hou de lijst klijn. &oq;Veel&cq; voeg verscheidene uitsloof mods toe. +UserPrefLongFail=Kies tussen de originele "Lange" sm-ssc faal of de later gentroduceerde "korte" faal. +UserPrefFlashyCombo=Beslist of de combo flitsen wel of niet moeten worden weergegeven. +UserPrefGameplayFooter=Als dit aan staat, laat dan een voettekst zien die de zichtbaarheid van pijlen gedeeltelijk (Het punten gedeelte) blokkeert. +UserPrefFancyUIBG=Zet de Sierlijke achtergrond aan/uit. "Uit" is aangeraden voor oude computers. Veranderingen worden doorgevoerd op het beginscherm. +UserPrefTimingDisplay=Zet de weergave van de timing delen van een nummer op de voortgang balk aan/uit. + +AutoSetStyle=Laat toe dat het spel de n en twee speler modus tegelijk laat zien in plaats van maar n van de twee. Dit heeft misschien een herstart nodig (of druk Shift+F2). +ComboOnRolls=Kiest of rollen de combo wel of niet moeten verhogen. Als je deze optie verandert, moet je de metrieken herladen (via Shift+F2) om het in effect te laten gaan. +ComboUnderField=Kiest of de combo wel of niet onder de noten moet worden weergegeven. +FancyUIBG=Zet de Sierlijke achtergrond aan/uit. "Uit" is aanbevolen voor oudere computers. Veranderingen worden doorgevoerd op het beginscherm. +FlashyCombo=Beslist of de combo flitsen wel of niet moeten worden weergegeven. +GameplayFooter=Als dit aan staat, wordt een voetstuk weergegeven die de zichtbaarheid van de pijlen gedeeltelijk blokkeert ( Het score frame van DDR ). +GameplayShowScore=Toon of Verberg de punten tijdens het spelen. +GameplayShowStepsDisplay=Toon of Verberg de stapinformatie tijden het spelen. +LongFail=Kies tussen de originele "Lange" sm-ssc faal of de later gentroduceerde "korte" faal. +NotePosition=Beslist waar de pijlreceptoren worden geplaatst tijdens het spelen. +ShowLotsaOptions=Kies hoeveel rijen aan opties je hebt om te kiezen. &oq;Weinig&cq; Houdt de lijst klein. &oq;Veel&cq; voegt verscheidene mods toe om mee uit te sloven. +TimingDisplay=Zet de weergave van de timing delen van een nummer op de voortgang balk aan/uit. + +ScoringType=Definieert welke methoden word gebruikt voor de puntentelling. Als Speciaal is geselecteerd, kan je een Speciale Punten Mode in de Thema-opties kiezen. + +Speed=Pas de snelheid aan waarmee de pijlen naar het doel bewegen. +Accel=Verander de manier waarop de pijlen naar hun doel gaan. +Effect=Verander de grootte of beweging van de pijlen en/of doelen. +Appearance=Beheers de zichtbaarheid van de pijlen. +Turn=Verander de stapchoreografie door de positie van de pijlen te veranderen. +Insert=Voeg tapnoten toe aan de stapchoreografie. +Holds=Verander sommige tapnoten in vasthoudnoten. +Mines=Voeg toe / verwijder mijnen. +PlayerAutoPlay=Laat het spel zichzelf spelen. +ScoreDisplay=Verander de manier waarop de punten worden weergegeven. +ProTiming=Verander de manier waarop je beoordeling wordt weergegeven. +Scroll=Verander de richting waar de pijlen vandaan komen. +NoteSkins=Kies een ander uiterlijk voor de pijlen. +Handicap=Verwijdert noten. Dit maakt de score ongeldig. +Hide=Donker verbergt de ontvangers. Blind verbergt de beoordeling. Bedekking verbergt de achtergrond. +Persp=Verander de kijkhoek van de pijlenstroom. +Steps=Verander het niveau van de stappen. +Characters=Dansende maatjes. +SaveToProfileHelp=Vereist profiel of geheugenkaart. +MusicRateHelp=Speel de muziek op een sneller tempo. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Hoe Verkrijg en Installeer je Nummers voor StepMania +Finding Songs=Waar Vind je Nummers +Installing Songs=Hoe Installeer je Nummers +Importing Songs=Importeren van bestaande StepMania-installaties +Reload Songs=Herlaad Nummers +Exit=Terug naar Hoofdmenu + +Explanation-WhereToFind=Lanceert een webpagina met informatie over het vinden van nummers voor StepMania. +Explanation-HowToInstall=Lanceert een webpagina met de instructies voor het installeren van nummers. +Explanation-AdditionalFolders=Als je andere installaties van stepmania hebt, kan je de AdditionalFolders opties gebruiken om ze in StepMania 5 te laden. +Explanation-ReloadSongs=Herlaad de nummers. Dit is nodig als je nummers hebt toegevoegd/veranderd/verwijdert terwijl StepMania loopt. +Explanation-Exit=Terug naar Hoofdmenu. + +[OptionNames] +Custom=Speciaal +Few=Weinig +Long=Lang +Lower=Lager +Many=Veel +Normal=Normaal +Short=Kort + +[ScreenTestInput] +HelpText=Houd &BACK; of &START; ingedrukt om te stoppen. + +[PaneDisplay] +Taps=Taps +Jumps=Sprongen +Holds=Vasth. +Mines=Mijnen +Hands=Handen +Rolls=Rollen +Lifts=Afstap +Fakes=Nep +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Exit + +[ScreenGameOver] +GAME OVER=GAME OVER +Play again soon!=Speel gauw weer! + +[ScreenHowToPlay] +How To Play StepMania=Hoe Speel Je StepMania +Information=Informatie + +Feet=Jouw voeten zullen worden gebruikt om te spelen! +Tap=Wanneer de pijlen dit punt bereiken,\nstap je op de bijbehorende panelen. +Jump=Stap op beide panelen als beide\npijlen tegelijkertijd verschijnen! +Miss=Als je herhaaldelijk misstapt, zal je\ndansmeter leeglopen tot de game\nvoorbij is! + + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/pl.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/pl.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/pl.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/pl.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,253 @@ +[Screen] +HelpText=&BACK; Wyjście &START; Zatwierdź &SELECT; Opcje &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Wybierz + +[ScreenWithMenuElements] +HelpText=&BACK; Wyjście &START; Zatwierdź &MENULEFT;&MENURIGHT; Wybierz +StageCounter=Piosenka %s +EventStageCounter=Piosenka %03i + +[ScreenTitleMenu] +HelpText=&BACK; Wyjście &START; Zatwierdź &MENUUP;&MENUDOWN; Wybierz +Network OK=Sieć OK +Offline=Brak połączenia +Connected to %s=Podłączony do %s +CurrentGametype=Tryb gry: %s +LifeDifficulty=Zużycie energii: %s +TimingDifficulty=Ocena trafień: %s +%i Songs (%i Groups), %i Courses=%i Piosenek(i) w %i Grupach, %i Maratony(ów) + +[ScreenTitleJoin] +HelpText=Naciśnij &START; by rozpocząć grę +HelpTextJoin=Naciśnij &START; by rozpocząć grę +HelpTextWait=Wrzuć żeton... +EventMode=Tryb Imprezy +JointPremiumMain=Premia Łączona +JointPremiumSecondary=Dwóch graczy może grac za jeden kredyt! +DoublesPremiumMain=Podwójna Premia +DoublesPremiumSecondary=Graj w trybie Dwuosobowym za jeden kredyt! + +[ScreenCaution] +HelpText=&START; Kontynuuj + +[ScreenDemonstration] +Demonstration=Demonstracja +%s - %s [from %s]=%s - %s\n[od %s] + +[ScreenQuickSetupOverview] +Explanation=Podstawowe ustawienia umożliwiają szybkie skonfigurowanie najczęściej używanych opcji + +[ScreenProfileLoad] +HelpText=... Ładowanie profili, proszę czekać ... + +[ScreenSelectProfile] +%d Song Played=%d Zaliczna Piosenka +%d Songs Played=%d Zaliczonych Piosenek +PressStart=Naciśnij &START;\n by dołączyć. +HelpText=&MENUUP;&MENUDOWN; Zmień profil &START; Wybierz/Dołącz &BACK; Odznacz + +[ScreenSelectMaster] +HelpText=&BACK; Wyjście &START; Zatwierdź / Dołącz &MENULEFT;&MENURIGHT; Wybierz + +[ScreenSelectPlayMode] +HelpText=&BACK; Wyjście &START; Zatwierdź / Dołącz &MENULEFT;&MENURIGHT; Wybierz +EasyExplanation=Tryb dla początkujących +HardExplanation=Dla ekspertów. +OldNormalExplanation=Nie za łatwo, nie za trudno. +NormalExplanation=Graj w swoje ulubione piosenki! +RaveExplanation=Bitwa dwóch graczy przeciwko sobie. +NonstopExplanation=Kilka piosenek pod rząd. +OniExplanation=Prawdziwy test umiejętności. +EndlessExplanation=Tańcz aż padniesz. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Wyjście &START; Zatwierdź &MENULEFT;&MENURIGHT; Wybierz + +[ScreenGameInformation] +HelpText=&BACK; Wyjście &START; Pomiń + +[ScreenSelectMusic] +NEW!=NOWA! +Press Start For Options=Naciśnij &START; by wejść w Opcje. +Entering Options=Otwieram Opcje +HelpText=&BACK; Wyjście &START; Zatwierdź / Dołącz &SELECT; Magiczne kody &MENULEFT;&MENURIGHT; Wybierz::&AUXWHITE;+[KEY] Sortowanie wg. [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Zmiana poziomu trudności &SELECT;+&START; Szybkie Sortowanie + +[ScreenSelectCourse] +HelpText=&BACK; Wyjście &START; Zatwierdź / Dołącz &SELECT; Magiczne kody &MENULEFT;&MENURIGHT; Sekwencja ::&UP;&DOWN;&UP;&DOWN; - inne tryby maratonu. + +[ScreenOptions] +HelpText=&BACK; Wyjście &START; Zatwierdź &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Wybierz +Disqualified=Wynik nie zostanie uznany! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=Wprowadź Rytmu Serca +Heart Rate=Rytm Serca +Song Length=Długość Piosenki + +[ScreenEvaluation] +HelpText=&BACK; Wyjście &START; Dalej &MENULEFT;+&MENURIGHT; lub &SELECT; Zrzut ekranu +LifeDifficulty=Zużycie energii: %s +TimingDifficulty=Ocena trafień: %s +MachineRecord=Rekord Maszyny #%i! +PersonalRecord=Rekord Życiowy #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=Automatycznie Ustaw Styl +NotePosition=Pozycja Strzałek +ComboOnRolls=Narastające combo w Rolls +ComboUnderField=Combo Pod Strzałkami + +GameplayShowScore=Pokazuj wyniki +GameplayShowStepsDisplay=Pokazuj Kroki +ShowLotsaOptions=Ilość opcji +LongFail=Tryb Fail`a +FlashyCombo=Błyskające Combo +GameplayFooter=Stopka Na Ekranie Gry +FancyUIBG=Ozdobne Tło Interfejsu +TimingDisplay=Wyświetlanie Timing`u + +[OptionExplanations] +AutoSetStyle=Pozwala grze jednoczesne wyświetlenie trybów dla dwóch graczy a nie tylko dla jednego. Wprowadzenie zmiany możne wymagać restartu Stepmanii (lub naciśnięcia klawisza Shift+F2) +NotePosition=Określa pozycje receptorów strzałek podczas gry. +ComboOnRolls=Włącza naliczanie licznika Combo w sposób narastający dla strzałek typu ROLL. +ComboUnderField=Określa czy wskaźnik Combo powinien być wyświetlany nad czy pod strzałkami. + +GameplayShowScore=Wyświetla lub ukrywa licznik punktów podczas gry. +GameplayShowStepsDisplay=Wyświetla lub ukrywa statystykę strzałek podczas gry. +ShowLotsaOptions=Określa jak dużo modyfikatorów wyświetlić na ekranie opcji piosenki. +LongFail=Określa długość czasu animacji ogrywanej po niezaliczanej piosence. Oryginalny z SM5 (Długi) , nowy (Krotki) +FlashyCombo=Określa czy licznik Combo może błyskać czy nie. +GameplayFooter=Włączona opcja wyświetla, ograniczająca widoczność nadlatujących strzałek, stopkę u dołu ekranu. +FancyUIBG=Zarządzanie wyświetlaniem ozdobnego tła interfejsu. Wyłączenie jest zalecane dla straszych komputerów. +TimingDisplay=Wyświetlanie segementów z timingiem na pasku postępu piosenki podczas gry. + +ScoringType=Opcja pozwala na określenie metody naliczania punktacji. + +Speed=Regulacja prędkości nadlatujących strzałek. +Accel=Zmiana ścieżki trasy która lecą strzałki. +Effect=Zmiana rozmiaru lub rodzaju ruchu strzałek lub ich receptorów/celów. +Appearance=Kontrola widoczności strzałek. +Turn=Zmiana choreografii stepchart`a po przez modyfikacje pozycji istniejących strzałek. +Insert=Zmiana choreografii stepchart`a po przez proceduralne dodanie nowych strzałek. +Holds=Zmienia cześć strzałki w HOLD`y +Mines=Dodanie lub usuniecie Min. +PlayerAutoPlay=Program odgrywa piosenkę automatycznie +ScoreDisplay=Zmiana sposobu wyświetlania punktacji. +ProTiming=Zmiana sposobu wyświetlania dokładności trafienia w strzałkę. +Scroll=Modyfikacje kierunku ruchu strzałek. +NoteSkins=Wybór wyglądu grafiki strzałek/nut. +Handicap=Usuwanie strzałek ze stepchart`a. Opcje ułatwiające ukończenie piosenki. Użycie dyskwalifikuje z rankingu. +Hide=Modyfikacja widoczności receptorów/strzałek celu +Persp=Tryby widoku nadlatujących strzałek. +Steps=Ustawienie poziomu trudności piosenki. +Characters=Wybór modelu tańczącej postaci w tle. +SaveToProfileHelp=Wymaga włączonego profilu, karty pamięci lub pendrive`a. +MusicRateHelp=Prędkość odtwarzania muzyki. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Jak Zdobyć i Zainstalować Piosenki do Stepmanii +Finding Songs=Gdzie Znaleźć Piosenki +Installing Songs=Jak Zainstalować Piosenki +Importing Songs=Importowanie piosenek z zainstalowanych wcześniej wersji Stepmanii +Reload Songs=Przeładowanie Piosenek +Exit=Powrót do Ekranu Startowego + +Explanation-WhereToFind=Uruchamia stronę www z informacją miejscach i sposobach na znalezienie piosenek. +Explanation-HowToInstall=Uruchamia stronę www z instrukcją instalacji piosenek. +Explanation-AdditionalFolders=Jeśli masz zainstalowane inne instancje Stepmanii, możesz użyć opcji Foldery Dodatkowe z pliku ustawień by załadować je bez konieczności ich kopiowania. +Explanation-ReloadSongs=Ta czynność jest konieczna jeśli dodano/zmieniono/usunięto piosenki w trakcie pracy programu. +Explanation-Exit=Powrót do Ekranu Startowego. + +[OptionNames] +Custom=Specjalna +Many=Duża +Few=Mała +Normal=Standardowe +Lower=Obniżone +Short=Krótki +Long=Długi + +[ScreenTestInput] +HelpText=Przytrzymaj &BACK; lub &START; aby wyjść. + +[PaneDisplay] +Taps=Kroki +Jumps=Skoki +Holds=Holds +Mines=Miny +Hands=Ręce +Rolls=Rolls +Lifts=Lifts +Fakes=Fakes +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Wyjście + +[ScreenGameOver] +GAME OVER=KONIEC GRY +Play again soon!=Zagraj jeszcze raz! + +[ScreenHowToPlay] +How To Play StepMania=Jak Grać w Stepmanię +Information=Informacja + +Feet=Twoje stopy będą wykorzystywane do gry! +Tap=Kiedy strzałki pokryją się z tym punktem,\npołóż nogę na odpowiednim panelu. +Jump=Połóż nogi na obydwu panelach jeśli pojawią się dwie\nróżne strzałki w tym samym czasie! +Miss=Jeśli wielokrotnie będziesz się mylił,\ntwój wskaźnik tańca będzie się zmniejszał\naż gra się skończy! + + +[Protiming] +MS=MS \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/Languages/zh.ini stepmania-5.1.0+dfsg/Themes/legacy/Languages/zh.ini --- stepmania-5.0.12+dfsg/Themes/legacy/Languages/zh.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/Languages/zh.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,255 @@ +;Stepmania 5.0系統 default主題繁體中文化檔案 Ver 0.99 Alpha + +[Screen] +HelpText=&BACK; 離開 &START; 確定 &SELECT; 設定&MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; 選擇 + +[ScreenWithMenuElements] +HelpText=&BACK; 離開 &START; 確定 &MENULEFT;&MENURIGHT; 選擇 +StageCounter=%s 個關卡 +EventStageCounter=已進行 %03i 個關卡 + +[ScreenTitleMenu] +HelpText=&BACK; 離開 &START; 確定 &MENUUP;&MENUDOWN; 選擇 +Network OK=網路 OK +Offline=線下模式 +Connected to %s=連接到 %s +CurrentGametype=現在遊戲類型: %s +LifeDifficulty=扣血強度: %s +TimingDifficulty=判定難度: %s +%i Songs (%i Groups), %i Courses=%i 個歌曲 (%i 個專輯), %i 個組曲 + +[ScreenTitleJoin] +HelpText=&START; 遊玩 +HelpTextJoin=&START; 遊玩 +HelpTextWait=Insert Credit(s) +EventMode=活動模式 +JointPremiumMain=雙人特別優惠 +JointPremiumSecondary=一局兩人玩! +DoublesPremiumMain=雙板特別優惠 +DoublesPremiumSecondary=一局玩雙板! + +[ScreenCaution] +HelpText=&START; Continue + +[ScreenDemonstration] +Demonstration=Demonstration +%s - %s [from %s]=%s - %s [from %s] + +[ScreenQuickSetupOverview] +Explanation=此處為常用設定, 若需要更詳細的設定請選擇「更多選項」 + +[ScreenProfileLoad] +HelpText=個人檔案讀取中... + +[ScreenSelectProfile] +%d Song Played=%d 首已遊玩 +%d Songs Played=%d 首已遊玩 +PressStart=&START; 加入 +HelpText=&MENUUP;&MENUDOWN; 切換個人檔案 &START; 確定/加入 &BACK; 取消 + +[ScreenSelectMaster] +HelpText=&BACK; 離開 &START; 確定 / 加入 &MENULEFT;&MENURIGHT; 選擇 + +[ScreenSelectPlayMode] +HelpText=&BACK; 離開 &START; 確定 / 加入 &MENULEFT;&MENURIGHT; 選擇 +EasyExplanation=初心者模式, 努力學習. +HardExplanation=進階者專用, 滿滿的箭頭. +OldNormalExplanation=中級者模式, 舒適的遊玩. +NormalExplanation=選擇你喜歡的歌曲! +RaveExplanation=對戰模式, 和你的對手互相切磋(陷害). +NonstopExplanation=多首歌曲串接的模式. +OniExplanation=挑戰模式, 只允許你指定失敗次數. +EndlessExplanation=無限模式, 無限輪迴. + +[ScreenSelectPlayStyle] +HelpText=&BACK; 離開 &START; 確定 &MENULEFT;&MENURIGHT; 選擇 + +[ScreenGameInformation] +HelpText=&BACK; 離開 &START; 跳過 + +[ScreenSelectMusic] +NEW!=NEW! +Press Start For Options=&START; 進入玩家設定畫面 +Entering Options=進入玩家設定 +HelpText=&BACK; 離開 &START; 確定 / 加入 &SELECT; 密碼 &MENULEFT;&MENURIGHT; 選擇::&AUXWHITE;+[KEY] 排序到 [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; 變更難度序列 &SELECT;+&START; 快速排序 + +[ScreenSelectCourse] +HelpText=&BACK; 離開 &START; 確定 / 加入 &SELECT; 密碼 &MENULEFT;&MENURIGHT; 選擇::&UP;&DOWN;&UP;&DOWN; 選擇排序 + +[ScreenOptions] +HelpText=&BACK; 離開 &START; 確定 &SELECT; 返回&MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; 選擇 +Disqualified=Score will be disqualified! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +HelpText= + +[ScreenHeartEntry] +Enter Heart Rate=Enter Heart Rate +Song Length=Song Length +Heart Rate=Heart Rate + +[ScreenEvaluation] +HelpText=&BACK; 離開 &START; 確定 &MENULEFT;+&MENURIGHT; or &SELECT; 拍照 +LifeDifficulty=扣血強度: %s +TimingDifficulty=判定難度: %s +MachineRecord=機器紀錄第 #%i 位! +PersonalRecord=個人紀錄第 #%i 位! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=自動設定類型 +NotePosition=箭頭位置 +ComboOnRolls=連鍵判定 +ComboUnderField=Combo顯示位置 + +GameplayShowScore=分數顯示 +GameplayShowStepsDisplay=譜面資訊 +ShowLotsaOptions=設定量 +LongFail=選擇失敗\n演出長度 +FlashyCombo=Combo到50\n閃光效果 +GameplayFooter=遊戲中\n設定項目表示欄 +FancyUIBG=背景特殊物件 +TimingDisplay=歌曲進度條\n校時點 + +[OptionExplanations] +AutoSetStyle=讓玩家可直接選擇可游玩的遊戲類型(需重開Stepmania). +NotePosition=選擇判定區的位置. +ComboOnRolls=選擇是否在連鍵擊中期間增加combo數. +ComboUnderField=選擇是否讓combo顯示在箭頭下面. + +GameplayShowScore=選擇是否在遊戲中顯示分數. +GameplayShowStepsDisplay=選擇是否顯示譜面資訊. +ShowLotsaOptions=選擇顯示設定量. &oq;Few&cq;為最小量, &oq;Many&cq;為最大量. +LongFail=選擇失敗演出方式長度. +FlashyCombo=選擇combo記數到50時數否發出閃光. +GameplayFooter=選擇是否用圖片擋住遊戲畫面上下邊. +FancyUIBG=選擇是否使用背景特殊物件, 若是較舊的機器可選擇關. +TimingDisplay=選擇是否在歌曲進度條顯示校時點. + +ScoringType=選擇喜好計分樣式,在組曲模式中仍會使用預設計分樣式. + +Speed=改變速度. \n「X」為一般倍數. \n「C」為固定BPM數. \n「M」為最大BPM數壓抑. +Accel=選擇加速、減速或是其他調整箭頭速度的特效. +Effect=選擇譜面與判定區特效. +Appearance=選擇隱藏鍵頭特效. +Turn=改變譜面排列方式. +Insert=選擇要插入箭頭的類型. +Holds=選擇長鍵項目. +Mines=增加或是移除炸彈. +PlayerAutoPlay=選擇自動遊玩類型. +ScoreDisplay=選擇分數顯示方式. +ProTiming=選擇使用專家判定, 這將會置換成更精準的判定時間表. +Scroll=選擇譜面滾動特效. +NoteSkins=選擇箭頭樣式. +Handicap=選擇譜面簡化方式, 這將無法紀錄最高分. +Hide=選擇要隱藏的項目. +Persp=改變視角方式. +Steps=選擇譜面難度. +Characters=選擇3D角色. +SaveToProfileHelp=選擇紀錄位置, 需有個人檔案或是記憶卡. +MusicRateHelp=改變歌曲撥放速度,選擇「Haste」會慢慢改變歌曲播放速度. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=尋找StepMania歌曲檔案與安裝方法 +Finding Songs=從何處找到歌曲檔案 +Installing Songs=如何安裝歌曲檔案 +Importing Songs=如何導入已安裝的Stepmania檔案 +Reload Songs=如何重新讀取歌曲 +Exit=離開 + +Explanation-WhereToFind=開啟瀏覽器使用關鍵字「Stepmania Simfile」可以找到歌曲檔案. +Explanation-HowToInstall=在「Songs」建立專輯資料夾再放進歌曲檔案, 若是.smzip安裝包可自動安裝. +Explanation-AdditionalFolders=如果你有在其他地方安裝StepMania檔案, 你可以使用AdditionalFolders參考去讀取到StepMania 5. +Explanation-ReloadSongs=當你增加/變更/刪除歌曲時會在Stepmania啟動時重新讀取歌曲, 若有使用快速讀取時會忽略已變更的歌曲. +Explanation-Exit=回到標題畫面. + +[OptionNames] +Custom=Special +Many=Many +Few=Few +Normal=Normal +Lower=Lower +Short=Short +Long=Long + +[ScreenTestInput] +HelpText=按住 &BACK; 或 &START; 離開. + +[PaneDisplay] +Taps=箭頭數 +Jumps=雙鍵數 +Holds=長鍵數 +Mines=炸彈數 +Hands=多鍵數 +Rolls=連鍵數 +Lifts=離鍵數 +Fakes=假鍵數 +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Exit + +[ScreenGameOver] +GAME OVER=GAME OVER +Play again soon!=Play again soon! + +[ScreenHowToPlay] +How To Play StepMania=How To Play StepMania +Information=Information + +Feet=Your feet will be used to play! +Tap=When the arrows rise to this point,\nstep on the matching panels. +Jump=Step on both panels if two different\narrows appear at the same time! +Miss=If you misstep repeatedly, your dance\ngauge will decrease until the game\nis over! + + +[Protiming] +MS=MS diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/metrics.ini stepmania-5.1.0+dfsg/Themes/legacy/metrics.ini --- stepmania-5.0.12+dfsg/Themes/legacy/metrics.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/metrics.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,2297 @@ +# 01 # +[Global] +FallbackTheme=_fallback + +[Common] +FirstAttractScreen="" +AutoSetStyle=ThemePrefs.Get("AutoSetStyle") + +# 02 # +[LightsManager] + +[ProfileManager] + +[SongManager] +NumSongGroupColors=1 +# +SongGroupColor1=BoostColor(Color("Orange"),1.25) + +CourseGroupColor1=color("1,1,1,1") + +[UnlockManager] + +# 03 # +[ArrowEffects] + +[Background] + +[Banner] + +[BPMDisplay] +SetNoBpmCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); +SetNormalCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); +SetChangeCommand=stoptweening;stopeffect;maxwidth,128;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875); +SetRandomCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,color("Green");textglowmode,'TextGlowMode_Inner';glowshift;effectcolor1,color("1,1,1,0.05");effectcolor2,color("1,1,1,0.325"); +SetExtraCommand=stoptweening;maxwidth,128;linear,0.2;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.5);diffuseshift;effectcolor1,color("1,1,1,1");effectcolor2,color("0.475,0.475,0.475,1"); +RandomCycleSpeed=0.2 -- smaller numbers mean the bpm cycles faster + +[CodeDetector] +# For Future Reference: +# @ = Holding +# - = In Conjuction With / Then +# ~ = Released +# + = At The Same Time + +[CodeDetectorOnline] + +[CombinedLifeMeterTug] +# We don't use it. +MeterWidth=512-8 +MeterHeight=40 + +[Combo] +ShowComboAt=2 + +LabelMinZoom=0.875*1 +LabelMaxZoom=0.875*1 + +PulseCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.05*param.Zoom); self:linear(0.05); self:zoom(param.Zoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; +PulseLabelCommand=%function(self,param) self:finishtweening(); self:diffusealpha(1); self:zoom(1.0125*param.LabelZoom); self:linear(0.05); self:zoom(param.LabelZoom); self:sleep(2); self:linear(0.5); self:diffusealpha(0); end; +NumberOnCommand=y,240-216-1.5;shadowlength,1;horizalign,right;vertalign,bottom;skewx,-0.125; + +ComboLabelOnCommand=x,0;y,23;shadowlength,1;zoom,0.75;align,0,1 +MissLabelOnCommand=x,0;y,23;shadowlength,1;zoom,0.75;align,0,1 + +[HoldJudgment] +HoldJudgmentLetGoCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.8;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 +HoldJudgmentHeldCommand=finishtweening;visible,true;shadowlength,0;diffusealpha,1;zoom,1;linear,0.3;zoom,0.75;sleep,0.5;linear,0.1;diffusealpha,0 + +[HelpDisplay] +TipShowTime=7 + +[Judgment] +JudgmentW1Command=finishtweening;shadowlength,0;y,0;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0;glowblink;effectperiod,0.05;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.25") +JudgmentW2Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +JudgmentW3Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.2;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; +JudgmentW4Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.1;linear,0.05;zoom,1;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0; +JudgmentW5Command=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1.0;vibrate;effectmagnitude,1,2,2;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +JudgmentMissCommand=finishtweening;y,0;shadowlength,0;diffusealpha,1;zoom,1;y,-20;linear,0.8;y,20;sleep,0.5;linear,0.1;zoomy,0.5;zoomx,2;diffusealpha,0 +# Late/Early +OffsetOnCommand= +OffsetLateCommand= +OffsetEarlyCommand= + +[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"); +ProtimingW3Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W3"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingW4Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W4"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingW5Command=finishtweening;diffuse,Color("White");zoom,1.15;glow,Color("White");linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_W5"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +ProtimingMissCommand=finishtweening;diffusealpha,1;zoom,1.15;glow,GameColor.Judgment["JudgmentLine_Miss"];linear,0.05;zoom,1;glow,Color("Invisible");diffuse,GameColor.Judgment["JudgmentLine_Miss"];sleep,2;linear,0.5;diffuse,Color("Invisible"); +# +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; + +[Course] + +[CustomDifficulty] + +[DifficultyList] +ItemsSpacingY=24 +NumShownItems=8 + +[FadingBanner] +BannerFadeFromCachedCommand=diffusealpha,1;stoptweening;accelerate,0.05;glow,Color.Alpha( Color("White"), 0.45 );decelerate,0.075;diffusealpha,0;glow,Color("Invisible"); +BannerOnCommand= +BannerFadeFromCachedCommand=diffusealpha,1;stoptweening;linear,0.1;glow,Color.Alpha(Color("White"),0.25);decelerate,0.15;glow,Color.Invisible;diffusealpha,0 +BannerFadeOffCommand=diffusealpha,1;stoptweening;linear,0.1;diffusealpha,0 +BannerResetFadeCommand=diffusealpha,1 + +BannerRouletteCommand= +BannerRandomCommand= +[Gameplay] + +[GameState] + +[GrooveRadar] + +[GroupList] + +[HighScore] + +[Inventory] + +[LifeMeterBar] +OverOnCommand=diffuse,Color("Orange");diffuserightedge,BoostColor(Color("Orange"),1.5) + +[LifeMeterBattery] +BatteryBlinkTime=0.5 +# +BatteryP1X=0 +BatteryP1Y=0 +BatteryP2X=0 +BatteryP2Y=0 +# +NumLivesP2OnCommand=zoomx,-1 +NumLivesP2LoseLifeCommand=zoomx,-1.5;zoomy,1.5;linear,0.15;zoomx,-1;zoomy,1 + +[LifeMeterBattery Percent] +# +PercentP2OnCommand=zoom,0.7;zoomx,-0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2) +DancePointsP2OnCommand=zoom,0.7;zoomx,-0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2) + +[LifeMeterTime] + +[LyricDisplay] + +[NotesWriterSM] + +[OptionRow] +TitleOnCommand=shadowlength,0;skewx,-0.1;uppercase,true;wrapwidthpixels,136;maxheight,42;zoom,0.6 +TitleGainFocusCommand=stoptweening;zoom,0.6375*1.125;bounceend,0.1;diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);strokecolor,Color("Black");zoom,0.6375; +# TitleGainFocusCommand=stoptweening;zoom,0.6375*1.25;bounceend,0.05;diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);strokecolor,Color("Black");zoom,0.6375;thump;effectmagnitude,1,1.05,1;effectclock,'beat' +TitleLoseFocusCommand=diffuse,Color("White");strokecolor,Color("Black");stopeffect; +# +ItemsStartX=SCREEN_CENTER_X-140 +ItemsEndX=SCREEN_CENTER_X+80 +ItemsGapX=12 +ItemsMinBaseZoom=0.5 +ItemsLongRowP1X=SCREEN_CENTER_X-60 +ItemsLongRowP2X=SCREEN_CENTER_X+100 +ItemsLongRowSharedX=SCREEN_CENTER_X +ItemOnCommand=shadowlength,1;zoom,0.55 +ItemGainFocusCommand= +ItemLoseFocusCommand= +TweenSeconds=0.05 +[OptionRowService] + +[OptionRowExit] +FrameOnCommand=visible,true;diffuse,Color("Red"); +FrameX=SCREEN_CENTER_X + +ItemsMinBaseZoom=1 +ItemOnCommand=shadowlength,1;zoom,0.8;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.75);shadowcolor,BoostColor(Color("Red"),0.35) +ItemGainFocusCommand=stoptweening;linear,0.1;zoom,1;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.75) +ItemLoseFocusCommand=stoptweening;decelerate,0.05;zoom,0.8; +ColorSelected=Color("Red") +ColorNotSelected=Color("Red") +ColorDisabled=Color("Red") + +ItemsLongRowP1X=SCREEN_CENTER_X-1024 +ItemsLongRowP2X=SCREEN_CENTER_X+1024 +ItemsLongRowSharedX=SCREEN_CENTER_X + +[OptionsCursor] + +[OptionsCursorP1] +LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_1) +MiddleOnCommand=;diffuse,PlayerColor(PLAYER_1) +RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_1) + +[OptionsCursorP2] +LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_2) +MiddleOnCommand=;diffuse,PlayerColor(PLAYER_2) +RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2) + +[OptionsUnderline] + +[OptionsUnderlineP1] +LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_1) +MiddleOnCommand=;diffuse,PlayerColor(PLAYER_1) +RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_1) + +[OptionsUnderlineP2] +LeftOnCommand=horizalign,right;diffuse,PlayerColor(PLAYER_2) +MiddleOnCommand=;diffuse,PlayerColor(PLAYER_2) +RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2) + +[MenuTimer] +Text1OnCommand=horizalign,right;stopeffect;finishtweening;shadowlength,2;strokecolor,Color("Outline"); +Text1FormatFunction=function(fSeconds) fSeconds=math.floor(fSeconds); return string.format("%02.0f",fSeconds) end + +Text2OnCommand=x,2;y,3;stopeffect;stoptweening;halign,0;shadowlength,0;strokecolor,Color("Outline");zoom,0.65 +Text2FormatFunction=function(fSeconds) local remainder=fSeconds-math.floor(fSeconds); local digit=math.floor(remainder*100); return string.format("%02.0f",digit) end + +Warning10Command=diffuseshift;effectperiod,1;effectcolor1,Color.White;effectcolor2,Color.Red; + +[MenuTimerNoSound] + +[MenuTimerContinue] +Fallback="MenuTimer" +Text1OnCommand=strokecolor,Color.Outline;shadowlength,2 +Text1FormatFunction=function(fSeconds) return string.format("%02.2f",fSeconds) end; + +Text2OnCommand=visible,false +Text2FormatFunction=function(fSeconds) return "" end; + + +[MusicWheel] +SwitchSeconds=0.04 +LockedInitialVelocity=7 + +RouletteSwitchSeconds=0.04 +RouletteSlowDownSwitches=5 +LockedInitialVelocity=15 + +; linear wheel example: +; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ +; self:y(offsetFromCenter*38); \ +; end; +; 3D wheel example: +; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ +; local curve = math.pi; \ +; local WHEEL_3D_RADIUS = 245; \ +; local rotationx_radians = scale(offsetFromCenter,-numItems/2,numItems/2,-curve/2,curve/2); \ +; self:x( 0 - math.cos(offsetFromCenter/math.pi) ); \ +; self:y( WHEEL_3D_RADIUS * math.sin(rotationx_radians) ); \ +; self:z( -100 + WHEEL_3D_RADIUS * math.cos(rotationx_radians) ); \ +; self:rotationx( rotationx_radians * 180/math.pi ); --[[ to degrees end]] \ +; end; +ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*44 ); self:y( offsetFromCenter*46 ); end +MusicWheelSortOnCommand=fov,90; +MusicWheelSortOffCommand=fov,90; +MusicWheelItemSortOnCommand=zoomy,0;bounceend,0.05;zoomy,1 +MusicWheelItemSortOffCommand=linear,0.05;zoomy,0 +HighlightOnCommand=diffuseramp;effectcolor2,Color.White;effectcolor1,color("1,1,1,0.5");effectclock,'beatnooffset' +HighlightSortOnCommand=stoptweening;decelerate,0.05;glow,Color.Stealth;zoom,1 +HighlightSortOffCommand=stoptweening;accelerate,0.05;glow,Color.Yellow;zoom,1.05 +WheelItemOnDelayOffset=0.04 +WheelItemOffDelayOffset=0.04 + +SectionColor1=Color("Orange") +# +SongRealExtraColor=Color("Red") +SortMenuColor=Color("Orange") + +# + +UseEasyMarkerFlag=true + + +[CourseWheel] + +[OniWheel] +Fallback="CourseWheel" +ModeMenuChoiceNames="Oni,Survival" + +[OnlineMusicWheel] + +[MusicWheelItem] +WheelNotifyIconX=-128-16+0.5 +WheelNotifyIconOnCommand=shadowlength,2; +# +SongNameX=-120 +# +CourseX=-120 +CourseOnCommand=maxwidth,208;horizalign,left +# +SectionExpandedX=-38 +SectionExpandedY=-2 +SectionExpandedOnCommand=maxwidth,194;shadowlength,1;shadowcolor,color("0.1,0.1,0.1,0.25") +# +SectionCollapsedX=-38 +SectionCollapsedY=-2 +SectionCollapsedOnCommand=maxwidth,194;shadowlength,1;shadowcolor,color("0.1,0.1,0.1,0.2") +# +SectionCountX=120 +SectionCountOnCommand=zoom,0.75;strokecolor,Color("Outline") +# +RouletteOnCommand=maxwidth,400;shadowlength,1;basezoom,0.75;rainbowscroll,true;pulse;effectmagnitude,1,1.125,1;effectperiod,3 +# +SortX=-132 +SortY=-2 +SortOnCommand=maxwidth,256;horizalign,left;shadowlength,1;shadowcolor,color("0,0,0,0.325") +# +ModeX=-132 +ModeY=-2 +ModeOnCommand=maxwidth,256;horizalign,left;strokecolor,Color("Outline") +# +GradeP1X=106+16 +GradeP1Y=-8 +GradeP2X=110+16 +GradeP2Y=8 + +[NoteField] +ShowBoard=true + +[PlayerStageStats] + +[Player] +# In The Groove +# ReceptorArrowsYStandard=-125 +# ReceptorArrowsYReverse=145 +# StepMania Alpha 4 +# ~ ReceptorArrowsYStandard=-144 +# ~ ReceptorArrowsYReverse=144 +# SM5's default uses a UserPreference for this. +ReceptorArrowsYStandard=GetTapPosition('Standard') +ReceptorArrowsYReverse=GetTapPosition('Reverse') +ComboUnderField=ComboUnderField() +RollBodyIncrementsCombo=ThemePrefs.Get("ComboOnRolls") + +[PlayerOptions] + +[PlayerShared] + +[Profile] + +[RadarValues] + +[RollingNumbers] + +[RollingNumbersEvaluation] + +[RollingNumbersJudgment] + +[ScoreDisplayNormal] +TextOnCommand=shadowlength,1; + +[ScoreDisplayOni] +TextX= +TextY= +TextOnCommand=shadowlength,1; +TextOffCommand= + +[ScoreDisplayOni Numbers] +TextX= +TextY= +TextOnCommand=shadowlength,1; +TextOffCommand= + +[ScoreDisplayLifeTime] +FrameOnCommand=visible,false;spin +# +TimeRemainingY=80 +TimeRemainingOnCommand=zoom,1;shadowlength,1; +# +DeltaSecondsOnCommand=y,80; +DeltaSecondsGainLifeCommand=zoom,0.5; + +[ScoreDisplayPercentage Percent] +PercentP1OnCommand=shadowlength,1;strokecolor,Color.Outline +PercentP2OnCommand=shadowlength,1;strokecolor,Color.Outline +DancePointsP1OnCommand=shadowlength,1;strokecolor,Color.Outline +DancePointsP2OnCommand=shadowlength,1;strokecolor,Color.Outline + +[ScoreDisplayRave] +MeterP1OnCommand=draworder,-1;texcoordvelocity,1,0 +MeterP2OnCommand=draworder,-1;zoomx,-1;texcoordvelocity,1,0 +LevelP1OnCommand=draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_1) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );x,-144;skewx,-0.125; +LevelP2OnCommand=draworder,105;draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_2) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );x,144;skewx,-0.125; + +[ScoreKeeperRave] + +[ScreenEvaluation Percent] +# TODO: Better name? +PercentP1OnCommand=horizalign,right;shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); +PercentP2OnCommand=horizalign,right;shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); +PercentRemainderP1OnCommand=horizalign,left;shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); +PercentRemainderP2OnCommand=horizalign,left;shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); +DancePointsP1X=0 +DancePointsP1Y=0 +DancePointsP1OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) ); +DancePointsP1OffCommand= +DancePointsP2X=0 +DancePointsP2Y=0 +DancePointsP2OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) ); +DancePointsP2OffCommand= +DancePointsDigits=2 +ApplyScoreDisplayOptions=true +PercentDecimalPlaces=2 +PercentTotalSize=5 + +[SoundEffectControl] + +[SoundEffectControl_Off] + +[SoundEffectControl_Speed] + +[SoundEffectControl_Pitch] + +[StepsDisplayListRow] +# TODO: Make this use DifficultyList? +CapitalizeDifficultyNames=false +NumShownItems=5 +ItemsSpacingY=24 +MoveCommand=decelerate,0.05 + +FrameX= + +FrameSetCommand=%function(self,param) \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(ColorMidTone( CustomDifficultyToColor(param.CustomDifficulty) )); \ + else \ + self:diffuse(color('1,1,1,1')); \ + end; \ +end; +# +NumTicks=10 +MaxTicks=10 +# +ShowMeter=true +MeterX=56 +MeterOnCommand=shadowlength,1;zoom,0.65;textglowmode,'TextGlowMode_Inner'; +MeterSetCommand=%function(self,param) \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ + if param.Meter then \ + if param.Meter >= 10 then \ + self:textglowmode('TextGlowMode_Inner'); \ + self:glowshift(); \ + else \ + self:stopeffect(); \ + end; \ + end; \ +end; +# +ShowDescription=true +DescriptionX=ThemePrefs.Get("AutoSetStyle") and (-64-8+20) or (-64-8) +DescriptionOnCommand=shadowlength,1;horizalign,left;zoom,0.65;maxwidth,128+8-20;uppercase,true; +DescriptionSetCommand=%function(self,param) \ + if self:GetText() == "" then \ + self:settext("Edit"); \ + end; \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ +end; +# +ShowAutogen=true +AutogenX=0 +AutogenY=0 +AutogenOnCommand=diffuseshift;effectcolor1,Color.Alpha( Color("Green") , 0.5 );effectcolor2,ColorMidTone( Color("Green") ); +#AutogenOnCommand=zoom,0.75; +# +ShowStepsType=ThemePrefs.Get("AutoSetStyle") +StepsTypeX=-64-8 +StepsTypeY=0 +StepsTypeOnCommand= +StepsTypeSetCommand= + +[SongMeterDisplay] +StreamWidth=380 + +ContainerX= +ContainerY= +ContainerOnCommand= +ContainerOffCommand= + +FrameX=0 +FrameY=0 +FrameOnCommand=sleep,2;linear,0.25;diffuse,Color("Orange");glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 +FrameOffCommand= + +StreamX=0 +StreamY=0 +StreamOnCommand=0 +StreamOffCommand=0 + +TipX=0 +TipY=0 +TipOnCommand= +TipOffCommand= +[SongMeterDisplayP1] +Fallback="SongMeterDisplay" +FrameOnCommand=sleep,2;linear,0.25;diffuse,PlayerColor(PLAYER_1);glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 +[SongMeterDisplayP2] +Fallback="SongMeterDisplay" +FrameOnCommand=sleep,2;linear,0.25;diffuse,PlayerColor(PLAYER_2);glow,1,1,1,0.5;decelerate,0.6;glow,1,1,1,0 + +[StepsDisplayEvaluation] +Fallback="StepsDisplay" + +[StreamDisplay] +; a simple bar life meter: +; PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) local native_width=32; local zoomed_width=12; self:zoomx(zoomed_width/native_width); self:x((itemIndex-(numItems/2))*zoomed_width); end +# PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ + # local fItemWidth = ( 256 / numItems ) \ + # self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ + # self:zoomtowidth(fItemWidth); \ + # self:diffuseramp(); \ + # self:effectperiod(4); \ + # self:effectoffset((itemIndex-1)/numItems * -1); \ + # self:effectcolor2(color("1,1,1,1")); \ + # self:effectcolor1(color("0.5,0.5,0.5,1")); \ + # self:effectclock('beatnooffset'); \ +# end; +PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ + local offset = itemIndex / numItems \ + local rate = 4 \ + local fItemWidth = ( 256 / numItems ) \ + self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ + self:zoomtowidth(fItemWidth); \ + self:diffuseramp(); \ + self:effectcolor2(color("1,1,1,1")); \ + self:effectcolor1(color("0.5,0.5,0.5,1")); \ + self:effectperiod(rate); \ + self:effectclock('beat'); \ + self:effectoffset(1-offset); \ +end; +# PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ + # local fItemWidth = ( 256 / numItems ) \ + # self:x( ((itemIndex-(numItems/2))*fItemWidth) + ( numItems / 2 ) ); \ + # self:zoomtowidth(fItemWidth); \ + # self:diffuseramp(); \ + # self:effecttiming(1,0.01875*itemIndex,1,1-(0.01875*itemIndex)); \ + # self:effectclock('beatnooffset'); \ +# end; +TextureCoordScaleX=256/16 +NumPills=16 + +[TextBanner] +TitleOnCommand=horizalign,left;shadowlength,1; +SubtitleOnCommand=horizalign,left;shadowlength,1; +ArtistOnCommand=horizalign,left;shadowlength,1;skewx,-0.2 +ArtistPrependString="" + +[TextBannerHighScore] +Fallback="TextBanner" + +[WheelNotifyIcon] + +[Screen] + +[ScreenDebugOverlay] +BackgroundColor=color("0,0,0,0.75") + +LineOnColor=Color.White +LineOffColor=color("0.75,0.75,0.75,1") +LineStartY=SCREEN_TOP+50 +LineSpacing=19 +LineButtonX=SCREEN_CENTER_X-50 +LineFunctionX=SCREEN_CENTER_X-30 + +ButtonTextOnCommand=NoStroke;zoom,0.8;shadowlength,1 +ButtonTextToggledCommand=linear,0.025;textglowmode,'TextGlowMode_Inner';glow,color("1,0,0,1");sleep,0.125;decelerate,0.2;glow,color("1,0,0,0"); +FunctionTextOnCommand=NoStroke;zoom,0.8;skewx,-0.125;shadowlength,1 + +PageStartX=SCREEN_CENTER_X-100 +PageSpacingX=120 +PageTextOnCommand=NoStroke;zoom,0.75;strokecolor,Color.Outline; +PageTextGainFocusCommand=diffuse,color("1,1,1,1");skewx,-0.125; +PageTextLoseFocusCommand=diffuse,color("0.6,0.6,0.6,1") + +DebugMenuHeaderX=SCREEN_LEFT+80 +DebugMenuHeaderY=SCREEN_TOP+18 +DebugMenuHeaderOnCommand=diffusebottomedge,color("0.675,0.675,0.675,1");strokecolor,Color.Outline +DebugMenuHeaderOffCommand= + +HeaderTextX=SCREEN_LEFT+80 +HeaderTextY=SCREEN_TOP+18 +HeaderTextOnCommand=textglowmode,'TextGlowMode_Inner';glowshift;effectperiod,4;skewx,-0.125;diffusebottomedge,color("0.75,0.75,0.75,1");strokecolor,Color.Outline +HeaderTextOffCommand= +# + +[ScreenSystemLayer] +ShowClock=true +CreditsP1OnCommand=horizalign,left;vertalign,bottom;zoom,0.675;shadowlength,1;diffuse,PlayerColor(PLAYER_1);diffusetopedge,ColorLightTone(PlayerColor(PLAYER_1)); +# +CreditsP2OnCommand=horizalign,right;vertalign,bottom;zoom,0.675;shadowlength,1;diffuse,PlayerColor(PLAYER_2);diffusetopedge,ColorLightTone(PlayerColor(PLAYER_2)); +# + +[ScreenConsoleOverlay] + +[ScreenInstallOverlay] + +[ScreenSyncOverlay] + +[ScreenStatsOverlay] + +[ScreenWithMenuElements] +WaitForChildrenBeforeTweening=true + +ScreenInDelay=0 +ScreenOutDelay=0 + +FOV=90 +ShowHeader=true +HeaderX=SCREEN_CENTER_X +HeaderY=SCREEN_TOP-2 +HeaderOnCommand=draworder,1; +HeaderOffCommand= + +ShowFooter=true +FooterX=SCREEN_CENTER_X +FooterY=SCREEN_BOTTOM+4 +FooterOnCommand=draworder,1; +FooterOffCommand= + +ShowHelp=true +HelpX=SCREEN_CENTER_X +HelpY=SCREEN_BOTTOM-16 +HelpOnCommand=SetSecsBetweenSwitches,4;zoom,0.675;maxwidth,480/0.675;shadowlength,1;strokecolor,Color("Black");draworder,105;zoomy,0;zoom,1*0.675;linear,0.175 +HelpOffCommand=linear,0.175;zoomy,0 + +AlternateHelpDisplayX=SCREEN_CENTER_X +AlternateHelpDisplayY=SCREEN_BOTTOM-16 +# AlternateHelpDisplayOnCommand=draworder,105; +AlternateHelpDisplayOnCommand=SetSecsBetweenSwitches,4;zoom,0.675;maxwidth,480/0.675;shadowlength,1;strokecolor,Color("Black");draworder,105;zoomy,0;linear,0.175;zoom,1*0.675;diffusealpha,0 +AlternateHelpDisplayOffCommand=linear,0.175;zoomy,0 + +TimerX=SCREEN_RIGHT-36-4 +TimerY=SCREEN_TOP+23 +TimerOnCommand=draworder,2;visible,PREFSMAN:GetPreference("MenuTimer"); +# TimerOnCommand=fov,90;vanishpoint,SCREEN_RIGHT-36-4,SCREEN_TOP+20;draworder,5;visible,PREFSMAN:GetPreference("MenuTimer");rotationy,90;decelerate,0.4;rotationy,0; +TimerOffCommand= +# TimerOffCommand=accelerate,0.4;rotationx,90; + +StageDisplayNumberOffset=1 + +# +StageDisplayUseShortString=false + +# This is useful +ArcadeOverlayX= +ArcadeOverlayY= +ArcadeOverlayOnCommand=draworder,100 +ArcadeOverlayOffCommand= +# +ArcadeOverlay.TextX=SCREEN_CENTER_X +ArcadeOverlay.TextY=SCREEN_BOTTOM-48 +ArcadeOverlay.TextOnCommand= +ArcadeOverlay.TextOffCommand= + +[ScreenWithMenuElementsBlank] +ShowHeader=false +ShowFooter=false + +[ScreenSelectMaster] + +[ScreenSelectMasterBlank] + +[ScreenTextEntry] +QuestionOnCommand=diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);wrapwidthpixels,600 +AnswerOnCommand=diffuse,Color("Blue");glowshift; + + +[ScreenInit] +PrepareScreens="ScreenTitleMenu,ScreenTitleJoin" +GroupedScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" +PersistScreens="ScreenInit,ScreenTitleJoin,ScreenTitleMenu" + +[ScreenTitleMenu] +ShowHeader=false +ShowFooter=true +# +WrapScroller=false +ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((28)*(itemIndex-(numItems-1)/2)); end; +ScrollerSecondsPerItem=0 +ScrollerNumItemsToDraw=20 +ScrollerX=SCREEN_CENTER_X +ScrollerY=SCREEN_CENTER_Y+80 +ScrollerOnCommand=zoom,0;bounceend,0.35;zoom,1 +# +ShowLogo=true +LogoX=SCREEN_CENTER_X-32 +LogoY=SCREEN_CENTER_Y-68 +LogoOnCommand= +LogoOffCommand= +# +ShowTimingDifficulty=true +TimingDifficultyX=SCREEN_LEFT+16 +TimingDifficultyY=SCREEN_TOP+22 +TimingDifficultyOnCommand= +TimingDifficultyOffCommand= +# +ShowLifeDifficulty=true +LifeDifficultyX=SCREEN_LEFT+16 +LifeDifficultyY=SCREEN_TOP+44 +LifeDifficultyOnCommand= +LifeDifficultyOffCommand= +# +ShowNumSongs=true +NumSongsX=SCREEN_LEFT+16 +NumSongsY=SCREEN_TOP+68 +NumSongsOnCommand=vertalign,bottom;horizalign,left;zoom,0.5;shadowlength,1;playcommand,"Set" +NumSongsOffCommand= +ShowCurrentGametype=true +# +CurrentGametypeX=SCREEN_LEFT+16 +CurrentGametypeY=SCREEN_TOP+84 +CurrentGametypeOnCommand=vertalign,bottom;horizalign,left;zoom,0.5;shadowlength,1 +CurrentGametypeOffCommand= +# +ShowSystemDirection=false +SystemDirectionX=SCREEN_LEFT+40 +SystemDirectionY=SCREEN_TOP+24 +SystemDirectionOnCommand= +SystemDirectionOffCommand= +# +ShowVersionInfo=true +VersionInfoX=SCREEN_RIGHT-16 +VersionInfoY=SCREEN_TOP+24 +VersionInfoOnCommand= + + +VersionInfoOffCommand= +# +ShowNetworkStatus=true +NetworkStatusX=SCREEN_LEFT+12 +NetworkStatusY=SCREEN_BOTTOM-64 +NetworkStatusOnCommand=halign,0; +NetworkStatusOffCommand=linear,0.5;cropright,1 +# + +[ScreenQuickSetupOverview] + +IconStartX=SCREEN_CENTER_X-160 +IconStartY=SCREEN_BOTTOM-60 +IconSetX=SCREEN_CENTER_X-160 +IconSetY=SCREEN_BOTTOM-60 +IconBackX=SCREEN_CENTER_X+160 +IconBackY=SCREEN_BOTTOM-60 + +ExplanationX=SCREEN_CENTER_X +ExplanationY=SCREEN_BOTTOM-100 +ExplanationOnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_WIDTH/0.75; +ExplanationOffCommand= + + +[ScreenProfileLoad] +# +ShowHeader=true +ShowFooter=true +ShowHelp=true + +[ScreenSelectProfile] +WaitForChildrenBeforeTweening=true + +[ScreenSelectStyle] +UpdateOnMesage="" +# +FOV=90 +# +PerChoiceScrollElement=false +PerChoiceIconElement=false +# +# Having one lua function is so much better than dozens of metrics. -Kyz +ChoiceNames="lua,ScreenSelectStyleChoices()" +# +ShowScroller=false +ShowIcon=true +WrapScroller=false +UseIconMetrics=true +# +IconGainFocusCommand=stoptweening;bounceend,0.05;zoom,1; +IconLoseFocusCommand=stoptweening;decelerate,0.1;zoom,0.8; +# +IconChoicePosFunction=ScreenSelectStylePositions +IconChoiceOnCommand=zoom,0;bounceend,0.35;zoom,1 +IconChoiceOffCommand=linear,0.05;zoomx,0 +# + +[ScreenSelectPlayMode] +PersistScreens="ScreenSelectPlayMode,ScreenSelectMusic" +# +ScreenOutDelay=1.5 +# +DefaultChoice="Easy" +# ChoiceNames="Normal,Extended" +# +PerChoiceIconElement=false +# +ShowScroller=true +WrapScroller=true +ScrollerX=SCREEN_CENTER_X +ScrollerY=SCREEN_CENTER_Y-60 +ScrollerOnCommand=SetFastCatchup,true; +ScrollerOffCommand=decelerate,0.35;y,SCREEN_CENTER_Y;sleep,1.15;linear,0.1;zoomy,0 +# +ShowBackgroundFrame=false +BackgroundFrameX=SCREEN_CENTER_X +BackgroundFrameY=SCREEN_CENTER_Y-60 +BackgroundFrameOnCommand=diffuse,Color("Black");diffusealpha,0.7 +BackgroundFrameOffCommand=decelerate,0.8;y,SCREEN_CENTER_Y;sleep,1.5;linear,0.1;zoomy,0 +# +ShowIcon=true +UseIconMetrics=true +# +IconGainFocusCommand=stoptweening;glowshift;decelerate,0.125;zoom,1; +IconLoseFocusCommand=stoptweening;stopeffect;decelerate,0.125;zoom,0.6; +# IconMinZoom=0.5 +# IconBaseZoom=0.6 +# +IconChoiceEasyX=SCREEN_CENTER_X-(240*(5/6)) +IconChoiceEasyY=SCREEN_BOTTOM-88-64 +IconChoiceEasyOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceEasyOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceNormalX=SCREEN_CENTER_X-80 +IconChoiceNormalY=SCREEN_BOTTOM-88-64 +IconChoiceNormalOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceNormalOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceHardX=SCREEN_CENTER_X+(80*(5/6)) +IconChoiceHardY=SCREEN_BOTTOM-88-64 +IconChoiceHardOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceHardOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceRaveX=SCREEN_CENTER_X+80 +IconChoiceRaveY=SCREEN_BOTTOM-88-64 +IconChoiceRaveOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceRaveOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceNonstopX=SCREEN_CENTER_X-160 +IconChoiceNonstopY=SCREEN_BOTTOM-88 +IconChoiceNonstopOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceNonstopOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceOniX=SCREEN_CENTER_X +IconChoiceOniY=SCREEN_BOTTOM-88 +IconChoiceOniOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceOniOffCommand=linear,0.1175;zoomx,0 +# +IconChoiceEndlessX=SCREEN_CENTER_X+160 +IconChoiceEndlessY=SCREEN_BOTTOM-88 +IconChoiceEndlessOnCommand=zoom,0;bounceend,0.35;zoom,0.8 +IconChoiceEndlessOffCommand=linear,0.1175;zoomx,0 + +[ScreenSelectCharacter] + +[ScreenGameInformation] + +[ScreenSelectMusic] +UsePlayerSelectMenu=false +# OptionsMenuAvailable=(getenv(sMode) ~= Oni) +SelectMenuAvailable=true +# ModeMenuAvailable=(getenv(sMode) == Normal) +# HelpDisplay has things added here to make sure it disappears for another +# actor, which we defined in this screens decorations. +HelpSelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675;accelerate,0.125;diffusealpha,0;zoom,0.675*0.75; +HelpSelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*0.75;bouncebegin,0.125;diffusealpha,1;zoom,0.675 +# Clone everything from HelpDisplay: we're lazy +ShowAlternateHelpDisplay=true +# AlternateHelpDisplaySelectMenuOpenedMessageCommand=stoptweening;y,SCREEN_BOTTOM-16;accelerate,0.0725/2;y,SCREEN_BOTTOM-16-16;diffusealpha,1;decelerate,0.0725/2;y,SCREEN_BOTTOM-16-32; +# AlternateHelpDisplaySelectMenuClosedMessageCommand=stoptweening;y,SCREEN_BOTTOM-16;smooth,0.125;y,SCREEN_BOTTOM-16;diffusealpha,0; +AlternateHelpDisplaySelectMenuOpenedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675*1.25;bounceend,0.2;diffusealpha,1;zoom,0.675; +AlternateHelpDisplaySelectMenuClosedMessageCommand=stoptweening;maxwidth,480/0.675;zoom,0.675;accelerate,0.125;diffusealpha,0;zoom,0.675*0.75; +# +MusicWheelX=SCREEN_CENTER_X+160 +MusicWheelY=SCREEN_CENTER_Y +MusicWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_CENTER_Y;addx,SCREEN_CENTER_X;decelerate,0.1;addx,-SCREEN_CENTER_X +MusicWheelOffCommand=bouncebegin,0.15;zoomx,0; +# +ShowNewSong=not GAMESTATE:IsCourseMode() +NewSongX=SCREEN_CENTER_X-160+128-24 +NewSongY=SCREEN_TOP+160-2 +NewSongOnCommand=finishtweening;diffuse,Color("Orange");diffusetopedge,Color("Yellow");strokecolor,Color("Black");zoom,0.675;draworder,106;playcommand,"Set" +NewSongOffCommand=bouncebegin,0.1;zoom,0;diffusealpha,0 +NewSongShowCommand=finishtweening;diffusealpha,1;glowshift;effectclock,'bgm';effectperiod,4;textglowmode,'TextGlowMode_Inner'; +NewSongHideCommand=finishtweening;;diffusealpha,0;stopeffect; +# +ShowSongTime=true +SongTimeX=SCREEN_CENTER_X-160 +SongTimeY=SCREEN_TOP+160+(36/2)+8 +SongTimeOnCommand=zoom,0.75;strokecolor,Color("Outline");shadowlength,1 + + +SongTimeOffCommand=bouncebegin,0.15;zoom,0;diffusealpha,0; +SongTimeResetCommand=diffuse,Color("White"); +SongTimeAutogenCommand=diffuse,Color("Green"); +SongTimeLongCommand=diffuse,Color("Yellow");diffusebottomedge,Color("Orange"); +SongTimeMarathonCommand=diffuse,Color("Orange");diffusebottomedge,Color("Red"); +# +ShowSortOrderFrame=false +SortOrderFrameX=SCREEN_CENTER_X+128+32 +SortOrderFrameY=SCREEN_TOP+24 +SortOrderFrameOnCommand=draworder,105;shadowlength,1 +SortOrderFrameSortCommand= +SortOrderFrameSongChosenCommand=linear,0.1;diffusealpha,0; +SortOrderFrameOffCommand=bouncebegin,0.05;zoomy,0; +# +ShowSortOrder=true +SortOrderX=SCREEN_CENTER_X-160+128 +SortOrderY=SCREEN_TOP+160+(36/2)+8 +SortOrderOnCommand=draworder,105;horizalign,right;strokecolor,Color("Outline");zoom,0.675;maxwidth,96/0.675; +SortOrderSortCommand=finishtweening;zoom,0.675*1.25;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");decelerate,0.5;zoom,0.675;diffuse,Color("White"); +SortOrderSongChosenCommand=linear,0.25;diffusealpha,0; +SortOrderOffCommand=bouncebegin,0.05;zoomy,0; +# +ShowStageDisplay=true +StageDisplayX=SCREEN_RIGHT-128 +StageDisplayY=SCREEN_TOP+24+3 +StageDisplayOnCommand=skewx,-0.125;draworder,105;fov,90;zoom,0.75 +StageDisplayOffCommand=linear,0.05;zoomy,0; +# +ShowDifficultyDisplay=not ThemePrefs.Get("AutoSetStyle") and not GAMESTATE:IsCourseMode() +DifficultyDisplayX=SCREEN_CENTER_X-160 +DifficultyDisplayY=SCREEN_TOP+160-96+2 +DifficultyDisplayOnCommand=draworder,105;fov,90;zoom,1;zoomy,0;sleep,0.2;smooth,0.1;zoomy,1 +DifficultyDisplayOffCommand=linear,0.05;zoomy,0; +# +BannerX=SCREEN_CENTER_X-160 +BannerY=SCREEN_TOP+160-36+4 +BannerOnCommand=draworder,-1;scaletoclipped,256,80;visible,true;ztest,1;addy,-SCREEN_CENTER_Y;decelerate,0.1;addy,SCREEN_CENTER_Y +BannerOffCommand=bouncebegin,0.15;zoomx,0; +# +ShowBannerFrame=true +BannerFrameX=SCREEN_CENTER_X-160 +BannerFrameY=SCREEN_TOP+160-36+4 +BannerFrameOnCommand=draworder,105;addy,-SCREEN_CENTER_Y;decelerate,0.1;addy,SCREEN_CENTER_Y +BannerFrameOffCommand=bouncebegin,0.15;zoomx,0; +# +ShowBPMDisplay=true +BPMDisplayX=SCREEN_CENTER_X-160-90+2 +BPMDisplayY=SCREEN_TOP+160+(36/2)+8 +BPMDisplayOnCommand=finishtweening;maxwidth,128;horizalign,left;strokecolor,Color.Outline;addx,320;zoomx,0;decelerate,0.1;addx,-320;zoomx,1 +BPMDisplayOffCommand=bouncebegin,0.05;zoomx,0; +# +ShowBPMLabel=true +BPMLabelX=SCREEN_CENTER_X-160-90 +BPMLabelY=SCREEN_TOP+160+(36/2)+8 +BPMLabelOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X +BPMLabelOffCommand=bouncebegin,0.05;zoomx,0; +# +ShowSegmentDisplay=not GAMESTATE:IsCourseMode() +SegmentDisplayX=SCREEN_CENTER_X-160 +SegmentDisplayY=SCREEN_TOP+160-36+4 +SegmentDisplayOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X +SegmentDisplayOffCommand=bouncebegin,0.05;zoomx,0; +# +ShowDifficultyList=not GAMESTATE:IsCourseMode(); +DifficultyListX=SCREEN_CENTER_X-160 +DifficultyListY=SCREEN_TOP+216 +DifficultyListOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X; +DifficultyListStartSelectingStepsMessageCommand=finishtweening;accelerate,0.2;zoom,1.1;decelerate,0.2;zoom,1; +DifficultyListOffCommand=bouncebegin,0.05;zoomx,0; +# +DifficultyListTweenOnCommand=stoptweening;bounceend,0.1;zoomx,1 +DifficultyListTweenOffCommand=stoptweening;bouncebegin,0.1;zoomx,0 +# Shrink the difficultylist for viewing panedisplays; +# DifficultyListSelectMenuOpenedMessageCommand=stoptweening;decelerate,0.1;zoom,0.5; +# DifficultyListSelectMenuClosedMessageCommand=stoptweening;accelerate,0.05;zoom,1; +# +ShowPaneDisplayFrameP1=true +PaneDisplayFrameP1X=SCREEN_CENTER_X-160 +PaneDisplayFrameP1Y=SCREEN_BOTTOM-112-2 +PaneDisplayFrameP1OnCommand=player,PLAYER_1;diffuse,Color("Orange");zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 +PaneDisplayFrameP1OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayFrameP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end +# +ShowPaneDisplayTextP1=true +PaneDisplayTextP1X=SCREEN_CENTER_X-160 +PaneDisplayTextP1Y=SCREEN_BOTTOM-122-2 +PaneDisplayTextP1OnCommand=player,PLAYER_1;zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 +PaneDisplayTextP1OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayTextP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end +# +ShowPaneDisplayFrameP2=true +PaneDisplayFrameP2X=SCREEN_CENTER_X+160 +PaneDisplayFrameP2Y=SCREEN_BOTTOM-112-2 +PaneDisplayFrameP2OnCommand=player,PLAYER_2;diffuse,Color("Orange");zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 +PaneDisplayFrameP2OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayFrameP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end +# +ShowPaneDisplayTextP2=true +PaneDisplayTextP2X=SCREEN_CENTER_X+160 +PaneDisplayTextP2Y=SCREEN_BOTTOM-122-2 +PaneDisplayTextP2OnCommand=player,PLAYER_2;zoomy,0;sleep,0.1;decelerate,0.1;zoomy,1 +PaneDisplayTextP2OffCommand=bouncebegin,0.05;zoomx,0; +PaneDisplayTextP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end +# +ShowCourseContentsList=false +CourseContentsListX=SCREEN_CENTER_X-160 +CourseContentsListY=SCREEN_TOP+216+6 +CourseContentsListOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.1;addx,SCREEN_CENTER_X +CourseContentsListOffCommand=bouncebegin,0.05;zoomx,0; +# +ShowNumCourseSongs=GAMESTATE:IsCourseMode() +NumCourseSongsX=SCREEN_CENTER_X-160+128 +NumCourseSongsY=SCREEN_TOP+160+(36/2)+8 +NumCourseSongsOnCommand=zoom,0.75;strokecolor,Color("Outline");shadowlength,1 +NumCourseSongsOffCommand=bouncebegin,0.05;zoom,0;diffusealpha,0; +# +ShowSongOptions=true +SongOptionsX=SCREEN_CENTER_X +SongOptionsY=SCREEN_CENTER_Y +SongOptionsOnCommand=visible,false;draworder,1000 +SongOptionsOffCommand= +#-- +SongOptionsShowCommand=visible,true;uppercase,true;zoom,1.2;settext,THEME:GetString("ScreenSelectMusic","Press Start For Options");decelerate,0.2;zoom,1; +SongOptionsEnterCommand=uppercase,true;settext,THEME:GetString("ScreenSelectMusic","Entering Options");sleep,0.2;linear,0.2;zoomy,0; +SongOptionsHideCommand=linear,0.1;zoomy,0; +# +ShowSongOptionsFrame=true +SongOptionsFrameX=SCREEN_CENTER_X +SongOptionsFrameY=SCREEN_CENTER_Y +SongOptionsFrameOnCommand=visible,false;draworder,1000 +SongOptionsFrameOffCommand= +#-- +SongOptionsFrameShowCommand=visible,true;diffuse,Color("Orange");diffusealpha,0.5;zoomy,40*1.5;linear,1.5;zoomy,40; +SongOptionsFrameEnterCommand=sleep,0.5;linear,0.3;diffusealpha,0; +SongOptionsFrameHideCommand=linear,0.3;diffusealpha,0 +# +CDTitleX=SCREEN_CENTER_X-160+90 +CDTitleY=SCREEN_TOP+160+(36/2)+8 +CDTitleFrontCommand=diffuse,color('0.5,0.5,0.5,1');cullmode,'CullMode_Front' +CDTitleBackCommand=cullmode,'CullMode_Back' +#CDTitleOnCommand=draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.1;zoom,0.75;spin;effectmagnitude,0,180,0; +CDTitleOnCommand=visible,false +CDTitleOffCommand=bouncebegin,0.05;zoomx,0; +# +ScoreP1SortChangeCommand=stoptweening; +ScoreP2SortChangeCommand=stoptweening; +ScoreFrameP1SortChangeCommand=stoptweening; +ScoreFrameP2SortChangeCommand=stoptweening; +# +ShowStepsDisplayP1=GAMESTATE:IsHumanPlayer(PLAYER_1) +StepsDisplayP1X=SCREEN_CENTER_X-160 +StepsDisplayP1Y=SCREEN_BOTTOM-60 +StepsDisplayP1OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP1");addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y +StepsDisplayP1OffCommand=bouncebegin,0.05;zoomx,0; +# StepsDisplayP1CurrentStepsP1ChangedMessageCommand=stoptweening;zoom,1.2;decelerate,0.05;zoom,1 +# +ShowStepsDisplayP2=GAMESTATE:IsHumanPlayer(PLAYER_2) +StepsDisplayP2X=SCREEN_CENTER_X+160 +StepsDisplayP2Y=SCREEN_BOTTOM-60 +StepsDisplayP2OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP2");addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y +StepsDisplayP2OffCommand=bouncebegin,0.05;zoomx,0; +# StepsDisplayP2CurrentStepsP2ChangedMessageCommand=stoptweening;zoom,1.2;decelerate,0.05;zoom,1 +# +ShowPercentScoreP1=true +PercentScoreP1X=SCREEN_CENTER_X-80-1 +PercentScoreP1Y=SCREEN_BOTTOM-60 +PercentScoreP1OnCommand=player,PLAYER_1;addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y +PercentScoreP1OffCommand=bouncebegin,0.05;zoomx,0; +# +ShowPercentScoreP2=true +PercentScoreP2X=SCREEN_CENTER_X+240-1 +PercentScoreP2Y=SCREEN_BOTTOM-60 +PercentScoreP2OnCommand=player,PLAYER_2;addy,SCREEN_CENTER_Y;decelerate,0.1;addy,-SCREEN_CENTER_Y +PercentScoreP2OffCommand=bouncebegin,0.05;zoomx,0; + +[ScreenSelectCourse] +MusicWheelType=GAMESTATE:GetPlayMode() == 'PlayMode_Oni' and "OniWheel" or "CourseWheel" +Codes=GAMESTATE:GetPlayMode() == 'PlayMode_Oni' and "OniCodeDetector" or "CourseCodeDetector" +# +ShowDifficultyList=false +ShowCourseContentsList=true +ShowNumCourseSongs=true +# +UsePlayerSelectMenu=false +SelectMenuAvailable=false +# +ShowSortOrder=true +SortOrderOnCommand=visible,false +# +ShowPaneDisplayFrameP1=false +ShowPaneDisplayTextP1=false +ShowPaneDisplayFrameP2=false +ShowPaneDisplayTextP2=false + + +[CourseCodeDetector] +NextSort1="" +NextSort2="" +NextSort3="" +NextSort4="" +ModeMenu1="" +ModeMenu2="" + +[OniCodeDetector] +Fallback="CodeDetector" + +[StepsDisplay] +FrameLoadCommand=%function(self,param) end; +NumTicks=10 +MaxTicks=14 +TicksX=0 +TicksY=0 +TicksOnCommand=shadowlength,0; +TicksSetCommand=%function(self,param) end; +MeterX=56-32 +MeterY=0 +MeterOnCommand=shadowlength,1;textglowmode,'TextGlowMode_Inner' +MeterSetCommand=%function(self,param) \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ + if param.Meter then \ + if param.Meter >= 100 then \ + self:basezoom(0.8); \ + self:glowshift(); \ + elseif param.Meter >= 10 then \ + self:basezoom(1); \ + self:glowshift(); \ + else \ + self:basezoom(1); \ + self:stopeffect(); \ + end; \ + end; \ +end; +# +ShowDescription=true +DescriptionX=-20-32 +DescriptionY=ThemePrefs.Get("AutoSetStyle") and -5 or 0 +DescriptionOnCommand=shadowlength,1;uppercase,true;zoom,0.75;maxwidth,128+8 +DescriptionSetCommand=%function(self,param) \ + if self:GetText() == "" then \ + self:settext("Edit"); \ + end; \ + if param.CustomDifficulty and param.CustomDifficulty ~= "" then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ +end; +# +ShowAutogen=true +AutogenX=-132 +AutogenY=0 +AutogenOnCommand= +AutogenSetCommand=finishtweening +AutogenTweenOnCommand=finishtweening;decelerate,0.25;zoom,1 +AutogenTweenOffCommand=finishtweening;bounceend,0.2;zoomx,8;zoomy,0 +# +ShowStepsType=ThemePrefs.Get("AutoSetStyle") +StepsTypeX=-20-32 +StepsTypeY=7 +StepsTypeOnCommand=zoom,0.45 + +[StepsDisplayGameplay] +Fallback="StepsDisplay" + +# +ShowMeter=true +ZeroMeterString="?" +MeterX=56 +MeterY=0 +MeterOnCommand=shadowlength,1;textglowmode,'TextGlowMode_Inner' +MeterSetCommand=%function(self,param) \ + if param.CustomDifficulty then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ + if param.Meter then \ + if param.Meter >= 100 then \ + self:zoom(0.8); \ + else \ + self:zoom(1); \ + end; \ + end; \ +end; +# +ShowDescription=true +DescriptionX=-20 +DescriptionY=ThemePrefs.Get("AutoSetStyle") and -5 or 0 +DescriptionOnCommand=shadowlength,1;uppercase,true;zoom,0.75;maxwidth,128+8 +DescriptionSetCommand=%function(self,param) \ + if self:GetText() == "" then \ + self:settext("Edit"); \ + end; \ + if param.CustomDifficulty then \ + self:diffuse(CustomDifficultyToColor(param.CustomDifficulty)); \ + self:shadowcolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); \ + end; \ + (cmd(finishtweening;diffusealpha,0;addx,-4;smooth,0.125;addx,4;diffusealpha,1))(self); \ +end; +# +ShowAutogen=false +AutogenX=40 +AutogenY=0 +AutogenOnCommand= +AutogenSetCommand=%function(self,param) if param.Difficulty then self:diffuse(CustomDifficultyToLightColor(param.Difficulty)); self:strokecolor(CustomDifficultyToDarkColor(param.Difficulty)); end end +# +ShowStepsType=ThemePrefs.Get("AutoSetStyle") +StepsTypeX=-20 +StepsTypeY=7 +StepsTypeOnCommand=zoom,0.45 + +[ScreenOptions] +CursorTweenSeconds=0.05 + +DisqualifyP1X=SCREEN_CENTER_X-176 +DisqualifyP1Y=SCREEN_BOTTOM-98 +DisqualifyP1OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_1 +DisqualifyP2X=SCREEN_CENTER_X+176 +DisqualifyP2Y=SCREEN_BOTTOM-98 +DisqualifyP2OnCommand=draworder,100;zoom,0.5;shadowlength,1;player,PLAYER_2 + +ContainerOnCommand=x,-SCREEN_WIDTH;decelerate,0.35;x,SCREEN_LEFT +CursorOnCommand= + +LineHighlightOnCommand=cropleft,0.1;cropright,0.1;zoomx,1.25;fadeleft,0.05;faderight,0.05;diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25");effectclock,'beat' +LineHighlightChangeCommand=linear,0.1;diffuse,Color("White");diffuseshift;effectcolor2,color("1,1,1,0.5");effectcolor1,color("1,1,1,0.25") +LineHighlightChangeToExitCommand=linear,0.1;diffuse,Color("Red");diffuseshift;effectcolor2,color("1,0,0,0.5");effectcolor1,color("1,0,0,0.25") +# +LineHighlightP1OnCommand=diffuse,PlayerColor(PLAYER_1);diffusealpha,0.65;zoomtowidth,500;fadeleft,0.45;faderight,0.45; +LineHighlightP1ChangeCommand=finishtweening;diffusealpha,0.65; +LineHighlightP1ChangeToExitCommand=finishtweening;diffusealpha,0.15; +LineHighlightP2OnCommand=diffuse,PlayerColor(PLAYER_2);diffusealpha,0.65;zoomtowidth,500;fadeleft,0.45;faderight,0.45; +LineHighlightP2ChangeCommand=finishtweening;diffusealpha,0.65; +LineHighlightP2ChangeToExitCommand=finishtweening;diffusealpha,0.15; +# +ShowScrollBar=true +ScrollBarHeight=320 +ScrollBarTime=0.05 +ScrollBarX=SCREEN_CENTER_X+256+44 +ScrollBarY=SCREEN_CENTER_Y-24 +# +ShowExplanations=true +ExplanationP1X=SCREEN_CENTER_X-256-20 +ExplanationP1Y=SCREEN_CENTER_Y+174 +ExplanationP1OnCommand=diffuse,PlayerColor(PLAYER_1);shadowlength,1;wrapwidthpixels,256/0.5;zoom,0.5;halign,0;cropright,1;linear,0.5;cropright,0 +ExplanationP1OffCommand= +ExplanationP2X=SCREEN_CENTER_X+256+20 +ExplanationP2Y=SCREEN_CENTER_Y+174 +ExplanationP2OnCommand=diffuse,PlayerColor(PLAYER_2);shadowlength,1;wrapwidthpixels,256/0.5;zoom,0.5;halign,1;cropright,1;linear,0.5;cropright,0 +ExplanationP2OffCommand= +ExplanationTogetherX=SCREEN_CENTER_X +ExplanationTogetherY=SCREEN_CENTER_Y+184 +ExplanationTogetherOnCommand=stoptweening;shadowlength,0;zoom,0.75;wrapwidthpixels,(SCREEN_WIDTH*0.9375)*1.25;cropright,1;linear,0.5;cropright,0 +ExplanationTogetherOffCommand=stoptweening +[ScreenOptionsMaster] + +[ScreenOptionsSimple] + +[ScreenOptionsSimpleService] + +[ScreenOptionsService] +ShowHeader=true + +LineNames="GameType,GraphicSound,KeyConfig,Arcade,InputOptions,SoundGraphics,Theme,Profiles,Network,Advanced,Reload,Credits" +LineTheme="gamecommand;screen,ScreenOptionsTheme;name,Theme Options" + +# ScreenOptionsSystemDirection" + +NumRowsShown=14 +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-170+24*offsetFromCenter) end + +SeparateExitRow=false +SeparateExitRowY=SCREEN_BOTTOM-40 + +[ScreenOptionsExtended] +LineNames="2,Sync,3,10,11,4,12,5,Theme" + +[ScreenOptionsServiceChild] + +[ScreenOptionsServiceExtendedChild] + +[ScreenMiniMenu] +HeaderY=SCREEN_TOP +HeaderOnCommand=draworder,100;visible,false +LineHighlightOnCommand=cropleft,0.1;cropright,0.1;zoomx,1.3;fadeleft,0.25;faderight,0.25;diffusealpha,0.375 +LineHighlightChangeCommand= +LineHighlightChangeToExitCommand= + +[OptionRowMiniMenu] +Fallback="OptionRow" +TitleX=SCREEN_CENTER_X-320+48 +TitleOnCommand=horizalign,left;shadowlength,0;uppercase,true;zoom,0.6375;strokecolor,Color("Black"); +ItemsLongRowP1X=SCREEN_CENTER_X-240 +ItemsLongRowP2X=SCREEN_CENTER_X+240 +ItemsLongRowSharedX=SCREEN_CENTER_X+200 +ItemOnCommand=zoom,0.6375 + +ColorSelected=color("1,1,1,1") +ColorNotSelected=color("0.5,0.5,0.5,1") + +[ScreenMiniMenuContext] +PageOnCommand=visible,false +LineHighlightX=SCREEN_CENTER_X/2 + +TitleX=SCREEN_CENTER_X +TitleOnCommand=shadowlength,1; +ItemsStartX=SCREEN_CENTER_X +ItemsEndX=SCREEN_CENTER_X +ItemsGapX=14 +ItemsLongRowP1X=SCREEN_CENTER_X +ItemsLongRowP2X=SCREEN_CENTER_X +ItemsLongRowSharedX=SCREEN_CENTER_X + +[OptionRowMiniMenuContext] + +[ScreenMapControllers] +LinesVisible=15 + +[ScreenTestInput] + +[ScreenOptionsSystemDirection] +LineNames="1,2,3,4,5,6,7,8,9,FlashyCombo,RollCombo,10,11,12,13,14,16,LF,17,18,19,20,21,22" +LineLF="lua,ThemePrefRow('LongFail')" +LineRollCombo="lua,ThemePrefRow('ComboOnRolls')" +LineFlashyCombo="lua,ThemePrefRow('FlashyCombo')" + +[ScreenOptionsGraphicsSound] + +[ScreenOptionsAdvanced] +LineNames="3,4,8,SI,SM,11,13,14,15,16,28,29,30,32,RollCombo,ECPT" +LineRollCombo="lua,ThemePrefRow('ComboOnRolls')" + +[ScreenAppearanceOptions] + +[ScreenOptionsUI] + +[ScreenOptionsInput] + +[ScreenOptionsArcade] + +[ScreenOptionsTheme] +Fallback="ScreenOptionsServiceChild" +NextScreen="ScreenOptionsService" +PrevScreen="ScreenOptionsService" +LineNames="gNotePos,gAuto,gScore,gSDisp,TimingDisplay,gOpts,gLongFail,gComboUnderField,FlashyCombo,GameplayFooter,FancyUIBG" +LinegNotePos="lua,ThemePrefRow('NotePosition')" +LinegScore="lua,ThemePrefRow('GameplayShowScore')" +LinegSDisp="lua,ThemePrefRow('GameplayShowStepsDisplay')" +LineTimingDisplay="lua,ThemePrefRow('TimingDisplay')" +LinegOpts="lua,ThemePrefRow('ShowLotsaOptions')" +LinegAuto="lua,ThemePrefRow('AutoSetStyle')" +LinegLongFail="lua,ThemePrefRow('LongFail')" +LinegComboUnderField="lua,ThemePrefRow('ComboUnderField')" +LineFlashyCombo="lua,ThemePrefRow('FlashyCombo')" +LineGameplayFooter="lua,ThemePrefRow('GameplayFooter')" +LineFancyUIBG="lua,ThemePrefRow('FancyUIBG')" + +[ScreenSelectGame] + +[ScreenNetworkOptions] + +[ScreenOptionsManageProfiles] + +[ScreenOptionsEditProfile] + +[ScreenOptionsCustomizeProfile] +ShowHeader=true +ShowFooter=true + +[ScreenReloadSongs] + +[ScreenPlayerOptions] +LineNames="1,8,14,2,3A,3B,4,5,6,R1,R2,7,9,10,11,12,13,SF,17,16" +LineSF="lua,OptionRowScreenFilter()" +Line17="lua,OptionRowProTiming()" +Line18="list,Characters" + +PlayerNameplateP1X=SCREEN_CENTER_X * 0.5 + 16 +PlayerNameplateP1Y=SCREEN_CENTER_Y - 176 +PlayerNameplateP1OnCommand=draworder,DrawOrder.Decorations;zoomy,0;addx,-SCREEN_CENTER_X;sleep,0.75;decelerate,0.25;addx,SCREEN_CENTER_X;zoomy,1 +PlayerNameplateP1OffCommand= + +PlayerNameplateP2X=SCREEN_CENTER_X * 1.5 - 16 +PlayerNameplateP2Y=SCREEN_CENTER_Y - 176 +PlayerNameplateP2OnCommand=draworder,DrawOrder.Decorations;zoomy,0;addx,SCREEN_CENTER_X;sleep,0.75;decelerate,0.25;addx,-SCREEN_CENTER_X;zoomy,1 +PlayerNameplateP2OffCommand= + +[ScreenPlayerOptionsRestricted] + +[ScreenSplash] + +[ScreenExit] + +[ScreenAttract] + +# +# +# +# + +[ScreenHighScores] +Fallback="ScreenWithMenuElements" + +ResetGameState=false +AttractVolume=true + +FOV=90 + +ScrollerItemsToDraw=9 +ScrollerOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;SetMask,624,40;draworder,-5 +ScrollerItemTransformFunction=function(self,offset,itemIndex,numItems) \ + self:y(46 * offset); \ +end; + +HelpOnCommand=visible,false + +[ScreenRanking] +# + +# + +# + +# + +# + +# 05 # B + +# 05 # C +[ScreenGameplay] +# +SongMeterDisplayX=SCREEN_CENTER_X +SongMeterDisplayY=SCREEN_TOP+50 +SongMeterDisplayOnCommand=draworder,50;zoom,0;y,SCREEN_TOP-24;sleep,1.5;decelerate,0.5;zoom,1;y,SCREEN_TOP+50 +SongMeterDisplayOffCommand= +# +ShowSongTitle=not GAMESTATE:IsDemonstration(); +SongTitleX=SCREEN_CENTER_X +SongTitleY=SCREEN_TOP+54 +SongTitleOnCommand=draworder,55;strokecolor,Color.Outline;shadowlength,1;basezoom,0.55;zoomy,0;sleep,1;smooth,0.5;zoom,1; +SongTitleOffCommand= +# +SongMeterDisplayP1X=Center1Player() and SCREEN_CENTER_X or SCREEN_LEFT+16 +SongMeterDisplayP1Y=Center1Player() and SCREEN_TOP+60 or SCREEN_CENTER_Y-32 +SongMeterDisplayP1OnCommand=draworder,5;rotationz,Center1Player() and 0 or -90;zoom,0;addx,-24;sleep,1.5;decelerate,0.5;zoom,1;addx,24;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 +SongMeterDisplayP1OffCommand= +# +SongMeterDisplayP2X=Center1Player() and SCREEN_CENTER_X or SCREEN_RIGHT-16 +SongMeterDisplayP2Y=Center1Player() and SCREEN_TOP+60 or SCREEN_CENTER_Y-32 +SongMeterDisplayP2OnCommand=draworder,5;rotationz,Center1Player() and 0 or -90;zoom,0;addx,24;sleep,1.5;decelerate,0.5;zoom,1;addx,-24;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 +SongMeterDisplayP2OffCommand= +# +ShowBPMDisplay=true +BPMDisplayX=Center1Player() and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X +# BPMDisplayX=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X +BPMDisplayY=SCREEN_BOTTOM-17 +BPMDisplayOnCommand=draworder,101 +BPMDisplayOffCommand=bounceend,0.25;zoom,0 +# +ShowStageDisplay=true +StageDisplayX=SCREEN_CENTER_X +StageDisplayY=Center1Player() and SCREEN_BOTTOM-76 or SCREEN_BOTTOM-50 +StageDisplayOnCommand=draworder,DrawOrder.Screen +StageDisplayOffCommand=bounceend,0.25;zoom,0 +StageDisplayUseShortString=true +# +ShowScoreFrame=ThemePrefs.Get("GameplayFooter"); +ScoreFrameX=SCREEN_CENTER_X +ScoreFrameY=SCREEN_BOTTOM+4 +ScoreFrameOnCommand=draworder,4;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 +LifeP1OnCommand=finishtweening;addy,-48;sleep,1.25;bounceend,0.35;addy,48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 +#~ LifeP1OnCommand=addx,-SCREEN_CENTER_X;sleep,1.25;decelerate,0.35*0.25;addx,SCREEN_CENTER_X*1.5;accelerate,0.35*0.25;addx,-SCREEN_CENTER_X*0.25;bounceend,0.35*0.25;addx,-SCREEN_CENTER_X*0.25 +LifeP1OffCommand= +LifeP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# LifeP2X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +LifeP2Y=SCREEN_TOP+24 +LifeP2OnCommand=finishtweening;zoomx,-1;addy,-48;sleep,1.25;bounceend,0.35;addy,48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 +#~ LifeP2OnCommand=zoomx,-1;addx,SCREEN_CENTER_X;sleep,1.25;decelerate,0.35*0.25;addx,-SCREEN_CENTER_X*1.5;accelerate,0.35*0.25;addx,SCREEN_CENTER_X*0.25;bounceend,0.35*0.25;addx,SCREEN_CENTER_X*0.25 +LifeP2OffCommand= +CombinedLifeX=SCREEN_CENTER_X +CombinedLifeY=SCREEN_TOP+24 +CombinedLifeOnCommand=finishtweening;addy,-48;sleep,1.25;bounceend,0.35;addy,48; +CombinedLifeOffCommand= +# +ToastyDisplayP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +# ToastyDisplayP1X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +ToastyDisplayP1Y=SCREEN_CENTER_Y +ToastyDisplayP1OnCommand=visible,false +ToastyDisplayP1OffCommand= +# +ToastyDisplayP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# ToastyDisplayP2X=(GAMESTATE:GetCurrentStyle():GetStyleType() == 'StyleType_OnePlayerTwoSides' or (PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1)) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +ToastyDisplayP2Y=SCREEN_CENTER_Y +ToastyDisplayP2OnCommand=visible,false +ToastyDisplayP2OffCommand= +# +SongNumberP1X=Center1Player() and SCREEN_CENTER_X - 60 or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") - 60 +SongNumberP1Y=SCREEN_TOP+24+7 +SongNumberP1OnCommand=zoom,0.75;diffuse,PlayerColor(PLAYER_1);strokecolor,BoostColor(PlayerColor(PLAYER_1),0.5) +SongNumberP1OffCommand= +SongNumberP2X=Center1Player() and SCREEN_CENTER_X + 60 or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") + 60 +SongNumberP2Y=SCREEN_TOP+24+7 +SongNumberP2OnCommand=zoom,0.75;diffuse,PlayerColor(PLAYER_2);strokecolor,BoostColor(PlayerColor(PLAYER_2),0.5) +SongNumberP2OffCommand= +# +RemainingTimeP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") + 32 +RemainingTimeP1Y=THEME:GetMetric(Var "LoadingScreen","ScoreP1Y") - 20 +RemainingTimeP1OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_1);diffusebottomedge,ColorMidTone(PlayerColor(PLAYER_1)); +RemainingTimeP1OffCommand= +RemainingTimeP2X=THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") + 32 +RemainingTimeP2Y=THEME:GetMetric(Var "LoadingScreen","ScoreP2Y") - 20 +RemainingTimeP2OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_2);diffusebottomedge,ColorMidTone(PlayerColor(PLAYER_2)); +RemainingTimeP2OffCommand= +# +DeltaSecondsP1X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP1X") - 80 +DeltaSecondsP1Y=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP1Y") +DeltaSecondsP1OnCommand=shadowlength,1;skewx,-0.125 +DeltaSecondsP1GainSecondsCommand=finishtweening;diffusealpha,1;zoom,1;decelerate,0.3;zoom,0.75;sleep,0.5;linear,0.2;diffusealpha,0;zoom,0 +DeltaSecondsP1OffCommand= +DeltaSecondsP2X=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP2X") - 80 +DeltaSecondsP2Y=THEME:GetMetric(Var "LoadingScreen","RemainingTimeP2Y") +DeltaSecondsP2OnCommand=shadowlength,1;skewx,-0.125 +DeltaSecondsP2GainSecondsCommand=finishtweening;diffusealpha,1;zoom,1;decelerate,0.3;zoom,0.75;sleep,0.5;linear,0.2;diffusealpha,0;zoom,0 +DeltaSecondsP2OffCommand= +# +ScoreP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +# ScoreP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +ScoreP1Y=SCREEN_BOTTOM-48 +ScoreP1OnCommand=draworder,101;visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");diffuse,PlayerColor(PLAYER_1);sleep,3+0.3;smooth,0.5;y,SCREEN_BOTTOM-48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1 +ScoreP1OffCommand= +ScoreP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# ScoreP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +ScoreP2Y=SCREEN_BOTTOM-48 +ScoreP2OnCommand=draworder,101;visible,(GAMESTATE:GetCurrentCourse() == nil or GAMESTATE:GetCurrentCourse():GetCourseType() ~= "CourseType_Survival") and ThemePrefs.Get("GameplayShowScore");diffuse,PlayerColor(PLAYER_2);sleep,3+0.3;smooth,0.5;y,SCREEN_BOTTOM-48;hide_if,(GAMESTATE:GetCurrentStyle():GetStyleType() == "StyleType_TwoPlayersSharedSides") and GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2 +ScoreP2OffCommand= +# +StepsDescriptionP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +# StepsDescriptionP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +StepsDescriptionP1Y=SCREEN_CENTER_Y+34 +StepsDescriptionP1OnCommand=draworder,101;zoom,0.5;diffusealpha,0;addy,-10;smooth,0.3;diffusealpha,1;addy,10;sleep,3;smooth,0.5;addy,-10;diffusealpha,0 +StepsDescriptionP1OffCommand= +StepsDescriptionP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# StepsDescriptionP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +StepsDescriptionP2Y=SCREEN_CENTER_Y+34 +StepsDescriptionP2OnCommand=draworder,101;zoom,0.5;diffusealpha,0;addy,-10;smooth,0.3;diffusealpha,1;addy,10;sleep,3;smooth,0.5;addy,-10;diffusealpha,0 +StepsDescriptionP2OffCommand= +# +PlayerOptionsP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +# PlayerOptionsP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +PlayerOptionsP1Y=SCREEN_CENTER_Y+82 +PlayerOptionsP1OnCommand=draworder,101;shadowlength,1;vertalign,top;wrapwidthpixels,256*2;zoom,0.5;diffusealpha,0;addy,10;smooth,0.3;diffusealpha,1;addy,-10;sleep,3;smooth,0.5;addy,10;diffusealpha,0 +PlayerOptionsP1OffCommand= +PlayerOptionsP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# PlayerOptionsP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +PlayerOptionsP2Y=SCREEN_CENTER_Y+82 +PlayerOptionsP2OnCommand=draworder,101;shadowlength,1;vertalign,top;wrapwidthpixels,256*2;zoom,0.5;diffusealpha,0;addy,10;smooth,0.3;diffusealpha,1;addy,-10;sleep,3;smooth,0.5;addy,10;diffusealpha,0 +PlayerOptionsP2OffCommand= +# +StepsDisplayP1X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +# StepsDisplayP1X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +StepsDisplayP1Y=SCREEN_CENTER_Y+58 +StepsDisplayP1OnCommand=draworder,101;zoomy,0;linear,0.3;zoomy,1;sleep,3;queuecommand,( ThemePrefs.Get("GameplayShowStepsDisplay") == true and "Show" or "Hide" ); +StepsDisplayP1ShowCommand=smooth,0.5;y,SCREEN_BOTTOM-20; +StepsDisplayP1HideCommand=linear,0.5;zoomy,0 +StepsDisplayP1OffCommand= +StepsDisplayP2X=Center1Player() and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +# StepsDisplayP2X=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and SCREEN_CENTER_X or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX") +StepsDisplayP2Y=SCREEN_CENTER_Y+58 +StepsDisplayP2OnCommand=draworder,101;zoomy,0;linear,0.3;zoomy,1;sleep,3;queuecommand,( ThemePrefs.Get("GameplayShowStepsDisplay") == true and "Show" or "Hide" ); +StepsDisplayP2ShowCommand=smooth,0.5;y,SCREEN_BOTTOM-20; +StepsDisplayP2HideCommand=linear,0.5;zoomy,0 +StepsDisplayP2OffCommand= +# +SongOptionsX=Center1Player() and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X +# SongOptionsX=(PREFSMAN:GetPreference("Center1Player") and GAMESTATE:GetNumPlayersEnabled() == 1) and (GAMESTATE:GetMasterPlayerNumber() == PLAYER_1 and THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") or THEME:GetMetric(Var "LoadingScreen","PlayerP2OnePlayerOneSideX")) or SCREEN_CENTER_X +SongOptionsY=SCREEN_BOTTOM-32 +SongOptionsOnCommand=draworder,101;zoom,0.5 +SongOptionsOffCommand= +# +LyricDisplaySetNoReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+160 +LyricDisplaySetReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-140 +# This is used if one player is in reverse and the other isn't. +LyricDisplaySetOneReverseCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-160; +LyricDisplayDefaultColor=Color("White") +# +OniGameOverP1X= +OniGameOverP1Y= +OniGameOverP1OnCommand= +OniGameOverP1OffCommand= +# +OniGameOverP2X= +OniGameOverP2Y= +OniGameOverP2OnCommand= +OniGameOverP2OffCommand= +# +SurviveTimeX=SCREEN_CENTER_X +SurviveTimeY=SCREEN_CENTER_Y+40 +SurviveTimeOnCommand=shadowlength,1;zoomx,0;bounceend,1;zoomx,1 +SurviveTimeOffCommand=shadowlength,1;linear,1;zoom,0.75;diffusealpha,0 +# +ActiveAttackListP1X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +ActiveAttackListP1Y= +ActiveAttackListP1OnCommand=visible,false +ActiveAttackListP1OffCommand= +ActiveAttackListP2X=THEME:GetMetric(Var "LoadingScreen","PlayerP1OnePlayerOneSideX") +ActiveAttackListP2Y= +ActiveAttackListP2OnCommand=visible,false +ActiveAttackListP2OffCommand= +# +# Disable the normal start and select button actions to enable a custom pause +# menu +DebugOnCommand=visible,false +StartGivesUp=false +UnpauseWithStart=false +SelectSkipsSong=false +StopCourseEarly=check_stop_course_early() + +[ScreenGameplayShared] + +[ScreenHeartEntry] +HeartEntryEnabled=true +ShowHeader=true +ShowFooter=true + +[ScreenEvaluation] +Class="ScreenEvaluation" +Fallback="ScreenWithMenuElements" +# +StageDisplayNumberOffset=0 +# +NextScreen=Branches.AfterEvaluation() +PrevScreen=Branches.AfterEvaluation() +# +PlayMusic=false +# +PrepareScreens="ScreenProfileSave,ScreenSelectMusic" +PersistScreens="ScreenEvaluation,ScreenProfileSave,ScreenSelectMusic" +# +ShowJudgmentLineW1=true +ShowJudgmentLineW2=true +ShowJudgmentLineW3=true +ShowJudgmentLineW4=true +ShowJudgmentLineW5=true +ShowJudgmentLineHeld=(GAMESTATE:GetCurrentGame():GetName() ~= "pump") +ShowJudgmentLineMiss=true +ShowJudgmentLineMaxCombo=true +ShowGradeArea=true +ShowScoreArea=true +ShowPointsArea=true +ShowSharedJudgmentLineLabels=true +ShowGraphDisplay=true +ShowComboGraph=true +ShowStepsDisplay=true + +# +W1NumberP1X=SCREEN_CENTER_X-160+40 +W1NumberP1Y=SCREEN_TOP+160 +W1NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +W1NumberP1OffCommand= +W1NumberP2X=SCREEN_CENTER_X+160-40 +W1NumberP2Y=SCREEN_TOP+160 +W1NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +W1NumberP2OffCommand= +W1LabelX=SCREEN_CENTER_X +W1LabelY=SCREEN_TOP+160 +W1LabelOnCommand= +W1LabelOffCommand= +# +W2NumberP1X=SCREEN_CENTER_X-160+40 +W2NumberP1Y=SCREEN_TOP+180 +W2NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +W2NumberP1OffCommand= +W2NumberP2X=SCREEN_CENTER_X+160-40 +W2NumberP2Y=SCREEN_TOP+180 +W2NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +W2NumberP2OffCommand= +W2LabelX=SCREEN_CENTER_X +W2LabelY=SCREEN_TOP+180 +W2LabelOnCommand= +W2LabelOffCommand= +# +W3NumberP1X=SCREEN_CENTER_X-160+40 +W3NumberP1Y=SCREEN_TOP+200 +W3NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +W3NumberP1OffCommand= +W3NumberP2X=SCREEN_CENTER_X+160-40 +W3NumberP2Y=SCREEN_TOP+200 +W3NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +W3NumberP2OffCommand= +W3LabelX=SCREEN_CENTER_X +W3LabelY=SCREEN_TOP+200 +W3LabelOnCommand= +W3LabelOffCommand= +# +W4NumberP1X=SCREEN_CENTER_X-160+40 +W4NumberP1Y=SCREEN_TOP+220 +W4NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +W4NumberP1OffCommand= +W4NumberP2X=SCREEN_CENTER_X+160-40 +W4NumberP2Y=SCREEN_TOP+220 +W4NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +W4NumberP2OffCommand= +W4LabelX=SCREEN_CENTER_X +W4LabelY=SCREEN_TOP+220 +W4LabelOnCommand= +W4LabelOffCommand= +# +W5NumberP1X=SCREEN_CENTER_X-160+40 +W5NumberP1Y=SCREEN_TOP+240 +W5NumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +W5NumberP1OffCommand= +W5NumberP2X=SCREEN_CENTER_X+160-40 +W5NumberP2Y=SCREEN_TOP+240 +W5NumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +W5NumberP2OffCommand= +W5LabelX=SCREEN_CENTER_X +W5LabelY=SCREEN_TOP+240 +W5LabelOnCommand= +W5LabelOffCommand= +# +MissNumberP1X=SCREEN_CENTER_X-160+40 +MissNumberP1Y=SCREEN_TOP+260 +MissNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +MissNumberP1OffCommand= +MissNumberP2X=SCREEN_CENTER_X+160-40 +MissNumberP2Y=SCREEN_TOP+260 +MissNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +MissNumberP2OffCommand= +MissLabelX=SCREEN_CENTER_X +MissLabelY=SCREEN_TOP+260 +MissLabelOnCommand= +MissLabelOffCommand= +# +HeldNumberP1X=SCREEN_CENTER_X-160+40 +HeldNumberP1Y=SCREEN_TOP+280 +HeldNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +HeldNumberP1OffCommand= +HeldNumberP2X=SCREEN_CENTER_X+160-40 +HeldNumberP2Y=SCREEN_TOP+280 +HeldNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +HeldNumberP2OffCommand= +HeldLabelX=SCREEN_CENTER_X +HeldLabelY=SCREEN_TOP+280 +HeldLabelOnCommand= +HeldLabelOffCommand= +# +MaxComboNumberP1X=SCREEN_CENTER_X-160+40 +MaxComboNumberP1Y=SCREEN_TOP+300 +MaxComboNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;set_mult_attrs_with_diffuse,true +MaxComboNumberP1OffCommand= +MaxComboNumberP2X=SCREEN_CENTER_X+160-40 +MaxComboNumberP2Y=SCREEN_TOP+300 +MaxComboNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;set_mult_attrs_with_diffuse,true +MaxComboNumberP2OffCommand= +MaxComboLabelX=SCREEN_CENTER_X +MaxComboLabelY=SCREEN_TOP+300 +MaxComboLabelOnCommand= +MaxComboLabelOffCommand= +# +ScoreLabelX=SCREEN_CENTER_X +ScoreLabelY=SCREEN_TOP+330 +ScoreLabelOnCommand= +ScoreLabelOffCommand= +# +ScoreNumberP1X=SCREEN_CENTER_X-160 +ScoreNumberP1Y=SCREEN_TOP+320 +ScoreNumberP1OnCommand=diffuse,PlayerColor(PLAYER_1);strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );shadowlength,1;zoom,0.775;set_mult_attrs_with_diffuse,true +ScoreNumberP1OffCommand= +ScoreNumberP2X=SCREEN_CENTER_X+160 +ScoreNumberP2Y=SCREEN_TOP+320 +ScoreNumberP2OnCommand=diffuse,PlayerColor(PLAYER_2);strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );shadowlength,1;zoom,0.775;set_mult_attrs_with_diffuse,true +ScoreNumberP2OffCommand= +# +PercentFrameP1X=SCREEN_CENTER_X-160 +PercentFrameP1Y=SCREEN_TOP+320 +PercentFrameP1OnCommand=visible,false +PercentFrameP1OffCommand= +# +PercentFrameP2X=SCREEN_CENTER_X+160 +PercentFrameP2Y=SCREEN_TOP+320 +PercentFrameP2OnCommand=visible,false +PercentFrameP2OffCommand= +# +PercentP1X=SCREEN_CENTER_X-160 +PercentP1Y=SCREEN_TOP+320 +PercentP1OnCommand=visible,false +PercentP1OffCommand= +# +PercentP2X=SCREEN_CENTER_X+160 +PercentP2Y=SCREEN_TOP+320 +PercentP2OnCommand=visible,false +PercentP2OffCommand= +# +LargeBannerX=SCREEN_CENTER_X +LargeBannerY=SCREEN_TOP+100 +LargeBannerOnCommand= +LargeBannerOffCommand= +LargeBannerFrameX=SCREEN_CENTER_X +LargeBannerFrameY=SCREEN_TOP+100 +LargeBannerFrameOnCommand= +LargeBannerFrameOffCommand= +# +GradeFrameP1X=SCREEN_CENTER_X-220 +GradeFrameP1Y=SCREEN_TOP+80 +GradeFrameP1OnCommand= +GradeFrameP1OffCommand= +GradeFrameP2X=SCREEN_CENTER_X+220 +GradeFrameP2Y=SCREEN_TOP+80 +GradeFrameP2OnCommand= +GradeFrameP2OffCommand= +# +GradeP1X=SCREEN_CENTER_X-220 +GradeP1Y=SCREEN_TOP+100 +GradeP1OnCommand= +GradeP1OffCommand= +GradeP2X=SCREEN_CENTER_X+220 +GradeP2Y=SCREEN_TOP+100 +GradeP2OnCommand= +GradeP2OffCommand= +# +PlayerOptionsP1X=SCREEN_CENTER_X-160 +PlayerOptionsP1Y=SCREEN_TOP+352 +PlayerOptionsP1OnCommand=zoom,0.5;shadowlength,1 +PlayerOptionsP1OffCommand= +## +PlayerOptionsP2X=SCREEN_CENTER_X+160 +PlayerOptionsP2Y=SCREEN_TOP+352 +PlayerOptionsP2OnCommand=zoom,0.5;shadowlength,1 +PlayerOptionsP2OffCommand= +# +SongOptionsX=SCREEN_CENTER_X +SongOptionsY=SCREEN_BOTTOM-104 +SongOptionsOnCommand=zoom,0.5;shadowlength,1; +SongOptionsOffCommand= +# +DisqualifiedP1X=SCREEN_CENTER_X-220 +DisqualifiedP1Y=SCREEN_TOP+140 +DisqualifiedP1OnCommand= +DisqualifiedP1OffCommand= +DisqualifiedP2X=SCREEN_CENTER_X+220 +DisqualifiedP2Y=SCREEN_TOP+140 +DisqualifiedP2OnCommand= +DisqualifiedP2OffCommand= +# +GraphDisplayP1X=SCREEN_CENTER_X-160 +GraphDisplayP1Y=SCREEN_BOTTOM-100 +GraphDisplayP1OnCommand= +GraphDisplayP1OffCommand= +GraphDisplayP2X=SCREEN_CENTER_X+160 +GraphDisplayP2Y=SCREEN_BOTTOM-100 +GraphDisplayP2OnCommand= +GraphDisplayP2OffCommand= +# +ComboGraphP1X=SCREEN_CENTER_X-160 +ComboGraphP1Y=SCREEN_BOTTOM-100+32-7 +ComboGraphP1OnCommand= +ComboGraphP1OffCommand= +ComboGraphP2X=SCREEN_CENTER_X+160 +ComboGraphP2Y=SCREEN_BOTTOM-100+32-7 +ComboGraphP2OnCommand= +ComboGraphP2OffCommand= +# +MachineRecordP1X=SCREEN_CENTER_X-220 +#MachineRecordP1Y=SCREEN_BOTTOM-156 + +MachineRecordP1Y=SCREEN_TOP+146 +MachineRecordP1OnCommand= +MachineRecordP1OffCommand= +# +MachineRecordP2X=SCREEN_CENTER_X+220 +#MachineRecordP2Y=SCREEN_BOTTOM-156 +MachineRecordP2Y=SCREEN_TOP+146 +MachineRecordP2OnCommand= + +MachineRecordP2OffCommand= +# +PersonalRecordP1X=SCREEN_CENTER_X-160 +PersonalRecordP1Y=SCREEN_BOTTOM-144 +PersonalRecordP1OnCommand= +PersonalRecordP1OffCommand= +# +PersonalRecordP2X=SCREEN_CENTER_X+160 +PersonalRecordP2Y=SCREEN_BOTTOM-144 +PersonalRecordP2OnCommand= +PersonalRecordP2OffCommand= +# +StageAwardP1X=SCREEN_CENTER_X-220 +StageAwardP1Y=SCREEN_TOP+130 +StageAwardP1OnCommand=draworder,105;zoom,0.75;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");strokecolor,ColorDarkTone( Color("Orange") );glowshift;textglowmode,'TextGlowMode_Inner' +StageAwardP1OffCommand= +# +StageAwardP2X=SCREEN_CENTER_X+220 +StageAwardP2Y=SCREEN_TOP+130 +StageAwardP2OnCommand=draworder,105;zoom,0.75;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");strokecolor,ColorDarkTone( Color("Orange") );glowshift;textglowmode,'TextGlowMode_Inner' +StageAwardP2OffCommand= +# +PeakComboAwardP1X=SCREEN_CENTER_X-160 +PeakComboAwardP1Y=SCREEN_TOP+300+10 +PeakComboAwardP1OnCommand=draworder,105;zoom,0.5;diffusebottomedge,Color("Blue");strokecolor,ColorDarkTone( Color("Blue") );glowshift;textglowmode,'TextGlowMode_Inner' +PeakComboAwardP1OffCommand= +# +PeakComboAwardP2X=SCREEN_CENTER_X+160 +PeakComboAwardP2Y=SCREEN_TOP+300+10 +PeakComboAwardP2OnCommand=draworder,105;zoom,0.5;diffusebottomedge,Color("Blue");strokecolor,ColorDarkTone( Color("Blue") );glowshift;textglowmode,'TextGlowMode_Inner' +PeakComboAwardP2OffCommand= +# +ShowStepsDisplayP1=GAMESTATE:IsHumanPlayer(PLAYER_1) +StepsDisplayP1X=SCREEN_CENTER_X-160 +StepsDisplayP1Y=SCREEN_BOTTOM-50 +StepsDisplayP1OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP1");addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y +StepsDisplayP1OffCommand=bouncebegin,0.15;zoomx,0; +# +ShowStepsDisplayP2=GAMESTATE:IsHumanPlayer(PLAYER_2) +StepsDisplayP2X=SCREEN_CENTER_X+160 +StepsDisplayP2Y=SCREEN_BOTTOM-50 +StepsDisplayP2OnCommand=visible,THEME:GetMetric(Var "LoadingScreen","ShowStepsDisplayP2");addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y +StepsDisplayP2OffCommand=bouncebegin,0.15;zoomx,0; +# +PercentScoreP1X=SCREEN_CENTER_X-82 +PercentScoreP1Y=SCREEN_BOTTOM-50 +PercentScoreP1OnCommand=draworder,100;addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y; +PercentScoreP1OffCommand=bouncebegin,0.15;zoomx,0; +# +PercentScoreP2X=SCREEN_CENTER_X+238 +PercentScoreP2Y=SCREEN_BOTTOM-50 +PercentScoreP2OnCommand=draworder,100;addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y; +PercentScoreP2OffCommand=bouncebegin,0.15;zoomx,0; +# +ShowGameType=true +GameTypeX=SCREEN_CENTER_X +GameTypeY=SCREEN_BOTTOM-48 +GameTypeOnCommand=addy,SCREEN_CENTER_Y;decelerate,0.35;addy,-SCREEN_CENTER_Y;zoom,0.675;shadowlength,1;shadowcolor,color("#22222266") +GameTypeOffCommand=bouncebegin,0.15;addy,SCREEN_CENTER_Y; +# +ShowTimingDifficulty=true +TimingDifficultyX=SCREEN_CENTER_X +TimingDifficultyY=SCREEN_TOP+16 +TimingDifficultyOnCommand=zoom,0.675;draworder,105 +TimingDifficultyOffCommand= +# +ShowLifeDifficulty=true +LifeDifficultyX=SCREEN_CENTER_X +LifeDifficultyY=SCREEN_TOP+32 +LifeDifficultyOnCommand=zoom,0.675;draworder,105 +LifeDifficultyOffCommand= +# +ShowSongInformation=true +SongInformationX=SCREEN_CENTER_X +SongInformationY=SCREEN_TOP+100 +SongInformationOnCommand=playcommand,"Set";draworder,105 +SongInformationOffCommand= + +ShowWinArea=GAMESTATE:GetPlayMode() == 'PlayMode_Rave' +WinFrameP1X= +WinFrameP1Y= +WinFrameP1OnCommand= +WinFrameP2X= +WinFrameP2Y= +WinFrameP2OnCommand= +#----# +WinP1X=SCREEN_CENTER_X-224 +WinP1Y=SCREEN_BOTTOM-224 +WinP1OnCommand=draworder,101 +WinP2X=SCREEN_CENTER_X+224 +WinP2Y=SCREEN_BOTTOM-224 +WinP2OnCommand=draworder,101 + +[ScreenEvaluationNormal] +Fallback="ScreenEvaluation" +# +PlayMusic=false +# +ShowBannerFrame=false +# +ShowStageDisplay=true +StageDisplayX=SCREEN_CENTER_X+160 +StageDisplayY=SCREEN_TOP+28 +StageDisplayOnCommand=draworder,105;fov,90;vertalign,bottom;vanishpoint,SCREEN_CENTER_X+160,SCREEN_TOP+28;rotationy,90;decelerate,0.5;rotationy,0; +StageDisplayOffCommand= + +[ScreenEvaluationSummary] +Fallback="ScreenEvaluation" +# +NextScreen=Branch.AfterSummary() +# +PlayMusic=false +# +Summary=true +# +ShowStageDisplay=false +# +ShowBannerList=true +BannerListX=SCREEN_CENTER_X +BannerListY=SCREEN_TOP+96 +BannerListOnCommmand= +BannerListOffCommand= +# +SmallBanner1X=SCREEN_CENTER_X-72 +SmallBanner1Y=SCREEN_TOP+100-24 +SmallBanner1OnCommand=visible,false +SmallBanner1OffCommand= + +SmallBanner2X=SCREEN_CENTER_X-48 +SmallBanner2Y=SCREEN_TOP+100-16 +SmallBanner2OnCommand=visible,false +SmallBanner2OffCommand= + +SmallBanner3X=SCREEN_CENTER_X-24 +SmallBanner3Y=SCREEN_TOP+100-8 +SmallBanner3OnCommand=visible,false +SmallBanner3OffCommand= + +SmallBanner4X=SCREEN_CENTER_X+24 +SmallBanner4Y=SCREEN_TOP+100+8 +SmallBanner4OnCommand=visible,false +SmallBanner4OffCommand= + +SmallBanner5X=SCREEN_CENTER_X+48 +SmallBanner5Y=SCREEN_TOP+100+16 +SmallBanner5OnCommand=visible,false +SmallBanner5OfCommand= + +SmallBanner6X=SCREEN_CENTER_X+72 +SmallBanner6Y=SCREEN_TOP+100+24 +SmallBanner6OnCommand=visible,false +SmallBanner6OffCommand= + +[ScreenNameEntry] + +[ScreenNameEntryTraditional] + +[ScreenContinue] +ShowHeader=false +ShowFooter=false +ContinueEnabled=false +# +TimerSeconds=20 +TimerMetricsGroup="MenuTimerContinue" +TimerX=SCREEN_CENTER_X +TimerY=SCREEN_CENTER_Y+24 +TimerOnCommand=visible,true +TimerOffCommand= + +[ScreenProfileSave] + +[ScreenProfileSaveSummary] + +[ScreenGameOver] +TimerOnCommand=visible,false + +[ScreenPrompt] + +[ScreenOptionsEdit] + +[EditMenu] + +[TextBannerEditMode] + +[ScreenEditMenu] + +[ScreenEdit] + +[ScreenPracticeMenu] + +[PracticeMenu] + +[ScreenPractice] + +[ScreenEditOptions] +LineNames="1,2,3,4,5,6,R1,R2,7,8,9,10,Attacks,11,12,13,14,15,16,SF,lead_in,ECPT" +Line1="lua,ArbitrarySpeedMods()" +LineSF="lua,OptionRowScreenFilter()" + +[StepsDisplayEdit] +Fallback="StepsDisplayGameplay" + +[ScreenMiniMenuEditHelp] + +[OptionRowMiniMenuEditHelp] + +[ScreenMiniMenuMainMenu] + +[ScreenMiniMenuAreaMenu] + +[ScreenMiniMenuStepsInformation] + +[ScreenMiniMenuSongInformation] + +[ScreenMiniMenuTimingDataInformation] + +[ScreenMiniMenuBackgroundChange] + +[ScreenMiniMenuPreferences] + +[ScreenMiniMenuInsertTapAttack] + +[ScreenMiniMenuInsertCourseAttack] + +[ScreenMiniMenuCourseDisplay] + +[ScreenMiniMenuCourseOptions] + +[ScreenOptionsExportPackage] + +[ScreenOptionsManage] + +[OptionRowManage] + +[OptionRowCourseOverview] + +[ScreenOptionsManageCourses] + +[OptionRowCourse] + +[ScreenOptionsEditCourse] + +[OptionRowEditCourse] + +[ScreenOptionsCourseOverview] + +[ScreenGameplaySyncMachine] +SongMeterDisplayP1OnCommand=visible,false +SongMeterDisplayP2OnCommand=visible,false +StepsDescriptionP1OnCommand=visible,false +StepsDescriptionP2OnCommand=visible,false +StepsDisplayP1OnCommand=visible,false +StepsDisplayP2OnCommand=visible,false +PlayerOptionsP1OnCommand=visible,false +PlayerOptionsP2OnCommand=visible,false + +[PlayerSyncMachine] + +[ScreenHowToInstallSongs] +Class="ScreenSelectMaster" +Fallback="ScreenSelectMaster" +ShowHeader=false + +ShowScroller=true +PerChoiceScrollElement=false +# +ShowIcon=true +UseIconMetrics=false +PerChoiceIconElement=false +# +ScrollerX=SCREEN_LEFT+32 +ScrollerY=SCREEN_CENTER_Y +ScrollerTransform=function(self,offset,itemIndex,numItems) self:y(24*(itemIndex-(numItems-1)/2)); end +ScrollerNumItemsToDraw=20 +ScrollerOffCommand=bouncebegin,0.25;addx,-SCREEN_CENTER_X + +ChoiceNames="WhereToFind,HowToInstall,AdditionalFolders,ReloadSongs,Exit" +ChoiceWhereToFind="urlnoexit,http://code.google.com/p/sm-ssc/wiki/FindingContent;text,"..Screen.String("Finding Songs") +ChoiceHowToInstall="urlnoexit,http://code.google.com/p/sm-ssc/wiki/InstallingContent;text,"..Screen.String("Installing Songs") +ChoiceAdditionalFolders="text,"..Screen.String("Importing Songs") +ChoiceReloadSongs="screen,ScreenReloadSongs;text,"..Screen.String("Reload Songs") +ChoiceExit="screen,"..Branch.TitleMenu()..";text,"..Screen.String("Exit") +DefaultChoice="WhereToFind" + +OptionOrderUp="5:4,4:3,3:2,2:1,1:5" +OptionOrderDown="1:2,2:3,3:4,4:5,5:1" + +[ScreenSMOnlineLogin] + +[ScreenNetSelectBase] + +[ScreenNetSelectMusic] +BPMDisplayX=SCREEN_CENTER_X-160-90+2 +BPMDisplayY=SCREEN_CENTER_Y+156 +BPMDisplayOnCommand=finishtweening;horizalign,left;strokecolor,Color("Outline");maxwidth,128;addx,320;zoomx,0;decelerate,0.35;addx,-320;zoomx,1 +BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0; + +StepsDisplayP1X=SCREEN_CENTER_X-240 +StepsDisplayP1Y=SCREEN_CENTER_Y+185 +StepsDisplayP1OnCommand=horizalign,right;zoomx,0.0;zoomy,0.0;linear,0.5;zoomy,1.0;zoomx,1.0 +StepsDisplayP1OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0 +#--# +StepsDisplayP2X=SCREEN_CENTER_X-110 +StepsDisplayP2Y=SCREEN_CENTER_Y+185 +StepsDisplayP2OnCommand=horizalign,right;zoomx,0.0;zoomy,0.0;linear,0.5;zoomy,1.0;zoomx,1.0 +StepsDisplayP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0 +#====# + +ShowBPMDisplay=true +BPMDisplayX=SCREEN_CENTER_X+2 +BPMDisplayY=SCREEN_CENTER_Y+188 +BPMDisplayOnCommand=finishtweening;maxwidth,128;horizalign,left;strokecolor,Color("Outline");addx,320;zoomx,0;decelerate,0.35;addx,-320;zoomx,1 +BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0; +#--# +ShowBPMLabel=true +BPMLabelX=SCREEN_CENTER_X +BPMLabelY=SCREEN_CENTER_Y+188 +BPMLabelOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.35;addx,SCREEN_CENTER_X +BPMLabelOffCommand=bouncebegin,0.15;zoomx,0; + +UsersX=SCREEN_CENTER_X-272 +UsersY=SCREEN_CENTER_Y-172 +UsersDX=40 +UsersAY=16 +UsersOnCommand=draworder,2;zoom,0.75;shadowlength,1 +# +ShowDifficultyDisplay=true +DifficultyDisplayX=SCREEN_CENTER_X +DifficultyDisplayY=SCREEN_CENTER_Y+158 +DifficultyDisplayOnCommand=draworder,105;fov,90;zoom,0.75 +DifficultyDisplayOffCommand=linear,0.25;zoomy,0; + +[StepsDisplayNet] + +[ScreenNetRoom] + +[RoomWheel] + +[RoomWheelItem] + +[RoomInfoDisplay] + +[ScreenSMOnlineSelectMusic] + +[ModIcon] + +[ModIconSelectMusic] + +[ModIconRow] + +[ModIconRowSelectMusic] + +[GraphDisplay] + +[ComboGraph] + +[ScreenNetEvaluation] +UserTier02OrBetterCommand=diffuseshift;effectperiod,0.75;effectcolor1,color("1,0.95,0.8,1");effectcolor2,color("0.8,0.95,1,1") + +# Arcade + +[ScreenLogo] +TimerSeconds=10 +ShowLogo=true +LogoX=SCREEN_CENTER_X +LogoY=SCREEN_CENTER_Y-18 +LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 +LogoOffCommand=stopeffect;bouncebegin,0.35;zoom,0 + +ArcadeOverlay.TextY=SCREEN_BOTTOM-60 +# + +[ScreenHowToPlay] + +[ScreenTitleJoin] +ShowHelp=false +HelpText=Screen.String("HelpTextTitleJoin") +HelpY=SCREEN_CENTER_Y+100 +HelpOnCommand=visible,false;zoom,1;strokecolor,color("0.125,0.125,0.125,0.5");queuecommand,"Refresh" +HelpCoinIsertedMessageCommand=playcommand,"Refresh" +HelpCoinModeChangedMessageCommand=playcommand,"Refresh" +HelpRefreshCommand=%function(self) \ + local bCanPlay = GAMESTATE:EnoughCreditsToJoin(); \ + local bReady = GAMESTATE:GetNumSidesJoined() > 0; \ + if bCanPlay or bReady then \ + self:SetTipsColonSeperated(THEME:GetString( Var "LoadingScreen","HelpTextPlay")); \ + else \ + self:SetTipsColonSeperated(THEME:GetString( Var "LoadingScreen","HelpTextWait")); \ + end \ +end; +# +LogoX=SCREEN_CENTER_X +LogoY=SCREEN_CENTER_Y-28 +LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 +LogoOffCommand=stopeffect;bouncebegin,0.35;rotationz,360;zoom,0 + +VersionInfoX=SCREEN_CENTER_X+110 +VersionInfoY=SCREEN_CENTER_Y+4 +VersionInfoOnCommand=horizalign,right;vertalign,bottom;bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,1;shadowlength,1;shadowcolor,color("0.2,0.2,0.2,0.925"); +ScrollerOnCommand=visible,false; +ArcadeOverlay.TextY=SCREEN_BOTTOM-128 + +[ScreenDemonstration] +SongMeterDisplayOnCommand=visible,false +SongMeterDisplayP1OnCommand=visible,false +SongMeterDisplayP2OnCommand=visible,false +LifeP1OnCommand=visible,false +LifeP2OnCommand=visible,false +ScoreP1OnCommand=visible,false +ScoreP2OnCommand=visible,false +StepsDisplayP1OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 +StepsDisplayP2OnCommand=zoomy,0;linear,0.3;zoomy,1;sleep,3;smooth,0.5;y,SCREEN_BOTTOM-20;zoomy,0 +ShowBPMDisplay=false + +[ScreenJukeboxMenu] + +[ScreenJukebox] + +[ScreenCredits] + +[TimingData] +GetReturnsNumbers=true Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/_blank.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/_blank.png differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/_gameplay sync music.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/_gameplay sync music.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/_missing.png and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/_missing.png differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Catalog.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Catalog.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Catalog.xsl" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Catalog.xsl" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Totals + + + + + + + + +
+ +
+
+ +
+ + + + + + + + + Steps + Trail + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + +
+ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Common.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Common.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Common.xsl" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Common.xsl" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,831 @@ + + + + + + + + + + + + JavaScript: toggleLinkClicked(event); + JavaScript: return false; + JavaScript: toggleLinkOnMouseOver(event); + JavaScript: toggleLinkOnMouseOut(event); + cursor: hand; + + + + + + + + + + + + + + + + + + + + + + <xsl:value-of select="$Catalog/ProductTitle" /><xsl:text> </xsl:text><xsl:value-of select="$DocName" /> + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+ + + + + + + button + Internet Ranking + navButton + JavaScript: window.location = ''; + + + + + + button + Upload Stats + navButton + JavaScript: window.location = '&stats_xml=' + window.location; + + + + + Machine: + + + Name: + +
+ Last Played: +
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + % + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : + + : + + + + + + + + + + + + true + + + false + + + + + + + + Guid= + + + _new + + + + + + + + + + + + + + + + + + + + valuename + + nowrap + + + +   + + dyndata + + nowrap + + + +     + + + + + + + + + + +
+
+ + + + + + + + + + valuename + + + + + dyndata + + + +
  
+ +
+ + + + + + + +
+ + +
+
+
+ + + + + + + + + valuename + + +    + + + valuename + + + +    + + dyndata + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + + + + + + + main + + + + + + + +
+ +
+
+ + + + + + + + main + + + + + + +
+ +
+
+ + + + + + + + main + + + + + + + +
+ +
+
+ + + + + + + + + + + + + +
+ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Stats.xsl" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Stats.xsl" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/Profile Stats.xsl" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/Profile Stats.xsl" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,1421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Instructions + + + +

Overview

+ + + + +
+ This section explains all the files saved to your memory card. Please read the instructions below before modifying any files on your memory card. Modifying files may result in irreversible loss of your data. +
+ +
+ +

Description of Files

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Edits/ + This directory contains edit step files that you've created yourself or downloaded from the internet. + + More Info + + You can place up to 200 .edit files in this directory. The edit file format is similar to an .sm file, except that it has only two tags: +
+ #SONG:<SongDirectory>; +
+ #NOTES:<StepsType>:<Description>:<Difficulty>:<Meter>:<RadarValues>:<NoteData>; +
+
+
LastGood/ + This directory contains a backup of your last Stats.xml and signatures that were successfully loaded. + + More Info + + The stats on your memory card may fail to load because: +
    +
  • The Stats.xml file or its digital signatures have become corrupt.
  • +
  • The Stats.xml file has been modified outside of the game. This will cause the digital signature check to fail.
  • +
+ If your saved statistics fail to load, your can restore from from the "last good" data. Copy all 3 files in the files LastGood directory into the main profile directory (one level up from LastGood). +
+
+
Screenshots/ + All in-game screenshots that you take are saved in this directory. + + More Info + + This directory contains all screenshots that you've captured while playing the game. The Screenshots section of Stats.xml shows thumbnails score details for all screens you've captured. +
+ The MD5 hash for a screenshot file can be used to verify that the screenshot has not been modified since it was first saved. +
+ If your memory card is full, you can free space by deleting some of the screenshot .jpg files or moving them to another disk. +
+
+
Catalog.xmlContains game data used by Stats.xsl for displaying a report of your stats.
DontShare.sig + DontShare.sig is a digital signature that's required by the game when it loads your memory card data. This is a secret file that you shouldn't share with anyone else. + + More Info + + You can freely share Stats.xml and Stats.xml.sig with other players or submit these files for internet ranking. However, you should always keep DontShare.sig private. + Without the DontShare.sig, another player will not be able to load your saved data and pass it off as their own. + + +
Editable.ini + Holds preferences that you can edit using your home computer. You can open this file using any text editor program and save changes. +
Stats.xmlYou're looking at this file now. It contains all of your saved scores, statistics, and preferences. The game reads this data when you insert your memory card.
Stats.xml.sig + This is the digital signature for Stats.xml. + + More Info + + Digital signatures are used to verify that your data hasn't been modified outside of the game. This prevents cheaters from changing their score data and passing it off as real. +
+ If any of Stats.xml, Stats.xml.sig, or DontShare.sig have been modified outside of the game, your memory card data will be ignored and overridden after the next save. It's important that you don't modify any of these three files because doing so will render your data permanently unusable. +
+
+
+ +
+
+
+ + + + + + + + + + + General Data + + + + + + + + +
+ +
+ + + Song Count by PlayMode + + + + + + + + + + + + + + + + + + + + + + Song Count by Style + + + + + + + + + + + + + + + + + + + + + + Song Count by Difficulty + + + + + + + + + + + + + + + + + + + + + + Song Count by Meter + + + + + + + + + + + + + + + + + + + + + + Stages Passed by Grade + + + + + + + + + + + + + + + + + + + + + + Stages Passed by PlayMode + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + Songs + Courses + + + Steps + Trail + + + + + + Popularity + + + + + Ranking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unplayed + + + + + + + + + + + + + + + + + + + + + + + Ranking + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+
+
+ + + + + + + + + + Steps + Trail + + + + Top Scores + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + Songs + Courses + + + Steps + Trail + + + Difficulty + CourseDifficulty + + + + Completeness + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
Actual + + + + + +
Possible + + + + + +
Percentage + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ +
+
+
+
+
+
+ + + + + + + + + + + + Recent Scores + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Screenshots + + + + + + + + + + + + + + + + +
+ + + _new + + + 160 + 120 + border-width: 0 + + + + + + + + +
+ +
+
+ + + + + + + + + + Coin Counts + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+
+
+ + + + + + + + + + + Calories + + + + + WARNING: Weight is not set. Calorie counts may be inaccurate. +
+
+ + + + + + + + + All time + + + + + + + + Per Song + + + 0 + + + + + + + + + + Per Minute of Gameplay + + + 0 + + + + + + + + + + + +
+ +

By Week

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SunMonTueWedThuFriSat
+ +
+
+
+ + + + + + + + + Week of + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sunday + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + error: + + + + + + + + + + + Sun + Mon + Tue + Wed + Thu + Fri + Sat + error: + + + + + + + + + + + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + error: + + + + + + + + + + + January + February + March + April + May + June + July + August + September + October + November + December + error: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [not implemented] + + + + + 0 + + + + + + 0 + + + + + + + 12 + 0 + + 0 + + + + + + + [not implemented] + + + + + 0 + + + + + + 0 + + + + + + + AM + PM + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [not implemented] + + + + + [not implemented] + + + + + [not implemented] + + + + + + + + + + + + + + + % + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/ScreenGameplaySyncMachine music.sm" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/ScreenGameplaySyncMachine music.sm" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/ScreenGameplaySyncMachine music.sm" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/ScreenGameplaySyncMachine music.sm" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,175 @@ +#TITLE:Sync; +#SUBTITLE:; +#ARTIST:Unknown artist; +#TITLETRANSLIT:; +#SUBTITLETRANSLIT:; +#ARTISTTRANSLIT:; +#GENRE:; +#CREDIT:; +#BANNER:; +#BACKGROUND:; +#LYRICSPATH:; +#CDTITLE:; +#MUSIC:_gameplay sync music.ogg; +#OFFSET:-0.019; +#SAMPLESTART:0.000; +#SAMPLELENGTH:12.000; +#SELECTABLE:YES; +#BPMS:0.000=132.000; +#STOPS:; +#BGCHANGES:; +#KEYSOUNDS:; + +//---------------dance-single - ---------------- +#NOTES: + dance-single: + : + Beginner: + 1: + 0.302,0.205,0.000,0.000,0.000: + // measure 1 +0000 +0000 +0000 +0000 +, // measure 2 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 3 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 4 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 5 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 6 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 7 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +, // measure 8 +1000 +0001 +1000 +0001 +1000 +0001 +1000 +0001 +; + +//---------------dance-single - blank---------------- +#NOTES: + pump-single: + blank: + Beginner: + 1: + 0.302,0.205,0.000,0.000,0.000: + // measure 1 +00000 +00000 +00000 +00000 +, // measure 2 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 3 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 4 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 5 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 6 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 7 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +, // measure 8 +10000 +00001 +10000 +00001 +10000 +00001 +10000 +00001 +; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/ScreenHowToPlay steps.sm" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/ScreenHowToPlay steps.sm" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Other/ScreenHowToPlay steps.sm" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Other/ScreenHowToPlay steps.sm" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,170 @@ +// these steps are only used by the How To Play screen. +// you can use any difficuly here, as long as there is +// only one set of steps in the file. the steps start +// as soon as the screen comes up. also, the music used +// is Sounds/ScreenHowToPlay Music, so no need to specify +// a song file here. +#TITLE:ScreenHowToPlay steps; +#ARTIST:foo; +#BPMS:0.000=100.000; +#STOPS:16=2,18=2,20=2,22=2; + +#NOTES: + dance-single: + BASIC: + easy: + 1: + 0,0,0,0,0: +0000 +0000 +0000 +0000 +, +0000 +0000 +0000 +0000 +, +0000 +0000 +0000 +0000 +, +0000 +0000 +0000 +0000 +, +0100 +0000 +0010 +0000 +, +1000 +0000 +1001 +0000 +, +1000 +0100 +0001 +0100 +0010 +1000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +, +0000 +0000 +0000 +0000 +, +0000 +0000 +0000 +0000 +,; + +#NOTES: + pump-single: + NORMAL: + easy: + 1: + 0,0,0,0,0: +00000 +00000 +00000 +00000 +, +00000 +00000 +00000 +00000 +, +00000 +00000 +00000 +00000 +, +00000 +00000 +00000 +00000 +, +01000 +00000 +00100 +00000 +, +10000 +00000 +10010 +00000 +, +10000 +01000 +00010 +01000 +00100 +10000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +00000 +, +00000 +00000 +00000 +00000 +, +00000 +00000 +00000 +00000 +,; diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/00 ThemeInfo.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/00 ThemeInfo.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/00 ThemeInfo.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/00 ThemeInfo.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,6 @@ +-- theme identification: +themeInfo = { + ProductCode = "SSC-501", + Name = "StepMania 5 Default", + Date = "20120108", +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 Colors.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 Colors.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 Colors.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 Colors.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,7 @@ +ModeIconColors = { + Normal = color("#FFEE00"), -- yellow + Rave = color("#db93ff"), -- violet + Nonstop = color("#5ca9ff"), -- blue + Oni = color("#00f1e2"), -- cyan + Endless = color("#b4c3d2"), -- steel +} diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 Lyrics.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 Lyrics.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 Lyrics.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 Lyrics.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,67 @@ +function Actor:LyricCommand(side) + self:draworder(DrawOrder.Screen+1); + self:settext(Var "LyricText") + + self:stoptweening() + self:shadowlengthx(0) + self:shadowlengthy(0) + self:strokecolor(Color("Outline")) + self:zoomx(clamp(SCREEN_WIDTH/(self:GetZoomedWidth()+1), 0, 1)) + + local Color = Var "LyricColor" + local Factor = 1 + if side == "Back" then + Factor = 0.5 + elseif side == "Front" then + Factor = 0.9 + end + self:diffuse({ + Color[1] * Factor, + Color[2] * Factor, + Color[3] * Factor, + Color[4] * Factor + }) + + if side == "Front" then + self:cropright(1) + else + self:cropleft(0) + end + + self:diffusealpha(0) + self:linear(0.2) + self:diffusealpha(0.75) + self:linear(Var "LyricDuration" * 0.75) + if side == "Front" then + self:cropright(0) + else + self:cropleft(1) + end + self:sleep(Var "LyricDuration" * 0.25) + self:linear(0.2) + self:diffusealpha(0) +end + +-- (c) 2006 Glenn Maynard +-- All rights reserved. +-- +-- Permission is hereby granted, free of charge, to any person obtaining a +-- copy of this software and associated documentation files (the +-- "Software"), to deal in the Software without restriction, including +-- without limitation the rights to use, copy, modify, merge, publish, +-- distribute, and/or sell copies of the Software, and to permit persons to +-- whom the Software is furnished to do so, provided that the above +-- copyright notice(s) and this permission notice appear in all copies of +-- the Software and that both the above copyright notice(s) and this +-- permission notice appear in supporting documentation. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +-- THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS +-- INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT +-- OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +-- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +-- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +-- PERFORMANCE OF THIS SOFTWARE. + diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 TextBanner.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 TextBanner.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 TextBanner.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 TextBanner.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,77 @@ +local mainMaxWidth = 228; -- zoom w/subtitle is 0.75 (multiply by 1.25) +local subMaxWidth = 420; -- zoom is 0.6 (multiply zoom,1 value by 1.4) +local artistMaxWidth = 300/0.8; + +local mainMaxWidthHighScore = 192; -- zoom w/subtitle is 0.75 (multiply by 1.25) +local subMaxWidthHighScore = 280; -- zoom is 0.6 (multiply zoom,1 value by 1.4) +local artistMaxWidthHighScore = 280/0.8; + +--[[ +-- The old (cmd(blah))(Actor) syntax is hard to read. +-- This is longer, but much easier to read. - Colby +--]] +function TextBannerAfterSet(self,param) + local Title = self:GetChild("Title") + local Subtitle = self:GetChild("Subtitle") + local Artist = self:GetChild("Artist") + + if Subtitle:GetText() == "" then + Title:maxwidth(mainMaxWidth) + Title:y(-8) + Title:zoom(1) + + -- hide so that the game skips drawing. + Subtitle:visible(false) + + Artist:zoom(0.66) + Artist:maxwidth(artistMaxWidth) + Artist:y(8) + else + Title:maxwidth(mainMaxWidth*1.25) + Title:y(-11) + Title:zoom(0.75) + + -- subtitle below title + Subtitle:visible(true) + Subtitle:zoom(0.6) + Subtitle:y(0) + Subtitle:maxwidth(subMaxWidth) + + Artist:zoom(0.6) + Artist:maxwidth(artistMaxWidth) + Artist:y(10) + end +end + +function TextBannerHighScoreAfterSet(self,param) + local Title = self:GetChild("Title") + local Subtitle = self:GetChild("Subtitle") + local Artist = self:GetChild("Artist") + + if Subtitle:GetText() == "" then + Title:maxwidth(mainMaxWidthHighScore) + Title:y(-8) + Title:zoom(1) + + -- hide so that the game skips drawing. + Subtitle:visible(false) + + Artist:zoom(0.66) + Artist:maxwidth(artistMaxWidthHighScore) + Artist:y(8) + else + Title:maxwidth(mainMaxWidthHighScore*1.25) + Title:y(-11) + Title:zoom(0.75) + + -- subtitle below title + Subtitle:visible(true) + Subtitle:zoom(0.6) + Subtitle:y(0) + Subtitle:maxwidth(subMaxWidthHighScore) + + Artist:zoom(0.6) + Artist:maxwidth(artistMaxWidthHighScore) + Artist:y(10) + end +end diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 ThemePrefs.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 ThemePrefs.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/02 ThemePrefs.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/02 ThemePrefs.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,184 @@ +-- StepMania 5 Default Theme Preferences Handler +local function OptionNameString(str) + return THEME:GetString('OptionNames',str) +end + +-- Example usage of new system (not fully implemented yet) +local Prefs = +{ + AutoSetStyle = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + GameplayShowStepsDisplay = + { + Default = true, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + GameplayShowScore = + { + Default = true, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + ShowLotsaOptions = + { + Default = true, + Choices = { OptionNameString('Many'), OptionNameString('Few') }, + Values = { true, false } + }, + LongFail = + { + Default = false, + Choices = { OptionNameString('Short'), OptionNameString('Long') }, + Values = { false, true } + }, + NotePosition = + { + Default = true, + Choices = { OptionNameString('Normal'), OptionNameString('Lower') }, + Values = { true, false } + }, + ComboOnRolls = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + FlashyCombo = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + ComboUnderField = + { + Default = true, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + FancyUIBG = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + TimingDisplay = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, + GameplayFooter = + { + Default = false, + Choices = { OptionNameString('Off'), OptionNameString('On') }, + Values = { false, true } + }, +} + +ThemePrefs.InitAll(Prefs) + +function InitUserPrefs() + local Prefs = { + UserPrefScoringMode = 'DDR Extreme', + UserPrefSoundPack = 'default', + UserPrefProtimingP1 = false, + UserPrefProtimingP2 = false, + } + for k, v in pairs(Prefs) do + -- kind of xxx + local GetPref = type(v) == "boolean" and GetUserPrefB or GetUserPref + if GetPref(k) == nil then + SetUserPref(k, v) + end + end + + -- screen filter + setenv("ScreenFilterP1",0) + setenv("ScreenFilterP2",0) +end + +function GetProTiming(pn) + local pname = ToEnumShortString(pn) + if GetUserPref("ProTiming"..pname) then + return GetUserPrefB("ProTiming"..pname) + else + SetUserPref("ProTiming"..pname,false) + return false + end +end + +--[[ option rows ]] + +-- screen filter +function OptionRowScreenFilter() + return { + Name="ScreenFilter", + LayoutType = "ShowAllInRow", + SelectType = "SelectOne", + OneChoiceForAllPlayers = false, + ExportOnChange = false, + Choices = { THEME:GetString('OptionNames','Off'), '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1.0', }, + LoadSelections = function(self, list, pn) + local pName = ToEnumShortString(pn) + local filterValue = getenv("ScreenFilter"..pName) + if filterValue ~= nil then + local val = scale(tonumber(filterValue),0,1,1,#list ) + list[val] = true + else + setenv("ScreenFilter"..pName,0) + list[1] = true + end + end, + SaveSelections = function(self, list, pn) + local pName = ToEnumShortString(pn) + local found = false + for i=1,#list do + if not found then + if list[i] == true then + local val = scale(i,1,#list,0,1) + setenv("ScreenFilter"..pName,val) + found = true + end + end + end + end, + } +end + +-- protiming +function OptionRowProTiming() + return { + Name = "ProTiming", + LayoutType = "ShowAllInRow", + SelectType = "SelectOne", + OneChoiceForAllPlayers = false, + ExportOnChange = false, + Choices = { + THEME:GetString('OptionNames','Off'), + THEME:GetString('OptionNames','On') + }, + LoadSelections = function(self, list, pn) + if GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(pn)) then + local bShow = GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(pn)) + if bShow then + list[2] = true + else + list[1] = true + end + else + list[1] = true + end + end, + SaveSelections = function(self, list, pn) + local bSave = list[2] and true or false + SetUserPref("UserPrefProtiming" .. ToEnumShortString(pn), bSave) + end + } +end + +--[[ end option rows ]] diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/03 Gameplay.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/03 Gameplay.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/03 Gameplay.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/03 Gameplay.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,26 @@ +-- StepMania 5 default theme | script ring 03 | Gameplay.lua +-- someone thought it'd be a good idea to put theme preferences into the fallback +-- when they should've been in default instead. there is no emoticon for how i feel +-- at this moment right now -freem + +-- for example, not every theme wants to worry about custom receptor positions. +local tNotePositions = { + -- StepMania 3.9/4.0 + Normal = { -144, 144, }, + -- ITG + Lower = { -125, 145, } +} + +function GetTapPosition( sType ) + bCategory = (sType == 'Standard') and 1 or 2 + -- true: Normal + -- false: Lower + bPreference = ThemePrefs.Get("NotePosition") and "Normal" or "Lower" + tNotePos = tNotePositions[bPreference] + return tNotePos[bCategory] +end + +-- combo under field is another thing that doesn't always need to be custom +function ComboUnderField() + return ThemePrefs.Get("ComboUnderField") +end \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/04 Other.lua" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/04 Other.lua" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Scripts/04 Other.lua" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Scripts/04 Other.lua" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,49 @@ +function SongMeterDisplayX(pn) + if Center1Player() then + return SCREEN_CENTER_X + else + return pn == PLAYER_1 and SCREEN_LEFT+16 or SCREEN_RIGHT-16 + end +end + +function SongMeterDisplayY(pn) + return Center1Player() and SCREEN_TOP+50 or SCREEN_CENTER_Y +end + +function SongMeterDisplayCommand(pn) + if Center1Player() then + return cmd(draworder,50;zoom,0;y,SCREEN_TOP-24;sleep,1.5;decelerate,0.5;zoom,1;y,SCREEN_TOP+50) + else + local xAdd = (pn == PLAYER_1) and -24 or 24 + return cmd(draworder,5;rotationz,-90;zoom,0;addx,xAdd;sleep,1.5;decelerate,0.5;zoom,1;addx,xAdd*-1) + end +end + +local numbered_stages= { + Stage_1st= true, + Stage_2nd= true, + Stage_3rd= true, + Stage_4th= true, + Stage_5th= true, + Stage_6th= true, + Stage_Next= true, +} + +function thified_curstage_index(on_eval) + local cur_stage= GAMESTATE:GetCurrentStage() + local adjust= 1 + -- hack: ScreenEvaluation shows the current stage, but it needs to show + -- the last stage instead. Adjust the amount. + if on_eval then + adjust= 0 + end + if numbered_stages[cur_stage] then + return FormatNumberAndSuffix(GAMESTATE:GetCurrentStageIndex() + adjust) + else + return ToEnumShortString(cur_stage) + end +end + +function check_stop_course_early() + return course_stopped_by_pause_menu +end diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common invalid.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common invalid.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common invalid.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common invalid.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/Common invalid \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_common row.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_common row.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_common row.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_common row.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_common row \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common Start.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common Start.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common Start.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common Start.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/Common Start \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common value.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common value.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/Common value.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/Common value.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/Common value \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/Common invalid.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/Common invalid.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_common row.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_common row.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/Common Start.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/Common Start.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/Common value.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/Common value.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/MenuTimer tick.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/MenuTimer tick.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_Music credits (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_Music credits (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_Music title (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_Music title (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/MusicWheel change.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/MusicWheel change.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_Screen cancel.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_Screen cancel.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/ScreenGameplay failed.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/ScreenGameplay failed.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_switch down.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_switch down.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/default/_switch up.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/default/_switch up.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/Common invalid.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/Common invalid.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_common row.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_common row.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/Common Start.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/Common Start.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/Common value.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/Common value.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/MenuTimer tick.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/MenuTimer tick.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_Music credits (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_Music credits (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_Music title (loop).ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_Music title (loop).ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/MusicWheel change.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/MusicWheel change.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_Screen cancel.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_Screen cancel.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/ScreenGameplay failed.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/ScreenGameplay failed.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_switch down.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_switch down.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/kommisar/_switch up.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/kommisar/_switch up.ogg differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/MenuTimer tick.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/MenuTimer tick.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/MenuTimer tick.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/MenuTimer tick.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/MenuTimer tick \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music credits.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music credits.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music credits.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music credits.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_Music credits \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music menu.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music menu.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music menu.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music menu.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music title \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music title (loop).redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music title (loop).redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music title (loop).redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music title (loop).redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_Music title (loop) \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music title (loop).sm" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music title (loop).sm" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Music title (loop).sm" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Music title (loop).sm" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,5 @@ +#TITLE:Love Is Eternity A; +#OFFSET:0.000; +#BPMS:0.000=140.000; +#STOPS:; + diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/MusicWheel change.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/MusicWheel change.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/MusicWheel change.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/MusicWheel change.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/MusicWheel change \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Screen cancel.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Screen cancel.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_Screen cancel.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_Screen cancel.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_Screen cancel \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenCredits music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenCredits music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenCredits music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenCredits music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_Music credits \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit freeze.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit freeze.ogg differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit line.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit line.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit line.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit line.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_common row Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit marker.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit marker.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit save.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit save.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit snap.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit snap.ogg differ Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit switch player.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit switch player.ogg differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit switch timing.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit switch timing.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit switch timing.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit switch timing.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenEdit switch player \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit value decrease.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit value decrease.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit value decrease.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit value decrease.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +ScreenEdit value increase \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenEdit value increase.ogg and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenEdit value increase.ogg differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenGameInformation music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenGameInformation music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenGameInformation music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenGameInformation music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file Binary files /tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenGameplayAlternate failed.mp3 and /tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenGameplayAlternate failed.mp3 differ diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenGameplay failed.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenGameplay failed.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenGameplay failed.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenGameplay failed.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/ScreenGameplay failed \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenOptionsService music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenOptionsService music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenOptionsService music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenOptionsService music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_silent \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenProfileLoad music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenProfileLoad music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenProfileLoad music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenProfileLoad music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music title \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic course music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic course music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic course music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic course music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic loop music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic loop music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic loop music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic loop music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic random music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic random music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic random music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic random music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic roulette music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic roulette music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic roulette music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic roulette music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic section music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic section music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic section music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic section music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic sort music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic sort music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectMusic sort music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectMusic sort music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectPlayMode music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectPlayMode music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectPlayMode music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectPlayMode music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectPlayStyle music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectPlayStyle music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectPlayStyle music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectPlayStyle music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectProfile music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectProfile music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectProfile music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectProfile music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music title \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectStyle music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectStyle music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenSelectStyle music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenSelectStyle music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_Music menu \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenTitleJoin music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenTitleJoin music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenTitleJoin music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenTitleJoin music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_silent \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenTitleMenu music.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenTitleMenu music.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/ScreenTitleMenu music.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/ScreenTitleMenu music.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +_silent \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_switch down.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_switch down.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_switch down.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_switch down.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_switch down \ No newline at end of file diff -Nru "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_switch up.redir" "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_switch up.redir" --- "/tmp/tmpZXunmt/MaW8YfAPi1/stepmania-5.0.12+dfsg/Themes/legacy/Sounds/_switch up.redir" 1970-01-01 00:00:00.000000000 +0000 +++ "/tmp/tmpZXunmt/k3nh7koK7R/stepmania-5.1.0+dfsg/Themes/legacy/Sounds/_switch up.redir" 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1 @@ +default/_switch up \ No newline at end of file diff -Nru stepmania-5.0.12+dfsg/Themes/legacy/ThemeInfo.ini stepmania-5.1.0+dfsg/Themes/legacy/ThemeInfo.ini --- stepmania-5.0.12+dfsg/Themes/legacy/ThemeInfo.ini 1970-01-01 00:00:00.000000000 +0000 +++ stepmania-5.1.0+dfsg/Themes/legacy/ThemeInfo.ini 2018-01-25 05:01:07.000000000 +0000 @@ -0,0 +1,3 @@ +[ThemeInfo] +DisplayName=Legacy (SM 5.0 default) +Author=Midiman \ No newline at end of file